Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a1654ae274 |
@@ -165,3 +165,46 @@ updates:
|
||||
# no major updates on stable branches
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major"]
|
||||
|
||||
# Composer dependencies for linting and testing
|
||||
- package-ecosystem: composer
|
||||
target-branch: stable31
|
||||
directories:
|
||||
- "/"
|
||||
- "/build/integration"
|
||||
- "/vendor-bin/cs-fixer"
|
||||
- "/vendor-bin/openapi-extractor"
|
||||
- "/vendor-bin/phpunit"
|
||||
- "/vendor-bin/psalm"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "04:00"
|
||||
timezone: Europe/Paris
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
ignore:
|
||||
# only patch updates on stable branches
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major", "version-update:semver-minor"]
|
||||
|
||||
# frontend dependencies
|
||||
- package-ecosystem: npm
|
||||
target-branch: stable31
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "04:00"
|
||||
timezone: Europe/Paris
|
||||
open-pull-requests-limit: 20
|
||||
labels:
|
||||
- "3. to review"
|
||||
- "feature: dependencies"
|
||||
# Disable automatic rebasing because without a build CI will likely fail anyway
|
||||
rebase-strategy: "disabled"
|
||||
ignore:
|
||||
# no major updates on stable branches
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major"]
|
||||
|
||||
@@ -52,7 +52,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
@@ -82,7 +82,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -31,7 +31,7 @@ jobs:
|
||||
- 'version.php'
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
||||
@@ -32,18 +32,18 @@ jobs:
|
||||
build-mode: none
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4.32.2
|
||||
uses: github/codeql-action/init@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v4.31.10
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
build-mode: ${{ matrix.build-mode }}
|
||||
config-file: ./.github/codeql-config.yml
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v4.32.2
|
||||
uses: github/codeql-action/analyze@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v4.31.10
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
||||
|
||||
@@ -103,7 +103,7 @@ jobs:
|
||||
key: git-repo
|
||||
|
||||
- name: Checkout ${{ needs.init.outputs.head_ref }}
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
# Needed to allow force push later
|
||||
persist-credentials: true
|
||||
|
||||
@@ -38,7 +38,7 @@ jobs:
|
||||
id: comment-branch
|
||||
|
||||
- name: Checkout ${{ steps.comment-branch.outputs.head_ref }}
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
fetch-depth: 0
|
||||
|
||||
@@ -48,7 +48,7 @@ jobs:
|
||||
exit 1
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
# We need to checkout submodules for 3rdparty
|
||||
@@ -171,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@84d178e4bbce871e23f2ffa3085898cde0e4f0ec # v7.1.2
|
||||
uses: cypress-io/github-action@dca986193e4336cb32820819b07e9ecacacaaaf6 # v7.0.0
|
||||
with:
|
||||
# We already installed the dependencies in the init job
|
||||
install: false
|
||||
|
||||
@@ -65,7 +65,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -74,7 +74,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
@@ -163,7 +163,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -65,7 +65,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -56,13 +56,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Checkout user_saml
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
repository: nextcloud/user_saml
|
||||
|
||||
@@ -75,7 +75,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -70,7 +70,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -64,7 +64,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -24,14 +24,14 @@ jobs:
|
||||
require: write
|
||||
|
||||
- name: Checkout github_helper
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
repository: nextcloud/github_helper
|
||||
path: github_helper
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
path: server
|
||||
|
||||
@@ -53,7 +53,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
@@ -71,7 +71,7 @@ jobs:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Set up Python
|
||||
uses: LizardByte/actions/actions/setup_python@9bf3ef783775e17fe6b8dde3585d94ec570b93c2 # v2026.212.22356
|
||||
uses: LizardByte/actions/actions/setup_python@e6bc045033a5614035b66daafc38ff86faecb23a # v2026.116.208
|
||||
with:
|
||||
python-version: '2.7'
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -76,7 +76,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -97,14 +97,14 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Checkout Talk app
|
||||
if: ${{ matrix.test-suite == 'videoverification_features' }}
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
repository: nextcloud/activity
|
||||
|
||||
@@ -56,7 +56,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ jobs:
|
||||
name: NPM build
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout
|
||||
id: checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
ref: ${{ matrix.branches }}
|
||||
|
||||
@@ -79,7 +79,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -80,7 +80,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -77,7 +77,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -26,7 +26,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ jobs:
|
||||
exit 1
|
||||
|
||||
- name: Checkout server before PR
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -92,7 +92,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -72,7 +72,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -121,7 +121,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -92,7 +92,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -75,7 +75,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -72,7 +72,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -99,7 +99,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -92,7 +92,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -75,7 +75,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -1,69 +0,0 @@
|
||||
# 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: 2026 Nextcloud GmbH and Nextcloud contributors
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
name: Apply rector changes
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
# At 14:30 on Sundays
|
||||
- cron: '30 14 * * 0'
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
php-versions: [ '8.2' ]
|
||||
|
||||
name: rector-apply
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
id: checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
ref: ${{ github.event.repository.default_branch }}
|
||||
|
||||
- name: Set up php${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
|
||||
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:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
composer remove nextcloud/ocp --dev --no-scripts
|
||||
composer i
|
||||
|
||||
- name: Rector
|
||||
run: composer run rector
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: 'refactor: Apply rector changes'
|
||||
committer: GitHub <noreply@github.com>
|
||||
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
|
||||
signoff: true
|
||||
branch: automated/noid/rector-changes
|
||||
title: 'Apply rector changes'
|
||||
labels: |
|
||||
technical debt
|
||||
3. to review
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
runs-on: ubuntu-latest-low
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
@@ -63,7 +63,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
@@ -88,7 +88,7 @@ jobs:
|
||||
|
||||
- name: Upload Security Analysis results to GitHub
|
||||
if: always()
|
||||
uses: github/codeql-action/upload-sarif@45cbd0c69e560cd9e7cd7f8c32362050c9b7ded2 # v3
|
||||
uses: github/codeql-action/upload-sarif@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v3
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
||||
@@ -99,7 +99,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
@@ -131,7 +131,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
@@ -159,13 +159,13 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
|
||||
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@ec406be512d7077f68eed36e63f4d91bc006edc4 #v2.35.4
|
||||
with:
|
||||
php-version: '8.2'
|
||||
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
|
||||
@@ -22,7 +22,7 @@ jobs:
|
||||
name: update-ca-certificate-bundle-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
ref: ${{ matrix.branches }}
|
||||
|
||||
@@ -22,7 +22,7 @@ jobs:
|
||||
name: update-code-signing-crl-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
ref: ${{ matrix.branches }}
|
||||
|
||||
@@ -16,7 +16,7 @@ jobs:
|
||||
runs-on: ubuntu-latest-low
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
+1
-1
Submodule 3rdparty updated: 34fdf0b083...8f97d8cef3
@@ -1,7 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"admin_audit",
|
||||
{
|
||||
"Auditing / Logging" : "Аудит / Лог",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Nextcloud-д файл нэвтрэлт болон мэдрэмтгий үйлдлүүдийг бүртгэх зэрэг лог хөтлөх чадварыг олгодог."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,5 +0,0 @@
|
||||
{ "translations": {
|
||||
"Auditing / Logging" : "Аудит / Лог",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Nextcloud-д файл нэвтрэлт болон мэдрэмтгий үйлдлүүдийг бүртгэх зэрэг лог хөтлөх чадварыг олгодог."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"cloud_federation_api",
|
||||
{
|
||||
"Cloud Federation API" : "Cloud Federation API",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Үүлнүүдийг хоорондоо холбогдож өгөгдөл солилцох боломжтой болгох",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Cloud Federation API нь янз бүрийн Nextcloud инстанцуудад хоорондоо харилцах болон өгөгдөл солилцох боломжийг олгодог."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,6 +0,0 @@
|
||||
{ "translations": {
|
||||
"Cloud Federation API" : "Cloud Federation API",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Үүлнүүдийг хоорондоо холбогдож өгөгдөл солилцох боломжтой болгох",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Cloud Federation API нь янз бүрийн Nextcloud инстанцуудад хоорондоо харилцах болон өгөгдөл солилцох боломжийг олгодог."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
OC.L10N.register(
|
||||
"cloud_federation_api",
|
||||
{
|
||||
"Cloud Federation API" : "Jamg'armaning bulutli APIsi",
|
||||
"Cloud Federation API" : "Asl faylni o'chirishda kutilmagan xatolik yuz berdi.",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Bulutlar bir-biri bilan aloqa qilish va ma'lumot almashish imkonini beradi",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Cloud Jamoada API turli xil Nextcloud misollariga bir-biri bilan muloqot qilish va ma'lumotlarni almashish imkonini beradi."
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Cloud Federation API turli xil Nextcloud misollariga bir-biri bilan muloqot qilish va ma'lumotlarni almashish imkonini beradi."
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ "translations": {
|
||||
"Cloud Federation API" : "Jamg'armaning bulutli APIsi",
|
||||
"Cloud Federation API" : "Asl faylni o'chirishda kutilmagan xatolik yuz berdi.",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Bulutlar bir-biri bilan aloqa qilish va ma'lumot almashish imkonini beradi",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Cloud Jamoada API turli xil Nextcloud misollariga bir-biri bilan muloqot qilish va ma'lumotlarni almashish imkonini beradi."
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Cloud Federation API turli xil Nextcloud misollariga bir-biri bilan muloqot qilish va ma'lumotlarni almashish imkonini beradi."
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2017-2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-FileCopyrightText: 2016 ownCloud, Inc.
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Сэтгэгдэл",
|
||||
"You commented" : "Та сэтгэгдэл бичсэн байна",
|
||||
"{author} commented" : "{author} сэтгэгдэл бичсэн",
|
||||
"You commented on %1$s" : "Та %1$s нийтлэл дээр сэтгэгдэл бичсэн байна",
|
||||
"You commented on {file}" : "Та {file} сэтгэгдэл бичсэн байна",
|
||||
"%1$s commented on %2$s" : "%1$s нь %2$s-д сэтгэгдэл бичсэн",
|
||||
"{author} commented on {file}" : "{author} нь {file}-д сэтгэгдэл бичсэн",
|
||||
"<strong>Comments</strong> for files" : "Файлууд дахь<strong>Сэтгэгдэлүүд</strong>",
|
||||
"Files" : "Файлууд",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Та \"{file}\" дээр, устгагдсан акаунтын сэтгэгдэлд дурдагдсан байна",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} таныг \"{file}\" дээрх сэтгэгдэлд дурдсан",
|
||||
"Files app plugin to add comments to files" : "Файлд сэтгэгдэл нэмэх Файлын апп плагин",
|
||||
"Edit comment" : "Сэтгэгдэл засах",
|
||||
"Delete comment" : "Сэтгэгдэл устгах",
|
||||
"Cancel edit" : "Засварлахыг болих",
|
||||
"New comment" : "Шинэ сэтгэгдэл",
|
||||
"Write a comment …" : "Сэтгэгдэл бичих …",
|
||||
"Post comment" : "Сэтгэгдэл илгээх",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ дурдахад, : эможид, / ухаалаг сонгогчид",
|
||||
"Could not reload comments" : "Сэтгэгдлүүдийг дахин ачаалж чадсангүй",
|
||||
"Failed to mark comments as read" : "Сэтгэгдлүүдийг уншсан гэж тэмдэглэж чадсангүй",
|
||||
"Unable to load the comments list" : "Сэтгэгдлүүдийн жагсаалтыг ачаалж чадсангүй",
|
||||
"No comments yet, start the conversation!" : "Сэтгэгдэл байхгүй байна",
|
||||
"No more messages" : "Илүү мессеж байхгүй",
|
||||
"Retry" : "Дахин оролдох",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 шинэ сэтгэгдэл","{unread} шинэ сэтгэгдэл"],
|
||||
"Comment" : "Сэтгэгдэл",
|
||||
"An error occurred while trying to edit the comment" : "Сэтгэгдэл засварлах үед алдаа гарлаа",
|
||||
"Comment deleted" : "Сэтгэгдэл устгагдсан",
|
||||
"An error occurred while trying to delete the comment" : "Сэтгэгдэл устгах үед алдаа гарлаа",
|
||||
"An error occurred while trying to create the comment" : "Сэтгэгдэл үүсгэх үед алдаа гарлаа",
|
||||
"Write a comment …" : "Сэтгэгдэл бичих …"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,35 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Сэтгэгдэл",
|
||||
"You commented" : "Та сэтгэгдэл бичсэн байна",
|
||||
"{author} commented" : "{author} сэтгэгдэл бичсэн",
|
||||
"You commented on %1$s" : "Та %1$s нийтлэл дээр сэтгэгдэл бичсэн байна",
|
||||
"You commented on {file}" : "Та {file} сэтгэгдэл бичсэн байна",
|
||||
"%1$s commented on %2$s" : "%1$s нь %2$s-д сэтгэгдэл бичсэн",
|
||||
"{author} commented on {file}" : "{author} нь {file}-д сэтгэгдэл бичсэн",
|
||||
"<strong>Comments</strong> for files" : "Файлууд дахь<strong>Сэтгэгдэлүүд</strong>",
|
||||
"Files" : "Файлууд",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Та \"{file}\" дээр, устгагдсан акаунтын сэтгэгдэлд дурдагдсан байна",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} таныг \"{file}\" дээрх сэтгэгдэлд дурдсан",
|
||||
"Files app plugin to add comments to files" : "Файлд сэтгэгдэл нэмэх Файлын апп плагин",
|
||||
"Edit comment" : "Сэтгэгдэл засах",
|
||||
"Delete comment" : "Сэтгэгдэл устгах",
|
||||
"Cancel edit" : "Засварлахыг болих",
|
||||
"New comment" : "Шинэ сэтгэгдэл",
|
||||
"Write a comment …" : "Сэтгэгдэл бичих …",
|
||||
"Post comment" : "Сэтгэгдэл илгээх",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ дурдахад, : эможид, / ухаалаг сонгогчид",
|
||||
"Could not reload comments" : "Сэтгэгдлүүдийг дахин ачаалж чадсангүй",
|
||||
"Failed to mark comments as read" : "Сэтгэгдлүүдийг уншсан гэж тэмдэглэж чадсангүй",
|
||||
"Unable to load the comments list" : "Сэтгэгдлүүдийн жагсаалтыг ачаалж чадсангүй",
|
||||
"No comments yet, start the conversation!" : "Сэтгэгдэл байхгүй байна",
|
||||
"No more messages" : "Илүү мессеж байхгүй",
|
||||
"Retry" : "Дахин оролдох",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 шинэ сэтгэгдэл","{unread} шинэ сэтгэгдэл"],
|
||||
"Comment" : "Сэтгэгдэл",
|
||||
"An error occurred while trying to edit the comment" : "Сэтгэгдэл засварлах үед алдаа гарлаа",
|
||||
"Comment deleted" : "Сэтгэгдэл устгагдсан",
|
||||
"An error occurred while trying to delete the comment" : "Сэтгэгдэл устгах үед алдаа гарлаа",
|
||||
"An error occurred while trying to create the comment" : "Сэтгэгдэл үүсгэх үед алдаа гарлаа",
|
||||
"Write a comment …" : "Сэтгэгдэл бичих …"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -17,7 +17,6 @@ OC.L10N.register(
|
||||
"Delete comment" : "Zmazať komentár",
|
||||
"Cancel edit" : "Zrušiť upravovanie",
|
||||
"New comment" : "Nový komentár",
|
||||
"Write a comment …" : "Napísať komentár ...",
|
||||
"Post comment" : "Odoslať komentár",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ pre spomienky, : pre emotikony, / pre inteligentný výber",
|
||||
"Could not reload comments" : "Nepodarilo sa obnoviť komentáre",
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
"Delete comment" : "Zmazať komentár",
|
||||
"Cancel edit" : "Zrušiť upravovanie",
|
||||
"New comment" : "Nový komentár",
|
||||
"Write a comment …" : "Napísať komentár ...",
|
||||
"Post comment" : "Odoslať komentár",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ pre spomienky, : pre emotikony, / pre inteligentný výber",
|
||||
"Could not reload comments" : "Nepodarilo sa obnoviť komentáre",
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Izohlar",
|
||||
"You commented" : "Siz fikr bildirgansiz",
|
||||
"{author} commented" : "{author} izoh qoldirdi",
|
||||
"You commented on %1$s" : "Siz %1$s haqida fikr bildirdingiz",
|
||||
"You commented on {file}" : "Siz {file} ga izoh qoldirdingiz",
|
||||
"%1$s commented on %2$s" : "%1$s %2$s haqida fikr bildirdi",
|
||||
"{author} commented on {file}" : "{author} {file} ga izoh qoldirdi",
|
||||
"<strong>Comments</strong> for files" : "Fayllar uchun <strong>Izohlar</strong>",
|
||||
"Files" : "Fayllar",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Siz \"{file}\"da, keyinchalik o'chirilgan hisob tomonidan izohda tilga olingansiz",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} sizni \"{file}\" dagi izohda tilga oldi",
|
||||
"Files app plugin to add comments to files" : "Fayllarga izohlar qo'shish ilova plagini",
|
||||
"Edit comment" : "Izohni tahrirlash",
|
||||
"Delete comment" : "Izohni o'chirish",
|
||||
"Cancel edit" : "Tahrirni bekor qilish",
|
||||
"New comment" : "Yangi izoh",
|
||||
"Write a comment …" : "Fikr yozing…",
|
||||
"Post comment" : "Fikr qoldirish",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ eslatmalar uchun, : emojilar uchun, / aqlli tanlovclar uchun",
|
||||
"Could not reload comments" : "Izohlarni qayta yuklab bo'lmadi",
|
||||
"Failed to mark comments as read" : "Izohlarni o'qilgan deb belgilashda xatolik yuz berdi",
|
||||
"Unable to load the comments list" : "Izohlar ro'yxatini yuklab bo'lmadi",
|
||||
"No comments yet, start the conversation!" : "Hali izohlar yo'q, suhbatni boshlang!",
|
||||
"No more messages" : "Boshqa xabarlar yo'q",
|
||||
"Retry" : "Qayta urinish",
|
||||
"_1 new comment_::_{unread} new comments_" : ["{unread} ta yangi izoh"],
|
||||
"Comment" : "Izoh",
|
||||
"An error occurred while trying to edit the comment" : "Izohni tahrirlashda xatolik yuz berdi",
|
||||
"Comment deleted" : "Izoh o'chirildi",
|
||||
"An error occurred while trying to delete the comment" : "Izohni o'chirishda xatolik yuz berdi",
|
||||
"An error occurred while trying to create the comment" : "Izoh yaratishda xatolik yuz berdi",
|
||||
"Write a comment …" : "Izoh yozing..."
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
||||
@@ -1,35 +0,0 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Izohlar",
|
||||
"You commented" : "Siz fikr bildirgansiz",
|
||||
"{author} commented" : "{author} izoh qoldirdi",
|
||||
"You commented on %1$s" : "Siz %1$s haqida fikr bildirdingiz",
|
||||
"You commented on {file}" : "Siz {file} ga izoh qoldirdingiz",
|
||||
"%1$s commented on %2$s" : "%1$s %2$s haqida fikr bildirdi",
|
||||
"{author} commented on {file}" : "{author} {file} ga izoh qoldirdi",
|
||||
"<strong>Comments</strong> for files" : "Fayllar uchun <strong>Izohlar</strong>",
|
||||
"Files" : "Fayllar",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Siz \"{file}\"da, keyinchalik o'chirilgan hisob tomonidan izohda tilga olingansiz",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} sizni \"{file}\" dagi izohda tilga oldi",
|
||||
"Files app plugin to add comments to files" : "Fayllarga izohlar qo'shish ilova plagini",
|
||||
"Edit comment" : "Izohni tahrirlash",
|
||||
"Delete comment" : "Izohni o'chirish",
|
||||
"Cancel edit" : "Tahrirni bekor qilish",
|
||||
"New comment" : "Yangi izoh",
|
||||
"Write a comment …" : "Fikr yozing…",
|
||||
"Post comment" : "Fikr qoldirish",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ eslatmalar uchun, : emojilar uchun, / aqlli tanlovclar uchun",
|
||||
"Could not reload comments" : "Izohlarni qayta yuklab bo'lmadi",
|
||||
"Failed to mark comments as read" : "Izohlarni o'qilgan deb belgilashda xatolik yuz berdi",
|
||||
"Unable to load the comments list" : "Izohlar ro'yxatini yuklab bo'lmadi",
|
||||
"No comments yet, start the conversation!" : "Hali izohlar yo'q, suhbatni boshlang!",
|
||||
"No more messages" : "Boshqa xabarlar yo'q",
|
||||
"Retry" : "Qayta urinish",
|
||||
"_1 new comment_::_{unread} new comments_" : ["{unread} ta yangi izoh"],
|
||||
"Comment" : "Izoh",
|
||||
"An error occurred while trying to edit the comment" : "Izohni tahrirlashda xatolik yuz berdi",
|
||||
"Comment deleted" : "Izoh o'chirildi",
|
||||
"An error occurred while trying to delete the comment" : "Izohni o'chirishda xatolik yuz berdi",
|
||||
"An error occurred while trying to create the comment" : "Izoh yaratishda xatolik yuz berdi",
|
||||
"Write a comment …" : "Izoh yozing..."
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -12,6 +12,7 @@ use OCP\App\IAppManager;
|
||||
use OCP\Comments\CommentsEvent;
|
||||
use OCP\Files\Config\IMountProviderCollection;
|
||||
use OCP\Files\IRootFolder;
|
||||
use OCP\Files\Node;
|
||||
use OCP\IUser;
|
||||
use OCP\IUserSession;
|
||||
use OCP\Share\IShareHelper;
|
||||
@@ -46,8 +47,10 @@ class Listener {
|
||||
foreach ($mounts as $mount) {
|
||||
$owner = $mount->getUser()->getUID();
|
||||
$ownerFolder = $this->rootFolder->getUserFolder($owner);
|
||||
$node = $ownerFolder->getFirstNodeById((int)$event->getComment()->getObjectId());
|
||||
if ($node !== null) {
|
||||
$nodes = $ownerFolder->getById((int)$event->getComment()->getObjectId());
|
||||
if (!empty($nodes)) {
|
||||
/** @var Node $node */
|
||||
$node = array_shift($nodes);
|
||||
$al = $this->shareHelper->getPathsForAccessList($node);
|
||||
$users += $al['users'];
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
@@ -70,11 +70,11 @@ class NotificationsController extends Controller {
|
||||
return new NotFoundResponse();
|
||||
}
|
||||
$userFolder = $this->rootFolder->getUserFolder($currentUser->getUID());
|
||||
$file = $userFolder->getFirstNodeById((int)$comment->getObjectId());
|
||||
$files = $userFolder->getById((int)$comment->getObjectId());
|
||||
|
||||
$this->markProcessed($comment, $currentUser);
|
||||
|
||||
if ($file === null) {
|
||||
if (empty($files)) {
|
||||
return new NotFoundResponse();
|
||||
}
|
||||
|
||||
|
||||
@@ -32,8 +32,8 @@ class CommentsEntityEventListener implements IEventListener {
|
||||
}
|
||||
|
||||
$event->addEntityCollection('files', function ($name): bool {
|
||||
$node = $this->rootFolder->getUserFolder($this->userId)->getFirstNodeById((int)$name);
|
||||
return $node !== null;
|
||||
$nodes = $this->rootFolder->getUserFolder($this->userId)->getById((int)$name);
|
||||
return !empty($nodes);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,10 +84,11 @@ class Notifier implements INotifier {
|
||||
throw new UnknownNotificationException('Unsupported comment object');
|
||||
}
|
||||
$userFolder = $this->rootFolder->getUserFolder($notification->getUser());
|
||||
$node = $userFolder->getFirstNodeById((int)$parameters[1]);
|
||||
if ($node === null) {
|
||||
$nodes = $userFolder->getById((int)$parameters[1]);
|
||||
if (empty($nodes)) {
|
||||
throw new AlreadyProcessedException();
|
||||
}
|
||||
$node = $nodes[0];
|
||||
|
||||
$path = rtrim($node->getPath(), '/');
|
||||
if (str_starts_with($path, '/' . $notification->getUser() . '/files/')) {
|
||||
|
||||
@@ -116,11 +116,11 @@ class CommentsSearchProvider implements IProvider {
|
||||
* @throws NotFoundException
|
||||
*/
|
||||
protected function getFileForComment(Folder $userFolder, IComment $comment): Node {
|
||||
$node = $userFolder->getFirstNodeById((int)$comment->getObjectId());
|
||||
if ($node === null) {
|
||||
$nodes = $userFolder->getById((int)$comment->getObjectId());
|
||||
if (empty($nodes)) {
|
||||
throw new NotFoundException('File not found');
|
||||
}
|
||||
|
||||
return $node;
|
||||
return array_shift($nodes);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
/*!
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import type { IFolder, IView } from '@nextcloud/files'
|
||||
import type { Folder, View } from '@nextcloud/files'
|
||||
|
||||
import { File, Permission } from '@nextcloud/files'
|
||||
import { File, FileAction, Permission } from '@nextcloud/files'
|
||||
import { describe, expect, test, vi } from 'vitest'
|
||||
import logger from '../logger.js'
|
||||
import { action } from './inlineUnreadCommentsAction.ts'
|
||||
@@ -13,7 +13,7 @@ import { action } from './inlineUnreadCommentsAction.ts'
|
||||
const view = {
|
||||
id: 'files',
|
||||
name: 'Files',
|
||||
} as IView
|
||||
} as View
|
||||
|
||||
describe('Inline unread comments action display name tests', () => {
|
||||
test('Default values', () => {
|
||||
@@ -29,35 +29,36 @@ describe('Inline unread comments action display name tests', () => {
|
||||
root: '/files/admin',
|
||||
})
|
||||
|
||||
expect(action).toBeInstanceOf(FileAction)
|
||||
expect(action.id).toBe('comments-unread')
|
||||
expect(action.displayName({
|
||||
nodes: [file],
|
||||
view,
|
||||
folder: {} as IFolder,
|
||||
folder: {} as Folder,
|
||||
contents: [],
|
||||
})).toBe('')
|
||||
expect(action.title!({
|
||||
nodes: [file],
|
||||
view,
|
||||
folder: {} as IFolder,
|
||||
folder: {} as Folder,
|
||||
contents: [],
|
||||
})).toBe('1 new comment')
|
||||
expect(action.iconSvgInline({
|
||||
nodes: [file],
|
||||
view,
|
||||
folder: {} as IFolder,
|
||||
folder: {} as Folder,
|
||||
contents: [],
|
||||
})).toMatch(/<svg.+<\/svg>/)
|
||||
expect(action.enabled!({
|
||||
nodes: [file],
|
||||
view,
|
||||
folder: {} as IFolder,
|
||||
folder: {} as Folder,
|
||||
contents: [],
|
||||
})).toBe(true)
|
||||
expect(action.inline!({
|
||||
nodes: [file],
|
||||
view,
|
||||
folder: {} as IFolder,
|
||||
folder: {} as Folder,
|
||||
contents: [],
|
||||
})).toBe(true)
|
||||
expect(action.default).toBeUndefined()
|
||||
@@ -80,13 +81,13 @@ describe('Inline unread comments action display name tests', () => {
|
||||
expect(action.displayName({
|
||||
nodes: [file],
|
||||
view,
|
||||
folder: {} as IFolder,
|
||||
folder: {} as Folder,
|
||||
contents: [],
|
||||
})).toBe('')
|
||||
expect(action.title!({
|
||||
nodes: [file],
|
||||
view,
|
||||
folder: {} as IFolder,
|
||||
folder: {} as Folder,
|
||||
contents: [],
|
||||
})).toBe('2 new comments')
|
||||
})
|
||||
@@ -107,7 +108,7 @@ describe('Inline unread comments action enabled tests', () => {
|
||||
expect(action.enabled!({
|
||||
nodes: [file],
|
||||
view,
|
||||
folder: {} as IFolder,
|
||||
folder: {} as Folder,
|
||||
contents: [],
|
||||
})).toBe(false)
|
||||
})
|
||||
@@ -128,7 +129,7 @@ describe('Inline unread comments action enabled tests', () => {
|
||||
expect(action.enabled!({
|
||||
nodes: [file],
|
||||
view,
|
||||
folder: {} as IFolder,
|
||||
folder: {} as Folder,
|
||||
contents: [],
|
||||
})).toBe(false)
|
||||
})
|
||||
@@ -149,7 +150,7 @@ describe('Inline unread comments action enabled tests', () => {
|
||||
expect(action.enabled!({
|
||||
nodes: [file],
|
||||
view,
|
||||
folder: {} as IFolder,
|
||||
folder: {} as Folder,
|
||||
contents: [],
|
||||
})).toBe(true)
|
||||
})
|
||||
@@ -170,7 +171,7 @@ describe('Inline unread comments action enabled tests', () => {
|
||||
expect(action.enabled!({
|
||||
nodes: [file],
|
||||
view,
|
||||
folder: {} as IFolder,
|
||||
folder: {} as Folder,
|
||||
contents: [],
|
||||
})).toBe(true)
|
||||
})
|
||||
@@ -203,7 +204,7 @@ describe('Inline unread comments action execute tests', () => {
|
||||
const result = await action.exec!({
|
||||
nodes: [file],
|
||||
view,
|
||||
folder: {} as IFolder,
|
||||
folder: {} as Folder,
|
||||
contents: [],
|
||||
})
|
||||
|
||||
@@ -240,7 +241,7 @@ describe('Inline unread comments action execute tests', () => {
|
||||
const result = await action.exec!({
|
||||
nodes: [file],
|
||||
view,
|
||||
folder: {} as IFolder,
|
||||
folder: {} as Folder,
|
||||
contents: [],
|
||||
})
|
||||
|
||||
|
||||
@@ -3,15 +3,12 @@
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import type { IFileAction } from '@nextcloud/files'
|
||||
|
||||
import CommentProcessingSvg from '@mdi/svg/svg/comment-processing.svg?raw'
|
||||
import { getSidebar } from '@nextcloud/files'
|
||||
import { FileAction, getSidebar } from '@nextcloud/files'
|
||||
import { n, t } from '@nextcloud/l10n'
|
||||
import logger from '../logger.js'
|
||||
import { isUsingActivityIntegration } from '../utils/activity.js'
|
||||
|
||||
export const action: IFileAction = {
|
||||
export const action = new FileAction({
|
||||
id: 'comments-unread',
|
||||
|
||||
title({ nodes }) {
|
||||
@@ -39,13 +36,7 @@ export const action: IFileAction = {
|
||||
|
||||
try {
|
||||
const sidebar = getSidebar()
|
||||
const sidebarTabId = isUsingActivityIntegration() ? 'activity' : 'comments'
|
||||
if (sidebar.isOpen && sidebar.node?.source === nodes[0].source) {
|
||||
logger.debug('Sidebar already open for this node, just activating comments tab')
|
||||
sidebar.setActiveTab(sidebarTabId)
|
||||
return null
|
||||
}
|
||||
sidebar.open(nodes[0], sidebarTabId)
|
||||
sidebar.open(nodes[0], 'comments')
|
||||
return null
|
||||
} catch (error) {
|
||||
logger.error('Error while opening sidebar', { error })
|
||||
@@ -56,4 +47,4 @@ export const action: IFileAction = {
|
||||
inline: () => true,
|
||||
|
||||
order: -140,
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*!
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
@@ -6,18 +6,18 @@
|
||||
import MessageReplyText from '@mdi/svg/svg/message-reply-text.svg?raw'
|
||||
import { getCSPNonce } from '@nextcloud/auth'
|
||||
import { registerSidebarTab } from '@nextcloud/files'
|
||||
import { loadState } from '@nextcloud/initial-state'
|
||||
import { t } from '@nextcloud/l10n'
|
||||
import wrap from '@vue/web-component-wrapper'
|
||||
import { createPinia, PiniaVuePlugin } from 'pinia'
|
||||
import Vue from 'vue'
|
||||
import { registerCommentsPlugins } from './comments-activity-tab.ts'
|
||||
import { isUsingActivityIntegration } from './utils/activity.ts'
|
||||
|
||||
__webpack_nonce__ = getCSPNonce()
|
||||
|
||||
const tagName = 'comments_files-sidebar-tab'
|
||||
|
||||
if (isUsingActivityIntegration()) {
|
||||
if (loadState('comments', 'activityEnabled', false) && OCA?.Activity?.registerSidebarAction !== undefined) {
|
||||
// Do not mount own tab but mount into activity
|
||||
window.addEventListener('DOMContentLoaded', function() {
|
||||
registerCommentsPlugins()
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
/*!
|
||||
* SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import { loadState } from '@nextcloud/initial-state'
|
||||
|
||||
/**
|
||||
* Check if the comments app is using the Activity app integration for the sidebar.
|
||||
*/
|
||||
export function isUsingActivityIntegration() {
|
||||
return loadState('comments', 'activityEnabled', false) && window.OCA?.Activity?.registerSidebarAction !== undefined
|
||||
}
|
||||
@@ -92,11 +92,12 @@ class ListenerTest extends TestCase {
|
||||
->willReturn($userMountCache);
|
||||
|
||||
$node = $this->createMock(Node::class);
|
||||
$nodes = [ $node ];
|
||||
|
||||
$ownerFolder = $this->createMock(Folder::class);
|
||||
$ownerFolder->expects($this->any())
|
||||
->method('getFirstNodeById')
|
||||
->willReturn($node);
|
||||
->method('getById')
|
||||
->willReturn($nodes);
|
||||
|
||||
$this->rootFolder->expects($this->any())
|
||||
->method('getUserFolder')
|
||||
|
||||
@@ -107,8 +107,8 @@ class NotificationsTest extends TestCase {
|
||||
->willReturn($folder);
|
||||
|
||||
$folder->expects($this->once())
|
||||
->method('getFirstNodeById')
|
||||
->willReturn($file);
|
||||
->method('getById')
|
||||
->willReturn([$file]);
|
||||
|
||||
$this->session->expects($this->once())
|
||||
->method('getUser')
|
||||
@@ -183,8 +183,8 @@ class NotificationsTest extends TestCase {
|
||||
->willReturn($folder);
|
||||
|
||||
$folder->expects($this->once())
|
||||
->method('getFirstNodeById')
|
||||
->willReturn(null);
|
||||
->method('getById')
|
||||
->willReturn([]);
|
||||
|
||||
$user = $this->createMock(IUser::class);
|
||||
|
||||
|
||||
@@ -86,9 +86,9 @@ class NotifierTest extends TestCase {
|
||||
->with('you')
|
||||
->willReturn($userFolder);
|
||||
$userFolder->expects($this->once())
|
||||
->method('getFirstNodeById')
|
||||
->method('getById')
|
||||
->with('678')
|
||||
->willReturn($node);
|
||||
->willReturn([$node]);
|
||||
|
||||
$this->notification->expects($this->exactly(2))
|
||||
->method('getUser')
|
||||
@@ -202,9 +202,9 @@ class NotifierTest extends TestCase {
|
||||
->with('you')
|
||||
->willReturn($userFolder);
|
||||
$userFolder->expects($this->once())
|
||||
->method('getFirstNodeById')
|
||||
->method('getById')
|
||||
->with('678')
|
||||
->willReturn($node);
|
||||
->willReturn([$node]);
|
||||
|
||||
$this->notification->expects($this->exactly(2))
|
||||
->method('getUser')
|
||||
@@ -301,7 +301,7 @@ class NotifierTest extends TestCase {
|
||||
|
||||
$this->folder
|
||||
->expects($this->never())
|
||||
->method('getFirstNodeById');
|
||||
->method('getById');
|
||||
|
||||
$this->notification
|
||||
->expects($this->once())
|
||||
@@ -338,7 +338,7 @@ class NotifierTest extends TestCase {
|
||||
|
||||
$this->folder
|
||||
->expects($this->never())
|
||||
->method('getFirstNodeById');
|
||||
->method('getById');
|
||||
|
||||
$this->notification
|
||||
->expects($this->once())
|
||||
@@ -378,7 +378,7 @@ class NotifierTest extends TestCase {
|
||||
|
||||
$this->folder
|
||||
->expects($this->never())
|
||||
->method('getFirstNodeById');
|
||||
->method('getById');
|
||||
|
||||
$this->notification
|
||||
->expects($this->once())
|
||||
@@ -435,7 +435,7 @@ class NotifierTest extends TestCase {
|
||||
|
||||
$this->folder
|
||||
->expects($this->never())
|
||||
->method('getFirstNodeById');
|
||||
->method('getById');
|
||||
|
||||
$this->notification
|
||||
->expects($this->once())
|
||||
@@ -497,9 +497,9 @@ class NotifierTest extends TestCase {
|
||||
->with('you')
|
||||
->willReturn($userFolder);
|
||||
$userFolder->expects($this->once())
|
||||
->method('getFirstNodeById')
|
||||
->method('getById')
|
||||
->with('678')
|
||||
->willReturn(null);
|
||||
->willReturn([]);
|
||||
|
||||
$this->notification->expects($this->once())
|
||||
->method('getUser')
|
||||
|
||||
@@ -2,8 +2,6 @@ OC.L10N.register(
|
||||
"contactsinteraction",
|
||||
{
|
||||
"Recently contacted" : "Nedavno kontaktiran",
|
||||
"Contacts Interaction" : "Interakcija kontakata",
|
||||
"Manages interaction between accounts and contacts" : "Upravlja interakcijom između računa i kontakata",
|
||||
"Collect data about accounts and contacts interactions and provide an address book for the data" : "Prikuplja podatke o interakcijama između računa i kontakata te pruža adresar za te podatke"
|
||||
"Contacts Interaction" : "Interakcija kontakata"
|
||||
},
|
||||
"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;");
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
{ "translations": {
|
||||
"Recently contacted" : "Nedavno kontaktiran",
|
||||
"Contacts Interaction" : "Interakcija kontakata",
|
||||
"Manages interaction between accounts and contacts" : "Upravlja interakcijom između računa i kontakata",
|
||||
"Collect data about accounts and contacts interactions and provide an address book for the data" : "Prikuplja podatke o interakcijama između računa i kontakata te pruža adresar za te podatke"
|
||||
"Contacts Interaction" : "Interakcija kontakata"
|
||||
},"pluralForm" :"nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
OC.L10N.register(
|
||||
"contactsinteraction",
|
||||
{
|
||||
"Recently contacted" : "Саяхан холбоо барьсан",
|
||||
"Contacts Interaction" : "Харилцагчийн харилцан үйлдэл",
|
||||
"Manages interaction between accounts and contacts" : "Бүртгэл ба харилцагчдын хоорондын харилцааг удирддаг",
|
||||
"Collect data about accounts and contacts interactions and provide an address book for the data" : "Бүртгэл болон харилцагчдын харилцан үйлчлэлийн өгөгдлийг цуглуулж, тэдгээр өгөгдлийн хаягийн дэвтрийг хангана"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -1,7 +0,0 @@
|
||||
{ "translations": {
|
||||
"Recently contacted" : "Саяхан холбоо барьсан",
|
||||
"Contacts Interaction" : "Харилцагчийн харилцан үйлдэл",
|
||||
"Manages interaction between accounts and contacts" : "Бүртгэл ба харилцагчдын хоорондын харилцааг удирддаг",
|
||||
"Collect data about accounts and contacts interactions and provide an address book for the data" : "Бүртгэл болон харилцагчдын харилцан үйлчлэлийн өгөгдлийг цуглуулж, тэдгээр өгөгдлийн хаягийн дэвтрийг хангана"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -22,6 +22,7 @@ OC.L10N.register(
|
||||
"Weather service" : "خدمة الطقس",
|
||||
"Weather data from Met.no" : "بيانات الطقس من Met.no",
|
||||
"geocoding with Nominatim" : "الترميز الجغرافي مع Nominatim",
|
||||
"elevation data from OpenTopoData" : "بيانات التقييم من OpenTopoData"
|
||||
"elevation data from OpenTopoData" : "بيانات التقييم من OpenTopoData",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "للحفاظ على خصوصيتك، يتم استدعاء بيانات حالة الطقس عبر خادم NextCloud الخاص بك نيابه عنك، وبالتالي فإن خدمة حالة الطقس لا تشارك معلوماتك الشخصية."
|
||||
},
|
||||
"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;");
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
"Weather service" : "خدمة الطقس",
|
||||
"Weather data from Met.no" : "بيانات الطقس من Met.no",
|
||||
"geocoding with Nominatim" : "الترميز الجغرافي مع Nominatim",
|
||||
"elevation data from OpenTopoData" : "بيانات التقييم من OpenTopoData"
|
||||
"elevation data from OpenTopoData" : "بيانات التقييم من OpenTopoData",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "للحفاظ على خصوصيتك، يتم استدعاء بيانات حالة الطقس عبر خادم NextCloud الخاص بك نيابه عنك، وبالتالي فإن خدمة حالة الطقس لا تشارك معلوماتك الشخصية."
|
||||
},"pluralForm" :"nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;"
|
||||
}
|
||||
@@ -20,6 +20,7 @@ OC.L10N.register(
|
||||
"Weather service" : "Serviciu del clima",
|
||||
"Weather data from Met.no" : "datos del clima de Met.no",
|
||||
"geocoding with Nominatim" : "xeocodificación con Nominatim",
|
||||
"elevation data from OpenTopoData" : "datos d'elevaciones d'OpenTopoData"
|
||||
"elevation data from OpenTopoData" : "datos d'elevaciones d'OpenTopoData",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pa la to privacidá, los datos del clima solicítense dende esta instancia de Nextcloud y, polo tanto, el serviciu del clima no recibe nenguna información personal."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
"Weather service" : "Serviciu del clima",
|
||||
"Weather data from Met.no" : "datos del clima de Met.no",
|
||||
"geocoding with Nominatim" : "xeocodificación con Nominatim",
|
||||
"elevation data from OpenTopoData" : "datos d'elevaciones d'OpenTopoData"
|
||||
"elevation data from OpenTopoData" : "datos d'elevaciones d'OpenTopoData",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pa la to privacidá, los datos del clima solicítense dende esta instancia de Nextcloud y, polo tanto, el serviciu del clima no recibe nenguna información personal."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -19,6 +19,7 @@ OC.L10N.register(
|
||||
"Weather service" : "Метеорологична услуга",
|
||||
"Weather data from Met.no" : "Данни за времето от Met.no",
|
||||
"geocoding with Nominatim" : "геокодиране с Nominatim",
|
||||
"elevation data from OpenTopoData" : " кота данни от OpenTopoData"
|
||||
"elevation data from OpenTopoData" : " кота данни от OpenTopoData",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "За вашата поверителност данните за времето се изискват от Nextcloud сървъра ви от ваше име, така че метеорологичната служба не получава лична информация."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
"Weather service" : "Метеорологична услуга",
|
||||
"Weather data from Met.no" : "Данни за времето от Met.no",
|
||||
"geocoding with Nominatim" : "геокодиране с Nominatim",
|
||||
"elevation data from OpenTopoData" : " кота данни от OpenTopoData"
|
||||
"elevation data from OpenTopoData" : " кота данни от OpenTopoData",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "За вашата поверителност данните за времето се изискват от Nextcloud сървъра ви от ваше име, така че метеорологичната служба не получава лична информация."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -22,6 +22,7 @@ OC.L10N.register(
|
||||
"Weather service" : "Servei meteorològic",
|
||||
"Weather data from Met.no" : "Dades meteorològiques de Met.no",
|
||||
"geocoding with Nominatim" : "codis geogràfics amb Nominatim",
|
||||
"elevation data from OpenTopoData" : "dades d'altitud d'OpenTopoData"
|
||||
"elevation data from OpenTopoData" : "dades d'altitud d'OpenTopoData",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Per a la vostra privadesa, les dades meteorològiques les sol·licita el servidor del Nextcloud en nom vostre perquè el servei meteorològic no rebi cap informació personal."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
"Weather service" : "Servei meteorològic",
|
||||
"Weather data from Met.no" : "Dades meteorològiques de Met.no",
|
||||
"geocoding with Nominatim" : "codis geogràfics amb Nominatim",
|
||||
"elevation data from OpenTopoData" : "dades d'altitud d'OpenTopoData"
|
||||
"elevation data from OpenTopoData" : "dades d'altitud d'OpenTopoData",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Per a la vostra privadesa, les dades meteorològiques les sol·licita el servidor del Nextcloud en nom vostre perquè el servei meteorològic no rebi cap informació personal."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -23,6 +23,7 @@ OC.L10N.register(
|
||||
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Vaše soukromí je chráněno tím, že komunikaci se službou předpovědi počasí zprostředkovává vámi využívaný {productName} server. Díky tomu služba, která tyto údaje poskytuje, neobdrží z vašeho počítače žádné osobní údaje.",
|
||||
"Weather data from Met.no" : "Údaje o počasí z Met.no",
|
||||
"geocoding with Nominatim" : "z popisu polohy na souřadnice převáděno službou Nominatim",
|
||||
"elevation data from OpenTopoData" : "data o nadmořských výškách z OpenTopoData"
|
||||
"elevation data from OpenTopoData" : "data o nadmořských výškách z OpenTopoData",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Vaše soukromí je chráněno tím, že komunikaci se službou předpovědi počasí zprostředkovává vámi využívaný Nextcloud server. Díky tomu služba, která tyto údaje poskytuje, neobdrží z vašeho počítače žádné osobní údaje."
|
||||
},
|
||||
"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;");
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Vaše soukromí je chráněno tím, že komunikaci se službou předpovědi počasí zprostředkovává vámi využívaný {productName} server. Díky tomu služba, která tyto údaje poskytuje, neobdrží z vašeho počítače žádné osobní údaje.",
|
||||
"Weather data from Met.no" : "Údaje o počasí z Met.no",
|
||||
"geocoding with Nominatim" : "z popisu polohy na souřadnice převáděno službou Nominatim",
|
||||
"elevation data from OpenTopoData" : "data o nadmořských výškách z OpenTopoData"
|
||||
"elevation data from OpenTopoData" : "data o nadmořských výškách z OpenTopoData",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Vaše soukromí je chráněno tím, že komunikaci se službou předpovědi počasí zprostředkovává vámi využívaný Nextcloud server. Díky tomu služba, která tyto údaje poskytuje, neobdrží z vašeho počítače žádné osobní údaje."
|
||||
},"pluralForm" :"nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;"
|
||||
}
|
||||
@@ -23,6 +23,7 @@ OC.L10N.register(
|
||||
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Af hensyn til dit privatliv anmoder din {productName} server om vejrdata på dine vegne, så vejrtjenesten ikke modtager personlige oplysninger.",
|
||||
"Weather data from Met.no" : "Vejr-data leveres af Met.no",
|
||||
"geocoding with Nominatim" : "Geocoding med Nominatim",
|
||||
"elevation data from OpenTopoData" : "Højde-data fra OpenTopoData"
|
||||
"elevation data from OpenTopoData" : "Højde-data fra OpenTopoData",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Af hensyn til dit privatliv, er det din Nextcloud-server der henter vejr-data og udbyderen modtager således ingen oplysninger om dig."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Af hensyn til dit privatliv anmoder din {productName} server om vejrdata på dine vegne, så vejrtjenesten ikke modtager personlige oplysninger.",
|
||||
"Weather data from Met.no" : "Vejr-data leveres af Met.no",
|
||||
"geocoding with Nominatim" : "Geocoding med Nominatim",
|
||||
"elevation data from OpenTopoData" : "Højde-data fra OpenTopoData"
|
||||
"elevation data from OpenTopoData" : "Højde-data fra OpenTopoData",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Af hensyn til dit privatliv, er det din Nextcloud-server der henter vejr-data og udbyderen modtager således ingen oplysninger om dig."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -23,6 +23,7 @@ OC.L10N.register(
|
||||
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Zu deinem Datenschutz werden die Wetterdaten von deinem {productName}-Server für dich angefordert, so dass der Wetterdienst keine persönlichen Informationen erhält.",
|
||||
"Weather data from Met.no" : "Wetterdaten von Met.no",
|
||||
"geocoding with Nominatim" : "Geokodierung mit Nominatim",
|
||||
"elevation data from OpenTopoData" : "Höhendaten von OpenTopoData"
|
||||
"elevation data from OpenTopoData" : "Höhendaten von OpenTopoData",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Zu deinem Datenschutz werden die Wetterdaten von deinem Nextcloud-Server für dich angefordert, so dass der Wetterdienst keine persönlichen Informationen erhält."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Zu deinem Datenschutz werden die Wetterdaten von deinem {productName}-Server für dich angefordert, so dass der Wetterdienst keine persönlichen Informationen erhält.",
|
||||
"Weather data from Met.no" : "Wetterdaten von Met.no",
|
||||
"geocoding with Nominatim" : "Geokodierung mit Nominatim",
|
||||
"elevation data from OpenTopoData" : "Höhendaten von OpenTopoData"
|
||||
"elevation data from OpenTopoData" : "Höhendaten von OpenTopoData",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Zu deinem Datenschutz werden die Wetterdaten von deinem Nextcloud-Server für dich angefordert, so dass der Wetterdienst keine persönlichen Informationen erhält."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -23,6 +23,7 @@ OC.L10N.register(
|
||||
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Zu Ihrem Datenschutz werden die Wetterdaten von Ihrem {productName}-Server für Sie angefordert, so dass der Wetterdienst keine persönlichen Informationen erhält.",
|
||||
"Weather data from Met.no" : "Wetterdaten von Met.no",
|
||||
"geocoding with Nominatim" : "Geokodierung mit Nominatim",
|
||||
"elevation data from OpenTopoData" : "Höhendaten von OpenTopoData"
|
||||
"elevation data from OpenTopoData" : "Höhendaten von OpenTopoData",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Zu Ihrem Datenschutz werden die Wetterdaten von Ihrem Nextcloud-Server für Sie angefordert, so dass der Wetterdienst keine persönlichen Informationen erhält."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Zu Ihrem Datenschutz werden die Wetterdaten von Ihrem {productName}-Server für Sie angefordert, so dass der Wetterdienst keine persönlichen Informationen erhält.",
|
||||
"Weather data from Met.no" : "Wetterdaten von Met.no",
|
||||
"geocoding with Nominatim" : "Geokodierung mit Nominatim",
|
||||
"elevation data from OpenTopoData" : "Höhendaten von OpenTopoData"
|
||||
"elevation data from OpenTopoData" : "Höhendaten von OpenTopoData",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Zu Ihrem Datenschutz werden die Wetterdaten von Ihrem Nextcloud-Server für Sie angefordert, so dass der Wetterdienst keine persönlichen Informationen erhält."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user