Compare commits

...

20 Commits
main ... v1.9.0

Author SHA1 Message Date
Julius Härtl
d9014903ac Bump version to 1.9.0
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-15 14:57:12 +01:00
Nextcloud bot
e7529e2d74 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-15 02:38:43 +00:00
Julius Härtl
c0e07dc202 Merge pull request #4530 from nextcloud/automated/noid/stable26-update-nextcloud-ocp 2023-03-12 15:22:56 +01:00
nextcloud-command
2619219618 chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2023-03-12 03:16:40 +00:00
Julius Härtl
87a0a4ed4f Merge pull request #4525 from nextcloud/backport/4510/stable26 2023-03-10 08:54:08 +01:00
Julius Härtl
df01d8ef79 fix(sessions): Do not send close request without token
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-10 07:27:22 +00:00
Nextcloud bot
9f38e51d9b Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-10 02:40:05 +00:00
Julius Härtl
3f2e343541 Merge pull request #4521 from nextcloud/backport/4512/stable26 2023-03-08 18:59:04 +01:00
Julius Härtl
ea6006bec0 fix(cards): Fix card sizing by limiting too wide style rules
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-08 17:41:03 +00:00
Joas Schilling
1e625d3955 Merge pull request #4519 from nextcloud/backport/4518/stable26
[stable26] fix(API): Fix board API details parameter to work as expected
2023-03-08 09:22:32 +01:00
Joas Schilling
4b0a27d6b5 fix(API): Fix board API details parameter to work as expected
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-08 07:43:46 +00:00
Marcel Klehr
9cc38000fd Merge pull request #4516 from nextcloud/backport/4514/stable26 2023-03-07 10:51:40 +01:00
Julius Härtl
3574abe0cb fix(references): Mute NoPermissionException as it is expected to happen for references
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-07 09:24:39 +00:00
Julius Härtl
fb5aed2143 chore(release): Bump version to 1.8.0-beta.2
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-06 07:14:34 +01:00
Julius Härtl
3506ac2a42 Merge pull request #4509 from nextcloud/automated/noid/stable26-update-nextcloud-ocp 2023-03-06 07:12:08 +01:00
Nextcloud bot
1f2f8fe001 Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-06 02:39:11 +00:00
nextcloud-command
97d9c4cc2c chore(dev-deps): Bump nextcloud/ocp package
Signed-off-by: GitHub <noreply@github.com>
2023-03-05 03:18:56 +00:00
Julius Härtl
b169ecd0fe Merge pull request #4498 from nextcloud/update-stable26-target-versions 2023-03-04 11:55:03 +01:00
Nextcloud bot
912376a99d Fix(l10n): 🔠 Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2023-03-04 02:40:24 +00:00
Joas Schilling
3ec2ad99b1 chore(CI): Adjust testing matrix for Nextcloud 26 on stable26
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-03 13:25:30 +01:00
22 changed files with 347 additions and 195 deletions

View File

@@ -23,7 +23,7 @@ jobs:
# containers: [1, 2, 3]
php-versions: [ '8.0' ]
databases: [ 'sqlite' ]
server-versions: [ 'master' ]
server-versions: [ 'stable26' ]
steps:
- name: Use Node.js ${{ matrix.node-version }}

View File

@@ -28,7 +28,7 @@ jobs:
matrix:
php-versions: ['8.1']
databases: ['sqlite', 'mysql', 'pgsql']
server-versions: ['master']
server-versions: ['stable26']
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
@@ -151,4 +151,4 @@ jobs:
repo: context.repo.repo,
body: comment
})
}
}

View File

@@ -26,9 +26,9 @@ jobs:
strategy:
fail-fast: false
matrix:
php-versions: ['8.0', '8.1']
php-versions: ['8.0', '8.1', '8.2']
databases: ['sqlite', 'mysql', 'pgsql']
server-versions: ['master']
server-versions: ['stable26']
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}

View File

