Compare commits
210 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8beba76b75 | |||
| e761005e52 | |||
| a30653c6cb | |||
| 48c3933cb6 | |||
| d02df72efe | |||
| 9fd6c4abc1 | |||
| 2d91bdd74c | |||
| 053f725f98 | |||
| 0b5ce4e78a | |||
| 2fd8961b85 | |||
| 9d70509221 | |||
| 29628eba33 | |||
| b060efaca4 | |||
| 13583e8c6b | |||
| 0526c18ac2 | |||
| 239c8ccfe1 | |||
| b9e4a2a115 | |||
| 1ed4f74551 | |||
| 66881a7cc9 | |||
| a58a2961f3 | |||
| 044f4f076e | |||
| 3f6d0c4192 | |||
| c61b17f4a0 | |||
| bb0841b81e | |||
| 3f52005674 | |||
| 51cde1a57a | |||
| c20fcccfa6 | |||
| 3f539d78e3 | |||
| f34d7bef6a | |||
| faff52dff2 | |||
| 5852eaae0b | |||
| 67deefe3fb | |||
| 14ae3f1a65 | |||
| 83e464c3e8 | |||
| ed51f10b73 | |||
| 763a52e2fc | |||
| 58ad5b1a80 | |||
| c5e3677d28 | |||
| b012e5cc16 | |||
| 52d092da64 | |||
| bf729c53d7 | |||
| 1afeb1c2d3 | |||
| 9a24eaa275 | |||
| fc18ce9cae | |||
| 137e94bec2 | |||
| 8c55673a25 | |||
| 1b241388ee | |||
| 71aa36860f | |||
| 92e4c882fc | |||
| b7d6822592 | |||
| ae45f67a75 | |||
| 521e61828f | |||
| 708fa13428 | |||
| 5a8292fe43 | |||
| c0cab68f8b | |||
| 1a2d36af39 | |||
| 60d71a99e2 | |||
| 532ba405cf | |||
| ca3f77bea2 | |||
| 95e94556e1 | |||
| 28724fe496 | |||
| f637e1c6a2 | |||
| c5f4ac1253 | |||
| baec1727b3 | |||
| b3fa62fc3d | |||
| d3e5a764ba | |||
| 456684f138 | |||
| 04c12502d1 | |||
| 1bbceea598 | |||
| 661739c9d7 | |||
| 03c318d730 | |||
| 0317e002f3 | |||
| 3539476d12 | |||
| 966db54089 | |||
| b76cdd09cc | |||
| 921ee17026 | |||
| 7eae0e5f8c | |||
| b7150ad88c | |||
| eedd8dce3c | |||
| ac9c17c7b8 | |||
| 78098c8325 | |||
| d03604a887 | |||
| e8c47cf3ec | |||
| 324ebd144c | |||
| e26588d78c | |||
| c56ebcecb2 | |||
| 3aa22804e1 | |||
| 4edf863803 | |||
| b87d71c4e5 | |||
| 99a8e6c3c4 | |||
| bb1ad1ca15 | |||
| 7eb0ba9feb | |||
| 530b635cea | |||
| 84112d8fc7 | |||
| f6379da3a1 | |||
| 560ea9abe7 | |||
| e0c1b74419 | |||
| 047a758a31 | |||
| d5cc1ad2ca | |||
| 36e4de2552 | |||
| 5a9fa36bb1 | |||
| 9e9cccd9ec | |||
| 533125defc | |||
| 6ba57a70a9 | |||
| 266dfbce24 | |||
| 820e0915e9 | |||
| 1c33307a59 | |||
| 22c75f5b25 | |||
| 0cd74df34e | |||
| 6e88edb0a6 | |||
| 33e35afad2 | |||
| 6d26c71b48 | |||
| 19b0c911aa | |||
| af8cb33a40 | |||
| d6e6525861 | |||
| 5acf3878f3 | |||
| 810d8b4c98 | |||
| 545a9c1c73 | |||
| 32a264842f | |||
| 7ccc7a69f7 | |||
| 85b851a7df | |||
| 330ae40ecf | |||
| b400f1b93b | |||
| 78513504ca | |||
| d89da91a56 | |||
| 7040916f96 | |||
| 9756097e28 | |||
| 5ce08e9704 | |||
| f573285040 | |||
| b119cace4f | |||
| 2c560b0837 | |||
| 4e0217ef13 | |||
| 17d60a4af0 | |||
| 3a5c445c78 | |||
| 04ee3aff1a | |||
| 3aa2e130cd | |||
| b71661a38b | |||
| 5b86c7a402 | |||
| e2dc439c71 | |||
| c86e2d1e67 | |||
| f5faddaf31 | |||
| 99a26b0a97 | |||
| aaf2ded381 | |||
| c8dbc73017 | |||
| a71584ee96 | |||
| bf24b24841 | |||
| f8cc0adefb | |||
| d1fd735698 | |||
| 1e2f273c09 | |||
| 9b504039f4 | |||
| 0ff7ad3535 | |||
| 8f7b0b4264 | |||
| c08592de28 | |||
| 005b2b04e8 | |||
| 63a4778744 | |||
| ca245b4cc6 | |||
| 309d12abe1 | |||
| 7e9e1269a0 | |||
| 861f9bdb31 | |||
| a375265111 | |||
| 7fe3d1c6a0 | |||
| 0cf140e903 | |||
| 3d27f8d288 | |||
| 52dac4be2b | |||
| 252e24b83d | |||
| b7bdd76731 | |||
| 00100427be | |||
| 2ae66ff888 | |||
| 6594d54476 | |||
| 9b125a7605 | |||
| eb06a5628f | |||
| 2a5e57d2f4 | |||
| 9b605de474 | |||
| 48ce8c3fa1 | |||
| 3925176b49 | |||
| 981978d960 | |||
| 282e6b707a | |||
| 5bcac61c73 | |||
| 8225ab726f | |||
| 62f3ea390e | |||
| d677a3a5e2 | |||
| 04d9f79985 | |||
| 8fa69c1c29 | |||
| f2c73ebffd | |||
| 5a7d38b22c | |||
| e4c2a1d218 | |||
| e367c5a928 | |||
| 5c935429ef | |||
| c88a1d3961 | |||
| 9b84a0ec19 | |||
| b256928385 | |||
| 6b49aa792b | |||
| cd2d09de64 | |||
| 2c068f3683 | |||
| 1398c598cf | |||
| 614afec231 | |||
| 3fcb3a962d | |||
| 5961eba6a1 | |||
| 8bd63c5fe2 | |||
| e53c124ecc | |||
| 5f658d9eae | |||
| bd0784e056 | |||
| 23569000a8 | |||
| 4b2a77b1ff | |||
| 3d6d38a2fb | |||
| b964ca5394 | |||
| cc99dd8fd9 | |||
| a77040f41e | |||
| 5fdebf923c | |||
| 4b203e5f7b |
+4
-4
@@ -24,7 +24,7 @@ package.json @nextcloud/server-dependabot @next
|
||||
package-lock.json @nextcloud/server-dependabot
|
||||
|
||||
# App maintainers
|
||||
/apps/admin_audit/appinfo/info.xml @luka-nextcloud @blizzz
|
||||
/apps/admin_audit/appinfo/info.xml @luka-nextcloud @samin-z
|
||||
/apps/cloud_federation_api/appinfo/info.xml @nfebe @mejo-
|
||||
/apps/comments/appinfo/info.xml @edward-ly @sorbaugh
|
||||
/apps/contactsinteraction/appinfo/info.xml @kesselb @SebastianKrupinski
|
||||
@@ -46,16 +46,16 @@ package-lock.json @nextcloud/server-dependabot
|
||||
/apps/files_versions/appinfo/info.xml @artonge @icewind1991
|
||||
/apps/oauth2/appinfo/info.xml @julien-nc @ChristophWurst
|
||||
/apps/provisioning_api/appinfo/info.xml @provokateurin @nickvergessen
|
||||
/apps/settings/appinfo/info.xml @JuliaKirschenheuter @sorbaugh
|
||||
/apps/settings/appinfo/info.xml @hweihwang @sorbaugh
|
||||
/apps/sharebymail/appinfo/info.xml @Altahrim @skjnldsv
|
||||
/apps/systemtags/appinfo/info.xml @Antreesy @marcelklehr
|
||||
/apps/theming/appinfo/info.xml @skjnldsv @juliusknorr
|
||||
/apps/twofactor_backupcodes/appinfo/info.xml @miaulalala @ChristophWurst
|
||||
/apps/updatenotification/appinfo/info.xml @JuliaKirschenheuter @sorbaugh
|
||||
/apps/updatenotification/appinfo/info.xml @enjeck @sorbaugh
|
||||
/apps/user_ldap/appinfo/info.xml @come-nc @blizzz
|
||||
/apps/user_status/appinfo/info.xml @Antreesy @nickvergessen
|
||||
/apps/weather_status/appinfo/info.xml @julien-nc @juliusknorr
|
||||
/apps/webhook_listeners/appinfo/info.xml @come-nc @julien-nc
|
||||
/apps/webhook_listeners/appinfo/info.xml @janepie @julien-nc
|
||||
/apps/workflowengine/appinfo/info.xml @blizzz @juliusknorr
|
||||
|
||||
# Files frontend expertise
|
||||
|
||||
@@ -20,7 +20,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -58,7 +58,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -74,6 +74,9 @@ jobs:
|
||||
autocheckers:
|
||||
runs-on: ubuntu-latest-low
|
||||
|
||||
needs: changes
|
||||
if: needs.changes.outputs.src != 'false'
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
php-versions: ['8.2']
|
||||
@@ -88,7 +91,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -125,4 +128,4 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.autocheckers.result != 'success' || (needs.changes.outputs.src != 'false' && needs.autoloader.result != 'success') }}; then exit 1; fi
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && (needs.autocheckers.result != 'success' || needs.autoloader.result != 'success') }}; then exit 1; fi
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Check requirement
|
||||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
||||
@@ -37,13 +37,13 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@89a39a4e59826350b863aa6b6252a07ad50cf83e # v4.32.4
|
||||
uses: github/codeql-action/init@c10b8064de6f491fea524254123dbe5e09572f13 # v4.35.1
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
build-mode: ${{ matrix.build-mode }}
|
||||
config-file: ./.github/codeql-config.yml
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@89a39a4e59826350b863aa6b6252a07ad50cf83e # v4.32.4
|
||||
uses: github/codeql-action/analyze@c10b8064de6f491fea524254123dbe5e09572f13 # v4.35.1
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
||||
|
||||
@@ -124,7 +124,7 @@ jobs:
|
||||
fallbackNpm: '^11.3'
|
||||
|
||||
- name: Set up node ${{ steps.package-engines-versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
||||
with:
|
||||
node-version: ${{ steps.package-engines-versions.outputs.nodeVersion }}
|
||||
cache: npm
|
||||
|
||||
@@ -14,6 +14,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: none
|
||||
pull-requests: read
|
||||
|
||||
# On pull requests and if the comment starts with `/update-3rdparty`
|
||||
if: github.event.issue.pull_request != '' && startsWith(github.event.comment.body, '/update-3rdparty')
|
||||
@@ -27,8 +28,25 @@ jobs:
|
||||
comment-id: ${{ github.event.comment.id }}
|
||||
reactions: '+1'
|
||||
|
||||
# issue_comment events carry no pull_request context in their payload, so we
|
||||
# must fetch the PR via the API. This also gives us base.ref for free, avoiding
|
||||
# a second API call. The GITHUB_TOKEN needs pull-requests:read (granted above).
|
||||
- name: Get pull request metadata
|
||||
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
||||
id: get-pr
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
script: |
|
||||
const pull = await github.rest.pulls.get({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
pull_number: context.issue.number,
|
||||
});
|
||||
core.setOutput('head_repo', pull.data.head.repo?.full_name ?? '');
|
||||
core.setOutput('base_ref', pull.data.base.ref);
|
||||
|
||||
- name: Disabled on forks
|
||||
if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
|
||||
if: steps.get-pr.outputs.head_repo != github.repository
|
||||
run: |
|
||||
echo 'Can not execute /update-3rdparty on forks'
|
||||
exit 1
|
||||
@@ -46,24 +64,17 @@ jobs:
|
||||
ref: ${{ steps.comment-branch.outputs.head_ref }}
|
||||
|
||||
- name: Register server reference to fallback to master branch
|
||||
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
|
||||
with:
|
||||
github-token: ${{secrets.GITHUB_TOKEN}}
|
||||
script: |
|
||||
const baseRef = context.payload.pull_request.base.ref
|
||||
if (baseRef === 'main' || baseRef === 'master') {
|
||||
core.exportVariable('server_ref', 'master');
|
||||
console.log('Setting server_ref to master');
|
||||
} else {
|
||||
const regex = /^stable(\d+)$/
|
||||
const match = baseRef.match(regex)
|
||||
if (match) {
|
||||
core.exportVariable('server_ref', match[0]);
|
||||
console.log('Setting server_ref to ' + match[0]);
|
||||
} else {
|
||||
console.log('Not based on master/main/stable*, so skipping pull 3rdparty command');
|
||||
}
|
||||
}
|
||||
run: |
|
||||
base_ref="${{ steps.get-pr.outputs.base_ref }}"
|
||||
if [[ "$base_ref" == "main" || "$base_ref" == "master" ]]; then
|
||||
echo "server_ref=master" >> "$GITHUB_ENV"
|
||||
echo "Setting server_ref to master"
|
||||
elif [[ "$base_ref" =~ ^stable[0-9]+$ ]]; then
|
||||
echo "server_ref=$base_ref" >> "$GITHUB_ENV"
|
||||
echo "Setting server_ref to $base_ref"
|
||||
else
|
||||
echo "Not based on master/main/stable*, so skipping pull 3rdparty command"
|
||||
fi
|
||||
|
||||
- name: Setup git
|
||||
run: |
|
||||
|
||||
@@ -41,12 +41,6 @@ jobs:
|
||||
PUPPETEER_SKIP_DOWNLOAD: true
|
||||
|
||||
steps:
|
||||
- name: Disabled on forks
|
||||
if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
|
||||
run: |
|
||||
echo 'Can not run cypress on forks'
|
||||
exit 1
|
||||
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
@@ -72,7 +66,7 @@ jobs:
|
||||
fallbackNpm: '^11.3'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
@@ -160,7 +154,7 @@ jobs:
|
||||
path: ./
|
||||
|
||||
- name: Set up node ${{ needs.init.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
||||
with:
|
||||
node-version: ${{ needs.init.outputs.nodeVersion }}
|
||||
|
||||
@@ -171,15 +165,11 @@ jobs:
|
||||
run: ./node_modules/cypress/bin/cypress install
|
||||
|
||||
- name: Run ${{ matrix.containers == 'component' && 'component' || 'E2E' }} cypress tests
|
||||
uses: cypress-io/github-action@bc22e01685c56e89e7813fd8e26f33dc47f87e15 # v7.1.5
|
||||
uses: cypress-io/github-action@783cb3f07983868532cabaedaa1e6c00ff4786a8 # v7.1.9
|
||||
with:
|
||||
# We already installed the dependencies in the init job
|
||||
install: false
|
||||
component: ${{ matrix.containers == 'component' }}
|
||||
group: ${{ matrix.use-cypress-cloud && matrix.containers == 'component' && 'Run component' || matrix.use-cypress-cloud && 'Run E2E' || '' }}
|
||||
# cypress env
|
||||
ci-build-id: ${{ matrix.use-cypress-cloud && format('{0}-{1}', github.sha, github.run_number) || '' }}
|
||||
tag: ${{ matrix.use-cypress-cloud && github.event_name || '' }}
|
||||
env:
|
||||
# Needs to be prefixed with CYPRESS_
|
||||
CYPRESS_BRANCH: ${{ env.BRANCH }}
|
||||
@@ -188,7 +178,6 @@ jobs:
|
||||
# Needed for some specific code workarounds
|
||||
TESTING: true
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
|
||||
SPLIT: ${{ matrix.total-containers }}
|
||||
SPLIT_INDEX: ${{ matrix.containers == 'component' && 0 || matrix.containers }}
|
||||
SPLIT_RANDOM_SEED: ${{ github.run_id }}
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -81,7 +81,7 @@ jobs:
|
||||
if [[ "${{ matrix.ftpd }}" == 'pure-ftpd' ]]; then docker run --name ftp -d --net host -e "PUBLICHOST=localhost" -e FTP_USER_NAME=test -e FTP_USER_PASS=test -e FTP_USER_HOME=/home/test -v /tmp/ftp:/home/test -v /tmp/ftp:/etc/pure-ftpd/passwd stilliard/pure-ftpd; fi
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -115,7 +115,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-ftp
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -80,7 +80,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -115,7 +115,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-s3
|
||||
@@ -169,7 +169,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -197,7 +197,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-s3
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -73,11 +73,11 @@ jobs:
|
||||
- name: Set up sftpd
|
||||
run: |
|
||||
sudo mkdir /tmp/sftp
|
||||
sudo chown -R 0777 /tmp/sftp
|
||||
sudo chmod -R 0777 /tmp/sftp
|
||||
if [[ '${{ matrix.sftpd }}' == 'openssh' ]]; then docker run -p 2222:22 --name sftp -d -v /tmp/sftp:/home/test atmoz/sftp 'test:test:::data'; fi
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -104,7 +104,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-sftp
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -81,7 +81,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -116,7 +116,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-smb
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -76,7 +76,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -108,7 +108,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-webdav
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -70,7 +70,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -97,7 +97,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-files-external-generic
|
||||
|
||||
@@ -73,7 +73,7 @@ jobs:
|
||||
fi
|
||||
|
||||
- name: Set up php 8.2
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: 8.2
|
||||
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -52,69 +52,69 @@ jobs:
|
||||
name: ${{ matrix.service }} (${{ matrix.endpoint }} endpoint) php${{ matrix.php-versions }}
|
||||
|
||||
steps:
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
- name: Checkout server
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
persist-credentials: false
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
coverage: 'none'
|
||||
ini-file: development
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
coverage: 'none'
|
||||
ini-file: development
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Set up Python
|
||||
uses: LizardByte/actions/actions/setup_python@70bb8d394d1c92f6113aeec6ae9cc959a5763d15 # v2026.227.200013
|
||||
with:
|
||||
python-version: '2.7'
|
||||
- name: Set up Python
|
||||
uses: LizardByte/actions/actions/setup_python@0affa4f7bcb27562658960eee840eff8ff844578 # v2026.328.161128
|
||||
with:
|
||||
python-version: '2.7'
|
||||
|
||||
- name: Set up CalDAVTester
|
||||
run: |
|
||||
git clone --depth=1 https://github.com/apple/ccs-caldavtester.git CalDAVTester
|
||||
git clone --depth=1 https://github.com/apple/ccs-pycalendar.git pycalendar
|
||||
- name: Set up CalDAVTester
|
||||
run: |
|
||||
git clone --depth=1 https://github.com/apple/ccs-caldavtester.git CalDAVTester
|
||||
git clone --depth=1 https://github.com/apple/ccs-pycalendar.git pycalendar
|
||||
|
||||
- name: Set up Nextcloud
|
||||
run: |
|
||||
mkdir data
|
||||
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
|
||||
# disable the trashbin, so recurrent deletion of the same object works
|
||||
./occ config:app:set dav calendarRetentionObligation --value=0
|
||||
# Prepare users
|
||||
OC_PASS=user01 ./occ user:add --password-from-env user01
|
||||
OC_PASS=user02 ./occ user:add --password-from-env user02
|
||||
# Prepare calendars
|
||||
./occ dav:create-calendar user01 calendar
|
||||
./occ dav:create-calendar user01 shared
|
||||
./occ dav:create-calendar user02 calendar
|
||||
# Prepare address books
|
||||
./occ dav:create-addressbook user01 addressbook
|
||||
./occ dav:create-addressbook user02 addressbook
|
||||
- name: Set up Nextcloud
|
||||
run: |
|
||||
mkdir data
|
||||
./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
|
||||
# disable the trashbin, so recurrent deletion of the same object works
|
||||
./occ config:app:set dav calendarRetentionObligation --value=0
|
||||
# Prepare users
|
||||
OC_PASS=user01 ./occ user:add --password-from-env user01
|
||||
OC_PASS=user02 ./occ user:add --password-from-env user02
|
||||
# Prepare calendars
|
||||
./occ dav:create-calendar user01 calendar
|
||||
./occ dav:create-calendar user01 shared
|
||||
./occ dav:create-calendar user02 calendar
|
||||
# Prepare address books
|
||||
./occ dav:create-addressbook user01 addressbook
|
||||
./occ dav:create-addressbook user02 addressbook
|
||||
|
||||
- name: Run Nextcloud
|
||||
run: |
|
||||
php -S localhost:8888 &
|
||||
- name: Run Nextcloud
|
||||
run: |
|
||||
php -S localhost:8888 &
|
||||
|
||||
- name: Run CalDAVTester
|
||||
run: |
|
||||
cp "apps/dav/tests/testsuits/caldavtest/serverinfo-${{ matrix.endpoint }}${{ matrix.endpoint == 'old' && (matrix.service == 'CardDAV' && '-carddav' || '-caldav') || '' }}-endpoint.xml" "apps/dav/tests/testsuits/caldavtest/serverinfo.xml"
|
||||
pushd CalDAVTester
|
||||
PYTHONPATH="../pycalendar/src" python testcaldav.py --print-details-onfail --basedir "../apps/dav/tests/testsuits/caldavtest" -o cdt.txt \
|
||||
"${{ matrix.service }}/current-user-principal.xml" \
|
||||
"${{ matrix.service }}/sync-report.xml" \
|
||||
${{ matrix.endpoint == 'new' && format('{0}/sharing-{1}.xml', matrix.service, matrix.service == 'CalDAV' && 'calendars' || 'addressbooks') || ';' }}
|
||||
popd
|
||||
- name: Run CalDAVTester
|
||||
run: |
|
||||
cp "apps/dav/tests/testsuits/caldavtest/serverinfo-${{ matrix.endpoint }}${{ matrix.endpoint == 'old' && (matrix.service == 'CardDAV' && '-carddav' || '-caldav') || '' }}-endpoint.xml" "apps/dav/tests/testsuits/caldavtest/serverinfo.xml"
|
||||
pushd CalDAVTester
|
||||
PYTHONPATH="../pycalendar/src" python testcaldav.py --print-details-onfail --basedir "../apps/dav/tests/testsuits/caldavtest" -o cdt.txt \
|
||||
"${{ matrix.service }}/current-user-principal.xml" \
|
||||
"${{ matrix.service }}/sync-report.xml" \
|
||||
${{ matrix.endpoint == 'new' && format('{0}/sharing-{1}.xml', matrix.service, matrix.service == 'CalDAV' && 'calendars' || 'addressbooks') || ';' }}
|
||||
popd
|
||||
|
||||
- name: Print Nextcloud logs
|
||||
if: always()
|
||||
run: |
|
||||
cat data/nextcloud.log
|
||||
- name: Print Nextcloud logs
|
||||
if: always()
|
||||
run: |
|
||||
cat data/nextcloud.log
|
||||
|
||||
caldav-integration-summary:
|
||||
permissions:
|
||||
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -58,7 +58,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -82,7 +82,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -95,7 +95,6 @@ jobs:
|
||||
|
||||
- name: Wait for S3
|
||||
run: |
|
||||
sleep 10
|
||||
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
|
||||
|
||||
- name: Set up Nextcloud
|
||||
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -121,7 +121,7 @@ jobs:
|
||||
ref: ${{ matrix.activity-versions }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -68,7 +68,7 @@ jobs:
|
||||
fallbackNpm: '^11.3'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -44,6 +44,9 @@ jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: changes
|
||||
if: needs.changes.outputs.src != 'false'
|
||||
|
||||
name: php-cs
|
||||
|
||||
steps:
|
||||
@@ -53,7 +56,7 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: 8.2
|
||||
|
||||
@@ -23,7 +23,7 @@ jobs:
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -58,7 +58,7 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
|
||||
@@ -18,9 +18,37 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
runs-on: ubuntu-latest-low
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- '**/src/**'
|
||||
- '**/appinfo/info.xml'
|
||||
- 'package.json'
|
||||
- 'package-lock.json'
|
||||
- '**.css'
|
||||
- '**.scss'
|
||||
- '**.vue'
|
||||
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: changes
|
||||
if: needs.changes.outputs.src != 'false'
|
||||
|
||||
name: stylelint
|
||||
|
||||
steps:
|
||||
@@ -37,7 +65,7 @@ jobs:
|
||||
fallbackNpm: '^11.3'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
@@ -51,3 +79,18 @@ jobs:
|
||||
|
||||
- name: Lint
|
||||
run: npm run stylelint
|
||||
|
||||
summary:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest-low
|
||||
needs: [changes, lint]
|
||||
|
||||
if: always()
|
||||
|
||||
# This is the summary, we just avoid to rename it so that branch protection rules still match
|
||||
name: stylelint
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
|
||||
|
||||
@@ -29,7 +29,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -71,7 +71,7 @@ jobs:
|
||||
fallbackNpm: '^11.3'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -70,7 +70,7 @@ jobs:
|
||||
fallbackNpm: '^11.3'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
@@ -83,14 +83,11 @@ jobs:
|
||||
run: |
|
||||
npm ci
|
||||
|
||||
# - name: Test
|
||||
# run: npm run test --if-present
|
||||
|
||||
- name: Test and process coverage
|
||||
run: npm run test:coverage
|
||||
|
||||
- name: Collect coverage
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./coverage/lcov.info,./coverage/legacy/lcov.info
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -68,7 +68,7 @@ jobs:
|
||||
fallbackNpm: '^11.3'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ jobs:
|
||||
fallbackNpm: '^11.3'
|
||||
|
||||
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
|
||||
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
|
||||
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
||||
with:
|
||||
node-version: ${{ steps.versions.outputs.nodeVersion }}
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -85,7 +85,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -117,7 +117,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-azure
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -86,7 +86,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -111,7 +111,6 @@ jobs:
|
||||
|
||||
- name: Wait for S3
|
||||
run: |
|
||||
sleep 10
|
||||
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
|
||||
|
||||
- name: PHPUnit
|
||||
@@ -123,7 +122,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-s3
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -83,7 +83,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -113,7 +113,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-swift
|
||||
|
||||
@@ -31,7 +31,7 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: '8.2'
|
||||
|
||||
@@ -15,7 +15,13 @@ jobs:
|
||||
performance-testing:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
|
||||
# Skip entirely on fork PRs so the job result is 'skipped' rather than
|
||||
# 'failure'. The profiler action uses github.event.pull_request.head.repo.clone_url
|
||||
# and GITHUB_TOKEN in ways that do not work reliably from forks, and a
|
||||
# clean skip is far less confusing for contributors than a mid-run error.
|
||||
if: >-
|
||||
github.repository_owner != 'nextcloud-gmbh' &&
|
||||
github.event.pull_request.head.repo.full_name == github.repository
|
||||
|
||||
permissions:
|
||||
pull-requests: write
|
||||
@@ -28,11 +34,6 @@ jobs:
|
||||
name: performance-${{ matrix.php-versions }}
|
||||
|
||||
steps:
|
||||
- name: Disabled on forks
|
||||
if: ${{ github.event.pull_request.head.repo.full_name != github.repository }}
|
||||
run: |
|
||||
echo 'Can not run performance tests on forks'
|
||||
exit 1
|
||||
|
||||
- name: Checkout server before PR
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
@@ -42,7 +43,7 @@ jobs:
|
||||
ref: ${{ github.event.pull_request.base.ref }}
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
|
||||
@@ -9,6 +9,7 @@ on:
|
||||
- ".github/workflows/phpunit-32bits.yml"
|
||||
- "tests/phpunit-autotest.xml"
|
||||
- "lib/private/Snowflake/*"
|
||||
- "tests/lib/Preview/PreviewMapperTest.php"
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: "15 1 * * 1-6"
|
||||
|
||||
@@ -31,7 +31,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -98,7 +98,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -132,7 +132,7 @@ jobs:
|
||||
|
||||
- name: Upload db code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.db.xml
|
||||
flags: phpunit-mariadb
|
||||
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -78,7 +78,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -104,7 +104,7 @@ jobs:
|
||||
|
||||
- name: Upload code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.xml
|
||||
flags: phpunit-memcached
|
||||
|
||||
@@ -28,7 +28,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -127,7 +127,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -162,7 +162,7 @@ jobs:
|
||||
|
||||
- name: Upload db code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.db.xml
|
||||
flags: phpunit-mysql
|
||||
|
||||
@@ -31,7 +31,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -98,7 +98,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -132,7 +132,7 @@ jobs:
|
||||
|
||||
- name: Upload db code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.db.xml
|
||||
flags: phpunit-mysql
|
||||
|
||||
@@ -30,7 +30,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -81,7 +81,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -110,7 +110,7 @@ jobs:
|
||||
|
||||
- name: Upload nodb code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.nodb.xml
|
||||
flags: phpunit-nodb
|
||||
|
||||
@@ -21,7 +21,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -78,7 +78,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -104,7 +104,7 @@ jobs:
|
||||
curl -f -m 1 --retry-connrefused --retry 10 --retry-delay 10 http://localhost:9000/minio/health/ready
|
||||
|
||||
- name: PHPUnit
|
||||
run: composer run test:db
|
||||
run: composer run test:db -- --log-junit junit.xml
|
||||
|
||||
- name: S3 logs
|
||||
if: always()
|
||||
|
||||
@@ -31,7 +31,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -105,7 +105,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -132,7 +132,7 @@ jobs:
|
||||
|
||||
- name: Upload db code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.db.xml
|
||||
flags: phpunit-oci
|
||||
|
||||
@@ -31,7 +31,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -98,7 +98,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -127,7 +127,7 @@ jobs:
|
||||
|
||||
- name: Upload db code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.db.xml
|
||||
flags: phpunit-postgres
|
||||
|
||||
@@ -31,7 +31,7 @@ jobs:
|
||||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
@@ -81,7 +81,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php ${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
@@ -114,7 +114,7 @@ jobs:
|
||||
|
||||
- name: Upload db code coverage
|
||||
if: ${{ !cancelled() && matrix.coverage }}
|
||||
uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2
|
||||
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
|
||||
with:
|
||||
files: ./clover.db.xml
|
||||
flags: phpunit-sqlite
|
||||
|
||||
@@ -37,7 +37,7 @@ jobs:
|
||||
ref: ${{ github.event.repository.default_branch }}
|
||||
|
||||
- name: Set up php${{ matrix.php-versions }}
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0
|
||||
with:
|
||||
php-version: ${{ matrix.php-versions }}
|
||||
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
|
||||
|
||||
@@ -13,10 +13,34 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
runs-on: ubuntu-latest-low
|
||||
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src}}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- '3rdparty/**'
|
||||
- '**/lib/**'
|
||||
- '**/tests/**'
|
||||
- '**/vendor-bin/**'
|
||||
- '.php-cs-fixer.dist.php'
|
||||
- 'composer.json'
|
||||
- 'composer.lock'
|
||||
- '**.php'
|
||||
|
||||
strict:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
if: ${{ github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
|
||||
needs: changes
|
||||
if: ${{ needs.changes.outputs.src != 'false' && github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -26,7 +50,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
with:
|
||||
php-version: '8.2'
|
||||
extensions: apcu,ctype,curl,dom,fileinfo,ftp,gd,imagick,intl,json,ldap,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
@@ -43,3 +67,17 @@ jobs:
|
||||
- name: Show changes
|
||||
if: always()
|
||||
run: git diff --exit-code -- . ':!lib/composer'
|
||||
|
||||
summary:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest-low
|
||||
needs: [changes, strict]
|
||||
|
||||
if: always()
|
||||
|
||||
name: rector-summary
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: if ${{ needs.changes.outputs.src != 'false' && needs.strict.result != 'success' }}; then exit 1; fi
|
||||
|
||||
@@ -21,10 +21,35 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
changes:
|
||||
runs-on: ubuntu-latest-low
|
||||
|
||||
outputs:
|
||||
src: ${{ steps.changes.outputs.src }}
|
||||
|
||||
steps:
|
||||
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.1
|
||||
id: changes
|
||||
continue-on-error: true
|
||||
with:
|
||||
filters: |
|
||||
src:
|
||||
- '.github/workflows/**'
|
||||
- '3rdparty/**'
|
||||
- '**/appinfo/**'
|
||||
- '**/lib/**'
|
||||
- '**/templates/**'
|
||||
- 'vendor/**'
|
||||
- 'vendor-bin/**'
|
||||
- 'composer.json'
|
||||
- 'composer.lock'
|
||||
- '**.php'
|
||||
|
||||
static-code-analysis:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
if: ${{ github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
|
||||
needs: changes
|
||||
if: ${{ needs.changes.outputs.src != 'false' && github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -34,7 +59,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: '8.2'
|
||||
@@ -56,7 +81,8 @@ jobs:
|
||||
static-code-analysis-security:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
if: ${{ github.repository_owner != 'nextcloud-gmbh' }}
|
||||
needs: changes
|
||||
if: ${{ needs.changes.outputs.src != 'false' && github.repository_owner != 'nextcloud-gmbh' }}
|
||||
|
||||
permissions:
|
||||
security-events: write
|
||||
@@ -69,7 +95,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: '8.2'
|
||||
@@ -88,14 +114,15 @@ jobs:
|
||||
|
||||
- name: Upload Security Analysis results to GitHub
|
||||
if: always()
|
||||
uses: github/codeql-action/upload-sarif@89a39a4e59826350b863aa6b6252a07ad50cf83e # v3
|
||||
uses: github/codeql-action/upload-sarif@c10b8064de6f491fea524254123dbe5e09572f13 # v3
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
||||
static-code-analysis-ocp:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
if: ${{ github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
|
||||
needs: changes
|
||||
if: ${{ needs.changes.outputs.src != 'false' && github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -105,7 +132,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: '8.2'
|
||||
@@ -127,7 +154,8 @@ jobs:
|
||||
static-code-analysis-ncu:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
if: ${{ github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
|
||||
needs: changes
|
||||
if: ${{ needs.changes.outputs.src != 'false' && github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -137,7 +165,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
timeout-minutes: 5
|
||||
with:
|
||||
php-version: '8.2'
|
||||
@@ -155,7 +183,8 @@ jobs:
|
||||
static-code-analysis-strict:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
if: ${{ github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
|
||||
needs: changes
|
||||
if: ${{ needs.changes.outputs.src != 'false' && github.event_name != 'push' && github.repository_owner != 'nextcloud-gmbh' }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -165,7 +194,7 @@ jobs:
|
||||
submodules: true
|
||||
|
||||
- name: Set up php
|
||||
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 #v2.36.0
|
||||
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f #v2.37.0
|
||||
with:
|
||||
php-version: '8.2'
|
||||
extensions: ctype,curl,dom,fileinfo,gd,imagick,intl,json,mbstring,openssl,pdo_sqlite,posix,sqlite,xml,zip
|
||||
@@ -178,3 +207,28 @@ jobs:
|
||||
|
||||
- name: Psalm
|
||||
run: composer run psalm:strict -- --threads=1 --monochrome --no-progress --output-format=github
|
||||
|
||||
summary:
|
||||
permissions:
|
||||
contents: none
|
||||
runs-on: ubuntu-latest-low
|
||||
needs: [changes, static-code-analysis, static-code-analysis-security, static-code-analysis-ocp, static-code-analysis-ncu, static-code-analysis-strict]
|
||||
|
||||
if: always()
|
||||
|
||||
name: static-code-analysis-summary
|
||||
|
||||
steps:
|
||||
- name: Summary status
|
||||
run: |
|
||||
if ${{ needs.changes.outputs.src != 'false' && (
|
||||
needs.static-code-analysis-security.result != 'success' ||
|
||||
(github.event_name != 'push' && (
|
||||
needs.static-code-analysis.result != 'success' ||
|
||||
needs.static-code-analysis-ocp.result != 'success' ||
|
||||
needs.static-code-analysis-ncu.result != 'success' ||
|
||||
needs.static-code-analysis-strict.result != 'success'
|
||||
))
|
||||
) }}; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -115,7 +115,7 @@ jobs:
|
||||
committer: GitHub <noreply@github.com>
|
||||
author: nextcloud-command <nextcloud-command@users.noreply.github.com>
|
||||
signoff: true
|
||||
branch: "automated/noid/${{ matrix.branches }}-update-min-supported-desktop-version"
|
||||
branch: "automated/noid/update-min-supported-desktop-version"
|
||||
title: "chore: Update minimum supported desktop version to ${{ steps.extract-version.outputs.VERSION }}"
|
||||
base: "master"
|
||||
body: |
|
||||
|
||||
+1
-1
Submodule 3rdparty updated: e1dc48ae9d...f257bfe47e
@@ -0,0 +1,7 @@
|
||||
OC.L10N.register(
|
||||
"admin_audit",
|
||||
{
|
||||
"Auditing / Logging" : "নিরীক্ষা",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "নেক্সটক্লাউডের নিরীক্ষামূলক সক্ষমতা প্রদান করে যেমন লগিং ফাইল অ্যাক্সেস বা অন্য কোনো জরুরী পদক্ষেপসমূহ"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
@@ -0,0 +1,5 @@
|
||||
{ "translations": {
|
||||
"Auditing / Logging" : "নিরীক্ষা",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "নেক্সটক্লাউডের নিরীক্ষামূলক সক্ষমতা প্রদান করে যেমন লগিং ফাইল অ্যাক্সেস বা অন্য কোনো জরুরী পদক্ষেপসমূহ"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -32,6 +32,6 @@ OC.L10N.register(
|
||||
"Comment deleted" : "Kommentar gelöscht",
|
||||
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
|
||||
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
|
||||
"Write a comment …" : "Einen Kommentar schreiben …"
|
||||
"Write a comment …" : "Einen Kommentar schreiben …"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -30,6 +30,6 @@
|
||||
"Comment deleted" : "Kommentar gelöscht",
|
||||
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
|
||||
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
|
||||
"Write a comment …" : "Einen Kommentar schreiben …"
|
||||
"Write a comment …" : "Einen Kommentar schreiben …"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -32,6 +32,6 @@ OC.L10N.register(
|
||||
"Comment deleted" : "Kommentar gelöscht",
|
||||
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
|
||||
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
|
||||
"Write a comment …" : "Schreiben Sie einen Kommentar …"
|
||||
"Write a comment …" : "Einen Kommentar schreiben …"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -30,6 +30,6 @@
|
||||
"Comment deleted" : "Kommentar gelöscht",
|
||||
"An error occurred while trying to delete the comment" : "Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
|
||||
"An error occurred while trying to create the comment" : "Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
|
||||
"Write a comment …" : "Schreiben Sie einen Kommentar …"
|
||||
"Write a comment …" : "Einen Kommentar schreiben …"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
+32
-27
@@ -1,32 +1,37 @@
|
||||
OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "Comments",
|
||||
"You commented" : "You commented",
|
||||
"{author} commented" : "{author} commented",
|
||||
"You commented on %1$s" : "You commented on %1$s",
|
||||
"You commented on {file}" : "You commented on {file}",
|
||||
"%1$s commented on %2$s" : "%1$s commented on %2$s",
|
||||
"{author} commented on {file}" : "{author} commented on {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comments</strong> for files",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} mentioned you in a comment on \"{file}\"",
|
||||
"Files app plugin to add comments to files" : "Files app plugin to add comments to files",
|
||||
"Edit comment" : "Edit comment",
|
||||
"Delete comment" : "Delete comment",
|
||||
"Cancel edit" : "Cancel edit",
|
||||
"Post comment" : "Post comment",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ for mentions, : for emoji, / for smart picker",
|
||||
"Could not reload comments" : "Could not reload comments",
|
||||
"Failed to mark comments as read" : "Failed to mark comments as read",
|
||||
"Unable to load the comments list" : "Unable to load the comments list",
|
||||
"No comments yet, start the conversation!" : "No comments yet, start the conversation!",
|
||||
"No more messages" : "No more messages",
|
||||
"Retry" : "Retry",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 new comment","{unread} new comments"],
|
||||
"Comment" : "Comment",
|
||||
"An error occurred while trying to edit the comment" : "An error occurred while trying to edit the comment",
|
||||
"Comment deleted" : "Comment deleted",
|
||||
"An error occurred while trying to delete the comment" : "An error occurred while trying to delete the comment",
|
||||
"An error occurred while trying to create the comment" : "An error occurred while trying to create the comment"
|
||||
"Comments" : "კომენტარები",
|
||||
"You commented" : "თქვენი კომენტარი",
|
||||
"{author} commented" : "{author}-ის კომენტარი",
|
||||
"You commented on %1$s" : "თქვენი კომენტარი %1$s-ზე",
|
||||
"You commented on {file}" : "თქვენი კომენტარი {file}-ზე",
|
||||
"%1$s commented on %2$s" : "%1$s-მა დატოვა კომენტარი %2$s-ზე",
|
||||
"{author} commented on {file}" : "{author}-მა დატოვა კომენტარი {file}-ზე",
|
||||
"<strong>Comments</strong> for files" : "<strong>კომენტარები</strong> ფაილებისთვის",
|
||||
"Files" : "ფაილები",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "თქვენ გახსენეს \"{file}\"-ის კომენტარში ანგარიშიდან, რომელიც მის შემდეგ წაიშალა",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user}-მა გახსენათ კომენტარში ფაილზე \"{file}\"",
|
||||
"Files app plugin to add comments to files" : "Files აპის დამატება ფაილებზე კომენტარების დასამატებლად",
|
||||
"Edit comment" : "კომენტარის ჩასწორება",
|
||||
"Delete comment" : "კომენტარის წაშლა",
|
||||
"Cancel edit" : "ჩასწორების გაუქმება",
|
||||
"New comment" : "ახალი კომენტარი",
|
||||
"Write a comment …" : "კომენტარის დაწერა …",
|
||||
"Post comment" : "კომენტარის დაპოსტვა",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ ხსენებისთვის, : ემოჯისთვის, / ჭკვიანი ამრჩევისთვის",
|
||||
"Could not reload comments" : "კომენტარების თავიდან ჩატვირთვა შეუძლებელია",
|
||||
"Failed to mark comments as read" : "კომენტარების წაკითხულად მონიშვნა ჩავარდა",
|
||||
"Unable to load the comments list" : "კომენტარების სიის ჩატვირთვა ჩავარდა",
|
||||
"No comments yet, start the conversation!" : "ჯერ კომენტარები არაა. დაიწყეთ საუბარი!",
|
||||
"No more messages" : "მეტი შეტყობინება აღარაა",
|
||||
"Retry" : "თავიდან ცდა",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 ახალი კომენტარი","{unread} ახალი კომენტარი"],
|
||||
"Comment" : "კომენტარი",
|
||||
"An error occurred while trying to edit the comment" : "კომენტარის ჩასწორებისას აღმოჩენილია შეცდომა",
|
||||
"Comment deleted" : "კომენტარი წაიშალა",
|
||||
"An error occurred while trying to delete the comment" : "კომენტარის წაშლისას აღმოჩენილია შეცდომა",
|
||||
"An error occurred while trying to create the comment" : "კომენტარის შექმნისას აღმოჩენილია შეცდომა",
|
||||
"Write a comment …" : "კომენტარის დაწერა …"
|
||||
},
|
||||
"nplurals=2; plural=(n!=1);");
|
||||
|
||||
+32
-27
@@ -1,30 +1,35 @@
|
||||
{ "translations": {
|
||||
"Comments" : "Comments",
|
||||
"You commented" : "You commented",
|
||||
"{author} commented" : "{author} commented",
|
||||
"You commented on %1$s" : "You commented on %1$s",
|
||||
"You commented on {file}" : "You commented on {file}",
|
||||
"%1$s commented on %2$s" : "%1$s commented on %2$s",
|
||||
"{author} commented on {file}" : "{author} commented on {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Comments</strong> for files",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} mentioned you in a comment on \"{file}\"",
|
||||
"Files app plugin to add comments to files" : "Files app plugin to add comments to files",
|
||||
"Edit comment" : "Edit comment",
|
||||
"Delete comment" : "Delete comment",
|
||||
"Cancel edit" : "Cancel edit",
|
||||
"Post comment" : "Post comment",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ for mentions, : for emoji, / for smart picker",
|
||||
"Could not reload comments" : "Could not reload comments",
|
||||
"Failed to mark comments as read" : "Failed to mark comments as read",
|
||||
"Unable to load the comments list" : "Unable to load the comments list",
|
||||
"No comments yet, start the conversation!" : "No comments yet, start the conversation!",
|
||||
"No more messages" : "No more messages",
|
||||
"Retry" : "Retry",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 new comment","{unread} new comments"],
|
||||
"Comment" : "Comment",
|
||||
"An error occurred while trying to edit the comment" : "An error occurred while trying to edit the comment",
|
||||
"Comment deleted" : "Comment deleted",
|
||||
"An error occurred while trying to delete the comment" : "An error occurred while trying to delete the comment",
|
||||
"An error occurred while trying to create the comment" : "An error occurred while trying to create the comment"
|
||||
"Comments" : "კომენტარები",
|
||||
"You commented" : "თქვენი კომენტარი",
|
||||
"{author} commented" : "{author}-ის კომენტარი",
|
||||
"You commented on %1$s" : "თქვენი კომენტარი %1$s-ზე",
|
||||
"You commented on {file}" : "თქვენი კომენტარი {file}-ზე",
|
||||
"%1$s commented on %2$s" : "%1$s-მა დატოვა კომენტარი %2$s-ზე",
|
||||
"{author} commented on {file}" : "{author}-მა დატოვა კომენტარი {file}-ზე",
|
||||
"<strong>Comments</strong> for files" : "<strong>კომენტარები</strong> ფაილებისთვის",
|
||||
"Files" : "ფაილები",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "თქვენ გახსენეს \"{file}\"-ის კომენტარში ანგარიშიდან, რომელიც მის შემდეგ წაიშალა",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user}-მა გახსენათ კომენტარში ფაილზე \"{file}\"",
|
||||
"Files app plugin to add comments to files" : "Files აპის დამატება ფაილებზე კომენტარების დასამატებლად",
|
||||
"Edit comment" : "კომენტარის ჩასწორება",
|
||||
"Delete comment" : "კომენტარის წაშლა",
|
||||
"Cancel edit" : "ჩასწორების გაუქმება",
|
||||
"New comment" : "ახალი კომენტარი",
|
||||
"Write a comment …" : "კომენტარის დაწერა …",
|
||||
"Post comment" : "კომენტარის დაპოსტვა",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ ხსენებისთვის, : ემოჯისთვის, / ჭკვიანი ამრჩევისთვის",
|
||||
"Could not reload comments" : "კომენტარების თავიდან ჩატვირთვა შეუძლებელია",
|
||||
"Failed to mark comments as read" : "კომენტარების წაკითხულად მონიშვნა ჩავარდა",
|
||||
"Unable to load the comments list" : "კომენტარების სიის ჩატვირთვა ჩავარდა",
|
||||
"No comments yet, start the conversation!" : "ჯერ კომენტარები არაა. დაიწყეთ საუბარი!",
|
||||
"No more messages" : "მეტი შეტყობინება აღარაა",
|
||||
"Retry" : "თავიდან ცდა",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 ახალი კომენტარი","{unread} ახალი კომენტარი"],
|
||||
"Comment" : "კომენტარი",
|
||||
"An error occurred while trying to edit the comment" : "კომენტარის ჩასწორებისას აღმოჩენილია შეცდომა",
|
||||
"Comment deleted" : "კომენტარი წაიშალა",
|
||||
"An error occurred while trying to delete the comment" : "კომენტარის წაშლისას აღმოჩენილია შეცდომა",
|
||||
"An error occurred while trying to create the comment" : "კომენტარის შექმნისას აღმოჩენილია შეცდომა",
|
||||
"Write a comment …" : "კომენტარის დაწერა …"
|
||||
},"pluralForm" :"nplurals=2; plural=(n!=1);"
|
||||
}
|
||||
@@ -10,20 +10,28 @@ OC.L10N.register(
|
||||
"{author} commented on {file}" : "{author} pakomentavo {file}",
|
||||
"<strong>Comments</strong> for files" : "Failų <strong>komentarai</strong>",
|
||||
"Files" : "Failai",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Buvote paminėtas „{file}“, komentare, kuris buvo parašytas iš paskyros, kuri vėliau buvo ištrinta.",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} minėjo jus \"{file}\" komentare",
|
||||
"Files app plugin to add comments to files" : "Failų programėlės įskiepis, skirtas prie failų pridėti komentarus",
|
||||
"Edit comment" : "Taisyti komentarą",
|
||||
"Delete comment" : "Ištrinti komentarą",
|
||||
"Cancel edit" : "Atsisakyti taisymo",
|
||||
"New comment" : "Naujas komentaras",
|
||||
"Write a comment …" : "Rašyti komentarą ...",
|
||||
"Post comment" : "Paskelbti komentarą",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ paminėjimams, : jaustukams, / išmaniajam rinkikliui",
|
||||
"Could not reload comments" : "Nepavyko įkelti komentarų iš naujo",
|
||||
"Failed to mark comments as read" : "Nepavyko pažymėti komentarų kaip perskaitytų",
|
||||
"Unable to load the comments list" : "Nepavyko įkelti komentarų sąrašo",
|
||||
"No comments yet, start the conversation!" : "Komentarų kol kas nėra, pradėkite pokalbį!",
|
||||
"No more messages" : "Daugiau jokių pranešimų",
|
||||
"Retry" : "Bandyti dar kartą",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 neskaitytas komentaras","{unread} neskaityti komentarai","{unread} neskaitytų komentarų","{unread} neskaitytas komentaras"],
|
||||
"Comment" : "Komentaras",
|
||||
"An error occurred while trying to edit the comment" : "Bandant taisyti komentarą, įvyko klaida",
|
||||
"Comment deleted" : "Komentaras ištrintas",
|
||||
"An error occurred while trying to delete the comment" : "Bandant ištrinti komentarą, įvyko klaida",
|
||||
"An error occurred while trying to create the comment" : "Bandant sukurti komentarą, įvyko klaida"
|
||||
"An error occurred while trying to create the comment" : "Bandant sukurti komentarą, įvyko klaida",
|
||||
"Write a comment …" : "Rašyti komentarą..."
|
||||
},
|
||||
"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);");
|
||||
|
||||
@@ -8,20 +8,28 @@
|
||||
"{author} commented on {file}" : "{author} pakomentavo {file}",
|
||||
"<strong>Comments</strong> for files" : "Failų <strong>komentarai</strong>",
|
||||
"Files" : "Failai",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Buvote paminėtas „{file}“, komentare, kuris buvo parašytas iš paskyros, kuri vėliau buvo ištrinta.",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} minėjo jus \"{file}\" komentare",
|
||||
"Files app plugin to add comments to files" : "Failų programėlės įskiepis, skirtas prie failų pridėti komentarus",
|
||||
"Edit comment" : "Taisyti komentarą",
|
||||
"Delete comment" : "Ištrinti komentarą",
|
||||
"Cancel edit" : "Atsisakyti taisymo",
|
||||
"New comment" : "Naujas komentaras",
|
||||
"Write a comment …" : "Rašyti komentarą ...",
|
||||
"Post comment" : "Paskelbti komentarą",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ paminėjimams, : jaustukams, / išmaniajam rinkikliui",
|
||||
"Could not reload comments" : "Nepavyko įkelti komentarų iš naujo",
|
||||
"Failed to mark comments as read" : "Nepavyko pažymėti komentarų kaip perskaitytų",
|
||||
"Unable to load the comments list" : "Nepavyko įkelti komentarų sąrašo",
|
||||
"No comments yet, start the conversation!" : "Komentarų kol kas nėra, pradėkite pokalbį!",
|
||||
"No more messages" : "Daugiau jokių pranešimų",
|
||||
"Retry" : "Bandyti dar kartą",
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 neskaitytas komentaras","{unread} neskaityti komentarai","{unread} neskaitytų komentarų","{unread} neskaitytas komentaras"],
|
||||
"Comment" : "Komentaras",
|
||||
"An error occurred while trying to edit the comment" : "Bandant taisyti komentarą, įvyko klaida",
|
||||
"Comment deleted" : "Komentaras ištrintas",
|
||||
"An error occurred while trying to delete the comment" : "Bandant ištrinti komentarą, įvyko klaida",
|
||||
"An error occurred while trying to create the comment" : "Bandant sukurti komentarą, įvyko klaida"
|
||||
"An error occurred while trying to create the comment" : "Bandant sukurti komentarą, įvyko klaida",
|
||||
"Write a comment …" : "Rašyti komentarą..."
|
||||
},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"
|
||||
}
|
||||
@@ -10,14 +10,14 @@ OC.L10N.register(
|
||||
"{author} commented on {file}" : "{author} reageerde op {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Reacties</strong> voor bestanden",
|
||||
"Files" : "Bestanden",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Je werd genoemd op \"{file}\", in een opmerking van een account dat intussen is verwijderd",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Je werd genoemd op \"{file}\", in een reactie van een account dat intussen is verwijderd",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} noemde jou in een reactie op \"{file}\"",
|
||||
"Files app plugin to add comments to files" : "Bestanden app plugin om reacties aan bestanden toe te voegen",
|
||||
"Edit comment" : "Reactie bewerken",
|
||||
"Delete comment" : "Reactie verwijderen",
|
||||
"Cancel edit" : "Bewerking annuleren",
|
||||
"New comment" : "Nieuwe reactie",
|
||||
"Write a comment …" : "Schrijf een commentaar …",
|
||||
"Write a comment …" : "Schrijf een reactie …",
|
||||
"Post comment" : "Reactie plaatsen",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ voor vermeldingen, : voor emoji, / voor Smart Picker",
|
||||
"Could not reload comments" : "Kon reactie niet opnieuw laden",
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
"{author} commented on {file}" : "{author} reageerde op {file}",
|
||||
"<strong>Comments</strong> for files" : "<strong>Reacties</strong> voor bestanden",
|
||||
"Files" : "Bestanden",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Je werd genoemd op \"{file}\", in een opmerking van een account dat intussen is verwijderd",
|
||||
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted" : "Je werd genoemd op \"{file}\", in een reactie van een account dat intussen is verwijderd",
|
||||
"{user} mentioned you in a comment on \"{file}\"" : "{user} noemde jou in een reactie op \"{file}\"",
|
||||
"Files app plugin to add comments to files" : "Bestanden app plugin om reacties aan bestanden toe te voegen",
|
||||
"Edit comment" : "Reactie bewerken",
|
||||
"Delete comment" : "Reactie verwijderen",
|
||||
"Cancel edit" : "Bewerking annuleren",
|
||||
"New comment" : "Nieuwe reactie",
|
||||
"Write a comment …" : "Schrijf een commentaar …",
|
||||
"Write a comment …" : "Schrijf een reactie …",
|
||||
"Post comment" : "Reactie plaatsen",
|
||||
"@ for mentions, : for emoji, / for smart picker" : "@ voor vermeldingen, : voor emoji, / voor Smart Picker",
|
||||
"Could not reload comments" : "Kon reactie niet opnieuw laden",
|
||||
|
||||
@@ -34,7 +34,8 @@ class LoadSidebarScripts implements IEventListener {
|
||||
$this->commentsManager->load();
|
||||
|
||||
$this->initialState->provideInitialState('activityEnabled', $this->appManager->isEnabledForUser('activity'));
|
||||
// Add comments sidebar tab script
|
||||
// Add comments sidebar tab script/style
|
||||
Util::addStyle(Application::APP_ID, 'comments-tab');
|
||||
Util::addScript(Application::APP_ID, 'comments-tab', 'files');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import type { IFolder, IView } from '@nextcloud/files'
|
||||
|
||||
import { File, Permission } from '@nextcloud/files'
|
||||
import { describe, expect, test, vi } from 'vitest'
|
||||
import logger from '../logger.js'
|
||||
import logger from '../logger.ts'
|
||||
import { action } from './inlineUnreadCommentsAction.ts'
|
||||
|
||||
const view = {
|
||||
|
||||
@@ -8,8 +8,8 @@ import type { IFileAction } from '@nextcloud/files'
|
||||
import CommentProcessingSvg from '@mdi/svg/svg/comment-processing.svg?raw'
|
||||
import { getSidebar } from '@nextcloud/files'
|
||||
import { n, t } from '@nextcloud/l10n'
|
||||
import logger from '../logger.js'
|
||||
import { isUsingActivityIntegration } from '../utils/activity.js'
|
||||
import logger from '../logger.ts'
|
||||
import { isUsingActivityIntegration } from '../utils/activity.ts'
|
||||
|
||||
export const action: IFileAction = {
|
||||
id: 'comments-unread',
|
||||
|
||||
@@ -4,46 +4,40 @@
|
||||
*/
|
||||
|
||||
import type { INode } from '@nextcloud/files'
|
||||
import type { App } from 'vue'
|
||||
|
||||
import moment from '@nextcloud/moment'
|
||||
import { createPinia, PiniaVuePlugin } from 'pinia'
|
||||
import Vue, { type ComponentPublicInstance } from 'vue'
|
||||
import logger from './logger.js'
|
||||
import { getComments } from './services/GetComments.js'
|
||||
|
||||
Vue.use(PiniaVuePlugin)
|
||||
|
||||
let ActivityTabPluginView
|
||||
let ActivityTabPluginInstance
|
||||
import { createPinia } from 'pinia'
|
||||
import { createApp } from 'vue'
|
||||
import logger from './logger.ts'
|
||||
import { getComments } from './services/GetComments.ts'
|
||||
|
||||
/**
|
||||
* Register the comments plugins for the Activity sidebar
|
||||
*/
|
||||
export function registerCommentsPlugins() {
|
||||
let app: App
|
||||
|
||||
window.OCA.Activity.registerSidebarAction({
|
||||
mount: async (el: HTMLElement, { node, reload }: { node: INode, reload: () => void }) => {
|
||||
const pinia = createPinia()
|
||||
|
||||
if (!ActivityTabPluginView) {
|
||||
if (!app) {
|
||||
const { default: ActivityCommentAction } = await import('./views/ActivityCommentAction.vue')
|
||||
// @ts-expect-error Types are broken for Vue2
|
||||
ActivityTabPluginView = Vue.extend(ActivityCommentAction)
|
||||
app = createApp(
|
||||
ActivityCommentAction,
|
||||
{
|
||||
reloadCallback: reload,
|
||||
resourceId: node.fileid,
|
||||
},
|
||||
)
|
||||
}
|
||||
ActivityTabPluginInstance = new ActivityTabPluginView({
|
||||
el,
|
||||
pinia,
|
||||
propsData: {
|
||||
reloadCallback: reload,
|
||||
resourceId: node.fileid,
|
||||
},
|
||||
})
|
||||
app.use(pinia)
|
||||
app.mount(el)
|
||||
logger.info('Comments plugin mounted in Activity sidebar action', { node })
|
||||
},
|
||||
unmount: () => {
|
||||
// destroy previous instance if available
|
||||
if (ActivityTabPluginInstance) {
|
||||
ActivityTabPluginInstance.$destroy()
|
||||
}
|
||||
app?.unmount()
|
||||
},
|
||||
})
|
||||
|
||||
@@ -57,26 +51,26 @@ export function registerCommentsPlugins() {
|
||||
)
|
||||
logger.debug('Loaded comments', { node, comments })
|
||||
const { default: CommentView } = await import('./views/ActivityCommentEntry.vue')
|
||||
// @ts-expect-error Types are broken for Vue2
|
||||
const CommentsViewObject = Vue.extend(CommentView)
|
||||
|
||||
return comments.map((comment) => ({
|
||||
_CommentsViewInstance: undefined as ComponentPublicInstance | undefined,
|
||||
_CommentsViewInstance: undefined as App | undefined,
|
||||
|
||||
timestamp: moment(comment.props?.creationDateTime).toDate().getTime(),
|
||||
timestamp: Date.parse(comment.props?.creationDateTime as string | undefined ?? ''),
|
||||
|
||||
mount(element: HTMLElement, { reload }) {
|
||||
this._CommentsViewInstance = new CommentsViewObject({
|
||||
el: element,
|
||||
propsData: {
|
||||
const app = createApp(
|
||||
CommentView,
|
||||
{
|
||||
comment,
|
||||
resourceId: node.fileid,
|
||||
reloadCallback: reload,
|
||||
},
|
||||
})
|
||||
)
|
||||
app.mount(element)
|
||||
this._CommentsViewInstance = app
|
||||
},
|
||||
unmount() {
|
||||
this._CommentsViewInstance?.$destroy()
|
||||
this._CommentsViewInstance?.unmount()
|
||||
},
|
||||
}))
|
||||
})
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import logger from './logger.js'
|
||||
import CommentsInstance from './services/CommentsInstance.js'
|
||||
import logger from './logger.ts'
|
||||
import CommentsInstance from './services/CommentsInstance.ts'
|
||||
|
||||
// Init Comments
|
||||
if (window.OCA && !window.OCA.Comments) {
|
||||
@@ -13,7 +13,7 @@
|
||||
<!-- Author -->
|
||||
<NcAvatar
|
||||
class="comment__avatar"
|
||||
:display-name="actorDisplayName"
|
||||
:displayName="actorDisplayName"
|
||||
:user="actorId"
|
||||
:size="32" />
|
||||
</div>
|
||||
@@ -26,7 +26,7 @@
|
||||
<NcActions v-if="isOwnComment && id && !loading" class="comment__actions">
|
||||
<template v-if="!editing">
|
||||
<NcActionButton
|
||||
close-after-click
|
||||
closeAfterClick
|
||||
@click="onEdit">
|
||||
<template #icon>
|
||||
<IconPencilOutline :size="20" />
|
||||
@@ -35,7 +35,7 @@
|
||||
</NcActionButton>
|
||||
<NcActionSeparator />
|
||||
<NcActionButton
|
||||
close-after-click
|
||||
closeAfterClick
|
||||
@click="onDeleteWithUndo">
|
||||
<template #icon>
|
||||
<IconTrashCanOutline :size="20" />
|
||||
@@ -60,7 +60,7 @@
|
||||
v-else-if="creationDateTime"
|
||||
class="comment__timestamp"
|
||||
:timestamp="timestamp"
|
||||
:ignore-seconds="true" />
|
||||
:ignoreSeconds="true" />
|
||||
</div>
|
||||
|
||||
<!-- Message editor -->
|
||||
@@ -68,14 +68,14 @@
|
||||
<div class="comment__editor-group">
|
||||
<NcRichContenteditable
|
||||
ref="editor"
|
||||
:auto-complete="autoComplete"
|
||||
v-model="localMessage"
|
||||
:autoComplete
|
||||
:contenteditable="!loading"
|
||||
:label="editor ? t('comments', 'New comment') : t('comments', 'Edit comment')"
|
||||
:placeholder="t('comments', 'Write a comment …')"
|
||||
:model-value="localMessage"
|
||||
:user-data="userData"
|
||||
:userData
|
||||
aria-describedby="tab-comments__editor-description"
|
||||
@update:value="updateLocalMessage"
|
||||
@update:modelValue="submitted = false"
|
||||
@submit="onSubmit" />
|
||||
<div class="comment__submit">
|
||||
<NcButton
|
||||
@@ -103,8 +103,8 @@
|
||||
:class="{ 'comment__message--expanded': expanded }"
|
||||
:text="richContent.message"
|
||||
:arguments="richContent.mentions"
|
||||
use-markdown
|
||||
@click.native="onExpand" />
|
||||
useMarkdown
|
||||
@click="onExpand" />
|
||||
</div>
|
||||
</component>
|
||||
</template>
|
||||
@@ -113,6 +113,7 @@
|
||||
import { getCurrentUser } from '@nextcloud/auth'
|
||||
import { translate as t } from '@nextcloud/l10n'
|
||||
import { mapStores } from 'pinia'
|
||||
import { defineAsyncComponent } from 'vue'
|
||||
import NcActionButton from '@nextcloud/vue/components/NcActionButton'
|
||||
import NcActions from '@nextcloud/vue/components/NcActions'
|
||||
import NcActionSeparator from '@nextcloud/vue/components/NcActionSeparator'
|
||||
@@ -125,12 +126,12 @@ import IconArrowRight from 'vue-material-design-icons/ArrowRight.vue'
|
||||
import IconClose from 'vue-material-design-icons/Close.vue'
|
||||
import IconPencilOutline from 'vue-material-design-icons/PencilOutline.vue'
|
||||
import IconTrashCanOutline from 'vue-material-design-icons/TrashCanOutline.vue'
|
||||
import CommentMixin from '../mixins/CommentMixin.js'
|
||||
import { useDeletedCommentLimbo } from '../store/deletedCommentLimbo.js'
|
||||
import CommentMixin from '../mixins/CommentMixin.ts'
|
||||
import { useDeletedCommentLimbo } from '../store/deletedCommentLimbo.ts'
|
||||
|
||||
// Dynamic loading
|
||||
const NcRichContenteditable = () => import('@nextcloud/vue/components/NcRichContenteditable')
|
||||
const NcRichText = () => import('@nextcloud/vue/components/NcRichText')
|
||||
const NcRichContenteditable = defineAsyncComponent(() => import('@nextcloud/vue/components/NcRichContenteditable'))
|
||||
const NcRichText = defineAsyncComponent(() => import('@nextcloud/vue/components/NcRichText'))
|
||||
|
||||
export default {
|
||||
/* eslint vue/multi-word-component-names: "warn" */
|
||||
|
||||
@@ -4,17 +4,13 @@
|
||||
*/
|
||||
|
||||
import MessageReplyText from '@mdi/svg/svg/message-reply-text.svg?raw'
|
||||
import { getCSPNonce } from '@nextcloud/auth'
|
||||
import { registerSidebarTab } from '@nextcloud/files'
|
||||
import { t } from '@nextcloud/l10n'
|
||||
import wrap from '@vue/web-component-wrapper'
|
||||
import { createPinia, PiniaVuePlugin } from 'pinia'
|
||||
import Vue from 'vue'
|
||||
import { createPinia } from 'pinia'
|
||||
import { defineCustomElement } from 'vue'
|
||||
import { registerCommentsPlugins } from './comments-activity-tab.ts'
|
||||
import { isUsingActivityIntegration } from './utils/activity.ts'
|
||||
|
||||
__webpack_nonce__ = getCSPNonce()
|
||||
|
||||
const tagName = 'comments_files-sidebar-tab'
|
||||
|
||||
if (isUsingActivityIntegration()) {
|
||||
@@ -32,17 +28,15 @@ if (isUsingActivityIntegration()) {
|
||||
async onInit() {
|
||||
const { default: FilesSidebarTab } = await import('./views/FilesSidebarTab.vue')
|
||||
|
||||
Vue.use(PiniaVuePlugin)
|
||||
Vue.mixin({ pinia: createPinia() })
|
||||
const webComponent = wrap(Vue, FilesSidebarTab)
|
||||
// In Vue 2, wrap doesn't support disabling shadow. Disable with a hack
|
||||
Object.defineProperty(webComponent.prototype, 'attachShadow', {
|
||||
value() { return this },
|
||||
const FilesSidebarTabElement = defineCustomElement(FilesSidebarTab, {
|
||||
configureApp(app) {
|
||||
const pinia = createPinia()
|
||||
app.use(pinia)
|
||||
},
|
||||
shadowRoot: false,
|
||||
})
|
||||
Object.defineProperty(webComponent.prototype, 'shadowRoot', {
|
||||
get() { return this },
|
||||
})
|
||||
window.customElements.define(tagName, webComponent)
|
||||
|
||||
window.customElements.define(tagName, FilesSidebarTabElement)
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
|
||||
import { showError, showUndo, TOAST_UNDO_TIMEOUT } from '@nextcloud/dialogs'
|
||||
import { mapStores } from 'pinia'
|
||||
import logger from '../logger.js'
|
||||
import DeleteComment from '../services/DeleteComment.js'
|
||||
import EditComment from '../services/EditComment.js'
|
||||
import NewComment from '../services/NewComment.js'
|
||||
import { useDeletedCommentLimbo } from '../store/deletedCommentLimbo.js'
|
||||
import logger from '../logger.ts'
|
||||
import DeleteComment from '../services/DeleteComment.ts'
|
||||
import EditComment from '../services/EditComment.ts'
|
||||
import NewComment from '../services/NewComment.ts'
|
||||
import { useDeletedCommentLimbo } from '../store/deletedCommentLimbo.ts'
|
||||
|
||||
export default {
|
||||
props: {
|
||||
@@ -1,53 +0,0 @@
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import { getCSPNonce } from '@nextcloud/auth'
|
||||
import { n, t } from '@nextcloud/l10n'
|
||||
import { createPinia, PiniaVuePlugin } from 'pinia'
|
||||
import Vue from 'vue'
|
||||
import CommentsApp from '../views/Comments.vue'
|
||||
import logger from '../logger.js'
|
||||
|
||||
Vue.use(PiniaVuePlugin)
|
||||
|
||||
__webpack_nonce__ = getCSPNonce()
|
||||
|
||||
// Add translates functions
|
||||
Vue.mixin({
|
||||
data() {
|
||||
return {
|
||||
logger,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
t,
|
||||
n,
|
||||
},
|
||||
})
|
||||
|
||||
export default class CommentInstance {
|
||||
/**
|
||||
* Initialize a new Comments instance for the desired type
|
||||
*
|
||||
* @param {string} resourceType the comments endpoint type
|
||||
* @param {object} options the vue options (propsData, parent, el...)
|
||||
*/
|
||||
constructor(resourceType = 'files', options = {}) {
|
||||
const pinia = createPinia()
|
||||
|
||||
// Merge options and set `resourceType` property
|
||||
options = {
|
||||
...options,
|
||||
propsData: {
|
||||
...(options.propsData ?? {}),
|
||||
resourceType,
|
||||
},
|
||||
pinia,
|
||||
}
|
||||
// Init Comments component
|
||||
const View = Vue.extend(CommentsApp)
|
||||
return new View(options)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
/*!
|
||||
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import type { App, ComponentPublicInstance } from 'vue'
|
||||
|
||||
import { n, t } from '@nextcloud/l10n'
|
||||
import { createPinia } from 'pinia'
|
||||
import { createApp } from 'vue'
|
||||
import CommentsApp from '../views/CommentsApp.vue'
|
||||
import logger from '../logger.ts'
|
||||
|
||||
export interface CommentsInstanceOptions {
|
||||
el?: HTMLElement
|
||||
|
||||
props?: Record<string, unknown>
|
||||
|
||||
/** @deprecated use `props` instead */
|
||||
propsData?: Record<string, unknown>
|
||||
}
|
||||
|
||||
export default class CommentInstance {
|
||||
private app: App
|
||||
private instance: ComponentPublicInstance<typeof CommentsApp> | undefined
|
||||
|
||||
/**
|
||||
* Initialize a new Comments instance for the desired type
|
||||
*
|
||||
* @param resourceType - The comments endpoint type
|
||||
* @param options - The vue options (props, parent, el...)
|
||||
*/
|
||||
constructor(resourceType = 'files', options: CommentsInstanceOptions = {}) {
|
||||
const pinia = createPinia()
|
||||
|
||||
this.app = createApp(
|
||||
CommentsApp,
|
||||
{
|
||||
...(options.propsData ?? {}),
|
||||
...(options.props ?? {}),
|
||||
resourceType,
|
||||
},
|
||||
)
|
||||
|
||||
// Add translates functions
|
||||
this.app.mixin({
|
||||
data() {
|
||||
return {
|
||||
logger,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
t,
|
||||
n,
|
||||
},
|
||||
})
|
||||
|
||||
this.app.use(pinia)
|
||||
if (options.el) {
|
||||
this.instance = this.app.mount(options.el)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Mount the Comments instance to a new element.
|
||||
*
|
||||
* @param el - The element to mount the instance on
|
||||
*/
|
||||
$mount(el: HTMLElement | string) {
|
||||
if (this.instance) {
|
||||
this.app.unmount()
|
||||
}
|
||||
this.instance = this.app.mount(el)
|
||||
}
|
||||
|
||||
/**
|
||||
* Unmount the Comments instance from the DOM and destroy it.
|
||||
*/
|
||||
$unmount() {
|
||||
this.app.unmount()
|
||||
this.instance = undefined
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the current resource id.
|
||||
*
|
||||
* @param id - The new resource id to load the comments for
|
||||
*/
|
||||
update(id: string | number) {
|
||||
if (this.instance) {
|
||||
this.instance.update(id)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
import { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'
|
||||
import { createClient } from 'webdav'
|
||||
import { getRootPath } from '../utils/davUtils.js'
|
||||
import { getRootPath } from '../utils/davUtils.ts'
|
||||
|
||||
// init webdav client
|
||||
const client = createClient(getRootPath())
|
||||
+5
-5
@@ -3,16 +3,16 @@
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import client from './DavClient.js'
|
||||
import client from './DavClient.ts'
|
||||
|
||||
/**
|
||||
* Delete a comment
|
||||
*
|
||||
* @param {string} resourceType the resource type
|
||||
* @param {number} resourceId the resource ID
|
||||
* @param {number} commentId the comment iD
|
||||
* @param resourceType the resource type
|
||||
* @param resourceId the resource ID
|
||||
* @param commentId the comment iD
|
||||
*/
|
||||
export default async function(resourceType, resourceId, commentId) {
|
||||
export default async function(resourceType: string, resourceId: number, commentId: number) {
|
||||
const commentPath = ['', resourceType, resourceId, commentId].join('/')
|
||||
|
||||
// Fetch newly created comment data
|
||||
+6
-6
@@ -3,17 +3,17 @@
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
|
||||
import client from './DavClient.js'
|
||||
import client from './DavClient.ts'
|
||||
|
||||
/**
|
||||
* Edit an existing comment
|
||||
*
|
||||
* @param {string} resourceType the resource type
|
||||
* @param {number} resourceId the resource ID
|
||||
* @param {number} commentId the comment iD
|
||||
* @param {string} message the message content
|
||||
* @param resourceType the resource type
|
||||
* @param resourceId the resource ID
|
||||
* @param commentId the comment iD
|
||||
* @param message the message content
|
||||
*/
|
||||
export default async function(resourceType, resourceId, commentId, message) {
|
||||
export default async function(resourceType: string, resourceId: number, commentId: number, message: string) {
|
||||
const commentPath = ['', resourceType, resourceId, commentId].join('/')
|
||||
|
||||
return await client.customRequest(commentPath, {
|
||||
@@ -8,7 +8,7 @@ import type { DAVResult, FileStat, ResponseDataDetailed } from 'webdav'
|
||||
import { parseXML } from 'webdav'
|
||||
import { processResponsePayload } from 'webdav/dist/node/response.js'
|
||||
import { prepareFileFromProps } from 'webdav/dist/node/tools/dav.js'
|
||||
import client from './DavClient.js'
|
||||
import client from './DavClient.ts'
|
||||
|
||||
export const DEFAULT_LIMIT = 20
|
||||
|
||||
|
||||
+10
-10
@@ -5,24 +5,24 @@
|
||||
|
||||
import { getCurrentUser } from '@nextcloud/auth'
|
||||
import axios from '@nextcloud/axios'
|
||||
import { getRootPath } from '../utils/davUtils.js'
|
||||
import { decodeHtmlEntities } from '../utils/decodeHtmlEntities.js'
|
||||
import client from './DavClient.js'
|
||||
import { getRootPath } from '../utils/davUtils.ts'
|
||||
import { decodeHtmlEntities } from '../utils/decodeHtmlEntities.ts'
|
||||
import client from './DavClient.ts'
|
||||
|
||||
/**
|
||||
* Retrieve the comments list
|
||||
*
|
||||
* @param {string} resourceType the resource type
|
||||
* @param {number} resourceId the resource ID
|
||||
* @param {string} message the message
|
||||
* @return {object} the new comment
|
||||
* @param resourceType the resource type
|
||||
* @param resourceId the resource ID
|
||||
* @param message the message
|
||||
* @return The new comment
|
||||
*/
|
||||
export default async function(resourceType, resourceId, message) {
|
||||
export default async function(resourceType: string, resourceId: number, message: string) {
|
||||
const resourcePath = ['', resourceType, resourceId].join('/')
|
||||
|
||||
const response = await axios.post(getRootPath() + resourcePath, {
|
||||
actorDisplayName: getCurrentUser().displayName,
|
||||
actorId: getCurrentUser().uid,
|
||||
actorDisplayName: getCurrentUser()!.displayName,
|
||||
actorId: getCurrentUser()!.uid,
|
||||
actorType: 'users',
|
||||
creationDateTime: (new Date()).toUTCString(),
|
||||
message,
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
import type { Response } from 'webdav'
|
||||
|
||||
import client from './DavClient.js'
|
||||
import client from './DavClient.ts'
|
||||
|
||||
/**
|
||||
* Mark comments older than the date timestamp as read
|
||||
|
||||
+6
-6
@@ -6,20 +6,20 @@
|
||||
/**
|
||||
* Creates a cancelable axios 'request object'.
|
||||
*
|
||||
* @param {Function} request the axios promise request
|
||||
* @return {object}
|
||||
* @param request the axios promise request
|
||||
* @return
|
||||
*/
|
||||
function cancelableRequest(request) {
|
||||
function cancelableRequest(request: (url: string, options?: Record<string, unknown>) => Promise<unknown>) {
|
||||
const controller = new AbortController()
|
||||
const signal = controller.signal
|
||||
|
||||
/**
|
||||
* Execute the request
|
||||
*
|
||||
* @param {string} url the url to send the request to
|
||||
* @param {object} [options] optional config for the request
|
||||
* @param url the url to send the request to
|
||||
* @param [options] optional config for the request
|
||||
*/
|
||||
const fetch = async function(url, options) {
|
||||
const fetch = async function(url: string, options?: Record<string, unknown>) {
|
||||
const response = await request(
|
||||
url,
|
||||
{ signal, ...options },
|
||||
+3
-3
@@ -4,10 +4,10 @@
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param {any} value -
|
||||
* @param {any} passes -
|
||||
* @param value - the string to decode
|
||||
* @param passes - the number of times to decode the string, default is 1
|
||||
*/
|
||||
export function decodeHtmlEntities(value, passes = 1) {
|
||||
export function decodeHtmlEntities(value: string, passes = 1) {
|
||||
const parser = new DOMParser()
|
||||
let decoded = value
|
||||
for (let i = 0; i < passes; i++) {
|
||||
@@ -6,11 +6,11 @@
|
||||
<template>
|
||||
<Comment
|
||||
v-bind="editorData"
|
||||
:auto-complete="autoComplete"
|
||||
:resource-type="resourceType"
|
||||
:autoComplete="autoComplete"
|
||||
:resourceType="resourceType"
|
||||
:editor="true"
|
||||
:user-data="userData"
|
||||
:resource-id="resourceId"
|
||||
:userData="userData"
|
||||
:resourceId="resourceId"
|
||||
class="comments-action"
|
||||
@new="onNewComment" />
|
||||
</template>
|
||||
@@ -20,8 +20,8 @@ import { showError } from '@nextcloud/dialogs'
|
||||
import { t } from '@nextcloud/l10n'
|
||||
import { defineComponent } from 'vue'
|
||||
import Comment from '../components/Comment.vue'
|
||||
import logger from '../logger.js'
|
||||
import CommentView from '../mixins/CommentView.js'
|
||||
import logger from '../logger.ts'
|
||||
import CommentView from '../mixins/CommentView.ts'
|
||||
|
||||
export default defineComponent({
|
||||
components: {
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
ref="comment"
|
||||
tag="li"
|
||||
v-bind="comment.props"
|
||||
:auto-complete="autoComplete"
|
||||
:resource-type="resourceType"
|
||||
:autoComplete="autoComplete"
|
||||
:resourceType="resourceType"
|
||||
:message="commentMessage"
|
||||
:resource-id="resourceId"
|
||||
:user-data="genMentionsData(comment.props.mentions)"
|
||||
:resourceId="resourceId"
|
||||
:userData="genMentionsData(comment.props.mentions)"
|
||||
class="comments-activity"
|
||||
@delete="reloadCallback()" />
|
||||
</template>
|
||||
|
||||
@@ -11,11 +11,11 @@
|
||||
<!-- Editor -->
|
||||
<Comment
|
||||
v-bind="editorData"
|
||||
:auto-complete="autoComplete"
|
||||
:resource-type="resourceType"
|
||||
:editor="true"
|
||||
:user-data="userData"
|
||||
:resource-id="currentResourceId"
|
||||
editor
|
||||
:autoComplete
|
||||
:resourceType
|
||||
:userData
|
||||
:resourceId="currentResourceId"
|
||||
class="comments__writer"
|
||||
@new="onNewComment" />
|
||||
|
||||
@@ -33,13 +33,13 @@
|
||||
<Comment
|
||||
v-for="comment in comments"
|
||||
:key="comment.props.id"
|
||||
v-model="comment.props.message"
|
||||
tag="li"
|
||||
v-bind="comment.props"
|
||||
:auto-complete="autoComplete"
|
||||
:resource-type="resourceType"
|
||||
:message.sync="comment.props.message"
|
||||
:resource-id="currentResourceId"
|
||||
:user-data="genMentionsData(comment.props.mentions)"
|
||||
:autoComplete
|
||||
:resourceType
|
||||
:resourceId="currentResourceId"
|
||||
:userData="genMentionsData(comment.props.mentions)"
|
||||
class="comments__list"
|
||||
@delete="onDelete" />
|
||||
</ul>
|
||||
@@ -79,15 +79,14 @@ import IconAlertCircleOutline from 'vue-material-design-icons/AlertCircleOutline
|
||||
import IconMessageReplyTextOutline from 'vue-material-design-icons/MessageReplyTextOutline.vue'
|
||||
import IconRefresh from 'vue-material-design-icons/Refresh.vue'
|
||||
import Comment from '../components/Comment.vue'
|
||||
import logger from '../logger.js'
|
||||
import logger from '../logger.ts'
|
||||
import CommentView from '../mixins/CommentView.ts'
|
||||
import { DEFAULT_LIMIT, getComments } from '../services/GetComments.ts'
|
||||
import { markCommentsAsRead } from '../services/ReadComments.ts'
|
||||
import cancelableRequest from '../utils/cancelableRequest.js'
|
||||
import cancelableRequest from '../utils/cancelableRequest.ts'
|
||||
|
||||
export default {
|
||||
/* eslint vue/multi-word-component-names: "warn" */
|
||||
name: 'Comments',
|
||||
name: 'CommentsApp',
|
||||
|
||||
components: {
|
||||
Comment,
|
||||
@@ -104,6 +103,8 @@ export default {
|
||||
|
||||
mixins: [CommentView],
|
||||
|
||||
expose: ['update'],
|
||||
|
||||
data() {
|
||||
return {
|
||||
error: '',
|
||||
@@ -7,7 +7,7 @@
|
||||
import type { IFolder, INode, IView } from '@nextcloud/files'
|
||||
|
||||
import { computed } from 'vue'
|
||||
import Comments from './Comments.vue'
|
||||
import CommentsApp from './CommentsApp.vue'
|
||||
|
||||
const props = defineProps<{
|
||||
node?: INode
|
||||
@@ -24,9 +24,9 @@ const resourceId = computed(() => props.node?.fileid)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Comments
|
||||
<CommentsApp
|
||||
v-if="resourceId !== undefined"
|
||||
:key="resourceId"
|
||||
:resource-id="resourceId"
|
||||
resource-type="files" />
|
||||
:resourceId="resourceId"
|
||||
resourceType="files" />
|
||||
</template>
|
||||
|
||||
@@ -2,6 +2,8 @@ OC.L10N.register(
|
||||
"contactsinteraction",
|
||||
{
|
||||
"Recently contacted" : "Paskiausiai susisiekta",
|
||||
"Contacts Interaction" : "Sąveika su adresatais"
|
||||
"Contacts Interaction" : "Sąveika su adresatais",
|
||||
"Manages interaction between accounts and contacts" : "Tvarko sąveiką tarp paskyrų ir kontaktų",
|
||||
"Collect data about accounts and contacts interactions and provide an address book for the data" : "Rinkti duomenis apie klientų ir kontaktų sąveiką ir pateikti adresų knygą duomenims"
|
||||
},
|
||||
"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);");
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
{ "translations": {
|
||||
"Recently contacted" : "Paskiausiai susisiekta",
|
||||
"Contacts Interaction" : "Sąveika su adresatais"
|
||||
"Contacts Interaction" : "Sąveika su adresatais",
|
||||
"Manages interaction between accounts and contacts" : "Tvarko sąveiką tarp paskyrų ir kontaktų",
|
||||
"Collect data about accounts and contacts interactions and provide an address book for the data" : "Rinkti duomenis apie klientų ir kontaktų sąveiką ir pateikti adresų knygą duomenims"
|
||||
},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"
|
||||
}
|
||||
@@ -3,6 +3,7 @@ OC.L10N.register(
|
||||
{
|
||||
"Dashboard" : "Skydelis",
|
||||
"Dashboard app" : "Skydelio programėlė",
|
||||
"Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! People can add the widgets they like and change the background to their liking." : "Pradėkite dieną informuotai\n\n„Nextcloud“ ataskaitų sritis yra jūsų dienos atspirties taškas, kuriame pateikiama artėjančių susitikimų, skubių el. laiškų, pokalbių žinučių, gaunamų bilietų, naujausių tviterio žinučių ir daug daugiau apžvalga! Žmonės gali pridėti norimus valdiklius ir pakeisti foną pagal savo skonį.",
|
||||
"Weather" : "Orai",
|
||||
"Status" : "Būsena",
|
||||
"Good morning" : "Labas rytas",
|
||||
@@ -19,6 +20,7 @@ OC.L10N.register(
|
||||
"Edit widgets" : "Taisyti valdiklius",
|
||||
"Get more widgets from the App Store" : "Parsisiųsti įskiepių iš App Store",
|
||||
"Weather service" : "Orų tarnyba",
|
||||
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Dėl jūsų privatumo, {productName} serveris jūsų vardu užklausė orų duomenis, todėl orų tarnyba negauna jokios asmeninės informacijos.",
|
||||
"Weather data from Met.no" : "Orų duomenys iš Met.no",
|
||||
"geocoding with Nominatim" : "geografinis kodavimas naudojant Nominatim",
|
||||
"elevation data from OpenTopoData" : "aukščio duomenys iš OpenTopoData"
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{ "translations": {
|
||||
"Dashboard" : "Skydelis",
|
||||
"Dashboard app" : "Skydelio programėlė",
|
||||
"Start your day informed\n\nThe Nextcloud Dashboard is your starting point of the day, giving you an overview of your upcoming appointments, urgent emails, chat messages, incoming tickets, latest tweets and much more! People can add the widgets they like and change the background to their liking." : "Pradėkite dieną informuotai\n\n„Nextcloud“ ataskaitų sritis yra jūsų dienos atspirties taškas, kuriame pateikiama artėjančių susitikimų, skubių el. laiškų, pokalbių žinučių, gaunamų bilietų, naujausių tviterio žinučių ir daug daugiau apžvalga! Žmonės gali pridėti norimus valdiklius ir pakeisti foną pagal savo skonį.",
|
||||
"Weather" : "Orai",
|
||||
"Status" : "Būsena",
|
||||
"Good morning" : "Labas rytas",
|
||||
@@ -17,6 +18,7 @@
|
||||
"Edit widgets" : "Taisyti valdiklius",
|
||||
"Get more widgets from the App Store" : "Parsisiųsti įskiepių iš App Store",
|
||||
"Weather service" : "Orų tarnyba",
|
||||
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Dėl jūsų privatumo, {productName} serveris jūsų vardu užklausė orų duomenis, todėl orų tarnyba negauna jokios asmeninės informacijos.",
|
||||
"Weather data from Met.no" : "Orų duomenys iš Met.no",
|
||||
"geocoding with Nominatim" : "geografinis kodavimas naudojant Nominatim",
|
||||
"elevation data from OpenTopoData" : "aukščio duomenys iš OpenTopoData"
|
||||
|
||||
@@ -19,7 +19,7 @@ OC.L10N.register(
|
||||
"Customize" : "Aanpassen",
|
||||
"Edit widgets" : "Widgets bewerken",
|
||||
"Get more widgets from the App Store" : "Haal meer widgets op uit de App Store",
|
||||
"Weather service" : "Weerberichten",
|
||||
"Weather service" : "Weer dienst",
|
||||
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Voor je privacy worden de weergegevens namens jou opgevraagd door je {productName} server, zodat de weer dienst geen persoonlijke informatie ontvangt.",
|
||||
"Weather data from Met.no" : "Weerbericht via Met.no",
|
||||
"geocoding with Nominatim" : "geocoding met Nominatim",
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"Customize" : "Aanpassen",
|
||||
"Edit widgets" : "Widgets bewerken",
|
||||
"Get more widgets from the App Store" : "Haal meer widgets op uit de App Store",
|
||||
"Weather service" : "Weerberichten",
|
||||
"Weather service" : "Weer dienst",
|
||||
"For your privacy, the weather data is requested by your {productName} server on your behalf so the weather service receives no personal information." : "Voor je privacy worden de weergegevens namens jou opgevraagd door je {productName} server, zodat de weer dienst geen persoonlijke informatie ontvangt.",
|
||||
"Weather data from Met.no" : "Weerbericht via Met.no",
|
||||
"geocoding with Nominatim" : "geocoding met Nominatim",
|
||||
|
||||
@@ -202,6 +202,7 @@ class DashboardApiController extends OCSController {
|
||||
#[NoAdminRequired]
|
||||
#[ApiRoute(verb: 'POST', url: '/api/v3/layout')]
|
||||
public function updateLayout(array $layout): DataResponse {
|
||||
$layout = $this->service->sanitizeLayout($layout);
|
||||
$this->userConfig->setValueString($this->userId, 'dashboard', 'layout', implode(',', $layout));
|
||||
return new DataResponse(['layout' => $layout]);
|
||||
}
|
||||
|
||||
@@ -31,12 +31,30 @@ class DashboardService {
|
||||
*/
|
||||
public function getLayout(): array {
|
||||
$systemDefault = $this->appConfig->getAppValueString('layout', 'recommendations,spreed,mail,calendar');
|
||||
return array_values(array_filter(
|
||||
return $this->sanitizeLayout(
|
||||
explode(',', $this->userConfig->getValueString($this->userId, 'dashboard', 'layout', $systemDefault)),
|
||||
fn (string $value) => $value !== '')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param list<string> $layout
|
||||
* @return list<string>
|
||||
*/
|
||||
public function sanitizeLayout(array $layout): array {
|
||||
$seen = [];
|
||||
$result = [];
|
||||
foreach ($layout as $value) {
|
||||
if ($value === '' || isset($seen[$value])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$seen[$value] = true;
|
||||
$result[] = $value;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return list<string>
|
||||
*/
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<template>
|
||||
<main id="app-dashboard">
|
||||
<h2>{{ greeting.text }}</h2>
|
||||
<ul class="statuses">
|
||||
<ul v-if="sortedRegisteredStatus.length > 0" class="statuses">
|
||||
<li
|
||||
v-for="status in sortedRegisteredStatus"
|
||||
:id="'status-' + status"
|
||||
|
||||
@@ -44,6 +44,25 @@ class DashboardServiceTest extends TestCase {
|
||||
);
|
||||
}
|
||||
|
||||
public function testGetLayoutRemovesEmptyAndDuplicateEntries(): void {
|
||||
$this->appConfig->method('getAppValueString')
|
||||
->with('layout', 'recommendations,spreed,mail,calendar')
|
||||
->willReturn('recommendations,spreed,mail,calendar');
|
||||
$this->userConfig->method('getValueString')
|
||||
->with('alice', 'dashboard', 'layout', 'recommendations,spreed,mail,calendar')
|
||||
->willReturn('spreed,,mail,mail,calendar,spreed');
|
||||
|
||||
$layout = $this->service->getLayout();
|
||||
|
||||
$this->assertSame(['spreed', 'mail', 'calendar'], $layout);
|
||||
}
|
||||
|
||||
public function testSanitizeLayoutRemovesEmptyAndDuplicateEntries(): void {
|
||||
$layout = $this->service->sanitizeLayout(['files', 'calendar', 'files', '', 'mail', 'calendar']);
|
||||
|
||||
$this->assertSame(['files', 'calendar', 'mail'], $layout);
|
||||
}
|
||||
|
||||
public function testGetBirthdate(): void {
|
||||
$user = $this->createMock(IUser::class);
|
||||
$this->userManager->method('get')
|
||||
|
||||
@@ -204,6 +204,8 @@ OC.L10N.register(
|
||||
"Could not rename part file to final file, canceled by hook" : "Ezin izan da zati-fitxategiaren izena aldatu azken fitxategira, kakoak bertan behera utzi du",
|
||||
"Could not rename part file to final file" : "Ezin izan da zati-fitxategia azken fitxategira aldatu",
|
||||
"Failed to check file size: %1$s" : "Ezin izan da egiaztatu fitxategiaren tamaina:%1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "Ezin da fitxategi hau ireki: %1$s (%2$d), fitxategia badagoela dirudi",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Ezin da fitxategi hau ireki: %1$s (%2$d), fitxategia ez dagoela dirudi",
|
||||
"Encryption not ready: %1$s" : "Enkriptatzea ez dago prest:%1$s",
|
||||
"Failed to open file: %1$s" : "Ezin izan da fitxategia ireki:%1$s",
|
||||
"Failed to unlink: %1$s" : "Ezin izan da deskonektatu:%1$s",
|
||||
@@ -220,6 +222,7 @@ OC.L10N.register(
|
||||
"Completed on %s" : "%s-an osatua",
|
||||
"Due on %s by %s" : "%s-(e)an epemuga %s-(e)k",
|
||||
"Due on %s" : "%s-(e)an epemuga",
|
||||
"This is an example contact" : "Hau kontaktu adibide bat da",
|
||||
"Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Ongi etorri Nextcloud Egutegira!\n\nHau gertaera erakusgarria da - aztertu plangintzaren malgutasuna Nextcloud Egutegiarekin nahi dituzun edizioak eginez!\n\nNextcloud Egutegia aukerarekin, hau egin dezakezu:\n- Sortu, editatu eta kudeatu gertaerak esfortzurik gabe.\n- Egutegi ugari sortu eta taldekideekin, lagunekin edo familiarekin partekatu.\n- Egiaztatu libre egotea eta bistaratu zure laneko orduak beste batzuei.\n- Aplikazio eta gailuekin arazorik gabe integratzea CalDAV bidez.\n- Zure esperientzia pertsonalizatu: gertaera errepikariak programatu, jakinarazpenak doitu eta bestelako ezarpenak.",
|
||||
"Example event - open me!" : "Gertaera adibidea - ireki nazazu!",
|
||||
"System Address Book" : "Sistemaren helbide-liburua",
|
||||
|
||||
@@ -202,6 +202,8 @@
|
||||
"Could not rename part file to final file, canceled by hook" : "Ezin izan da zati-fitxategiaren izena aldatu azken fitxategira, kakoak bertan behera utzi du",
|
||||
"Could not rename part file to final file" : "Ezin izan da zati-fitxategia azken fitxategira aldatu",
|
||||
"Failed to check file size: %1$s" : "Ezin izan da egiaztatu fitxategiaren tamaina:%1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "Ezin da fitxategi hau ireki: %1$s (%2$d), fitxategia badagoela dirudi",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Ezin da fitxategi hau ireki: %1$s (%2$d), fitxategia ez dagoela dirudi",
|
||||
"Encryption not ready: %1$s" : "Enkriptatzea ez dago prest:%1$s",
|
||||
"Failed to open file: %1$s" : "Ezin izan da fitxategia ireki:%1$s",
|
||||
"Failed to unlink: %1$s" : "Ezin izan da deskonektatu:%1$s",
|
||||
@@ -218,6 +220,7 @@
|
||||
"Completed on %s" : "%s-an osatua",
|
||||
"Due on %s by %s" : "%s-(e)an epemuga %s-(e)k",
|
||||
"Due on %s" : "%s-(e)an epemuga",
|
||||
"This is an example contact" : "Hau kontaktu adibide bat da",
|
||||
"Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Ongi etorri Nextcloud Egutegira!\n\nHau gertaera erakusgarria da - aztertu plangintzaren malgutasuna Nextcloud Egutegiarekin nahi dituzun edizioak eginez!\n\nNextcloud Egutegia aukerarekin, hau egin dezakezu:\n- Sortu, editatu eta kudeatu gertaerak esfortzurik gabe.\n- Egutegi ugari sortu eta taldekideekin, lagunekin edo familiarekin partekatu.\n- Egiaztatu libre egotea eta bistaratu zure laneko orduak beste batzuei.\n- Aplikazio eta gailuekin arazorik gabe integratzea CalDAV bidez.\n- Zure esperientzia pertsonalizatu: gertaera errepikariak programatu, jakinarazpenak doitu eta bestelako ezarpenak.",
|
||||
"Example event - open me!" : "Gertaera adibidea - ireki nazazu!",
|
||||
"System Address Book" : "Sistemaren helbide-liburua",
|
||||
|
||||
+3
-2
@@ -250,9 +250,10 @@ OC.L10N.register(
|
||||
"Completed on %s" : "Completata il %s",
|
||||
"Due on %s by %s" : "Scade il %s per %s",
|
||||
"Due on %s" : "Scade il %s",
|
||||
"This is an example contact" : "Questo è un contatto d'esempio",
|
||||
"Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Benvenuto nel Calendario Nextcloud!\n\nQuesto è un evento di esempio: scopri la flessibilità della pianificazione con Calendario Nextcloud apportando tutte le modifiche che desideri!\n\nCon il Calendario Nextcloud puoi:\n- Creare, modificare e gestire eventi senza alcuno sforzo.\n- Creare più calendari e condividerli con colleghi, amici o familiari.\n- Verificare la disponibilità e mostrare agli altri i tuoi impegni.\n- Integrare perfettamente app e dispositivi tramite CalDAV.\n- Personalizzare la tua esperienza: pianificare eventi ricorrenti, regolare le notifiche e altre impostazioni.",
|
||||
"Example event - open me!" : "Evento d'esempio - aprimi!",
|
||||
"System Address Book" : "Rubrica di Sistema",
|
||||
"System Address Book" : "Rubrica di sistema",
|
||||
"The system address book contains contact information for all users in your instance." : "La rubrica di sistema contiene le informazioni di contatto di tutti gli utenti della tua istanza.",
|
||||
"Enable System Address Book" : "Abilita rubrica di sistema",
|
||||
"DAV system address book" : "Rubrica di sistema DAV",
|
||||
@@ -324,7 +325,7 @@ OC.L10N.register(
|
||||
"Send reminder notifications to calendar sharees as well" : "Invia notifiche di promemoria anche ai partecipanti al calendario",
|
||||
"Reminders are always sent to organizers and attendees." : "I promemoria vengono sempre inviati agli organizzatori e ai partecipanti.",
|
||||
"Enable notifications for events via push" : "Abilita notifiche per eventi tramite push",
|
||||
"Example content" : "Contenuto d'esempio",
|
||||
"Example content" : "Contenuto di esempio",
|
||||
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Il contenuto di esempio serve a mostrare le funzionalità di Nextcloud. Il contenuto predefinito viene fornito con Nextcloud e può essere sostituito da contenuti personalizzati.",
|
||||
"Availability" : "Disponibilità",
|
||||
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Se imposti il tuo orario di lavoro, le altre persone potranno vedere quando non sei in ufficio per organizzare una riunione.",
|
||||
|
||||
@@ -248,9 +248,10 @@
|
||||
"Completed on %s" : "Completata il %s",
|
||||
"Due on %s by %s" : "Scade il %s per %s",
|
||||
"Due on %s" : "Scade il %s",
|
||||
"This is an example contact" : "Questo è un contatto d'esempio",
|
||||
"Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Benvenuto nel Calendario Nextcloud!\n\nQuesto è un evento di esempio: scopri la flessibilità della pianificazione con Calendario Nextcloud apportando tutte le modifiche che desideri!\n\nCon il Calendario Nextcloud puoi:\n- Creare, modificare e gestire eventi senza alcuno sforzo.\n- Creare più calendari e condividerli con colleghi, amici o familiari.\n- Verificare la disponibilità e mostrare agli altri i tuoi impegni.\n- Integrare perfettamente app e dispositivi tramite CalDAV.\n- Personalizzare la tua esperienza: pianificare eventi ricorrenti, regolare le notifiche e altre impostazioni.",
|
||||
"Example event - open me!" : "Evento d'esempio - aprimi!",
|
||||
"System Address Book" : "Rubrica di Sistema",
|
||||
"System Address Book" : "Rubrica di sistema",
|
||||
"The system address book contains contact information for all users in your instance." : "La rubrica di sistema contiene le informazioni di contatto di tutti gli utenti della tua istanza.",
|
||||
"Enable System Address Book" : "Abilita rubrica di sistema",
|
||||
"DAV system address book" : "Rubrica di sistema DAV",
|
||||
@@ -322,7 +323,7 @@
|
||||
"Send reminder notifications to calendar sharees as well" : "Invia notifiche di promemoria anche ai partecipanti al calendario",
|
||||
"Reminders are always sent to organizers and attendees." : "I promemoria vengono sempre inviati agli organizzatori e ai partecipanti.",
|
||||
"Enable notifications for events via push" : "Abilita notifiche per eventi tramite push",
|
||||
"Example content" : "Contenuto d'esempio",
|
||||
"Example content" : "Contenuto di esempio",
|
||||
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Il contenuto di esempio serve a mostrare le funzionalità di Nextcloud. Il contenuto predefinito viene fornito con Nextcloud e può essere sostituito da contenuti personalizzati.",
|
||||
"Availability" : "Disponibilità",
|
||||
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Se imposti il tuo orario di lavoro, le altre persone potranno vedere quando non sei in ufficio per organizzare una riunione.",
|
||||
|
||||
@@ -0,0 +1,345 @@
|
||||
OC.L10N.register(
|
||||
"dav",
|
||||
{
|
||||
"Calendar" : "Kalendorius",
|
||||
"Tasks" : "Užduotys",
|
||||
"Personal" : "Asmeniniai",
|
||||
"{actor} created calendar {calendar}" : "{actor} sukūrė kalendorių {calendar}",
|
||||
"You created calendar {calendar}" : "Jūs sukūrėte kalendorių {calendar}",
|
||||
"{actor} deleted calendar {calendar}" : "{actor} ištrynė kalendorių {calendar}",
|
||||
"You deleted calendar {calendar}" : "Jūs ištrynėte kalendorių {calendar}",
|
||||
"{actor} updated calendar {calendar}" : "{actor} atnaujino kalendorių {calendar}",
|
||||
"You updated calendar {calendar}" : "Jūs atnaujinote kalendorių {calendar}",
|
||||
"{actor} restored calendar {calendar}" : "{actor} atkūrė kalendorių {calendar}",
|
||||
"You restored calendar {calendar}" : "Jūs atkūrėte kalendorių {calendar}",
|
||||
"You shared calendar {calendar} as public link" : "Jūs pradėjote bendrinti kalendorių {calendar} kaip viešąją nuorodą",
|
||||
"You removed public link for calendar {calendar}" : "Jūs pašalinote viešąją nuorodą kalendoriui {calendar}",
|
||||
"{actor} shared calendar {calendar} with you" : "{actor} pradėjo bendrinti su jumis kalendorių {calendar}",
|
||||
"You shared calendar {calendar} with {user}" : "Jūs pradėjote bendrinti kalendorių {calendar} su {user}",
|
||||
"{actor} shared calendar {calendar} with {user}" : "{actor} pradėjo bendrinti kalendorių {calendar} su {user}",
|
||||
"{actor} unshared calendar {calendar} from you" : "{actor} nustojo bendrinti su jumis kalendorių {calendar}",
|
||||
"You unshared calendar {calendar} from {user}" : "Jūs nustojote bendrinti kalendorių {calendar} su {user}",
|
||||
"{actor} unshared calendar {calendar} from {user}" : "{actor} nustojo bendrinti kalendorių {calendar} su {user}",
|
||||
"{actor} unshared calendar {calendar} from themselves" : "{actor} nustojo bendrinti su savimi kalendorių {calendar}",
|
||||
"You shared calendar {calendar} with group {group}" : "Jūs pradėjote bendrinti kalendorių {calendar} su grupe {group}",
|
||||
"{actor} shared calendar {calendar} with group {group}" : "{actor} pradėjo bendrinti kalendorių {calendar} su grupe {group}",
|
||||
"You unshared calendar {calendar} from group {group}" : "Jūs nustojote bendrinti kalendorių {calendar} su grupe {group}",
|
||||
"{actor} unshared calendar {calendar} from group {group}" : "{actor} nustojo bendrinti kalendorių {calendar} su grupe {group}",
|
||||
"Untitled event" : "Įvykis be pavadinimo",
|
||||
"{actor} created event {event} in calendar {calendar}" : "{actor} kalendoriuje {calendar} sukūrė įvykį {event}",
|
||||
"You created event {event} in calendar {calendar}" : "Jūs kalendoriuje {calendar} sukūrėte įvykį {event}",
|
||||
"{actor} deleted event {event} from calendar {calendar}" : "{actor} ištrynė įvykį {event} iš kalendoriaus {calendar}",
|
||||
"You deleted event {event} from calendar {calendar}" : "Jūs ištrynėte įvykį {event} iš kalendoriaus {calendar}",
|
||||
"{actor} updated event {event} in calendar {calendar}" : "{actor} kalendoriuje {calendar} atnaujino įvykį {event}",
|
||||
"You updated event {event} in calendar {calendar}" : "Jūs kalendoriuje {calendar} atnaujinote įvykį {event}",
|
||||
"{actor} moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "{actor} perkėlė {event} įvykį iš {sourceCalendar} kalendoriaus į {targetCalendar} kalendorių",
|
||||
"You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "Jūs perkėlėte {event} įvykį iš {sourceCalendar} kalendroriaus į {targetCalendar} kalendorių",
|
||||
"{actor} restored event {event} of calendar {calendar}" : "{actor} kalendoriuje {calendar} atkūrė įvykį {event}",
|
||||
"You restored event {event} of calendar {calendar}" : "Jūs kalendoriuje {calendar} atkūrėte įvykį {event}",
|
||||
"Busy" : "Užimtas laikas",
|
||||
"{actor} created to-do {todo} in list {calendar}" : "{actor} sukūrė {todo} darbų sąraše {calendar}",
|
||||
"You created to-do {todo} in list {calendar}" : "Jūs sukūrėte {todo} darbų sąraše {calendar}",
|
||||
"{actor} deleted to-do {todo} from list {calendar}" : "{actor} pašalino {todo} darbą iš sąrašo {calendar}",
|
||||
"You deleted to-do {todo} from list {calendar}" : "Jūs ištrynėte {todo} darbus iš sąrašo {calendar}",
|
||||
"{actor} updated to-do {todo} in list {calendar}" : "{actor} atnaujino {todo} darbą sąraše {calendar}",
|
||||
"You updated to-do {todo} in list {calendar}" : "Jūs atnaujinote {todo} darbą sąraše {calendar}",
|
||||
"{actor} solved to-do {todo} in list {calendar}" : "{actor} užbaigė {todo} darbą iš sąrašo {calendar}",
|
||||
"You solved to-do {todo} in list {calendar}" : "Jūs užbaigėte {todo} darbą iš sąrašo {calendar}",
|
||||
"{actor} reopened to-do {todo} in list {calendar}" : "{actor} vėl pradėjo {todo} darbą iš sąrašo {calendar}",
|
||||
"You reopened to-do {todo} in list {calendar}" : "Jūs vėl pradėjote {todo} darbą iš sąrašo {calendar}",
|
||||
"{actor} moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "{actor} perkėlė {todo} darbą iš {sourceCalendar} sąrašo į {targetCalendar}",
|
||||
"You moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "Jūs perkėlėte {todo} darbą iš {sourceCalendar} sąrašo į {targetCalendar}",
|
||||
"Calendar, contacts and tasks" : "Kalendorius, adresatai ir užduotys",
|
||||
"A <strong>calendar</strong> was modified" : "<strong>Kalendorius</strong> buvo modifikuotas",
|
||||
"A calendar <strong>event</strong> was modified" : "Kalendoriaus <strong>įvykis</strong> buvo modifikuotas",
|
||||
"A calendar <strong>to-do</strong> was modified" : "Kalendoriaus <strong>darbų sąrašas</strong> buvo atnaujintas",
|
||||
"Contact birthdays" : "Adresatų gimtadieniai",
|
||||
"Death of %s" : "%s pabaiga",
|
||||
"Untitled calendar" : "Kalendorius be pavadinimo",
|
||||
"Calendar:" : "Kalendorius:",
|
||||
"Date:" : "Data:",
|
||||
"Where:" : "Kur:",
|
||||
"Description:" : "Aprašas:",
|
||||
"_%n year_::_%n years_" : ["%n metai","%n metai","%n metų","%n metai"],
|
||||
"_%n month_::_%n months_" : ["%n mėnesis","%n mėnesiai","%n mėnesių","%n mėnesis"],
|
||||
"_%n day_::_%n days_" : ["%n diena","%n dienos","%n dienų","%n diena"],
|
||||
"_%n hour_::_%n hours_" : ["%n valanda","%n valandos","%n valandų","%n valanda"],
|
||||
"_%n minute_::_%n minutes_" : ["%n minutė","%n minutės","%n minučių","%n minutė"],
|
||||
"%s (in %s)" : "%s (po %s)",
|
||||
"%s (%s ago)" : "%s (prieš %s)",
|
||||
"Calendar: %s" : "Kalendorius: %s",
|
||||
"Date: %s" : "Data: %s",
|
||||
"Description: %s" : "Aprašas: %s",
|
||||
"Where: %s" : "Kur: %s",
|
||||
"%1$s via %2$s" : "%1$s per %2$s",
|
||||
"In the past on %1$s for the entire day" : "Anksčiau %1$s visą dieną",
|
||||
"_In %n minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Per %n minutę %1$s visai dienai","Per %n minutes %1$s visai dienai","Per %n minučių %1$s visai dienai","Per %n minučių %1$s visai dienai"],
|
||||
"_In %n hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Per %n valandą %1$s visai dienai","Per %n valandas %1$s visai dienai","Per %n valandų %1$s visai dienai","Per %n valandų %1$s visai dienai"],
|
||||
"_In %n day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Per %n dieną %1$s visai dienai","Per %n dienas %1$s visai dienai","Per %n dienų %1$s visai dienai","Per %n dienų %1$s visai dienai"],
|
||||
"_In %n week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Per %n savaitę %1$s visai dienai","Per %n savaites %1$s visai dienai","Per %n savaičių %1$s visai dienai","Per %n savaičių %1$s visai dienai"],
|
||||
"_In %n month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Per %n mėnesį %1$s visai dienai","Per %n mėnesius %1$s visai dienai","Per %n mėnesių %1$s visai dienai","Per %n mėnesių %1$s visai dienai"],
|
||||
"_In %n year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Per %n metus %1$s visai dienai","Per %n metus %1$s visai dienai","Per %n metų %1$s visai dienai","Per %n metų %1$s visai dienai"],
|
||||
"In the past on %1$s between %2$s - %3$s" : "Anksčiau %1$s tarp %2$s - %3$s",
|
||||
"_In %n minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Per %n minutę %1$s tarp %2$s - %3$s","Per %n minutes %1$s tarp %2$s - %3$s","Per %n minučių %1$s tarp %2$s - %3$s","Per %n minučių %1$s tarp %2$s - %3$s"],
|
||||
"_In %n hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Per %n valandą %1$s tarp %2$s - %3$s","Per %n valandas %1$s tarp %2$s - %3$s","Per %n valandų %1$s tarp %2$s - %3$s","Per %n valandų %1$s tarp %2$s - %3$s"],
|
||||
"_In %n day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Per %n dieną %1$s tarp %2$s - %3$s","Per %n dienas %1$s tarp %2$s - %3$s","Per %n dienų %1$s tarp %2$s - %3$s","Per %n dienų %1$s tarp %2$s - %3$s"],
|
||||
"_In %n week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["Per %n savaitę %1$s tarp %2$s - %3$s","Per %n savaites %1$s tarp %2$s - %3$s","Per %n savaičių %1$s tarp %2$s - %3$s","Per %n savaičių %1$s tarp %2$s - %3$s"],
|
||||
"_In %n month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Per %n mėnesį %1$s tarp %2$s ir %3$s","Per %n mėnesius %1$s tarp %2$s - %3$s","Per %n mėnesių %1$s tarp %2$s - %3$s","Per %n mėnesių %1$s tarp %2$s - %3$s"],
|
||||
"_In %n year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["Per %n metus %1$s tarp %2$s - %3$s","Per %n metus %1$s tarp %2$s - %3$s","Per %n metų %1$s tarp %2$s - %3$s","Per %n metų %1$s tarp %2$s - %3$s"],
|
||||
"Could not generate when statement" : "Nepavyko sugeneruoti kada sakinio",
|
||||
"Every Day for the entire day" : "Kiekvieną dieną visą dieną",
|
||||
"Every Day for the entire day until %1$s" : "Kiekvieną dieną visą dieną iki %1$s",
|
||||
"Every Day between %1$s - %2$s" : "Kiekvieną dieną tarp %1$s - %2$s",
|
||||
"Every Day between %1$s - %2$s until %3$s" : "Kiekvieną dieną tarp %1$s - %2$s iki %3$s",
|
||||
"Every %1$d Days for the entire day" : "Kiekvieną %1$d dieną visą dieną",
|
||||
"Every %1$d Days for the entire day until %2$s" : "Kiekvieną %1$d dieną visą dieną iki %2$s",
|
||||
"Every %1$d Days between %2$s - %3$s" : "Kiekvieną %1$d dieną tarp %2$s - %3$s",
|
||||
"Every %1$d Days between %2$s - %3$s until %4$s" : "Kiekvieną %1$d dieną tarp %2$s - %3$s iki %4$s",
|
||||
"Could not generate event recurrence statement" : "Nepavyko sugeneruoti įvykio pasikartojimo sakinio",
|
||||
"Every Week on %1$s for the entire day" : "Kiekvieną savaitę %1$s visą dieną",
|
||||
"Every Week on %1$s for the entire day until %2$s" : "Kiekvieną savaitę %1$s visą dieną iki %2$s",
|
||||
"Every Week on %1$s between %2$s - %3$s" : "Kiekvieną savaitę %1$s tarp %2$s - %3$s",
|
||||
"Every Week on %1$s between %2$s - %3$s until %4$s" : "Kiekvieną savaitę %1$s tarp %2$s - %3$s iki %4$s",
|
||||
"Every %1$d Weeks on %2$s for the entire day" : "Kiekvieną %1$d savaitę %2$s visą dieną",
|
||||
"Every %1$d Weeks on %2$s for the entire day until %3$s" : "Kiekvieną %1$d savaitę %2$s visą dieną iki %3$s",
|
||||
"Every %1$d Weeks on %2$s between %3$s - %4$s" : "Kiekvieną %1$d savaitę %2$s tarp %3$s - %4$s",
|
||||
"Every %1$d Weeks on %2$s between %3$s - %4$s until %5$s" : "Kiekvieną %1$d savaitę %2$s tarp %3$s - %4$s iki %5$s",
|
||||
"Every Month on the %1$s for the entire day" : "Kiekvieną mėnesį %1$s visą dieną",
|
||||
"Every Month on the %1$s for the entire day until %2$s" : "Kiekvieną mėnesį %1$s visą dieną iki %2$s",
|
||||
"Every Month on the %1$s between %2$s - %3$s" : "Kiekvieną mėnesį %1$s tarp %2$s - %3$s",
|
||||
"Every Month on the %1$s between %2$s - %3$s until %4$s" : "Kiekvieną mėnesį %1$s tarp %2$s - %3$s iki %4$s",
|
||||
"Every %1$d Months on the %2$s for the entire day" : "Kiekvieną %1$d mėnesį %2$s visą dieną",
|
||||
"Every %1$d Months on the %2$s for the entire day until %3$s" : "Kiekvieną %1$d mėnesį %2$s visą dieną iki %3$s",
|
||||
"Every %1$d Months on the %2$s between %3$s - %4$s" : "Kiekvieną %1$d mėnesį %2$s tarp %3$s - %4$s",
|
||||
"Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "Kiekvieną %1$d mėnesį %2$s tarp %3$s - %4$s iki %5$s",
|
||||
"Every Year in %1$s on the %2$s for the entire day" : "Kiekvienais metais %1$s , %2$s visą dieną",
|
||||
"Every Year in %1$s on the %2$s for the entire day until %3$s" : "Kiekvienais metais %1$s , %2$s visą dieną iki %3$s",
|
||||
"Every Year in %1$s on the %2$s between %3$s - %4$s" : "Kiekvienais metais %1$s , %2$s tarp %3$s - %4$s",
|
||||
"Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "Kiekvienais metais %1$s , %2$s tarp %3$s - %4$s iki %5$s",
|
||||
"Every %1$d Years in %2$s on the %3$s for the entire day" : "Kiekvienais %1$d metais %2$s, %3$s visą dieną",
|
||||
"Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "Kiekvienais %1$d metais %2$s , %3$s visą dieną iki %4$s",
|
||||
"Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "Kiekvienais %1$d metais %2$s , %3$s tarp %4$s - %5$s",
|
||||
"Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "Kiekvienais %1$d metais %2$s , %3$s tarp %4$s - %5$s iki %6$s",
|
||||
"On specific dates for the entire day until %1$s" : "Konkrečiomis datomis visą dieną iki %1$s",
|
||||
"On specific dates between %1$s - %2$s until %3$s" : "Konkrečiomis datomis tarp %1$s - %2$s iki %3$s",
|
||||
"In the past on %1$s" : "Praeityje %1$s",
|
||||
"_In %n minute on %1$s_::_In %n minutes on %1$s_" : ["Per %n minutę %1$s","Per %n minutes %1$s","Per %n minučių %1$s","Per %n minučių %1$s"],
|
||||
"_In %n hour on %1$s_::_In %n hours on %1$s_" : ["Per %n valandą %1$s","Per %n valandas %1$s","Per %n valandų %1$s","Per %n valandų %1$s"],
|
||||
"_In %n day on %1$s_::_In %n days on %1$s_" : ["Per %n dieną %1$s","Per %n dienas %1$s","Per %n dienų %1$s","Per %n dienų %1$s"],
|
||||
"_In %n week on %1$s_::_In %n weeks on %1$s_" : ["Per %n savaitę %1$s","Per %n savaites %1$s","Per %n savaičių %1$s","Per %n savaičių %1$s"],
|
||||
"_In %n month on %1$s_::_In %n months on %1$s_" : ["Per %n mėnesį %1$s","Per %n mėnesius %1$s","Per %n mėnesių %1$s","Per %n mėnesių %1$s"],
|
||||
"_In %n year on %1$s_::_In %n years on %1$s_" : ["Per %n metus %1$s","Per %n metus %1$s","Per %n metų %1$s","Per %n metų %1$s"],
|
||||
"In the past on %1$s then on %2$s" : "Anksčiau %1$s tuomet %2$s",
|
||||
"_In %n minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Per %n minutę %1$s tuomet %2$s","Per %n minutes %1$s tuomet %2$s","Per %n minučių %1$s tuomet %2$s","Per %n minučių %1$s tuomet %2$s"],
|
||||
"_In %n hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Per %n valandą %1$s tuomet %2$s","Per %n valandas %1$s tuomet %2$s","Per %n valandų %1$s tuomet %2$s","Per %n valandų %1$s tuomet %2$s"],
|
||||
"_In %n day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Per %n dieną %1$s tuomet %2$s","Per %n dienas %1$s tuomet %2$s","Per %n dienų %1$s tuomet %2$s","Per %n dienų %1$s tuomet %2$s"],
|
||||
"_In %n week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Per %n savaitę %1$s tuomet %2$s","Per %n savaites %1$s tuomet %2$s","Per %n savaičių %1$s tuomet %2$s","Per %n savaičių %1$s tuomet %2$s"],
|
||||
"_In %n month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Per %n mėnesį %1$s tuomet %2$s","Per %n mėnesius %1$s tuomet %2$s","Per %n mėnesių %1$s tuomet %2$s","Per %n mėnesių %1$s tuomet %2$s"],
|
||||
"_In %n year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Per %n metus %1$s tuomet %2$s","Per %n metus %1$s tuomet %2$s","Per %n metų %1$s tuomet %2$s","Per %n metų %1$s tuomet %2$s"],
|
||||
"In the past on %1$s then on %2$s and %3$s" : "Anksčiau %1$s tuomet %2$s ir %3$s",
|
||||
"_In %n minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Per %n minutę %1$s tuomet %2$s ir %3$s","Per %n minutes %1$s tuomet %2$s ir %3$s","Per %n minučių %1$s tuomet %2$s ir %3$s","Per %n minučių %1$s tuomet %2$s ir %3$s"],
|
||||
"_In %n hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Per %n valandą %1$s tuomet %2$s ir %3$s","Per %n valandas %1$s tuomet %2$s ir %3$s","Per %n valandų %1$s tuomet %2$s ir %3$s","Per %n valandų %1$s tuomet %2$s ir %3$s"],
|
||||
"_In %n day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Per %n dieną %1$s tuomet %2$s ir %3$s","Per %n dienas %1$s tuomet %2$s ir %3$s","Per %n dienų %1$s tuomet %2$s ir %3$s","Per %n dienų %1$s tuomet %2$s ir %3$s"],
|
||||
"_In %n week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Per %n savaitę %1$s tuomet %2$s ir %3$s","Per %n savaites %1$s tuomet %2$s ir %3$s","Per %n savaičių %1$s tuomet %2$s ir %3$s","Per %n savaičių %1$s tuomet %2$s ir %3$s"],
|
||||
"_In %n month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Per %n mėnesį %1$s tuomet %2$s ir %3$s","Per %n mėnesius %1$s tuomet %2$s ir %3$s","Per %n mėnesių %1$s tuomet %2$s ir %3$s","Per %n mėnesių %1$s tuomet %2$s ir %3$s"],
|
||||
"_In %n year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Per %n metus %1$s tuomet %2$s ir %3$s","Per %n metus %1$s tuomet %2$s ir %3$s","Per %n metų %1$s tuomet %2$s ir %3$s","Per %n metų %1$s tuomet %2$s ir %3$s"],
|
||||
"Could not generate next recurrence statement" : "Nepavyko sugeneruoti kito pasikartojimo sakinio",
|
||||
"Cancelled: %1$s" : "Atšaukta: %1$s",
|
||||
"\"%1$s\" has been canceled" : "\"%1$s\" buvo atšauktas",
|
||||
"Re: %1$s" : "Dėl: %1$s",
|
||||
"%1$s has accepted your invitation" : "%1$s priėmė jūsų kvietimą",
|
||||
"%1$s has tentatively accepted your invitation" : "%1$s preliminariai priėmė jūsų kvietimą",
|
||||
"%1$s has declined your invitation" : "%1$s atmetė jūsų kvietimą",
|
||||
"%1$s has responded to your invitation" : "%1$s atsakė į jūsų kvietimą",
|
||||
"Invitation updated: %1$s" : "Kvietimas atnaujintas: %1$s",
|
||||
"%1$s updated the event \"%2$s\"" : "%1$s atnaujino įvykį \"%2$s\"",
|
||||
"Invitation: %1$s" : "Pakvietimas: %1$s",
|
||||
"%1$s would like to invite you to \"%2$s\"" : "%1$s norėtų jus pakviesti į \"%2$s\"",
|
||||
"Organizer:" : "Organizatorius:",
|
||||
"Attendees:" : "Kviestiniai:",
|
||||
"Title:" : "Pavadinimas:",
|
||||
"When:" : "Kada:",
|
||||
"Location:" : "Vieta:",
|
||||
"Link:" : "Nuoroda:",
|
||||
"Occurring:" : "Pasitaiko:",
|
||||
"Accept" : "Priimti",
|
||||
"Decline" : "Atmesti",
|
||||
"More options …" : "Daugiau parinkčių…",
|
||||
"More options at %s" : "Daugiau parinkčių %s",
|
||||
"Monday" : "Pirmadienis",
|
||||
"Tuesday" : "Antradienis",
|
||||
"Wednesday" : "Trečiadienis",
|
||||
"Thursday" : "Ketvirtadienis",
|
||||
"Friday" : "Penktadienis",
|
||||
"Saturday" : "Šeštadienis",
|
||||
"Sunday" : "Sekmadienis",
|
||||
"January" : "Sausis",
|
||||
"February" : "Vasaris",
|
||||
"March" : "Kovas",
|
||||
"April" : "Balandis",
|
||||
"May" : "Gegužė",
|
||||
"June" : "Birželis",
|
||||
"July" : "Liepa",
|
||||
"August" : "Rugpjūtis",
|
||||
"September" : "Rugsėjis",
|
||||
"October" : "Spalis",
|
||||
"November" : "Lapkritis",
|
||||
"December" : "Gruodis",
|
||||
"First" : "Pirmas",
|
||||
"Second" : "Antras",
|
||||
"Third" : "Trečias",
|
||||
"Fourth" : "Ketvirtas",
|
||||
"Fifth" : "Penktas",
|
||||
"Last" : "Paskutinis",
|
||||
"Second Last" : "Antras paskutinis",
|
||||
"Third Last" : "Trečias paskutinis",
|
||||
"Fourth Last" : "Ketvirtasis paskutinis",
|
||||
"Fifth Last" : "Penktas paskutinis",
|
||||
"Contacts" : "Adresatai",
|
||||
"{actor} created address book {addressbook}" : "{actor} sukūrė adresų knygą {addressbook}",
|
||||
"You created address book {addressbook}" : "Jūs sukūrėte adresų knygą {addressbook}",
|
||||
"{actor} deleted address book {addressbook}" : "{actor} ištrynė adresų knygą {addressbook}",
|
||||
"You deleted address book {addressbook}" : "Jūs ištrynėte adresų knygą {addressbook}",
|
||||
"{actor} updated address book {addressbook}" : "{actor} atnaujino adresų knygą {addressbook}",
|
||||
"You updated address book {addressbook}" : "Jūs atnaujinote adresų knygą {addressbook}",
|
||||
"{actor} shared address book {addressbook} with you" : "{actor} pasidalino su jumis {addressbook} adresų knyga",
|
||||
"You shared address book {addressbook} with {user}" : "Jūs pasidalinote {addressbook} adresų knyga su {user}",
|
||||
"{actor} shared address book {addressbook} with {user}" : "{actor} pasidalino {addressbook} adresų knyga su {user}",
|
||||
"{actor} unshared address book {addressbook} from you" : "{actor} atšaukė su jumis bendrinamą {addressbook} adresų knygą",
|
||||
"You unshared address book {addressbook} from {user}" : "Jūs atšaukėte bendrinamą {addressbook} adresų knygą su {user}",
|
||||
"{actor} unshared address book {addressbook} from {user}" : "{actor} atšaukė {addressbook} bendrinamą adresų knygą su {user}",
|
||||
"{actor} unshared address book {addressbook} from themselves" : "{actor} atšaukė savo paties bendrinamą {addressbook} adresų knygą",
|
||||
"You shared address book {addressbook} with group {group}" : "Jūs bendrinote {addressbook} adresų knygą su {group} grupe",
|
||||
"{actor} shared address book {addressbook} with group {group}" : "{actor} bendrino {addressbook} adresų knygą su {group} grupe",
|
||||
"You unshared address book {addressbook} from group {group}" : "Jūs atšaukėte bendrinamą {addressbook}adresų knygą su {group} grupe",
|
||||
"{actor} unshared address book {addressbook} from group {group}" : "{actor} atšaukė bendrinamą {addressbook} adresų knygą su {group} grupe",
|
||||
"{actor} created contact {card} in address book {addressbook}" : "{actor} sukūrė {card} kontaktą {addressbook} adresų knygoje",
|
||||
"You created contact {card} in address book {addressbook}" : "Jūs sukūrėte {card} kontaktą {addressbook} adresų knygoje",
|
||||
"{actor} deleted contact {card} from address book {addressbook}" : "{actor} ištrynė {card} kontaktų iš {addressbook} adresų knygos",
|
||||
"You deleted contact {card} from address book {addressbook}" : "Jūs ištrynėte {card} kontaktą iš {addressbook} adresų knygos",
|
||||
"{actor} updated contact {card} in address book {addressbook}" : "{actor} atnaujino {card} kontaktą {addressbook} adresų knygoje",
|
||||
"You updated contact {card} in address book {addressbook}" : "Jūs atnaujinote {card} kontaktą {addressbook} adresų knygoje",
|
||||
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "<strong>kontaktas</strong> arba <strong>adresų knyga</strong> buvo atnaujinta",
|
||||
"System address book disabled" : "Sistemos adresų knyga išjungta",
|
||||
"The system contacts address book has been automatically disabled during upgrade. This means that the address book will no longer be available to users in the contacts app or other clients. The system contacts address book was disabled because the amount of contacts in the address book exceeded the maximum recommended number of contacts. This limit is set to prevent performance issues. You can re-enable the system address book with the following command {command}" : "Sistemos kontaktų adresų knyga buvo automatiškai išjungta atnaujinimo metu. Tai reiškia, kad adresų knyga nebebus pasiekiama vartotojams kontaktų programėlėje ar kituose klientuose. Sistemos kontaktų adresų knyga buvo išjungta, nes joje esančių kontaktų skaičius viršijo maksimalų rekomenduojamą kontaktų skaičių. Šis apribojimas nustatytas siekiant išvengti našumo problemų. Sistemos adresų knygą galite iš naujo įjungti naudodami šią komandą {command}.",
|
||||
"Accounts" : "Paskyros",
|
||||
"System address book which holds all accounts" : "Sistemos adresų knyga, kurioje saugomos visos paskyros",
|
||||
"File is not updatable: %1$s" : "Failo atnaujinamas negalimas: %1$s",
|
||||
"Failed to get storage for file" : "Nepavyko gauti failo saugyklos vietos",
|
||||
"Could not write to final file, canceled by hook" : "Nepavyko įrašyti į galutinį failą, atšaukta naudojant interceptorių",
|
||||
"Could not write file contents" : "Nepavyko įrašyti failo turinio",
|
||||
"_%n byte_::_%n bytes_" : ["%n baitas","%n baitai","%n baitų","%n baitų"],
|
||||
"Error while copying file to target location (copied: %1$s, expected filesize: %2$s)" : "Klaida kopijuojant failą į paskirties vietą (nukopijuota: %1$s, numatomas failo dydis: %2$s)",
|
||||
"Expected filesize of %1$s but read (from Nextcloud client) and wrote (to Nextcloud storage) %2$s. Could either be a network problem on the sending side or a problem writing to the storage on the server side." : "Tikėtasi %1$s failo dydžio, bet nuskaityta (iš „Nextcloud“ kliento) ir įrašyta (į „Nextcloud“ saugyklą) %2$s. Gali būti tinklo problema siuntėjo pusėje arba problema rašant į saugyklą serverio pusėje.",
|
||||
"Could not rename part file to final file, canceled by hook" : "Nepavyko pervadinti dalinio failo į galutinį failą, atšaukta naudojant interceptorių",
|
||||
"Could not rename part file to final file" : "Nepavyko pervadinti dalinio failo į galutinį failą",
|
||||
"Failed to check file size: %1$s" : "Nepavyko patikrinti failo dydžio: %1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "Nepavyko atidaryti failo: %1$s (%2$d), atrodo, kad failas egzistuoja",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Nepavyko atidaryti failo: %1$s (%2$d), atrodo, kad failo nėra",
|
||||
"Failed to get size for : %1$s" : "Nepavyko gauti %1$s dydžio",
|
||||
"Encryption not ready: %1$s" : "Šifravimas neparuoštas: %1$s",
|
||||
"Failed to open file: %1$s" : "Nepavyko atverti failo: %1$s",
|
||||
"Failed to unlink: %1$s" : "Nepavyko atsieti: %1$s",
|
||||
"Failed to write file contents: %1$s" : "Nepavyko įrašyti failo turinio: %1$s",
|
||||
"File not found: %1$s" : "Failas nerastas: %1$s",
|
||||
"Invalid target path" : "Netinkamas tikslinis kelias",
|
||||
"System is in maintenance mode." : "Sistema yra techninės priežiūros veiksenoje.",
|
||||
"Upgrade needed" : "Reikalingas naujinimas",
|
||||
"Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Norint naudoti CalDAV ir CardDAV su iOS/macOS, jūsų %s turi būti sukonfigūruota taip, kad naudotų HTTPS.",
|
||||
"Configures a CalDAV account" : "Konfigūruoja CalDAV paskyrą",
|
||||
"Configures a CardDAV account" : "Konfigūruoja CardDAV paskyrą",
|
||||
"Events" : "Įvykiai",
|
||||
"Untitled task" : "Užduotis be pavadinimo",
|
||||
"Completed on %s" : "Pabaigta %s",
|
||||
"Due on %s by %s" : "Laukiamas %s iki %s",
|
||||
"Due on %s" : "Laukiamas %s",
|
||||
"This is an example contact" : "Tai yra kontakto pavyzdys",
|
||||
"Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Sveiki atvykę į „Nextcloud“ kalendorių!\n\nTai pavyzdinis įrašas – išbandykite planavimo lankstumą su „Nextcloud“ kalendoriumi, atlikdami bet kokius norimus pakeitimus!\n\nSu „Nextcloud“ kalendoriumi galite:\n- Nesunkiai kurti, redaguoti ir valdyti įvykius.\n- Kurti kelis kalendorius ir bendrinti juos su komandos nariais, draugais ar šeima.\n- Patikrinti prieinamumą ir rodyti savo užimtumo laiką kitiems.\n- Sklandžiai integruotis su programėlėmis ir įrenginiais per „CalDAV“.\n- Tinkinti savo patirtį: planuoti pasikartojančius įvykius, koreguoti pranešimus ir kitus nustatymus.",
|
||||
"Example event - open me!" : "Pavyzdinis įvykis – atverk mane!",
|
||||
"System Address Book" : "Sistemos adresų knyga",
|
||||
"The system address book contains contact information for all users in your instance." : "Sistemos adresų knygoje yra visų jūsų turimų vartotojų kontaktinė informacija.",
|
||||
"Enable System Address Book" : "Įjungti sistemos adresų knygą",
|
||||
"DAV system address book" : "DAV sistemos adresų knyga",
|
||||
"No outstanding DAV system address book sync." : "Nėra jokių nepatvirtintų DAV sistemos adresų knygos sinchronizavimo.",
|
||||
"The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "DAV sistemos adresų knygos sinchronizavimas dar nebuvo paleistas, nes jūsų egzemplioriuje yra daugiau nei 1000 vartotojų arba įvyko klaida. Paleiskite jį rankiniu būdu, iškviečiant „occ dav:sync-system-addressbook“.",
|
||||
"DAV system address book size" : "DAV sistemos adresų knygos dydis",
|
||||
"The system address book is disabled" : "Sistemos adresų knyga išjungta",
|
||||
"The system address book is enabled, but contains more than the configured limit of %d contacts" : "Sistemos adresų knyga įjungta ir joje yra daugiau kontaktų nei nustatyta riba, t.y. %d kontaktų",
|
||||
"The system address book is enabled and contains less than the configured limit of %d contacts" : "Sistemos adresų knyga įjungta ir joje yra mažiau kontaktų nei nustatyta riba, t.y. %d kontaktų",
|
||||
"WebDAV endpoint" : "WebDAV galutinis taškas",
|
||||
"Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "Nepavyko patikrinti, ar jūsų žiniatinklio serveris tinkamai nustatytas leisti failų sinchronizavimą per WebDAV. Patikrinkite rankiniu būdu.",
|
||||
"Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Jūsų svetainės serveris nėra tinkamai sukonfiguruotas, Failų sinchronizavimas negalimas, nes neveikia WebDAV interfeisas.",
|
||||
"Your web server is properly set up to allow file synchronization over WebDAV." : "Jūsų žiniatinklio serveris tinkamai sukonfigūruotas, kad būtų galima sinchronizuoti failus per WebDAV.",
|
||||
"Calendars including events, details and attendees" : "Kalendoriai su įvykiais, informacija ir dalyviais",
|
||||
"Migrated calendar (%1$s)" : "Perkeltas kalendorius (%1$s)",
|
||||
"Contacts and groups" : "Adresatai ir grupės",
|
||||
"WebDAV" : "WebDAV",
|
||||
"Absence saved" : "Išsaugotas nebuvimas",
|
||||
"Failed to save your absence settings" : "Nepavyko išsaugoti jūsų nebuvimo nustatymų",
|
||||
"Absence cleared" : "Nebuvimas pašalintas",
|
||||
"Failed to clear your absence settings" : "Nepavyko išvalyti nedalyvavimo nustatymų",
|
||||
"First day" : "Pirma diena",
|
||||
"Last day (inclusive)" : "Paskutinė diena (imtinai)",
|
||||
"Out of office replacement (optional)" : "Nebuvimo biure pakeitimas (neprivaloma)",
|
||||
"Name of the replacement" : "Pakeitimo pavadinimas",
|
||||
"Short absence status" : "Trumpo nebuvimo būsena",
|
||||
"Long absence Message" : "Ilgo nebuvimo žinutė",
|
||||
"Save" : "Įrašyti",
|
||||
"Disable absence" : "Išjungti nebuvimą",
|
||||
"Failed to load availability" : "Nepavyko įkelti prieinamumo",
|
||||
"Saved availability" : "Išsaugotas pasiekiamumas",
|
||||
"Failed to save availability" : "Nepavyko išsaugoti pasiekiamumo",
|
||||
"to" : "iki",
|
||||
"Delete slot" : "Ištrinti laiko tarpą",
|
||||
"No working hours set" : "Nenustatyta jokių darbo valandų",
|
||||
"Add slot" : "Pridėti laiko tarpą",
|
||||
"Weekdays" : "Šiokiadieniai",
|
||||
"Pick a start time for {dayName}" : "Pasirinkite {dayName} pradžios laiką",
|
||||
"Pick a end time for {dayName}" : "Pasirinkite {dayName} pabaigos laiką",
|
||||
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Automatiškai nustatyti naudotojo būseną į „Netrukdyti“, kai jis nėra pasiekiamas, kad būtų nutildyti visi pranešimai.",
|
||||
"Cancel" : "Atsisakyti",
|
||||
"Import" : "Importuoti",
|
||||
"Error while saving settings" : "Klaida įrašant nustatymus",
|
||||
"Contact reset successfully" : "Kontaktas sėkmingai nustatytas iš naujo",
|
||||
"Error while resetting contact" : "Iš naujo nustatant kontaktą įvyko klaida",
|
||||
"Contact imported successfully" : "Kontaktas sėkmingai importuotas",
|
||||
"Error while importing contact" : "Importuojant kontaktą įvyko klaida",
|
||||
"Import contact" : "Importuoti kontaktą",
|
||||
"Reset to default" : "Atstatyti į numatytąjį",
|
||||
"Import contacts" : "Importuoti kontaktus",
|
||||
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importuojant naują .vcf failą, esamas numatytasis kontaktas bus ištrintas ir pakeistas nauju. Ar norite tęsti?",
|
||||
"Failed to save example event creation setting" : "Nepavyko išsaugoti pavyzdinio įvykio kūrimo nustatymo",
|
||||
"Failed to upload the example event" : "Nepavyko įkelti pavyzdinio įvykio",
|
||||
"Custom example event was saved successfully" : "Pasirinktinis pavyzdinis įvykis sėkmingai išsaugotas",
|
||||
"Failed to delete the custom example event" : "Nepavyko ištrinti pasirinktinio pavyzdžio įvykio",
|
||||
"Custom example event was deleted successfully" : "Pasirinktinis pavyzdinis įvykis sėkmingai ištrintas",
|
||||
"Import calendar event" : "Importuoti kalendoriaus įvykį",
|
||||
"Uploading a new event will overwrite the existing one." : "Įkėlus naują įvykį, esamas bus perrašytas.",
|
||||
"Upload event" : "Įkelti įvykį",
|
||||
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Taip pat įsidiekite {calendarappstoreopen}Kalendoriaus programėlę{linkclose} arba sinchronizavimui {calendardocopen}prijunkite savo darbalaukį ir mobilųjį ↗{linkclose}.",
|
||||
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Įsitikinkite, kad tinkamai nusistatėte {emailopen}el. pašto serverį{linkclose}.",
|
||||
"Calendar server" : "Kalendoriaus serveris",
|
||||
"Send invitations to attendees" : "Siųsti pakvietimus kviestiniams",
|
||||
"Automatically generate a birthday calendar" : "Automatiškai sukurti gimtadienių kalendorių",
|
||||
"Birthday calendars will be generated by a background job." : "Gimtadienių kalendoriai bus sukurti foninės užduoties.",
|
||||
"Hence they will not be available immediately after enabling but will show up after some time." : "Tai reiškia, kad jie nebus matomi iš karto įjungus, o pasirodys tik po kurio laiko.",
|
||||
"Send notifications for events" : "Siųsti įvykių pranešimus",
|
||||
"Notifications are sent via background jobs, so these must occur often enough." : "Pranešimai yra siunčiami per fonines užduotis, todėl jos privalo būti vykdomos gana dažnai.",
|
||||
"Send reminder notifications to calendar sharees as well" : "Siųskite priminimus ir tiems, kurie bendrina kalendorių",
|
||||
"Reminders are always sent to organizers and attendees." : "Priminimai visada siunčiami organizatoriams ir dalyviams.",
|
||||
"Enable notifications for events via push" : "Įjungti pranešimus apie įvykius per tiesioginius pranešimus",
|
||||
"Example content" : "Turinio pavyzdys",
|
||||
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Pavyzdinis turinys skirtas „Nextcloud“ funkcijoms demonstruoti. Numatytasis turinys pateikiamas kartu su „Nextcloud“ ir gali būti pakeistas pasirinktiniu turiniu.",
|
||||
"Availability" : "Pasiekiamumas",
|
||||
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Jei sukonfigūruosite savo darbo valandas, kiti žmonės, rezervuodami susitikimą, matys, kada esate išvykę.",
|
||||
"Absence" : "Nebuvimas",
|
||||
"Configure your next absence period." : "Konfigūruokite kitą nebuvimo laikotarpį.",
|
||||
"There was an error updating your attendance status." : "Atnaujinant lankomumo būseną įvyko klaida.",
|
||||
"Please contact the organizer directly." : "Prašome susisiekti su organizatoriumi tiesiogiai.",
|
||||
"Are you accepting the invitation?" : "Ar priimate pakvietimą?",
|
||||
"Tentative" : "Preliminarus",
|
||||
"Your attendance was updated successfully." : "Jūsų lankomumas sėkmingai atnaujintas.",
|
||||
"No results." : "Jokių rezultatų.",
|
||||
"Start typing." : "Start typing."
|
||||
},
|
||||
"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);");
|
||||
@@ -0,0 +1,343 @@
|
||||
{ "translations": {
|
||||
"Calendar" : "Kalendorius",
|
||||
"Tasks" : "Užduotys",
|
||||
"Personal" : "Asmeniniai",
|
||||
"{actor} created calendar {calendar}" : "{actor} sukūrė kalendorių {calendar}",
|
||||
"You created calendar {calendar}" : "Jūs sukūrėte kalendorių {calendar}",
|
||||
"{actor} deleted calendar {calendar}" : "{actor} ištrynė kalendorių {calendar}",
|
||||
"You deleted calendar {calendar}" : "Jūs ištrynėte kalendorių {calendar}",
|
||||
"{actor} updated calendar {calendar}" : "{actor} atnaujino kalendorių {calendar}",
|
||||
"You updated calendar {calendar}" : "Jūs atnaujinote kalendorių {calendar}",
|
||||
"{actor} restored calendar {calendar}" : "{actor} atkūrė kalendorių {calendar}",
|
||||
"You restored calendar {calendar}" : "Jūs atkūrėte kalendorių {calendar}",
|
||||
"You shared calendar {calendar} as public link" : "Jūs pradėjote bendrinti kalendorių {calendar} kaip viešąją nuorodą",
|
||||
"You removed public link for calendar {calendar}" : "Jūs pašalinote viešąją nuorodą kalendoriui {calendar}",
|
||||
"{actor} shared calendar {calendar} with you" : "{actor} pradėjo bendrinti su jumis kalendorių {calendar}",
|
||||
"You shared calendar {calendar} with {user}" : "Jūs pradėjote bendrinti kalendorių {calendar} su {user}",
|
||||
"{actor} shared calendar {calendar} with {user}" : "{actor} pradėjo bendrinti kalendorių {calendar} su {user}",
|
||||
"{actor} unshared calendar {calendar} from you" : "{actor} nustojo bendrinti su jumis kalendorių {calendar}",
|
||||
"You unshared calendar {calendar} from {user}" : "Jūs nustojote bendrinti kalendorių {calendar} su {user}",
|
||||
"{actor} unshared calendar {calendar} from {user}" : "{actor} nustojo bendrinti kalendorių {calendar} su {user}",
|
||||
"{actor} unshared calendar {calendar} from themselves" : "{actor} nustojo bendrinti su savimi kalendorių {calendar}",
|
||||
"You shared calendar {calendar} with group {group}" : "Jūs pradėjote bendrinti kalendorių {calendar} su grupe {group}",
|
||||
"{actor} shared calendar {calendar} with group {group}" : "{actor} pradėjo bendrinti kalendorių {calendar} su grupe {group}",
|
||||
"You unshared calendar {calendar} from group {group}" : "Jūs nustojote bendrinti kalendorių {calendar} su grupe {group}",
|
||||
"{actor} unshared calendar {calendar} from group {group}" : "{actor} nustojo bendrinti kalendorių {calendar} su grupe {group}",
|
||||
"Untitled event" : "Įvykis be pavadinimo",
|
||||
"{actor} created event {event} in calendar {calendar}" : "{actor} kalendoriuje {calendar} sukūrė įvykį {event}",
|
||||
"You created event {event} in calendar {calendar}" : "Jūs kalendoriuje {calendar} sukūrėte įvykį {event}",
|
||||
"{actor} deleted event {event} from calendar {calendar}" : "{actor} ištrynė įvykį {event} iš kalendoriaus {calendar}",
|
||||
"You deleted event {event} from calendar {calendar}" : "Jūs ištrynėte įvykį {event} iš kalendoriaus {calendar}",
|
||||
"{actor} updated event {event} in calendar {calendar}" : "{actor} kalendoriuje {calendar} atnaujino įvykį {event}",
|
||||
"You updated event {event} in calendar {calendar}" : "Jūs kalendoriuje {calendar} atnaujinote įvykį {event}",
|
||||
"{actor} moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "{actor} perkėlė {event} įvykį iš {sourceCalendar} kalendoriaus į {targetCalendar} kalendorių",
|
||||
"You moved event {event} from calendar {sourceCalendar} to calendar {targetCalendar}" : "Jūs perkėlėte {event} įvykį iš {sourceCalendar} kalendroriaus į {targetCalendar} kalendorių",
|
||||
"{actor} restored event {event} of calendar {calendar}" : "{actor} kalendoriuje {calendar} atkūrė įvykį {event}",
|
||||
"You restored event {event} of calendar {calendar}" : "Jūs kalendoriuje {calendar} atkūrėte įvykį {event}",
|
||||
"Busy" : "Užimtas laikas",
|
||||
"{actor} created to-do {todo} in list {calendar}" : "{actor} sukūrė {todo} darbų sąraše {calendar}",
|
||||
"You created to-do {todo} in list {calendar}" : "Jūs sukūrėte {todo} darbų sąraše {calendar}",
|
||||
"{actor} deleted to-do {todo} from list {calendar}" : "{actor} pašalino {todo} darbą iš sąrašo {calendar}",
|
||||
"You deleted to-do {todo} from list {calendar}" : "Jūs ištrynėte {todo} darbus iš sąrašo {calendar}",
|
||||
"{actor} updated to-do {todo} in list {calendar}" : "{actor} atnaujino {todo} darbą sąraše {calendar}",
|
||||
"You updated to-do {todo} in list {calendar}" : "Jūs atnaujinote {todo} darbą sąraše {calendar}",
|
||||
"{actor} solved to-do {todo} in list {calendar}" : "{actor} užbaigė {todo} darbą iš sąrašo {calendar}",
|
||||
"You solved to-do {todo} in list {calendar}" : "Jūs užbaigėte {todo} darbą iš sąrašo {calendar}",
|
||||
"{actor} reopened to-do {todo} in list {calendar}" : "{actor} vėl pradėjo {todo} darbą iš sąrašo {calendar}",
|
||||
"You reopened to-do {todo} in list {calendar}" : "Jūs vėl pradėjote {todo} darbą iš sąrašo {calendar}",
|
||||
"{actor} moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "{actor} perkėlė {todo} darbą iš {sourceCalendar} sąrašo į {targetCalendar}",
|
||||
"You moved to-do {todo} from list {sourceCalendar} to list {targetCalendar}" : "Jūs perkėlėte {todo} darbą iš {sourceCalendar} sąrašo į {targetCalendar}",
|
||||
"Calendar, contacts and tasks" : "Kalendorius, adresatai ir užduotys",
|
||||
"A <strong>calendar</strong> was modified" : "<strong>Kalendorius</strong> buvo modifikuotas",
|
||||
"A calendar <strong>event</strong> was modified" : "Kalendoriaus <strong>įvykis</strong> buvo modifikuotas",
|
||||
"A calendar <strong>to-do</strong> was modified" : "Kalendoriaus <strong>darbų sąrašas</strong> buvo atnaujintas",
|
||||
"Contact birthdays" : "Adresatų gimtadieniai",
|
||||
"Death of %s" : "%s pabaiga",
|
||||
"Untitled calendar" : "Kalendorius be pavadinimo",
|
||||
"Calendar:" : "Kalendorius:",
|
||||
"Date:" : "Data:",
|
||||
"Where:" : "Kur:",
|
||||
"Description:" : "Aprašas:",
|
||||
"_%n year_::_%n years_" : ["%n metai","%n metai","%n metų","%n metai"],
|
||||
"_%n month_::_%n months_" : ["%n mėnesis","%n mėnesiai","%n mėnesių","%n mėnesis"],
|
||||
"_%n day_::_%n days_" : ["%n diena","%n dienos","%n dienų","%n diena"],
|
||||
"_%n hour_::_%n hours_" : ["%n valanda","%n valandos","%n valandų","%n valanda"],
|
||||
"_%n minute_::_%n minutes_" : ["%n minutė","%n minutės","%n minučių","%n minutė"],
|
||||
"%s (in %s)" : "%s (po %s)",
|
||||
"%s (%s ago)" : "%s (prieš %s)",
|
||||
"Calendar: %s" : "Kalendorius: %s",
|
||||
"Date: %s" : "Data: %s",
|
||||
"Description: %s" : "Aprašas: %s",
|
||||
"Where: %s" : "Kur: %s",
|
||||
"%1$s via %2$s" : "%1$s per %2$s",
|
||||
"In the past on %1$s for the entire day" : "Anksčiau %1$s visą dieną",
|
||||
"_In %n minute on %1$s for the entire day_::_In %n minutes on %1$s for the entire day_" : ["Per %n minutę %1$s visai dienai","Per %n minutes %1$s visai dienai","Per %n minučių %1$s visai dienai","Per %n minučių %1$s visai dienai"],
|
||||
"_In %n hour on %1$s for the entire day_::_In %n hours on %1$s for the entire day_" : ["Per %n valandą %1$s visai dienai","Per %n valandas %1$s visai dienai","Per %n valandų %1$s visai dienai","Per %n valandų %1$s visai dienai"],
|
||||
"_In %n day on %1$s for the entire day_::_In %n days on %1$s for the entire day_" : ["Per %n dieną %1$s visai dienai","Per %n dienas %1$s visai dienai","Per %n dienų %1$s visai dienai","Per %n dienų %1$s visai dienai"],
|
||||
"_In %n week on %1$s for the entire day_::_In %n weeks on %1$s for the entire day_" : ["Per %n savaitę %1$s visai dienai","Per %n savaites %1$s visai dienai","Per %n savaičių %1$s visai dienai","Per %n savaičių %1$s visai dienai"],
|
||||
"_In %n month on %1$s for the entire day_::_In %n months on %1$s for the entire day_" : ["Per %n mėnesį %1$s visai dienai","Per %n mėnesius %1$s visai dienai","Per %n mėnesių %1$s visai dienai","Per %n mėnesių %1$s visai dienai"],
|
||||
"_In %n year on %1$s for the entire day_::_In %n years on %1$s for the entire day_" : ["Per %n metus %1$s visai dienai","Per %n metus %1$s visai dienai","Per %n metų %1$s visai dienai","Per %n metų %1$s visai dienai"],
|
||||
"In the past on %1$s between %2$s - %3$s" : "Anksčiau %1$s tarp %2$s - %3$s",
|
||||
"_In %n minute on %1$s between %2$s - %3$s_::_In %n minutes on %1$s between %2$s - %3$s_" : ["Per %n minutę %1$s tarp %2$s - %3$s","Per %n minutes %1$s tarp %2$s - %3$s","Per %n minučių %1$s tarp %2$s - %3$s","Per %n minučių %1$s tarp %2$s - %3$s"],
|
||||
"_In %n hour on %1$s between %2$s - %3$s_::_In %n hours on %1$s between %2$s - %3$s_" : ["Per %n valandą %1$s tarp %2$s - %3$s","Per %n valandas %1$s tarp %2$s - %3$s","Per %n valandų %1$s tarp %2$s - %3$s","Per %n valandų %1$s tarp %2$s - %3$s"],
|
||||
"_In %n day on %1$s between %2$s - %3$s_::_In %n days on %1$s between %2$s - %3$s_" : ["Per %n dieną %1$s tarp %2$s - %3$s","Per %n dienas %1$s tarp %2$s - %3$s","Per %n dienų %1$s tarp %2$s - %3$s","Per %n dienų %1$s tarp %2$s - %3$s"],
|
||||
"_In %n week on %1$s between %2$s - %3$s_::_In %n weeks on %1$s between %2$s - %3$s_" : ["Per %n savaitę %1$s tarp %2$s - %3$s","Per %n savaites %1$s tarp %2$s - %3$s","Per %n savaičių %1$s tarp %2$s - %3$s","Per %n savaičių %1$s tarp %2$s - %3$s"],
|
||||
"_In %n month on %1$s between %2$s - %3$s_::_In %n months on %1$s between %2$s - %3$s_" : ["Per %n mėnesį %1$s tarp %2$s ir %3$s","Per %n mėnesius %1$s tarp %2$s - %3$s","Per %n mėnesių %1$s tarp %2$s - %3$s","Per %n mėnesių %1$s tarp %2$s - %3$s"],
|
||||
"_In %n year on %1$s between %2$s - %3$s_::_In %n years on %1$s between %2$s - %3$s_" : ["Per %n metus %1$s tarp %2$s - %3$s","Per %n metus %1$s tarp %2$s - %3$s","Per %n metų %1$s tarp %2$s - %3$s","Per %n metų %1$s tarp %2$s - %3$s"],
|
||||
"Could not generate when statement" : "Nepavyko sugeneruoti kada sakinio",
|
||||
"Every Day for the entire day" : "Kiekvieną dieną visą dieną",
|
||||
"Every Day for the entire day until %1$s" : "Kiekvieną dieną visą dieną iki %1$s",
|
||||
"Every Day between %1$s - %2$s" : "Kiekvieną dieną tarp %1$s - %2$s",
|
||||
"Every Day between %1$s - %2$s until %3$s" : "Kiekvieną dieną tarp %1$s - %2$s iki %3$s",
|
||||
"Every %1$d Days for the entire day" : "Kiekvieną %1$d dieną visą dieną",
|
||||
"Every %1$d Days for the entire day until %2$s" : "Kiekvieną %1$d dieną visą dieną iki %2$s",
|
||||
"Every %1$d Days between %2$s - %3$s" : "Kiekvieną %1$d dieną tarp %2$s - %3$s",
|
||||
"Every %1$d Days between %2$s - %3$s until %4$s" : "Kiekvieną %1$d dieną tarp %2$s - %3$s iki %4$s",
|
||||
"Could not generate event recurrence statement" : "Nepavyko sugeneruoti įvykio pasikartojimo sakinio",
|
||||
"Every Week on %1$s for the entire day" : "Kiekvieną savaitę %1$s visą dieną",
|
||||
"Every Week on %1$s for the entire day until %2$s" : "Kiekvieną savaitę %1$s visą dieną iki %2$s",
|
||||
"Every Week on %1$s between %2$s - %3$s" : "Kiekvieną savaitę %1$s tarp %2$s - %3$s",
|
||||
"Every Week on %1$s between %2$s - %3$s until %4$s" : "Kiekvieną savaitę %1$s tarp %2$s - %3$s iki %4$s",
|
||||
"Every %1$d Weeks on %2$s for the entire day" : "Kiekvieną %1$d savaitę %2$s visą dieną",
|
||||
"Every %1$d Weeks on %2$s for the entire day until %3$s" : "Kiekvieną %1$d savaitę %2$s visą dieną iki %3$s",
|
||||
"Every %1$d Weeks on %2$s between %3$s - %4$s" : "Kiekvieną %1$d savaitę %2$s tarp %3$s - %4$s",
|
||||
"Every %1$d Weeks on %2$s between %3$s - %4$s until %5$s" : "Kiekvieną %1$d savaitę %2$s tarp %3$s - %4$s iki %5$s",
|
||||
"Every Month on the %1$s for the entire day" : "Kiekvieną mėnesį %1$s visą dieną",
|
||||
"Every Month on the %1$s for the entire day until %2$s" : "Kiekvieną mėnesį %1$s visą dieną iki %2$s",
|
||||
"Every Month on the %1$s between %2$s - %3$s" : "Kiekvieną mėnesį %1$s tarp %2$s - %3$s",
|
||||
"Every Month on the %1$s between %2$s - %3$s until %4$s" : "Kiekvieną mėnesį %1$s tarp %2$s - %3$s iki %4$s",
|
||||
"Every %1$d Months on the %2$s for the entire day" : "Kiekvieną %1$d mėnesį %2$s visą dieną",
|
||||
"Every %1$d Months on the %2$s for the entire day until %3$s" : "Kiekvieną %1$d mėnesį %2$s visą dieną iki %3$s",
|
||||
"Every %1$d Months on the %2$s between %3$s - %4$s" : "Kiekvieną %1$d mėnesį %2$s tarp %3$s - %4$s",
|
||||
"Every %1$d Months on the %2$s between %3$s - %4$s until %5$s" : "Kiekvieną %1$d mėnesį %2$s tarp %3$s - %4$s iki %5$s",
|
||||
"Every Year in %1$s on the %2$s for the entire day" : "Kiekvienais metais %1$s , %2$s visą dieną",
|
||||
"Every Year in %1$s on the %2$s for the entire day until %3$s" : "Kiekvienais metais %1$s , %2$s visą dieną iki %3$s",
|
||||
"Every Year in %1$s on the %2$s between %3$s - %4$s" : "Kiekvienais metais %1$s , %2$s tarp %3$s - %4$s",
|
||||
"Every Year in %1$s on the %2$s between %3$s - %4$s until %5$s" : "Kiekvienais metais %1$s , %2$s tarp %3$s - %4$s iki %5$s",
|
||||
"Every %1$d Years in %2$s on the %3$s for the entire day" : "Kiekvienais %1$d metais %2$s, %3$s visą dieną",
|
||||
"Every %1$d Years in %2$s on the %3$s for the entire day until %4$s" : "Kiekvienais %1$d metais %2$s , %3$s visą dieną iki %4$s",
|
||||
"Every %1$d Years in %2$s on the %3$s between %4$s - %5$s" : "Kiekvienais %1$d metais %2$s , %3$s tarp %4$s - %5$s",
|
||||
"Every %1$d Years in %2$s on the %3$s between %4$s - %5$s until %6$s" : "Kiekvienais %1$d metais %2$s , %3$s tarp %4$s - %5$s iki %6$s",
|
||||
"On specific dates for the entire day until %1$s" : "Konkrečiomis datomis visą dieną iki %1$s",
|
||||
"On specific dates between %1$s - %2$s until %3$s" : "Konkrečiomis datomis tarp %1$s - %2$s iki %3$s",
|
||||
"In the past on %1$s" : "Praeityje %1$s",
|
||||
"_In %n minute on %1$s_::_In %n minutes on %1$s_" : ["Per %n minutę %1$s","Per %n minutes %1$s","Per %n minučių %1$s","Per %n minučių %1$s"],
|
||||
"_In %n hour on %1$s_::_In %n hours on %1$s_" : ["Per %n valandą %1$s","Per %n valandas %1$s","Per %n valandų %1$s","Per %n valandų %1$s"],
|
||||
"_In %n day on %1$s_::_In %n days on %1$s_" : ["Per %n dieną %1$s","Per %n dienas %1$s","Per %n dienų %1$s","Per %n dienų %1$s"],
|
||||
"_In %n week on %1$s_::_In %n weeks on %1$s_" : ["Per %n savaitę %1$s","Per %n savaites %1$s","Per %n savaičių %1$s","Per %n savaičių %1$s"],
|
||||
"_In %n month on %1$s_::_In %n months on %1$s_" : ["Per %n mėnesį %1$s","Per %n mėnesius %1$s","Per %n mėnesių %1$s","Per %n mėnesių %1$s"],
|
||||
"_In %n year on %1$s_::_In %n years on %1$s_" : ["Per %n metus %1$s","Per %n metus %1$s","Per %n metų %1$s","Per %n metų %1$s"],
|
||||
"In the past on %1$s then on %2$s" : "Anksčiau %1$s tuomet %2$s",
|
||||
"_In %n minute on %1$s then on %2$s_::_In %n minutes on %1$s then on %2$s_" : ["Per %n minutę %1$s tuomet %2$s","Per %n minutes %1$s tuomet %2$s","Per %n minučių %1$s tuomet %2$s","Per %n minučių %1$s tuomet %2$s"],
|
||||
"_In %n hour on %1$s then on %2$s_::_In %n hours on %1$s then on %2$s_" : ["Per %n valandą %1$s tuomet %2$s","Per %n valandas %1$s tuomet %2$s","Per %n valandų %1$s tuomet %2$s","Per %n valandų %1$s tuomet %2$s"],
|
||||
"_In %n day on %1$s then on %2$s_::_In %n days on %1$s then on %2$s_" : ["Per %n dieną %1$s tuomet %2$s","Per %n dienas %1$s tuomet %2$s","Per %n dienų %1$s tuomet %2$s","Per %n dienų %1$s tuomet %2$s"],
|
||||
"_In %n week on %1$s then on %2$s_::_In %n weeks on %1$s then on %2$s_" : ["Per %n savaitę %1$s tuomet %2$s","Per %n savaites %1$s tuomet %2$s","Per %n savaičių %1$s tuomet %2$s","Per %n savaičių %1$s tuomet %2$s"],
|
||||
"_In %n month on %1$s then on %2$s_::_In %n months on %1$s then on %2$s_" : ["Per %n mėnesį %1$s tuomet %2$s","Per %n mėnesius %1$s tuomet %2$s","Per %n mėnesių %1$s tuomet %2$s","Per %n mėnesių %1$s tuomet %2$s"],
|
||||
"_In %n year on %1$s then on %2$s_::_In %n years on %1$s then on %2$s_" : ["Per %n metus %1$s tuomet %2$s","Per %n metus %1$s tuomet %2$s","Per %n metų %1$s tuomet %2$s","Per %n metų %1$s tuomet %2$s"],
|
||||
"In the past on %1$s then on %2$s and %3$s" : "Anksčiau %1$s tuomet %2$s ir %3$s",
|
||||
"_In %n minute on %1$s then on %2$s and %3$s_::_In %n minutes on %1$s then on %2$s and %3$s_" : ["Per %n minutę %1$s tuomet %2$s ir %3$s","Per %n minutes %1$s tuomet %2$s ir %3$s","Per %n minučių %1$s tuomet %2$s ir %3$s","Per %n minučių %1$s tuomet %2$s ir %3$s"],
|
||||
"_In %n hour on %1$s then on %2$s and %3$s_::_In %n hours on %1$s then on %2$s and %3$s_" : ["Per %n valandą %1$s tuomet %2$s ir %3$s","Per %n valandas %1$s tuomet %2$s ir %3$s","Per %n valandų %1$s tuomet %2$s ir %3$s","Per %n valandų %1$s tuomet %2$s ir %3$s"],
|
||||
"_In %n day on %1$s then on %2$s and %3$s_::_In %n days on %1$s then on %2$s and %3$s_" : ["Per %n dieną %1$s tuomet %2$s ir %3$s","Per %n dienas %1$s tuomet %2$s ir %3$s","Per %n dienų %1$s tuomet %2$s ir %3$s","Per %n dienų %1$s tuomet %2$s ir %3$s"],
|
||||
"_In %n week on %1$s then on %2$s and %3$s_::_In %n weeks on %1$s then on %2$s and %3$s_" : ["Per %n savaitę %1$s tuomet %2$s ir %3$s","Per %n savaites %1$s tuomet %2$s ir %3$s","Per %n savaičių %1$s tuomet %2$s ir %3$s","Per %n savaičių %1$s tuomet %2$s ir %3$s"],
|
||||
"_In %n month on %1$s then on %2$s and %3$s_::_In %n months on %1$s then on %2$s and %3$s_" : ["Per %n mėnesį %1$s tuomet %2$s ir %3$s","Per %n mėnesius %1$s tuomet %2$s ir %3$s","Per %n mėnesių %1$s tuomet %2$s ir %3$s","Per %n mėnesių %1$s tuomet %2$s ir %3$s"],
|
||||
"_In %n year on %1$s then on %2$s and %3$s_::_In %n years on %1$s then on %2$s and %3$s_" : ["Per %n metus %1$s tuomet %2$s ir %3$s","Per %n metus %1$s tuomet %2$s ir %3$s","Per %n metų %1$s tuomet %2$s ir %3$s","Per %n metų %1$s tuomet %2$s ir %3$s"],
|
||||
"Could not generate next recurrence statement" : "Nepavyko sugeneruoti kito pasikartojimo sakinio",
|
||||
"Cancelled: %1$s" : "Atšaukta: %1$s",
|
||||
"\"%1$s\" has been canceled" : "\"%1$s\" buvo atšauktas",
|
||||
"Re: %1$s" : "Dėl: %1$s",
|
||||
"%1$s has accepted your invitation" : "%1$s priėmė jūsų kvietimą",
|
||||
"%1$s has tentatively accepted your invitation" : "%1$s preliminariai priėmė jūsų kvietimą",
|
||||
"%1$s has declined your invitation" : "%1$s atmetė jūsų kvietimą",
|
||||
"%1$s has responded to your invitation" : "%1$s atsakė į jūsų kvietimą",
|
||||
"Invitation updated: %1$s" : "Kvietimas atnaujintas: %1$s",
|
||||
"%1$s updated the event \"%2$s\"" : "%1$s atnaujino įvykį \"%2$s\"",
|
||||
"Invitation: %1$s" : "Pakvietimas: %1$s",
|
||||
"%1$s would like to invite you to \"%2$s\"" : "%1$s norėtų jus pakviesti į \"%2$s\"",
|
||||
"Organizer:" : "Organizatorius:",
|
||||
"Attendees:" : "Kviestiniai:",
|
||||
"Title:" : "Pavadinimas:",
|
||||
"When:" : "Kada:",
|
||||
"Location:" : "Vieta:",
|
||||
"Link:" : "Nuoroda:",
|
||||
"Occurring:" : "Pasitaiko:",
|
||||
"Accept" : "Priimti",
|
||||
"Decline" : "Atmesti",
|
||||
"More options …" : "Daugiau parinkčių…",
|
||||
"More options at %s" : "Daugiau parinkčių %s",
|
||||
"Monday" : "Pirmadienis",
|
||||
"Tuesday" : "Antradienis",
|
||||
"Wednesday" : "Trečiadienis",
|
||||
"Thursday" : "Ketvirtadienis",
|
||||
"Friday" : "Penktadienis",
|
||||
"Saturday" : "Šeštadienis",
|
||||
"Sunday" : "Sekmadienis",
|
||||
"January" : "Sausis",
|
||||
"February" : "Vasaris",
|
||||
"March" : "Kovas",
|
||||
"April" : "Balandis",
|
||||
"May" : "Gegužė",
|
||||
"June" : "Birželis",
|
||||
"July" : "Liepa",
|
||||
"August" : "Rugpjūtis",
|
||||
"September" : "Rugsėjis",
|
||||
"October" : "Spalis",
|
||||
"November" : "Lapkritis",
|
||||
"December" : "Gruodis",
|
||||
"First" : "Pirmas",
|
||||
"Second" : "Antras",
|
||||
"Third" : "Trečias",
|
||||
"Fourth" : "Ketvirtas",
|
||||
"Fifth" : "Penktas",
|
||||
"Last" : "Paskutinis",
|
||||
"Second Last" : "Antras paskutinis",
|
||||
"Third Last" : "Trečias paskutinis",
|
||||
"Fourth Last" : "Ketvirtasis paskutinis",
|
||||
"Fifth Last" : "Penktas paskutinis",
|
||||
"Contacts" : "Adresatai",
|
||||
"{actor} created address book {addressbook}" : "{actor} sukūrė adresų knygą {addressbook}",
|
||||
"You created address book {addressbook}" : "Jūs sukūrėte adresų knygą {addressbook}",
|
||||
"{actor} deleted address book {addressbook}" : "{actor} ištrynė adresų knygą {addressbook}",
|
||||
"You deleted address book {addressbook}" : "Jūs ištrynėte adresų knygą {addressbook}",
|
||||
"{actor} updated address book {addressbook}" : "{actor} atnaujino adresų knygą {addressbook}",
|
||||
"You updated address book {addressbook}" : "Jūs atnaujinote adresų knygą {addressbook}",
|
||||
"{actor} shared address book {addressbook} with you" : "{actor} pasidalino su jumis {addressbook} adresų knyga",
|
||||
"You shared address book {addressbook} with {user}" : "Jūs pasidalinote {addressbook} adresų knyga su {user}",
|
||||
"{actor} shared address book {addressbook} with {user}" : "{actor} pasidalino {addressbook} adresų knyga su {user}",
|
||||
"{actor} unshared address book {addressbook} from you" : "{actor} atšaukė su jumis bendrinamą {addressbook} adresų knygą",
|
||||
"You unshared address book {addressbook} from {user}" : "Jūs atšaukėte bendrinamą {addressbook} adresų knygą su {user}",
|
||||
"{actor} unshared address book {addressbook} from {user}" : "{actor} atšaukė {addressbook} bendrinamą adresų knygą su {user}",
|
||||
"{actor} unshared address book {addressbook} from themselves" : "{actor} atšaukė savo paties bendrinamą {addressbook} adresų knygą",
|
||||
"You shared address book {addressbook} with group {group}" : "Jūs bendrinote {addressbook} adresų knygą su {group} grupe",
|
||||
"{actor} shared address book {addressbook} with group {group}" : "{actor} bendrino {addressbook} adresų knygą su {group} grupe",
|
||||
"You unshared address book {addressbook} from group {group}" : "Jūs atšaukėte bendrinamą {addressbook}adresų knygą su {group} grupe",
|
||||
"{actor} unshared address book {addressbook} from group {group}" : "{actor} atšaukė bendrinamą {addressbook} adresų knygą su {group} grupe",
|
||||
"{actor} created contact {card} in address book {addressbook}" : "{actor} sukūrė {card} kontaktą {addressbook} adresų knygoje",
|
||||
"You created contact {card} in address book {addressbook}" : "Jūs sukūrėte {card} kontaktą {addressbook} adresų knygoje",
|
||||
"{actor} deleted contact {card} from address book {addressbook}" : "{actor} ištrynė {card} kontaktų iš {addressbook} adresų knygos",
|
||||
"You deleted contact {card} from address book {addressbook}" : "Jūs ištrynėte {card} kontaktą iš {addressbook} adresų knygos",
|
||||
"{actor} updated contact {card} in address book {addressbook}" : "{actor} atnaujino {card} kontaktą {addressbook} adresų knygoje",
|
||||
"You updated contact {card} in address book {addressbook}" : "Jūs atnaujinote {card} kontaktą {addressbook} adresų knygoje",
|
||||
"A <strong>contact</strong> or <strong>address book</strong> was modified" : "<strong>kontaktas</strong> arba <strong>adresų knyga</strong> buvo atnaujinta",
|
||||
"System address book disabled" : "Sistemos adresų knyga išjungta",
|
||||
"The system contacts address book has been automatically disabled during upgrade. This means that the address book will no longer be available to users in the contacts app or other clients. The system contacts address book was disabled because the amount of contacts in the address book exceeded the maximum recommended number of contacts. This limit is set to prevent performance issues. You can re-enable the system address book with the following command {command}" : "Sistemos kontaktų adresų knyga buvo automatiškai išjungta atnaujinimo metu. Tai reiškia, kad adresų knyga nebebus pasiekiama vartotojams kontaktų programėlėje ar kituose klientuose. Sistemos kontaktų adresų knyga buvo išjungta, nes joje esančių kontaktų skaičius viršijo maksimalų rekomenduojamą kontaktų skaičių. Šis apribojimas nustatytas siekiant išvengti našumo problemų. Sistemos adresų knygą galite iš naujo įjungti naudodami šią komandą {command}.",
|
||||
"Accounts" : "Paskyros",
|
||||
"System address book which holds all accounts" : "Sistemos adresų knyga, kurioje saugomos visos paskyros",
|
||||
"File is not updatable: %1$s" : "Failo atnaujinamas negalimas: %1$s",
|
||||
"Failed to get storage for file" : "Nepavyko gauti failo saugyklos vietos",
|
||||
"Could not write to final file, canceled by hook" : "Nepavyko įrašyti į galutinį failą, atšaukta naudojant interceptorių",
|
||||
"Could not write file contents" : "Nepavyko įrašyti failo turinio",
|
||||
"_%n byte_::_%n bytes_" : ["%n baitas","%n baitai","%n baitų","%n baitų"],
|
||||
"Error while copying file to target location (copied: %1$s, expected filesize: %2$s)" : "Klaida kopijuojant failą į paskirties vietą (nukopijuota: %1$s, numatomas failo dydis: %2$s)",
|
||||
"Expected filesize of %1$s but read (from Nextcloud client) and wrote (to Nextcloud storage) %2$s. Could either be a network problem on the sending side or a problem writing to the storage on the server side." : "Tikėtasi %1$s failo dydžio, bet nuskaityta (iš „Nextcloud“ kliento) ir įrašyta (į „Nextcloud“ saugyklą) %2$s. Gali būti tinklo problema siuntėjo pusėje arba problema rašant į saugyklą serverio pusėje.",
|
||||
"Could not rename part file to final file, canceled by hook" : "Nepavyko pervadinti dalinio failo į galutinį failą, atšaukta naudojant interceptorių",
|
||||
"Could not rename part file to final file" : "Nepavyko pervadinti dalinio failo į galutinį failą",
|
||||
"Failed to check file size: %1$s" : "Nepavyko patikrinti failo dydžio: %1$s",
|
||||
"Could not open file: %1$s (%2$d), file does seem to exist" : "Nepavyko atidaryti failo: %1$s (%2$d), atrodo, kad failas egzistuoja",
|
||||
"Could not open file: %1$s (%2$d), file doesn't seem to exist" : "Nepavyko atidaryti failo: %1$s (%2$d), atrodo, kad failo nėra",
|
||||
"Failed to get size for : %1$s" : "Nepavyko gauti %1$s dydžio",
|
||||
"Encryption not ready: %1$s" : "Šifravimas neparuoštas: %1$s",
|
||||
"Failed to open file: %1$s" : "Nepavyko atverti failo: %1$s",
|
||||
"Failed to unlink: %1$s" : "Nepavyko atsieti: %1$s",
|
||||
"Failed to write file contents: %1$s" : "Nepavyko įrašyti failo turinio: %1$s",
|
||||
"File not found: %1$s" : "Failas nerastas: %1$s",
|
||||
"Invalid target path" : "Netinkamas tikslinis kelias",
|
||||
"System is in maintenance mode." : "Sistema yra techninės priežiūros veiksenoje.",
|
||||
"Upgrade needed" : "Reikalingas naujinimas",
|
||||
"Your %s needs to be configured to use HTTPS in order to use CalDAV and CardDAV with iOS/macOS." : "Norint naudoti CalDAV ir CardDAV su iOS/macOS, jūsų %s turi būti sukonfigūruota taip, kad naudotų HTTPS.",
|
||||
"Configures a CalDAV account" : "Konfigūruoja CalDAV paskyrą",
|
||||
"Configures a CardDAV account" : "Konfigūruoja CardDAV paskyrą",
|
||||
"Events" : "Įvykiai",
|
||||
"Untitled task" : "Užduotis be pavadinimo",
|
||||
"Completed on %s" : "Pabaigta %s",
|
||||
"Due on %s by %s" : "Laukiamas %s iki %s",
|
||||
"Due on %s" : "Laukiamas %s",
|
||||
"This is an example contact" : "Tai yra kontakto pavyzdys",
|
||||
"Welcome to Nextcloud Calendar!\n\nThis is a sample event - explore the flexibility of planning with Nextcloud Calendar by making any edits you want!\n\nWith Nextcloud Calendar, you can:\n- Create, edit, and manage events effortlessly.\n- Create multiple calendars and share them with teammates, friends, or family.\n- Check availability and display your busy times to others.\n- Seamlessly integrate with apps and devices via CalDAV.\n- Customize your experience: schedule recurring events, adjust notifications and other settings." : "Sveiki atvykę į „Nextcloud“ kalendorių!\n\nTai pavyzdinis įrašas – išbandykite planavimo lankstumą su „Nextcloud“ kalendoriumi, atlikdami bet kokius norimus pakeitimus!\n\nSu „Nextcloud“ kalendoriumi galite:\n- Nesunkiai kurti, redaguoti ir valdyti įvykius.\n- Kurti kelis kalendorius ir bendrinti juos su komandos nariais, draugais ar šeima.\n- Patikrinti prieinamumą ir rodyti savo užimtumo laiką kitiems.\n- Sklandžiai integruotis su programėlėmis ir įrenginiais per „CalDAV“.\n- Tinkinti savo patirtį: planuoti pasikartojančius įvykius, koreguoti pranešimus ir kitus nustatymus.",
|
||||
"Example event - open me!" : "Pavyzdinis įvykis – atverk mane!",
|
||||
"System Address Book" : "Sistemos adresų knyga",
|
||||
"The system address book contains contact information for all users in your instance." : "Sistemos adresų knygoje yra visų jūsų turimų vartotojų kontaktinė informacija.",
|
||||
"Enable System Address Book" : "Įjungti sistemos adresų knygą",
|
||||
"DAV system address book" : "DAV sistemos adresų knyga",
|
||||
"No outstanding DAV system address book sync." : "Nėra jokių nepatvirtintų DAV sistemos adresų knygos sinchronizavimo.",
|
||||
"The DAV system address book sync has not run yet as your instance has more than 1000 users or because an error occurred. Please run it manually by calling \"occ dav:sync-system-addressbook\"." : "DAV sistemos adresų knygos sinchronizavimas dar nebuvo paleistas, nes jūsų egzemplioriuje yra daugiau nei 1000 vartotojų arba įvyko klaida. Paleiskite jį rankiniu būdu, iškviečiant „occ dav:sync-system-addressbook“.",
|
||||
"DAV system address book size" : "DAV sistemos adresų knygos dydis",
|
||||
"The system address book is disabled" : "Sistemos adresų knyga išjungta",
|
||||
"The system address book is enabled, but contains more than the configured limit of %d contacts" : "Sistemos adresų knyga įjungta ir joje yra daugiau kontaktų nei nustatyta riba, t.y. %d kontaktų",
|
||||
"The system address book is enabled and contains less than the configured limit of %d contacts" : "Sistemos adresų knyga įjungta ir joje yra mažiau kontaktų nei nustatyta riba, t.y. %d kontaktų",
|
||||
"WebDAV endpoint" : "WebDAV galutinis taškas",
|
||||
"Could not check that your web server is properly set up to allow file synchronization over WebDAV. Please check manually." : "Nepavyko patikrinti, ar jūsų žiniatinklio serveris tinkamai nustatytas leisti failų sinchronizavimą per WebDAV. Patikrinkite rankiniu būdu.",
|
||||
"Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Jūsų svetainės serveris nėra tinkamai sukonfiguruotas, Failų sinchronizavimas negalimas, nes neveikia WebDAV interfeisas.",
|
||||
"Your web server is properly set up to allow file synchronization over WebDAV." : "Jūsų žiniatinklio serveris tinkamai sukonfigūruotas, kad būtų galima sinchronizuoti failus per WebDAV.",
|
||||
"Calendars including events, details and attendees" : "Kalendoriai su įvykiais, informacija ir dalyviais",
|
||||
"Migrated calendar (%1$s)" : "Perkeltas kalendorius (%1$s)",
|
||||
"Contacts and groups" : "Adresatai ir grupės",
|
||||
"WebDAV" : "WebDAV",
|
||||
"Absence saved" : "Išsaugotas nebuvimas",
|
||||
"Failed to save your absence settings" : "Nepavyko išsaugoti jūsų nebuvimo nustatymų",
|
||||
"Absence cleared" : "Nebuvimas pašalintas",
|
||||
"Failed to clear your absence settings" : "Nepavyko išvalyti nedalyvavimo nustatymų",
|
||||
"First day" : "Pirma diena",
|
||||
"Last day (inclusive)" : "Paskutinė diena (imtinai)",
|
||||
"Out of office replacement (optional)" : "Nebuvimo biure pakeitimas (neprivaloma)",
|
||||
"Name of the replacement" : "Pakeitimo pavadinimas",
|
||||
"Short absence status" : "Trumpo nebuvimo būsena",
|
||||
"Long absence Message" : "Ilgo nebuvimo žinutė",
|
||||
"Save" : "Įrašyti",
|
||||
"Disable absence" : "Išjungti nebuvimą",
|
||||
"Failed to load availability" : "Nepavyko įkelti prieinamumo",
|
||||
"Saved availability" : "Išsaugotas pasiekiamumas",
|
||||
"Failed to save availability" : "Nepavyko išsaugoti pasiekiamumo",
|
||||
"to" : "iki",
|
||||
"Delete slot" : "Ištrinti laiko tarpą",
|
||||
"No working hours set" : "Nenustatyta jokių darbo valandų",
|
||||
"Add slot" : "Pridėti laiko tarpą",
|
||||
"Weekdays" : "Šiokiadieniai",
|
||||
"Pick a start time for {dayName}" : "Pasirinkite {dayName} pradžios laiką",
|
||||
"Pick a end time for {dayName}" : "Pasirinkite {dayName} pabaigos laiką",
|
||||
"Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications." : "Automatiškai nustatyti naudotojo būseną į „Netrukdyti“, kai jis nėra pasiekiamas, kad būtų nutildyti visi pranešimai.",
|
||||
"Cancel" : "Atsisakyti",
|
||||
"Import" : "Importuoti",
|
||||
"Error while saving settings" : "Klaida įrašant nustatymus",
|
||||
"Contact reset successfully" : "Kontaktas sėkmingai nustatytas iš naujo",
|
||||
"Error while resetting contact" : "Iš naujo nustatant kontaktą įvyko klaida",
|
||||
"Contact imported successfully" : "Kontaktas sėkmingai importuotas",
|
||||
"Error while importing contact" : "Importuojant kontaktą įvyko klaida",
|
||||
"Import contact" : "Importuoti kontaktą",
|
||||
"Reset to default" : "Atstatyti į numatytąjį",
|
||||
"Import contacts" : "Importuoti kontaktus",
|
||||
"Importing a new .vcf file will delete the existing default contact and replace it with the new one. Do you want to continue?" : "Importuojant naują .vcf failą, esamas numatytasis kontaktas bus ištrintas ir pakeistas nauju. Ar norite tęsti?",
|
||||
"Failed to save example event creation setting" : "Nepavyko išsaugoti pavyzdinio įvykio kūrimo nustatymo",
|
||||
"Failed to upload the example event" : "Nepavyko įkelti pavyzdinio įvykio",
|
||||
"Custom example event was saved successfully" : "Pasirinktinis pavyzdinis įvykis sėkmingai išsaugotas",
|
||||
"Failed to delete the custom example event" : "Nepavyko ištrinti pasirinktinio pavyzdžio įvykio",
|
||||
"Custom example event was deleted successfully" : "Pasirinktinis pavyzdinis įvykis sėkmingai ištrintas",
|
||||
"Import calendar event" : "Importuoti kalendoriaus įvykį",
|
||||
"Uploading a new event will overwrite the existing one." : "Įkėlus naują įvykį, esamas bus perrašytas.",
|
||||
"Upload event" : "Įkelti įvykį",
|
||||
"Also install the {calendarappstoreopen}Calendar app{linkclose}, or {calendardocopen}connect your desktop & mobile for syncing ↗{linkclose}." : "Taip pat įsidiekite {calendarappstoreopen}Kalendoriaus programėlę{linkclose} arba sinchronizavimui {calendardocopen}prijunkite savo darbalaukį ir mobilųjį ↗{linkclose}.",
|
||||
"Please make sure to properly set up {emailopen}the email server{linkclose}." : "Įsitikinkite, kad tinkamai nusistatėte {emailopen}el. pašto serverį{linkclose}.",
|
||||
"Calendar server" : "Kalendoriaus serveris",
|
||||
"Send invitations to attendees" : "Siųsti pakvietimus kviestiniams",
|
||||
"Automatically generate a birthday calendar" : "Automatiškai sukurti gimtadienių kalendorių",
|
||||
"Birthday calendars will be generated by a background job." : "Gimtadienių kalendoriai bus sukurti foninės užduoties.",
|
||||
"Hence they will not be available immediately after enabling but will show up after some time." : "Tai reiškia, kad jie nebus matomi iš karto įjungus, o pasirodys tik po kurio laiko.",
|
||||
"Send notifications for events" : "Siųsti įvykių pranešimus",
|
||||
"Notifications are sent via background jobs, so these must occur often enough." : "Pranešimai yra siunčiami per fonines užduotis, todėl jos privalo būti vykdomos gana dažnai.",
|
||||
"Send reminder notifications to calendar sharees as well" : "Siųskite priminimus ir tiems, kurie bendrina kalendorių",
|
||||
"Reminders are always sent to organizers and attendees." : "Priminimai visada siunčiami organizatoriams ir dalyviams.",
|
||||
"Enable notifications for events via push" : "Įjungti pranešimus apie įvykius per tiesioginius pranešimus",
|
||||
"Example content" : "Turinio pavyzdys",
|
||||
"Example content serves to showcase the features of Nextcloud. Default content is shipped with Nextcloud, and can be replaced by custom content." : "Pavyzdinis turinys skirtas „Nextcloud“ funkcijoms demonstruoti. Numatytasis turinys pateikiamas kartu su „Nextcloud“ ir gali būti pakeistas pasirinktiniu turiniu.",
|
||||
"Availability" : "Pasiekiamumas",
|
||||
"If you configure your working hours, other people will see when you are out of office when they book a meeting." : "Jei sukonfigūruosite savo darbo valandas, kiti žmonės, rezervuodami susitikimą, matys, kada esate išvykę.",
|
||||
"Absence" : "Nebuvimas",
|
||||
"Configure your next absence period." : "Konfigūruokite kitą nebuvimo laikotarpį.",
|
||||
"There was an error updating your attendance status." : "Atnaujinant lankomumo būseną įvyko klaida.",
|
||||
"Please contact the organizer directly." : "Prašome susisiekti su organizatoriumi tiesiogiai.",
|
||||
"Are you accepting the invitation?" : "Ar priimate pakvietimą?",
|
||||
"Tentative" : "Preliminarus",
|
||||
"Your attendance was updated successfully." : "Jūsų lankomumas sėkmingai atnaujintas.",
|
||||
"No results." : "Jokių rezultatų.",
|
||||
"Start typing." : "Start typing."
|
||||
},"pluralForm" :"nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);"
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user