Compare commits
163 Commits
release/1.
...
6408-updat
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
934e210d66 | ||
|
|
90e0cab306 | ||
|
|
7a414a0ca3 | ||
|
|
be4e8438ab | ||
|
|
f9580003cc | ||
|
|
761d0ce4fe | ||
|
|
cb6d8dbaf5 | ||
|
|
9eefd22422 | ||
|
|
7e2c170d1b | ||
|
|
351c72a590 | ||
|
|
ea5f3f2d70 | ||
|
|
4441107360 | ||
|
|
529c4defb3 | ||
|
|
e7a2306268 | ||
|
|
1ffee422b6 | ||
|
|
9fba14f1d3 | ||
|
|
e0185a39a8 | ||
|
|
0e49d72a67 | ||
|
|
786d2583de | ||
|
|
3ebdaf694d | ||
|
|
db50b78cb6 | ||
|
|
60f0719380 | ||
|
|
c68d223670 | ||
|
|
5c1e3ec50a | ||
|
|
e0b11a0171 | ||
|
|
e7a53ce31a | ||
|
|
d83b8b809d | ||
|
|
1020f6e344 | ||
|
|
6591466620 | ||
|
|
4505f2c426 | ||
|
|
1484a1445c | ||
|
|
28fa6a4372 | ||
|
|
a3724d61be | ||
|
|
439c2b422e | ||
|
|
2a7c5b9c9c | ||
|
|
bd6475c93f | ||
|
|
ae14c299f6 | ||
|
|
95ab566607 | ||
|
|
e19b78d5cf | ||
|
|
b20c5821e7 | ||
|
|
1b0f545d06 | ||
|
|
806d1074ea | ||
|
|
789930e10e | ||
|
|
1231e267aa | ||
|
|
b95e9756ab | ||
|
|
deea984d57 | ||
|
|
2b6877e771 | ||
|
|
5274b16253 | ||
|
|
3ef0985ae1 | ||
|
|
da6914d563 | ||
|
|
855d6cc4b9 | ||
|
|
22f1b9076a | ||
|
|
4900aca82e | ||
|
|
dafdf10755 | ||
|
|
ca3f6747e2 | ||
|
|
26129e724b | ||
|
|
93c5a6eb0f | ||
|
|
e91a4698f3 | ||
|
|
5cd2c51d19 | ||
|
|
b87047320a | ||
|
|
93d77fdbec | ||
|
|
37a807c108 | ||
|
|
706b564c01 | ||
|
|
93dc26aa6e | ||
|
|
0bf25619e0 | ||
|
|
fede0908bf | ||
|
|
b0bafb9212 | ||
|
|
ca75c14252 | ||
|
|
0076026fad | ||
|
|
b49ba034a0 | ||
|
|
0b53a4746d | ||
|
|
b636796851 | ||
|
|
46b81edc9e | ||
|
|
9f6f4eb475 | ||
|
|
7e3dc511c0 | ||
|
|
a329df397e | ||
|
|
6f25fc7e19 | ||
|
|
599844a87e | ||
|
|
088905dd7a | ||
|
|
4ffbafdbf2 | ||
|
|
2be3b85b09 | ||
|
|
76c709287b | ||
|
|
1f7b3cc480 | ||
|
|
40ac9b6c3e | ||
|
|
06fcf8f2cd | ||
|
|
2f0241df2e | ||
|
|
34ff6f4aac | ||
|
|
40f7f0907a | ||
|
|
0e5006616e | ||
|
|
792a513bb5 | ||
|
|
a9b65de341 | ||
|
|
a0fc1bbeb8 | ||
|
|
482bcb3149 | ||
|
|
cf0b90369a | ||
|
|
a0bcbc5cc6 | ||
|
|
e73eec8ba4 | ||
|
|
c1ed33848c | ||
|
|
d9d75fdfe4 | ||
|
|
c348b824c8 | ||
|
|
39987a0303 | ||
|
|
0906b06192 | ||
|
|
434f59d06d | ||
|
|
af4c01abd4 | ||
|
|
516bc6d5fc | ||
|
|
d7b3aedab4 | ||
|
|
fb641946d6 | ||
|
|
b3bc532e81 | ||
|
|
fe1006d643 | ||
|
|
9a37d6dbfc | ||
|
|
bf704309ad | ||
|
|
635cf3962f | ||
|
|
43a0fec9a6 | ||
|
|
c6c41c59d2 | ||
|
|
fb54b8126a | ||
|
|
a4f2a99776 | ||
|
|
dbca6bc0d7 | ||
|
|
e647faf31c | ||
|
|
fdd05853af | ||
|
|
afd8372baa | ||
|
|
f99d1f516c | ||
|
|
1aa23407f1 | ||
|
|
83d59dd3a9 | ||
|
|
2233786605 | ||
|
|
2d2f7c6772 | ||
|
|
ba3e97b73d | ||
|
|
4107481b07 | ||
|
|
6e158992dc | ||
|
|
0e4c60c23f | ||
|
|
702672de28 | ||
|
|
48bdf83887 | ||
|
|
520a0f8c26 | ||
|
|
b84564b0f7 | ||
|
|
ba33a83e9f | ||
|
|
b645c1e974 | ||
|
|
3daad1b9bc | ||
|
|
5416a2b3a1 | ||
|
|
5c3098afa1 | ||
|
|
e25470ece3 | ||
|
|
87a65e9b0f | ||
|
|
4c9459ac57 | ||
|
|
67bd5dcb1f | ||
|
|
beb563e74e | ||
|
|
3e1805b09b | ||
|
|
ee568ec307 | ||
|
|
37b355b530 | ||
|
|
a5de97ff42 | ||
|
|
3f4cdf7293 | ||
|
|
2a35b627a0 | ||
|
|
517347533d | ||
|
|
f0d021560a | ||
|
|
d49093f6b6 | ||
|
|
1c2f3683a5 | ||
|
|
bd0f8fb4c4 | ||
|
|
061a04142b | ||
|
|
092af73794 | ||
|
|
0f3359e417 | ||
|
|
90272cdc12 | ||
|
|
7891f017c9 | ||
|
|
cb5b67ed09 | ||
|
|
201c121e34 | ||
|
|
a1ea3b772b | ||
|
|
4d6a05915c | ||
|
|
0c5b4b0ebe |
34
.github/dependabot.yml
vendored
34
.github/dependabot.yml
vendored
@@ -13,6 +13,23 @@ updates:
|
||||
- juliushaertl
|
||||
- luka-nextcloud
|
||||
|
||||
- package-ecosystem: npm
|
||||
target-branch: stable30
|
||||
versioning-strategy: lockfile-only
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
ignore:
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major"]
|
||||
open-pull-requests-limit: 30
|
||||
labels:
|
||||
- 3. to review
|
||||
- dependencies
|
||||
|
||||
- package-ecosystem: npm
|
||||
target-branch: stable29
|
||||
versioning-strategy: lockfile-only
|
||||
@@ -47,23 +64,6 @@ updates:
|
||||
- 3. to review
|
||||
- dependencies
|
||||
|
||||
- package-ecosystem: npm
|
||||
target-branch: stable27
|
||||
versioning-strategy: lockfile-only
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: weekly
|
||||
day: saturday
|
||||
time: "03:00"
|
||||
timezone: Europe/Paris
|
||||
ignore:
|
||||
- dependency-name: "*"
|
||||
update-types: ["version-update:semver-major"]
|
||||
open-pull-requests-limit: 30
|
||||
labels:
|
||||
- 3. to review
|
||||
- dependencies
|
||||
|
||||
- package-ecosystem: composer
|
||||
directory: "/"
|
||||
schedule:
|
||||
|
||||
4
.github/workflows/appbuild.yml
vendored
4
.github/workflows/appbuild.yml
vendored
@@ -16,9 +16,9 @@ jobs:
|
||||
node-version: [16.x]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.7
|
||||
- uses: actions/checkout@v4.2.1
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.0.3
|
||||
uses: actions/setup-node@v4.0.4
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Set up npm7
|
||||
|
||||
6
.github/workflows/appstore-build-publish.yml
vendored
6
.github/workflows/appstore-build-publish.yml
vendored
@@ -32,7 +32,7 @@ jobs:
|
||||
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
with:
|
||||
path: ${{ env.APP_NAME }}
|
||||
|
||||
@@ -56,7 +56,7 @@ jobs:
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
# Skip if no package.json
|
||||
if: ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
|
||||
uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
@@ -134,7 +134,7 @@ jobs:
|
||||
unzip latest-$NCVERSION.zip
|
||||
|
||||
- name: Checkout server master fallback
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
if: ${{ steps.server-checkout.outcome != 'success' }}
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
51
.github/workflows/command-rebase.yml
vendored
51
.github/workflows/command-rebase.yml
vendored
@@ -1,51 +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
|
||||
|
||||
name: Rebase command
|
||||
|
||||
on:
|
||||
issue_comment:
|
||||
types: created
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
rebase:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: none
|
||||
|
||||
# On pull requests and if the comment starts with `/rebase`
|
||||
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/rebase')
|
||||
|
||||
steps:
|
||||
- name: Add reaction on start
|
||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
repository: ${{ github.event.repository.full_name }}
|
||||
comment-id: ${{ github.event.comment.id }}
|
||||
reaction-type: "+1"
|
||||
|
||||
- name: Checkout the latest code
|
||||
uses: actions/checkout@v4.1.7 # v3.5.2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
|
||||
- name: Automatic Rebase
|
||||
uses: cirrus-actions/rebase@b87d48154a87a85666003575337e27b8cd65f691 # 1.8
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
|
||||
- name: Add reaction on failure
|
||||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
|
||||
if: failure()
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
repository: ${{ github.event.repository.full_name }}
|
||||
comment-id: ${{ github.event.comment.id }}
|
||||
reaction-type: "-1"
|
||||
10
.github/workflows/cypress-e2e.yml
vendored
10
.github/workflows/cypress-e2e.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
||||
node-version: [20.x]
|
||||
# containers: [1, 2, 3]
|
||||
php-versions: [ '8.2' ]
|
||||
server-versions: [ 'stable30' ]
|
||||
server-versions: [ 'master' ]
|
||||
|
||||
env:
|
||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu
|
||||
@@ -41,7 +41,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.0.3
|
||||
uses: actions/setup-node@v4.0.4
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
|
||||
@@ -51,7 +51,7 @@ jobs:
|
||||
echo "text_app_ref=$text_app_ref" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@v4.1.7
|
||||
uses: actions/checkout@v4.2.1
|
||||
with:
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
@@ -64,12 +64,12 @@ jobs:
|
||||
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
|
||||
|
||||
- name: Checkout ${{ env.APP_NAME }}
|
||||
uses: actions/checkout@v4.1.7
|
||||
uses: actions/checkout@v4.2.1
|
||||
with:
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Checkout text
|
||||
uses: actions/checkout@v4.1.7
|
||||
uses: actions/checkout@v4.2.1
|
||||
with:
|
||||
repository: nextcloud/text
|
||||
ref: ${{ env.text_app_ref }}
|
||||
|
||||
8
.github/workflows/integration.yml
vendored
8
.github/workflows/integration.yml
vendored
@@ -28,7 +28,7 @@ jobs:
|
||||
matrix:
|
||||
php-versions: ['8.1']
|
||||
databases: ['sqlite', 'mysql', 'pgsql']
|
||||
server-versions: ['stable30']
|
||||
server-versions: ['master']
|
||||
|
||||
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
||||
|
||||
@@ -52,7 +52,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@v4.1.7
|
||||
uses: actions/checkout@v4.2.1
|
||||
with:
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
@@ -66,12 +66,12 @@ jobs:
|
||||
cd build/integration && composer require --dev phpunit/phpunit:~9
|
||||
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@v4.1.7
|
||||
uses: actions/checkout@v4.2.1
|
||||
with:
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
- name: Checkout activity
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
with:
|
||||
repository: nextcloud/activity
|
||||
ref: ${{ matrix.server-versions }}
|
||||
|
||||
4
.github/workflows/lint-eslint.yml
vendored
4
.github/workflows/lint-eslint.yml
vendored
@@ -56,7 +56,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
@@ -66,7 +66,7 @@ jobs:
|
||||
fallbackNpm: '^10'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
|
||||
uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
|
||||
2
.github/workflows/lint-php-cs.yml
vendored
2
.github/workflows/lint-php-cs.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
|
||||
- name: Get php version
|
||||
id: versions
|
||||
|
||||
4
.github/workflows/lint-php.yml
vendored
4
.github/workflows/lint-php.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
||||
php-versions: ${{ steps.versions.outputs.php-versions }}
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
- name: Get version matrix
|
||||
id: versions
|
||||
uses: icewind1991/nextcloud-version-matrix@58becf3b4bb6dc6cef677b15e2fd8e7d48c0908f # v1.0.0
|
||||
@@ -40,7 +40,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
|
||||
|
||||
4
.github/workflows/lint-stylelint.yml
vendored
4
.github/workflows/lint-stylelint.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
|
||||
- name: Read package.json node and npm engines version
|
||||
uses: skjnldsv/read-package-engines-version-actions@06d6baf7d8f41934ab630e97d9e6c0bc9c9ac5e4 # v3
|
||||
@@ -35,7 +35,7 @@ jobs:
|
||||
fallbackNpm: '^10'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
|
||||
uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
|
||||
4
.github/workflows/nodejs.yml
vendored
4
.github/workflows/nodejs.yml
vendored
@@ -12,9 +12,9 @@ jobs:
|
||||
node-version: [14.x]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.7
|
||||
- uses: actions/checkout@v4.2.1
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.0.3
|
||||
uses: actions/setup-node@v4.0.4
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Set up npm7
|
||||
|
||||
8
.github/workflows/npm-audit-fix.yml
vendored
8
.github/workflows/npm-audit-fix.yml
vendored
@@ -21,13 +21,13 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branches: ['main', 'master', 'stable29', 'stable28', 'stable27']
|
||||
branches: ['main', 'master', 'stable30', 'stable29', 'stable28']
|
||||
|
||||
name: npm-audit-fix-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
with:
|
||||
ref: ${{ matrix.branches }}
|
||||
|
||||
@@ -39,7 +39,7 @@ jobs:
|
||||
fallbackNpm: '^10'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
|
||||
uses: actions/setup-node@0a44ba7841725637a19e28fa30b79a866c81b0a6 # v4.0.4
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
@@ -60,7 +60,7 @@ jobs:
|
||||
|
||||
- name: Create Pull Request
|
||||
if: always()
|
||||
uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6.1.0
|
||||
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: 'fix(deps): Fix npm audit'
|
||||
|
||||
6
.github/workflows/phpunit-mysql.yml
vendored
6
.github/workflows/phpunit-mysql.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
||||
matrix: ${{ steps.versions.outputs.sparse-matrix }}
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
|
||||
- name: Get version matrix
|
||||
id: versions
|
||||
@@ -86,14 +86,14 @@ jobs:
|
||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
with:
|
||||
submodules: true
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
with:
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
|
||||
6
.github/workflows/phpunit-pgsql.yml
vendored
6
.github/workflows/phpunit-pgsql.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
server-max: ${{ steps.versions.outputs.branches-max-list }}
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
|
||||
- name: Get version matrix
|
||||
id: versions
|
||||
@@ -89,14 +89,14 @@ jobs:
|
||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
with:
|
||||
submodules: true
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
with:
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
|
||||
6
.github/workflows/phpunit-sqlite.yml
vendored
6
.github/workflows/phpunit-sqlite.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
server-max: ${{ steps.versions.outputs.branches-max-list }}
|
||||
steps:
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
|
||||
- name: Get version matrix
|
||||
id: versions
|
||||
@@ -78,14 +78,14 @@ jobs:
|
||||
echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
with:
|
||||
submodules: true
|
||||
repository: nextcloud/server
|
||||
ref: ${{ matrix.server-versions }}
|
||||
|
||||
- name: Checkout app
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
with:
|
||||
path: apps/${{ env.APP_NAME }}
|
||||
|
||||
|
||||
2
.github/workflows/psalm.yml
vendored
2
.github/workflows/psalm.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
name: static-psalm-analysis
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
|
||||
- name: Get php version
|
||||
id: versions
|
||||
|
||||
2
.github/workflows/reuse.yml
vendored
2
.github/workflows/reuse.yml
vendored
@@ -16,7 +16,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
|
||||
- name: REUSE Compliance Check
|
||||
uses: fsfe/reuse-action@3ae3c6bdf1257ab19397fab11fd3312144692083 # v4.0.0
|
||||
|
||||
6
.github/workflows/update-nextcloud-ocp.yml
vendored
6
.github/workflows/update-nextcloud-ocp.yml
vendored
@@ -20,13 +20,13 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
branches: ['main', 'master', 'stable29', 'stable28', 'stable27']
|
||||
branches: ['main', 'master', 'stable30', 'stable29', 'stable28']
|
||||
|
||||
name: update-nextcloud-ocp-${{ matrix.branches }}
|
||||
|
||||
steps:
|
||||
- id: checkout
|
||||
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
||||
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
|
||||
with:
|
||||
ref: ${{ matrix.branches }}
|
||||
submodules: true
|
||||
@@ -103,7 +103,7 @@ jobs:
|
||||
|
||||
- name: Create Pull Request
|
||||
if: steps.checkout.outcome == 'success'
|
||||
uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6.1.0
|
||||
uses: peter-evans/create-pull-request@5e914681df9dc83aa4e4905692ca88beb2f9e91f # v7.0.5
|
||||
with:
|
||||
token: ${{ secrets.COMMAND_BOT_PAT }}
|
||||
commit-message: 'chore(dev-deps): Bump nextcloud/ocp package'
|
||||
|
||||
@@ -20,17 +20,17 @@
|
||||
- 🚀 Get your project organized
|
||||
|
||||
</description>
|
||||
<version>1.14.0-beta.2</version>
|
||||
<version>2.0.0-dev.0</version>
|
||||
<licence>agpl</licence>
|
||||
<author>Julius Härtl</author>
|
||||
<documentation>
|
||||
<user>https://deck.readthedocs.io/en/latest/User_documentation_en/</user>
|
||||
<developer>https://deck.readthedocs.io/en/latest/API/</developer>
|
||||
</documentation>
|
||||
<namespace>Deck</namespace>
|
||||
<types>
|
||||
<dav/>
|
||||
</types>
|
||||
<documentation>
|
||||
<user>https://deck.readthedocs.io/en/latest/User_documentation_en/</user>
|
||||
<developer>https://deck.readthedocs.io/en/latest/API/</developer>
|
||||
</documentation>
|
||||
<category>organization</category>
|
||||
<category>office</category>
|
||||
<website>https://github.com/nextcloud/deck</website>
|
||||
@@ -42,7 +42,7 @@
|
||||
<database min-version="9.4">pgsql</database>
|
||||
<database>sqlite</database>
|
||||
<database min-version="8.0">mysql</database>
|
||||
<nextcloud min-version="30" max-version="30"/>
|
||||
<nextcloud min-version="31" max-version="31"/>
|
||||
</dependencies>
|
||||
<background-jobs>
|
||||
<job>OCA\Deck\Cron\DeleteCron</job>
|
||||
|
||||
@@ -15,8 +15,9 @@
|
||||
"roave/security-advisories": "dev-master",
|
||||
"phpunit/phpunit": "^9",
|
||||
"nextcloud/coding-standard": "^1.1",
|
||||
"nextcloud/ocp": "dev-stable30",
|
||||
"psalm/phar": "^5.13"
|
||||
"nextcloud/ocp": "dev-master",
|
||||
"psalm/phar": "^5.13",
|
||||
"psr/log": "^3.0.2"
|
||||
},
|
||||
"config": {
|
||||
"optimize-autoloader": true,
|
||||
|
||||
645
composer.lock
generated
645
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -13,7 +13,7 @@ The Deck application plugin uses the [markdown-it](https://github.com/markdown-i
|
||||
|
||||
## Supported Markdown
|
||||
|
||||
Markdown comes in may flavors. The best way to learn markdown and understand how to use it, is simply to [try it](https://markdown-it.github.io) on the original script official playground.
|
||||
Markdown comes in many flavors. The best way to learn markdown and understand how to use it, is simply to [try it](https://markdown-it.github.io) on the original script official playground.
|
||||
That same link offers also a comprehensive list of what is supported, and what is not - rendering it unnecessary to duplicate that content in here.
|
||||
|
||||
[CommonMark Markdown Reference](http://commonmark.org/help/)
|
||||
|
||||
12
l10n/ar.js
12
l10n/ar.js
@@ -150,7 +150,7 @@ OC.L10N.register(
|
||||
"Filter by tag" : "تصفية بواسطة الوسم",
|
||||
"Filter by assigned user" : "تصفية بواسطة المستخدم الموكل اليه",
|
||||
"Unassigned" : "غير معيين ",
|
||||
"Filter by status" : "فلترة بحسب الحالة",
|
||||
"Filter by status" : "تصفية بحسب الحالة",
|
||||
"Open and completed" : "مفتوحة و منجزة",
|
||||
"Open" : "إفتح",
|
||||
"Completed" : "مُكتمل",
|
||||
@@ -170,7 +170,7 @@ OC.L10N.register(
|
||||
"Show card cover images" : "أظهِر صور غلاف البطاقات",
|
||||
"Open details" : "افتح التفاصيل",
|
||||
"Details" : "التفاصيل",
|
||||
"Currently present people" : "أشخاص معروضون حاليّاً",
|
||||
"Currently present people" : "الأشخاص الحاضرون الآن",
|
||||
"Loading board" : "جارِ تحميل اللوح..",
|
||||
"Board not found" : "اللوح غير موجود",
|
||||
"Create a new list to add cards to this board" : "إنشاء قائمة جديدة لإضافة البطاقات على هذا اللوح",
|
||||
@@ -198,7 +198,7 @@ OC.L10N.register(
|
||||
"Transfer" : "نقل",
|
||||
"The board has been transferred to {user}" : "تمّ نقل اللوحة إلى {user}",
|
||||
"Failed to transfer the board to {user}" : "تعذّر نقل اللوحة إلى {user}",
|
||||
"Edit list title" : "عدّل اسم القائمة",
|
||||
"Edit list title" : "تعديل اسم القائمة",
|
||||
"Archive all cards" : "أرشفة جميع البطاقات ",
|
||||
"Unarchive all cards" : "تراجع عن أرشفة كل البطاقات",
|
||||
"Delete list" : "حذف القائمة",
|
||||
@@ -268,8 +268,8 @@ OC.L10N.register(
|
||||
"Set due date for this weekend" : "عيِّن نهاية هذا الأسبوع كموعدٍ لاستحقاق البطاقة",
|
||||
"Set due date for next week" : "عيِّن الأسبوع المُقبل كموعدٍ لاستحقاق البطاقة",
|
||||
"Assign a tag to this card…" : "انسب وسم الى هذه البطاقة..",
|
||||
"Select or create a tag…" : "إختَر أو أنشِئْ وسماً ...",
|
||||
"Create a new tag:" : "إنشاء سِمَةٍ tag جديدة:",
|
||||
"Select or create a tag…" : "اختيار أو إنشاء وسم جديد...",
|
||||
"Create a new tag:" : "إنشاء وسم جديد:",
|
||||
"(group)" : "(مجموعة)",
|
||||
"Next week – {timeLocale}" : "الأسبوع القادم – {timeLocale}",
|
||||
"Todo items" : "قائمة المهام",
|
||||
@@ -379,6 +379,6 @@ OC.L10N.register(
|
||||
"Searching for users, groups and circles …" : "ابحث عن أعضاء، مجموعات أو حلقات ...",
|
||||
"(Circle)" : "(دائرة)",
|
||||
"Assign to users/groups/circles" : "انسب الى المستخدمين،المجموعات،الدوائر",
|
||||
"Filter by completed" : "فلترة بحسب الإنجاز"
|
||||
"Filter by completed" : "تصفية بحسب الإنجاز"
|
||||
},
|
||||
"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;");
|
||||
|
||||
12
l10n/ar.json
12
l10n/ar.json
@@ -148,7 +148,7 @@
|
||||
"Filter by tag" : "تصفية بواسطة الوسم",
|
||||
"Filter by assigned user" : "تصفية بواسطة المستخدم الموكل اليه",
|
||||
"Unassigned" : "غير معيين ",
|
||||
"Filter by status" : "فلترة بحسب الحالة",
|
||||
"Filter by status" : "تصفية بحسب الحالة",
|
||||
"Open and completed" : "مفتوحة و منجزة",
|
||||
"Open" : "إفتح",
|
||||
"Completed" : "مُكتمل",
|
||||
@@ -168,7 +168,7 @@
|
||||
"Show card cover images" : "أظهِر صور غلاف البطاقات",
|
||||
"Open details" : "افتح التفاصيل",
|
||||
"Details" : "التفاصيل",
|
||||
"Currently present people" : "أشخاص معروضون حاليّاً",
|
||||
"Currently present people" : "الأشخاص الحاضرون الآن",
|
||||
"Loading board" : "جارِ تحميل اللوح..",
|
||||
"Board not found" : "اللوح غير موجود",
|
||||
"Create a new list to add cards to this board" : "إنشاء قائمة جديدة لإضافة البطاقات على هذا اللوح",
|
||||
@@ -196,7 +196,7 @@
|
||||
"Transfer" : "نقل",
|
||||
"The board has been transferred to {user}" : "تمّ نقل اللوحة إلى {user}",
|
||||
"Failed to transfer the board to {user}" : "تعذّر نقل اللوحة إلى {user}",
|
||||
"Edit list title" : "عدّل اسم القائمة",
|
||||
"Edit list title" : "تعديل اسم القائمة",
|
||||
"Archive all cards" : "أرشفة جميع البطاقات ",
|
||||
"Unarchive all cards" : "تراجع عن أرشفة كل البطاقات",
|
||||
"Delete list" : "حذف القائمة",
|
||||
@@ -266,8 +266,8 @@
|
||||
"Set due date for this weekend" : "عيِّن نهاية هذا الأسبوع كموعدٍ لاستحقاق البطاقة",
|
||||
"Set due date for next week" : "عيِّن الأسبوع المُقبل كموعدٍ لاستحقاق البطاقة",
|
||||
"Assign a tag to this card…" : "انسب وسم الى هذه البطاقة..",
|
||||
"Select or create a tag…" : "إختَر أو أنشِئْ وسماً ...",
|
||||
"Create a new tag:" : "إنشاء سِمَةٍ tag جديدة:",
|
||||
"Select or create a tag…" : "اختيار أو إنشاء وسم جديد...",
|
||||
"Create a new tag:" : "إنشاء وسم جديد:",
|
||||
"(group)" : "(مجموعة)",
|
||||
"Next week – {timeLocale}" : "الأسبوع القادم – {timeLocale}",
|
||||
"Todo items" : "قائمة المهام",
|
||||
@@ -377,6 +377,6 @@
|
||||
"Searching for users, groups and circles …" : "ابحث عن أعضاء، مجموعات أو حلقات ...",
|
||||
"(Circle)" : "(دائرة)",
|
||||
"Assign to users/groups/circles" : "انسب الى المستخدمين،المجموعات،الدوائر",
|
||||
"Filter by completed" : "فلترة بحسب الإنجاز"
|
||||
"Filter by completed" : "تصفية بحسب الإنجاز"
|
||||
},"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;"
|
||||
}
|
||||
11
l10n/cs.js
11
l10n/cs.js
@@ -181,9 +181,12 @@ OC.L10N.register(
|
||||
"Deleted lists" : "Smazané seznamy",
|
||||
"Undo" : "Vrátit zpět",
|
||||
"Deleted cards" : "Smazané karty",
|
||||
"Share board with a user, group or team …" : "Sdílet tabuli s uživatelem, skupinou nebo týmem…",
|
||||
"Searching for users, groups and teams …" : "Hledání v uživatelích, skupinách a týmech…",
|
||||
"No participants found" : "Nenalezeni žádní účastníci",
|
||||
"Board owner" : "Vlastník tabule",
|
||||
"(Group)" : "(Skupina)",
|
||||
"(Team)" : "(Tým)",
|
||||
"Can edit" : "Může upravovat",
|
||||
"Can share" : "Může sdílet",
|
||||
"Can manage" : "Může spravovat",
|
||||
@@ -209,7 +212,9 @@ OC.L10N.register(
|
||||
"title and color value must be provided" : "je třeba zadat nadpis a zvolit barvu",
|
||||
"Board name" : "Název tabule",
|
||||
"Members" : "Členové",
|
||||
"Assign to users/groups/team" : "Přiřadit uživatelům/skupinám/týmům",
|
||||
"Assign a user to this card…" : "Přiřadit uživatele k této kartě…",
|
||||
"Select a user to assign to this card…" : "Vyberte uživatele, kterému tuto kartu přiřadit…",
|
||||
"Upload new files" : "Nahrát nové soubory",
|
||||
"Share from Files" : "Sdílet ze Souborů",
|
||||
"Pending share" : "Čekající sdílení",
|
||||
@@ -263,6 +268,7 @@ OC.L10N.register(
|
||||
"Set due date for this weekend" : "Nastavit termín na tento týden",
|
||||
"Set due date for next week" : "Nastavit termín na příští týden",
|
||||
"Assign a tag to this card…" : "Přiřadit této kartě štítek…",
|
||||
"Select or create a tag…" : "Vyberte nebo vytvořte štítek…",
|
||||
"Create a new tag:" : "Vytvořit nový štítek:",
|
||||
"(group)" : "(skupina)",
|
||||
"Next week – {timeLocale}" : "Příští týden – {timeLocale}",
|
||||
@@ -276,11 +282,15 @@ OC.L10N.register(
|
||||
"Card deleted" : "Karta smazána",
|
||||
"seconds ago" : "před několika sekundami",
|
||||
"Keyboard shortcuts" : "Klávesové zkratky",
|
||||
"Boost your productivity using Deck with keyboard shortcuts." : "Zvyšte svou produktivitu tím, že budete v Deck používat klávesové zkratky.",
|
||||
"Board actions" : "Akce ohledně tabule",
|
||||
"Keyboard shortcut" : "Klávesová zkratka",
|
||||
"Action" : "Akce",
|
||||
"Shift" : "Shift",
|
||||
"Scroll" : "Posunout",
|
||||
"Scroll sideways" : "Posunout na strany",
|
||||
"Navigate between cards" : "Pohyb mezi kartami",
|
||||
"Esc" : "Esc",
|
||||
"Close card details" : "Zavřít podrobnosti o kartě",
|
||||
"Ctrl" : "Ctrl",
|
||||
"Search" : "Hledat",
|
||||
@@ -307,6 +317,7 @@ OC.L10N.register(
|
||||
"Limit board creation to some groups" : "Umožnit vytváření tabulí pouze vybraným skupinám",
|
||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Uživatelé, kteří nejsou členy těchto skupin nebudou moci vytvářet své vlastní tabule, ale pořád budou moci pracovat na tabulích, které jim byly nasdíleny.",
|
||||
"Cancel edit" : "Zrušit úpravu",
|
||||
"Save board" : "Uložit tabuli",
|
||||
"Board details" : "Podrobnosti o tabuli",
|
||||
"Edit board" : "Upravit tabuli",
|
||||
"Clone board" : "Klonovat tabuli",
|
||||
|
||||
11
l10n/cs.json
11
l10n/cs.json
@@ -179,9 +179,12 @@
|
||||
"Deleted lists" : "Smazané seznamy",
|
||||
"Undo" : "Vrátit zpět",
|
||||
"Deleted cards" : "Smazané karty",
|
||||
"Share board with a user, group or team …" : "Sdílet tabuli s uživatelem, skupinou nebo týmem…",
|
||||
"Searching for users, groups and teams …" : "Hledání v uživatelích, skupinách a týmech…",
|
||||
"No participants found" : "Nenalezeni žádní účastníci",
|
||||
"Board owner" : "Vlastník tabule",
|
||||
"(Group)" : "(Skupina)",
|
||||
"(Team)" : "(Tým)",
|
||||
"Can edit" : "Může upravovat",
|
||||
"Can share" : "Může sdílet",
|
||||
"Can manage" : "Může spravovat",
|
||||
@@ -207,7 +210,9 @@
|
||||
"title and color value must be provided" : "je třeba zadat nadpis a zvolit barvu",
|
||||
"Board name" : "Název tabule",
|
||||
"Members" : "Členové",
|
||||
"Assign to users/groups/team" : "Přiřadit uživatelům/skupinám/týmům",
|
||||
"Assign a user to this card…" : "Přiřadit uživatele k této kartě…",
|
||||
"Select a user to assign to this card…" : "Vyberte uživatele, kterému tuto kartu přiřadit…",
|
||||
"Upload new files" : "Nahrát nové soubory",
|
||||
"Share from Files" : "Sdílet ze Souborů",
|
||||
"Pending share" : "Čekající sdílení",
|
||||
@@ -261,6 +266,7 @@
|
||||
"Set due date for this weekend" : "Nastavit termín na tento týden",
|
||||
"Set due date for next week" : "Nastavit termín na příští týden",
|
||||
"Assign a tag to this card…" : "Přiřadit této kartě štítek…",
|
||||
"Select or create a tag…" : "Vyberte nebo vytvořte štítek…",
|
||||
"Create a new tag:" : "Vytvořit nový štítek:",
|
||||
"(group)" : "(skupina)",
|
||||
"Next week – {timeLocale}" : "Příští týden – {timeLocale}",
|
||||
@@ -274,11 +280,15 @@
|
||||
"Card deleted" : "Karta smazána",
|
||||
"seconds ago" : "před několika sekundami",
|
||||
"Keyboard shortcuts" : "Klávesové zkratky",
|
||||
"Boost your productivity using Deck with keyboard shortcuts." : "Zvyšte svou produktivitu tím, že budete v Deck používat klávesové zkratky.",
|
||||
"Board actions" : "Akce ohledně tabule",
|
||||
"Keyboard shortcut" : "Klávesová zkratka",
|
||||
"Action" : "Akce",
|
||||
"Shift" : "Shift",
|
||||
"Scroll" : "Posunout",
|
||||
"Scroll sideways" : "Posunout na strany",
|
||||
"Navigate between cards" : "Pohyb mezi kartami",
|
||||
"Esc" : "Esc",
|
||||
"Close card details" : "Zavřít podrobnosti o kartě",
|
||||
"Ctrl" : "Ctrl",
|
||||
"Search" : "Hledat",
|
||||
@@ -305,6 +315,7 @@
|
||||
"Limit board creation to some groups" : "Umožnit vytváření tabulí pouze vybraným skupinám",
|
||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Uživatelé, kteří nejsou členy těchto skupin nebudou moci vytvářet své vlastní tabule, ale pořád budou moci pracovat na tabulích, které jim byly nasdíleny.",
|
||||
"Cancel edit" : "Zrušit úpravu",
|
||||
"Save board" : "Uložit tabuli",
|
||||
"Board details" : "Podrobnosti o tabuli",
|
||||
"Edit board" : "Upravit tabuli",
|
||||
"Clone board" : "Klonovat tabuli",
|
||||
|
||||
@@ -175,6 +175,7 @@ OC.L10N.register(
|
||||
"Set a due date" : "Sæt en forfaldsdato",
|
||||
"Remove due date" : "Fjern forfaldsdato",
|
||||
"Mark as done" : "Marker som færdig",
|
||||
"Not done" : "Ikke færdig",
|
||||
"Unarchive card" : "Gen-aktivér kort",
|
||||
"Archive card" : "Arkivér kort",
|
||||
"Select Date" : "Vælg dato",
|
||||
|
||||
@@ -173,6 +173,7 @@
|
||||
"Set a due date" : "Sæt en forfaldsdato",
|
||||
"Remove due date" : "Fjern forfaldsdato",
|
||||
"Mark as done" : "Marker som færdig",
|
||||
"Not done" : "Ikke færdig",
|
||||
"Unarchive card" : "Gen-aktivér kort",
|
||||
"Archive card" : "Arkivér kort",
|
||||
"Select Date" : "Vælg dato",
|
||||
|
||||
@@ -317,6 +317,7 @@ OC.L10N.register(
|
||||
"Limit board creation to some groups" : "Limiter la création de tableaux à certains groupes",
|
||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Les utilisateurs qui ne font pas partie de ces groupes ne pourront pas créer leurs propres tableaux, mais pourront toujours travailler sur les tableaux qui ont été partagés avec eux.",
|
||||
"Cancel edit" : "Annuler les modifications",
|
||||
"Save board" : "Sauvegarder le tableau",
|
||||
"Board details" : "Détails du tableau",
|
||||
"Edit board" : "Renommer le tableau",
|
||||
"Clone board" : "Dupliquer le tableau",
|
||||
@@ -378,6 +379,6 @@ OC.L10N.register(
|
||||
"Searching for users, groups and circles …" : "Recherche d'utilisateurs, de groupes et de cercles ...",
|
||||
"(Circle)" : "(Cercle)",
|
||||
"Assign to users/groups/circles" : "Attribuer à des utilisateurs / groupes / cercles",
|
||||
"Filter by completed" : "Filtrer par terminé"
|
||||
"Filter by completed" : "Filtrer par état"
|
||||
},
|
||||
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
|
||||
|
||||
@@ -315,6 +315,7 @@
|
||||
"Limit board creation to some groups" : "Limiter la création de tableaux à certains groupes",
|
||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Les utilisateurs qui ne font pas partie de ces groupes ne pourront pas créer leurs propres tableaux, mais pourront toujours travailler sur les tableaux qui ont été partagés avec eux.",
|
||||
"Cancel edit" : "Annuler les modifications",
|
||||
"Save board" : "Sauvegarder le tableau",
|
||||
"Board details" : "Détails du tableau",
|
||||
"Edit board" : "Renommer le tableau",
|
||||
"Clone board" : "Dupliquer le tableau",
|
||||
@@ -376,6 +377,6 @@
|
||||
"Searching for users, groups and circles …" : "Recherche d'utilisateurs, de groupes et de cercles ...",
|
||||
"(Circle)" : "(Cercle)",
|
||||
"Assign to users/groups/circles" : "Attribuer à des utilisateurs / groupes / cercles",
|
||||
"Filter by completed" : "Filtrer par terminé"
|
||||
"Filter by completed" : "Filtrer par état"
|
||||
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
|
||||
}
|
||||
@@ -317,6 +317,7 @@ OC.L10N.register(
|
||||
"Limit board creation to some groups" : "Teorainn a chur le cruthú cláir do roinnt grúpaí",
|
||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Ní bheidh úsáideoirí taobh amuigh de na grúpaí sin in ann a gcuid boird féin a chruthú, ach beidh siad fós in ann oibriú ar bhoird atá roinnte leo.",
|
||||
"Cancel edit" : "Cealaigh eagarthóireacht",
|
||||
"Save board" : "Sábháil bord",
|
||||
"Board details" : "Sonraí an Bhoird",
|
||||
"Edit board" : "Cuir bord in eagar",
|
||||
"Clone board" : "Clár clón",
|
||||
|
||||
@@ -315,6 +315,7 @@
|
||||
"Limit board creation to some groups" : "Teorainn a chur le cruthú cláir do roinnt grúpaí",
|
||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Ní bheidh úsáideoirí taobh amuigh de na grúpaí sin in ann a gcuid boird féin a chruthú, ach beidh siad fós in ann oibriú ar bhoird atá roinnte leo.",
|
||||
"Cancel edit" : "Cealaigh eagarthóireacht",
|
||||
"Save board" : "Sábháil bord",
|
||||
"Board details" : "Sonraí an Bhoird",
|
||||
"Edit board" : "Cuir bord in eagar",
|
||||
"Clone board" : "Clár clón",
|
||||
|
||||
@@ -261,6 +261,7 @@ OC.L10N.register(
|
||||
"Close" : "Užverti",
|
||||
"Due on {date}" : "Galutinis terminas {date}",
|
||||
"This weekend – {timeLocale}" : "Šį savaitgalį – {timeLocale}",
|
||||
"Tomorrow – {timeLocale}" : "Rytoj – {timeLocale}",
|
||||
"Later today – {timeLocale}" : "Šiandien vėliau – {timeLocale}",
|
||||
"Link to a board" : "Susieti su lenta",
|
||||
"Link to a card" : "Susieti su kortele",
|
||||
|
||||
@@ -259,6 +259,7 @@
|
||||
"Close" : "Užverti",
|
||||
"Due on {date}" : "Galutinis terminas {date}",
|
||||
"This weekend – {timeLocale}" : "Šį savaitgalį – {timeLocale}",
|
||||
"Tomorrow – {timeLocale}" : "Rytoj – {timeLocale}",
|
||||
"Later today – {timeLocale}" : "Šiandien vėliau – {timeLocale}",
|
||||
"Link to a board" : "Susieti su lenta",
|
||||
"Link to a card" : "Susieti su kortele",
|
||||
|
||||
@@ -21,6 +21,7 @@ OC.L10N.register(
|
||||
"Do you want to overwrite it?" : "Vai tu gribi pārrakstīt to?",
|
||||
"Open" : "Atvērt",
|
||||
"Completed" : "Pabeigts",
|
||||
"Clear filter" : "Notīrīt atlasi",
|
||||
"Hide archived cards" : "Slēpt arhivētās kartes",
|
||||
"Show archived cards" : "Rādīt arhivētās kartes",
|
||||
"Open details" : "Atvērt detaļas",
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
"Do you want to overwrite it?" : "Vai tu gribi pārrakstīt to?",
|
||||
"Open" : "Atvērt",
|
||||
"Completed" : "Pabeigts",
|
||||
"Clear filter" : "Notīrīt atlasi",
|
||||
"Hide archived cards" : "Slēpt arhivētās kartes",
|
||||
"Show archived cards" : "Rādīt arhivētās kartes",
|
||||
"Open details" : "Atvērt detaļas",
|
||||
|
||||
@@ -317,6 +317,7 @@ OC.L10N.register(
|
||||
"Limit board creation to some groups" : "Limitar a criação de quadros a alguns grupos",
|
||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Os usuários fora desses grupos não poderão criar seus próprios painéis, mas ainda poderão trabalhar nos painéis que foram compartilhados com eles.",
|
||||
"Cancel edit" : "Cancelar edição",
|
||||
"Save board" : "Salvar quadro",
|
||||
"Board details" : "Detalhes do painel",
|
||||
"Edit board" : "Editar painel",
|
||||
"Clone board" : "Clonar painel",
|
||||
|
||||
@@ -315,6 +315,7 @@
|
||||
"Limit board creation to some groups" : "Limitar a criação de quadros a alguns grupos",
|
||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Os usuários fora desses grupos não poderão criar seus próprios painéis, mas ainda poderão trabalhar nos painéis que foram compartilhados com eles.",
|
||||
"Cancel edit" : "Cancelar edição",
|
||||
"Save board" : "Salvar quadro",
|
||||
"Board details" : "Detalhes do painel",
|
||||
"Edit board" : "Editar painel",
|
||||
"Clone board" : "Clonar painel",
|
||||
|
||||
@@ -111,8 +111,10 @@ OC.L10N.register(
|
||||
"Cancel" : "Cancelar",
|
||||
"File already exists" : "O ficheiro já existe",
|
||||
"Add card" : "Adicionar um cartão",
|
||||
"Active filters" : "Filtros ativos",
|
||||
"Open" : "Abrir",
|
||||
"Completed" : "Concluída",
|
||||
"Clear filter" : "Limpar filtro",
|
||||
"Hide archived cards" : "Esconder cartões arquivados",
|
||||
"Show archived cards" : "Mostrar cartões arquivados",
|
||||
"Details" : "Detalhes",
|
||||
@@ -129,6 +131,7 @@ OC.L10N.register(
|
||||
"Edit" : "Editar",
|
||||
"Members" : "Membros",
|
||||
"Download" : "Transferir",
|
||||
"Invalid path selected" : "Caminho inválido selecionado",
|
||||
"Attachments" : "Anexos",
|
||||
"Comments" : "Comentários",
|
||||
"Modified" : "Modificado",
|
||||
|
||||
@@ -109,8 +109,10 @@
|
||||
"Cancel" : "Cancelar",
|
||||
"File already exists" : "O ficheiro já existe",
|
||||
"Add card" : "Adicionar um cartão",
|
||||
"Active filters" : "Filtros ativos",
|
||||
"Open" : "Abrir",
|
||||
"Completed" : "Concluída",
|
||||
"Clear filter" : "Limpar filtro",
|
||||
"Hide archived cards" : "Esconder cartões arquivados",
|
||||
"Show archived cards" : "Mostrar cartões arquivados",
|
||||
"Details" : "Detalhes",
|
||||
@@ -127,6 +129,7 @@
|
||||
"Edit" : "Editar",
|
||||
"Members" : "Membros",
|
||||
"Download" : "Transferir",
|
||||
"Invalid path selected" : "Caminho inválido selecionado",
|
||||
"Attachments" : "Anexos",
|
||||
"Comments" : "Comentários",
|
||||
"Modified" : "Modificado",
|
||||
|
||||
@@ -39,8 +39,8 @@ OC.L10N.register(
|
||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} at annulladu s'archiviatzione de s'ischeda {card} in s'elencu {stack} in sa lavagna {board}",
|
||||
"You have removed the due date of card {card}" : "Ci nd'as bogadu sa data de iscadèntzia dae s'ischeda {card}",
|
||||
"{user} has removed the due date of card {card}" : "{user} ci nd'at bogadu sa data de iscadèntzia dae s'ischeda {card}",
|
||||
"You have set the due date of card {card} to {after}" : "As impostadu sa data de iscadèntzia de s'ischeda {card} a su {after}",
|
||||
"{user} has set the due date of card {card} to {after}" : "{user} at impostadu sa data de iscadèntzia de sa tèssera {card} a su {after}",
|
||||
"You have set the due date of card {card} to {after}" : "As cunfiguradu sa data de iscadèntzia de s'ischeda {card} a su {after}",
|
||||
"{user} has set the due date of card {card} to {after}" : "{user} at cunfiguradu sa data de iscadèntzia de sa tèssera {card} a su {after}",
|
||||
"You have updated the due date of card {card} to {after}" : "As agiornadu sa data de iscadèntzia de s'ischeda {card} a su {after}",
|
||||
"{user} has updated the due date of card {card} to {after}" : "{user} as agiornadu sa data de iscadèntzia de s'ischeda {card} a su {after}",
|
||||
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "As agiuntu s'eticheta {label} a s'ischeda {card} in s'elencu {stack} in sa lavagna {board}",
|
||||
@@ -215,7 +215,7 @@ OC.L10N.register(
|
||||
"Add Attachment" : "Agiunghe alligongiadu",
|
||||
"Write a description …" : "Iscrie una descritzione ...",
|
||||
"Choose attachment" : "Sèbera un'alligongiadu",
|
||||
"Set a due date" : "Imposta iscadèntzia",
|
||||
"Set a due date" : "Cunfigura data de iscadèntzia",
|
||||
"Remove due date" : "Boga s'iscadèntzia",
|
||||
"Mark as done" : "Marca comente cumpletadu",
|
||||
"Unarchive card" : "Ischeda no archiviada",
|
||||
|
||||
@@ -37,8 +37,8 @@
|
||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} at annulladu s'archiviatzione de s'ischeda {card} in s'elencu {stack} in sa lavagna {board}",
|
||||
"You have removed the due date of card {card}" : "Ci nd'as bogadu sa data de iscadèntzia dae s'ischeda {card}",
|
||||
"{user} has removed the due date of card {card}" : "{user} ci nd'at bogadu sa data de iscadèntzia dae s'ischeda {card}",
|
||||
"You have set the due date of card {card} to {after}" : "As impostadu sa data de iscadèntzia de s'ischeda {card} a su {after}",
|
||||
"{user} has set the due date of card {card} to {after}" : "{user} at impostadu sa data de iscadèntzia de sa tèssera {card} a su {after}",
|
||||
"You have set the due date of card {card} to {after}" : "As cunfiguradu sa data de iscadèntzia de s'ischeda {card} a su {after}",
|
||||
"{user} has set the due date of card {card} to {after}" : "{user} at cunfiguradu sa data de iscadèntzia de sa tèssera {card} a su {after}",
|
||||
"You have updated the due date of card {card} to {after}" : "As agiornadu sa data de iscadèntzia de s'ischeda {card} a su {after}",
|
||||
"{user} has updated the due date of card {card} to {after}" : "{user} as agiornadu sa data de iscadèntzia de s'ischeda {card} a su {after}",
|
||||
"You have added the tag {label} to card {card} in list {stack} on board {board}" : "As agiuntu s'eticheta {label} a s'ischeda {card} in s'elencu {stack} in sa lavagna {board}",
|
||||
@@ -213,7 +213,7 @@
|
||||
"Add Attachment" : "Agiunghe alligongiadu",
|
||||
"Write a description …" : "Iscrie una descritzione ...",
|
||||
"Choose attachment" : "Sèbera un'alligongiadu",
|
||||
"Set a due date" : "Imposta iscadèntzia",
|
||||
"Set a due date" : "Cunfigura data de iscadèntzia",
|
||||
"Remove due date" : "Boga s'iscadèntzia",
|
||||
"Mark as done" : "Marca comente cumpletadu",
|
||||
"Unarchive card" : "Ischeda no archiviada",
|
||||
|
||||
@@ -317,6 +317,7 @@ OC.L10N.register(
|
||||
"Limit board creation to some groups" : "Ограничи креирање табле на одређене групе",
|
||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Корисници који не припадају овим групама неће моћи да креирају своје табле, али ће и даље моћи да раде на таблама које су подељене са њима.",
|
||||
"Cancel edit" : "Поништи измену",
|
||||
"Save board" : "Сачувај таблу",
|
||||
"Board details" : "Детаљи табле",
|
||||
"Edit board" : "Измени таблу",
|
||||
"Clone board" : "Клонирај таблу",
|
||||
|
||||
@@ -315,6 +315,7 @@
|
||||
"Limit board creation to some groups" : "Ограничи креирање табле на одређене групе",
|
||||
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Корисници који не припадају овим групама неће моћи да креирају своје табле, али ће и даље моћи да раде на таблама које су подељене са њима.",
|
||||
"Cancel edit" : "Поништи измену",
|
||||
"Save board" : "Сачувај таблу",
|
||||
"Board details" : "Детаљи табле",
|
||||
"Edit board" : "Измени таблу",
|
||||
"Clone board" : "Клонирај таблу",
|
||||
|
||||
@@ -100,7 +100,7 @@ class ActivityManager {
|
||||
StackMapper $stackMapper,
|
||||
AclMapper $aclMapper,
|
||||
IFactory $l10nFactory,
|
||||
?string $userId
|
||||
?string $userId,
|
||||
) {
|
||||
$this->manager = $manager;
|
||||
$this->permissionService = $permissionsService;
|
||||
@@ -484,7 +484,7 @@ class ActivityManager {
|
||||
$objectId = $entity->getObjectId();
|
||||
break;
|
||||
default:
|
||||
throw new InvalidArgumentException('No entity relation present for '. $className . ' to ' . $objectType);
|
||||
throw new InvalidArgumentException('No entity relation present for ' . $className . ' to ' . $objectType);
|
||||
}
|
||||
return $this->cardMapper->find($objectId);
|
||||
}
|
||||
@@ -499,11 +499,11 @@ class ActivityManager {
|
||||
$objectId = $entity->getBoardId();
|
||||
break;
|
||||
default:
|
||||
throw new InvalidArgumentException('No entity relation present for '. $className . ' to ' . $objectType);
|
||||
throw new InvalidArgumentException('No entity relation present for ' . $className . ' to ' . $objectType);
|
||||
}
|
||||
return $this->boardMapper->find($objectId);
|
||||
}
|
||||
throw new InvalidArgumentException('No entity relation present for '. $className . ' to ' . $objectType);
|
||||
throw new InvalidArgumentException('No entity relation present for ' . $className . ' to ' . $objectType);
|
||||
}
|
||||
|
||||
private function findDetailsForStack($stackId) {
|
||||
|
||||
@@ -15,7 +15,7 @@ class Filter implements \OCP\Activity\IFilter {
|
||||
|
||||
public function __construct(
|
||||
IL10N $l10n,
|
||||
IURLGenerator $urlGenerator
|
||||
IURLGenerator $urlGenerator,
|
||||
) {
|
||||
$this->l10n = $l10n;
|
||||
$this->urlGenerator = $urlGenerator;
|
||||
@@ -39,8 +39,8 @@ class Filter implements \OCP\Activity\IFilter {
|
||||
|
||||
/**
|
||||
* @return int whether the filter should be rather on the top or bottom of
|
||||
* the admin section. The filters are arranged in ascending order of the
|
||||
* priority values. It is required to return a value between 0 and 100.
|
||||
* the admin section. The filters are arranged in ascending order of the
|
||||
* priority values. It is required to return a value between 0 and 100.
|
||||
* @since 11.0.0
|
||||
*/
|
||||
public function getPriority(): int {
|
||||
|
||||
@@ -47,8 +47,8 @@ abstract class SettingBase extends ActivitySettings {
|
||||
|
||||
/**
|
||||
* @return int whether the filter should be rather on the top or bottom of
|
||||
* the admin section. The filters are arranged in ascending order of the
|
||||
* priority values. It is required to return a value between 0 and 100.
|
||||
* the admin section. The filters are arranged in ascending order of the
|
||||
* priority values. It is required to return a value between 0 and 100.
|
||||
* @since 11.0.0
|
||||
*/
|
||||
public function getPriority(): int {
|
||||
|
||||
@@ -25,8 +25,8 @@ class SettingChanges extends SettingBase {
|
||||
|
||||
/**
|
||||
* @return int whether the filter should be rather on the top or bottom of
|
||||
* the admin section. The filters are arranged in ascending order of the
|
||||
* priority values. It is required to return a value between 0 and 100.
|
||||
* the admin section. The filters are arranged in ascending order of the
|
||||
* priority values. It is required to return a value between 0 and 100.
|
||||
* @since 11.0.0
|
||||
*/
|
||||
public function getPriority(): int {
|
||||
|
||||
@@ -176,7 +176,7 @@ class Application extends App implements IBootstrap {
|
||||
$permissionService = $this->getContainer()->get(PermissionService::class);
|
||||
|
||||
try {
|
||||
return $permissionService->checkPermission($cardMapper, (int) $name, Acl::PERMISSION_READ);
|
||||
return $permissionService->checkPermission($cardMapper, (int)$name, Acl::PERMISSION_READ);
|
||||
} catch (\Exception $e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ class Capabilities implements ICapability {
|
||||
|
||||
/** @var IAppManager */
|
||||
private $appManager;
|
||||
/** @var PermissionService */
|
||||
/** @var PermissionService */
|
||||
private $permissionService;
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ use Symfony\Component\Console\Output\OutputInterface;
|
||||
|
||||
class BoardImport extends Command {
|
||||
public function __construct(
|
||||
private BoardImportCommandService $boardImportCommandService
|
||||
private BoardImportCommandService $boardImportCommandService,
|
||||
) {
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
@@ -72,17 +72,17 @@ final class TransferOwnership extends Command {
|
||||
try {
|
||||
$board = $boardId ? $this->boardMapper->find($boardId) : null;
|
||||
} catch (\Exception $e) {
|
||||
$output->writeln("Could not find a board for the provided id.");
|
||||
$output->writeln('Could not find a board for the provided id.');
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ($boardId !== null && $board->getOwner() !== $owner) {
|
||||
$output->writeln("$owner is not the owner of the board $boardId (" . $board->getTitle() . ")");
|
||||
$output->writeln("$owner is not the owner of the board $boardId (" . $board->getTitle() . ')');
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ($boardId) {
|
||||
$output->writeln("Transfer board " . $board->getTitle() . " from ". $board->getOwner() ." to $newOwner");
|
||||
$output->writeln('Transfer board ' . $board->getTitle() . ' from ' . $board->getOwner() . " to $newOwner");
|
||||
} else {
|
||||
$output->writeln("Transfer all boards from $owner to $newOwner");
|
||||
}
|
||||
@@ -94,12 +94,12 @@ final class TransferOwnership extends Command {
|
||||
|
||||
if ($boardId) {
|
||||
$this->boardService->transferBoardOwnership($boardId, $newOwner, $remapAssignment);
|
||||
$output->writeln("<info>Board " . $board->getTitle() . " from ". $board->getOwner() ." transferred to $newOwner completed</info>");
|
||||
$output->writeln('<info>Board ' . $board->getTitle() . ' from ' . $board->getOwner() . " transferred to $newOwner completed</info>");
|
||||
return 0;
|
||||
}
|
||||
|
||||
foreach ($this->boardService->transferOwnership($owner, $newOwner, $remapAssignment) as $board) {
|
||||
$output->writeln(" - " . $board->getTitle() . " transferred");
|
||||
$output->writeln(' - ' . $board->getTitle() . ' transferred');
|
||||
}
|
||||
$output->writeln("<info>All boards from $owner to $newOwner transferred</info>");
|
||||
|
||||
|
||||
@@ -21,7 +21,8 @@ use OCP\AppFramework\OCSController;
|
||||
use OCP\IRequest;
|
||||
|
||||
class SessionController extends OCSController {
|
||||
public function __construct($appName,
|
||||
public function __construct(
|
||||
$appName,
|
||||
IRequest $request,
|
||||
private SessionService $sessionService,
|
||||
private PermissionService $permissionService,
|
||||
|
||||
@@ -12,27 +12,17 @@ use OCA\Deck\Notification\NotificationHelper;
|
||||
use OCP\AppFramework\Db\DoesNotExistException;
|
||||
use OCP\AppFramework\Utility\ITimeFactory;
|
||||
use OCP\BackgroundJob\Job;
|
||||
use OCP\ILogger;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
class ScheduledNotifications extends Job {
|
||||
|
||||
/** @var CardMapper */
|
||||
protected $cardMapper;
|
||||
/** @var NotificationHelper */
|
||||
protected $notificationHelper;
|
||||
/** @var ILogger */
|
||||
protected $logger;
|
||||
|
||||
public function __construct(
|
||||
ITimeFactory $time,
|
||||
CardMapper $cardMapper,
|
||||
NotificationHelper $notificationHelper,
|
||||
ILogger $logger
|
||||
protected CardMapper $cardMapper,
|
||||
protected NotificationHelper $notificationHelper,
|
||||
protected LoggerInterface $logger,
|
||||
) {
|
||||
parent::__construct($time);
|
||||
$this->cardMapper = $cardMapper;
|
||||
$this->notificationHelper = $notificationHelper;
|
||||
$this->logger = $logger;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -14,21 +14,19 @@ namespace OCA\Deck\Cron;
|
||||
use OCA\Deck\Service\SessionService;
|
||||
use OCP\AppFramework\Utility\ITimeFactory;
|
||||
use OCP\BackgroundJob\TimedJob;
|
||||
use OCP\ILogger;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
class SessionsCleanup extends TimedJob {
|
||||
private $sessionService;
|
||||
private $documentService;
|
||||
private $logger;
|
||||
private $imageService;
|
||||
|
||||
|
||||
public function __construct(ITimeFactory $time,
|
||||
SessionService $sessionService,
|
||||
ILogger $logger) {
|
||||
public function __construct(
|
||||
ITimeFactory $time,
|
||||
private SessionService $sessionService,
|
||||
private LoggerInterface $logger,
|
||||
) {
|
||||
parent::__construct($time);
|
||||
$this->sessionService = $sessionService;
|
||||
$this->logger = $logger;
|
||||
$this->setInterval(SessionService::SESSION_VALID_TIME);
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ class Calendar extends ExternalCalendar {
|
||||
private $children;
|
||||
/** @var DeckCalendarBackend */
|
||||
private $backend;
|
||||
/** @var Board */
|
||||
/** @var Board */
|
||||
private $board;
|
||||
|
||||
public function __construct(string $principalUri, string $calendarUri, Board $board, DeckCalendarBackend $backend) {
|
||||
|
||||
@@ -32,7 +32,7 @@ class DeckCalendarBackend {
|
||||
|
||||
public function __construct(
|
||||
BoardService $boardService, StackService $stackService, CardService $cardService, PermissionService $permissionService,
|
||||
BoardMapper $boardMapper
|
||||
BoardMapper $boardMapper,
|
||||
) {
|
||||
$this->boardService = $boardService;
|
||||
$this->stackService = $stackService;
|
||||
|
||||
@@ -75,7 +75,7 @@ class AclMapper extends DeckMapper implements IPermissionMapper {
|
||||
try {
|
||||
$entity = $this->find($id);
|
||||
return $entity->getBoardId();
|
||||
} catch (DoesNotExistException | MultipleObjectsReturnedException $e) {
|
||||
} catch (DoesNotExistException|MultipleObjectsReturnedException $e) {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -61,9 +61,9 @@ class AttachmentMapper extends DeckMapper implements IPermissionMapper {
|
||||
public function findByData($cardId, $data) {
|
||||
$qb = $this->db->getQueryBuilder();
|
||||
$qb->select('*')
|
||||
->from($this->getTableName())
|
||||
->where($qb->expr()->eq('card_id', $qb->createNamedParameter($cardId, IQueryBuilder::PARAM_INT)))
|
||||
->andWhere($qb->expr()->eq('data', $qb->createNamedParameter($data, IQueryBuilder::PARAM_STR)));
|
||||
->from($this->getTableName())
|
||||
->where($qb->expr()->eq('card_id', $qb->createNamedParameter($cardId, IQueryBuilder::PARAM_INT)))
|
||||
->andWhere($qb->expr()->eq('data', $qb->createNamedParameter($data, IQueryBuilder::PARAM_STR)));
|
||||
|
||||
return $this->findEntity($qb);
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ class BoardMapper extends QBMapper implements IPermissionMapper {
|
||||
private IUserManager $userManager,
|
||||
private IGroupManager $groupManager,
|
||||
private CirclesService $circlesService,
|
||||
private LoggerInterface $logger
|
||||
private LoggerInterface $logger,
|
||||
) {
|
||||
parent::__construct($db, 'deck_boards', Board::class);
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@ class Card extends RelationalEntity {
|
||||
$matchDate->setTime(0, 0);
|
||||
|
||||
$diff = $today->diff($matchDate);
|
||||
return (int) $diff->format('%R%a'); // Extract days count in interval
|
||||
return (int)$diff->format('%R%a'); // Extract days count in interval
|
||||
}
|
||||
|
||||
public function getCalendarPrefix(): string {
|
||||
|
||||
@@ -45,7 +45,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
|
||||
IManager $notificationManager,
|
||||
ICacheFactory $cacheFactory,
|
||||
$databaseType = 'sqlite3',
|
||||
$database4ByteSupport = true
|
||||
$database4ByteSupport = true,
|
||||
) {
|
||||
parent::__construct($db, 'deck_cards', Card::class);
|
||||
$this->labelMapper = $labelMapper;
|
||||
@@ -402,7 +402,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
|
||||
if (count($query->getTag())) {
|
||||
foreach ($query->getTag() as $index => $tag) {
|
||||
$qb->innerJoin('c', 'deck_assigned_labels', 'al' . $index, $qb->expr()->eq('c.id', 'al' . $index . '.card_id'));
|
||||
$qb->innerJoin('al'. $index, 'deck_labels', 'l' . $index, $qb->expr()->eq('al' . $index . '.label_id', 'l' . $index . '.id'));
|
||||
$qb->innerJoin('al' . $index, 'deck_labels', 'l' . $index, $qb->expr()->eq('al' . $index . '.label_id', 'l' . $index . '.id'));
|
||||
$qb->andWhere($qb->expr()->iLike('l' . $index . '.title', $qb->createNamedParameter('%' . $this->db->escapeLikeParameter($tag->getValue()) . '%', IQueryBuilder::PARAM_STR)));
|
||||
}
|
||||
}
|
||||
@@ -410,7 +410,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
|
||||
foreach ($query->getDuedate() as $duedate) {
|
||||
$dueDateColumn = $this->databaseType === 'sqlite3' ? $qb->createFunction('DATETIME(`c`.`duedate`)') : 'c.duedate';
|
||||
$date = $duedate->getValue();
|
||||
if ($date === "") {
|
||||
if ($date === '') {
|
||||
$qb->andWhere($qb->expr()->isNotNull('c.duedate'));
|
||||
continue;
|
||||
}
|
||||
@@ -461,7 +461,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
|
||||
foreach ($query->getAssigned() as $index => $assignment) {
|
||||
$qb->innerJoin('c', 'deck_assigned_users', 'au' . $index, $qb->expr()->eq('c.id', 'au' . $index . '.card_id'));
|
||||
$assignedQueryValue = $assignment->getValue();
|
||||
if ($assignedQueryValue === "") {
|
||||
if ($assignedQueryValue === '') {
|
||||
$qb->andWhere($qb->expr()->isNotNull('au' . $index . '.participant'));
|
||||
continue;
|
||||
}
|
||||
@@ -589,7 +589,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
|
||||
}
|
||||
$this->cache->set('findBoardId:' . $id, $result);
|
||||
}
|
||||
return $result !== false ? (int) $result : null;
|
||||
return $result !== false ? (int)$result : null;
|
||||
}
|
||||
|
||||
public function mapOwner(Card &$card) {
|
||||
|
||||
@@ -24,7 +24,7 @@ class ChangeHelper {
|
||||
IDBConnection $db,
|
||||
ICacheFactory $cacheFactory,
|
||||
IRequest $request,
|
||||
?string $userId
|
||||
?string $userId,
|
||||
) {
|
||||
$this->db = $db;
|
||||
$this->cache = $cacheFactory->createDistributed('deck_changes');
|
||||
@@ -43,7 +43,7 @@ class ChangeHelper {
|
||||
public function cardChanged($cardId, $updateCard = true) {
|
||||
$time = time();
|
||||
$etag = md5($time . microtime());
|
||||
$this->cache->set(self::TYPE_CARD . '-' .$cardId, $etag);
|
||||
$this->cache->set(self::TYPE_CARD . '-' . $cardId, $etag);
|
||||
if ($updateCard) {
|
||||
$sql = 'UPDATE `*PREFIX*deck_cards` SET `last_modified` = ?, `last_editor` = ? WHERE `id` = ?';
|
||||
$this->db->executeUpdate($sql, [time(), $this->userId, $cardId]);
|
||||
@@ -60,7 +60,7 @@ class ChangeHelper {
|
||||
public function stackChanged($stackId, $updateBoard = true) {
|
||||
$time = time();
|
||||
$etag = md5($time . microtime());
|
||||
$this->cache->set(self::TYPE_CARD . '-' .$stackId, $etag);
|
||||
$this->cache->set(self::TYPE_CARD . '-' . $stackId, $etag);
|
||||
if ($updateBoard) {
|
||||
$sql = 'UPDATE `*PREFIX*deck_stacks` SET `last_modified` = ? WHERE `id` = ?';
|
||||
$this->db->executeUpdate($sql, [time(), $stackId]);
|
||||
@@ -76,7 +76,7 @@ class ChangeHelper {
|
||||
}
|
||||
|
||||
public function getEtag($type, $id) {
|
||||
$entry = $this->cache->get($type . '-' .$id);
|
||||
$entry = $this->cache->get($type . '-' . $id);
|
||||
if ($entry === 'null') {
|
||||
return '';
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ class StackMapper extends DeckMapper implements IPermissionMapper {
|
||||
public function __construct(
|
||||
IDBConnection $db,
|
||||
CardMapper $cardMapper,
|
||||
ICacheFactory $cacheFactory
|
||||
ICacheFactory $cacheFactory,
|
||||
) {
|
||||
parent::__construct($db, 'deck_stacks', Stack::class);
|
||||
$this->cardMapper = $cardMapper;
|
||||
|
||||
@@ -38,7 +38,7 @@ class LiveUpdateListener implements IEventListener {
|
||||
IRequest $request,
|
||||
LoggerInterface $logger,
|
||||
SessionService $sessionService,
|
||||
StackMapper $stackMapper
|
||||
StackMapper $stackMapper,
|
||||
) {
|
||||
try {
|
||||
$this->queue = $container->get(IQueue::class);
|
||||
|
||||
@@ -10,27 +10,17 @@ use OCA\Deck\Service\DefaultBoardService;
|
||||
use OCA\Deck\Service\PermissionService;
|
||||
use OCP\AppFramework\Middleware;
|
||||
use OCP\IL10N;
|
||||
use OCP\ILogger;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
class DefaultBoardMiddleware extends Middleware {
|
||||
|
||||
/** @var ILogger */
|
||||
private $logger;
|
||||
/** @var IL10N */
|
||||
private $l10n;
|
||||
/** @var DefaultBoardService */
|
||||
private $defaultBoardService;
|
||||
/** @var PermissionService */
|
||||
private $permissionService;
|
||||
/** @var string|null */
|
||||
private $userId;
|
||||
|
||||
public function __construct(ILogger $logger, IL10N $l10n, DefaultBoardService $defaultBoardService, PermissionService $permissionService, $userId) {
|
||||
$this->logger = $logger;
|
||||
$this->l10n = $l10n;
|
||||
$this->defaultBoardService = $defaultBoardService;
|
||||
$this->permissionService = $permissionService;
|
||||
$this->userId = $userId;
|
||||
public function __construct(
|
||||
private LoggerInterface $logger,
|
||||
private IL10N $l10n,
|
||||
private DefaultBoardService $defaultBoardService,
|
||||
private PermissionService $permissionService,
|
||||
private ?string $userId,
|
||||
) {
|
||||
}
|
||||
|
||||
public function beforeController($controller, $methodName) {
|
||||
@@ -39,7 +29,7 @@ class DefaultBoardMiddleware extends Middleware {
|
||||
$this->defaultBoardService->createDefaultBoard($this->l10n->t('Personal'), $this->userId, '0087C5');
|
||||
}
|
||||
} catch (\Throwable $e) {
|
||||
$this->logger->logException($e);
|
||||
$this->logger->error('Could not create default board', ['exception' => $e]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,28 +15,19 @@ use OCP\AppFramework\Middleware;
|
||||
use OCP\AppFramework\OCS\OCSException;
|
||||
use OCP\AppFramework\OCSController;
|
||||
use OCP\IConfig;
|
||||
use OCP\ILogger;
|
||||
use OCP\IRequest;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
class ExceptionMiddleware extends Middleware {
|
||||
|
||||
/** @var ILogger */
|
||||
private $logger;
|
||||
/** @var IConfig */
|
||||
private $config;
|
||||
/** @var IRequest */
|
||||
private $request;
|
||||
|
||||
/**
|
||||
* SharingMiddleware constructor.
|
||||
*
|
||||
* @param ILogger $logger
|
||||
* @param IConfig $config
|
||||
*/
|
||||
public function __construct(ILogger $logger, IConfig $config, IRequest $request) {
|
||||
$this->logger = $logger;
|
||||
$this->config = $config;
|
||||
$this->request = $request;
|
||||
public function __construct(
|
||||
private LoggerInterface $logger,
|
||||
private IConfig $config,
|
||||
private IRequest $request,
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -69,9 +60,7 @@ class ExceptionMiddleware extends Middleware {
|
||||
}
|
||||
|
||||
if ($exception instanceof StatusException) {
|
||||
if ($this->config->getSystemValue('loglevel', ILogger::WARN) === ILogger::DEBUG) {
|
||||
$this->logger->logException($exception);
|
||||
}
|
||||
$this->logger->debug($exception->getMessage(), ['exception' => $exception]);
|
||||
|
||||
if ($exception instanceof ConflictException) {
|
||||
return new JSONResponse([
|
||||
@@ -98,9 +87,9 @@ class ExceptionMiddleware extends Middleware {
|
||||
'message' => $exceptionMessage,
|
||||
'requestId' => $this->request->getId(),
|
||||
];
|
||||
$this->logger->logException($exception);
|
||||
$this->logger->error($exception->getMessage(), ['exception' => $exception]);
|
||||
if ($debugMode === true) {
|
||||
$response['exception'] = (array) $exception;
|
||||
$response['exception'] = (array)$exception;
|
||||
}
|
||||
return new JSONResponse($response, 500);
|
||||
}
|
||||
|
||||
@@ -20,13 +20,13 @@ class Version11000Date20240222115515 extends SimpleMigrationStep {
|
||||
$returnValue = null;
|
||||
|
||||
$assignedUsersTable = $schema->getTable('deck_assigned_users');
|
||||
if($assignedUsersTable->hasIndex('deck_assigned_users_idx_c')) {
|
||||
if ($assignedUsersTable->hasIndex('deck_assigned_users_idx_c')) {
|
||||
$assignedUsersTable->dropIndex('deck_assigned_users_idx_c');
|
||||
$returnValue = $schema;
|
||||
}
|
||||
|
||||
$boardAclTable = $schema->getTable('deck_board_acl');
|
||||
if($boardAclTable->hasIndex('deck_board_acl_idx_i')) {
|
||||
if ($boardAclTable->hasIndex('deck_board_acl_idx_i')) {
|
||||
$boardAclTable->dropIndex('deck_board_acl_idx_i');
|
||||
$returnValue = $schema;
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ class NotificationHelper {
|
||||
IConfig $config,
|
||||
IManager $notificationManager,
|
||||
IGroupManager $groupManager,
|
||||
$userId
|
||||
$userId,
|
||||
) {
|
||||
$this->cardMapper = $cardMapper;
|
||||
$this->boardMapper = $boardMapper;
|
||||
@@ -142,11 +142,11 @@ class NotificationHelper {
|
||||
->setUser($userId)
|
||||
->setDateTime(new DateTime())
|
||||
->setObject('card', (string)$card->getId())
|
||||
->setSubject('card-assigned', [
|
||||
$card->getTitle(),
|
||||
$board->getTitle(),
|
||||
$this->currentUser
|
||||
]);
|
||||
->setSubject('card-assigned', [
|
||||
$card->getTitle(),
|
||||
$board->getTitle(),
|
||||
$this->currentUser
|
||||
]);
|
||||
$this->notificationManager->notify($notification);
|
||||
}
|
||||
|
||||
@@ -206,9 +206,9 @@ class NotificationHelper {
|
||||
$notification = $this->notificationManager->createNotification();
|
||||
$notification
|
||||
->setApp('deck')
|
||||
->setUser((string) $mention['id'])
|
||||
->setUser((string)$mention['id'])
|
||||
->setDateTime(new DateTime())
|
||||
->setObject('card', (string) $card->getId())
|
||||
->setObject('card', (string)$card->getId())
|
||||
->setSubject('card-comment-mentioned', [$card->getTitle(), $boardId, $this->currentUser])
|
||||
->setMessage('{message}', ['message' => $comment->getMessage()]);
|
||||
$this->notificationManager->notify($notification);
|
||||
|
||||
@@ -36,7 +36,7 @@ class Notifier implements INotifier {
|
||||
IUserManager $userManager,
|
||||
CardMapper $cardMapper,
|
||||
StackMapper $stackMapper,
|
||||
BoardMapper $boardMapper
|
||||
BoardMapper $boardMapper,
|
||||
) {
|
||||
$this->l10nFactory = $l10nFactory;
|
||||
$this->url = $url;
|
||||
|
||||
@@ -47,7 +47,7 @@ class DeckProvider implements IFullTextSearchProvider {
|
||||
* @param FullTextSearchService $fullTextSearchService
|
||||
*/
|
||||
public function __construct(
|
||||
IL10N $l10n, IUrlGenerator $urlGenerator, FullTextSearchService $fullTextSearchService
|
||||
IL10N $l10n, IUrlGenerator $urlGenerator, FullTextSearchService $fullTextSearchService,
|
||||
) {
|
||||
$this->l10n = $l10n;
|
||||
$this->urlGenerator = $urlGenerator;
|
||||
|
||||
@@ -97,7 +97,7 @@ class BoardReferenceProvider implements IReferenceProvider {
|
||||
preg_match('/^' . preg_quote($startIndex, '/') . '(?:\/#!?)?\/board\/([0-9]+)$/', $url, $matches);
|
||||
}
|
||||
if ($matches && count($matches) > 1) {
|
||||
return (int) $matches[1];
|
||||
return (int)$matches[1];
|
||||
}
|
||||
|
||||
return null;
|
||||
@@ -106,7 +106,7 @@ class BoardReferenceProvider implements IReferenceProvider {
|
||||
public function getCachePrefix(string $referenceId): string {
|
||||
$boardId = $this->getBoardId($referenceId);
|
||||
if ($boardId !== null) {
|
||||
return (string) $boardId;
|
||||
return (string)$boardId;
|
||||
}
|
||||
|
||||
return $referenceId;
|
||||
|
||||
@@ -111,9 +111,9 @@ class CardReferenceProvider extends ADiscoverableReferenceProvider implements IS
|
||||
if ($ids !== null) {
|
||||
[, $cardId] = $ids;
|
||||
try {
|
||||
$card = $this->cardService->find((int) $cardId)->jsonSerialize();
|
||||
$stack = $this->stackService->find((int) $card['stackId'])->jsonSerialize();
|
||||
$board = $this->boardService->find((int) $stack['boardId'])->jsonSerialize();
|
||||
$card = $this->cardService->find((int)$cardId)->jsonSerialize();
|
||||
$stack = $this->stackService->find((int)$card['stackId'])->jsonSerialize();
|
||||
$board = $this->boardService->find((int)$stack['boardId'])->jsonSerialize();
|
||||
} catch (NoPermissionException $e) {
|
||||
// Skip throwing if user has no permissions
|
||||
return null;
|
||||
|
||||
@@ -73,7 +73,7 @@ class CommentReferenceProvider implements IReferenceProvider {
|
||||
try {
|
||||
$card = $this->cardService->find($cardId)->jsonSerialize();
|
||||
$board = $this->boardService->find($boardId)->jsonSerialize();
|
||||
$stack = $this->stackService->find((int) $card['stackId'])->jsonSerialize();
|
||||
$stack = $this->stackService->find((int)$card['stackId'])->jsonSerialize();
|
||||
} catch (NoPermissionException $e) {
|
||||
// Skip throwing if user has no permissions
|
||||
return null;
|
||||
@@ -162,9 +162,9 @@ class CommentReferenceProvider implements IReferenceProvider {
|
||||
}
|
||||
if ($matches && count($matches) > 3) {
|
||||
return [
|
||||
(int) $matches[1],
|
||||
(int) $matches[2],
|
||||
(int) $matches[3],
|
||||
(int)$matches[1],
|
||||
(int)$matches[2],
|
||||
(int)$matches[3],
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -17,7 +17,8 @@ class CreateCardReferenceProvider extends ADiscoverableReferenceProvider {
|
||||
public function __construct(
|
||||
private IL10N $l10n,
|
||||
private IURLGenerator $urlGenerator,
|
||||
private ?string $userId) {
|
||||
private ?string $userId,
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -25,7 +25,7 @@ class CardCommentProvider implements IProvider {
|
||||
|
||||
public function __construct(
|
||||
SearchService $searchService,
|
||||
IL10N $l10n
|
||||
IL10N $l10n,
|
||||
) {
|
||||
$this->searchService = $searchService;
|
||||
$this->l10n = $l10n;
|
||||
|
||||
@@ -27,7 +27,7 @@ class DeckProvider implements IProvider {
|
||||
public function __construct(
|
||||
SearchService $searchService,
|
||||
IURLGenerator $urlGenerator,
|
||||
IL10N $l10n
|
||||
IL10N $l10n,
|
||||
) {
|
||||
$this->l10n = $l10n;
|
||||
$this->searchService = $searchService;
|
||||
|
||||
@@ -76,7 +76,7 @@ class AssignmentService {
|
||||
ChangeHelper $changeHelper,
|
||||
IEventDispatcher $eventDispatcher,
|
||||
AssignmentServiceValidator $assignmentServiceValidator,
|
||||
$userId
|
||||
$userId,
|
||||
) {
|
||||
$this->assignmentServiceValidator = $assignmentServiceValidator;
|
||||
$this->permissionService = $permissionService;
|
||||
|
||||
@@ -58,7 +58,7 @@ class AttachmentService {
|
||||
$userId,
|
||||
IL10N $l10n,
|
||||
ActivityManager $activityManager,
|
||||
AttachmentServiceValidator $attachmentServiceValidator
|
||||
AttachmentServiceValidator $attachmentServiceValidator,
|
||||
) {
|
||||
$this->attachmentMapper = $attachmentMapper;
|
||||
$this->cardMapper = $cardMapper;
|
||||
|
||||
@@ -89,7 +89,7 @@ class BoardService {
|
||||
IDBConnection $connection,
|
||||
BoardServiceValidator $boardServiceValidator,
|
||||
SessionMapper $sessionMapper,
|
||||
?string $userId
|
||||
?string $userId,
|
||||
) {
|
||||
$this->boardMapper = $boardMapper;
|
||||
$this->stackMapper = $stackMapper;
|
||||
|
||||
@@ -77,7 +77,7 @@ class CardService {
|
||||
LoggerInterface $logger,
|
||||
IRequest $request,
|
||||
CardServiceValidator $cardServiceValidator,
|
||||
?string $userId
|
||||
?string $userId,
|
||||
) {
|
||||
$this->cardMapper = $cardMapper;
|
||||
$this->stackMapper = $stackMapper;
|
||||
@@ -356,11 +356,11 @@ class CardService {
|
||||
$card = $this->cardMapper->update($card);
|
||||
$oldBoardId = $this->stackMapper->findBoardId($changes->getBefore()->getStackId());
|
||||
$boardId = $this->cardMapper->findBoardId($card->getId());
|
||||
if($boardId !== $oldBoardId) {
|
||||
if ($boardId !== $oldBoardId) {
|
||||
$stack = $this->stackMapper->find($card->getStackId());
|
||||
$board = $this->boardService->find($this->cardMapper->findBoardId($card->getId()));
|
||||
$boardLabels = $board->getLabels() ?? [];
|
||||
foreach($card->getLabels() as $cardLabel) {
|
||||
foreach ($card->getLabels() as $cardLabel) {
|
||||
$this->removeLabel($card->getId(), $cardLabel->getId());
|
||||
$label = $this->labelMapper->find($cardLabel->getId());
|
||||
$filteredLabels = array_values(array_filter($boardLabels, fn ($item) => $item->getTitle() === $label->getTitle()));
|
||||
|
||||
@@ -17,26 +17,22 @@ use OCP\Comments\IComment;
|
||||
use OCP\Comments\ICommentsManager;
|
||||
use OCP\Comments\MessageTooLongException;
|
||||
use OCP\Comments\NotFoundException as CommentNotFoundException;
|
||||
use OCP\ILogger;
|
||||
use OCP\IUserManager;
|
||||
use OutOfBoundsException;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
use function is_numeric;
|
||||
|
||||
class CommentService {
|
||||
private ICommentsManager $commentsManager;
|
||||
private IUserManager $userManager;
|
||||
private CardMapper $cardMapper;
|
||||
private PermissionService $permissionService;
|
||||
private ILogger $logger;
|
||||
private ?string $userId;
|
||||
|
||||
public function __construct(ICommentsManager $commentsManager, PermissionService $permissionService, CardMapper $cardMapper, IUserManager $userManager, ILogger $logger, ?string $userId) {
|
||||
$this->commentsManager = $commentsManager;
|
||||
$this->permissionService = $permissionService;
|
||||
$this->cardMapper = $cardMapper;
|
||||
$this->userManager = $userManager;
|
||||
$this->logger = $logger;
|
||||
$this->userId = $userId;
|
||||
public function __construct(
|
||||
private ICommentsManager $commentsManager,
|
||||
private PermissionService $permissionService,
|
||||
private CardMapper $cardMapper,
|
||||
private IUserManager $userManager,
|
||||
private LoggerInterface $logger,
|
||||
private ?string $userId,
|
||||
) {
|
||||
}
|
||||
|
||||
public function list(string $cardId, int $limit = 20, int $offset = 0): DataResponse {
|
||||
@@ -69,8 +65,8 @@ class CommentService {
|
||||
private function get(int $cardId, int $commentId): IComment {
|
||||
$this->permissionService->checkPermission($this->cardMapper, $cardId, Acl::PERMISSION_READ);
|
||||
try {
|
||||
$comment = $this->commentsManager->get((string) $commentId);
|
||||
if ($comment->getObjectType() !== Application::COMMENT_ENTITY_TYPE || (int) $comment->getObjectId() !== $cardId) {
|
||||
$comment = $this->commentsManager->get((string)$commentId);
|
||||
if ($comment->getObjectType() !== Application::COMMENT_ENTITY_TYPE || (int)$comment->getObjectId() !== $cardId) {
|
||||
throw new CommentNotFoundException();
|
||||
}
|
||||
} catch (CommentNotFoundException $e) {
|
||||
@@ -138,7 +134,7 @@ class CommentService {
|
||||
if (!is_numeric($commentId)) {
|
||||
throw new BadRequestException('A valid comment id must be provided');
|
||||
}
|
||||
$comment = $this->get((int) $cardId, (int) $commentId);
|
||||
$comment = $this->get((int)$cardId, (int)$commentId);
|
||||
if ($comment->getActorType() !== 'users' || $comment->getActorId() !== $this->userId) {
|
||||
throw new NoPermissionException('Only authors are allowed to edit their comment.');
|
||||
}
|
||||
@@ -187,8 +183,8 @@ class CommentService {
|
||||
try {
|
||||
$displayName = $this->commentsManager->resolveDisplayName($mention['type'], $mention['id']);
|
||||
} catch (OutOfBoundsException $e) {
|
||||
$this->logger->logException($e);
|
||||
// No displayname, upon client's discretion what to display.
|
||||
$this->logger->warning('Mention type not registered, can not resolve display name.', ['exception' => $e, 'mention_type' => $mention['type']]);
|
||||
// No display name, upon client's discretion what to display.
|
||||
$displayName = '';
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ class ConfigService {
|
||||
|
||||
public function __construct(
|
||||
IConfig $config,
|
||||
IGroupManager $groupManager
|
||||
IGroupManager $groupManager,
|
||||
) {
|
||||
$this->groupManager = $groupManager;
|
||||
$this->config = $config;
|
||||
|
||||
@@ -27,7 +27,7 @@ class DefaultBoardService {
|
||||
BoardService $boardService,
|
||||
StackService $stackService,
|
||||
CardService $cardService,
|
||||
IConfig $config
|
||||
IConfig $config,
|
||||
) {
|
||||
$this->boardService = $boardService;
|
||||
$this->stackService = $stackService;
|
||||
|
||||
@@ -20,37 +20,21 @@ use OCP\Files\SimpleFS\ISimpleFile;
|
||||
use OCP\Files\SimpleFS\ISimpleFolder;
|
||||
use OCP\IConfig;
|
||||
use OCP\IL10N;
|
||||
use OCP\ILogger;
|
||||
use OCP\IRequest;
|
||||
use Psr\Log\LoggerInterface;
|
||||
|
||||
class FileService implements IAttachmentService {
|
||||
private $l10n;
|
||||
private $appData;
|
||||
private $request;
|
||||
private $logger;
|
||||
private $rootFolder;
|
||||
private $config;
|
||||
private $attachmentMapper;
|
||||
private $mimeTypeDetector;
|
||||
|
||||
public function __construct(
|
||||
IL10N $l10n,
|
||||
IAppData $appData,
|
||||
IRequest $request,
|
||||
ILogger $logger,
|
||||
IRootFolder $rootFolder,
|
||||
IConfig $config,
|
||||
AttachmentMapper $attachmentMapper,
|
||||
IMimeTypeDetector $mimeTypeDetector
|
||||
private IL10N $l10n,
|
||||
private IAppData $appData,
|
||||
private IRequest $request,
|
||||
private LoggerInterface $logger,
|
||||
private IRootFolder $rootFolder,
|
||||
private IConfig $config,
|
||||
private AttachmentMapper $attachmentMapper,
|
||||
private IMimeTypeDetector $mimeTypeDetector,
|
||||
) {
|
||||
$this->l10n = $l10n;
|
||||
$this->appData = $appData;
|
||||
$this->request = $request;
|
||||
$this->logger = $logger;
|
||||
$this->rootFolder = $rootFolder;
|
||||
$this->config = $config;
|
||||
$this->attachmentMapper = $attachmentMapper;
|
||||
$this->mimeTypeDetector = $mimeTypeDetector;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -193,6 +177,7 @@ class FileService implements IAttachmentService {
|
||||
/**
|
||||
* Workaround until ISimpleFile can be fetched as a resource
|
||||
*
|
||||
* @return \OCP\Files\File
|
||||
* @throws \Exception
|
||||
*/
|
||||
private function getFileFromRootFolder(Attachment $attachment) {
|
||||
|
||||
@@ -55,7 +55,7 @@ class FilesAppService implements IAttachmentService, ICustomAttachmentService {
|
||||
CardMapper $cardMapper,
|
||||
LoggerInterface $logger,
|
||||
IDBConnection $connection,
|
||||
?string $userId
|
||||
?string $userId,
|
||||
) {
|
||||
$this->request = $request;
|
||||
$this->l10n = $l10n;
|
||||
|
||||
@@ -39,7 +39,7 @@ class FullTextSearchService {
|
||||
private $cardMapper;
|
||||
|
||||
public function __construct(
|
||||
BoardMapper $boardMapper, StackMapper $stackMapper, CardMapper $cardMapper
|
||||
BoardMapper $boardMapper, StackMapper $stackMapper, CardMapper $cardMapper,
|
||||
) {
|
||||
$this->boardMapper = $boardMapper;
|
||||
$this->stackMapper = $stackMapper;
|
||||
|
||||
@@ -70,7 +70,7 @@ class BoardImportService {
|
||||
private CardMapper $cardMapper,
|
||||
private ICommentsManager $commentsManager,
|
||||
private IEventDispatcher $eventDispatcher,
|
||||
private LoggerInterface $logger
|
||||
private LoggerInterface $logger,
|
||||
) {
|
||||
$this->board = new Board();
|
||||
$this->disableCommentsEvents();
|
||||
@@ -364,7 +364,7 @@ class BoardImportService {
|
||||
$this->getImportSystem()->updateCardAssignment($cardId, (string)$assignment->getId(), $assignment);
|
||||
$this->addOutput('Assignment ' . $assignment->getParticipant() . ' added');
|
||||
} catch (NotFoundException $e) {
|
||||
$this->addError('No origin or mapping found for card "' . $cardId . '" and ' . $assignment->getTypeString() .' assignment "' . $assignment->getParticipant(), $e);
|
||||
$this->addError('No origin or mapping found for card "' . $cardId . '" and ' . $assignment->getTypeString() . ' assignment "' . $assignment->getParticipant(), $e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -404,7 +404,7 @@ class BoardImportService {
|
||||
* @return void
|
||||
*/
|
||||
public function setConfig(string $configName, $value): void {
|
||||
if (empty((array) $this->config)) {
|
||||
if (empty((array)$this->config)) {
|
||||
$this->setConfigInstance(new \stdClass);
|
||||
}
|
||||
$this->config->$configName = $value;
|
||||
|
||||
@@ -51,7 +51,7 @@ class DeckJsonService extends ABoardImportService {
|
||||
if (!is_string($nextcloudUid) && !is_numeric($nextcloudUid)) {
|
||||
throw new \LogicException('User on setting uidRelation is invalid');
|
||||
}
|
||||
$nextcloudUid = (string) $nextcloudUid;
|
||||
$nextcloudUid = (string)$nextcloudUid;
|
||||
$this->getImportService()->getConfig('uidRelation')->$exportUid = $this->userManager->get($nextcloudUid);
|
||||
if (!$this->getImportService()->getConfig('uidRelation')->$exportUid) {
|
||||
throw new \LogicException('User on setting uidRelation not found: ' . $nextcloudUid);
|
||||
@@ -106,7 +106,7 @@ class DeckJsonService extends ABoardImportService {
|
||||
public function getComments(): array {
|
||||
$comments = [];
|
||||
foreach ($this->tmpCards as $sourceCard) {
|
||||
if (!property_exists($sourceCard, "comments")) {
|
||||
if (!property_exists($sourceCard, 'comments')) {
|
||||
continue;
|
||||
}
|
||||
$commentsOriginal = $sourceCard->comments;
|
||||
|
||||
@@ -31,7 +31,7 @@ class TrelloApiService extends TrelloJsonService {
|
||||
IURLGenerator $urlGenerator,
|
||||
IL10N $l10n,
|
||||
LoggerInterface $logger,
|
||||
IClientService $httpClientService
|
||||
IClientService $httpClientService,
|
||||
) {
|
||||
parent::__construct($userManager, $urlGenerator, $l10n);
|
||||
$this->logger = $logger;
|
||||
|
||||
@@ -37,7 +37,7 @@ class TrelloJsonService extends ABoardImportService {
|
||||
public function __construct(
|
||||
IUserManager $userManager,
|
||||
IURLGenerator $urlGenerator,
|
||||
IL10N $l10n
|
||||
IL10N $l10n,
|
||||
) {
|
||||
$this->userManager = $userManager;
|
||||
$this->urlGenerator = $urlGenerator;
|
||||
@@ -71,7 +71,7 @@ class TrelloJsonService extends ABoardImportService {
|
||||
if (!is_string($nextcloudUid) && !is_numeric($nextcloudUid)) {
|
||||
throw new \LogicException('User on setting uidRelation is invalid');
|
||||
}
|
||||
$nextcloudUid = (string) $nextcloudUid;
|
||||
$nextcloudUid = (string)$nextcloudUid;
|
||||
$this->getImportService()->getConfig('uidRelation')->$trelloUid = $this->userManager->get($nextcloudUid);
|
||||
if (!$this->getImportService()->getConfig('uidRelation')->$trelloUid) {
|
||||
throw new \LogicException('User on setting uidRelation not found: ' . $nextcloudUid);
|
||||
@@ -141,7 +141,7 @@ class TrelloJsonService extends ABoardImportService {
|
||||
$message = $this->l10n->t(
|
||||
"This comment has more than %s characters.\n" .
|
||||
"Added as an attachment to the card with name %s.\n" .
|
||||
"Accessible on URL: %s.",
|
||||
'Accessible on URL: %s.',
|
||||
[
|
||||
IComment::MAX_MESSAGE_LENGTH,
|
||||
'comment_' . $commentId . '.md',
|
||||
|
||||
@@ -32,7 +32,7 @@ class LabelService {
|
||||
PermissionService $permissionService,
|
||||
BoardService $boardService,
|
||||
ChangeHelper $changeHelper,
|
||||
LabelServiceValidator $labelServiceValidator
|
||||
LabelServiceValidator $labelServiceValidator,
|
||||
) {
|
||||
$this->labelMapper = $labelMapper;
|
||||
$this->permissionService = $permissionService;
|
||||
|
||||
@@ -36,7 +36,7 @@ class OverviewService {
|
||||
AssignmentMapper $assignedUsersMapper,
|
||||
IUserManager $userManager,
|
||||
ICommentsManager $commentsManager,
|
||||
AttachmentService $attachmentService
|
||||
AttachmentService $attachmentService,
|
||||
) {
|
||||
$this->cardService = $cardService;
|
||||
$this->boardMapper = $boardMapper;
|
||||
|
||||
@@ -40,7 +40,7 @@ class PermissionService {
|
||||
private IGroupManager $groupManager,
|
||||
private IManager $shareManager,
|
||||
private IConfig $config,
|
||||
private ?string $userId
|
||||
private ?string $userId,
|
||||
) {
|
||||
$this->boardCache = new CappedMemoryCache();
|
||||
$this->permissionCache = new CappedMemoryCache();
|
||||
@@ -143,7 +143,7 @@ class PermissionService {
|
||||
try {
|
||||
$board = $this->getBoard($boardId);
|
||||
return $userId === $board->getOwner();
|
||||
} catch (DoesNotExistException | MultipleObjectsReturnedException $e) {
|
||||
} catch (DoesNotExistException|MultipleObjectsReturnedException $e) {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -205,8 +205,8 @@ class PermissionService {
|
||||
*/
|
||||
public function findUsers($boardId, $refresh = false) {
|
||||
// cache users of a board so we don't query them for every cards
|
||||
if (array_key_exists((string) $boardId, $this->users) && !$refresh) {
|
||||
return $this->users[(string) $boardId];
|
||||
if (array_key_exists((string)$boardId, $this->users) && !$refresh) {
|
||||
return $this->users[(string)$boardId];
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -269,8 +269,8 @@ class PermissionService {
|
||||
}
|
||||
}
|
||||
}
|
||||
$this->users[(string) $boardId] = $users;
|
||||
return $this->users[(string) $boardId];
|
||||
$this->users[(string)$boardId] = $users;
|
||||
return $this->users[(string)$boardId];
|
||||
}
|
||||
|
||||
public function canCreate() {
|
||||
|
||||
@@ -46,7 +46,7 @@ class SearchService {
|
||||
FilterStringParser $filterStringParser,
|
||||
IUserManager $userManager,
|
||||
IL10N $l10n,
|
||||
IURLGenerator $urlGenerator
|
||||
IURLGenerator $urlGenerator,
|
||||
) {
|
||||
$this->boardService = $boardService;
|
||||
$this->cardMapper = $cardMapper;
|
||||
|
||||
@@ -33,7 +33,7 @@ class SessionService {
|
||||
ISecureRandom $secureRandom,
|
||||
ITimeFactory $timeFactory,
|
||||
$userId,
|
||||
IEventDispatcher $eventDispatcher
|
||||
IEventDispatcher $eventDispatcher,
|
||||
) {
|
||||
$this->sessionMapper = $sessionMapper;
|
||||
$this->secureRandom = $secureRandom;
|
||||
|
||||
@@ -56,7 +56,7 @@ class StackService {
|
||||
ChangeHelper $changeHelper,
|
||||
LoggerInterface $logger,
|
||||
IEventDispatcher $eventDispatcher,
|
||||
StackServiceValidator $stackServiceValidator
|
||||
StackServiceValidator $stackServiceValidator,
|
||||
) {
|
||||
$this->stackMapper = $stackMapper;
|
||||
$this->boardMapper = $boardMapper;
|
||||
|
||||
@@ -69,7 +69,7 @@ class DeckShareProvider implements \OCP\Share\IShareProvider {
|
||||
IL10N $l,
|
||||
ITimeFactory $timeFactory,
|
||||
IMimeTypeLoader $mimeTypeLoader,
|
||||
?string $userId
|
||||
?string $userId,
|
||||
) {
|
||||
$this->dbConnection = $connection;
|
||||
$this->shareManager = $shareManager;
|
||||
@@ -110,7 +110,7 @@ class DeckShareProvider implements \OCP\Share\IShareProvider {
|
||||
try {
|
||||
$board = $this->boardMapper->find($boardId);
|
||||
$valid = $valid && !$board->getArchived();
|
||||
} catch (DoesNotExistException | MultipleObjectsReturnedException $e) {
|
||||
} catch (DoesNotExistException|MultipleObjectsReturnedException $e) {
|
||||
$valid = false;
|
||||
}
|
||||
|
||||
@@ -174,7 +174,7 @@ class DeckShareProvider implements \OCP\Share\IShareProvider {
|
||||
string $target,
|
||||
int $permissions,
|
||||
string $token,
|
||||
?\DateTime $expirationDate
|
||||
?\DateTime $expirationDate,
|
||||
): int {
|
||||
$qb = $this->dbConnection->getQueryBuilder();
|
||||
$qb->insert('share')
|
||||
@@ -966,8 +966,8 @@ class DeckShareProvider implements \OCP\Share\IShareProvider {
|
||||
protected function filterSharesOfUser(array $shares): array {
|
||||
// Deck shares when the user has a share exception
|
||||
foreach ($shares as $id => $share) {
|
||||
$type = (int) $share['share_type'];
|
||||
$permissions = (int) $share['permissions'];
|
||||
$type = (int)$share['share_type'];
|
||||
$permissions = (int)$share['permissions'];
|
||||
|
||||
if ($type === self::SHARE_TYPE_DECK_USER) {
|
||||
unset($shares[$share['parent']]);
|
||||
|
||||
@@ -59,6 +59,6 @@ class DeckTeamResourceProvider implements \OCP\Teams\ITeamResourceProvider {
|
||||
}
|
||||
|
||||
public function getBoardBulletIcon(Board $board): string {
|
||||
return '<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1" viewBox="0 0 16 16"><g fill="#' . $board->getColor(). '"><rect ry="15" height="14" width="14" y="1" x="1"/></g></svg>';
|
||||
return '<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" version="1.1" viewBox="0 0 16 16"><g fill="#' . $board->getColor() . '"><rect ry="15" height="14" width="14" y="1" x="1"/></g></svg>';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ abstract class BaseValidator {
|
||||
} else {
|
||||
if (!$this->{$rule}($value)) {
|
||||
throw new BadRequestException(
|
||||
$field . ' must be provided and must be '. str_replace("_", " ", $rule));
|
||||
$field . ' must be provided and must be ' . str_replace('_', ' ', $rule));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -111,7 +111,7 @@ abstract class BaseValidator {
|
||||
*/
|
||||
private function max($value, $limit): bool {
|
||||
if (!$limit || !is_numeric($limit)) {
|
||||
throw new Exception("Validation rule max requires at least 1 parameter. " . json_encode($limit));
|
||||
throw new Exception('Validation rule max requires at least 1 parameter. ' . json_encode($limit));
|
||||
}
|
||||
return $this->getSize($value) <= $limit;
|
||||
}
|
||||
@@ -121,7 +121,7 @@ abstract class BaseValidator {
|
||||
*/
|
||||
private function min($value, $limit): bool {
|
||||
if (!$limit || !is_numeric($limit)) {
|
||||
throw new Exception("Validation rule max requires at least 1 parameter.");
|
||||
throw new Exception('Validation rule max requires at least 1 parameter.');
|
||||
}
|
||||
return $this->getSize($value) >= $limit;
|
||||
}
|
||||
@@ -129,7 +129,7 @@ abstract class BaseValidator {
|
||||
/**
|
||||
* Get the size of an attribute.
|
||||
*
|
||||
* @param mixed $value
|
||||
* @param mixed $value
|
||||
* @return int
|
||||
*/
|
||||
protected function getSize($value): int {
|
||||
@@ -154,10 +154,10 @@ abstract class BaseValidator {
|
||||
protected function getErrorMessage($rule, $field, $parameter = null): string {
|
||||
if (in_array($rule, ['max', 'min'])) {
|
||||
return $rule === 'max'
|
||||
? $field . ' cannot be longer than '. $parameter . ' characters '
|
||||
: $field . ' must be at least '. $parameter . ' characters long ';
|
||||
? $field . ' cannot be longer than ' . $parameter . ' characters '
|
||||
: $field . ' must be at least ' . $parameter . ' characters long ';
|
||||
}
|
||||
|
||||
return $field . ' must be provided and must be '. str_replace("_", " ", $rule);
|
||||
return $field . ' must be provided and must be ' . str_replace('_', ' ', $rule);
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user