@@ -1,20 +1,31 @@
# Changelog
All notable changes to this project will be documented in this file.
## 1.9.0-beta.1
## 1.9.0
### Added
- Export Board @david-loe [#3065](https://github.com/nextcloud/deck/pull/3065)
- basic notify_push usage with session handling @alangecker [#3876](https://github.com/nextcloud/deck/pull/3876)
- feat(Description): Use text as editor if available @juliushaertl [#4399](https://github.com/nextcloud/deck/pull/4399)
- Live updates on board collaboration using notify_push @alangecker [#4273](https://github.com/nextcloud/deck/pull/4273)
- Basic notify_push usage with session handling @alangecker [#3876](https://github.com/nextcloud/deck/pull/3876)
- Use text as editor if available [#4399](https://github.com/nextcloud/deck/pull/4399)
- Improve reference provider and add reference widgets @julien-nc [#4422](https://github.com/nextcloud/deck/pull/4422)
- live updates 🎉 @alangecker [#4273](https://github.com/nextcloud/deck/pull/4273)
- Tag creation from card view @juliushaertl [#4344](https://github.com/nextcloud/deck/pull/4344)
- Optimize query performance with larger board or card count @[#4452](https://github.com/nextcloud/deck/pull/4452)
- Export Board as CSV @david-loe [#3065](https://github.com/nextcloud/deck/pull/3065)
### Fixed
- fix(cards): Fix card sizing by limiting too wide style rules [#4521](https://github.com/nextcloud/deck/pull/4521)
- fix(references): Mute NoPermissionException as it is expected to happen for references [#4516](https://github.com/nextcloud/deck/pull/4516)
- fix(API): Fix board API details parameter to work as expected [#4519](https://github.com/nextcloud/deck/pull/4519)
- fix(sessions): Do not send close request without token [#4525](https://github.com/nextcloud/deck/pull/4525)
- fix: Avoid mutating the due date when calculating days @juliushaertl [#4488](https://github.com/nextcloud/deck/pull/4488)
- fix: Pass user id along to properly check permissions in background jobs @juliushaertl [#4485](https://github.com/nextcloud/deck/pull/4485)
- fix: Use passed userid when getting attachment folder @juliushaertl [#4487](https://github.com/nextcloud/deck/pull/4487)
- fix: Use proper z-index for text menubar @juliushaertl [#4490](https://github.com/nextcloud/deck/pull/4490)
- fix(dashboard): Fix undefined array index @marcelklehr [#4492](https://github.com/nextcloud/deck/pull/4492)
- fix: Always return sorted index array to make sure a json array is the result @juliushaertl [#4493](https://github.com/nextcloud/deck/pull/4493)
- Fix component renaming so that acl works on shares again @small1 [#4315](https://github.com/nextcloud/deck/pull/4315)
- fix(Sidebar): Only close sidebar on v-click-outside for specific targets @juliushaertl [#4350](https://github.com/nextcloud/deck/pull/4350)
- add basic e2e tests for stack title @shoetten [#4206](https://github.com/nextcloud/deck/pull/4206)
@@ -24,10 +35,6 @@ All notable changes to this project will be documented in this file.
- perf: Register notifier and resource listener lazy @juliushaertl [#4439](https://github.com/nextcloud/deck/pull/4439)
- perf: Lazy load dashboard components @juliushaertl [#4440](https://github.com/nextcloud/deck/pull/4440)
- Optimise upcomming overview creation @Raudius [#3793](https://github.com/nextcloud/deck/pull/3793)
- Performance boost @juliushaertl [#4452](https://github.com/nextcloud/deck/pull/4452)
### Other
- Dependency updates
## 1.8.0-beta.1

View File

@@ -16,7 +16,7 @@
- 🚀 Get your project organized
</description>
<version>1.9.0-beta.1</version>
<version>1.9.0</version>
<licence>agpl</licence>
<author>Julius Härtl</author>
<documentation>

View File

@@ -19,7 +19,7 @@
"symfony/event-dispatcher": "^4.0",
"vimeo/psalm": "^5.4",
"php-parallel-lint/php-parallel-lint": "^1.2",
"nextcloud/ocp": "dev-master"
"nextcloud/ocp": "dev-stable26"
},
"config": {
"optimize-autoloader": true,

64
composer.lock generated
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "22d201a4569de6d4fafbc13277ae91a6",
"content-hash": "7f234626b3fd062832a6387b9434427c",
"packages": [
{
"name": "cogpowered/finediff",
@@ -1253,26 +1253,24 @@
},
{
"name": "nextcloud/ocp",
"version": "dev-master",
"version": "dev-stable26",
"source": {
"type": "git",
"url": "https://github.com/nextcloud-deps/ocp.git",
"reference": "5636b942e35ee391b1103150261d83d3d753d657"
"reference": "cd0f1f72b7589f7751a06d379c9e886ecce5b6d6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/5636b942e35ee391b1103150261d83d3d753d657",
"reference": "5636b942e35ee391b1103150261d83d3d753d657",
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/cd0f1f72b7589f7751a06d379c9e886ecce5b6d6",
"reference": "cd0f1f72b7589f7751a06d379c9e886ecce5b6d6",
"shasum": ""
},
"require": {
"php": "^7.4 || ~8.0 || ~8.1",
"psr/clock": "^1.0",
"psr/container": "^1.1.1",
"psr/event-dispatcher": "^1.0",
"psr/log": "^1.1"
},
"default-branch": true,
"type": "library",
"extra": {
"branch-alias": {
@@ -1292,9 +1290,9 @@
"description": "Composer package containing Nextcloud's public API (classes, interfaces)",
"support": {
"issues": "https://github.com/nextcloud-deps/ocp/issues",
"source": "https://github.com/nextcloud-deps/ocp/tree/master"
"source": "https://github.com/nextcloud-deps/ocp/tree/stable26"
},
"time": "2023-02-08T00:37:37+00:00"
"time": "2023-03-10T00:40:06+00:00"
},
{
"name": "nikic/php-parser",
@@ -2206,54 +2204,6 @@
},
"time": "2021-02-03T23:26:27+00:00"
},
{
"name": "psr/clock",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/clock.git",
"reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/clock/zipball/e41a24703d4560fd0acb709162f73b8adfc3aa0d",
"reference": "e41a24703d4560fd0acb709162f73b8adfc3aa0d",
"shasum": ""
},
"require": {
"php": "^7.0 || ^8.0"
},
"type": "library",
"autoload": {
"psr-4": {
"Psr\\Clock\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "https://www.php-fig.org/"
}
],
"description": "Common interface for reading the clock.",
"homepage": "https://github.com/php-fig/clock",
"keywords": [
"clock",
"now",
"psr",
"psr-20",
"time"
],
"support": {
"issues": "https://github.com/php-fig/clock/issues",
"source": "https://github.com/php-fig/clock/tree/1.0.0"
},
"time": "2022-11-25T14:36:26+00:00"
},
{
"name": "psr/container",
"version": "1.1.2",

View File

@@ -3,6 +3,14 @@ OC.L10N.register(
{
"Personal" : "Անձնական",
"Done" : "Done",
"The file was uploaded" : "Նիշքը վերբերռնված է",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Վերբեռնած նիշքը գերազանցում է upload_max_filesize սահմանված php.ini֊ում",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Վերբեռնած նիշքը գերազանցում է MAX_FILE_SIZE, որը սահմանված է HTML ձևաթղթում",
"The file was only partially uploaded" : "Նիշքի մի մասն է վերբեռնված",
"No file was uploaded" : "Ոչ մի նիշք չի վերնբեռնվել",
"Missing a temporary folder" : "Բացակայում է ժամանակավոր պանակը",
"Could not write file to disk" : "Չհաջողվեց գրառել նիշքը սկավառակի վրա",
"A PHP extension stopped the file upload" : "PHP֊ի ընդլայնումն կանգնեցրեց նիշքի վերբեռնումը",
"Cancel" : "ընդհատել",
"Close" : "Փակել",
"Details" : "Մանրամասներ",

View File

@@ -1,6 +1,14 @@
{ "translations": {
"Personal" : "Անձնական",
"Done" : "Done",
"The file was uploaded" : "Նիշքը վերբերռնված է",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Վերբեռնած նիշքը գերազանցում է upload_max_filesize սահմանված php.ini֊ում",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Վերբեռնած նիշքը գերազանցում է MAX_FILE_SIZE, որը սահմանված է HTML ձևաթղթում",
"The file was only partially uploaded" : "Նիշքի մի մասն է վերբեռնված",
"No file was uploaded" : "Ոչ մի նիշք չի վերնբեռնվել",
"Missing a temporary folder" : "Բացակայում է ժամանակավոր պանակը",
"Could not write file to disk" : "Չհաջողվեց գրառել նիշքը սկավառակի վրա",
"A PHP extension stopped the file upload" : "PHP֊ի ընդլայնումն կանգնեցրեց նիշքի վերբեռնումը",
"Cancel" : "ընդհատել",
"Close" : "Փակել",
"Details" : "Մանրամասներ",

View File

@@ -67,6 +67,7 @@ OC.L10N.register(
"Deck" : "Longgok",
"Changes in the <strong>Deck app</strong>" : "Perubahan pada <strong>aplikasi Longgok</strong>",
"A <strong>comment</strong> was created on a card" : "<strong>Komentar</strong> telah dibuat pada suatu kartu",
"Upcoming cards" : "Kartu berikut",
"Personal" : "Personal",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Kartu \"%s\" pada \"%s\" telah ditugaskan kepada Anda oleh %s.",
"The card \"%s\" on \"%s\" has reached its due date." : "Kartu \"%s\" pada \"%s\" telah melampaui tenggat.",
@@ -93,6 +94,7 @@ OC.L10N.register(
"Could not write file to disk" : "Tidak dapat menulis berkas ke diska",
"A PHP extension stopped the file upload" : "Ekstensi PHP menghentikan proses unggah berkas",
"No file uploaded or file size exceeds maximum of %s" : "Gagal unggah berkas atau ukuran melampaui batas maksimum %s",
"Card not found" : "Kartu tidak ditemukan",
"Invalid date, date format must be YYYY-MM-DD" : "Tanggal salah, format tanggal harus TTTT-BB-HH",
"Personal planning and team project organization" : "Perencanaan pribadi dan pengelolaan proyek tim",
"Add board" : "Tambah papan",
@@ -115,10 +117,12 @@ OC.L10N.register(
"Drop your files to upload" : "Lepas berkas Anda untuk mengunggah",
"Add card" : "Tambah kartu",
"Archived cards" : "Arsip kartu",
"Add list" : "Tambahkan daftar",
"List name" : "Nama daftar",
"Apply filter" : "Terapkan filter",
"Filter by tag" : "Filter dengan tag",
"Filter by assigned user" : "Filter dengan pengguna",
"Unassigned" : "Belum ditugaskan",
"Filter by due date" : "Filter dengan tenggat",
"Overdue" : "Lewat tenggat",
"Next 24 hours" : "Jangka 24 jam",
@@ -213,6 +217,9 @@ OC.L10N.register(
"Board {0} deleted" : "{0} papan terhapus",
"An error occurred" : "Terjadi kesalahan",
"Delete the board?" : "Hapus papan?",
"Click to expand comment" : "Klik untuk membuka komentar",
"No upcoming cards" : "Tidak ada kartu berikut",
"upcoming cards" : "kartu berikut",
"Link to a board" : "Tautan ke papan",
"Link to a card" : "Tautan ke kartu",
"Something went wrong" : "Ada yang salah",

View File

@@ -65,6 +65,7 @@
"Deck" : "Longgok",
"Changes in the <strong>Deck app</strong>" : "Perubahan pada <strong>aplikasi Longgok</strong>",
"A <strong>comment</strong> was created on a card" : "<strong>Komentar</strong> telah dibuat pada suatu kartu",
"Upcoming cards" : "Kartu berikut",
"Personal" : "Personal",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Kartu \"%s\" pada \"%s\" telah ditugaskan kepada Anda oleh %s.",
"The card \"%s\" on \"%s\" has reached its due date." : "Kartu \"%s\" pada \"%s\" telah melampaui tenggat.",
@@ -91,6 +92,7 @@
"Could not write file to disk" : "Tidak dapat menulis berkas ke diska",
"A PHP extension stopped the file upload" : "Ekstensi PHP menghentikan proses unggah berkas",
"No file uploaded or file size exceeds maximum of %s" : "Gagal unggah berkas atau ukuran melampaui batas maksimum %s",
"Card not found" : "Kartu tidak ditemukan",
"Invalid date, date format must be YYYY-MM-DD" : "Tanggal salah, format tanggal harus TTTT-BB-HH",
"Personal planning and team project organization" : "Perencanaan pribadi dan pengelolaan proyek tim",
"Add board" : "Tambah papan",
@@ -113,10 +115,12 @@
"Drop your files to upload" : "Lepas berkas Anda untuk mengunggah",
"Add card" : "Tambah kartu",
"Archived cards" : "Arsip kartu",
"Add list" : "Tambahkan daftar",
"List name" : "Nama daftar",
"Apply filter" : "Terapkan filter",
"Filter by tag" : "Filter dengan tag",
"Filter by assigned user" : "Filter dengan pengguna",
"Unassigned" : "Belum ditugaskan",
"Filter by due date" : "Filter dengan tenggat",
"Overdue" : "Lewat tenggat",
"Next 24 hours" : "Jangka 24 jam",
@@ -211,6 +215,9 @@
"Board {0} deleted" : "{0} papan terhapus",
"An error occurred" : "Terjadi kesalahan",
"Delete the board?" : "Hapus papan?",
"Click to expand comment" : "Klik untuk membuka komentar",
"No upcoming cards" : "Tidak ada kartu berikut",
"upcoming cards" : "kartu berikut",
"Link to a board" : "Tautan ke papan",
"Link to a card" : "Tautan ke kartu",
"Something went wrong" : "Ada yang salah",

View File

@@ -71,11 +71,20 @@ OC.L10N.register(
"Load more" : "Учитај још",
"Personal" : "Лично",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Корисник %s Вам је доделио картицу „%s“ са табле „%s“.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} вам је доделио картицу {deck-card} на {deck-board}.",
"The card \"%s\" on \"%s\" has reached its due date." : "Картици „%s“ на табли „%s“ је истекао рок.",
"The card {deck-card} on {deck-board} has reached its due date." : "Картица {deck-card} на {deck-board} је дошла достигла датум када треба да се реши.",
"%s has mentioned you in a comment on \"%s\"." : "%s Вас је поменуо у коментару на „%s“.",
"{user} has mentioned you in a comment on {deck-card}." : "{user} вас је поменуо у коментару на {deck-card}.",
"The board \"%s\" has been shared with you by %s." : "Корисник „%s“ је поделио са Вама таблу „%s“.",
"{user} has shared {deck-board} with you." : "{user} је са вама поделио {deck-board}.",
"Deck board" : "Табла Шпила",
"Owned by %1$s" : "Власник је %1$s",
"Deck boards, cards and comments" : "Табле шпилова, картице и коментари",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "Од %1$s, у %2$s/%3$s, власник је %4$s",
"Card comments" : "Коментари картица",
"%s on %s" : "%s на %s",
"Deck boards and cards" : "Табле шпилова и картице",
"No data was provided to create an attachment." : "Нису дати подаци за креирање прилога.",
"Finished" : "Завршено",
"To review" : "Треба прегледати",
@@ -97,16 +106,24 @@ OC.L10N.register(
"Could not write file to disk" : "Не могу да пишем на диск",
"A PHP extension stopped the file upload" : "PHP екстензија је зауставила отпремање фајла",
"No file uploaded or file size exceeds maximum of %s" : "Ниједан фајл није отпремљен или величина фајла премашује максимум од %s",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Овај коментар има више од %s карактера.\nДодат је као прилог картици под именом %s.\nДоступно је на URL адреси: %s.",
"Card not found" : "Картица није нађена",
"Path is already shared with this card" : "Путања се већ дели са овом картицом",
"Invalid date, date format must be YYYY-MM-DD" : "Неисправан датим, формат датума мора бити ГГГГ-ММ-ДД",
"Personal planning and team project organization" : "Лични планер и организатор тимског пројекта",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Шпил је организациони алат у канбан стилу који је намењен личном планирању и организацији пројекта у тимовима интегрисаним са Nextcloud.\n\n\n- 📥 Додајте своје задатке у картице и поређајте их по редоследу\n- 📄 Напишите додатне белешке употребом Markdown синтаксе\n- 🔖 Доделите ознаке у циљу још боље организације\n- 👥 Делите са својим тимом, пријатељима или породицом\n- 📎 Прикачите фајлове и уградите их у свој Markdown опис\n- 💬 Дискутујте са својим тимом користећи коментаре\n- ⚡ Пратите измене у току активности\n- 🚀 Организујте свој пројекат",
"Add board" : "Додај таблу",
"Select the board to link to a project" : "Одаберите таблу да је повежете са пројектом",
"Search by board title" : "Претражи по наслову табле",
"Select board" : "Одаберите таблу",
"Create a new card" : "Креирај нову картицу",
"Select a board" : "Изаберите таблу",
"Select a list" : "Одабери списак",
"Card title" : "Наслов картицњ",
"Cancel" : "Одустани",
"Creating the new card …" : "Креира се нова картица ...",
"Card \"{card}\" was added to \"{board}\"" : "Картица „{card}” је додта на „{board}",
"Open card" : "Отвори картицу",
"Close" : "Затвори",
"Create card" : "Направите картицу",
"Select a card" : "Изаберите картицу",
@@ -123,6 +140,7 @@ OC.L10N.register(
"Archived cards" : "Архивиране картице",
"Add list" : "Додај списак",
"List name" : "Назив листе",
"Active filters" : "Активни филтери",
"Apply filter" : "Примени филтер",
"Filter by tag" : "Филтрирај по ознаци",
"Filter by assigned user" : "Филтрирај по додељеном кориснику",
@@ -139,6 +157,7 @@ OC.L10N.register(
"Toggle compact mode" : "Укључи/искључи компактни режим",
"Open details" : "Отвори детаље",
"Details" : "Детаљи",
"Currently present people" : "Тренутно присутне особе",
"Loading board" : "Учитавам таблу",
"No lists available" : "Нема доступних спискова",
"Create a new list to add cards to this board" : "Направите нови списак да додате картице на ову таблу",
@@ -151,6 +170,7 @@ OC.L10N.register(
"Undo" : "Опозови",
"Deleted cards" : "Обрисане картице",
"Share board with a user, group or circle …" : "Подели таблу са корисником, групом или кругом…",
"Searching for users, groups and circles …" : "Претрага корисника, група и кругова ...",
"No participants found" : "Нема нађених учесника",
"Board owner" : "Власник табле",
"(Group)" : "(група)",
@@ -161,10 +181,17 @@ OC.L10N.register(
"Owner" : "Власник",
"Delete" : "Избриши",
"Failed to create share with {displayName}" : "Грешка у прављењу дељења са {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "Да ли сте сигурни да кориснику {user} пренесете таблу {title}?",
"Transfer the board." : "Пренос табле.",
"Transfer" : "Пренеси",
"The board has been transferred to {user}" : "Табла је пренета кориснику {user}",
"Failed to transfer the board to {user}" : "Није успео пренос табле кориснику {user}",
"Edit list title" : "Уреди наслов листе",
"Archive all cards" : "Архивирај све картице",
"Unarchive all cards" : "Врати све картице из архиве",
"Delete list" : "Обриши списак",
"Archive all cards in this list" : "Архивирај све картице са овог списка",
"Unarchive all cards in this list" : "Враћа из архиве све картице у овој листи",
"Add a new card" : "Додај нову картицу",
"Card name" : "Име картице",
"List deleted" : "Листа обрисана",
@@ -173,8 +200,13 @@ OC.L10N.register(
"title and color value must be provided" : "морају се дати вредности за наслов и боју",
"Board name" : "Име табле",
"Members" : "Чланови",
"Upload new files" : "Отпреми нове фајлове",
"Share from Files" : "Подели из Фајлова",
"Pending share" : "Дељење на чекању",
"Add this attachment" : "Додај овај прилог",
"Show in Files" : "Прикажи у Фајловима",
"Download" : "Преузми",
"Remove attachment" : "Уклони прилог",
"Delete Attachment" : "Обриши прилог",
"Restore Attachment" : "Поврати прилог",
"File to share" : "Фајл за дељење",
@@ -187,6 +219,7 @@ OC.L10N.register(
"Created" : "Направљен",
"The title cannot be empty." : "Наслов не може бити празан.",
"No comments yet. Begin the discussion!" : "Нема још коментара. Започните дискусију!",
"Failed to load comments" : "Није успело учитавање коментара",
"Assign a tag to this card…" : "Додели ознаку овој картици…",
"Assign to users" : "Додели корисницима",
"Assign to users/groups/circles" : "Додели корисницима/групама/круговима",
@@ -197,10 +230,13 @@ OC.L10N.register(
"Select Date" : "Одаберите датум",
"Today" : "Данас",
"Tomorrow" : "сутра",
"Next week" : "Наредне недеље",
"Next month" : "Наредног месеца",
"Save" : "Сачувај",
"The comment cannot be empty." : "Коментар не може да буде празан.",
"The comment cannot be longer than 1000 characters." : "Коментар не може да има преко 1000 карактера.",
"In reply to" : "Као одговор на",
"Cancel reply" : "Откажи одговор",
"Reply" : "Одговори",
"Update" : "Ажурирај",
"Description" : "Опис",
@@ -210,8 +246,12 @@ OC.L10N.register(
"Edit description" : "Измени опис",
"View description" : "Погледај опис",
"Add Attachment" : "Додај прилог",
"Write a description …" : "Напишите опис ...",
"Choose attachment" : "Одабери прилог",
"(group)" : "(група)",
"Todo items" : "Ставке обавеза",
"{count} comments, {unread} unread" : "{count} коментара, {unread} није прочитано",
"Edit card title" : "Уреди наслов картице",
"Assign to me" : "Додели мени",
"Unassign myself" : "Склони са мене",
"Move card" : "Премести картицу",
@@ -226,6 +266,9 @@ OC.L10N.register(
"All boards" : "Све табле",
"Archived boards" : "Архивиране табле",
"Shared with you" : "Дељено са Вама",
"Deck settings" : "Поставке Шпила",
"Use bigger card view" : "Користи већи приказ картице",
"Show card ID badge" : "Прикажи беџ ID картице",
"Show boards in calendar/tasks" : "Прикажи табле у календару/задацима",
"Limit deck usage of groups" : "Ограничи употребу шпила на групе",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Ограничавање Deck апликације ће блокирати кориснике који нису део одабраних група да креирају своје табле. Корисници ће и даље моћи да раде на таблама које су подељене са њима.",
@@ -234,22 +277,47 @@ OC.L10N.register(
"Clone board" : "Клонирај таблу",
"Unarchive board" : "Врати таблу из архиве",
"Archive board" : "Архивирај таблу",
"Export board" : "Извези таблу",
"Turn on due date reminders" : "Укључи подсетнике о року",
"Turn off due date reminders" : "Искључи подсетнике о року",
"Due date reminders" : "Подсетници о року",
"All cards" : "Све картице",
"Assigned cards" : "Додељене картице",
"No notifications" : "Нема обавештења",
"Delete board" : "Избриши таблу",
"Board {0} deleted" : "Табла {0} обрисана",
"Only assigned cards" : "Само додељене картице",
"No reminder" : "Нема подсетника",
"An error occurred" : "Догодила се грешка",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Да ли сте сигурни да желите да обришете таблу {title}? Ово ће да обрише све податке на овој табли, укључијући и архивиране картице.",
"Delete the board?" : "Обрисати таблу?",
"Loading filtered view" : "Учитам филтрирани преглед",
"No due" : "Нема рокова",
"Search for {searchQuery} in all boards" : "Тражи се {searchQuery} у свим таблама",
"No results found" : "Нема пронађених резултата",
"Deck board {name}\n* Last modified on {lastMod}" : "Шпил табла {name}\n* Последњи пут измењена дана {lastMod}",
"{stack} in {board}" : "{stack} у {board}",
"Click to expand description" : "Кликните да проширите опис",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Креирано дана {created}\n* Последњи пут измењено дана {lastMod}\n* {nbAttachments} прилога\n* {nbComments} коментара",
"{nbCards} cards" : "{nbCards} картица",
"Click to expand comment" : "Кликните да проширите коментар",
"No upcoming cards" : "Нема предстојећих картица",
"upcoming cards" : "предстојеће картице",
"Due on {date}" : "Рок је {date}",
"Link to a board" : "Веза ка табли",
"Link to a card" : "Веза ка картици",
"Create a card" : "Креирај картицу",
"Message from {author} in {conversationName}" : "Порука од {author} у {conversationName}",
"Something went wrong" : "Нешто је пошло наопако",
"Failed to upload {name}" : "Није успело отпремање {name}",
"Maximum file size of {size} exceeded" : "Премашена максимална величина фајла од {size}",
"Error creating the share" : "Грешка при прављењу дељења",
"Share with a Deck card" : "Дели са Шпил картицом",
"Share {file} with a Deck card" : "Дели {file} са Шпил картицом",
"Share" : "Подели",
"Are you sure you want to transfer the board {title} for {user}?" : "Да ли сте сигурни да желите пренети таблу {title} за {user}?",
"Transfer the board for {user} successfully" : "Пренос табле за {user} је успео",
"Failed to transfer the board for {user}" : "Пренос табле за {user} није успео",
"Add a new list" : "Додај нови списак",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Да ли стварно желите да обришете таблу {title}? Овим ћете обрисати све податке са табле."
},

View File

@@ -69,11 +69,20 @@
"Load more" : "Учитај још",
"Personal" : "Лично",
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Корисник %s Вам је доделио картицу „%s“ са табле „%s“.",
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} вам је доделио картицу {deck-card} на {deck-board}.",
"The card \"%s\" on \"%s\" has reached its due date." : "Картици „%s“ на табли „%s“ је истекао рок.",
"The card {deck-card} on {deck-board} has reached its due date." : "Картица {deck-card} на {deck-board} је дошла достигла датум када треба да се реши.",
"%s has mentioned you in a comment on \"%s\"." : "%s Вас је поменуо у коментару на „%s“.",
"{user} has mentioned you in a comment on {deck-card}." : "{user} вас је поменуо у коментару на {deck-card}.",
"The board \"%s\" has been shared with you by %s." : "Корисник „%s“ је поделио са Вама таблу „%s“.",
"{user} has shared {deck-board} with you." : "{user} је са вама поделио {deck-board}.",
"Deck board" : "Табла Шпила",
"Owned by %1$s" : "Власник је %1$s",
"Deck boards, cards and comments" : "Табле шпилова, картице и коментари",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "Од %1$s, у %2$s/%3$s, власник је %4$s",
"Card comments" : "Коментари картица",
"%s on %s" : "%s на %s",
"Deck boards and cards" : "Табле шпилова и картице",
"No data was provided to create an attachment." : "Нису дати подаци за креирање прилога.",
"Finished" : "Завршено",
"To review" : "Треба прегледати",
@@ -95,16 +104,24 @@
"Could not write file to disk" : "Не могу да пишем на диск",
"A PHP extension stopped the file upload" : "PHP екстензија је зауставила отпремање фајла",
"No file uploaded or file size exceeds maximum of %s" : "Ниједан фајл није отпремљен или величина фајла премашује максимум од %s",
"This comment has more than %s characters.\nAdded as an attachment to the card with name %s.\nAccessible on URL: %s." : "Овај коментар има више од %s карактера.\nДодат је као прилог картици под именом %s.\nДоступно је на URL адреси: %s.",
"Card not found" : "Картица није нађена",
"Path is already shared with this card" : "Путања се већ дели са овом картицом",
"Invalid date, date format must be YYYY-MM-DD" : "Неисправан датим, формат датума мора бити ГГГГ-ММ-ДД",
"Personal planning and team project organization" : "Лични планер и организатор тимског пројекта",
"Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized" : "Шпил је организациони алат у канбан стилу који је намењен личном планирању и организацији пројекта у тимовима интегрисаним са Nextcloud.\n\n\n- 📥 Додајте своје задатке у картице и поређајте их по редоследу\n- 📄 Напишите додатне белешке употребом Markdown синтаксе\n- 🔖 Доделите ознаке у циљу још боље организације\n- 👥 Делите са својим тимом, пријатељима или породицом\n- 📎 Прикачите фајлове и уградите их у свој Markdown опис\n- 💬 Дискутујте са својим тимом користећи коментаре\n- ⚡ Пратите измене у току активности\n- 🚀 Организујте свој пројекат",
"Add board" : "Додај таблу",
"Select the board to link to a project" : "Одаберите таблу да је повежете са пројектом",
"Search by board title" : "Претражи по наслову табле",
"Select board" : "Одаберите таблу",
"Create a new card" : "Креирај нову картицу",
"Select a board" : "Изаберите таблу",
"Select a list" : "Одабери списак",
"Card title" : "Наслов картицњ",
"Cancel" : "Одустани",
"Creating the new card …" : "Креира се нова картица ...",
"Card \"{card}\" was added to \"{board}\"" : "Картица „{card}” је додта на „{board}",
"Open card" : "Отвори картицу",
"Close" : "Затвори",
"Create card" : "Направите картицу",
"Select a card" : "Изаберите картицу",
@@ -121,6 +138,7 @@
"Archived cards" : "Архивиране картице",
"Add list" : "Додај списак",
"List name" : "Назив листе",
"Active filters" : "Активни филтери",
"Apply filter" : "Примени филтер",
"Filter by tag" : "Филтрирај по ознаци",
"Filter by assigned user" : "Филтрирај по додељеном кориснику",
@@ -137,6 +155,7 @@
"Toggle compact mode" : "Укључи/искључи компактни режим",
"Open details" : "Отвори детаље",
"Details" : "Детаљи",
"Currently present people" : "Тренутно присутне особе",
"Loading board" : "Учитавам таблу",
"No lists available" : "Нема доступних спискова",
"Create a new list to add cards to this board" : "Направите нови списак да додате картице на ову таблу",
@@ -149,6 +168,7 @@
"Undo" : "Опозови",
"Deleted cards" : "Обрисане картице",
"Share board with a user, group or circle …" : "Подели таблу са корисником, групом или кругом…",
"Searching for users, groups and circles …" : "Претрага корисника, група и кругова ...",
"No participants found" : "Нема нађених учесника",
"Board owner" : "Власник табле",
"(Group)" : "(група)",
@@ -159,10 +179,17 @@
"Owner" : "Власник",
"Delete" : "Избриши",
"Failed to create share with {displayName}" : "Грешка у прављењу дељења са {displayName}",
"Are you sure you want to transfer the board {title} to {user}?" : "Да ли сте сигурни да кориснику {user} пренесете таблу {title}?",
"Transfer the board." : "Пренос табле.",
"Transfer" : "Пренеси",
"The board has been transferred to {user}" : "Табла је пренета кориснику {user}",
"Failed to transfer the board to {user}" : "Није успео пренос табле кориснику {user}",
"Edit list title" : "Уреди наслов листе",
"Archive all cards" : "Архивирај све картице",
"Unarchive all cards" : "Врати све картице из архиве",
"Delete list" : "Обриши списак",
"Archive all cards in this list" : "Архивирај све картице са овог списка",
"Unarchive all cards in this list" : "Враћа из архиве све картице у овој листи",
"Add a new card" : "Додај нову картицу",
"Card name" : "Име картице",
"List deleted" : "Листа обрисана",
@@ -171,8 +198,13 @@
"title and color value must be provided" : "морају се дати вредности за наслов и боју",
"Board name" : "Име табле",
"Members" : "Чланови",
"Upload new files" : "Отпреми нове фајлове",
"Share from Files" : "Подели из Фајлова",
"Pending share" : "Дељење на чекању",
"Add this attachment" : "Додај овај прилог",
"Show in Files" : "Прикажи у Фајловима",
"Download" : "Преузми",
"Remove attachment" : "Уклони прилог",
"Delete Attachment" : "Обриши прилог",
"Restore Attachment" : "Поврати прилог",
"File to share" : "Фајл за дељење",
@@ -185,6 +217,7 @@
"Created" : "Направљен",
"The title cannot be empty." : "Наслов не може бити празан.",
"No comments yet. Begin the discussion!" : "Нема још коментара. Започните дискусију!",
"Failed to load comments" : "Није успело учитавање коментара",
"Assign a tag to this card…" : "Додели ознаку овој картици…",
"Assign to users" : "Додели корисницима",
"Assign to users/groups/circles" : "Додели корисницима/групама/круговима",
@@ -195,10 +228,13 @@
"Select Date" : "Одаберите датум",
"Today" : "Данас",
"Tomorrow" : "сутра",
"Next week" : "Наредне недеље",
"Next month" : "Наредног месеца",
"Save" : "Сачувај",
"The comment cannot be empty." : "Коментар не може да буде празан.",
"The comment cannot be longer than 1000 characters." : "Коментар не може да има преко 1000 карактера.",
"In reply to" : "Као одговор на",
"Cancel reply" : "Откажи одговор",
"Reply" : "Одговори",
"Update" : "Ажурирај",
"Description" : "Опис",
@@ -208,8 +244,12 @@
"Edit description" : "Измени опис",
"View description" : "Погледај опис",
"Add Attachment" : "Додај прилог",
"Write a description …" : "Напишите опис ...",
"Choose attachment" : "Одабери прилог",
"(group)" : "(група)",
"Todo items" : "Ставке обавеза",
"{count} comments, {unread} unread" : "{count} коментара, {unread} није прочитано",
"Edit card title" : "Уреди наслов картице",
"Assign to me" : "Додели мени",
"Unassign myself" : "Склони са мене",
"Move card" : "Премести картицу",
@@ -224,6 +264,9 @@
"All boards" : "Све табле",
"Archived boards" : "Архивиране табле",
"Shared with you" : "Дељено са Вама",
"Deck settings" : "Поставке Шпила",
"Use bigger card view" : "Користи већи приказ картице",
"Show card ID badge" : "Прикажи беџ ID картице",
"Show boards in calendar/tasks" : "Прикажи табле у календару/задацима",
"Limit deck usage of groups" : "Ограничи употребу шпила на групе",
"Limiting Deck will block users not part of those groups from creating their own boards. Users will still be able to work on boards that have been shared with them." : "Ограничавање Deck апликације ће блокирати кориснике који нису део одабраних група да креирају своје табле. Корисници ће и даље моћи да раде на таблама које су подељене са њима.",
@@ -232,22 +275,47 @@
"Clone board" : "Клонирај таблу",
"Unarchive board" : "Врати таблу из архиве",
"Archive board" : "Архивирај таблу",
"Export board" : "Извези таблу",
"Turn on due date reminders" : "Укључи подсетнике о року",
"Turn off due date reminders" : "Искључи подсетнике о року",
"Due date reminders" : "Подсетници о року",
"All cards" : "Све картице",
"Assigned cards" : "Додељене картице",
"No notifications" : "Нема обавештења",
"Delete board" : "Избриши таблу",
"Board {0} deleted" : "Табла {0} обрисана",
"Only assigned cards" : "Само додељене картице",
"No reminder" : "Нема подсетника",
"An error occurred" : "Догодила се грешка",
"Are you sure you want to delete the board {title}? This will delete all the data of this board including archived cards." : "Да ли сте сигурни да желите да обришете таблу {title}? Ово ће да обрише све податке на овој табли, укључијући и архивиране картице.",
"Delete the board?" : "Обрисати таблу?",
"Loading filtered view" : "Учитам филтрирани преглед",
"No due" : "Нема рокова",
"Search for {searchQuery} in all boards" : "Тражи се {searchQuery} у свим таблама",
"No results found" : "Нема пронађених резултата",
"Deck board {name}\n* Last modified on {lastMod}" : "Шпил табла {name}\n* Последњи пут измењена дана {lastMod}",
"{stack} in {board}" : "{stack} у {board}",
"Click to expand description" : "Кликните да проширите опис",
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Креирано дана {created}\n* Последњи пут измењено дана {lastMod}\n* {nbAttachments} прилога\n* {nbComments} коментара",
"{nbCards} cards" : "{nbCards} картица",
"Click to expand comment" : "Кликните да проширите коментар",
"No upcoming cards" : "Нема предстојећих картица",
"upcoming cards" : "предстојеће картице",
"Due on {date}" : "Рок је {date}",
"Link to a board" : "Веза ка табли",
"Link to a card" : "Веза ка картици",
"Create a card" : "Креирај картицу",
"Message from {author} in {conversationName}" : "Порука од {author} у {conversationName}",
"Something went wrong" : "Нешто је пошло наопако",
"Failed to upload {name}" : "Није успело отпремање {name}",
"Maximum file size of {size} exceeded" : "Премашена максимална величина фајла од {size}",
"Error creating the share" : "Грешка при прављењу дељења",
"Share with a Deck card" : "Дели са Шпил картицом",
"Share {file} with a Deck card" : "Дели {file} са Шпил картицом",
"Share" : "Подели",
"Are you sure you want to transfer the board {title} for {user}?" : "Да ли сте сигурни да желите пренети таблу {title} за {user}?",
"Transfer the board for {user} successfully" : "Пренос табле за {user} је успео",
"Failed to transfer the board for {user}" : "Пренос табле за {user} није успео",
"Add a new list" : "Додај нови списак",
"Are you sure you want to delete the board {title}? This will delete all the data of this board." : "Да ли стварно желите да обришете таблу {title}? Овим ћете обрисати све податке са табле."
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"

View File

@@ -78,7 +78,7 @@ OC.L10N.register(
"{user} has mentioned you in a comment on {deck-card}." : "{user} 在 {deck-card} 的留言中提及您。",
"The board \"%s\" has been shared with you by %s." : "佈告欄「%s」已由 %s 分享給您。",
"{user} has shared {deck-board} with you." : "{user} 已與您分享 {deck-board}。",
"Deck board" : "看板佈告欄",
"Deck board" : "Deck 佈告欄",
"Owned by %1$s" : "由 %1$s 擁有",
"Deck boards, cards and comments" : "Deck 看板、卡片與評論",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "來自 %1$s在 %2$s/%3$s由 %4$s 擁有",

View File

@@ -76,7 +76,7 @@
"{user} has mentioned you in a comment on {deck-card}." : "{user} 在 {deck-card} 的留言中提及您。",
"The board \"%s\" has been shared with you by %s." : "佈告欄「%s」已由 %s 分享給您。",
"{user} has shared {deck-board} with you." : "{user} 已與您分享 {deck-board}。",
"Deck board" : "看板佈告欄",
"Deck board" : "Deck 佈告欄",
"Owned by %1$s" : "由 %1$s 擁有",
"Deck boards, cards and comments" : "Deck 看板、卡片與評論",
"From %1$s, in %2$s/%3$s, owned by %4$s" : "來自 %1$s在 %2$s/%3$s由 %4$s 擁有",

View File

@@ -60,9 +60,11 @@ class BoardApiController extends ApiController {
* @NoCSRFRequired
*
* Return all of the boards that the current user has access to.
*
* @param bool $details
* @throws StatusException
*/
public function index($details = null) {
public function index(bool $details = false) {
$modified = $this->request->getHeader('If-Modified-Since');
if ($modified === null || $modified === '') {
$boards = $this->boardService->findAll(0, $details === true);

View File

@@ -23,6 +23,7 @@
namespace OCA\Deck\Reference;
use OCA\Deck\AppInfo\Application;
use OCA\Deck\NoPermissionException;
use OCA\Deck\Service\BoardService;
use OCP\Collaboration\Reference\IReference;
use OCP\Collaboration\Reference\IReferenceProvider;
@@ -67,7 +68,12 @@ class BoardReferenceProvider implements IReferenceProvider {
if ($this->matchReference($referenceText)) {
$boardId = $this->getBoardId($referenceText);
if ($boardId !== null) {
$board = $this->boardService->find($boardId)->jsonSerialize();
try {
$board = $this->boardService->find($boardId)->jsonSerialize();
} catch (NoPermissionException $e) {
// Skip throwing if user has no permissions
return null;
}
$board = $this->sanitizeSerializedBoard($board);
/** @var IReference $reference */
$reference = new Reference($referenceText);

View File

@@ -27,6 +27,7 @@ use OCA\Deck\Db\Assignment;
use OCA\Deck\Db\Attachment;
use OCA\Deck\Db\Label;
use OCA\Deck\Model\CardDetails;
use OCA\Deck\NoPermissionException;
use OCA\Deck\Service\BoardService;
use OCA\Deck\Service\CardService;
use OCA\Deck\Service\StackService;
@@ -121,9 +122,15 @@ class CardReferenceProvider extends ADiscoverableReferenceProvider implements IS
$ids = $this->getBoardCardId($referenceText);
if ($ids !== null) {
[$boardId, $cardId] = $ids;
$card = $this->cardService->find((int) $cardId)->jsonSerialize();
$board = $this->boardService->find((int) $boardId)->jsonSerialize();
$stack = $this->stackService->find((int) $card['stackId'])->jsonSerialize();
try {
$card = $this->cardService->find((int) $cardId)->jsonSerialize();
$board = $this->boardService->find((int) $boardId)->jsonSerialize();
$stack = $this->stackService->find((int) $card['stackId'])->jsonSerialize();
} catch (NoPermissionException $e) {
// Skip throwing if user has no permissions
return null;
}
$card = $this->sanitizeSerializedCard($card);
$board = $this->sanitizeSerializedBoard($board);

View File

@@ -27,6 +27,7 @@ use OCA\Deck\Db\Assignment;
use OCA\Deck\Db\Attachment;
use OCA\Deck\Db\Label;
use OCA\Deck\Model\CardDetails;
use OCA\Deck\NoPermissionException;
use OCA\Deck\Service\BoardService;
use OCA\Deck\Service\CardService;
use OCA\Deck\Service\CommentService;
@@ -85,9 +86,14 @@ class CommentReferenceProvider implements IReferenceProvider {
if ($ids !== null) {
[$boardId, $cardId, $commentId] = $ids;
$card = $this->cardService->find($cardId)->jsonSerialize();
$board = $this->boardService->find($boardId)->jsonSerialize();
$stack = $this->stackService->find((int) $card['stackId'])->jsonSerialize();
try {
$card = $this->cardService->find($cardId)->jsonSerialize();
$board = $this->boardService->find($boardId)->jsonSerialize();
$stack = $this->stackService->find((int) $card['stackId'])->jsonSerialize();
} catch (NoPermissionException $e) {
// Skip throwing if user has no permissions
return null;
}
$card = $this->sanitizeSerializedCard($card);
$board = $this->sanitizeSerializedBoard($board);
$stack = $this->sanitizeSerializedStack($stack);

View File

@@ -1,109 +1,109 @@
{
"name": "deck",
"description": "",
"version": "1.9.0-beta.1",
"authors": [
{
"name": "Julius Härtl",
"email": "jus@bitgrid.net",
"role": "Developer"
},
{
"name": "Michael Weimann",
"email": "mail@michael-weimann.eu",
"role": "Developer"
}
],
"license": "agpl",
"private": true,
"scripts": {
"build": "NODE_ENV=production webpack --progress --config webpack.js",
"dev": "NODE_ENV=development webpack --progress --config webpack.js",
"watch": "NODE_ENV=development webpack --progress --watch --config webpack.js",
"lint": "eslint --ext .js,.vue src",
"lint:fix": "eslint --ext .js,.vue src --fix",
"lint:cypress": "eslint --ext .js cypress",
"stylelint": "stylelint src",
"stylelint:fix": "stylelint src --fix",
"test": "jest",
"test:coverage": "jest --coverage"
},
"dependencies": {
"@babel/polyfill": "^7.12.1",
"@babel/runtime": "^7.21.0",
"@nextcloud/auth": "^2.0.0",
"@nextcloud/axios": "^2.3.0",
"@nextcloud/dialogs": "^4.0.1",
"@nextcloud/event-bus": "^3.0.2",
"@nextcloud/files": "^2.1.0",
"@nextcloud/initial-state": "^2.0.0",
"@nextcloud/l10n": "^2.1.0",
"@nextcloud/moment": "^1.2.1",
"@nextcloud/notify_push": "^1.1.3",
"@nextcloud/router": "^2.0.1",
"@nextcloud/vue": "^7.7.1",
"@nextcloud/vue-dashboard": "^2.0.1",
"@nextcloud/vue-richtext": "^2.0.4",
"blueimp-md5": "^2.19.0",
"dompurify": "^3.0.0",
"lodash": "^4.17.21",
"markdown-it": "^13.0.1",
"markdown-it-link-attributes": "^4.0.1",
"markdown-it-task-checkbox": "^1.0.6",
"moment": "^2.29.4",
"nextcloud-vue-collections": "^0.11.0",
"p-queue": "^7.3.4",
"url-search-params-polyfill": "^8.1.1",
"vue": "^2.7.14",
"vue-at": "^2.5.1",
"vue-click-outside": "^1.1.0",
"vue-easymde": "^2.0.0",
"vue-infinite-loading": "^2.4.5",
"vue-material-design-icons": "^5.2.0",
"vue-router": "^3.6.5",
"vue-smooth-dnd": "^0.8.1",
"vuex": "^3.6.2",
"vuex-router-sync": "^5.0.0"
},
"browserslist": [
"extends @nextcloud/browserslist-config"
],
"engines": {
"node": "^16.0.0",
"npm": "^7.0.0 || ^8.0.0"
},
"devDependencies": {
"@nextcloud/babel-config": "^1.0.0",
"@nextcloud/browserslist-config": "^2.3.0",
"@nextcloud/cypress": "^1.0.0-beta.2",
"@nextcloud/eslint-config": "^8.2.1",
"@nextcloud/stylelint-config": "^2.3.0",
"@nextcloud/webpack-vue-config": "^5.4.0",
"@relative-ci/agent": "^4.1.3",
"@vue/test-utils": "^1.3.4",
"@vue/vue2-jest": "^29.2.2",
"cypress": "^12.7.0",
"eslint-plugin-cypress": "^2.12.1",
"eslint-webpack-plugin": "^4.0.0",
"jest": "^29.4.3",
"jest-serializer-vue": "^3.1.0",
"stylelint-webpack-plugin": "^4.1.0",
"vue-template-compiler": "^2.7.14"
},
"jest": {
"moduleFileExtensions": [
"js",
"vue"
],
"moduleNameMapper": {
"^@/(.*)$": "<rootDir>/src/$1"
},
"transform": {
"^.+\\.js$": "<rootDir>/node_modules/babel-jest",
".*\\.(vue)$": "<rootDir>/node_modules/vue-jest"
},
"snapshotSerializers": [
"<rootDir>/node_modules/jest-serializer-vue"
]
}
}
"name": "deck",
"description": "",
"version": "1.9.0",
"authors": [
{
"name": "Julius Härtl",
"email": "jus@bitgrid.net",
"role": "Developer"
},
{
"name": "Michael Weimann",
"email": "mail@michael-weimann.eu",
"role": "Developer"
}
],
"license": "agpl",
"private": true,
"scripts": {
"build": "NODE_ENV=production webpack --progress --config webpack.js",
"dev": "NODE_ENV=development webpack --progress --config webpack.js",
"watch": "NODE_ENV=development webpack --progress --watch --config webpack.js",
"lint": "eslint --ext .js,.vue src",
"lint:fix": "eslint --ext .js,.vue src --fix",
"lint:cypress": "eslint --ext .js cypress",
"stylelint": "stylelint src",
"stylelint:fix": "stylelint src --fix",
"test": "jest",
"test:coverage": "jest --coverage"
},
"dependencies": {
"@babel/polyfill": "^7.12.1",
"@babel/runtime": "^7.21.0",
"@nextcloud/auth": "^2.0.0",
"@nextcloud/axios": "^2.3.0",
"@nextcloud/dialogs": "^4.0.1",
"@nextcloud/event-bus": "^3.0.2",
"@nextcloud/files": "^2.1.0",
"@nextcloud/initial-state": "^2.0.0",
"@nextcloud/l10n": "^2.1.0",
"@nextcloud/moment": "^1.2.1",
"@nextcloud/notify_push": "^1.1.3",
"@nextcloud/router": "^2.0.1",
"@nextcloud/vue": "^7.7.1",
"@nextcloud/vue-dashboard": "^2.0.1",
"@nextcloud/vue-richtext": "^2.0.4",
"blueimp-md5": "^2.19.0",
"dompurify": "^3.0.0",
"lodash": "^4.17.21",
"markdown-it": "^13.0.1",
"markdown-it-link-attributes": "^4.0.1",
"markdown-it-task-checkbox": "^1.0.6",
"moment": "^2.29.4",
"nextcloud-vue-collections": "^0.11.0",
"p-queue": "^7.3.4",
"url-search-params-polyfill": "^8.1.1",
"vue": "^2.7.14",
"vue-at": "^2.5.1",
"vue-click-outside": "^1.1.0",
"vue-easymde": "^2.0.0",
"vue-infinite-loading": "^2.4.5",
"vue-material-design-icons": "^5.2.0",
"vue-router": "^3.6.5",
"vue-smooth-dnd": "^0.8.1",
"vuex": "^3.6.2",
"vuex-router-sync": "^5.0.0"
},
"browserslist": [
"extends @nextcloud/browserslist-config"
],
"engines": {
"node": "^16.0.0",
"npm": "^7.0.0 || ^8.0.0"
},
"devDependencies": {
"@nextcloud/babel-config": "^1.0.0",
"@nextcloud/browserslist-config": "^2.3.0",
"@nextcloud/cypress": "^1.0.0-beta.2",
"@nextcloud/eslint-config": "^8.2.1",
"@nextcloud/stylelint-config": "^2.3.0",
"@nextcloud/webpack-vue-config": "^5.4.0",
"@relative-ci/agent": "^4.1.3",
"@vue/test-utils": "^1.3.4",
"@vue/vue2-jest": "^29.2.2",
"cypress": "^12.7.0",
"eslint-plugin-cypress": "^2.12.1",
"eslint-webpack-plugin": "^4.0.0",
"jest": "^29.4.3",
"jest-serializer-vue": "^3.1.0",
"stylelint-webpack-plugin": "^4.1.0",
"vue-template-compiler": "^2.7.14"
},
"jest": {
"moduleFileExtensions": [
"js",
"vue"
],
"moduleNameMapper": {
"^@/(.*)$": "<rootDir>/src/$1"
},
"transform": {
"^.+\\.js$": "<rootDir>/node_modules/babel-jest",
".*\\.(vue)$": "<rootDir>/node_modules/vue-jest"
},
"snapshotSerializers": [
"<rootDir>/node_modules/jest-serializer-vue"
]
}
}

View File

@@ -57,7 +57,10 @@
@drag-start="draggingStack = true"
@drag-end="draggingStack = false"
@drop="onDropStack">
<Draggable v-for="stack in stacksByBoard" :key="stack.id" data-click-closes-sidebar="true">
<Draggable v-for="stack in stacksByBoard"
:key="stack.id"
data-click-closes-sidebar="true"
class="stack-draggable-wrapper">
<Stack :stack="stack" :dragging="draggingStack" data-click-closes-sidebar="true" />
</Draggable>
</Container>
@@ -223,7 +226,7 @@ export default {
align-items: stretch;
height: 100%;
&:deep(.smooth-dnd-draggable-wrapper) {
&:deep(.stack-draggable-wrapper.smooth-dnd-draggable-wrapper) {
display: flex;
height: auto;

View File

@@ -143,7 +143,12 @@ export function createSession(boardId) {
async close() {
clearInterval(interval)
document.removeEventListener('visibilitychange', visibilitychangeListener)
await sessionApi.closeSession(boardId, await tokenPromise)
if (token) {
await sessionApi.closeSession(boardId, token)
tokenPromise = null
token = null
delete axios.defaults.headers['x-nc-deck-session']
}
},
}
}