Compare commits
189 Commits
directory-
...
docs/lock-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
72c4672bc9 | ||
|
|
da2c865481 | ||
|
|
5c0ba9ae08 | ||
|
|
631f471bb7 | ||
|
|
1c8129aafc | ||
|
|
8cd86fb6a0 | ||
|
|
3da9905c8f | ||
|
|
cfba3f8370 | ||
|
|
881453dbde | ||
|
|
2d74a755a8 | ||
|
|
111d9397ae | ||
|
|
2ae7c3ecae | ||
|
|
ff28ac7ea2 | ||
|
|
6d4da35ca8 | ||
|
|
3dd06f8b89 | ||
|
|
89d59b8175 | ||
|
|
bb1451fcb9 | ||
|
|
478509a605 | ||
|
|
7bbc42809e | ||
|
|
a7509ae2b8 | ||
|
|
94a00b626e | ||
|
|
1c7ed89855 | ||
|
|
e613ba2acc | ||
|
|
7a4167fe28 | ||
|
|
39e94ef927 | ||
|
|
ace9ba487e | ||
|
|
06acb66404 | ||
|
|
fbff470d4c | ||
|
|
b4f7fe2cb6 | ||
|
|
590d83993b | ||
|
|
4dffa1a46a | ||
|
|
38792c8c96 | ||
|
|
ea205ddd6c | ||
|
|
8ca4a7a036 | ||
|
|
b10d5d3ca0 | ||
|
|
bbd35b2754 | ||
|
|
fb44adc365 | ||
|
|
f4753cc0c4 | ||
|
|
b27992402a | ||
|
|
a2a4137708 | ||
|
|
9baac21534 | ||
|
|
4dd34bd00d | ||
|
|
b3532f01dd | ||
|
|
48b5c84746 | ||
|
|
6719f5a95e | ||
|
|
7615e75e01 | ||
|
|
68a9903b0f | ||
|
|
8cb14b4c01 | ||
|
|
30ad57b135 | ||
|
|
3e1ce965eb | ||
|
|
9cc0af1e95 | ||
|
|
8bd328e48a | ||
|
|
c2e7b34d04 | ||
|
|
f4736586dc | ||
|
|
776c960308 | ||
|
|
c3ec3aa346 | ||
|
|
0c14a54d52 | ||
|
|
748e92e5a6 | ||
|
|
da56265e62 | ||
|
|
a9e3734aa7 | ||
|
|
1c116c38c8 | ||
|
|
87b3cbd5e3 | ||
|
|
1fd57d057e | ||
|
|
7225c09c43 | ||
|
|
8679fd1cc0 | ||
|
|
e4f3dcab03 | ||
|
|
9cd49cbe34 | ||
|
|
e961352fbe | ||
|
|
f9788c956d | ||
|
|
550e54e682 | ||
|
|
e0a9fdc26d | ||
|
|
19cff44eac | ||
|
|
2af533e000 | ||
|
|
0f759d4fda | ||
|
|
949cf19f21 | ||
|
|
5c5ef65b6f | ||
|
|
797ee31afe | ||
|
|
90436835ce | ||
|
|
3258a91e39 | ||
|
|
4205247cfa | ||
|
|
5651f6e568 | ||
|
|
7f78a8e3ec | ||
|
|
4f6360e974 | ||
|
|
6c3b698ea3 | ||
|
|
d1dfb8388d | ||
|
|
b39fb71f69 | ||
|
|
673815b86a | ||
|
|
02925a6098 | ||
|
|
ccc0e9fbd3 | ||
|
|
2f65d18eee | ||
|
|
6a1712d419 | ||
|
|
ea4e5ae3e7 | ||
|
|
499bbd479a | ||
|
|
8b293d1f05 | ||
|
|
73c6b17fae | ||
|
|
b344b5323d | ||
|
|
f960afc092 | ||
|
|
0474011173 | ||
|
|
3f5d5fb120 | ||
|
|
943f19ccc0 | ||
|
|
60adc36063 | ||
|
|
a422c3354e | ||
|
|
fac380fb88 | ||
|
|
93dadb3c94 | ||
|
|
f1d28332a6 | ||
|
|
9d25d20a3c | ||
|
|
42112c8d30 | ||
|
|
63b401d872 | ||
|
|
5806dfbdcd | ||
|
|
5bcbdda184 | ||
|
|
b17c207839 | ||
|
|
045dc79b01 | ||
|
|
74351255db | ||
|
|
e0cadec1f0 | ||
|
|
694eccef63 | ||
|
|
6c855d008f | ||
|
|
b3645421af | ||
|
|
b02966a481 | ||
|
|
4dab6217a2 | ||
|
|
5e1f2d2353 | ||
|
|
75f7bed617 | ||
|
|
3296842a5f | ||
|
|
eafb602b4e | ||
|
|
134943e109 | ||
|
|
e232b481bc | ||
|
|
5ad1ea3726 | ||
|
|
5689d9488e | ||
|
|
be9b246ffa | ||
|
|
2daff2ddae | ||
|
|
db158ce413 | ||
|
|
563aaf5ae5 | ||
|
|
345140ac88 | ||
|
|
7a94858a06 | ||
|
|
9f78ccbfd0 | ||
|
|
d4d6df5c66 | ||
|
|
3d847cd801 | ||
|
|
85721eef99 | ||
|
|
d89b5e2d91 | ||
|
|
1e17a9fe7a | ||
|
|
4f9efc4c81 | ||
|
|
c4da3cca34 | ||
|
|
4f25051968 | ||
|
|
930ec23d0c | ||
|
|
0e60c0a3ab | ||
|
|
66361fe56e | ||
|
|
a7dd4e8c05 | ||
|
|
14eb82f350 | ||
|
|
3f083bb37a | ||
|
|
0b3041586b | ||
|
|
80b04bd8d2 | ||
|
|
29325b4a7e | ||
|
|
75d04defd6 | ||
|
|
40246d9a19 | ||
|
|
3c73af0876 | ||
|
|
5498c1c7a8 | ||
|
|
9d92f205a9 | ||
|
|
ce37473d86 | ||
|
|
561d3ded23 | ||
|
|
ad5f23f845 | ||
|
|
9d41f4bcf5 | ||
|
|
76042a1c5a | ||
|
|
1917f812b0 | ||
|
|
eb8108e407 | ||
|
|
2a8c20b946 | ||
|
|
1b0dd02337 | ||
|
|
764490b11b | ||
|
|
56171e31c7 | ||
|
|
add01c7151 | ||
|
|
be422e4371 | ||
|
|
ba146df9a8 | ||
|
|
858cbd11ba | ||
|
|
1dff595ee3 | ||
|
|
5540671cdb | ||
|
|
314acfc379 | ||
|
|
befc68cdd4 | ||
|
|
f51a8f8f8c | ||
|
|
cc66d203d4 | ||
|
|
a60f9494ec | ||
|
|
30d567fd0e | ||
|
|
d134b236a4 | ||
|
|
bf23fbb7bb | ||
|
|
26e2ff9dca | ||
|
|
d420b3f157 | ||
|
|
93c3079637 | ||
|
|
7e546c8377 | ||
|
|
ccc0c3c25f | ||
|
|
0ab5f17300 | ||
|
|
182836b68d | ||
|
|
a0c3dd1eb4 |
9
.github/dependabot.yml
vendored
9
.github/dependabot.yml
vendored
@@ -53,6 +53,15 @@ updates:
|
||||
- "feature: dependencies"
|
||||
# Disable automatic rebasing because without a build CI will likely fail anyway
|
||||
rebase-strategy: "disabled"
|
||||
groups:
|
||||
vite:
|
||||
patterns:
|
||||
- "vite"
|
||||
- "@nextcloud/vite-config"
|
||||
vitest:
|
||||
patterns:
|
||||
- "vitest"
|
||||
- "@vitest/*"
|
||||
|
||||
# Latest stable release
|
||||
# Composer dependencies for linting and testing
|
||||
|
||||
8
.github/workflows/autocheckers.yml
vendored
8
.github/workflows/autocheckers.yml
vendored
@@ -52,13 +52,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
@@ -81,13 +81,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
|
||||
8
.github/workflows/block-merge-eol.yml
vendored
8
.github/workflows/block-merge-eol.yml
vendored
@@ -27,7 +27,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Set server major version environment
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
||||
with:
|
||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||
script: |
|
||||
@@ -37,13 +37,13 @@ jobs:
|
||||
if (match) {
|
||||
console.log('Setting server_major to ' + match[1]);
|
||||
core.exportVariable('server_major', match[1]);
|
||||
console.log('Setting current_month to ' + (new Date()).toISOString().substr(0, 7));
|
||||
core.exportVariable('current_month', (new Date()).toISOString().substr(0, 7));
|
||||
console.log('Setting current_day to ' + (new Date()).toISOString().substr(0, 10));
|
||||
core.exportVariable('current_day', (new Date()).toISOString().substr(0, 10));
|
||||
}
|
||||
|
||||
- name: Checking if server ${{ env.server_major }} is EOL
|
||||
if: ${{ env.server_major != '' }}
|
||||
run: |
|
||||
curl -s https://raw.githubusercontent.com/nextcloud-releases/updater_server/production/config/major_versions.json \
|
||||
| jq '.["${{ env.server_major }}"]["eol"] // "9999-99" | . >= "${{ env.current_month }}"' \
|
||||
| jq '.["${{ env.server_major }}"]["eol"] // "9999-99-99" | . >= "${{ env.current_day }}"' \
|
||||
| grep -q true
|
||||
|
||||
2
.github/workflows/block-merge-freeze.yml
vendored
2
.github/workflows/block-merge-freeze.yml
vendored
@@ -29,7 +29,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Register server reference to fallback to master branch
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
||||
with:
|
||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||
script: |
|
||||
|
||||
@@ -31,7 +31,7 @@ jobs:
|
||||
- 'version.php'
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
@@ -41,7 +41,7 @@ jobs:
|
||||
echo "commit=$(git submodule status | grep ' 3rdparty' | egrep -o '[a-f0-9]{40}')" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Register server reference to fallback to master branch
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
||||
with:
|
||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||
script: |
|
||||
|
||||
@@ -27,7 +27,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
||||
6
.github/workflows/codeql.yml
vendored
6
.github/workflows/codeql.yml
vendored
@@ -32,18 +32,18 @@ jobs:
|
||||
build-mode: none
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@5d5cd550d3e189c569da8f16ea8de2d821c9bf7a # v3.31.2
|
||||
uses: github/codeql-action/init@fdbfb4d2750291e159f0156def62b853c2798ca2 # v4.31.5
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
build-mode: ${{ matrix.build-mode }}
|
||||
config-file: ./.github/codeql-config.yml
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@5d5cd550d3e189c569da8f16ea8de2d821c9bf7a # v3.31.2
|
||||
uses: github/codeql-action/analyze@fdbfb4d2750291e159f0156def62b853c2798ca2 # v4.31.5
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
||||
|
||||
28
.github/workflows/command-compile.yml
vendored
28
.github/workflows/command-compile.yml
vendored
@@ -30,7 +30,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Get repository from pull request comment
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
||||
id: get-repository
|
||||
with:
|
||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||
@@ -57,7 +57,7 @@ jobs:
|
||||
require: write
|
||||
|
||||
- name: Add reaction on start
|
||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
|
||||
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
repository: ${{ github.event.repository.full_name }}
|
||||
@@ -83,7 +83,7 @@ jobs:
|
||||
id: comment-branch
|
||||
|
||||
- name: Add reaction on failure
|
||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
|
||||
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
|
||||
if: failure()
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
@@ -103,7 +103,7 @@ jobs:
|
||||
key: git-repo
|
||||
|
||||
- name: Checkout ${{ needs.init.outputs.head_ref }}
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
# Needed to allow force push later
|
||||
persist-credentials: true
|
||||
@@ -120,11 +120,11 @@ jobs:
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
id: package-engines-versions
|
||||
with:
|
||||
fallbackNode: '^20'
|
||||
fallbackNpm: '^10'
|
||||
fallbackNode: '^24'
|
||||
fallbackNpm: '^11.3'
|
||||
|
||||
- name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
|
||||
with:
|
||||
node-version: ${{ steps.package-engines-versions.outputs.nodeVersion }}
|
||||
cache: npm
|
||||
@@ -136,26 +136,26 @@ jobs:
|
||||
if: ${{ contains(needs.init.outputs.arg1, 'rebase') }}
|
||||
run: |
|
||||
git fetch origin '${{ needs.init.outputs.base_ref }}:${{ needs.init.outputs.base_ref }}'
|
||||
|
||||
|
||||
# Start the rebase
|
||||
git rebase 'origin/${{ needs.init.outputs.base_ref }}' || {
|
||||
# Handle rebase conflicts in a loop
|
||||
while [ -d .git/rebase-merge ] || [ -d .git/rebase-apply ]; do
|
||||
echo "Handling rebase conflict..."
|
||||
|
||||
|
||||
# Remove and checkout /dist and /js folders from the base branch
|
||||
if [ -d "dist" ]; then
|
||||
rm -rf dist
|
||||
git checkout origin/${{ needs.init.outputs.base_ref }} -- dist/ 2>/dev/null || echo "No dist folder in base branch"
|
||||
fi
|
||||
if [ -d "js" ]; then
|
||||
rm -rf js
|
||||
rm -rf js
|
||||
git checkout origin/${{ needs.init.outputs.base_ref }} -- js/ 2>/dev/null || echo "No js folder in base branch"
|
||||
fi
|
||||
|
||||
|
||||
# Stage all changes
|
||||
git add .
|
||||
|
||||
|
||||
# Check if there are any changes after resolving conflicts
|
||||
if git diff --cached --quiet; then
|
||||
echo "No changes after conflict resolution, skipping commit"
|
||||
@@ -164,7 +164,7 @@ jobs:
|
||||
echo "Changes found, continuing rebase without editing commit message"
|
||||
git -c core.editor=true rebase --continue
|
||||
fi
|
||||
|
||||
|
||||
# Break if rebase is complete
|
||||
if [ ! -d .git/rebase-merge ] && [ ! -d .git/rebase-apply ]; then
|
||||
break
|
||||
@@ -213,7 +213,7 @@ jobs:
|
||||
run: git push --force-with-lease origin "$HEAD_REF"
|
||||
|
||||
- name: Add reaction on failure
|
||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
|
||||
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0
|
||||
if: failure()
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
|
||||
10
.github/workflows/command-pull-3rdparty.yml
vendored
10
.github/workflows/command-pull-3rdparty.yml
vendored
@@ -20,7 +20,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Add reaction on start
|
||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v3.0.1
|
||||
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v3.0.1
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
repository: ${{ github.event.repository.full_name }}
|
||||
@@ -38,7 +38,7 @@ jobs:
|
||||
id: comment-branch
|
||||
|
||||
- name: Checkout ${{ steps.comment-branch.outputs.head_ref }}
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
@@ -46,7 +46,7 @@ jobs:
|
||||
ref: ${{ steps.comment-branch.outputs.head_ref }}
|
||||
|
||||
- name: Register server reference to fallback to master branch
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
||||
with:
|
||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||
script: |
|
||||
@@ -71,7 +71,7 @@ jobs:
|
||||
git config --local user.name 'nextcloud-command'
|
||||
|
||||
- name: Add reaction on failure
|
||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v3.0.1
|
||||
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v3.0.1
|
||||
if: ${{ env.server_ref == '' }}
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
@@ -91,7 +91,7 @@ jobs:
|
||||
git push
|
||||
|
||||
- name: Add reaction on failure
|
||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v3.0.1
|
||||
uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v3.0.1
|
||||
if: failure()
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
|
||||
27
.github/workflows/cypress.yml
vendored
27
.github/workflows/cypress.yml
vendored
@@ -22,7 +22,7 @@ env:
|
||||
# Usually it's the base branch of the PR, but for pushes it's the branch itself.
|
||||
# e.g. 'main', 'stable27' or 'feature/my-feature'
|
||||
# n.b. server will use head_ref, as we want to test the PR branch.
|
||||
BRANCH: ${{ github.head_ref || github.ref_name }}
|
||||
BRANCH: ${{ github.base_ref || github.ref_name }}
|
||||
|
||||
|
||||
permissions:
|
||||
@@ -48,7 +48,7 @@ jobs:
|
||||
exit 1
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
# We need to checkout submodules for 3rdparty
|
||||
@@ -58,7 +58,7 @@ jobs:
|
||||
id: check_composer
|
||||
uses: andstor/file-existence-action@076e0072799f4942c8bc574a82233e1e4d13e9d6 # v3.0.0
|
||||
with:
|
||||
files: "composer.json"
|
||||
files: 'composer.json'
|
||||
|
||||
- name: Install composer dependencies
|
||||
if: steps.check_composer.outputs.files_exists == 'true'
|
||||
@@ -68,11 +68,11 @@ jobs:
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: "^20"
|
||||
fallbackNpm: "^10"
|
||||
fallbackNode: '^24'
|
||||
fallbackNpm: '^11.3'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
@@ -84,9 +84,6 @@ jobs:
|
||||
npm ci
|
||||
TESTING=true npm run build --if-present
|
||||
|
||||
- name: Show cypress version
|
||||
run: npm run cypress:version
|
||||
|
||||
- name: Save context
|
||||
uses: buildjet/cache/save@3e70d19e31d6a8030aeddf6ed8dbe601f94d09f4 # v4.0.2
|
||||
with:
|
||||
@@ -163,7 +160,7 @@ jobs:
|
||||
path: ./
|
||||
|
||||
- name: Set up node ${{ needs.init.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
|
||||
with:
|
||||
node-version: ${{ needs.init.outputs.nodeVersion }}
|
||||
|
||||
@@ -174,7 +171,7 @@ jobs:
|
||||
run: ./node_modules/cypress/bin/cypress install
|
||||
|
||||
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
|
||||
uses: cypress-io/github-action@b8ba51a856ba5f4c15cf39007636d4ab04f23e3c # v6.10.2
|
||||
uses: cypress-io/github-action@7ef72e250a9e564efb4ed4c2433971ada4cc38b4 # v6.10.4
|
||||
with:
|
||||
# We already installed the dependencies in the init job
|
||||
install: false
|
||||
@@ -198,10 +195,10 @@ jobs:
|
||||
SETUP_TESTING: ${{ matrix.containers == 'setup' && 'true' || '' }}
|
||||
|
||||
- name: Upload snapshots and videos
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
|
||||
if: always()
|
||||
with:
|
||||
name: snapshots_videos_${{ matrix.containers }}
|
||||
name: snapshots_${{ matrix.containers }}
|
||||
path: |
|
||||
cypress/snapshots
|
||||
cypress/videos
|
||||
@@ -220,8 +217,8 @@ jobs:
|
||||
if: failure() && matrix.containers != 'component'
|
||||
run: docker exec nextcloud-e2e-test-server_${{ env.APP_NAME }} tar -cvjf - data > data.tar
|
||||
|
||||
- name: Upload data dir archive
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
- name: Upload data archive
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
|
||||
if: failure() && matrix.containers != 'component'
|
||||
with:
|
||||
name: nc_data_${{ matrix.containers }}
|
||||
|
||||
23
.github/workflows/dependabot-approve-merge.yml
vendored
23
.github/workflows/dependabot-approve-merge.yml
vendored
@@ -3,10 +3,10 @@
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-FileCopyrightText: Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: Dependabot
|
||||
name: Auto approve Dependabot PRs
|
||||
|
||||
on:
|
||||
pull_request_target: # zizmor: ignore[dangerous-triggers]
|
||||
@@ -29,6 +29,8 @@ jobs:
|
||||
permissions:
|
||||
# for hmarr/auto-approve-action to approve PRs
|
||||
pull-requests: write
|
||||
# for alexwilson/enable-github-automerge-action to approve PRs
|
||||
contents: write
|
||||
|
||||
steps:
|
||||
- name: Disabled on forks
|
||||
@@ -37,13 +39,20 @@ jobs:
|
||||
echo 'Can not approve PRs from forks'
|
||||
exit 1
|
||||
|
||||
- uses: mdecoleman/pr-branch-name@55795d86b4566d300d237883103f052125cc7508 # v3.0.0
|
||||
id: branchname
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# GitHub actions bot approve
|
||||
- uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v2
|
||||
- uses: hmarr/auto-approve-action@f0939ea97e9205ef24d872e76833fa908a770363 # v4.0.0
|
||||
if: startsWith(steps.branchname.outputs.branch, 'dependabot/')
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# Nextcloud bot approve and merge request
|
||||
- uses: ahmadnassri/action-dependabot-auto-merge@45fc124d949b19b6b8bf6645b6c9d55f4f9ac61a # v2
|
||||
# Enable GitHub auto merge
|
||||
- name: Auto merge
|
||||
uses: alexwilson/enable-github-automerge-action@56e3117d1ae1540309dc8f7a9f2825bc3c5f06ff # v2.0.0
|
||||
if: startsWith(steps.branchname.outputs.branch, 'dependabot/')
|
||||
with:
|
||||
target: minor
|
||||
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
6
.github/workflows/files-external-ftp.yml
vendored
6
.github/workflows/files-external-ftp.yml
vendored
@@ -55,7 +55,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
@@ -71,7 +71,7 @@ jobs:
|
||||
if [[ "${{ matrix.ftpd }}" == 'pure-ftpd' ]]; then docker run --name ftp -d --net host -e "PUBLICHOST=localhost" -e FTP_USER_NAME=test -e FTP_USER_PASS=test -e FTP_USER_HOME=/home/test -v /tmp/ftp:/home/test -v /tmp/ftp:/etc/pure-ftpd/passwd stilliard/pure-ftpd; fi
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -104,7 +104,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-ftp
|
||||
|
||||
12
.github/workflows/files-external-s3.yml
vendored
12
.github/workflows/files-external-s3.yml
vendored
@@ -64,13 +64,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -104,7 +104,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-s3
|
||||
@@ -152,13 +152,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -185,7 +185,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-s3
|
||||
|
||||
6
.github/workflows/files-external-sftp.yml
vendored
6
.github/workflows/files-external-sftp.yml
vendored
@@ -55,7 +55,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
@@ -67,7 +67,7 @@ jobs:
|
||||
if [[ '${{ matrix.sftpd }}' == 'openssh' ]]; then docker run -p 2222:22 --name sftp -d -v /tmp/sftp:/home/test atmoz/sftp 'test:test:::data'; fi
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -93,7 +93,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-sftp
|
||||
|
||||
@@ -46,13 +46,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Checkout user_saml
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
repository: nextcloud/user_saml
|
||||
|
||||
6
.github/workflows/files-external-smb.yml
vendored
6
.github/workflows/files-external-smb.yml
vendored
@@ -59,13 +59,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -99,7 +99,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-smb
|
||||
|
||||
6
.github/workflows/files-external-webdav.yml
vendored
6
.github/workflows/files-external-webdav.yml
vendored
@@ -60,13 +60,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -97,7 +97,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-webdav
|
||||
|
||||
6
.github/workflows/files-external.yml
vendored
6
.github/workflows/files-external.yml
vendored
@@ -53,13 +53,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -85,7 +85,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-generic
|
||||
|
||||
@@ -24,14 +24,14 @@ jobs:
|
||||
require: write
|
||||
|
||||
- name: Checkout github_helper
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
repository: nextcloud/github_helper
|
||||
path: github_helper
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
path: server
|
||||
@@ -73,7 +73,7 @@ jobs:
|
||||
fi
|
||||
|
||||
- name: Set up php 8.2
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
|
||||
with:
|
||||
php-version: 8.2
|
||||
coverage: none
|
||||
|
||||
6
.github/workflows/integration-dav.yml
vendored
6
.github/workflows/integration-dav.yml
vendored
@@ -53,13 +53,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -70,7 +70,7 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Set up Python
|
||||
uses: LizardByte/actions/actions/setup_python@bff0a193747a3ac7930a665fc1d4b23eba583b99 # v2025.814.40518
|
||||
uses: LizardByte/actions/actions/setup_python@329b1bcefe1cbe1ef289177471c9f2b2af98e6ca # v2025.1028.23217
|
||||
with:
|
||||
python-version: '2.7'
|
||||
|
||||
|
||||
4
.github/workflows/integration-litmus.yml
vendored
4
.github/workflows/integration-litmus.yml
vendored
@@ -52,13 +52,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
|
||||
4
.github/workflows/integration-s3-primary.yml
vendored
4
.github/workflows/integration-s3-primary.yml
vendored
@@ -67,13 +67,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
|
||||
8
.github/workflows/integration-sqlite.yml
vendored
8
.github/workflows/integration-sqlite.yml
vendored
@@ -97,14 +97,14 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Checkout Talk app
|
||||
if: ${{ matrix.test-suite == 'videoverification_features' }}
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
repository: nextcloud/spreed
|
||||
@@ -113,7 +113,7 @@ jobs:
|
||||
|
||||
- name: Checkout Activity app
|
||||
if: ${{ matrix.test-suite == 'sharing_features' }}
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
repository: nextcloud/activity
|
||||
@@ -121,7 +121,7 @@ jobs:
|
||||
ref: ${{ matrix.activity-versions }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
|
||||
8
.github/workflows/lint-eslint.yml
vendored
8
.github/workflows/lint-eslint.yml
vendored
@@ -56,7 +56,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
@@ -64,11 +64,11 @@ jobs:
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: '^20'
|
||||
fallbackNpm: '^10'
|
||||
fallbackNode: '^24'
|
||||
fallbackNpm: '^11.3'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
|
||||
8
.github/workflows/lint-php-cs.yml
vendored
8
.github/workflows/lint-php-cs.yml
vendored
@@ -44,16 +44,16 @@ jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
name: PHP CS fixer lint
|
||||
name: php-cs
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Set up php8.1
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
|
||||
with:
|
||||
php-version: 8.2
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
|
||||
5
.github/workflows/lint-php.yml
vendored
5
.github/workflows/lint-php.yml
vendored
@@ -53,14 +53,15 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
coverage: none
|
||||
ini-file: development
|
||||
env:
|
||||
|
||||
8
.github/workflows/lint-stylelint.yml
vendored
8
.github/workflows/lint-stylelint.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
@@ -33,11 +33,11 @@ jobs:
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: '^20'
|
||||
fallbackNpm: '^10'
|
||||
fallbackNode: '^24'
|
||||
fallbackNpm: '^11.3'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
|
||||
29
.github/workflows/lock-closed-issues.yml
vendored
Normal file
29
.github/workflows/lock-closed-issues.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
# SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
# Commenting on closed issues usually is not spotted by contributors or maintainers.
|
||||
# Meaning regressions will be overlooked and not fixed, so instead force people to open a new issue.
|
||||
|
||||
name: "Lock closed issues"
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 3 * * *" # every day at 03:00 UTC
|
||||
workflow_dispatch:
|
||||
concurrency:
|
||||
group: lock-threads
|
||||
permissions:
|
||||
issues: write
|
||||
pull-requests: write
|
||||
jobs:
|
||||
lock:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: dessant/lock-threads@1bf7ec25051fe7c00bdd17e6a7cf3d7bfb7dc771 # v5.0.1
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
issue-inactive-days: 30
|
||||
issue-comment: >
|
||||
This issue has been automatically locked because it has been closed for 30 days.
|
||||
Please open a new issue if you have a similar problem.
|
||||
99
.github/workflows/node-test-handlebars.yml
vendored
Normal file
99
.github/workflows/node-test-handlebars.yml
vendored
Normal file
@@ -0,0 +1,99 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
#
|
||||
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: Node handlebars tests
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: node-tests-handlebars-${{ github.head_ref || github.run_id }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
runs-on: ubuntu-latest-low
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- '**/__tests__/**'
|
||||
- '**/__mocks__/**'
|
||||
- 'apps/*/src/**'
|
||||
- 'apps/*/appinfo/info.xml'
|
||||
- 'core/src/**'
|
||||
- 'package.json'
|
||||
- '**/package-lock.json'
|
||||
- 'tsconfig.json'
|
||||
- '**.js'
|
||||
- '**.ts'
|
||||
- '**.vue'
|
||||
|
||||
handlebars:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [changes]
|
||||
if: needs.changes.outputs.src != 'false'
|
||||
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
PUPPETEER_SKIP_DOWNLOAD: true
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: '^24'
|
||||
fallbackNpm: '^11.3'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
|
||||
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Run compile
|
||||
run: ./build/compile-handlebars-templates.sh
|
||||
|
||||
summary:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest-low
|
||||
needs: [changes, handlebars]
|
||||
|
||||
if: always()
|
||||
|
||||
name: test-summary
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.handlebars.result != 'success' }}; then exit 1; fi
|
||||
108
.github/workflows/node-test.yml
vendored
108
.github/workflows/node-test.yml
vendored
@@ -44,25 +44,21 @@ jobs:
|
||||
- 'apps/*/appinfo/info.xml'
|
||||
- 'core/src/**'
|
||||
- 'package.json'
|
||||
- 'package-lock.json'
|
||||
- '**/package-lock.json'
|
||||
- 'tsconfig.json'
|
||||
- '**.js'
|
||||
- '**.ts'
|
||||
- '**.vue'
|
||||
|
||||
versions:
|
||||
runs-on: ubuntu-latest-low
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: changes
|
||||
|
||||
if: ${{ github.repository_owner != 'nextcloud-gmbh' && needs.changes.outputs.src != 'false' }}
|
||||
|
||||
outputs:
|
||||
nodeVersion: ${{ steps.versions.outputs.nodeVersion }}
|
||||
npmVersion: ${{ steps.versions.outputs.npmVersion }}
|
||||
if: needs.changes.outputs.src != 'false'
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
@@ -70,85 +66,39 @@ jobs:
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: '^20'
|
||||
fallbackNpm: '^10'
|
||||
fallbackNode: '^24'
|
||||
fallbackNpm: '^11.3'
|
||||
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [versions, changes]
|
||||
|
||||
if: ${{ needs.versions.result != 'failure' && needs.changes.outputs.src != 'false' }}
|
||||
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
PUPPETEER_SKIP_DOWNLOAD: true
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version: ${{ needs.versions.outputs.nodeVersion }}
|
||||
|
||||
- name: Set up npm ${{ needs.versions.outputs.npmVersion }}
|
||||
run: npm i -g 'npm@${{ needs.versions.outputs.npmVersion }}'
|
||||
|
||||
- name: Install dependencies & build
|
||||
run: |
|
||||
npm ci
|
||||
npm run build --if-present
|
||||
|
||||
- name: Test and process coverage
|
||||
run: npm run test:coverage --if-present
|
||||
|
||||
- name: Collect coverage
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
with:
|
||||
files: ./coverage/lcov.info
|
||||
|
||||
- name: Upload test results
|
||||
if: ${{ !cancelled() }}
|
||||
uses: codecov/test-results-action@47f89e9acb64b76debcd5ea40642d25a4adced9f # v1.1.1
|
||||
|
||||
handlebars:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [versions, changes]
|
||||
|
||||
if: ${{ needs.versions.result != 'failure' && needs.changes.outputs.src != 'false' }}
|
||||
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
PUPPETEER_SKIP_DOWNLOAD: true
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Set up node ${{ needs.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
with:
|
||||
node-version: ${{ needs.versions.outputs.nodeVersion }}
|
||||
|
||||
- name: Set up npm ${{ needs.versions.outputs.npmVersion }}
|
||||
run: npm i -g 'npm@${{ needs.versions.outputs.npmVersion }}'
|
||||
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
|
||||
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
run: |
|
||||
npm ci
|
||||
|
||||
- name: Run compile
|
||||
run: ./build/compile-handlebars-templates.sh
|
||||
# - name: Test
|
||||
# run: npm run test --if-present
|
||||
|
||||
- name: Test and process coverage
|
||||
run: npm run test:coverage
|
||||
|
||||
- name: Collect coverage
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./coverage/lcov.info,./coverage/legacy/lcov.info
|
||||
|
||||
summary:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest-low
|
||||
needs: [changes, test, handlebars]
|
||||
needs: [changes, test]
|
||||
|
||||
if: always()
|
||||
|
||||
@@ -156,4 +106,4 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && (needs.test.result != 'success' || needs.handlebars.result != 'success') }}; then exit 1; fi
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.test.result != 'success' }}; then exit 1; fi
|
||||
|
||||
23
.github/workflows/node.yml
vendored
23
.github/workflows/node.yml
vendored
@@ -37,14 +37,14 @@ jobs:
|
||||
- '.github/workflows/**'
|
||||
- '**/src/**'
|
||||
- '**/appinfo/info.xml'
|
||||
- 'core/css/*'
|
||||
- 'core/img/**'
|
||||
- 'package.json'
|
||||
- 'package-lock.json'
|
||||
- '**/package-lock.json'
|
||||
- 'tsconfig.json'
|
||||
- '**.js'
|
||||
- '**.ts'
|
||||
- '**.vue'
|
||||
- 'core/css/*'
|
||||
- 'core/img/**'
|
||||
- 'version.php'
|
||||
|
||||
build:
|
||||
@@ -56,7 +56,7 @@ jobs:
|
||||
name: NPM build
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
@@ -64,17 +64,24 @@ jobs:
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: '^20'
|
||||
fallbackNpm: '^10'
|
||||
fallbackNode: '^24'
|
||||
fallbackNpm: '^11.3'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
- name: Set up npm ${{ steps.versions.outputs.npmVersion }}
|
||||
run: npm i -g 'npm@${{ steps.versions.outputs.npmVersion }}'
|
||||
|
||||
# This does not work on server as we have some git dependencies that "npm-package-lock-add-resolved" cannot handle
|
||||
# - name: Validate package-lock.json # See https://github.com/npm/cli/issues/4460
|
||||
# run: |
|
||||
# npm i -g npm-package-lock-add-resolved@1.1.4
|
||||
# npm-package-lock-add-resolved
|
||||
# git --no-pager diff --exit-code
|
||||
|
||||
- name: Install dependencies & build
|
||||
env:
|
||||
CYPRESS_INSTALL_BINARY: 0
|
||||
@@ -83,7 +90,7 @@ jobs:
|
||||
npm ci
|
||||
npm run build --if-present
|
||||
|
||||
- name: Check webpack build changes
|
||||
- name: Check build changes
|
||||
run: |
|
||||
bash -c "[[ ! \"`git status --porcelain `\" ]] || (echo 'Please recompile and commit the assets, see the section \"Show changes on failure\" for details' && exit 1)"
|
||||
|
||||
|
||||
15
.github/workflows/npm-audit-fix.yml
vendored
15
.github/workflows/npm-audit-fix.yml
vendored
@@ -24,14 +24,17 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branches: ['main', 'master', 'stable32', 'stable31', 'stable30']
|
||||
branches:
|
||||
- ${{ github.event.repository.default_branch }}
|
||||
- 'stable32'
|
||||
- 'stable31'
|
||||
|
||||
name: npm-audit-fix-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
id: checkout
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
ref: ${{ matrix.branches }}
|
||||
@@ -41,11 +44,11 @@ jobs:
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
id: versions
|
||||
with:
|
||||
fallbackNode: '^20'
|
||||
fallbackNpm: '^10'
|
||||
fallbackNode: '^24'
|
||||
fallbackNpm: '^11.3'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5.0.0
|
||||
uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6.0.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
@@ -66,7 +69,7 @@ jobs:
|
||||
|
||||
- name: Create Pull Request
|
||||
if: steps.checkout.outcome == 'success'
|
||||
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
|
||||
uses: peter-evans/create-pull-request@84ae59a2cdc2258d6fa0732dd66352dddae2a412 # v7.0.9
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: 'fix(deps): Fix npm audit'
|
||||
|
||||
6
.github/workflows/object-storage-azure.yml
vendored
6
.github/workflows/object-storage-azure.yml
vendored
@@ -73,13 +73,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -110,7 +110,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-azure
|
||||
|
||||
6
.github/workflows/object-storage-s3.yml
vendored
6
.github/workflows/object-storage-s3.yml
vendored
@@ -74,13 +74,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -116,7 +116,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-s3
|
||||
|
||||
6
.github/workflows/object-storage-swift.yml
vendored
6
.github/workflows/object-storage-swift.yml
vendored
@@ -71,13 +71,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -106,7 +106,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-swift
|
||||
|
||||
4
.github/workflows/openapi.yml
vendored
4
.github/workflows/openapi.yml
vendored
@@ -26,12 +26,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
|
||||
with:
|
||||
php-version: '8.2'
|
||||
extensions: ctype, curl, dom, fileinfo, gd, json, libxml, mbstring, openssl, pcntl, pdo, posix, session, simplexml, xml, xmlreader, xmlwriter, zip, zlib
|
||||
|
||||
8
.github/workflows/performance.yml
vendored
8
.github/workflows/performance.yml
vendored
@@ -35,14 +35,14 @@ jobs:
|
||||
exit 1
|
||||
|
||||
- name: Checkout server before PR
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
ref: ${{ github.event.pull_request.base.ref }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
@@ -98,14 +98,14 @@ jobs:
|
||||
|
||||
- name: Upload profiles
|
||||
if: always()
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
|
||||
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4
|
||||
with:
|
||||
name: profiles
|
||||
path: |
|
||||
before.json
|
||||
after.json
|
||||
|
||||
- uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
|
||||
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v7
|
||||
if: failure() && steps.compare.outcome == 'failure'
|
||||
with:
|
||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||
|
||||
4
.github/workflows/phpunit-32bits.yml
vendored
4
.github/workflows/phpunit-32bits.yml
vendored
@@ -35,7 +35,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
@@ -46,7 +46,7 @@ jobs:
|
||||
sudo apt-get install -y ffmpeg imagemagick libmagickcore-6.q16-3-extra
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, imagick, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite, apcu, ldap
|
||||
|
||||
6
.github/workflows/phpunit-mariadb.yml
vendored
6
.github/workflows/phpunit-mariadb.yml
vendored
@@ -90,13 +90,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -129,7 +129,7 @@ jobs:
|
||||
|
||||
- name: Upload db code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.db.xml
|
||||
flags: phpunit-mariadb
|
||||
|
||||
6
.github/workflows/phpunit-memcached.yml
vendored
6
.github/workflows/phpunit-memcached.yml
vendored
@@ -72,13 +72,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -103,7 +103,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-memcached
|
||||
|
||||
6
.github/workflows/phpunit-mysql-sharding.yml
vendored
6
.github/workflows/phpunit-mysql-sharding.yml
vendored
@@ -121,13 +121,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -161,7 +161,7 @@ jobs:
|
||||
|
||||
- name: Upload db code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.db.xml
|
||||
flags: phpunit-mysql
|
||||
|
||||
6
.github/workflows/phpunit-mysql.yml
vendored
6
.github/workflows/phpunit-mysql.yml
vendored
@@ -90,13 +90,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -129,7 +129,7 @@ jobs:
|
||||
|
||||
- name: Upload db code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.db.xml
|
||||
flags: phpunit-mysql
|
||||
|
||||
6
.github/workflows/phpunit-nodb.yml
vendored
6
.github/workflows/phpunit-nodb.yml
vendored
@@ -75,13 +75,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -109,7 +109,7 @@ jobs:
|
||||
|
||||
- name: Upload nodb code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.nodb.xml
|
||||
flags: phpunit-nodb
|
||||
|
||||
@@ -72,13 +72,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
|
||||
8
.github/workflows/phpunit-oci.yml
vendored
8
.github/workflows/phpunit-oci.yml
vendored
@@ -60,8 +60,6 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- oracle-versions: '11'
|
||||
php-versions: '8.2'
|
||||
- oracle-versions: '18'
|
||||
php-versions: '8.2'
|
||||
coverage: ${{ github.event_name != 'pull_request' }}
|
||||
@@ -101,13 +99,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -133,7 +131,7 @@ jobs:
|
||||
|
||||
- name: Upload db code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.db.xml
|
||||
flags: phpunit-oci
|
||||
|
||||
6
.github/workflows/phpunit-pgsql.yml
vendored
6
.github/workflows/phpunit-pgsql.yml
vendored
@@ -90,13 +90,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -124,7 +124,7 @@ jobs:
|
||||
|
||||
- name: Upload db code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.db.xml
|
||||
flags: phpunit-postgres
|
||||
|
||||
6
.github/workflows/phpunit-sqlite.yml
vendored
6
.github/workflows/phpunit-sqlite.yml
vendored
@@ -75,13 +75,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 # v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f # v2.35.5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
@@ -110,7 +110,7 @@ jobs:
|
||||
|
||||
- name: Upload db code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@fdcc8476540edceab3de004e990f80d881c6cc00 # v5.5.0
|
||||
uses: codecov/codecov-action@5a1091511ad55cbe89839c7260b706298ca349f7 # v5.5.1
|
||||
with:
|
||||
files: ./clover.db.xml
|
||||
flags: phpunit-sqlite
|
||||
|
||||
4
.github/workflows/pr-feedback.yml
vendored
4
.github/workflows/pr-feedback.yml
vendored
@@ -36,7 +36,7 @@ jobs:
|
||||
blocklist=$(curl https://raw.githubusercontent.com/nextcloud/.github/master/non-community-usernames.txt | paste -s -d, -)
|
||||
echo "blocklist=$blocklist" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- uses: nextcloud/pr-feedback-action@1883b38a033fb16f576875e0cf45f98b857655c4 # main
|
||||
- uses: nextcloud/pr-feedback-action@f0cab224dea8e1f282f9451de322f323c78fc7a5 # main
|
||||
with:
|
||||
feedback-message: |
|
||||
Hello there,
|
||||
@@ -50,6 +50,6 @@ jobs:
|
||||
|
||||
(If you believe you should not receive this message, you can add yourself to the [blocklist](https://github.com/nextcloud/.github/blob/master/non-community-usernames.txt).)
|
||||
days-before-feedback: 14
|
||||
start-date: '2024-04-30'
|
||||
start-date: '2025-06-12'
|
||||
exempt-authors: '${{ steps.blocklist.outputs.blocklist }},${{ steps.scrape.outputs.users }}'
|
||||
exempt-bots: true
|
||||
|
||||
4
.github/workflows/reuse.yml
vendored
4
.github/workflows/reuse.yml
vendored
@@ -19,9 +19,9 @@ jobs:
|
||||
runs-on: ubuntu-latest-low
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: REUSE Compliance Check
|
||||
uses: fsfe/reuse-action@bb774aa972c2a89ff34781233d275075cbddf542 # v5.0.0
|
||||
uses: fsfe/reuse-action@676e2d560c9a403aa252096d99fcab3e1132b0f5 # v6.0.0
|
||||
|
||||
2
.github/workflows/stale.yml
vendored
2
.github/workflows/stale.yml
vendored
@@ -20,7 +20,7 @@ jobs:
|
||||
issues: write
|
||||
|
||||
steps:
|
||||
- uses: actions/stale@3a9db7e6a41a89f618792c92c0e97cc736e1b13f # v9
|
||||
- uses: actions/stale@5f858e3efba33a5ca4407a664cc011ad407f2008 # v9
|
||||
with:
|
||||
repo-token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
stale-issue-message: >
|
||||
|
||||
18
.github/workflows/static-code-analysis.yml
vendored
18
.github/workflows/static-code-analysis.yml
vendored
@@ -28,13 +28,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: '8.2'
|
||||
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
@@ -59,13 +59,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: '8.2'
|
||||
extensions: ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
@@ -83,7 +83,7 @@ jobs:
|
||||
|
||||
- name: Upload Security Analysis results to GitHub
|
||||
if: always()
|
||||
uses: github/codeql-action/upload-sarif@51f77329afa6477de8c49fc9c7046c15b9a4e79d # v3
|
||||
uses: github/codeql-action/upload-sarif@fdbfb4d2750291e159f0156def62b853c2798ca2 # v3
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
||||
@@ -94,13 +94,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: '8.2'
|
||||
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
@@ -125,13 +125,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
|
||||
uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
uses: shivammathur/setup-php@bf6b4fbd49ca58e4608c9c89fba0b8d90bd2a39f #v2.35.5
|
||||
with:
|
||||
php-version: '8.2'
|
||||
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
|
||||
4
.github/workflows/update-cacert-bundle.yml
vendored
4
.github/workflows/update-cacert-bundle.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
||||
name: update-ca-certificate-bundle-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
ref: ${{ matrix.branches }}
|
||||
@@ -32,7 +32,7 @@ jobs:
|
||||
run: curl --etag-compare build/ca-bundle-etag.txt --etag-save build/ca-bundle-etag.txt --output resources/config/ca-bundle.crt https://curl.se/ca/cacert.pem
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e
|
||||
uses: peter-evans/create-pull-request@84ae59a2cdc2258d6fa0732dd66352dddae2a412
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: 'fix(security): Update CA certificate bundle'
|
||||
|
||||
@@ -22,7 +22,7 @@ jobs:
|
||||
name: update-code-signing-crl-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
ref: ${{ matrix.branches }}
|
||||
@@ -35,7 +35,7 @@ jobs:
|
||||
run: openssl crl -verify -in resources/codesigning/root.crl -CAfile resources/codesigning/root.crt -noout
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e
|
||||
uses: peter-evans/create-pull-request@84ae59a2cdc2258d6fa0732dd66352dddae2a412
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: 'fix(security): Update code signing revocation list'
|
||||
|
||||
@@ -16,7 +16,7 @@ jobs:
|
||||
runs-on: ubuntu-latest-low
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
||||
- uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
@@ -107,7 +107,7 @@ jobs:
|
||||
fi
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e
|
||||
uses: peter-evans/create-pull-request@84ae59a2cdc2258d6fa0732dd66352dddae2a412
|
||||
if: steps.update-files.outputs.CHANGES_MADE == 'true'
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
|
||||
2
.github/workflows/update-stable-titles.yml
vendored
2
.github/workflows/update-stable-titles.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
||||
run: sleep 15
|
||||
|
||||
- name: Get PR details and update title
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
script: |
|
||||
|
||||
238
.htaccess
238
.htaccess
@@ -1,100 +1,178 @@
|
||||
<IfModule mod_headers.c>
|
||||
<IfModule mod_setenvif.c>
|
||||
<IfModule mod_fcgid.c>
|
||||
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
|
||||
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
|
||||
<IfModule mod_setenvif.c>
|
||||
<IfModule mod_fcgid.c>
|
||||
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
|
||||
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
|
||||
</IfModule>
|
||||
<IfModule mod_proxy_fcgi.c>
|
||||
SetEnvIfNoCase Authorization "(.+)" HTTP_AUTHORIZATION=$1
|
||||
</IfModule>
|
||||
<IfModule mod_lsapi.c>
|
||||
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
|
||||
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
<IfModule mod_proxy_fcgi.c>
|
||||
SetEnvIfNoCase Authorization "(.+)" HTTP_AUTHORIZATION=$1
|
||||
|
||||
<IfModule mod_env.c>
|
||||
# Add security and privacy related headers
|
||||
# Avoid doubled headers by unsetting headers in "onsuccess" table,
|
||||
# then add headers to "always" table: https://github.com/nextcloud/server/pull/19002
|
||||
|
||||
<If "%{REQUEST_URI} =~ m#/login$#">
|
||||
# Only on the login page we need any Origin or Referer header set.
|
||||
Header onsuccess unset Referrer-Policy
|
||||
Header always set Referrer-Policy "same-origin"
|
||||
</If>
|
||||
<Else>
|
||||
Header onsuccess unset Referrer-Policy
|
||||
Header always set Referrer-Policy "no-referrer"
|
||||
</Else>
|
||||
|
||||
Header onsuccess unset X-Content-Type-Options
|
||||
Header always set X-Content-Type-Options "nosniff"
|
||||
|
||||
Header onsuccess unset X-Frame-Options
|
||||
Header always set X-Frame-Options "SAMEORIGIN"
|
||||
|
||||
Header onsuccess unset X-Permitted-Cross-Domain-Policies
|
||||
Header always set X-Permitted-Cross-Domain-Policies "none"
|
||||
|
||||
Header onsuccess unset X-Robots-Tag
|
||||
Header always set X-Robots-Tag "noindex, nofollow"
|
||||
|
||||
SetEnv modHeadersAvailable true
|
||||
</IfModule>
|
||||
<IfModule mod_lsapi.c>
|
||||
SetEnvIfNoCase ^Authorization$ "(.+)" XAUTHORIZATION=$1
|
||||
RequestHeader set XAuthorization %{XAUTHORIZATION}e env=XAUTHORIZATION
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_env.c>
|
||||
# Add security and privacy related headers
|
||||
# Avoid doubled headers by unsetting headers in "onsuccess" table,
|
||||
# then add headers to "always" table: https://github.com/nextcloud/server/pull/19002
|
||||
# Add cache control for static resources
|
||||
<FilesMatch "\.(css|js|mjs|svg|gif|png|jpg|webp|ico|wasm|tflite)$">
|
||||
<If "%{QUERY_STRING} =~ /(^|&)v=/">
|
||||
Header set Cache-Control "max-age=15778463, immutable"
|
||||
</If>
|
||||
<Else>
|
||||
Header set Cache-Control "max-age=15778463"
|
||||
</Else>
|
||||
</FilesMatch>
|
||||
|
||||
<If "%{REQUEST_URI} =~ m#/login$#">
|
||||
# Only on the login page we need any Origin or Referer header set.
|
||||
Header onsuccess unset Referrer-Policy
|
||||
Header always set Referrer-Policy "same-origin"
|
||||
</If>
|
||||
<Else>
|
||||
Header onsuccess unset Referrer-Policy
|
||||
Header always set Referrer-Policy "no-referrer"
|
||||
</Else>
|
||||
|
||||
Header onsuccess unset X-Content-Type-Options
|
||||
Header always set X-Content-Type-Options "nosniff"
|
||||
|
||||
Header onsuccess unset X-Frame-Options
|
||||
Header always set X-Frame-Options "SAMEORIGIN"
|
||||
|
||||
Header onsuccess unset X-Permitted-Cross-Domain-Policies
|
||||
Header always set X-Permitted-Cross-Domain-Policies "none"
|
||||
|
||||
Header onsuccess unset X-Robots-Tag
|
||||
Header always set X-Robots-Tag "noindex, nofollow"
|
||||
|
||||
SetEnv modHeadersAvailable true
|
||||
</IfModule>
|
||||
|
||||
# Add cache control for static resources
|
||||
<FilesMatch "\.(css|js|mjs|svg|gif|png|jpg|webp|ico|wasm|tflite)$">
|
||||
<If "%{QUERY_STRING} =~ /(^|&)v=/">
|
||||
Header set Cache-Control "max-age=15778463, immutable"
|
||||
</If>
|
||||
<Else>
|
||||
Header set Cache-Control "max-age=15778463"
|
||||
</Else>
|
||||
</FilesMatch>
|
||||
|
||||
# Let browsers cache OTF and WOFF files for a week
|
||||
<FilesMatch "\.(otf|woff2?)$">
|
||||
Header set Cache-Control "max-age=604800"
|
||||
</FilesMatch>
|
||||
# Let browsers cache OTF and WOFF files for a week
|
||||
<FilesMatch "\.(otf|woff2?)$">
|
||||
Header set Cache-Control "max-age=604800"
|
||||
</FilesMatch>
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_php.c>
|
||||
php_value default_charset 'UTF-8'
|
||||
php_value output_buffering 0
|
||||
<IfModule mod_env.c>
|
||||
SetEnv htaccessWorking true
|
||||
</IfModule>
|
||||
php_value default_charset 'UTF-8'
|
||||
php_value output_buffering 0
|
||||
<IfModule mod_env.c>
|
||||
SetEnv htaccessWorking true
|
||||
</IfModule>
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_mime.c>
|
||||
AddType image/svg+xml svg svgz
|
||||
AddType application/wasm wasm
|
||||
AddEncoding gzip svgz
|
||||
# Serve ESM javascript files (.mjs) with correct mime type
|
||||
AddType text/javascript js mjs
|
||||
AddType image/svg+xml svg svgz
|
||||
AddType application/wasm wasm
|
||||
AddEncoding gzip svgz
|
||||
# Serve ESM javascript files (.mjs) with correct mime type
|
||||
AddType text/javascript js mjs
|
||||
</IfModule>
|
||||
|
||||
<IfModule mod_dir.c>
|
||||
DirectoryIndex index.php index.html
|
||||
DirectoryIndex index.php index.html
|
||||
</IfModule>
|
||||
|
||||
<IfModule pagespeed_module>
|
||||
ModPagespeed Off
|
||||
ModPagespeed Off
|
||||
</IfModule>
|
||||
|
||||
#############
|
||||
#### Rewrites
|
||||
#############
|
||||
|
||||
<IfModule mod_rewrite.c>
|
||||
RewriteEngine on
|
||||
RewriteCond %{HTTP_USER_AGENT} DavClnt
|
||||
RewriteRule ^$ /remote.php/webdav/ [L,R=302]
|
||||
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
||||
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
|
||||
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
|
||||
RewriteRule ^remote/(.*) remote.php [QSA,L]
|
||||
RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
|
||||
RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L]
|
||||
RewriteRule ^ocm-provider/?$ index.php [QSA,L]
|
||||
RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
|
||||
RewriteEngine on
|
||||
|
||||
##
|
||||
## Rule: Workaround for WebDAV with apache+php-cgi
|
||||
##
|
||||
## Context:
|
||||
## - Sets the environment variable `HTTP_AUTHORIZATION` to the value of the `Authorization` request header
|
||||
## - Always executed before and along with other rules (no `L` used)
|
||||
## - XXX: *May* be replaced with an equivalent SetEnvIf in theory
|
||||
## - XXX: SetEnvIf approach is already in use above for mod_proxy_cgi / mod_lsapi / mod_fcgid
|
||||
##
|
||||
|
||||
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
||||
|
||||
##
|
||||
## Rule: Workaround for WebDAV with MS DavClnt
|
||||
##
|
||||
## Context:
|
||||
## - DavClnt attempts an OPTIONS request against `/` instead of the specified endpoint
|
||||
## - Redirects the client to the endpoint rather than the login page (which confuses DavClnt)
|
||||
##
|
||||
|
||||
RewriteCond %{HTTP_USER_AGENT} DavClnt
|
||||
RewriteRule ^$ /remote.php/webdav/ [L,R=302]
|
||||
|
||||
##
|
||||
## Rule: Map the RFC 8615 / RFC 6764 compliant well-known URI for CardDAV to our Remote DAV endpoint
|
||||
##
|
||||
|
||||
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
|
||||
|
||||
##
|
||||
## Rule: Map the RFC 8615 / RFC 6764 compliant well-known URI for CalDAV to our Remote DAV endpoint
|
||||
##
|
||||
|
||||
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
|
||||
|
||||
##
|
||||
## Rule: Map /remote* --> /remote.php* including the query string
|
||||
##
|
||||
## Context:
|
||||
## - XXX: `QSA` seems unnecessary (no-op) here (query string is passed by default when the replacement URI doesn't contain a query string)
|
||||
## - XXX: Is this even used anymore? Seems a relic from <NC12
|
||||
##
|
||||
|
||||
RewriteRule ^remote/(.*) remote.php [QSA,L]
|
||||
|
||||
##
|
||||
## Rule: Prevent access to non-public files
|
||||
##
|
||||
|
||||
RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
|
||||
|
||||
##
|
||||
## Rule: Maps most RFC 8615 compliant well-known URIs to our main frontend controller (/index.php) by default
|
||||
##
|
||||
## Context:
|
||||
## - Intentionally excludes URIs used for HTTPS certificate verifications
|
||||
## - RFC 8555 / ACME HTTP Challenges (acme-challenge)
|
||||
## - File-based Validations (pki-validation)
|
||||
## - XXX: `QSA` seems unnecessary (no-op) here (query string is passed by default when the replacement URI doesn't contain a query string)
|
||||
## - XXX: Sometimes we are using `/index.php` and other times `index.php` as our replacement URI; this may be incorrect
|
||||
##
|
||||
|
||||
RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L]
|
||||
|
||||
##
|
||||
## Rule: Map the ocm-provider handling to our main frontend controller (/index.php)
|
||||
##
|
||||
## Context:
|
||||
## - XXX: `QSA` seems unnecessary (no-op) here (query string is passed by default when the replacement URI doesn't contain a query string)
|
||||
## - XXX: Sometimes we are using `/index.php` and other times `index.php` as our replacement URI; this may be incorrect
|
||||
##
|
||||
|
||||
RewriteRule ^ocm-provider/?$ index.php [QSA,L]
|
||||
|
||||
##
|
||||
## Rule: Prevent access to more non-public files
|
||||
##
|
||||
## Context:
|
||||
## - XXX It may make sense to merge some of these with the others (i.e. the ones that don't need to be last)
|
||||
##
|
||||
|
||||
RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]
|
||||
|
||||
</IfModule>
|
||||
|
||||
# Clients like xDavv5 on Android, or Cyberduck, use chunked requests.
|
||||
@@ -105,16 +183,18 @@
|
||||
# Here are more information about the issue:
|
||||
# - https://docs.cyberduck.io/mountainduck/issues/fastcgi/
|
||||
# - https://docs.nextcloud.com/server/latest/admin_manual/issues/general_troubleshooting.html#troubleshooting-webdav
|
||||
|
||||
<IfModule mod_setenvif.c>
|
||||
SetEnvIfNoCase Transfer-Encoding "chunked" proxy-sendcl=1
|
||||
SetEnvIfNoCase Transfer-Encoding "chunked" proxy-sendcl=1
|
||||
</IfModule>
|
||||
|
||||
# Apache disabled the sending of the server-side content-length header
|
||||
# in their 2.4.59 patch updated which breaks some use-cases in Nextcloud.
|
||||
# Setting ap_trust_cgilike_cl allows to bring back the usual behaviour.
|
||||
# See https://bz.apache.org/bugzilla/show_bug.cgi?id=68973
|
||||
|
||||
<IfModule mod_env.c>
|
||||
SetEnv ap_trust_cgilike_cl
|
||||
SetEnv ap_trust_cgilike_cl
|
||||
</IfModule>
|
||||
|
||||
AddDefaultCharset utf-8
|
||||
|
||||
@@ -400,7 +400,7 @@ SPDX-FileCopyrightText = "2019 Fabian Wiktor <https://www.pexels.com/photo/green
|
||||
SPDX-License-Identifier = "CC0-1.0"
|
||||
|
||||
[[annotations]]
|
||||
path = ["openapi.json", ".envrc", "flake.nix", "flake.lock", "build/eslint-baseline.json"]
|
||||
path = ["openapi.json", ".envrc", "flake.nix", "flake.lock", "build/eslint-baseline.json", "build/eslint-baseline-legacy.json"]
|
||||
precedence = "aggregate"
|
||||
SPDX-FileCopyrightText = "2025 Nextcloud GmbH and Nextcloud contributors"
|
||||
SPDX-License-Identifier = "AGPL-3.0-or-later"
|
||||
|
||||
@@ -17,7 +17,7 @@ OC.L10N.register(
|
||||
"Delete comment" : "Smazat komentář",
|
||||
"Cancel edit" : "Zrušit úpravu",
|
||||
"New comment" : "Nový komentář",
|
||||
"Write a comment …" : "Napsat komentář …",
|
||||
"Write a comment …" : "Napsat komentář …",
|
||||
"Post comment" : "Odeslat komentář",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ pro zmínění, : pro emotikony, / pro inteligentní výběr",
|
||||
"Could not reload comments" : "Znovunačtení komentářů se nezdařilo",
|
||||
@@ -32,6 +32,6 @@ OC.L10N.register(
|
||||
"Comment deleted" : "Komentář smazán",
|
||||
"An error occurred while trying to delete the comment" : "Došlo k chybě při pokusu o smazání komentáře",
|
||||
"An error occurred while trying to create the comment" : "Došlo k chybě při pokusu o vytvoření komentáře",
|
||||
"Write a comment …" : "Napsat komentář…"
|
||||
"Write a comment …" : "Napsat komentář …"
|
||||
},
|
||||
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"Delete comment" : "Smazat komentář",
|
||||
"Cancel edit" : "Zrušit úpravu",
|
||||
"New comment" : "Nový komentář",
|
||||
"Write a comment …" : "Napsat komentář …",
|
||||
"Write a comment …" : "Napsat komentář …",
|
||||
"Post comment" : "Odeslat komentář",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ pro zmínění, : pro emotikony, / pro inteligentní výběr",
|
||||
"Could not reload comments" : "Znovunačtení komentářů se nezdařilo",
|
||||
@@ -30,6 +30,6 @@
|
||||
"Comment deleted" : "Komentář smazán",
|
||||
"An error occurred while trying to delete the comment" : "Došlo k chybě při pokusu o smazání komentáře",
|
||||
"An error occurred while trying to create the comment" : "Došlo k chybě při pokusu o vytvoření komentáře",
|
||||
"Write a comment …" : "Napsat komentář…"
|
||||
"Write a comment …" : "Napsat komentář …"
|
||||
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
|
||||
}
|
||||
@@ -72,7 +72,7 @@
|
||||
:contenteditable="!loading"
|
||||
:label="editor ? t('comments', 'New comment') : t('comments', 'Edit comment')"
|
||||
:placeholder="t('comments', 'Write a comment …')"
|
||||
:value="localMessage"
|
||||
:model-value="localMessage"
|
||||
:user-data="userData"
|
||||
aria-describedby="tab-comments__editor-description"
|
||||
@update:value="updateLocalMessage"
|
||||
@@ -103,6 +103,7 @@
|
||||
:class="{ 'comment__message--expanded': expanded }"
|
||||
:text="richContent.message"
|
||||
:arguments="richContent.mentions"
|
||||
use-markdown
|
||||
@click.native="onExpand" />
|
||||
</div>
|
||||
</component>
|
||||
@@ -376,13 +377,19 @@ $comment-padding: 10px;
|
||||
&__message {
|
||||
white-space: pre-wrap;
|
||||
word-break: normal;
|
||||
max-height: 70px;
|
||||
overflow: hidden;
|
||||
max-height: 200px;
|
||||
overflow: auto;
|
||||
scrollbar-gutter: stable;
|
||||
scrollbar-width: thin;
|
||||
margin-top: -6px;
|
||||
&--expanded {
|
||||
max-height: none;
|
||||
overflow: visible;
|
||||
}
|
||||
:deep(img) {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -5,14 +5,11 @@
|
||||
|
||||
import { getCSPNonce } from '@nextcloud/auth'
|
||||
import { t } from '@nextcloud/l10n'
|
||||
import VTooltip from '@nextcloud/vue/directives/Tooltip'
|
||||
import Vue from 'vue'
|
||||
import DashboardApp from './DashboardApp.vue'
|
||||
|
||||
__webpack_nonce__ = getCSPNonce()
|
||||
|
||||
Vue.directive('Tooltip', VTooltip)
|
||||
|
||||
Vue.prototype.t = t
|
||||
|
||||
const Dashboard = Vue.extend(DashboardApp)
|
||||
|
||||
@@ -164,7 +164,7 @@ OC.L10N.register(
|
||||
"Occurring:" : "Opakuje se::",
|
||||
"Accept" : "Přijmout",
|
||||
"Decline" : "Odmítnout",
|
||||
"More options …" : "Další volby…",
|
||||
"More options …" : "Další volby …",
|
||||
"More options at %s" : "Další volby viz %s",
|
||||
"Monday" : "pondělí",
|
||||
"Tuesday" : "úterý",
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
"Occurring:" : "Opakuje se::",
|
||||
"Accept" : "Přijmout",
|
||||
"Decline" : "Odmítnout",
|
||||
"More options …" : "Další volby…",
|
||||
"More options …" : "Další volby …",
|
||||
"More options at %s" : "Další volby viz %s",
|
||||
"Monday" : "pondělí",
|
||||
"Tuesday" : "úterý",
|
||||
|
||||
@@ -167,7 +167,7 @@ class IMipPlugin extends SabreIMipPlugin {
|
||||
$iTipMessage->scheduleStatus = '1.0;We got the message, but it\'s not significant enough to warrant an email';
|
||||
return;
|
||||
}
|
||||
$this->imipService->setL10n($attendee);
|
||||
$this->imipService->setL10nFromAttendee($attendee);
|
||||
|
||||
// Build the sender name.
|
||||
// Due to a bug in sabre, the senderName property for an iTIP message can actually also be a VObject Property
|
||||
|
||||
@@ -14,6 +14,7 @@ use OCP\AppFramework\Utility\ITimeFactory;
|
||||
use OCP\IConfig;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\IL10N;
|
||||
use OCP\IUserManager;
|
||||
use OCP\L10N\IFactory as L10NFactory;
|
||||
use OCP\Mail\IEMailTemplate;
|
||||
use OCP\Security\ISecureRandom;
|
||||
@@ -44,6 +45,7 @@ class IMipService {
|
||||
private ISecureRandom $random,
|
||||
private L10NFactory $l10nFactory,
|
||||
private ITimeFactory $timeFactory,
|
||||
private readonly IUserManager $userManager,
|
||||
) {
|
||||
$language = $this->l10nFactory->findGenericLanguage();
|
||||
$locale = $this->l10nFactory->findLocale($language);
|
||||
@@ -870,18 +872,35 @@ class IMipService {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Property|null $attendee
|
||||
* @param Property $attendee
|
||||
*/
|
||||
public function setL10n(?Property $attendee = null) {
|
||||
if ($attendee === null) {
|
||||
return;
|
||||
public function setL10nFromAttendee(Property $attendee) {
|
||||
$language = null;
|
||||
$locale = null;
|
||||
// check if the attendee is a system user
|
||||
$userAddress = $attendee->getValue();
|
||||
if (str_starts_with($userAddress, 'mailto:')) {
|
||||
$userAddress = substr($userAddress, 7);
|
||||
}
|
||||
|
||||
$lang = $attendee->offsetGet('LANGUAGE');
|
||||
if ($lang instanceof Parameter) {
|
||||
$lang = $lang->getValue();
|
||||
$this->l10n = $this->l10nFactory->get('dav', $lang);
|
||||
$users = $this->userManager->getByEmail($userAddress);
|
||||
if ($users !== []) {
|
||||
$user = array_shift($users);
|
||||
$language = $this->config->getUserValue($user->getUID(), 'core', 'lang', null);
|
||||
$locale = $this->config->getUserValue($user->getUID(), 'core', 'locale', null);
|
||||
}
|
||||
// fallback to attendee LANGUAGE parameter if language not set
|
||||
if ($language === null && isset($attendee['LANGUAGE']) && $attendee['LANGUAGE'] instanceof Parameter) {
|
||||
$language = $attendee['LANGUAGE']->getValue();
|
||||
}
|
||||
// fallback to system language if language not set
|
||||
if ($language === null) {
|
||||
$language = $this->l10nFactory->findGenericLanguage();
|
||||
}
|
||||
// fallback to system locale if locale not set
|
||||
if ($locale === null) {
|
||||
$locale = $this->l10nFactory->findLocale($language);
|
||||
}
|
||||
$this->l10n = $this->l10nFactory->get('dav', $language, $locale);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -205,7 +205,7 @@ export default {
|
||||
/**
|
||||
* Debounce getSuggestions
|
||||
*
|
||||
* @param {...*} args the arguments
|
||||
* @param {[string]} args - The arguments
|
||||
*/
|
||||
debounceGetSuggestions: debounce(function(...args) {
|
||||
this.getSuggestions(...args)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<template>
|
||||
<div class="example-contact-settings">
|
||||
<NcCheckboxRadioSwitch
|
||||
:checked="enableDefaultContact"
|
||||
:model-value="enableDefaultContact"
|
||||
type="switch"
|
||||
@update:model-value="updateEnableDefaultContact">
|
||||
{{ t('dav', "Add example contact to user's address book when they first log in") }}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<template>
|
||||
<div class="example-event-settings">
|
||||
<NcCheckboxRadioSwitch
|
||||
:checked="createExampleEvent"
|
||||
:model-value="createExampleEvent"
|
||||
:disabled="savingConfig"
|
||||
type="switch"
|
||||
@update:model-value="updateCreateExampleEvent">
|
||||
|
||||
@@ -20,6 +20,7 @@ use OCP\IConfig;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\IURLGenerator;
|
||||
use OCP\IUser;
|
||||
use OCP\IUserManager;
|
||||
use OCP\IUserSession;
|
||||
use OCP\L10N\IFactory;
|
||||
use OCP\Mail\IMailer;
|
||||
@@ -55,6 +56,7 @@ class IMipPluginCharsetTest extends TestCase {
|
||||
private IUrlGenerator&MockObject $urlGenerator;
|
||||
private IUserSession&MockObject $userSession;
|
||||
private LoggerInterface $logger;
|
||||
private IUserManager&MockObject $userManager;
|
||||
|
||||
// Services
|
||||
private EventComparisonService $eventComparisonService;
|
||||
@@ -86,6 +88,8 @@ class IMipPluginCharsetTest extends TestCase {
|
||||
->willReturn('en_US');
|
||||
$this->l10nFactory->method('get')
|
||||
->willReturn($l10n);
|
||||
$this->userManager = $this->createMock(IUserManager::class);
|
||||
$this->userManager->method('getByEmail')->willReturn([]);
|
||||
$this->imipService = new IMipService(
|
||||
$this->urlGenerator,
|
||||
$this->config,
|
||||
@@ -93,6 +97,7 @@ class IMipPluginCharsetTest extends TestCase {
|
||||
$this->random,
|
||||
$this->l10nFactory,
|
||||
$this->timeFactory,
|
||||
$this->userManager
|
||||
);
|
||||
|
||||
// EventComparisonService
|
||||
|
||||
@@ -16,6 +16,7 @@ use OCP\AppFramework\Utility\ITimeFactory;
|
||||
use OCP\IConfig;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\IL10N;
|
||||
use OCP\IUserManager;
|
||||
use OCP\L10N\IFactory;
|
||||
use OCP\Security\ISecureRandom;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
@@ -32,6 +33,7 @@ class IMipServiceTest extends TestCase {
|
||||
private IL10N&MockObject $l10n;
|
||||
private ITimeFactory&MockObject $timeFactory;
|
||||
private IMipService $service;
|
||||
private IUserManager&MockObject $userManager;
|
||||
|
||||
|
||||
private VCalendar $vCalendar1a;
|
||||
@@ -51,6 +53,7 @@ class IMipServiceTest extends TestCase {
|
||||
$this->l10nFactory = $this->createMock(IFactory::class);
|
||||
$this->l10n = $this->createMock(IL10N::class);
|
||||
$this->timeFactory = $this->createMock(ITimeFactory::class);
|
||||
$this->userManager = $this->createMock(IUserManager::class);
|
||||
$this->l10nFactory->expects(self::once())
|
||||
->method('findGenericLanguage')
|
||||
->willReturn('en');
|
||||
@@ -64,7 +67,8 @@ class IMipServiceTest extends TestCase {
|
||||
$this->db,
|
||||
$this->random,
|
||||
$this->l10nFactory,
|
||||
$this->timeFactory
|
||||
$this->timeFactory,
|
||||
$this->userManager
|
||||
);
|
||||
|
||||
// construct calendar with a 1 hour event and same start/end time zones
|
||||
|
||||
@@ -28,6 +28,7 @@ OC.L10N.register(
|
||||
"Bad Signature" : "Má Assinatura",
|
||||
"Missing Signature" : "Assinatura em Falta",
|
||||
"one-time password for server-side-encryption" : "palavra-passe de utilização única para a encriptação do lado do servidor",
|
||||
"This app provides the (default) cryptography implementation for Nextcloud's Server-side Encryption (SSE) feature.\n\n\t\t\t**Encryption Details**\n\t\t\t* **Cipher Mode:** AES-256-CTR (default)\n\t\t\t* **Authentication:** HMAC-SHA256\n\n\t\t\t**Important Warnings**\n\t\t\t* **DANGER:** Do not disable this application until all files have been decrypted (`occ encryption:decrypt-all`).\n\t\t\t* **WARNING**: Reverting to non-encrypted file storage after activation requires command-line access. The action is permanent via the Web UI.\"\n\n\t\t\t**Notes for Existing Files**\n\t\t\t* By default, enabling SSE does not encrypt existing files; only new files will be encrypted.\n\t\t\t* To encrypt all existing files, use the command `occ encryption:encrypt-all`.\n\n\t\t\t**Before You Begin**\n\t\t\t* **Read the Documentation:** Before you enable SSE, encrypt existing files, or disable SSE, it is critical to \n\t\t\t\tread the documentation to understand implications and the appropriate procedures to avoid data loss." : "Esta aplicação fornece a implementação de encriptação (padrão) para a funcionalidade de Encriptação do Lado do Servidor (SSE) do Nextcloud.\n\n\t\t\t**Detalhes da Encriptação**\n\t\t\t* **Modo de Encriptação:** AES-256-CTR (padrão)\n\t\t\t* **Autenticação:** HMAC-SHA256\n\t\t\t**Avisos Importantes**\n\t\t\t* **PERIGO:** Não desative esta aplicação até que todos os ficheiros tenham sido desencriptados (`occ encryption:decrypt-all`).\n\t\t\t* **AVISO**: Reverter para o armazenamento de ficheiros não encriptados após a ativação requer acesso à linha de comandos. A ação é permanente através da interface web.\n\n\t\t\t**Observações para Ficheiros Existentes**\n\t\t\t* Por predefinição, a ativação do SSE não encripta os ficheiros existentes; apenas os novos ficheiros serão encriptados.\n\t\t\t* Para encriptar todos os ficheiros existentes, utilize o comando `occ encryption:encrypt-all`.\n\t\t\t**Antes de Começar**\n\t\t\t* **Leia a Documentação:** Antes de ativar o SSE, encriptar os ficheiros existentes ou desativar o SSE, é fundamental \n\t\t\t\tler a documentação para compreender as implicações e os procedimentos adequados para evitar a perda de dados.",
|
||||
"Default encryption module" : "Módulo de cifra padrão",
|
||||
"Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicação de encriptação está ativada mas as suas chaves não foram inicializadas, termine a sessão e inicie sessão novamente",
|
||||
"Encrypt the home storage" : "Encriptar o armazenamento do início",
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
"Bad Signature" : "Má Assinatura",
|
||||
"Missing Signature" : "Assinatura em Falta",
|
||||
"one-time password for server-side-encryption" : "palavra-passe de utilização única para a encriptação do lado do servidor",
|
||||
"This app provides the (default) cryptography implementation for Nextcloud's Server-side Encryption (SSE) feature.\n\n\t\t\t**Encryption Details**\n\t\t\t* **Cipher Mode:** AES-256-CTR (default)\n\t\t\t* **Authentication:** HMAC-SHA256\n\n\t\t\t**Important Warnings**\n\t\t\t* **DANGER:** Do not disable this application until all files have been decrypted (`occ encryption:decrypt-all`).\n\t\t\t* **WARNING**: Reverting to non-encrypted file storage after activation requires command-line access. The action is permanent via the Web UI.\"\n\n\t\t\t**Notes for Existing Files**\n\t\t\t* By default, enabling SSE does not encrypt existing files; only new files will be encrypted.\n\t\t\t* To encrypt all existing files, use the command `occ encryption:encrypt-all`.\n\n\t\t\t**Before You Begin**\n\t\t\t* **Read the Documentation:** Before you enable SSE, encrypt existing files, or disable SSE, it is critical to \n\t\t\t\tread the documentation to understand implications and the appropriate procedures to avoid data loss." : "Esta aplicação fornece a implementação de encriptação (padrão) para a funcionalidade de Encriptação do Lado do Servidor (SSE) do Nextcloud.\n\n\t\t\t**Detalhes da Encriptação**\n\t\t\t* **Modo de Encriptação:** AES-256-CTR (padrão)\n\t\t\t* **Autenticação:** HMAC-SHA256\n\t\t\t**Avisos Importantes**\n\t\t\t* **PERIGO:** Não desative esta aplicação até que todos os ficheiros tenham sido desencriptados (`occ encryption:decrypt-all`).\n\t\t\t* **AVISO**: Reverter para o armazenamento de ficheiros não encriptados após a ativação requer acesso à linha de comandos. A ação é permanente através da interface web.\n\n\t\t\t**Observações para Ficheiros Existentes**\n\t\t\t* Por predefinição, a ativação do SSE não encripta os ficheiros existentes; apenas os novos ficheiros serão encriptados.\n\t\t\t* Para encriptar todos os ficheiros existentes, utilize o comando `occ encryption:encrypt-all`.\n\t\t\t**Antes de Começar**\n\t\t\t* **Leia a Documentação:** Antes de ativar o SSE, encriptar os ficheiros existentes ou desativar o SSE, é fundamental \n\t\t\t\tler a documentação para compreender as implicações e os procedimentos adequados para evitar a perda de dados.",
|
||||
"Default encryption module" : "Módulo de cifra padrão",
|
||||
"Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "A aplicação de encriptação está ativada mas as suas chaves não foram inicializadas, termine a sessão e inicie sessão novamente",
|
||||
"Encrypt the home storage" : "Encriptar o armazenamento do início",
|
||||
|
||||
@@ -278,7 +278,7 @@ class EncryptAll {
|
||||
$this->writePasswordsToFile($newPasswords);
|
||||
|
||||
$this->output->writeln('');
|
||||
$question = new ConfirmationQuestion('Do you want to send the passwords directly to the users by mail? (y/n) ', false);
|
||||
$question = new ConfirmationQuestion('Do you want to send the passwords directly to the users by mail? (y/n) ', true);
|
||||
if ($this->questionHelper->ask($this->input, $this->output, $question)) {
|
||||
$this->sendPasswordsByMail();
|
||||
}
|
||||
|
||||
@@ -8,32 +8,32 @@
|
||||
:description="t('federatedfilesharing', 'Adjust how people can share between servers. This includes shares between people on this server as well if they are using federated sharing.')"
|
||||
:doc-url="sharingFederatedDocUrl">
|
||||
<NcCheckboxRadioSwitch
|
||||
v-model="outgoingServer2serverShareEnabled"
|
||||
type="switch"
|
||||
:checked.sync="outgoingServer2serverShareEnabled"
|
||||
@update:checked="update('outgoing_server2server_share_enabled', outgoingServer2serverShareEnabled)">
|
||||
@update:modelValue="update('outgoing_server2server_share_enabled', outgoingServer2serverShareEnabled)">
|
||||
{{ t('federatedfilesharing', 'Allow people on this server to send shares to other servers (this option also allows WebDAV access to public shares)') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
|
||||
<NcCheckboxRadioSwitch
|
||||
v-model="incomingServer2serverShareEnabled"
|
||||
type="switch"
|
||||
:checked.sync="incomingServer2serverShareEnabled"
|
||||
@update:checked="update('incoming_server2server_share_enabled', incomingServer2serverShareEnabled)">
|
||||
@update:modelValue="update('incoming_server2server_share_enabled', incomingServer2serverShareEnabled)">
|
||||
{{ t('federatedfilesharing', 'Allow people on this server to receive shares from other servers') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
|
||||
<NcCheckboxRadioSwitch
|
||||
v-if="federatedGroupSharingSupported"
|
||||
v-model="outgoingServer2serverGroupShareEnabled"
|
||||
type="switch"
|
||||
:checked.sync="outgoingServer2serverGroupShareEnabled"
|
||||
@update:checked="update('outgoing_server2server_group_share_enabled', outgoingServer2serverGroupShareEnabled)">
|
||||
@update:modelValue="update('outgoing_server2server_group_share_enabled', outgoingServer2serverGroupShareEnabled)">
|
||||
{{ t('federatedfilesharing', 'Allow people on this server to send shares to groups on other servers') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
|
||||
<NcCheckboxRadioSwitch
|
||||
v-if="federatedGroupSharingSupported"
|
||||
v-model="incomingServer2serverGroupShareEnabled"
|
||||
type="switch"
|
||||
:checked.sync="incomingServer2serverGroupShareEnabled"
|
||||
@update:checked="update('incoming_server2server_group_share_enabled', incomingServer2serverGroupShareEnabled)">
|
||||
@update:modelValue="update('incoming_server2server_group_share_enabled', incomingServer2serverGroupShareEnabled)">
|
||||
{{ t('federatedfilesharing', 'Allow people on this server to receive group shares from other servers') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
|
||||
@@ -42,17 +42,17 @@
|
||||
|
||||
<NcCheckboxRadioSwitch
|
||||
type="switch"
|
||||
:checked="lookupServerEnabled"
|
||||
:model-value="lookupServerEnabled"
|
||||
disabled
|
||||
@update:checked="showLookupServerConfirmation">
|
||||
@update:modelValue="showLookupServerConfirmation">
|
||||
{{ t('federatedfilesharing', 'Search global and public address book for people') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
|
||||
<NcCheckboxRadioSwitch
|
||||
type="switch"
|
||||
:checked="lookupServerUploadEnabled"
|
||||
:model-value="lookupServerUploadEnabled"
|
||||
disabled
|
||||
@update:checked="showLookupServerUploadConfirmation">
|
||||
@update:modelValue="showLookupServerUploadConfirmation">
|
||||
{{ t('federatedfilesharing', 'Allow people to publish their data to a global and public address book') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
</fieldset>
|
||||
@@ -63,9 +63,9 @@
|
||||
{{ t('federatedfilesharing', 'Trusted federation') }}
|
||||
</h3>
|
||||
<NcCheckboxRadioSwitch
|
||||
v-model="federatedTrustedShareAutoAccept"
|
||||
type="switch"
|
||||
:checked.sync="federatedTrustedShareAutoAccept"
|
||||
@update:checked="update('federatedTrustedShareAutoAccept', federatedTrustedShareAutoAccept)">
|
||||
@update:modelValue="update('federatedTrustedShareAutoAccept', federatedTrustedShareAutoAccept)">
|
||||
{{ t('federatedfilesharing', 'Automatically accept shares from trusted federated accounts and groups by default') }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
</div>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
class="federated-cloud__cloud-id"
|
||||
readonly
|
||||
:label="t('federatedfilesharing', 'Your Federated Cloud ID')"
|
||||
:value="cloudId"
|
||||
:model-value="cloudId"
|
||||
:success="isCopied"
|
||||
show-trailing-button
|
||||
:trailing-button-label="copyLinkTooltip"
|
||||
|
||||
@@ -53,9 +53,9 @@ const buttons = computed(() => [
|
||||
</p>
|
||||
<NcPasswordField
|
||||
v-if="passwordRequired"
|
||||
v-model="password"
|
||||
class="remote-share-dialog__password"
|
||||
:label="t('federatedfilesharing', 'Remote share password')"
|
||||
:value.sync="password" />
|
||||
:label="t('federatedfilesharing', 'Remote share password')" />
|
||||
</NcDialog>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -160,8 +160,8 @@ OC.L10N.register(
|
||||
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Seznam není vykreslen celý z důvodu nároků na výkon. Soubory budou dokreslovány, jak se budete posouvat seznamem.",
|
||||
"File not found" : "Soubor nenalezen",
|
||||
"_{count} selected_::_{count} selected_" : ["vybráno {count}","vybráno {count}","vybráno {count}","vybráno {count}"],
|
||||
"Search everywhere …" : "Hledat všude …",
|
||||
"Search here …" : "Hledat zde …",
|
||||
"Search everywhere …" : "Hledat všude …",
|
||||
"Search here …" : "Hledat zde …",
|
||||
"Search scope options" : "Předvolby rozsahu prohledávaného",
|
||||
"Search here" : "Hledat zde",
|
||||
"{usedQuotaByte} used" : "{usedQuotaByte} využito",
|
||||
@@ -180,7 +180,7 @@ OC.L10N.register(
|
||||
"Failed to refresh filename sanitization status." : "Nepodařilo se znovu načíst stav sanitizace názvů souborů.",
|
||||
"Filename sanitization in progress." : "Probíhá sanitizace názvu souboru.",
|
||||
"Currently {processedUsers} of {totalUsers} accounts are already processed." : "V tuto chvíli je už zpracováno {processedUsers} z {totalUsers} účtů.",
|
||||
"Preparing …" : "Příprava …",
|
||||
"Preparing …" : "Příprava …",
|
||||
"Refresh" : "Znovu načíst",
|
||||
"All files have been santized for Windows filename support." : "Všechny soubory byly sanitizovány ohledně podpory názvů souborů ve Windows.",
|
||||
"Some files could not be sanitized, please check your logs." : "Některé soubory nebylo možné sanitizovat – podívejte se do záznamu událostí.",
|
||||
@@ -195,7 +195,7 @@ OC.L10N.register(
|
||||
"Sanitize filenames" : "Sanitizovat názvy souborů",
|
||||
"(starting)" : "(spouští se)",
|
||||
"Fill template fields" : "Vyplňte kolonky šablony",
|
||||
"Submitting fields …" : "Odesílání kolonek …",
|
||||
"Submitting fields …" : "Odesílání kolonek …",
|
||||
"Submit" : "Odeslat",
|
||||
"Choose a file or folder to transfer" : "Zvolte soubor nebo složku k převedení",
|
||||
"Transfer" : "Převést",
|
||||
@@ -264,8 +264,8 @@ OC.L10N.register(
|
||||
"Create a new file with the selected template" : "Vytvořit nový soubor ze zvolené šablony",
|
||||
"Creating file" : "Vytváření souboru",
|
||||
"Save as {displayName}" : "Uložit jako {displayName}",
|
||||
"Save as …" : "Uložit jako …",
|
||||
"Converting files …" : "Převádění souborů …",
|
||||
"Save as …" : "Uložit jako …",
|
||||
"Converting files …" : "Převádění souborů …",
|
||||
"Failed to convert files: {message}" : "Nepodařilo se převést soubory: {message}",
|
||||
"All files failed to be converted" : "Žádný ze souborů se nepodařilo převést",
|
||||
"One file could not be converted: {message}" : "Jeden soubor nebylo možné převést: {message}",
|
||||
@@ -273,7 +273,7 @@ OC.L10N.register(
|
||||
"_%n file converted_::_%n files converted_" : ["%n soubor převeden","%n soubory převedeny","%n souborů převedeno","%n soubory převedeny"],
|
||||
"Files converted" : "Soubory převedeny",
|
||||
"Failed to convert files" : "Nepodařilo se převést soubory",
|
||||
"Converting file …" : "Převádění souboru …",
|
||||
"Converting file …" : "Převádění souboru …",
|
||||
"File successfully converted" : "Soubor úspěšně převeden",
|
||||
"Failed to convert file: {message}" : "Nepodařilo se převést soubor: {message}",
|
||||
"Failed to convert file" : "Nepodařilo se převést soubor",
|
||||
@@ -296,8 +296,8 @@ OC.L10N.register(
|
||||
"The requested file is not available." : "Požadovaný soubor není k dispozici.",
|
||||
"The requested files are not available." : "Požadované soubory nejsou k dispozici.",
|
||||
"Add or remove favorite" : "Přidat nebo odebrat oblíbené",
|
||||
"Moving \"{source}\" to \"{destination}\" …" : "Přesouvání „{source}“ do „{destination}“ …",
|
||||
"Copying \"{source}\" to \"{destination}\" …" : "Kopírování „{source}“ do „{destination}“ …",
|
||||
"Moving \"{source}\" to \"{destination}\" …" : "Přesouvání „{source}“ do „{destination}“ …",
|
||||
"Copying \"{source}\" to \"{destination}\" …" : "Kopírování „{source}“ do „{destination}“ …",
|
||||
"Destination is not a folder" : "Cíl není složka",
|
||||
"This file/folder is already in that directory" : "V oné složce se už daný soubor/složka nachází",
|
||||
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Není možné přesunout soubor/složku do sebe samé nebo do své vlastní podložky",
|
||||
@@ -399,9 +399,9 @@ OC.L10N.register(
|
||||
"\"{displayName}\" failed on some elements" : "„{displayName}“ se pro některé prvky nezdařilo",
|
||||
"\"{displayName}\" batch action executed successfully" : "Hromadná akce „{displayName}“ úspěšně vykonána",
|
||||
"\"{displayName}\" action failed" : "akce „{displayName}“ se nezdařila",
|
||||
"Submitting fields …" : "Odesílání kolonek…",
|
||||
"Submitting fields …" : "Odesílání kolonek …",
|
||||
"\"{displayName}\" action executed successfully" : "akce „{displayName}“ úspěšně vykonána",
|
||||
"Filter file names …" : "Filtrovat názvy souborů…",
|
||||
"Filter file names …" : "Filtrovat názvy souborů …",
|
||||
"Clipboard is not available" : "Schránka není k dispozici",
|
||||
"WebDAV URL copied to clipboard" : "WebDAV URL zkopírována do schránky",
|
||||
"Enable the grid view" : "Zapnout zobrazení v mřížce",
|
||||
@@ -429,9 +429,9 @@ OC.L10N.register(
|
||||
"Navigate to the file on the right (in grid mode)" : "Přejít na soubor vpravo (v režimu mřížky)",
|
||||
"Toggle the grid view" : "Vyp/zap. zobrazení v mřížce",
|
||||
"Open the sidebar for a file" : "Otevřít postranní panel pro soubor",
|
||||
"Save as …" : "Uložit jako…",
|
||||
"Converting files …" : "Převádění souborů…",
|
||||
"Converting file …" : "Převádění souboru…",
|
||||
"Save as …" : "Uložit jako …",
|
||||
"Converting files …" : "Převádění souborů …",
|
||||
"Converting file …" : "Převádění souboru …",
|
||||
"Deletion cancelled" : "Mazání zrušeno",
|
||||
"Edit locally" : "Upravit lokálně",
|
||||
"Moving \"{source}\" to \"{destination}\" …" : "Přesouvání „{source}“ do „{destination}“ …",
|
||||
@@ -444,8 +444,8 @@ OC.L10N.register(
|
||||
"New folder creation cancelled" : "Vytváření nové složky zrušeno",
|
||||
"This directory is unavailable, please check the logs or contact the administrator" : "Tento adresář není dostupný, zkontrolujte záznamy událostí nebo se obraťte na správce",
|
||||
"All folders" : "Všechny složky",
|
||||
"Search everywhere …" : "Hledat všude…",
|
||||
"Search here …" : "Hledat zde…",
|
||||
"Search everywhere …" : "Hledat všude …",
|
||||
"Search here …" : "Hledat zde …",
|
||||
"Preparing …" : "Příprava …"
|
||||
},
|
||||
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
|
||||
|
||||
@@ -158,8 +158,8 @@
|
||||
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Seznam není vykreslen celý z důvodu nároků na výkon. Soubory budou dokreslovány, jak se budete posouvat seznamem.",
|
||||
"File not found" : "Soubor nenalezen",
|
||||
"_{count} selected_::_{count} selected_" : ["vybráno {count}","vybráno {count}","vybráno {count}","vybráno {count}"],
|
||||
"Search everywhere …" : "Hledat všude …",
|
||||
"Search here …" : "Hledat zde …",
|
||||
"Search everywhere …" : "Hledat všude …",
|
||||
"Search here …" : "Hledat zde …",
|
||||
"Search scope options" : "Předvolby rozsahu prohledávaného",
|
||||
"Search here" : "Hledat zde",
|
||||
"{usedQuotaByte} used" : "{usedQuotaByte} využito",
|
||||
@@ -178,7 +178,7 @@
|
||||
"Failed to refresh filename sanitization status." : "Nepodařilo se znovu načíst stav sanitizace názvů souborů.",
|
||||
"Filename sanitization in progress." : "Probíhá sanitizace názvu souboru.",
|
||||
"Currently {processedUsers} of {totalUsers} accounts are already processed." : "V tuto chvíli je už zpracováno {processedUsers} z {totalUsers} účtů.",
|
||||
"Preparing …" : "Příprava …",
|
||||
"Preparing …" : "Příprava …",
|
||||
"Refresh" : "Znovu načíst",
|
||||
"All files have been santized for Windows filename support." : "Všechny soubory byly sanitizovány ohledně podpory názvů souborů ve Windows.",
|
||||
"Some files could not be sanitized, please check your logs." : "Některé soubory nebylo možné sanitizovat – podívejte se do záznamu událostí.",
|
||||
@@ -193,7 +193,7 @@
|
||||
"Sanitize filenames" : "Sanitizovat názvy souborů",
|
||||
"(starting)" : "(spouští se)",
|
||||
"Fill template fields" : "Vyplňte kolonky šablony",
|
||||
"Submitting fields …" : "Odesílání kolonek …",
|
||||
"Submitting fields …" : "Odesílání kolonek …",
|
||||
"Submit" : "Odeslat",
|
||||
"Choose a file or folder to transfer" : "Zvolte soubor nebo složku k převedení",
|
||||
"Transfer" : "Převést",
|
||||
@@ -262,8 +262,8 @@
|
||||
"Create a new file with the selected template" : "Vytvořit nový soubor ze zvolené šablony",
|
||||
"Creating file" : "Vytváření souboru",
|
||||
"Save as {displayName}" : "Uložit jako {displayName}",
|
||||
"Save as …" : "Uložit jako …",
|
||||
"Converting files …" : "Převádění souborů …",
|
||||
"Save as …" : "Uložit jako …",
|
||||
"Converting files …" : "Převádění souborů …",
|
||||
"Failed to convert files: {message}" : "Nepodařilo se převést soubory: {message}",
|
||||
"All files failed to be converted" : "Žádný ze souborů se nepodařilo převést",
|
||||
"One file could not be converted: {message}" : "Jeden soubor nebylo možné převést: {message}",
|
||||
@@ -271,7 +271,7 @@
|
||||
"_%n file converted_::_%n files converted_" : ["%n soubor převeden","%n soubory převedeny","%n souborů převedeno","%n soubory převedeny"],
|
||||
"Files converted" : "Soubory převedeny",
|
||||
"Failed to convert files" : "Nepodařilo se převést soubory",
|
||||
"Converting file …" : "Převádění souboru …",
|
||||
"Converting file …" : "Převádění souboru …",
|
||||
"File successfully converted" : "Soubor úspěšně převeden",
|
||||
"Failed to convert file: {message}" : "Nepodařilo se převést soubor: {message}",
|
||||
"Failed to convert file" : "Nepodařilo se převést soubor",
|
||||
@@ -294,8 +294,8 @@
|
||||
"The requested file is not available." : "Požadovaný soubor není k dispozici.",
|
||||
"The requested files are not available." : "Požadované soubory nejsou k dispozici.",
|
||||
"Add or remove favorite" : "Přidat nebo odebrat oblíbené",
|
||||
"Moving \"{source}\" to \"{destination}\" …" : "Přesouvání „{source}“ do „{destination}“ …",
|
||||
"Copying \"{source}\" to \"{destination}\" …" : "Kopírování „{source}“ do „{destination}“ …",
|
||||
"Moving \"{source}\" to \"{destination}\" …" : "Přesouvání „{source}“ do „{destination}“ …",
|
||||
"Copying \"{source}\" to \"{destination}\" …" : "Kopírování „{source}“ do „{destination}“ …",
|
||||
"Destination is not a folder" : "Cíl není složka",
|
||||
"This file/folder is already in that directory" : "V oné složce se už daný soubor/složka nachází",
|
||||
"You cannot move a file/folder onto itself or into a subfolder of itself" : "Není možné přesunout soubor/složku do sebe samé nebo do své vlastní podložky",
|
||||
@@ -397,9 +397,9 @@
|
||||
"\"{displayName}\" failed on some elements" : "„{displayName}“ se pro některé prvky nezdařilo",
|
||||
"\"{displayName}\" batch action executed successfully" : "Hromadná akce „{displayName}“ úspěšně vykonána",
|
||||
"\"{displayName}\" action failed" : "akce „{displayName}“ se nezdařila",
|
||||
"Submitting fields …" : "Odesílání kolonek…",
|
||||
"Submitting fields …" : "Odesílání kolonek …",
|
||||
"\"{displayName}\" action executed successfully" : "akce „{displayName}“ úspěšně vykonána",
|
||||
"Filter file names …" : "Filtrovat názvy souborů…",
|
||||
"Filter file names …" : "Filtrovat názvy souborů …",
|
||||
"Clipboard is not available" : "Schránka není k dispozici",
|
||||
"WebDAV URL copied to clipboard" : "WebDAV URL zkopírována do schránky",
|
||||
"Enable the grid view" : "Zapnout zobrazení v mřížce",
|
||||
@@ -427,9 +427,9 @@
|
||||
"Navigate to the file on the right (in grid mode)" : "Přejít na soubor vpravo (v režimu mřížky)",
|
||||
"Toggle the grid view" : "Vyp/zap. zobrazení v mřížce",
|
||||
"Open the sidebar for a file" : "Otevřít postranní panel pro soubor",
|
||||
"Save as …" : "Uložit jako…",
|
||||
"Converting files …" : "Převádění souborů…",
|
||||
"Converting file …" : "Převádění souboru…",
|
||||
"Save as …" : "Uložit jako …",
|
||||
"Converting files …" : "Převádění souborů …",
|
||||
"Converting file …" : "Převádění souboru …",
|
||||
"Deletion cancelled" : "Mazání zrušeno",
|
||||
"Edit locally" : "Upravit lokálně",
|
||||
"Moving \"{source}\" to \"{destination}\" …" : "Přesouvání „{source}“ do „{destination}“ …",
|
||||
@@ -442,8 +442,8 @@
|
||||
"New folder creation cancelled" : "Vytváření nové složky zrušeno",
|
||||
"This directory is unavailable, please check the logs or contact the administrator" : "Tento adresář není dostupný, zkontrolujte záznamy událostí nebo se obraťte na správce",
|
||||
"All folders" : "Všechny složky",
|
||||
"Search everywhere …" : "Hledat všude…",
|
||||
"Search here …" : "Hledat zde…",
|
||||
"Search everywhere …" : "Hledat všude …",
|
||||
"Search here …" : "Hledat zde …",
|
||||
"Preparing …" : "Příprava …"
|
||||
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
|
||||
}
|
||||
@@ -108,16 +108,43 @@ OC.L10N.register(
|
||||
"Type" : "Tipo",
|
||||
"Active filters" : "Filtros ativos",
|
||||
"Remove filter" : "Remover filtro",
|
||||
"Appearance" : "Aspeto",
|
||||
"Show hidden files" : "Mostrar ficheiros ocultos",
|
||||
"Show file type column" : "Mostrar coluna de tipo de ficheiro",
|
||||
"Show file extensions" : "Mostrar extensões de ficheiro",
|
||||
"Crop image previews" : "Recortar pré-visualizações de imagens",
|
||||
"General" : "Geral",
|
||||
"Sort favorites first" : "Ordenar por favoritos primeiro",
|
||||
"Sort folders before files" : "Ordenar as pastas antes dos ficheiros.",
|
||||
"Enable folder tree view" : "Ativar visualização de pastas em árvore",
|
||||
"Default view" : "Vista padrão",
|
||||
"All files" : "Todos os ficheiros",
|
||||
"Personal files" : "Ficheiros pessoais",
|
||||
"Additional settings" : "Definições adicionais",
|
||||
"Actions" : "Ações",
|
||||
"File actions" : "Ações sobre ficheiros",
|
||||
"Selection" : "Seleção",
|
||||
"Select all files" : "Selecionar todos os ficheiros",
|
||||
"Deselect all" : "Desselecionar tudo",
|
||||
"Select or deselect" : "Selecionar ou desselecionar",
|
||||
"Select a range" : "Selecionar um intervalo",
|
||||
"Navigation" : "Navegação",
|
||||
"Go to parent folder" : "Ir para a pasta anterior",
|
||||
"Go to file above" : "Ir para o ficheiro acima",
|
||||
"Go to file below" : "Ir para o ficheiro abaixo",
|
||||
"Go left in grid" : "Ir para a esquerda na grelha",
|
||||
"Go right in grid" : "Ir para a direita na grelha",
|
||||
"View" : "Ver",
|
||||
"Toggle grid view" : "Alternar visualização em grelha",
|
||||
"Open file sidebar" : "Abrir barra lateral de ficheiro",
|
||||
"Show those shortcuts" : "Mostrar esses atalhos",
|
||||
"Warnings" : "Avisos",
|
||||
"Warn before changing a file extension" : "Avisar antes de alterar uma extensão de ficheiro",
|
||||
"Warn before deleting a file" : "Avisar antes de eliminar um ficheiro",
|
||||
"WebDAV URL" : "URL WebDAV",
|
||||
"Create an app password" : "Criar uma palavra-passe para a aplicação",
|
||||
"Required for WebDAV authentication because Two-Factor Authentication is enabled for this account." : "Necessário para a autenticação WebDAV porque a autenticação de dois fatores está ativada para esta conta.",
|
||||
"How to access files using WebDAV" : "Como aceder a ficheiros usando o WebDAV",
|
||||
"Total rows summary" : "Resumo do total de linhas",
|
||||
"Toggle selection for all files and folders" : "Alternar a seleção para todos os ficheiros e pastas",
|
||||
"Name" : "Nome",
|
||||
@@ -133,6 +160,8 @@ OC.L10N.register(
|
||||
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Por motivos de desempenho, esta lista não é totalmente processada. Os ficheiros serão processados à medida que navega na lista.",
|
||||
"File not found" : "Ficheiro não encontrado",
|
||||
"_{count} selected_::_{count} selected_" : ["{count} selecionado","{count} selecionado","{count} selecionado"],
|
||||
"Search everywhere …" : "Procure em todo o lado …",
|
||||
"Search here …" : "Procure aqui …",
|
||||
"Search scope options" : "Opções do escopo da pesquisa",
|
||||
"Search here" : "Pesquisar aqui",
|
||||
"{usedQuotaByte} used" : "{usedQuotaByte} usado",
|
||||
@@ -150,7 +179,15 @@ OC.L10N.register(
|
||||
"Failed to start filename sanitization." : "Falha ao iniciar a limpeza do nome do ficheiro.",
|
||||
"Failed to refresh filename sanitization status." : "Falha ao atualizar o estado da limpeza do nome do ficheiro.",
|
||||
"Filename sanitization in progress." : "Limpeza do nome do ficheiro em curso.",
|
||||
"Currently {processedUsers} of {totalUsers} accounts are already processed." : "Atualmente, {processedUsers} das {totalUsers} contas já foram processadas.",
|
||||
"Preparing …" : "Preparando …",
|
||||
"Refresh" : "Atualizar",
|
||||
"All files have been santized for Windows filename support." : "Todos os ficheiros foram tratados para serem compatíveis com os nomes de ficheiro do Windows.",
|
||||
"Some files could not be sanitized, please check your logs." : "Alguns ficheiros não puderam ser tratados. Por favor verifique os seus registros.",
|
||||
"Sanitization errors" : "Erros de tratamento",
|
||||
"Not sanitized filenames" : "Ficheiros não tratados",
|
||||
"Windows filename support has been enabled." : "O suporte a nomes de ficheiros do Windows foi ativado.",
|
||||
"While this blocks users from creating new files with unsupported filenames, existing files are not yet renamed and thus still may break sync on Windows." : "Embora isto impeça os utilizadores de criar novos ficheiros com nomes não suportados, os ficheiros existentes ainda não foram renomeados e, portanto, ainda podem interromper a sincronização no Windows.",
|
||||
"Fill template fields" : "Preencher campos do modelo",
|
||||
"Submit" : "Submeter",
|
||||
"Choose a file or folder to transfer" : "Escolher um ficheiro ou pasta para transferir",
|
||||
@@ -194,6 +231,7 @@ OC.L10N.register(
|
||||
"Delete folder" : "Apagar pasta",
|
||||
"Cancel" : "Cancelar",
|
||||
"Download" : "Transferir",
|
||||
"Add or remove favorite" : "Adicionar ou remover favorito",
|
||||
"Copy to {target}" : "Copiar para {target}",
|
||||
"Copy" : "Copiar",
|
||||
"Move to {target}" : "Mover para {target}",
|
||||
@@ -221,6 +259,7 @@ OC.L10N.register(
|
||||
"_%n folder_::_%n folders_" : ["%n pasta","%n pastas","%n pastas"],
|
||||
"No favorites yet" : "Sem favoritos",
|
||||
"Files and folders you mark as favorite will show up here" : "Os ficheiros e pastas que marcou como favoritos serão mostrados aqui",
|
||||
"Folder tree" : "Pastas em árvore",
|
||||
"Recent" : "Recentes",
|
||||
"Search" : "Pesquisa sobre",
|
||||
"No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
|
||||
@@ -233,9 +272,13 @@ OC.L10N.register(
|
||||
"\"{displayName}\" batch action executed successfully" : "Ação de lote “{displayName}” executada com sucesso",
|
||||
"\"{displayName}\" action failed" : "\"{displayName}\" a ação falhou",
|
||||
"\"{displayName}\" action executed successfully" : "\"{displayName}\" ação executada com sucesso ",
|
||||
"Enable folder tree" : "Ativar pastas em árvore",
|
||||
"WebDAV" : "WebDAV",
|
||||
"Copy to clipboard" : "Copiar para área de transferência",
|
||||
"Keyboard shortcuts" : "Atalhos de teclado",
|
||||
"Manage tags for a file" : "Gerir etiquetas para um ficheiro",
|
||||
"Select or deselect a file" : "Selecionar ou desselecionar um ficheiro",
|
||||
"Select a range of files" : "Selecionar um intervalo de ficheiros",
|
||||
"Edit locally" : "Editar localmente",
|
||||
"This directory is unavailable, please check the logs or contact the administrator" : "Esta diretoria está indisponível, por favor, verifique os registos ou contacte o administrador",
|
||||
"Search everywhere …" : "Pesquisar em todo o lado...",
|
||||
|
||||
@@ -106,16 +106,43 @@
|
||||
"Type" : "Tipo",
|
||||
"Active filters" : "Filtros ativos",
|
||||
"Remove filter" : "Remover filtro",
|
||||
"Appearance" : "Aspeto",
|
||||
"Show hidden files" : "Mostrar ficheiros ocultos",
|
||||
"Show file type column" : "Mostrar coluna de tipo de ficheiro",
|
||||
"Show file extensions" : "Mostrar extensões de ficheiro",
|
||||
"Crop image previews" : "Recortar pré-visualizações de imagens",
|
||||
"General" : "Geral",
|
||||
"Sort favorites first" : "Ordenar por favoritos primeiro",
|
||||
"Sort folders before files" : "Ordenar as pastas antes dos ficheiros.",
|
||||
"Enable folder tree view" : "Ativar visualização de pastas em árvore",
|
||||
"Default view" : "Vista padrão",
|
||||
"All files" : "Todos os ficheiros",
|
||||
"Personal files" : "Ficheiros pessoais",
|
||||
"Additional settings" : "Definições adicionais",
|
||||
"Actions" : "Ações",
|
||||
"File actions" : "Ações sobre ficheiros",
|
||||
"Selection" : "Seleção",
|
||||
"Select all files" : "Selecionar todos os ficheiros",
|
||||
"Deselect all" : "Desselecionar tudo",
|
||||
"Select or deselect" : "Selecionar ou desselecionar",
|
||||
"Select a range" : "Selecionar um intervalo",
|
||||
"Navigation" : "Navegação",
|
||||
"Go to parent folder" : "Ir para a pasta anterior",
|
||||
"Go to file above" : "Ir para o ficheiro acima",
|
||||
"Go to file below" : "Ir para o ficheiro abaixo",
|
||||
"Go left in grid" : "Ir para a esquerda na grelha",
|
||||
"Go right in grid" : "Ir para a direita na grelha",
|
||||
"View" : "Ver",
|
||||
"Toggle grid view" : "Alternar visualização em grelha",
|
||||
"Open file sidebar" : "Abrir barra lateral de ficheiro",
|
||||
"Show those shortcuts" : "Mostrar esses atalhos",
|
||||
"Warnings" : "Avisos",
|
||||
"Warn before changing a file extension" : "Avisar antes de alterar uma extensão de ficheiro",
|
||||
"Warn before deleting a file" : "Avisar antes de eliminar um ficheiro",
|
||||
"WebDAV URL" : "URL WebDAV",
|
||||
"Create an app password" : "Criar uma palavra-passe para a aplicação",
|
||||
"Required for WebDAV authentication because Two-Factor Authentication is enabled for this account." : "Necessário para a autenticação WebDAV porque a autenticação de dois fatores está ativada para esta conta.",
|
||||
"How to access files using WebDAV" : "Como aceder a ficheiros usando o WebDAV",
|
||||
"Total rows summary" : "Resumo do total de linhas",
|
||||
"Toggle selection for all files and folders" : "Alternar a seleção para todos os ficheiros e pastas",
|
||||
"Name" : "Nome",
|
||||
@@ -131,6 +158,8 @@
|
||||
"This list is not fully rendered for performance reasons. The files will be rendered as you navigate through the list." : "Por motivos de desempenho, esta lista não é totalmente processada. Os ficheiros serão processados à medida que navega na lista.",
|
||||
"File not found" : "Ficheiro não encontrado",
|
||||
"_{count} selected_::_{count} selected_" : ["{count} selecionado","{count} selecionado","{count} selecionado"],
|
||||
"Search everywhere …" : "Procure em todo o lado …",
|
||||
"Search here …" : "Procure aqui …",
|
||||
"Search scope options" : "Opções do escopo da pesquisa",
|
||||
"Search here" : "Pesquisar aqui",
|
||||
"{usedQuotaByte} used" : "{usedQuotaByte} usado",
|
||||
@@ -148,7 +177,15 @@
|
||||
"Failed to start filename sanitization." : "Falha ao iniciar a limpeza do nome do ficheiro.",
|
||||
"Failed to refresh filename sanitization status." : "Falha ao atualizar o estado da limpeza do nome do ficheiro.",
|
||||
"Filename sanitization in progress." : "Limpeza do nome do ficheiro em curso.",
|
||||
"Currently {processedUsers} of {totalUsers} accounts are already processed." : "Atualmente, {processedUsers} das {totalUsers} contas já foram processadas.",
|
||||
"Preparing …" : "Preparando …",
|
||||
"Refresh" : "Atualizar",
|
||||
"All files have been santized for Windows filename support." : "Todos os ficheiros foram tratados para serem compatíveis com os nomes de ficheiro do Windows.",
|
||||
"Some files could not be sanitized, please check your logs." : "Alguns ficheiros não puderam ser tratados. Por favor verifique os seus registros.",
|
||||
"Sanitization errors" : "Erros de tratamento",
|
||||
"Not sanitized filenames" : "Ficheiros não tratados",
|
||||
"Windows filename support has been enabled." : "O suporte a nomes de ficheiros do Windows foi ativado.",
|
||||
"While this blocks users from creating new files with unsupported filenames, existing files are not yet renamed and thus still may break sync on Windows." : "Embora isto impeça os utilizadores de criar novos ficheiros com nomes não suportados, os ficheiros existentes ainda não foram renomeados e, portanto, ainda podem interromper a sincronização no Windows.",
|
||||
"Fill template fields" : "Preencher campos do modelo",
|
||||
"Submit" : "Submeter",
|
||||
"Choose a file or folder to transfer" : "Escolher um ficheiro ou pasta para transferir",
|
||||
@@ -192,6 +229,7 @@
|
||||
"Delete folder" : "Apagar pasta",
|
||||
"Cancel" : "Cancelar",
|
||||
"Download" : "Transferir",
|
||||
"Add or remove favorite" : "Adicionar ou remover favorito",
|
||||
"Copy to {target}" : "Copiar para {target}",
|
||||
"Copy" : "Copiar",
|
||||
"Move to {target}" : "Mover para {target}",
|
||||
@@ -219,6 +257,7 @@
|
||||
"_%n folder_::_%n folders_" : ["%n pasta","%n pastas","%n pastas"],
|
||||
"No favorites yet" : "Sem favoritos",
|
||||
"Files and folders you mark as favorite will show up here" : "Os ficheiros e pastas que marcou como favoritos serão mostrados aqui",
|
||||
"Folder tree" : "Pastas em árvore",
|
||||
"Recent" : "Recentes",
|
||||
"Search" : "Pesquisa sobre",
|
||||
"No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
|
||||
@@ -231,9 +270,13 @@
|
||||
"\"{displayName}\" batch action executed successfully" : "Ação de lote “{displayName}” executada com sucesso",
|
||||
"\"{displayName}\" action failed" : "\"{displayName}\" a ação falhou",
|
||||
"\"{displayName}\" action executed successfully" : "\"{displayName}\" ação executada com sucesso ",
|
||||
"Enable folder tree" : "Ativar pastas em árvore",
|
||||
"WebDAV" : "WebDAV",
|
||||
"Copy to clipboard" : "Copiar para área de transferência",
|
||||
"Keyboard shortcuts" : "Atalhos de teclado",
|
||||
"Manage tags for a file" : "Gerir etiquetas para um ficheiro",
|
||||
"Select or deselect a file" : "Selecionar ou desselecionar um ficheiro",
|
||||
"Select a range of files" : "Selecionar um intervalo de ficheiros",
|
||||
"Edit locally" : "Editar localmente",
|
||||
"This directory is unavailable, please check the logs or contact the administrator" : "Esta diretoria está indisponível, por favor, verifique os registos ou contacte o administrador",
|
||||
"Search everywhere …" : "Pesquisar em todo o lado...",
|
||||
|
||||
@@ -10,12 +10,13 @@ import IconWeb from '@mdi/svg/svg/web.svg?raw'
|
||||
import { getCurrentUser } from '@nextcloud/auth'
|
||||
import axios from '@nextcloud/axios'
|
||||
import { DialogBuilder, showError } from '@nextcloud/dialogs'
|
||||
import { FileAction, Permission } from '@nextcloud/files'
|
||||
import { FileAction } from '@nextcloud/files'
|
||||
import { translate as t } from '@nextcloud/l10n'
|
||||
import { encodePath } from '@nextcloud/paths'
|
||||
import { generateOcsUrl } from '@nextcloud/router'
|
||||
import { isPublicShare } from '@nextcloud/sharing/public'
|
||||
import logger from '../logger.ts'
|
||||
import { isSyncable } from '../utils/permissions.ts'
|
||||
|
||||
export const action = new FileAction({
|
||||
id: 'edit-locally',
|
||||
@@ -34,7 +35,7 @@ export const action = new FileAction({
|
||||
return false
|
||||
}
|
||||
|
||||
return (nodes[0].permissions & Permission.UPDATE) !== 0
|
||||
return isSyncable(nodes[0])
|
||||
},
|
||||
|
||||
async exec(node: Node) {
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
<NcCheckboxRadioSwitch
|
||||
v-else
|
||||
:aria-label="ariaLabel"
|
||||
:checked="isSelected"
|
||||
:model-value="isSelected"
|
||||
data-cy-files-list-row-checkbox
|
||||
@update:checked="onSelectionChange" />
|
||||
@update:modelValue="onSelectionChange" />
|
||||
</td>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -13,11 +13,11 @@
|
||||
@submit.prevent.stop="onRename">
|
||||
<NcTextField
|
||||
ref="renameInput"
|
||||
v-model="newName"
|
||||
:label="renameLabel"
|
||||
:autofocus="true"
|
||||
:minlength="1"
|
||||
:required="true"
|
||||
:value.sync="newName"
|
||||
enterkeyhint="done"
|
||||
@keyup.esc="stopRenaming" />
|
||||
</form>
|
||||
|
||||
@@ -7,7 +7,10 @@
|
||||
<th
|
||||
class="files-list__column files-list__row-checkbox"
|
||||
@keyup.esc.exact="resetSelection">
|
||||
<NcCheckboxRadioSwitch v-bind="selectAllBind" data-cy-files-list-selection-checkbox @update:checked="onToggleAll" />
|
||||
<NcCheckboxRadioSwitch
|
||||
v-bind="selectAllBind"
|
||||
data-cy-files-list-selection-checkbox
|
||||
@update:modelValue="onToggleAll" />
|
||||
</th>
|
||||
|
||||
<!-- Columns display -->
|
||||
|
||||
@@ -25,11 +25,11 @@
|
||||
@submit.prevent="emit('close', localDefaultName)">
|
||||
<NcTextField
|
||||
ref="nameInput"
|
||||
v-model="localDefaultName"
|
||||
data-cy-files-new-node-dialog-input
|
||||
:error="validity !== ''"
|
||||
:helper-text="validity"
|
||||
:label="label"
|
||||
:value.sync="localDefaultName" />
|
||||
:label="label" />
|
||||
|
||||
<!-- Hidden file warning -->
|
||||
<NcNoteCard
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
<div class="template-field__checkbox">
|
||||
<NcCheckboxRadioSwitch
|
||||
:id="fieldId"
|
||||
:checked.sync="value"
|
||||
v-model="value"
|
||||
type="switch"
|
||||
@update:checked="input">
|
||||
@update:modelValue="input">
|
||||
{{ fieldLabel }}
|
||||
</NcCheckboxRadioSwitch>
|
||||
</div>
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
|
||||
<NcTextField
|
||||
:id="fieldId"
|
||||
v-model="value"
|
||||
type="text"
|
||||
:value.sync="value"
|
||||
:label="fieldLabel"
|
||||
:label-outside="true"
|
||||
:placeholder="field.content"
|
||||
|
||||
@@ -19,11 +19,11 @@ describe('Search service', () => {
|
||||
window.OCP ??= {}
|
||||
window.OCP.Files ??= {}
|
||||
window.OCP.Files.Router ??= { params: {}, query: {} }
|
||||
vi.spyOn(window.OCP.Files.Router, 'params', 'get').mockReturnValue({ view: 'files' })
|
||||
})
|
||||
|
||||
beforeEach(() => {
|
||||
vi.restoreAllMocks()
|
||||
vi.resetAllMocks()
|
||||
vi.spyOn(window.OCP.Files.Router, 'params', 'get').mockReturnValue({ view: 'files' })
|
||||
setActivePinia(createPinia())
|
||||
})
|
||||
|
||||
|
||||
@@ -36,3 +36,22 @@ export function isDownloadable(node: Node): boolean {
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
/**
|
||||
* Check permissions on the node if it can be synced/open locally
|
||||
*
|
||||
* @param node The node to check
|
||||
* @return True if syncable, false otherwise
|
||||
*/
|
||||
export function isSyncable(node: Node): boolean {
|
||||
if (!node.isDavResource) {
|
||||
return false
|
||||
}
|
||||
|
||||
if ((node.permissions & Permission.UPDATE) === 0) {
|
||||
return false
|
||||
}
|
||||
|
||||
// Syncable has the same permissions as downloadable for now
|
||||
return isDownloadable(node)
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ OC.L10N.register(
|
||||
"Enter missing credentials" : "Zadejte chybějící přihlašovací údaje",
|
||||
"Credentials successfully set" : "Přihlašovací údaje úspěšně nastaveny",
|
||||
"Error while setting credentials: {error}" : "Chyba při nastavování přihlašovacích údajů: {error}",
|
||||
"Checking storage …" : "Kontrola úložiště …",
|
||||
"Checking storage …" : "Kontrola úložiště …",
|
||||
"There was an error with this external storage." : "U tohoto externího úložiště došlo k chybě.",
|
||||
"We were unable to check the external storage {basename}" : "Nepodařilo se zkontrolovat externí úložiště {basename}",
|
||||
"Examine this faulty external storage configuration" : "Prozkoumejte nastavení tohoto vadného externího úložiště",
|
||||
@@ -138,7 +138,7 @@ OC.L10N.register(
|
||||
"Delete storage?" : "Odstranit úložiště?",
|
||||
"Click to recheck the configuration" : "Klikněte pro opětovnou kontrolu nastavení",
|
||||
"Saved" : "Uloženo",
|
||||
"Saving …" : "Ukládání…",
|
||||
"Saving …" : "Ukládání …",
|
||||
"Save" : "Uložit",
|
||||
"Failed to save global credentials" : "Nepodařilo se uložit globální přihlašovací údaje",
|
||||
"Failed to save global credentials: {message}" : "Nepodařilo se uložit globální přihlašovací údaje: {message}",
|
||||
@@ -159,8 +159,8 @@ OC.L10N.register(
|
||||
"OAuth1" : "OAuth1",
|
||||
"App key" : "Klíč aplikace",
|
||||
"App secret" : "Tajemství aplikace",
|
||||
"Checking storage …" : "Kontrola úložiště…",
|
||||
"Checking storage …" : "Kontrola úložiště …",
|
||||
"Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Opravdu chcete toto externí úložiště odpojit? Způsobí že toto úložiště nebude k dispozici v Nextcloud a povede to ke smazání těchto souborů a složek na jakémkoli synchronizačním klientovi, který je v tuto chvíli připojen, ale nesmaže žádné soubory a složky na externím úložišti jako takovém.",
|
||||
"Saving …" : "Ukládání…"
|
||||
"Saving …" : "Ukládání …"
|
||||
},
|
||||
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
"Enter missing credentials" : "Zadejte chybějící přihlašovací údaje",
|
||||
"Credentials successfully set" : "Přihlašovací údaje úspěšně nastaveny",
|
||||
"Error while setting credentials: {error}" : "Chyba při nastavování přihlašovacích údajů: {error}",
|
||||
"Checking storage …" : "Kontrola úložiště …",
|
||||
"Checking storage …" : "Kontrola úložiště …",
|
||||
"There was an error with this external storage." : "U tohoto externího úložiště došlo k chybě.",
|
||||
"We were unable to check the external storage {basename}" : "Nepodařilo se zkontrolovat externí úložiště {basename}",
|
||||
"Examine this faulty external storage configuration" : "Prozkoumejte nastavení tohoto vadného externího úložiště",
|
||||
@@ -136,7 +136,7 @@
|
||||
"Delete storage?" : "Odstranit úložiště?",
|
||||
"Click to recheck the configuration" : "Klikněte pro opětovnou kontrolu nastavení",
|
||||
"Saved" : "Uloženo",
|
||||
"Saving …" : "Ukládání…",
|
||||
"Saving …" : "Ukládání …",
|
||||
"Save" : "Uložit",
|
||||
"Failed to save global credentials" : "Nepodařilo se uložit globální přihlašovací údaje",
|
||||
"Failed to save global credentials: {message}" : "Nepodařilo se uložit globální přihlašovací údaje: {message}",
|
||||
@@ -157,8 +157,8 @@
|
||||
"OAuth1" : "OAuth1",
|
||||
"App key" : "Klíč aplikace",
|
||||
"App secret" : "Tajemství aplikace",
|
||||
"Checking storage …" : "Kontrola úložiště…",
|
||||
"Checking storage …" : "Kontrola úložiště …",
|
||||
"Are you sure you want to disconnect this external storage? It will make the storage unavailable in Nextcloud and will lead to a deletion of these files and folders on any sync client that is currently connected but will not delete any files and folders on the external storage itself." : "Opravdu chcete toto externí úložiště odpojit? Způsobí že toto úložiště nebude k dispozici v Nextcloud a povede to ke smazání těchto souborů a složek na jakémkoli synchronizačním klientovi, který je v tuto chvíli připojen, ale nesmaže žádné soubory a složky na externím úložišti jako takovém.",
|
||||
"Saving …" : "Ukládání…"
|
||||
"Saving …" : "Ukládání …"
|
||||
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
|
||||
}
|
||||
@@ -23,25 +23,25 @@
|
||||
<!-- Login -->
|
||||
<NcTextField
|
||||
ref="login"
|
||||
v-model="login"
|
||||
class="external-storage-auth__login"
|
||||
data-cy-external-storage-auth-dialog-login
|
||||
:label="t('files_external', 'Login')"
|
||||
:placeholder="t('files_external', 'Enter the storage login')"
|
||||
minlength="2"
|
||||
name="login"
|
||||
required
|
||||
:value.sync="login" />
|
||||
required />
|
||||
|
||||
<!-- Password -->
|
||||
<NcPasswordField
|
||||
ref="password"
|
||||
v-model="password"
|
||||
class="external-storage-auth__password"
|
||||
data-cy-external-storage-auth-dialog-password
|
||||
:label="t('files_external', 'Password')"
|
||||
:placeholder="t('files_external', 'Enter the storage password')"
|
||||
name="password"
|
||||
required
|
||||
:value.sync="password" />
|
||||
required />
|
||||
</NcDialog>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -150,7 +150,7 @@ OC.L10N.register(
|
||||
"Select" : "Vybrat",
|
||||
"What are you requesting?" : "Co požadujete?",
|
||||
"Request subject" : "Předmět požadavku",
|
||||
"Birthday party photos, History assignment…" : "Fotky z narozeninové oslavy, přiřazení historie…",
|
||||
"Birthday party photos, History assignment…" : "Fotky z narozeninové oslavy, přiřazení historie …",
|
||||
"Where should these files go?" : "Kam by měly tyto soubory přijít?",
|
||||
"Upload destination" : "Cíl nahrání",
|
||||
"Revert to default" : "Vrátit na výchozí hodnotu",
|
||||
@@ -237,8 +237,8 @@ OC.L10N.register(
|
||||
"Can edit" : "Může upravovat",
|
||||
"Custom permissions" : "Uživatelsky určená oprávnění",
|
||||
"Resharing is not allowed" : "Příjemcům tohoto sdílení není dovoleno ho nasdílet dál dalším",
|
||||
"Name or email …" : "Jméno nebo e-mail …",
|
||||
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu …",
|
||||
"Name or email …" : "Jméno nebo e-mail …",
|
||||
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu …",
|
||||
"Searching …" : "Hledání …",
|
||||
"No elements found." : "Nenalezeny žádné prvky.",
|
||||
"Search everywhere" : "Hledat všude",
|
||||
@@ -284,7 +284,7 @@ OC.L10N.register(
|
||||
"Share label" : "Štítek sdílení",
|
||||
"Share link token" : "Nasdílet token odkazu",
|
||||
"Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Nastavte token veřejného odkazu na sdílení na něco snadno zapamatovatelného nebo vytvořte nový token. Není doporučeno používat uhodnutelné tokeny pro sdílení, která obsahují citlivé informace.",
|
||||
"Generating…" : "Vytváření…",
|
||||
"Generating…" : "Vytváření …",
|
||||
"Generate new token" : "Vytvořit nový token",
|
||||
"Set password" : "Nastavit heslo",
|
||||
"Password expires {passwordExpirationTime}" : "Platnost hesla skončí {passwordExpirationTime}",
|
||||
@@ -410,9 +410,9 @@ OC.L10N.register(
|
||||
"Only works for people with access to this folder" : "Funguje pouze pro uživatele, kteří mají k této složce přístup",
|
||||
"Only works for people with access to this file" : "Funguje pouze pro uživatele, kteří mají k tomuto souboru přístup",
|
||||
"Copy public link of \"{title}\" to clipboard" : "Zkopírovat veřejný odkaz na „{title}“ do schránky",
|
||||
"Name or email …" : "Jméno nebo e-mail…",
|
||||
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu…",
|
||||
"Searching …" : "Hledání…",
|
||||
"Name or email …" : "Jméno nebo e-mail …",
|
||||
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu …",
|
||||
"Searching …" : "Hledání …",
|
||||
"Search globally" : "Hledat všude",
|
||||
"Submit name" : "Odeslat jméno",
|
||||
"To upload files, you need to provide your name first." : "Aby bylo možné nahrávat soubory, je třeba nejprve zadat své jméno.",
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
"Select" : "Vybrat",
|
||||
"What are you requesting?" : "Co požadujete?",
|
||||
"Request subject" : "Předmět požadavku",
|
||||
"Birthday party photos, History assignment…" : "Fotky z narozeninové oslavy, přiřazení historie…",
|
||||
"Birthday party photos, History assignment…" : "Fotky z narozeninové oslavy, přiřazení historie …",
|
||||
"Where should these files go?" : "Kam by měly tyto soubory přijít?",
|
||||
"Upload destination" : "Cíl nahrání",
|
||||
"Revert to default" : "Vrátit na výchozí hodnotu",
|
||||
@@ -235,8 +235,8 @@
|
||||
"Can edit" : "Může upravovat",
|
||||
"Custom permissions" : "Uživatelsky určená oprávnění",
|
||||
"Resharing is not allowed" : "Příjemcům tohoto sdílení není dovoleno ho nasdílet dál dalším",
|
||||
"Name or email …" : "Jméno nebo e-mail …",
|
||||
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu …",
|
||||
"Name or email …" : "Jméno nebo e-mail …",
|
||||
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu …",
|
||||
"Searching …" : "Hledání …",
|
||||
"No elements found." : "Nenalezeny žádné prvky.",
|
||||
"Search everywhere" : "Hledat všude",
|
||||
@@ -282,7 +282,7 @@
|
||||
"Share label" : "Štítek sdílení",
|
||||
"Share link token" : "Nasdílet token odkazu",
|
||||
"Set the public share link token to something easy to remember or generate a new token. It is not recommended to use a guessable token for shares which contain sensitive information." : "Nastavte token veřejného odkazu na sdílení na něco snadno zapamatovatelného nebo vytvořte nový token. Není doporučeno používat uhodnutelné tokeny pro sdílení, která obsahují citlivé informace.",
|
||||
"Generating…" : "Vytváření…",
|
||||
"Generating…" : "Vytváření …",
|
||||
"Generate new token" : "Vytvořit nový token",
|
||||
"Set password" : "Nastavit heslo",
|
||||
"Password expires {passwordExpirationTime}" : "Platnost hesla skončí {passwordExpirationTime}",
|
||||
@@ -408,9 +408,9 @@
|
||||
"Only works for people with access to this folder" : "Funguje pouze pro uživatele, kteří mají k této složce přístup",
|
||||
"Only works for people with access to this file" : "Funguje pouze pro uživatele, kteří mají k tomuto souboru přístup",
|
||||
"Copy public link of \"{title}\" to clipboard" : "Zkopírovat veřejný odkaz na „{title}“ do schránky",
|
||||
"Name or email …" : "Jméno nebo e-mail…",
|
||||
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu…",
|
||||
"Searching …" : "Hledání…",
|
||||
"Name or email …" : "Jméno nebo e-mail …",
|
||||
"Name, email, or Federated Cloud ID …" : "Jméno, e-mail nebo identifikátor ve federovaném cloudu …",
|
||||
"Searching …" : "Hledání …",
|
||||
"Search globally" : "Hledat všude",
|
||||
"Submit name" : "Odeslat jméno",
|
||||
"To upload files, you need to provide your name first." : "Aby bylo možné nahrávat soubory, je třeba nejprve zadat své jméno.",
|
||||
|
||||
@@ -34,7 +34,7 @@ OC.L10N.register(
|
||||
"{user} accepted the remote share of {file}" : "{user} اشتراکگذاری از راه دور {file} را پذیرفت.",
|
||||
"{user} declined the remote share of {file}" : "{user} اشتراکگذاری از راه دور {file} را رد کرد.",
|
||||
"{user} unshared {file} from you" : "{user} فایل {file} از شما به اشتراک گذاشته نشده است",
|
||||
"Shared with {user}" : "با {user} به اشتراک گذاشته شده است",
|
||||
"Shared with {user}" : "با {user} به اشتراک گذاشته",
|
||||
"Removed share for {user}" : "اشتراکگذاری برای {user} حذف شد",
|
||||
"You removed yourself" : "شما خدتان را حذف کردید",
|
||||
"{actor} removed themselves" : "{actor} خودشان را حذف کردند",
|
||||
@@ -262,11 +262,11 @@ OC.L10N.register(
|
||||
"Terms of service" : "شرایط و قوانین",
|
||||
"Share with {user}" : "اشتراکگذاری با {user}",
|
||||
"Share with email {email}" : "اشتراکگذاری با ایمیل {email}",
|
||||
"Share with group" : "با گروه به اشتراک بگذارید",
|
||||
"Share with group" : "اشتراکگذاری با گروه",
|
||||
"Share in conversation" : "اشتراک گذاری در گفتگو",
|
||||
"Share with {user} on remote server {server}" : "اشتراکگذاری با {user} در سرور {server}",
|
||||
"Share with remote group" : "اشتراکگذاری با گروه از راه دور",
|
||||
"Share with guest" : "با مهمان به اشتراک بگذارید",
|
||||
"Share with guest" : "اشتراکگذاری با مهمان",
|
||||
"Update share" : "بهروزرسانی همرسانی",
|
||||
"Save share" : "ذخیره اشتراک گذاری",
|
||||
"Read" : "خواندن",
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
"{user} accepted the remote share of {file}" : "{user} اشتراکگذاری از راه دور {file} را پذیرفت.",
|
||||
"{user} declined the remote share of {file}" : "{user} اشتراکگذاری از راه دور {file} را رد کرد.",
|
||||
"{user} unshared {file} from you" : "{user} فایل {file} از شما به اشتراک گذاشته نشده است",
|
||||
"Shared with {user}" : "با {user} به اشتراک گذاشته شده است",
|
||||
"Shared with {user}" : "با {user} به اشتراک گذاشته",
|
||||
"Removed share for {user}" : "اشتراکگذاری برای {user} حذف شد",
|
||||
"You removed yourself" : "شما خدتان را حذف کردید",
|
||||
"{actor} removed themselves" : "{actor} خودشان را حذف کردند",
|
||||
@@ -260,11 +260,11 @@
|
||||
"Terms of service" : "شرایط و قوانین",
|
||||
"Share with {user}" : "اشتراکگذاری با {user}",
|
||||
"Share with email {email}" : "اشتراکگذاری با ایمیل {email}",
|
||||
"Share with group" : "با گروه به اشتراک بگذارید",
|
||||
"Share with group" : "اشتراکگذاری با گروه",
|
||||
"Share in conversation" : "اشتراک گذاری در گفتگو",
|
||||
"Share with {user} on remote server {server}" : "اشتراکگذاری با {user} در سرور {server}",
|
||||
"Share with remote group" : "اشتراکگذاری با گروه از راه دور",
|
||||
"Share with guest" : "با مهمان به اشتراک بگذارید",
|
||||
"Share with guest" : "اشتراکگذاری با مهمان",
|
||||
"Update share" : "بهروزرسانی همرسانی",
|
||||
"Save share" : "ذخیره اشتراک گذاری",
|
||||
"Read" : "خواندن",
|
||||
|
||||
@@ -545,6 +545,8 @@ class ShareAPIController extends OCSController {
|
||||
$this->lock($share->getNode());
|
||||
} catch (LockedException $e) {
|
||||
throw new OCSNotFoundException($this->l->t('Could not delete share'));
|
||||
} catch (NotFoundException $e) {
|
||||
$this->logger->debug('File of to be deleted share was not found, skip locking', ['exception' => $e]);
|
||||
}
|
||||
|
||||
if (!$this->canAccessShare($share)) {
|
||||
|
||||
@@ -15,6 +15,7 @@ use OCP\Http\Client\IClientService;
|
||||
use OCP\IDBConnection;
|
||||
use OCP\IUser;
|
||||
use OCP\Server;
|
||||
use OCP\Share\IShare;
|
||||
|
||||
class MountProvider implements IMountProvider {
|
||||
public const STORAGE = '\OCA\Files_Sharing\External\Storage';
|
||||
@@ -54,7 +55,7 @@ class MountProvider implements IMountProvider {
|
||||
$qb->select('remote', 'share_token', 'password', 'mountpoint', 'owner')
|
||||
->from('share_external')
|
||||
->where($qb->expr()->eq('user', $qb->createNamedParameter($user->getUID())))
|
||||
->andWhere($qb->expr()->eq('accepted', $qb->createNamedParameter(1, IQueryBuilder::PARAM_INT)));
|
||||
->andWhere($qb->expr()->eq('accepted', $qb->createNamedParameter(IShare::STATUS_ACCEPTED, IQueryBuilder::PARAM_INT)));
|
||||
$result = $qb->executeQuery();
|
||||
$mounts = [];
|
||||
while ($row = $result->fetchAssociative()) {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user