Compare commits
51 Commits
rakekniven
...
automated/
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ec231ca5e4 | ||
|
|
0802911d13 | ||
|
|
70b4d62e54 | ||
|
|
154ed8bf84 | ||
|
|
c3a5833d5a | ||
|
|
0dfba6f1c8 | ||
|
|
c3df4b112f | ||
|
|
703b6d3062 | ||
|
|
4bb06aa7f5 | ||
|
|
7e995ab110 | ||
|
|
a2046e9a2e | ||
|
|
0262b9ab76 | ||
|
|
b999366fb4 | ||
|
|
9921c5446c | ||
|
|
4c6e9b086a | ||
|
|
ad9c1eb9af | ||
|
|
da0f407121 | ||
|
|
5d59047cbd | ||
|
|
c3c19bcc09 | ||
|
|
c078e3c241 | ||
|
|
95cc40cc38 | ||
|
|
649f995c6b | ||
|
|
9ba7652212 | ||
|
|
4eea72af13 | ||
|
|
b06ac63dbd | ||
|
|
1ccfb6a13a | ||
|
|
86a4d5b2c8 | ||
|
|
3bc7d9dccf | ||
|
|
2a82bc6a63 | ||
|
|
af03e841b1 | ||
|
|
b01c545fd0 | ||
|
|
a0ee1684b1 | ||
|
|
b35279e801 | ||
|
|
a2c03cebb5 | ||
|
|
b391fa9edc | ||
|
|
824540bf98 | ||
|
|
22b8dbec80 | ||
|
|
b36bd37dd6 | ||
|
|
351b4f4165 | ||
|
|
7fb7558d9e | ||
|
|
be9a6f29c6 | ||
|
|
a0bc896123 | ||
|
|
f06e391e36 | ||
|
|
ce0e6a4acc | ||
|
|
997249fc7a | ||
|
|
e48e0aa7ce | ||
|
|
961053230d | ||
|
|
16f0fa8c0c | ||
|
|
daf6aeb650 | ||
|
|
6861730a61 | ||
|
|
839d789f65 |
17
.github/dependabot.yml
vendored
17
.github/dependabot.yml
vendored
@@ -13,23 +13,6 @@ updates:
|
|||||||
- juliushaertl
|
- juliushaertl
|
||||||
- luka-nextcloud
|
- luka-nextcloud
|
||||||
|
|
||||||
- package-ecosystem: npm
|
|
||||||
target-branch: stable32
|
|
||||||
versioning-strategy: lockfile-only
|
|
||||||
directory: "/"
|
|
||||||
schedule:
|
|
||||||
interval: weekly
|
|
||||||
day: saturday
|
|
||||||
time: "03:15"
|
|
||||||
timezone: Europe/Paris
|
|
||||||
ignore:
|
|
||||||
- dependency-name: "*"
|
|
||||||
update-types: ["version-update:semver-major"]
|
|
||||||
open-pull-requests-limit: 30
|
|
||||||
labels:
|
|
||||||
- 3. to review
|
|
||||||
- dependencies
|
|
||||||
|
|
||||||
- package-ecosystem: npm
|
- package-ecosystem: npm
|
||||||
target-branch: stable31
|
target-branch: stable31
|
||||||
versioning-strategy: lockfile-only
|
versioning-strategy: lockfile-only
|
||||||
|
|||||||
2
.github/workflows/cypress-e2e.yml
vendored
2
.github/workflows/cypress-e2e.yml
vendored
@@ -22,7 +22,7 @@ jobs:
|
|||||||
node-version: [20.x]
|
node-version: [20.x]
|
||||||
# containers: [1, 2, 3]
|
# containers: [1, 2, 3]
|
||||||
php-versions: [ '8.2' ]
|
php-versions: [ '8.2' ]
|
||||||
server-versions: [ 'master' ]
|
server-versions: [ 'stable32' ]
|
||||||
|
|
||||||
env:
|
env:
|
||||||
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu
|
extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, zip, gd, apcu
|
||||||
|
|||||||
2
.github/workflows/integration.yml
vendored
2
.github/workflows/integration.yml
vendored
@@ -28,7 +28,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
php-versions: ['8.1']
|
php-versions: ['8.1']
|
||||||
databases: ['sqlite', 'mysql', 'pgsql']
|
databases: ['sqlite', 'mysql', 'pgsql']
|
||||||
server-versions: ['master']
|
server-versions: ['stable32']
|
||||||
|
|
||||||
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
|
||||||
|
|
||||||
|
|||||||
2
.github/workflows/npm-audit-fix.yml
vendored
2
.github/workflows/npm-audit-fix.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
branches: ['main', 'master', 'stable32', 'stable31', 'stable30']
|
branches: ['main', 'master', 'stable31', 'stable30']
|
||||||
|
|
||||||
name: npm-audit-fix-${{ matrix.branches }}
|
name: npm-audit-fix-${{ matrix.branches }}
|
||||||
|
|
||||||
|
|||||||
2
.github/workflows/update-nextcloud-ocp.yml
vendored
2
.github/workflows/update-nextcloud-ocp.yml
vendored
@@ -23,7 +23,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
branches: ['main', 'master', 'stable32', 'stable31', 'stable30']
|
branches: ['main', 'master', 'stable31', 'stable30']
|
||||||
|
|
||||||
name: update-nextcloud-ocp-${{ matrix.branches }}
|
name: update-nextcloud-ocp-${{ matrix.branches }}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
|
|
||||||
- Adrian Missy <adrian.missy@onewavestudios.com>
|
- Adrian Missy <adrian.missy@onewavestudios.com>
|
||||||
- Alexandru Puiu <alexpuiu20@yahoo.com>
|
- Alexandru Puiu <alexpuiu20@yahoo.com>
|
||||||
- Arne Bartelt <arne.bartelt@gmail.com>
|
|
||||||
- Chandi Langecker <git@chandi.it>
|
- Chandi Langecker <git@chandi.it>
|
||||||
- Christoph Wurst <christoph@winzerhof-wurst.at>
|
- Christoph Wurst <christoph@winzerhof-wurst.at>
|
||||||
- Gary Kim <gary@garykim.dev>
|
- Gary Kim <gary@garykim.dev>
|
||||||
|
|||||||
18
CHANGELOG.md
18
CHANGELOG.md
@@ -5,6 +5,24 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
## 1.16.0
|
||||||
|
### Added
|
||||||
|
- feat: update default content @luka-nextcloud [#6740](https://github.com/nextcloud/deck/pull/6740)
|
||||||
|
- feat: add board import and export @luka-nextcloud [#6872](https://github.com/nextcloud/deck/pull/6872)
|
||||||
|
- feat: use outline icons @luka-nextcloud [#7114](https://github.com/nextcloud/deck/pull/7114)
|
||||||
|
- Add OCC commands for global calendar feature opt-in and opt-out in Deck @Fledermaus-20 [#7080](https://github.com/nextcloud/deck/pull/7080)
|
||||||
|
- [stable32] Migrate delete icon to Material Symbol outline variant @backportbot [#7211](https://github.com/nextcloud/deck/pull/7211)
|
||||||
|
- Chore(deps): Bump @nextcloud/vue from 8.27.0 to 8.31.0 @luka-nextcloud [#7271](https://github.com/nextcloud/deck/pull/7271)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- CSV export fixes @gidan80 [#6800](https://github.com/nextcloud/deck/pull/6800)
|
||||||
|
- [stable32] fix: Fix colors from due dates and done @backportbot [#7239](https://github.com/nextcloud/deck/pull/7239)
|
||||||
|
- [stable32] fix(darkmode): Fix activity icon colors @backportbot [#7241](https://github.com/nextcloud/deck/pull/7241)
|
||||||
|
- [stable32] fix: redirect to cleaner URL if RewriteBase is enabled @backportbot [#7268](https://github.com/nextcloud/deck/pull/7268)
|
||||||
|
- [stable32] fix: missing push notifications @backportbot [#7270](https://github.com/nextcloud/deck/pull/7270)
|
||||||
|
- [stable32] fix: use text cursor for card title on dashboard @backportbot [#7273](https://github.com/nextcloud/deck/pull/7273)
|
||||||
|
- [stable32] fix: parse arguments to CardService.reorder correctly to int @backportbot [#7276](https://github.com/nextcloud/deck/pull/7276)
|
||||||
|
|
||||||
## 1.16.0-beta.1
|
## 1.16.0-beta.1
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
- 🚀 Get your project organized
|
- 🚀 Get your project organized
|
||||||
|
|
||||||
</description>
|
</description>
|
||||||
<version>2.0.0-dev.0</version>
|
<version>1.16.0</version>
|
||||||
<licence>agpl</licence>
|
<licence>agpl</licence>
|
||||||
<author>Julius Härtl</author>
|
<author>Julius Härtl</author>
|
||||||
<namespace>Deck</namespace>
|
<namespace>Deck</namespace>
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
<database min-version="9.4">pgsql</database>
|
<database min-version="9.4">pgsql</database>
|
||||||
<database>sqlite</database>
|
<database>sqlite</database>
|
||||||
<database min-version="8.0">mysql</database>
|
<database min-version="8.0">mysql</database>
|
||||||
<nextcloud min-version="33" max-version="33"/>
|
<nextcloud min-version="32" max-version="32"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<background-jobs>
|
<background-jobs>
|
||||||
<job>OCA\Deck\Cron\DeleteCron</job>
|
<job>OCA\Deck\Cron\DeleteCron</job>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
"roave/security-advisories": "dev-master",
|
"roave/security-advisories": "dev-master",
|
||||||
"phpunit/phpunit": "^9",
|
"phpunit/phpunit": "^9",
|
||||||
"nextcloud/coding-standard": "^1.1",
|
"nextcloud/coding-standard": "^1.1",
|
||||||
"nextcloud/ocp": "dev-master",
|
"nextcloud/ocp": "dev-stable32",
|
||||||
"psalm/phar": "^5.13"
|
"psalm/phar": "^5.13"
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
|
|||||||
17
composer.lock
generated
17
composer.lock
generated
@@ -4,7 +4,7 @@
|
|||||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||||
"This file is @generated automatically"
|
"This file is @generated automatically"
|
||||||
],
|
],
|
||||||
"content-hash": "6950663d9d213151028e780637480220",
|
"content-hash": "a802f567c811977afdf6203368ae43e9",
|
||||||
"packages": [
|
"packages": [
|
||||||
{
|
{
|
||||||
"name": "justinrainbow/json-schema",
|
"name": "justinrainbow/json-schema",
|
||||||
@@ -376,16 +376,16 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nextcloud/ocp",
|
"name": "nextcloud/ocp",
|
||||||
"version": "dev-master",
|
"version": "dev-stable32",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/nextcloud-deps/ocp.git",
|
"url": "https://github.com/nextcloud-deps/ocp.git",
|
||||||
"reference": "d927392a2a368c372ef80096171139d4287b2339"
|
"reference": "251d379ae2c80830880d49e1070926f89bc48669"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/d927392a2a368c372ef80096171139d4287b2339",
|
"url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/251d379ae2c80830880d49e1070926f89bc48669",
|
||||||
"reference": "d927392a2a368c372ef80096171139d4287b2339",
|
"reference": "251d379ae2c80830880d49e1070926f89bc48669",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
@@ -395,11 +395,10 @@
|
|||||||
"psr/event-dispatcher": "^1.0",
|
"psr/event-dispatcher": "^1.0",
|
||||||
"psr/log": "^3.0.2"
|
"psr/log": "^3.0.2"
|
||||||
},
|
},
|
||||||
"default-branch": true,
|
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"extra": {
|
"extra": {
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "33.0.0-dev"
|
"dev-stable32": "32.0.0-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
@@ -419,9 +418,9 @@
|
|||||||
"description": "Composer package containing Nextcloud's public OCP API and the unstable NCU API",
|
"description": "Composer package containing Nextcloud's public OCP API and the unstable NCU API",
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/nextcloud-deps/ocp/issues",
|
"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/stable32"
|
||||||
},
|
},
|
||||||
"time": "2025-09-16T00:45:42+00:00"
|
"time": "2025-10-03T00:46:18+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nikic/php-parser",
|
"name": "nikic/php-parser",
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
|
|
||||||
input[type=submit].icon-confirm {
|
input[type=submit].icon-confirm {
|
||||||
border-color: var(--color-border-maxcontrast) !important;
|
border-color: var(--color-border-maxcontrast) !important;
|
||||||
border-style: solid;
|
|
||||||
border-left: none;
|
border-left: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
24
docs/API.md
24
docs/API.md
@@ -6,7 +6,7 @@ The REST API provides access for authenticated users to their data inside the De
|
|||||||
|
|
||||||
# Prerequisites
|
# Prerequisites
|
||||||
|
|
||||||
- All requests require a `OCS-APIRequest` HTTP header to be set to `true` and a `Content-Type` of `application/json`. This does not apply to the endpoint for uploading attachments, which consumes `multipart/form-data`.
|
- All requests require a `OCS-APIRequest` HTTP header to be set to `true` and a `Content-Type` of `application/json`.
|
||||||
- The API is located at https://nextcloud.local/index.php/apps/deck/api/v1.0
|
- The API is located at https://nextcloud.local/index.php/apps/deck/api/v1.0
|
||||||
- All request parameters are required, unless otherwise specified
|
- All request parameters are required, unless otherwise specified
|
||||||
|
|
||||||
@@ -733,7 +733,6 @@ The board list endpoint supports setting an `If-Modified-Since` header to limit
|
|||||||
| Parameter | Type | Description |
|
| Parameter | Type | Description |
|
||||||
| --------- | ------- | --------------------------------------- |
|
| --------- | ------- | --------------------------------------- |
|
||||||
| labelId | Integer | The label id to assign to the card |
|
| labelId | Integer | The label id to assign to the card |
|
||||||
|
|
||||||
#### Response
|
#### Response
|
||||||
|
|
||||||
##### 200 Success
|
##### 200 Success
|
||||||
@@ -998,12 +997,10 @@ The request can fail with a bad request response for the following reasons:
|
|||||||
|
|
||||||
#### Request data
|
#### Request data
|
||||||
|
|
||||||
The request is performed as `multipart/form-data`.
|
| Parameter | Type | Description |
|
||||||
|
| --------- | ------- | --------------------------------------------- |
|
||||||
| Parameter | Type | Description |
|
| type | String | The type of the attachement |
|
||||||
| --------- | ------- | ----------------------------------------------------------------------------------------------- |
|
| file | Binary | File data to add as an attachment |
|
||||||
| type | String | The type of the attachement. Use `file` or `deck_file`. |
|
|
||||||
| file | Binary | File data to add as an attachment together with the `filename` parameter according to RFC 7578. |
|
|
||||||
|
|
||||||
- Prior to Deck version v1.3.0 (API v1.0), attachments were stored within deck. For this type of attachments `deck_file` was used as the default type of attachments
|
- Prior to Deck version v1.3.0 (API v1.0), attachments were stored within deck. For this type of attachments `deck_file` was used as the default type of attachments
|
||||||
- Starting with Deck version 1.3.0 (API v1.1) files are stored within the users regular Nextcloud files and the type `file` has been introduced for that
|
- Starting with Deck version 1.3.0 (API v1.1) files are stored within the users regular Nextcloud files and the type `file` has been introduced for that
|
||||||
@@ -1025,13 +1022,12 @@ The request is performed as `multipart/form-data`.
|
|||||||
|
|
||||||
#### Request data
|
#### Request data
|
||||||
|
|
||||||
The request is performed as `multipart/form-data`.
|
| Parameter | Type | Description |
|
||||||
|
| --------- | ------- | --------------------------------------------- |
|
||||||
| Parameter | Type | Description |
|
| type | String | The type of the attachement |
|
||||||
| --------- | ------- | ----------------------------------------------------------------------------------------------- |
|
| file | Binary | File data to add as an attachment |
|
||||||
| type | String | The type of the attachement. For now only `deck_file` is supported as an attachment type. |
|
|
||||||
| file | Binary | File data to add as an attachment together with the `filename` parameter according to RFC 7578. |
|
|
||||||
|
|
||||||
|
For now only `deck_file` is supported as an attachment type.
|
||||||
|
|
||||||
#### Response
|
#### Response
|
||||||
|
|
||||||
|
|||||||
@@ -9,9 +9,11 @@ OC.L10N.register(
|
|||||||
"Missing a temporary folder" : "Адсутнічае часовая папка",
|
"Missing a temporary folder" : "Адсутнічае часовая папка",
|
||||||
"Could not write file to disk" : "Не ўдалося запісаць файл на дыск",
|
"Could not write file to disk" : "Не ўдалося запісаць файл на дыск",
|
||||||
"A PHP extension stopped the file upload" : "Пашырэнне PHP спыніла запампоўванне файла",
|
"A PHP extension stopped the file upload" : "Пашырэнне PHP спыніла запампоўванне файла",
|
||||||
|
"No file uploaded or file size exceeds maximum of %s" : "Файл не запампаваны, або памер файла перавышае максімальны %s",
|
||||||
"copy" : "копія",
|
"copy" : "копія",
|
||||||
"Done" : "Гатова",
|
"Done" : "Гатова",
|
||||||
"File" : "Файл",
|
"File" : "Файл",
|
||||||
|
"Invalid date, date format must be YYYY-MM-DD" : "Памылковая дата, дата павінна быць у фармаце ГГГГ-ММ-ДД",
|
||||||
"Cancel" : "Скасаваць",
|
"Cancel" : "Скасаваць",
|
||||||
"Drop your files to upload" : "Перацягніце файлы для запампоўвання",
|
"Drop your files to upload" : "Перацягніце файлы для запампоўвання",
|
||||||
"File already exists" : "Файл ужо існуе",
|
"File already exists" : "Файл ужо існуе",
|
||||||
@@ -50,6 +52,7 @@ OC.L10N.register(
|
|||||||
"Reply" : "Адказаць",
|
"Reply" : "Адказаць",
|
||||||
"Update" : "Абнавіць",
|
"Update" : "Абнавіць",
|
||||||
"Description" : "Апісанне",
|
"Description" : "Апісанне",
|
||||||
|
"Formatting help" : "Даведка па фармаціраванні",
|
||||||
"Later today – {timeLocale}" : "Пазней сёння – {timeLocale}",
|
"Later today – {timeLocale}" : "Пазней сёння – {timeLocale}",
|
||||||
"Set due date for later today" : "Задаць дату выканання на пазней сёння",
|
"Set due date for later today" : "Задаць дату выканання на пазней сёння",
|
||||||
"Tomorrow – {timeLocale}" : "Заўтра – {timeLocale}",
|
"Tomorrow – {timeLocale}" : "Заўтра – {timeLocale}",
|
||||||
@@ -57,6 +60,7 @@ OC.L10N.register(
|
|||||||
"Set due date for this weekend" : "Задаць дату выканання на гэты ўік-энд",
|
"Set due date for this weekend" : "Задаць дату выканання на гэты ўік-энд",
|
||||||
"Next week – {timeLocale}" : "На наступным тыдні – {timeLocale}",
|
"Next week – {timeLocale}" : "На наступным тыдні – {timeLocale}",
|
||||||
"Set due date for next week" : "Задаць дату выканання на наступны тыдзень",
|
"Set due date for next week" : "Задаць дату выканання на наступны тыдзень",
|
||||||
|
"Create a new tag:" : "Стварыць новы тэг:",
|
||||||
"(group)" : "(група)",
|
"(group)" : "(група)",
|
||||||
"Open link" : "Адкрыць спасылку",
|
"Open link" : "Адкрыць спасылку",
|
||||||
"Edit title" : "Рэдагаваць загаловак",
|
"Edit title" : "Рэдагаваць загаловак",
|
||||||
@@ -65,6 +69,7 @@ OC.L10N.register(
|
|||||||
"Keyboard shortcut" : "Спалучэнне клавіш",
|
"Keyboard shortcut" : "Спалучэнне клавіш",
|
||||||
"Action" : "Дзеянне",
|
"Action" : "Дзеянне",
|
||||||
"Shift" : "Shift",
|
"Shift" : "Shift",
|
||||||
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Пошук",
|
"Search" : "Пошук",
|
||||||
"Enter" : "Enter",
|
"Enter" : "Enter",
|
||||||
"Shared with you" : "Абагулена з вамі",
|
"Shared with you" : "Абагулена з вамі",
|
||||||
@@ -78,6 +83,7 @@ OC.L10N.register(
|
|||||||
"Message from {author} in {conversationName}" : "Паведамленне ад {author} у {conversationName}",
|
"Message from {author} in {conversationName}" : "Паведамленне ад {author} у {conversationName}",
|
||||||
"Failed to upload {name}" : "Не ўдалося запампаваць {name}",
|
"Failed to upload {name}" : "Не ўдалося запампаваць {name}",
|
||||||
"Share" : "Абагуліць",
|
"Share" : "Абагуліць",
|
||||||
|
"Personal" : "Асабістыя",
|
||||||
"Today" : "Сёння",
|
"Today" : "Сёння",
|
||||||
"Tomorrow" : "Заўтра"
|
"Tomorrow" : "Заўтра"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -7,9 +7,11 @@
|
|||||||
"Missing a temporary folder" : "Адсутнічае часовая папка",
|
"Missing a temporary folder" : "Адсутнічае часовая папка",
|
||||||
"Could not write file to disk" : "Не ўдалося запісаць файл на дыск",
|
"Could not write file to disk" : "Не ўдалося запісаць файл на дыск",
|
||||||
"A PHP extension stopped the file upload" : "Пашырэнне PHP спыніла запампоўванне файла",
|
"A PHP extension stopped the file upload" : "Пашырэнне PHP спыніла запампоўванне файла",
|
||||||
|
"No file uploaded or file size exceeds maximum of %s" : "Файл не запампаваны, або памер файла перавышае максімальны %s",
|
||||||
"copy" : "копія",
|
"copy" : "копія",
|
||||||
"Done" : "Гатова",
|
"Done" : "Гатова",
|
||||||
"File" : "Файл",
|
"File" : "Файл",
|
||||||
|
"Invalid date, date format must be YYYY-MM-DD" : "Памылковая дата, дата павінна быць у фармаце ГГГГ-ММ-ДД",
|
||||||
"Cancel" : "Скасаваць",
|
"Cancel" : "Скасаваць",
|
||||||
"Drop your files to upload" : "Перацягніце файлы для запампоўвання",
|
"Drop your files to upload" : "Перацягніце файлы для запампоўвання",
|
||||||
"File already exists" : "Файл ужо існуе",
|
"File already exists" : "Файл ужо існуе",
|
||||||
@@ -48,6 +50,7 @@
|
|||||||
"Reply" : "Адказаць",
|
"Reply" : "Адказаць",
|
||||||
"Update" : "Абнавіць",
|
"Update" : "Абнавіць",
|
||||||
"Description" : "Апісанне",
|
"Description" : "Апісанне",
|
||||||
|
"Formatting help" : "Даведка па фармаціраванні",
|
||||||
"Later today – {timeLocale}" : "Пазней сёння – {timeLocale}",
|
"Later today – {timeLocale}" : "Пазней сёння – {timeLocale}",
|
||||||
"Set due date for later today" : "Задаць дату выканання на пазней сёння",
|
"Set due date for later today" : "Задаць дату выканання на пазней сёння",
|
||||||
"Tomorrow – {timeLocale}" : "Заўтра – {timeLocale}",
|
"Tomorrow – {timeLocale}" : "Заўтра – {timeLocale}",
|
||||||
@@ -55,6 +58,7 @@
|
|||||||
"Set due date for this weekend" : "Задаць дату выканання на гэты ўік-энд",
|
"Set due date for this weekend" : "Задаць дату выканання на гэты ўік-энд",
|
||||||
"Next week – {timeLocale}" : "На наступным тыдні – {timeLocale}",
|
"Next week – {timeLocale}" : "На наступным тыдні – {timeLocale}",
|
||||||
"Set due date for next week" : "Задаць дату выканання на наступны тыдзень",
|
"Set due date for next week" : "Задаць дату выканання на наступны тыдзень",
|
||||||
|
"Create a new tag:" : "Стварыць новы тэг:",
|
||||||
"(group)" : "(група)",
|
"(group)" : "(група)",
|
||||||
"Open link" : "Адкрыць спасылку",
|
"Open link" : "Адкрыць спасылку",
|
||||||
"Edit title" : "Рэдагаваць загаловак",
|
"Edit title" : "Рэдагаваць загаловак",
|
||||||
@@ -63,6 +67,7 @@
|
|||||||
"Keyboard shortcut" : "Спалучэнне клавіш",
|
"Keyboard shortcut" : "Спалучэнне клавіш",
|
||||||
"Action" : "Дзеянне",
|
"Action" : "Дзеянне",
|
||||||
"Shift" : "Shift",
|
"Shift" : "Shift",
|
||||||
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Пошук",
|
"Search" : "Пошук",
|
||||||
"Enter" : "Enter",
|
"Enter" : "Enter",
|
||||||
"Shared with you" : "Абагулена з вамі",
|
"Shared with you" : "Абагулена з вамі",
|
||||||
@@ -76,6 +81,7 @@
|
|||||||
"Message from {author} in {conversationName}" : "Паведамленне ад {author} у {conversationName}",
|
"Message from {author} in {conversationName}" : "Паведамленне ад {author} у {conversationName}",
|
||||||
"Failed to upload {name}" : "Не ўдалося запампаваць {name}",
|
"Failed to upload {name}" : "Не ўдалося запампаваць {name}",
|
||||||
"Share" : "Абагуліць",
|
"Share" : "Абагуліць",
|
||||||
|
"Personal" : "Асабістыя",
|
||||||
"Today" : "Сёння",
|
"Today" : "Сёння",
|
||||||
"Tomorrow" : "Заўтра"
|
"Tomorrow" : "Заўтра"
|
||||||
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
|
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
|
||||||
|
|||||||
@@ -51,8 +51,8 @@ OC.L10N.register(
|
|||||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} har tilknyttet kortet {deck-card} på {deck-board} til dig.",
|
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} har tilknyttet kortet {deck-card} på {deck-board} til dig.",
|
||||||
"The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nået sin forfaldsdato.",
|
"The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nået sin forfaldsdato.",
|
||||||
"The card {deck-card} on {deck-board} has reached its due date." : "Kortet {deck-card} på {deck-board} har nået sin forfaldsdato.",
|
"The card {deck-card} on {deck-board} has reached its due date." : "Kortet {deck-card} på {deck-board} har nået sin forfaldsdato.",
|
||||||
"%s has mentioned you in a comment on \"%s\"." : " %s har nævnt dig i en kommentar på \"%s\".",
|
"%s has mentioned you in a comment on \"%s\"." : " %s har omtalt dig i en kommentar på \"%s\".",
|
||||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} har nævnt dig i en kommentar på {deck-card}.",
|
"{user} has mentioned you in a comment on {deck-card}." : "{user} har omtalt dig i en kommentar på {deck-card}.",
|
||||||
"The board \"%s\" has been shared with you by %s." : "Tavlen \"%s\" er blevet delt med dig af %s.",
|
"The board \"%s\" has been shared with you by %s." : "Tavlen \"%s\" er blevet delt med dig af %s.",
|
||||||
"{user} has shared {deck-board} with you." : "{user} har delt {deck-board} med dig.",
|
"{user} has shared {deck-board} with you." : "{user} har delt {deck-board} med dig.",
|
||||||
"Deck board" : "Opslagstavle",
|
"Deck board" : "Opslagstavle",
|
||||||
@@ -188,6 +188,10 @@ OC.L10N.register(
|
|||||||
"Add Attachment" : "Tilføj vedhæftning",
|
"Add Attachment" : "Tilføj vedhæftning",
|
||||||
"Choose attachment" : "Vælg en vedhæftning",
|
"Choose attachment" : "Vælg en vedhæftning",
|
||||||
"Select Date" : "Vælg dato",
|
"Select Date" : "Vælg dato",
|
||||||
|
"Later today – {timeLocale}" : "Senere i dag – {timeLocale}",
|
||||||
|
"Tomorrow – {timeLocale}" : "I morgen – {timeLocale}",
|
||||||
|
"This weekend – {timeLocale}" : "Denne weekend – {timeLocale}",
|
||||||
|
"Next week – {timeLocale}" : "Næste uge – {timeLocale}",
|
||||||
"Set a due date" : "Angiv en forfaldsdato",
|
"Set a due date" : "Angiv en forfaldsdato",
|
||||||
"Remove due date" : "Fjern forfaldsdato",
|
"Remove due date" : "Fjern forfaldsdato",
|
||||||
"Mark as done" : "Marker som færdig",
|
"Mark as done" : "Marker som færdig",
|
||||||
|
|||||||
@@ -49,8 +49,8 @@
|
|||||||
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} har tilknyttet kortet {deck-card} på {deck-board} til dig.",
|
"{user} has assigned the card {deck-card} on {deck-board} to you." : "{user} har tilknyttet kortet {deck-card} på {deck-board} til dig.",
|
||||||
"The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nået sin forfaldsdato.",
|
"The card \"%s\" on \"%s\" has reached its due date." : "Kortet \"%s\" på \"%s\" har nået sin forfaldsdato.",
|
||||||
"The card {deck-card} on {deck-board} has reached its due date." : "Kortet {deck-card} på {deck-board} har nået sin forfaldsdato.",
|
"The card {deck-card} on {deck-board} has reached its due date." : "Kortet {deck-card} på {deck-board} har nået sin forfaldsdato.",
|
||||||
"%s has mentioned you in a comment on \"%s\"." : " %s har nævnt dig i en kommentar på \"%s\".",
|
"%s has mentioned you in a comment on \"%s\"." : " %s har omtalt dig i en kommentar på \"%s\".",
|
||||||
"{user} has mentioned you in a comment on {deck-card}." : "{user} har nævnt dig i en kommentar på {deck-card}.",
|
"{user} has mentioned you in a comment on {deck-card}." : "{user} har omtalt dig i en kommentar på {deck-card}.",
|
||||||
"The board \"%s\" has been shared with you by %s." : "Tavlen \"%s\" er blevet delt med dig af %s.",
|
"The board \"%s\" has been shared with you by %s." : "Tavlen \"%s\" er blevet delt med dig af %s.",
|
||||||
"{user} has shared {deck-board} with you." : "{user} har delt {deck-board} med dig.",
|
"{user} has shared {deck-board} with you." : "{user} har delt {deck-board} med dig.",
|
||||||
"Deck board" : "Opslagstavle",
|
"Deck board" : "Opslagstavle",
|
||||||
@@ -186,6 +186,10 @@
|
|||||||
"Add Attachment" : "Tilføj vedhæftning",
|
"Add Attachment" : "Tilføj vedhæftning",
|
||||||
"Choose attachment" : "Vælg en vedhæftning",
|
"Choose attachment" : "Vælg en vedhæftning",
|
||||||
"Select Date" : "Vælg dato",
|
"Select Date" : "Vælg dato",
|
||||||
|
"Later today – {timeLocale}" : "Senere i dag – {timeLocale}",
|
||||||
|
"Tomorrow – {timeLocale}" : "I morgen – {timeLocale}",
|
||||||
|
"This weekend – {timeLocale}" : "Denne weekend – {timeLocale}",
|
||||||
|
"Next week – {timeLocale}" : "Næste uge – {timeLocale}",
|
||||||
"Set a due date" : "Angiv en forfaldsdato",
|
"Set a due date" : "Angiv en forfaldsdato",
|
||||||
"Remove due date" : "Fjern forfaldsdato",
|
"Remove due date" : "Fjern forfaldsdato",
|
||||||
"Mark as done" : "Marker som færdig",
|
"Mark as done" : "Marker som færdig",
|
||||||
|
|||||||
@@ -373,6 +373,7 @@ OC.L10N.register(
|
|||||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Megjegyzés: Csak a JSON formátum támogatott a Kártyák alkalmazásba való importáláskor.",
|
"Note: Only the JSON format is supported for importing back into the Deck app." : "Megjegyzés: Csak a JSON formátum támogatott a Kártyák alkalmazásba való importáláskor.",
|
||||||
"Export" : "Exportálás",
|
"Export" : "Exportálás",
|
||||||
"Loading filtered view" : "Szűrt nézet betöltése",
|
"Loading filtered view" : "Szűrt nézet betöltése",
|
||||||
|
"Search for {searchQuery} in other boards" : "Keresés a(z) {searchQuery} kifejezésre a többi táblában",
|
||||||
"Search for {searchQuery} in all boards" : "Keresés a(z) {searchQuery} kifejezésre az összes táblában",
|
"Search for {searchQuery} in all boards" : "Keresés a(z) {searchQuery} kifejezésre az összes táblában",
|
||||||
"No results found" : "Nincs találat",
|
"No results found" : "Nincs találat",
|
||||||
"Deck board {name}\n* Last modified on {lastMod}" : "{name} kártyatábla\n* Legutóbb módosítva: {lastMod}",
|
"Deck board {name}\n* Last modified on {lastMod}" : "{name} kártyatábla\n* Legutóbb módosítva: {lastMod}",
|
||||||
|
|||||||
@@ -371,6 +371,7 @@
|
|||||||
"Note: Only the JSON format is supported for importing back into the Deck app." : "Megjegyzés: Csak a JSON formátum támogatott a Kártyák alkalmazásba való importáláskor.",
|
"Note: Only the JSON format is supported for importing back into the Deck app." : "Megjegyzés: Csak a JSON formátum támogatott a Kártyák alkalmazásba való importáláskor.",
|
||||||
"Export" : "Exportálás",
|
"Export" : "Exportálás",
|
||||||
"Loading filtered view" : "Szűrt nézet betöltése",
|
"Loading filtered view" : "Szűrt nézet betöltése",
|
||||||
|
"Search for {searchQuery} in other boards" : "Keresés a(z) {searchQuery} kifejezésre a többi táblában",
|
||||||
"Search for {searchQuery} in all boards" : "Keresés a(z) {searchQuery} kifejezésre az összes táblában",
|
"Search for {searchQuery} in all boards" : "Keresés a(z) {searchQuery} kifejezésre az összes táblában",
|
||||||
"No results found" : "Nincs találat",
|
"No results found" : "Nincs találat",
|
||||||
"Deck board {name}\n* Last modified on {lastMod}" : "{name} kártyatábla\n* Legutóbb módosítva: {lastMod}",
|
"Deck board {name}\n* Last modified on {lastMod}" : "{name} kártyatábla\n* Legutóbb módosítva: {lastMod}",
|
||||||
|
|||||||
@@ -6,16 +6,19 @@ OC.L10N.register(
|
|||||||
"No file was uploaded" : "Ulac afaylu i d-yettwasulin",
|
"No file was uploaded" : "Ulac afaylu i d-yettwasulin",
|
||||||
"Missing a temporary folder" : "Ixuṣ ukaram akudan",
|
"Missing a temporary folder" : "Ixuṣ ukaram akudan",
|
||||||
"Finished" : "Immed",
|
"Finished" : "Immed",
|
||||||
|
"copy" : "nɣel",
|
||||||
"Done" : "Immed",
|
"Done" : "Immed",
|
||||||
"Attachments" : "Ticeqqufin",
|
"Attachments" : "Ticeqqufin",
|
||||||
"File" : "Afaylu",
|
"File" : "Afaylu",
|
||||||
"Cancel" : "Sefsex",
|
"Cancel" : "Sefsex",
|
||||||
"Open" : "Ldi",
|
"Open" : "Ldi",
|
||||||
"Completed" : "Yemmed",
|
"Completed" : "Yemmed",
|
||||||
|
"Open details" : "Ldi talqayt",
|
||||||
"Details" : "Talqayt",
|
"Details" : "Talqayt",
|
||||||
"Sharing" : "Beṭṭu",
|
"Sharing" : "Beṭṭu",
|
||||||
"Tags" : "Tibzimin",
|
"Tags" : "Tibzimin",
|
||||||
"Activity" : "Armud",
|
"Activity" : "Armud",
|
||||||
|
"Transfer" : "Seḍfeṛ",
|
||||||
"Owner" : "Bab",
|
"Owner" : "Bab",
|
||||||
"Delete" : "Kkes",
|
"Delete" : "Kkes",
|
||||||
"Edit" : "Ẓreg",
|
"Edit" : "Ẓreg",
|
||||||
@@ -26,6 +29,9 @@ OC.L10N.register(
|
|||||||
"Save" : "Sekles",
|
"Save" : "Sekles",
|
||||||
"Cancel reply" : "Semmet tiririt.",
|
"Cancel reply" : "Semmet tiririt.",
|
||||||
"Reply" : "Err",
|
"Reply" : "Err",
|
||||||
|
"Description" : "Aglam",
|
||||||
|
"Open link" : "Nɣel aseɣwen",
|
||||||
|
"Keyboard shortcuts" : "Inegzumen n unasiw",
|
||||||
"Ctrl" : "Ctrl",
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Nadi",
|
"Search" : "Nadi",
|
||||||
"Cancel edit" : "Sefsex aseẓreg",
|
"Cancel edit" : "Sefsex aseẓreg",
|
||||||
|
|||||||
@@ -4,16 +4,19 @@
|
|||||||
"No file was uploaded" : "Ulac afaylu i d-yettwasulin",
|
"No file was uploaded" : "Ulac afaylu i d-yettwasulin",
|
||||||
"Missing a temporary folder" : "Ixuṣ ukaram akudan",
|
"Missing a temporary folder" : "Ixuṣ ukaram akudan",
|
||||||
"Finished" : "Immed",
|
"Finished" : "Immed",
|
||||||
|
"copy" : "nɣel",
|
||||||
"Done" : "Immed",
|
"Done" : "Immed",
|
||||||
"Attachments" : "Ticeqqufin",
|
"Attachments" : "Ticeqqufin",
|
||||||
"File" : "Afaylu",
|
"File" : "Afaylu",
|
||||||
"Cancel" : "Sefsex",
|
"Cancel" : "Sefsex",
|
||||||
"Open" : "Ldi",
|
"Open" : "Ldi",
|
||||||
"Completed" : "Yemmed",
|
"Completed" : "Yemmed",
|
||||||
|
"Open details" : "Ldi talqayt",
|
||||||
"Details" : "Talqayt",
|
"Details" : "Talqayt",
|
||||||
"Sharing" : "Beṭṭu",
|
"Sharing" : "Beṭṭu",
|
||||||
"Tags" : "Tibzimin",
|
"Tags" : "Tibzimin",
|
||||||
"Activity" : "Armud",
|
"Activity" : "Armud",
|
||||||
|
"Transfer" : "Seḍfeṛ",
|
||||||
"Owner" : "Bab",
|
"Owner" : "Bab",
|
||||||
"Delete" : "Kkes",
|
"Delete" : "Kkes",
|
||||||
"Edit" : "Ẓreg",
|
"Edit" : "Ẓreg",
|
||||||
@@ -24,6 +27,9 @@
|
|||||||
"Save" : "Sekles",
|
"Save" : "Sekles",
|
||||||
"Cancel reply" : "Semmet tiririt.",
|
"Cancel reply" : "Semmet tiririt.",
|
||||||
"Reply" : "Err",
|
"Reply" : "Err",
|
||||||
|
"Description" : "Aglam",
|
||||||
|
"Open link" : "Nɣel aseɣwen",
|
||||||
|
"Keyboard shortcuts" : "Inegzumen n unasiw",
|
||||||
"Ctrl" : "Ctrl",
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Nadi",
|
"Search" : "Nadi",
|
||||||
"Cancel edit" : "Sefsex aseẓreg",
|
"Cancel edit" : "Sefsex aseẓreg",
|
||||||
|
|||||||
140
l10n/mk.js
140
l10n/mk.js
@@ -12,7 +12,7 @@ OC.L10N.register(
|
|||||||
"You have removed {acl} from the board {board}" : "Го избришавте {acl} од таблата {board}",
|
"You have removed {acl} from the board {board}" : "Го избришавте {acl} од таблата {board}",
|
||||||
"{user} has removed {acl} from the board {board}" : "{user} го избриша {acl} од таблата {board}",
|
"{user} has removed {acl} from the board {board}" : "{user} го избриша {acl} од таблата {board}",
|
||||||
"You have renamed the board {before} to {board}" : "Ја преименувавте таблата {before} во {board}",
|
"You have renamed the board {before} to {board}" : "Ја преименувавте таблата {before} во {board}",
|
||||||
"{user} has renamed the board {before} to {board}" : "{user} ја преименување таблата {before} во {board}",
|
"{user} has renamed the board {before} to {board}" : "{user} ја преименуваше таблата {before} во {board}",
|
||||||
"You have archived the board {board}" : "Ја архивиравте таблата {board}",
|
"You have archived the board {board}" : "Ја архивиравте таблата {board}",
|
||||||
"{user} has archived the board {before}" : "{user} ја архивирање таблата {before}",
|
"{user} has archived the board {before}" : "{user} ја архивирање таблата {before}",
|
||||||
"You have unarchived the board {board}" : "Ја вративте од архива таблата {board}",
|
"You have unarchived the board {board}" : "Ја вративте од архива таблата {board}",
|
||||||
@@ -20,7 +20,7 @@ OC.L10N.register(
|
|||||||
"You have created a new list {stack} on board {board}" : "Креиравте нова листа {stack} на таблата {board}",
|
"You have created a new list {stack} on board {board}" : "Креиравте нова листа {stack} на таблата {board}",
|
||||||
"{user} has created a new list {stack} on board {board}" : "{user} креирање нова листа {stack} на таблата {board}",
|
"{user} has created a new list {stack} on board {board}" : "{user} креирање нова листа {stack} на таблата {board}",
|
||||||
"You have renamed list {before} to {stack} on board {board}" : "Ја преименувавте листа {before} во {stack} на таблата {board}",
|
"You have renamed list {before} to {stack} on board {board}" : "Ја преименувавте листа {before} во {stack} на таблата {board}",
|
||||||
"{user} has renamed list {before} to {stack} on board {board}" : "{user} ја преименување листата {before} во {stack} на таблата {board}",
|
"{user} has renamed list {before} to {stack} on board {board}" : "{user} ја преименуваше листата {before} во {stack} на таблата {board}",
|
||||||
"You have deleted list {stack} on board {board}" : "Ја избришавте листата {stack} од таблата {board}",
|
"You have deleted list {stack} on board {board}" : "Ја избришавте листата {stack} од таблата {board}",
|
||||||
"{user} has deleted list {stack} on board {board}" : "{user} ја избриша листата {stack} од таблата {board}",
|
"{user} has deleted list {stack} on board {board}" : "{user} ја избриша листата {stack} од таблата {board}",
|
||||||
"You have created card {card} in list {stack} on board {board}" : "Креиравте картица {card} во листата {stack} на таблата {board}",
|
"You have created card {card} in list {stack} on board {board}" : "Креиравте картица {card} во листата {stack} на таблата {board}",
|
||||||
@@ -28,7 +28,7 @@ OC.L10N.register(
|
|||||||
"You have deleted card {card} in list {stack} on board {board}" : "Избришавте картица {card} во листата {stack} на таблата {board}",
|
"You have deleted card {card} in list {stack} on board {board}" : "Избришавте картица {card} во листата {stack} на таблата {board}",
|
||||||
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} избриша картица {card} во листата {stack} на таблата {board}",
|
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} избриша картица {card} во листата {stack} на таблата {board}",
|
||||||
"You have renamed the card {before} to {card}" : "Ја преименувавте картицата {before} во {card}",
|
"You have renamed the card {before} to {card}" : "Ја преименувавте картицата {before} во {card}",
|
||||||
"{user} has renamed the card {before} to {card}" : "{user} ја преименување картицата {before} во {card}",
|
"{user} has renamed the card {before} to {card}" : "{user} ја преименуваше картицата {before} во {card}",
|
||||||
"You have added a description to card {card} in list {stack} on board {board}" : "Додадовте опис на картицата {card} во листата {stack} на таблата {board}",
|
"You have added a description to card {card} in list {stack} on board {board}" : "Додадовте опис на картицата {card} во листата {stack} на таблата {board}",
|
||||||
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} додаде опис на картицата {card} во листата {stack} на таблата {board}",
|
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} додаде опис на картицата {card} во листата {stack} на таблата {board}",
|
||||||
"You have updated the description of card {card} in list {stack} on board {board}" : "Го ажуриравте описот на картицата {card} во листата {stack} на таблата {board}",
|
"You have updated the description of card {card} in list {stack} on board {board}" : "Го ажуриравте описот на картицата {card} во листата {stack} на таблата {board}",
|
||||||
@@ -37,6 +37,10 @@ OC.L10N.register(
|
|||||||
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ја архивираше картицата {card} во листата {stack} на таблата {board}",
|
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ја архивираше картицата {card} во листата {stack} на таблата {board}",
|
||||||
"You have unarchived card {card} in list {stack} on board {board}" : "Ја вративте од архива картицата {card} во листата {stack} на таблата {board}",
|
"You have unarchived card {card} in list {stack} on board {board}" : "Ја вративте од архива картицата {card} во листата {stack} на таблата {board}",
|
||||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ја врати од архива картицата {card} во листата {stack} на таблата {board}",
|
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ја врати од архива картицата {card} во листата {stack} на таблата {board}",
|
||||||
|
"You have marked the card {card} as done in list {stack} on board {board}" : "Ја означивте картицата {card} како завршена во листата {stack} на таблата {board}",
|
||||||
|
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} ја означи картичката {card} како завршена во листата {stack} на таблата {board}",
|
||||||
|
"You have marked the card {card} as undone in list {stack} on board {board}" : "Ја означивте картицата {card} како не-завршена во листата {stack} на таблата {board}",
|
||||||
|
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} ја означи картичката {card} како не-завршена во листата {stack} на таблата {board}",
|
||||||
"You have removed the due date of card {card}" : "Го избришавте датумот на истекување на картицата {card}",
|
"You have removed the due date of card {card}" : "Го избришавте датумот на истекување на картицата {card}",
|
||||||
"{user} has removed the due date of card {card}" : "{user} го избриша датумот на истекување на картицата {card}",
|
"{user} has removed the due date of card {card}" : "{user} го избриша датумот на истекување на картицата {card}",
|
||||||
"You have set the due date of card {card} to {after}" : "Поставивте датум на истекување на картицата {card}",
|
"You have set the due date of card {card} to {after}" : "Поставивте датум на истекување на картицата {card}",
|
||||||
@@ -65,7 +69,9 @@ OC.L10N.register(
|
|||||||
"{user} has commented on card {card}" : "{user} коментирање на картицата {card}",
|
"{user} has commented on card {card}" : "{user} коментирање на картицата {card}",
|
||||||
"Deck" : "Deck",
|
"Deck" : "Deck",
|
||||||
"Changes in the <strong>Deck app</strong>" : "Промени во <strong>апликацијата Deck</strong>",
|
"Changes in the <strong>Deck app</strong>" : "Промени во <strong>апликацијата Deck</strong>",
|
||||||
|
"A <strong>board, list or card</strong> was changed" : "Променета е <strong>табла, листа или картица</strong>",
|
||||||
"A <strong>comment</strong> was created on a card" : "<strong>Коментар</strong> е креиран на картица",
|
"A <strong>comment</strong> was created on a card" : "<strong>Коментар</strong> е креиран на картица",
|
||||||
|
"A <strong>card description</strong> has been changed" : "Променет е <strong>опис на картица</strong> ",
|
||||||
"The file was uploaded" : "Датотеката е прикачена",
|
"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 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 uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Големината на датотеката ја надминува MAX_FILE_SIZE директивата која беше специфицирана во HTML формата",
|
||||||
@@ -75,35 +81,66 @@ OC.L10N.register(
|
|||||||
"Could not write file to disk" : "Неможе да се запишува на дискот",
|
"Could not write file to disk" : "Неможе да се запишува на дискот",
|
||||||
"A PHP extension stopped the file upload" : "PHP додаток го стопираше прикачувањето на датотеката",
|
"A PHP extension stopped the file upload" : "PHP додаток го стопираше прикачувањето на датотеката",
|
||||||
"No file uploaded or file size exceeds maximum of %s" : "Нема прикачена дадотека или големината го надмминува максимумот од %s",
|
"No file uploaded or file size exceeds maximum of %s" : "Нема прикачена дадотека или големината го надмминува максимумот од %s",
|
||||||
|
"Invalid file type. Only JSON files are allowed." : "Невалиден тип на датотека. Дозволени се само JSON датотеки.",
|
||||||
|
"Invalid JSON data" : "Невалидни JSON податоци",
|
||||||
|
"Failed to import board" : "Неуспешен увоз на табла",
|
||||||
|
"Cards due today" : "Картици со рок до денес",
|
||||||
|
"Cards due tomorrow" : "Картици со рок до утре",
|
||||||
"Upcoming cards" : "Престојни картици",
|
"Upcoming cards" : "Престојни картици",
|
||||||
"Load more" : "Вчитај повеќе",
|
"Load more" : "Вчитај повеќе",
|
||||||
|
"Welcome to Nextcloud Deck!" : "Добредојдовте во Nextcloud Deck!",
|
||||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Картицата \"%s\" на \"%s\" ти е доделена од %s.",
|
"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 \"%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\".",
|
"%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.",
|
"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",
|
||||||
|
"Create a new deck card" : "Креирај нова картица",
|
||||||
|
"Card comments" : "Коментари на картица",
|
||||||
|
"%s on %s" : "%s на %s",
|
||||||
|
"Deck boards and cards" : "Табли и картици",
|
||||||
"No data was provided to create an attachment." : "Нема податоци за креирање на прилог.",
|
"No data was provided to create an attachment." : "Нема податоци за креирање на прилог.",
|
||||||
"Finished" : "Завршено",
|
"Finished" : "Завршено",
|
||||||
"To review" : "На ревизија",
|
"To review" : "На ревизија",
|
||||||
"Action needed" : "Потребна е акција",
|
"Action needed" : "Потребна е акција",
|
||||||
"Later" : "Покасно",
|
"Later" : "Покасно",
|
||||||
"copy" : "копирај",
|
"copy" : "копирај",
|
||||||
|
"Read more inside" : "Прочитај повеќе",
|
||||||
|
"Custom lists - click to rename!" : "Прилагодени листи – кликнете за преименување!",
|
||||||
"To Do" : "За правење",
|
"To Do" : "За правење",
|
||||||
|
"In Progress" : "Во тек",
|
||||||
"Done" : "Готово",
|
"Done" : "Готово",
|
||||||
|
"1. Open to learn more about boards and cards" : "1. Отворете за да дознаете повеќе за таблите и картичките",
|
||||||
|
"2. Drag cards left and right, up and down" : "2. Влечете ги картичките лево и десно, горе и долу",
|
||||||
|
"3. Apply rich formatting and link content" : "3. Применете богато форматирање и поврзете содржина",
|
||||||
|
"4. Share, comment and collaborate!" : "4. Споделувајте, коментирајте и соработувајте!",
|
||||||
|
"Create your first card!" : "Креирајте ја вашата прва картичка!",
|
||||||
|
"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Достапен е на линк: %s.",
|
||||||
"Attachments" : "Прилози",
|
"Attachments" : "Прилози",
|
||||||
"File" : "Датотека",
|
"File" : "Датотека",
|
||||||
|
"date" : "датум",
|
||||||
"Card not found" : "Картицата не е пронајдена",
|
"Card not found" : "Картицата не е пронајдена",
|
||||||
"Path is already shared with this card" : "Патеката веќе е споделена со оваа картица",
|
"Path is already shared with this card" : "Патеката веќе е споделена со оваа картица",
|
||||||
"Invalid date, date format must be YYYY-MM-DD" : "Невалиден датум, форматот мора да биде ГГГГ-ММ-ДД",
|
"Invalid date, date format must be YYYY-MM-DD" : "Невалиден датум, форматот мора да биде ГГГГ-ММ-ДД",
|
||||||
"Personal planning and team project organization" : "Персонален планер и тимски проект организер",
|
"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" : "Deck е алатка за организација во стил на kanban, наменета за лични планови и организација на проекти за тимови интегрирани со Nextcloud.\n\n\n📥 Додај ги задачите на картички и подреди ги\n📄 Запиши дополнителни белешки во Markdown\n🔖 Додели етикети за уште подобра организација\n👥 Сподели со твојот тим, пријатели или семејство\n📎 Прикачи датотеки и вметни ги во Markdown описот\n💬 Дискутирај со твојот тим преку коментари\n⚡ Следи ги промените во активностите\n🚀 Организирај го твојот проект",
|
||||||
"Add board" : "Додади табла",
|
"Add board" : "Додади табла",
|
||||||
"Card details" : "Детали за картица",
|
"Card details" : "Детали за картица",
|
||||||
"Select the board to link to a project" : "Избери табла за поврзување со проект",
|
"Select the board to link to a project" : "Избери табла за поврзување со проект",
|
||||||
"Search by board title" : "Барај по име на табла",
|
"Search by board title" : "Барај по име на табла",
|
||||||
"Select board" : "Избери табла",
|
"Select board" : "Избери табла",
|
||||||
|
"Move/copy card" : "Премести/копирај картица",
|
||||||
"Select a board" : "Избери табла",
|
"Select a board" : "Избери табла",
|
||||||
"No lists available" : "Нема достапни листи",
|
"No lists available" : "Нема достапни листи",
|
||||||
"Select a list" : "Избери листа",
|
"Select a list" : "Избери листа",
|
||||||
"Move card" : "Премести картица",
|
"Move card" : "Премести картица",
|
||||||
|
"Copy card" : "Копирај картица",
|
||||||
"Select the card to link to a project" : "Избери картица за поврзување со проект",
|
"Select the card to link to a project" : "Избери картица за поврзување со проект",
|
||||||
"Link to card" : "Линк до картица",
|
"Link to card" : "Линк до картица",
|
||||||
"Select a card" : "Избери картица",
|
"Select a card" : "Избери картица",
|
||||||
@@ -124,6 +161,8 @@ OC.L10N.register(
|
|||||||
"Filter by tag" : "Филтрирај по ознака",
|
"Filter by tag" : "Филтрирај по ознака",
|
||||||
"Filter by assigned user" : "Филтрирај по назначени корисници",
|
"Filter by assigned user" : "Филтрирај по назначени корисници",
|
||||||
"Unassigned" : "Неназначени",
|
"Unassigned" : "Неназначени",
|
||||||
|
"Filter by status" : "Филтрирај по статус",
|
||||||
|
"Open and completed" : "Отворени и завршени",
|
||||||
"Open" : "Отвори",
|
"Open" : "Отвори",
|
||||||
"Completed" : "Завршено",
|
"Completed" : "Завршено",
|
||||||
"Filter by due date" : "Филтрирај по краен рок",
|
"Filter by due date" : "Филтрирај по краен рок",
|
||||||
@@ -133,12 +172,17 @@ OC.L10N.register(
|
|||||||
"Next 30 days" : "Следни 30 дена",
|
"Next 30 days" : "Следни 30 дена",
|
||||||
"No due date" : "Нема краен рок",
|
"No due date" : "Нема краен рок",
|
||||||
"Clear filter" : "Исчисти филтри",
|
"Clear filter" : "Исчисти филтри",
|
||||||
|
"View Modes" : "Режими на приказ",
|
||||||
|
"Toggle View Modes" : "Промени режими на приказ",
|
||||||
"Hide archived cards" : "Сокриј ги архивираните картици",
|
"Hide archived cards" : "Сокриј ги архивираните картици",
|
||||||
"Show archived cards" : "Прикажи ги архивираните картици",
|
"Show archived cards" : "Прикажи ги архивираните картици",
|
||||||
"Toggle compact mode" : "Вклучи компактен мод",
|
"Toggle compact mode" : "Вклучи компактен мод",
|
||||||
|
"Hide card cover images" : "Сокриј насловни слики на картици",
|
||||||
|
"Show card cover images" : "Прикажи насловни слики на картици",
|
||||||
"Open details" : "Отвори детали",
|
"Open details" : "Отвори детали",
|
||||||
"Details" : "Детали",
|
"Details" : "Детали",
|
||||||
"Loading board" : "Вчирување на табла",
|
"Currently present people" : "Моментално приситни корисници",
|
||||||
|
"Loading board" : "Вчитување на табла",
|
||||||
"Board not found" : "Таблата не е пронајдена",
|
"Board not found" : "Таблата не е пронајдена",
|
||||||
"Create a new list to add cards to this board" : "Додадете нова листа за да додадете картици на таблата",
|
"Create a new list to add cards to this board" : "Додадете нова листа за да додадете картици на таблата",
|
||||||
"Sharing" : "Споделување",
|
"Sharing" : "Споделување",
|
||||||
@@ -149,19 +193,29 @@ OC.L10N.register(
|
|||||||
"Undo" : "Врати",
|
"Undo" : "Врати",
|
||||||
"Deleted cards" : "Избришани картици",
|
"Deleted cards" : "Избришани картици",
|
||||||
"Failed to create share with {displayName}" : "Неможе да се сподели со {displayName}",
|
"Failed to create share with {displayName}" : "Неможе да се сподели со {displayName}",
|
||||||
|
"Are you sure you want to transfer the board {title} to {user}?" : "Дали сте сигурни дека сакате да ја префрлите таблата {title} на {user}?",
|
||||||
|
"Transfer the board." : "Префрли табла.",
|
||||||
"Transfer" : "Трансфер",
|
"Transfer" : "Трансфер",
|
||||||
|
"The board has been transferred to {user}" : "Таблата е префрлена на {user}",
|
||||||
|
"Failed to transfer the board to {user}" : "Неуспешно префрлање на таблата на {user}",
|
||||||
|
"Share board with a user, group or team …" : "Сподели табла со корисник, група или тим...",
|
||||||
|
"Searching for users, groups and teams …" : "Пребарување на корисници, групи или тимови...",
|
||||||
"No participants found" : "Не се пронајдени учесници",
|
"No participants found" : "Не се пронајдени учесници",
|
||||||
"Board owner" : "Сопственик на таблата",
|
"Board owner" : "Сопственик на таблата",
|
||||||
"(Group)" : "(Група)",
|
"(Group)" : "(Група)",
|
||||||
|
"(Team)" : "(Тим)",
|
||||||
"Can edit" : "Може да се уредува",
|
"Can edit" : "Може да се уредува",
|
||||||
"Can share" : "Can share",
|
"Can share" : "Can share",
|
||||||
"Can manage" : "Може да ја менаџира",
|
"Can manage" : "Може да ја менаџира",
|
||||||
"Owner" : "Сопственик",
|
"Owner" : "Сопственик",
|
||||||
"Delete" : "Избриши",
|
"Delete" : "Избриши",
|
||||||
"List deleted" : "Листата е избришана",
|
"List deleted" : "Листата е избришана",
|
||||||
|
"Edit list title" : "Удери наслов на листата",
|
||||||
"Archive all cards" : "Архивирај ги сите картици",
|
"Archive all cards" : "Архивирај ги сите картици",
|
||||||
|
"Unarchive all cards" : "Врати ги од архива сите картици",
|
||||||
"Delete list" : "Избриши листа",
|
"Delete list" : "Избриши листа",
|
||||||
"Archive all cards in this list" : "Архивирај ги сите картици во листата",
|
"Archive all cards in this list" : "Архивирај ги сите картици во листата",
|
||||||
|
"Unarchive all cards in this list" : "Врати ги од архива сите картици во оваа листа",
|
||||||
"Add a new card" : "Додади нова картица",
|
"Add a new card" : "Додади нова картица",
|
||||||
"Card name" : "Име на картицата",
|
"Card name" : "Име на картицата",
|
||||||
"title and color value must be provided" : "Мора да се внесе наслов и боја",
|
"title and color value must be provided" : "Мора да се внесе наслов и боја",
|
||||||
@@ -169,32 +223,39 @@ OC.L10N.register(
|
|||||||
"Add a new tag" : "Додади нова ознака",
|
"Add a new tag" : "Додади нова ознака",
|
||||||
"Board name" : "Име на табла",
|
"Board name" : "Име на табла",
|
||||||
"Members" : "Членови",
|
"Members" : "Членови",
|
||||||
|
"Assign to users/groups/team" : "Додели на корисници/групи/тимови",
|
||||||
"Assign a user to this card…" : "Додели корисник на оваа картица...",
|
"Assign a user to this card…" : "Додели корисник на оваа картица...",
|
||||||
"Select a user to assign to this card…" : "Избери на кого да се додели оваа картица…",
|
"Select a user to assign to this card…" : "Избери на кого да се додели оваа картица…",
|
||||||
"File to share" : "Датотека за споделување",
|
"File to share" : "Датотека за споделување",
|
||||||
"Invalid path selected" : "Избрана невалидна патека",
|
"Invalid path selected" : "Избрана невалидна патека",
|
||||||
"Upload new files" : "Прикачи нови датотеки",
|
"Upload new files" : "Прикачи нови датотеки",
|
||||||
"Share from Files" : "Сподели од датотеките",
|
"Share from Files" : "Сподели од датотеките",
|
||||||
|
"Pending share" : "Споделување на чекање",
|
||||||
"Add this attachment" : "Додади го овој прилог",
|
"Add this attachment" : "Додади го овој прилог",
|
||||||
"Show in Files" : "Прикажи во датотеките",
|
"Show in Files" : "Прикажи во датотеките",
|
||||||
"Download" : "Преземи",
|
"Download" : "Преземи",
|
||||||
|
"Remove attachment" : "Отстрани прилог",
|
||||||
"Delete Attachment" : "Избриши прилог",
|
"Delete Attachment" : "Избриши прилог",
|
||||||
"Restore Attachment" : "Врати прилог",
|
"Restore Attachment" : "Врати прилог",
|
||||||
"Modified" : "Изменето",
|
"Modified" : "Изменето",
|
||||||
"Created" : "Креирано",
|
"Created" : "Креирано",
|
||||||
"The title cannot be empty." : "Насловот неможе да биде празен.",
|
"The title cannot be empty." : "Насловот неможе да биде празен.",
|
||||||
|
"Cannot close unsaved card!" : "Неможе да се затвори незачувана картица!",
|
||||||
"Open in sidebar view" : "Отвори страничен поглед",
|
"Open in sidebar view" : "Отвори страничен поглед",
|
||||||
"Open in bigger view" : "Отвори на голем екран",
|
"Open in bigger view" : "Отвори на голем екран",
|
||||||
"Comments" : "Коментари",
|
"Comments" : "Коментари",
|
||||||
|
"Failed to load comments" : "Неуспешно вчитување на коментари",
|
||||||
"No comments yet. Begin the discussion!" : "Сеуште нема коментари. Започни дискусија!",
|
"No comments yet. Begin the discussion!" : "Сеуште нема коментари. Започни дискусија!",
|
||||||
"The comment cannot be empty." : "Коментарот неможе да биде празен.",
|
"The comment cannot be empty." : "Коментарот неможе да биде празен.",
|
||||||
"The comment cannot be longer than 1000 characters." : "Коментарот неможе да биде поголем од 1000 карактери.",
|
"The comment cannot be longer than 1000 characters." : "Коментарот неможе да биде поголем од 1000 карактери.",
|
||||||
"Save" : "Зачувај",
|
"Save" : "Зачувај",
|
||||||
"Created:" : "Создадено:",
|
"Created:" : "Создадено:",
|
||||||
"In reply to" : "Како одговор на",
|
"In reply to" : "Како одговор на",
|
||||||
|
"Cancel reply" : "Откажи одговор",
|
||||||
"Reply" : "Одговор",
|
"Reply" : "Одговор",
|
||||||
"Update" : "Ажурирај",
|
"Update" : "Ажурирај",
|
||||||
"Write a description …" : "Напиши опис ...",
|
"Write a description …" : "Напиши опис ...",
|
||||||
|
"Could not save description" : "Неможе да се зачува описот",
|
||||||
"Description" : "Опис",
|
"Description" : "Опис",
|
||||||
"(Unsaved)" : "(Незачувано)",
|
"(Unsaved)" : "(Незачувано)",
|
||||||
"(Saving…)" : "(Снимање…)",
|
"(Saving…)" : "(Снимање…)",
|
||||||
@@ -205,67 +266,135 @@ OC.L10N.register(
|
|||||||
"Choose attachment" : "Избери прилог",
|
"Choose attachment" : "Избери прилог",
|
||||||
"Select Date" : "Избери датум",
|
"Select Date" : "Избери датум",
|
||||||
"Later today – {timeLocale}" : "Денес покасно – {timeLocale}",
|
"Later today – {timeLocale}" : "Денес покасно – {timeLocale}",
|
||||||
|
"Set due date for later today" : "Постави краен рок за денес подоцна",
|
||||||
"Tomorrow – {timeLocale}" : "Утре – {timeLocale}",
|
"Tomorrow – {timeLocale}" : "Утре – {timeLocale}",
|
||||||
|
"Set due date for tomorrow" : "Постави краен рок за утре",
|
||||||
"This weekend – {timeLocale}" : "Овој викенд – {timeLocale}",
|
"This weekend – {timeLocale}" : "Овој викенд – {timeLocale}",
|
||||||
"Set due date for this weekend" : "Постави рок за овој викенд",
|
"Set due date for this weekend" : "Постави краен рок за овој викенд",
|
||||||
|
"Next week – {timeLocale}" : "Следна недела – {timeLocale}",
|
||||||
|
"Set due date for next week" : "Постави краен рок за следната недела",
|
||||||
"Assign a due date to this card…" : "Додели рок за оваа картица…",
|
"Assign a due date to this card…" : "Додели рок за оваа картица…",
|
||||||
"Set a due date" : "Постави краен рок",
|
"Set a due date" : "Постави краен рок",
|
||||||
|
"Add due date" : "Додади краен рок",
|
||||||
|
"Choose a date" : "Избери датум",
|
||||||
"Remove due date" : "Отстрани краен рок",
|
"Remove due date" : "Отстрани краен рок",
|
||||||
"Mark as done" : "Означи како готово",
|
"Mark as done" : "Означи како готово",
|
||||||
|
"Due at:" : "Краен рок:",
|
||||||
|
"Not done" : "Не е завршено",
|
||||||
"Unarchive card" : "Врати картица од архива",
|
"Unarchive card" : "Врати картица од архива",
|
||||||
"Archive card" : "Архивирај картица",
|
"Archive card" : "Архивирај картица",
|
||||||
"Assign a tag to this card…" : "Додади ознака на оваа картица...",
|
"Assign a tag to this card…" : "Додади ознака на оваа картица...",
|
||||||
"Select or create a tag…" : "Избери или креирај ознака...",
|
"Select or create a tag…" : "Избери или креирај ознака...",
|
||||||
|
"Create a new tag:" : "Направи нова ознака:",
|
||||||
"(group)" : "(group)",
|
"(group)" : "(group)",
|
||||||
|
"{count} comments, {unread} unread" : "{count} коментари, {unread} непрочитани",
|
||||||
|
"Todo items" : "Работи за правење",
|
||||||
|
"Edit card title" : "Измени наслов на картица",
|
||||||
|
"Open link" : "Отвори линк",
|
||||||
"Card deleted" : "Картицата е избришана",
|
"Card deleted" : "Картицата е избришана",
|
||||||
"Edit title" : "Удери наслов",
|
"Edit title" : "Удери наслов",
|
||||||
"Assign to me" : "Доделени мене",
|
"Assign to me" : "Доделени мене",
|
||||||
"Unassign myself" : "Откажи се",
|
"Unassign myself" : "Откажи се",
|
||||||
|
"Mark as not done" : "Означи како не-готово",
|
||||||
"Delete card" : "Избриши картица",
|
"Delete card" : "Избриши картица",
|
||||||
"seconds ago" : "пред неколку секунди",
|
"seconds ago" : "пред неколку секунди",
|
||||||
"Keyboard shortcuts" : "Кратенки преку тастатура",
|
"Keyboard shortcuts" : "Кратенки преку тастатура",
|
||||||
|
"Boost your productivity using Deck with keyboard shortcuts." : "Зголеми ја продуктивноста со користење на кратенки преку тастатура.",
|
||||||
|
"Board actions" : "Акции за табла",
|
||||||
"Keyboard shortcut" : "Кратенка преку тастатура",
|
"Keyboard shortcut" : "Кратенка преку тастатура",
|
||||||
|
"Action" : "Акција",
|
||||||
"Shift" : "Shift",
|
"Shift" : "Shift",
|
||||||
|
"Scroll" : "Scroll",
|
||||||
|
"Scroll sideways" : "Лизгај странично",
|
||||||
|
"Navigate between cards" : "Навигација помеѓу картиците",
|
||||||
|
"Esc" : "Esc",
|
||||||
|
"Close card details" : "Затвори детали на картица",
|
||||||
"Ctrl" : "Ctrl",
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Барај",
|
"Search" : "Барај",
|
||||||
|
"Show card filters" : "Прикажи филтри за картици",
|
||||||
|
"Clear card filters" : "Исчисти филтри за картици",
|
||||||
|
"Show help dialog" : "Прикажи дијалог за помош",
|
||||||
|
"Card actions" : "Акции за картици",
|
||||||
|
"The following actions can be triggered on the currently highlighted card" : "Следните акции можат да се активираат на моментално обележаната картичка",
|
||||||
|
"Enter" : "Ентер",
|
||||||
"Space" : "Празно место",
|
"Space" : "Празно место",
|
||||||
|
"Open card details" : "Отвори детали на картица",
|
||||||
|
"Edit the card title" : "Измени наслов на картица",
|
||||||
|
"Assign yourself to the current card" : "Доделете се себеси на тековната картица",
|
||||||
|
"Archive/unarchive the current card" : "Архивирај/одархивирај тековната картица",
|
||||||
|
"Mark card as completed/not completed" : "Означи ја картицата како завршена/незавршена",
|
||||||
|
"Open card menu" : "Отвори мени на картица",
|
||||||
"All boards" : "Сите табли",
|
"All boards" : "Сите табли",
|
||||||
"Archived boards" : "Архивирани табли",
|
"Archived boards" : "Архивирани табли",
|
||||||
"Shared with you" : "Споделено со тебе",
|
"Shared with you" : "Споделено со тебе",
|
||||||
|
"Deck settings" : "Deck параметри",
|
||||||
"Use bigger card view" : "Користи поголем преглед на картици",
|
"Use bigger card view" : "Користи поголем преглед на картици",
|
||||||
|
"Show card ID badge" : "Прикажи ID на картиците",
|
||||||
"Show boards in calendar/tasks" : "Прикажи ги таблите во календарнот",
|
"Show boards in calendar/tasks" : "Прикажи ги таблите во календарнот",
|
||||||
|
"Limit board creation to some groups" : "Ограничи го креирањето на нови табли само на овие групи",
|
||||||
|
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Корисниците кој што не се во овие групи нема да можат да прават нови таби, но ќе можат да работат на таблите кој ќе бидат споделени со нив.",
|
||||||
"Cancel edit" : "Откажи ажурирање",
|
"Cancel edit" : "Откажи ажурирање",
|
||||||
|
"Save board" : "Зачувај табла",
|
||||||
"Board {0} deleted" : "Таблата {0} е избришана",
|
"Board {0} deleted" : "Таблата {0} е избришана",
|
||||||
"All cards" : "Сите картици",
|
"All cards" : "Сите картици",
|
||||||
"Only assigned cards" : "Само доделени картици",
|
"Only assigned cards" : "Само доделени картици",
|
||||||
"No reminder" : "Нема потсетник",
|
"No reminder" : "Нема потсетник",
|
||||||
"An error occurred" : "Настана грешка",
|
"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?" : "Бришење на таблата?",
|
"Delete the board?" : "Бришење на таблата?",
|
||||||
|
"Exporting board..." : "Извоз на табла...",
|
||||||
"Board details" : "Детали за таблата",
|
"Board details" : "Детали за таблата",
|
||||||
"Edit board" : "Измени табла",
|
"Edit board" : "Измени табла",
|
||||||
"Clone board" : "Клонирај табла",
|
"Clone board" : "Клонирај табла",
|
||||||
"Unarchive board" : "Врати табла од архива",
|
"Unarchive board" : "Врати табла од архива",
|
||||||
"Archive board" : "Архивирај табла",
|
"Archive board" : "Архивирај табла",
|
||||||
|
"Export board" : "Извези табла",
|
||||||
"Turn on due date reminders" : "Вклучи потсетници за крајните рокови",
|
"Turn on due date reminders" : "Вклучи потсетници за крајните рокови",
|
||||||
"Turn off due date reminders" : "Исклучи потсетници за крајните рокови",
|
"Turn off due date reminders" : "Исклучи потсетници за крајните рокови",
|
||||||
"Due date reminders" : "Потсетници за крајните рокови",
|
"Due date reminders" : "Потсетници за крајните рокови",
|
||||||
"Assigned cards" : "Доделени картици",
|
"Assigned cards" : "Доделени картици",
|
||||||
"No notifications" : "Нема известувања",
|
"No notifications" : "Нема известувања",
|
||||||
"Delete board" : "Избриши табла",
|
"Delete board" : "Избриши табла",
|
||||||
|
"Importing board..." : "Увезување табла...",
|
||||||
|
"Board imported successfully" : "Таблата е успешно увезена",
|
||||||
|
"Import board" : "Увези табла",
|
||||||
|
"Clone {boardTitle}" : "Клонирај {boardTitle}",
|
||||||
"Clone cards" : "Клинирај картици",
|
"Clone cards" : "Клинирај картици",
|
||||||
|
"Clone assignments" : "Клонирај задачи",
|
||||||
|
"Clone labels" : "Клонирај ознаки",
|
||||||
|
"Clone due dates" : "Клонирај крајни рокови",
|
||||||
"Advanced options" : "Напредни опции",
|
"Advanced options" : "Напредни опции",
|
||||||
|
"Move all cards to the first list" : "Помести ги сите картици во првата листа",
|
||||||
|
"Restore archived cards" : "Врати архивирани картици",
|
||||||
"Clone" : "Клонирај",
|
"Clone" : "Клонирај",
|
||||||
|
"Export {boardTitle}" : "Извези {boardTitle}",
|
||||||
|
"Export as JSON" : "Извези како JSON",
|
||||||
|
"Export as CSV" : "Извези како CSV",
|
||||||
|
"Note: Only the JSON format is supported for importing back into the Deck app." : "Забелешка: Поддржан е само JSON формат за увоз назад во апликацијата Deck.",
|
||||||
"Export" : "Извези",
|
"Export" : "Извези",
|
||||||
"Loading filtered view" : "Вчитување на филтриран поглед",
|
"Loading filtered view" : "Вчитување на филтриран поглед",
|
||||||
|
"Search for {searchQuery} in other boards" : "Барај {searchQuery} во други табли",
|
||||||
|
"Search for {searchQuery} in all boards" : "Барај {searchQuery} во сите табли",
|
||||||
"No results found" : "Нема пронајдено резултати",
|
"No results found" : "Нема пронајдено резултати",
|
||||||
|
"Deck board {name}\n* Last modified on {lastMod}" : "Табла {name}\n* Последна промена на {lastMod}",
|
||||||
|
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Креирана на {created}\n* Последна промена на {lastMod}\n* {nbAttachments} прилози\n* {nbComments} коментари",
|
||||||
|
"{nbCards} cards" : "{nbCards} картици",
|
||||||
|
"Due on {date}" : "Истекува на {date}",
|
||||||
"{stack} in {board}" : "{stack} во {board}",
|
"{stack} in {board}" : "{stack} во {board}",
|
||||||
|
"Click to expand description" : "Кликнни за проширување на опис",
|
||||||
|
"Click to expand comment" : "Кликнни за проширување на коментарот",
|
||||||
"Create card" : "Креирајте картица",
|
"Create card" : "Креирајте картица",
|
||||||
"Create a new card" : "Креирајте нова картица",
|
"Create a new card" : "Креирајте нова картица",
|
||||||
"Card title" : "Наслов на картицата",
|
"Card title" : "Наслов на картицата",
|
||||||
|
"Creating the new card …" : "Креирање нова картица ...",
|
||||||
|
"Card \"{card}\" was added to \"{board}\"" : "Картицата \"{card}\" е додадена во \"{board}\"",
|
||||||
"Open card" : "Отвори картица",
|
"Open card" : "Отвори картица",
|
||||||
"Close" : "Затвори",
|
"Close" : "Затвори",
|
||||||
"No upcoming cards" : "Нема престојни картици",
|
"No upcoming cards" : "Нема престојни картици",
|
||||||
|
"upcoming cards today" : "престојни картици за денес",
|
||||||
|
"upcoming cards tomorrow" : "престојни картици за утре",
|
||||||
"upcoming cards" : "престојни картици",
|
"upcoming cards" : "престојни картици",
|
||||||
|
"New card" : "Нова картица",
|
||||||
"Link to a board" : "Линк до табла",
|
"Link to a board" : "Линк до табла",
|
||||||
"Link to a card" : "Линк до картица",
|
"Link to a card" : "Линк до картица",
|
||||||
"Create a card" : "Креирајте картица",
|
"Create a card" : "Креирајте картица",
|
||||||
@@ -273,6 +402,7 @@ OC.L10N.register(
|
|||||||
"Something went wrong" : "Нешто не е во ред",
|
"Something went wrong" : "Нешто не е во ред",
|
||||||
"Failed to upload {name}" : "Неуспешно прикачување {name}",
|
"Failed to upload {name}" : "Неуспешно прикачување {name}",
|
||||||
"Maximum file size of {size} exceeded" : "Максималната големина на датотека од {size} е достигната",
|
"Maximum file size of {size} exceeded" : "Максималната големина на датотека од {size} е достигната",
|
||||||
|
"Assigned users" : "Доделени корисници",
|
||||||
"Due date" : "До датум",
|
"Due date" : "До датум",
|
||||||
"Error creating the share" : "Грешка при креирање на споделување",
|
"Error creating the share" : "Грешка при креирање на споделување",
|
||||||
"Share with a Deck card" : "Споделено со Deck картица",
|
"Share with a Deck card" : "Споделено со Deck картица",
|
||||||
|
|||||||
140
l10n/mk.json
140
l10n/mk.json
@@ -10,7 +10,7 @@
|
|||||||
"You have removed {acl} from the board {board}" : "Го избришавте {acl} од таблата {board}",
|
"You have removed {acl} from the board {board}" : "Го избришавте {acl} од таблата {board}",
|
||||||
"{user} has removed {acl} from the board {board}" : "{user} го избриша {acl} од таблата {board}",
|
"{user} has removed {acl} from the board {board}" : "{user} го избриша {acl} од таблата {board}",
|
||||||
"You have renamed the board {before} to {board}" : "Ја преименувавте таблата {before} во {board}",
|
"You have renamed the board {before} to {board}" : "Ја преименувавте таблата {before} во {board}",
|
||||||
"{user} has renamed the board {before} to {board}" : "{user} ја преименување таблата {before} во {board}",
|
"{user} has renamed the board {before} to {board}" : "{user} ја преименуваше таблата {before} во {board}",
|
||||||
"You have archived the board {board}" : "Ја архивиравте таблата {board}",
|
"You have archived the board {board}" : "Ја архивиравте таблата {board}",
|
||||||
"{user} has archived the board {before}" : "{user} ја архивирање таблата {before}",
|
"{user} has archived the board {before}" : "{user} ја архивирање таблата {before}",
|
||||||
"You have unarchived the board {board}" : "Ја вративте од архива таблата {board}",
|
"You have unarchived the board {board}" : "Ја вративте од архива таблата {board}",
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
"You have created a new list {stack} on board {board}" : "Креиравте нова листа {stack} на таблата {board}",
|
"You have created a new list {stack} on board {board}" : "Креиравте нова листа {stack} на таблата {board}",
|
||||||
"{user} has created a new list {stack} on board {board}" : "{user} креирање нова листа {stack} на таблата {board}",
|
"{user} has created a new list {stack} on board {board}" : "{user} креирање нова листа {stack} на таблата {board}",
|
||||||
"You have renamed list {before} to {stack} on board {board}" : "Ја преименувавте листа {before} во {stack} на таблата {board}",
|
"You have renamed list {before} to {stack} on board {board}" : "Ја преименувавте листа {before} во {stack} на таблата {board}",
|
||||||
"{user} has renamed list {before} to {stack} on board {board}" : "{user} ја преименување листата {before} во {stack} на таблата {board}",
|
"{user} has renamed list {before} to {stack} on board {board}" : "{user} ја преименуваше листата {before} во {stack} на таблата {board}",
|
||||||
"You have deleted list {stack} on board {board}" : "Ја избришавте листата {stack} од таблата {board}",
|
"You have deleted list {stack} on board {board}" : "Ја избришавте листата {stack} од таблата {board}",
|
||||||
"{user} has deleted list {stack} on board {board}" : "{user} ја избриша листата {stack} од таблата {board}",
|
"{user} has deleted list {stack} on board {board}" : "{user} ја избриша листата {stack} од таблата {board}",
|
||||||
"You have created card {card} in list {stack} on board {board}" : "Креиравте картица {card} во листата {stack} на таблата {board}",
|
"You have created card {card} in list {stack} on board {board}" : "Креиравте картица {card} во листата {stack} на таблата {board}",
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
"You have deleted card {card} in list {stack} on board {board}" : "Избришавте картица {card} во листата {stack} на таблата {board}",
|
"You have deleted card {card} in list {stack} on board {board}" : "Избришавте картица {card} во листата {stack} на таблата {board}",
|
||||||
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} избриша картица {card} во листата {stack} на таблата {board}",
|
"{user} has deleted card {card} in list {stack} on board {board}" : "{user} избриша картица {card} во листата {stack} на таблата {board}",
|
||||||
"You have renamed the card {before} to {card}" : "Ја преименувавте картицата {before} во {card}",
|
"You have renamed the card {before} to {card}" : "Ја преименувавте картицата {before} во {card}",
|
||||||
"{user} has renamed the card {before} to {card}" : "{user} ја преименување картицата {before} во {card}",
|
"{user} has renamed the card {before} to {card}" : "{user} ја преименуваше картицата {before} во {card}",
|
||||||
"You have added a description to card {card} in list {stack} on board {board}" : "Додадовте опис на картицата {card} во листата {stack} на таблата {board}",
|
"You have added a description to card {card} in list {stack} on board {board}" : "Додадовте опис на картицата {card} во листата {stack} на таблата {board}",
|
||||||
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} додаде опис на картицата {card} во листата {stack} на таблата {board}",
|
"{user} has added a description to card {card} in list {stack} on board {board}" : "{user} додаде опис на картицата {card} во листата {stack} на таблата {board}",
|
||||||
"You have updated the description of card {card} in list {stack} on board {board}" : "Го ажуриравте описот на картицата {card} во листата {stack} на таблата {board}",
|
"You have updated the description of card {card} in list {stack} on board {board}" : "Го ажуриравте описот на картицата {card} во листата {stack} на таблата {board}",
|
||||||
@@ -35,6 +35,10 @@
|
|||||||
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ја архивираше картицата {card} во листата {stack} на таблата {board}",
|
"{user} has archived card {card} in list {stack} on board {board}" : "{user} ја архивираше картицата {card} во листата {stack} на таблата {board}",
|
||||||
"You have unarchived card {card} in list {stack} on board {board}" : "Ја вративте од архива картицата {card} во листата {stack} на таблата {board}",
|
"You have unarchived card {card} in list {stack} on board {board}" : "Ја вративте од архива картицата {card} во листата {stack} на таблата {board}",
|
||||||
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ја врати од архива картицата {card} во листата {stack} на таблата {board}",
|
"{user} has unarchived card {card} in list {stack} on board {board}" : "{user} ја врати од архива картицата {card} во листата {stack} на таблата {board}",
|
||||||
|
"You have marked the card {card} as done in list {stack} on board {board}" : "Ја означивте картицата {card} како завршена во листата {stack} на таблата {board}",
|
||||||
|
"{user} has marked card {card} as done in list {stack} on board {board}" : "{user} ја означи картичката {card} како завршена во листата {stack} на таблата {board}",
|
||||||
|
"You have marked the card {card} as undone in list {stack} on board {board}" : "Ја означивте картицата {card} како не-завршена во листата {stack} на таблата {board}",
|
||||||
|
"{user} has marked the card {card} as undone in list {stack} on board {board}" : "{user} ја означи картичката {card} како не-завршена во листата {stack} на таблата {board}",
|
||||||
"You have removed the due date of card {card}" : "Го избришавте датумот на истекување на картицата {card}",
|
"You have removed the due date of card {card}" : "Го избришавте датумот на истекување на картицата {card}",
|
||||||
"{user} has removed the due date of card {card}" : "{user} го избриша датумот на истекување на картицата {card}",
|
"{user} has removed the due date of card {card}" : "{user} го избриша датумот на истекување на картицата {card}",
|
||||||
"You have set the due date of card {card} to {after}" : "Поставивте датум на истекување на картицата {card}",
|
"You have set the due date of card {card} to {after}" : "Поставивте датум на истекување на картицата {card}",
|
||||||
@@ -63,7 +67,9 @@
|
|||||||
"{user} has commented on card {card}" : "{user} коментирање на картицата {card}",
|
"{user} has commented on card {card}" : "{user} коментирање на картицата {card}",
|
||||||
"Deck" : "Deck",
|
"Deck" : "Deck",
|
||||||
"Changes in the <strong>Deck app</strong>" : "Промени во <strong>апликацијата Deck</strong>",
|
"Changes in the <strong>Deck app</strong>" : "Промени во <strong>апликацијата Deck</strong>",
|
||||||
|
"A <strong>board, list or card</strong> was changed" : "Променета е <strong>табла, листа или картица</strong>",
|
||||||
"A <strong>comment</strong> was created on a card" : "<strong>Коментар</strong> е креиран на картица",
|
"A <strong>comment</strong> was created on a card" : "<strong>Коментар</strong> е креиран на картица",
|
||||||
|
"A <strong>card description</strong> has been changed" : "Променет е <strong>опис на картица</strong> ",
|
||||||
"The file was uploaded" : "Датотеката е прикачена",
|
"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 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 uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Големината на датотеката ја надминува MAX_FILE_SIZE директивата која беше специфицирана во HTML формата",
|
||||||
@@ -73,35 +79,66 @@
|
|||||||
"Could not write file to disk" : "Неможе да се запишува на дискот",
|
"Could not write file to disk" : "Неможе да се запишува на дискот",
|
||||||
"A PHP extension stopped the file upload" : "PHP додаток го стопираше прикачувањето на датотеката",
|
"A PHP extension stopped the file upload" : "PHP додаток го стопираше прикачувањето на датотеката",
|
||||||
"No file uploaded or file size exceeds maximum of %s" : "Нема прикачена дадотека или големината го надмминува максимумот од %s",
|
"No file uploaded or file size exceeds maximum of %s" : "Нема прикачена дадотека или големината го надмминува максимумот од %s",
|
||||||
|
"Invalid file type. Only JSON files are allowed." : "Невалиден тип на датотека. Дозволени се само JSON датотеки.",
|
||||||
|
"Invalid JSON data" : "Невалидни JSON податоци",
|
||||||
|
"Failed to import board" : "Неуспешен увоз на табла",
|
||||||
|
"Cards due today" : "Картици со рок до денес",
|
||||||
|
"Cards due tomorrow" : "Картици со рок до утре",
|
||||||
"Upcoming cards" : "Престојни картици",
|
"Upcoming cards" : "Престојни картици",
|
||||||
"Load more" : "Вчитај повеќе",
|
"Load more" : "Вчитај повеќе",
|
||||||
|
"Welcome to Nextcloud Deck!" : "Добредојдовте во Nextcloud Deck!",
|
||||||
"The card \"%s\" on \"%s\" has been assigned to you by %s." : "Картицата \"%s\" на \"%s\" ти е доделена од %s.",
|
"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 \"%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\".",
|
"%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.",
|
"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",
|
||||||
|
"Create a new deck card" : "Креирај нова картица",
|
||||||
|
"Card comments" : "Коментари на картица",
|
||||||
|
"%s on %s" : "%s на %s",
|
||||||
|
"Deck boards and cards" : "Табли и картици",
|
||||||
"No data was provided to create an attachment." : "Нема податоци за креирање на прилог.",
|
"No data was provided to create an attachment." : "Нема податоци за креирање на прилог.",
|
||||||
"Finished" : "Завршено",
|
"Finished" : "Завршено",
|
||||||
"To review" : "На ревизија",
|
"To review" : "На ревизија",
|
||||||
"Action needed" : "Потребна е акција",
|
"Action needed" : "Потребна е акција",
|
||||||
"Later" : "Покасно",
|
"Later" : "Покасно",
|
||||||
"copy" : "копирај",
|
"copy" : "копирај",
|
||||||
|
"Read more inside" : "Прочитај повеќе",
|
||||||
|
"Custom lists - click to rename!" : "Прилагодени листи – кликнете за преименување!",
|
||||||
"To Do" : "За правење",
|
"To Do" : "За правење",
|
||||||
|
"In Progress" : "Во тек",
|
||||||
"Done" : "Готово",
|
"Done" : "Готово",
|
||||||
|
"1. Open to learn more about boards and cards" : "1. Отворете за да дознаете повеќе за таблите и картичките",
|
||||||
|
"2. Drag cards left and right, up and down" : "2. Влечете ги картичките лево и десно, горе и долу",
|
||||||
|
"3. Apply rich formatting and link content" : "3. Применете богато форматирање и поврзете содржина",
|
||||||
|
"4. Share, comment and collaborate!" : "4. Споделувајте, коментирајте и соработувајте!",
|
||||||
|
"Create your first card!" : "Креирајте ја вашата прва картичка!",
|
||||||
|
"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Достапен е на линк: %s.",
|
||||||
"Attachments" : "Прилози",
|
"Attachments" : "Прилози",
|
||||||
"File" : "Датотека",
|
"File" : "Датотека",
|
||||||
|
"date" : "датум",
|
||||||
"Card not found" : "Картицата не е пронајдена",
|
"Card not found" : "Картицата не е пронајдена",
|
||||||
"Path is already shared with this card" : "Патеката веќе е споделена со оваа картица",
|
"Path is already shared with this card" : "Патеката веќе е споделена со оваа картица",
|
||||||
"Invalid date, date format must be YYYY-MM-DD" : "Невалиден датум, форматот мора да биде ГГГГ-ММ-ДД",
|
"Invalid date, date format must be YYYY-MM-DD" : "Невалиден датум, форматот мора да биде ГГГГ-ММ-ДД",
|
||||||
"Personal planning and team project organization" : "Персонален планер и тимски проект организер",
|
"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" : "Deck е алатка за организација во стил на kanban, наменета за лични планови и организација на проекти за тимови интегрирани со Nextcloud.\n\n\n📥 Додај ги задачите на картички и подреди ги\n📄 Запиши дополнителни белешки во Markdown\n🔖 Додели етикети за уште подобра организација\n👥 Сподели со твојот тим, пријатели или семејство\n📎 Прикачи датотеки и вметни ги во Markdown описот\n💬 Дискутирај со твојот тим преку коментари\n⚡ Следи ги промените во активностите\n🚀 Организирај го твојот проект",
|
||||||
"Add board" : "Додади табла",
|
"Add board" : "Додади табла",
|
||||||
"Card details" : "Детали за картица",
|
"Card details" : "Детали за картица",
|
||||||
"Select the board to link to a project" : "Избери табла за поврзување со проект",
|
"Select the board to link to a project" : "Избери табла за поврзување со проект",
|
||||||
"Search by board title" : "Барај по име на табла",
|
"Search by board title" : "Барај по име на табла",
|
||||||
"Select board" : "Избери табла",
|
"Select board" : "Избери табла",
|
||||||
|
"Move/copy card" : "Премести/копирај картица",
|
||||||
"Select a board" : "Избери табла",
|
"Select a board" : "Избери табла",
|
||||||
"No lists available" : "Нема достапни листи",
|
"No lists available" : "Нема достапни листи",
|
||||||
"Select a list" : "Избери листа",
|
"Select a list" : "Избери листа",
|
||||||
"Move card" : "Премести картица",
|
"Move card" : "Премести картица",
|
||||||
|
"Copy card" : "Копирај картица",
|
||||||
"Select the card to link to a project" : "Избери картица за поврзување со проект",
|
"Select the card to link to a project" : "Избери картица за поврзување со проект",
|
||||||
"Link to card" : "Линк до картица",
|
"Link to card" : "Линк до картица",
|
||||||
"Select a card" : "Избери картица",
|
"Select a card" : "Избери картица",
|
||||||
@@ -122,6 +159,8 @@
|
|||||||
"Filter by tag" : "Филтрирај по ознака",
|
"Filter by tag" : "Филтрирај по ознака",
|
||||||
"Filter by assigned user" : "Филтрирај по назначени корисници",
|
"Filter by assigned user" : "Филтрирај по назначени корисници",
|
||||||
"Unassigned" : "Неназначени",
|
"Unassigned" : "Неназначени",
|
||||||
|
"Filter by status" : "Филтрирај по статус",
|
||||||
|
"Open and completed" : "Отворени и завршени",
|
||||||
"Open" : "Отвори",
|
"Open" : "Отвори",
|
||||||
"Completed" : "Завршено",
|
"Completed" : "Завршено",
|
||||||
"Filter by due date" : "Филтрирај по краен рок",
|
"Filter by due date" : "Филтрирај по краен рок",
|
||||||
@@ -131,12 +170,17 @@
|
|||||||
"Next 30 days" : "Следни 30 дена",
|
"Next 30 days" : "Следни 30 дена",
|
||||||
"No due date" : "Нема краен рок",
|
"No due date" : "Нема краен рок",
|
||||||
"Clear filter" : "Исчисти филтри",
|
"Clear filter" : "Исчисти филтри",
|
||||||
|
"View Modes" : "Режими на приказ",
|
||||||
|
"Toggle View Modes" : "Промени режими на приказ",
|
||||||
"Hide archived cards" : "Сокриј ги архивираните картици",
|
"Hide archived cards" : "Сокриј ги архивираните картици",
|
||||||
"Show archived cards" : "Прикажи ги архивираните картици",
|
"Show archived cards" : "Прикажи ги архивираните картици",
|
||||||
"Toggle compact mode" : "Вклучи компактен мод",
|
"Toggle compact mode" : "Вклучи компактен мод",
|
||||||
|
"Hide card cover images" : "Сокриј насловни слики на картици",
|
||||||
|
"Show card cover images" : "Прикажи насловни слики на картици",
|
||||||
"Open details" : "Отвори детали",
|
"Open details" : "Отвори детали",
|
||||||
"Details" : "Детали",
|
"Details" : "Детали",
|
||||||
"Loading board" : "Вчирување на табла",
|
"Currently present people" : "Моментално приситни корисници",
|
||||||
|
"Loading board" : "Вчитување на табла",
|
||||||
"Board not found" : "Таблата не е пронајдена",
|
"Board not found" : "Таблата не е пронајдена",
|
||||||
"Create a new list to add cards to this board" : "Додадете нова листа за да додадете картици на таблата",
|
"Create a new list to add cards to this board" : "Додадете нова листа за да додадете картици на таблата",
|
||||||
"Sharing" : "Споделување",
|
"Sharing" : "Споделување",
|
||||||
@@ -147,19 +191,29 @@
|
|||||||
"Undo" : "Врати",
|
"Undo" : "Врати",
|
||||||
"Deleted cards" : "Избришани картици",
|
"Deleted cards" : "Избришани картици",
|
||||||
"Failed to create share with {displayName}" : "Неможе да се сподели со {displayName}",
|
"Failed to create share with {displayName}" : "Неможе да се сподели со {displayName}",
|
||||||
|
"Are you sure you want to transfer the board {title} to {user}?" : "Дали сте сигурни дека сакате да ја префрлите таблата {title} на {user}?",
|
||||||
|
"Transfer the board." : "Префрли табла.",
|
||||||
"Transfer" : "Трансфер",
|
"Transfer" : "Трансфер",
|
||||||
|
"The board has been transferred to {user}" : "Таблата е префрлена на {user}",
|
||||||
|
"Failed to transfer the board to {user}" : "Неуспешно префрлање на таблата на {user}",
|
||||||
|
"Share board with a user, group or team …" : "Сподели табла со корисник, група или тим...",
|
||||||
|
"Searching for users, groups and teams …" : "Пребарување на корисници, групи или тимови...",
|
||||||
"No participants found" : "Не се пронајдени учесници",
|
"No participants found" : "Не се пронајдени учесници",
|
||||||
"Board owner" : "Сопственик на таблата",
|
"Board owner" : "Сопственик на таблата",
|
||||||
"(Group)" : "(Група)",
|
"(Group)" : "(Група)",
|
||||||
|
"(Team)" : "(Тим)",
|
||||||
"Can edit" : "Може да се уредува",
|
"Can edit" : "Може да се уредува",
|
||||||
"Can share" : "Can share",
|
"Can share" : "Can share",
|
||||||
"Can manage" : "Може да ја менаџира",
|
"Can manage" : "Може да ја менаџира",
|
||||||
"Owner" : "Сопственик",
|
"Owner" : "Сопственик",
|
||||||
"Delete" : "Избриши",
|
"Delete" : "Избриши",
|
||||||
"List deleted" : "Листата е избришана",
|
"List deleted" : "Листата е избришана",
|
||||||
|
"Edit list title" : "Удери наслов на листата",
|
||||||
"Archive all cards" : "Архивирај ги сите картици",
|
"Archive all cards" : "Архивирај ги сите картици",
|
||||||
|
"Unarchive all cards" : "Врати ги од архива сите картици",
|
||||||
"Delete list" : "Избриши листа",
|
"Delete list" : "Избриши листа",
|
||||||
"Archive all cards in this list" : "Архивирај ги сите картици во листата",
|
"Archive all cards in this list" : "Архивирај ги сите картици во листата",
|
||||||
|
"Unarchive all cards in this list" : "Врати ги од архива сите картици во оваа листа",
|
||||||
"Add a new card" : "Додади нова картица",
|
"Add a new card" : "Додади нова картица",
|
||||||
"Card name" : "Име на картицата",
|
"Card name" : "Име на картицата",
|
||||||
"title and color value must be provided" : "Мора да се внесе наслов и боја",
|
"title and color value must be provided" : "Мора да се внесе наслов и боја",
|
||||||
@@ -167,32 +221,39 @@
|
|||||||
"Add a new tag" : "Додади нова ознака",
|
"Add a new tag" : "Додади нова ознака",
|
||||||
"Board name" : "Име на табла",
|
"Board name" : "Име на табла",
|
||||||
"Members" : "Членови",
|
"Members" : "Членови",
|
||||||
|
"Assign to users/groups/team" : "Додели на корисници/групи/тимови",
|
||||||
"Assign a user to this card…" : "Додели корисник на оваа картица...",
|
"Assign a user to this card…" : "Додели корисник на оваа картица...",
|
||||||
"Select a user to assign to this card…" : "Избери на кого да се додели оваа картица…",
|
"Select a user to assign to this card…" : "Избери на кого да се додели оваа картица…",
|
||||||
"File to share" : "Датотека за споделување",
|
"File to share" : "Датотека за споделување",
|
||||||
"Invalid path selected" : "Избрана невалидна патека",
|
"Invalid path selected" : "Избрана невалидна патека",
|
||||||
"Upload new files" : "Прикачи нови датотеки",
|
"Upload new files" : "Прикачи нови датотеки",
|
||||||
"Share from Files" : "Сподели од датотеките",
|
"Share from Files" : "Сподели од датотеките",
|
||||||
|
"Pending share" : "Споделување на чекање",
|
||||||
"Add this attachment" : "Додади го овој прилог",
|
"Add this attachment" : "Додади го овој прилог",
|
||||||
"Show in Files" : "Прикажи во датотеките",
|
"Show in Files" : "Прикажи во датотеките",
|
||||||
"Download" : "Преземи",
|
"Download" : "Преземи",
|
||||||
|
"Remove attachment" : "Отстрани прилог",
|
||||||
"Delete Attachment" : "Избриши прилог",
|
"Delete Attachment" : "Избриши прилог",
|
||||||
"Restore Attachment" : "Врати прилог",
|
"Restore Attachment" : "Врати прилог",
|
||||||
"Modified" : "Изменето",
|
"Modified" : "Изменето",
|
||||||
"Created" : "Креирано",
|
"Created" : "Креирано",
|
||||||
"The title cannot be empty." : "Насловот неможе да биде празен.",
|
"The title cannot be empty." : "Насловот неможе да биде празен.",
|
||||||
|
"Cannot close unsaved card!" : "Неможе да се затвори незачувана картица!",
|
||||||
"Open in sidebar view" : "Отвори страничен поглед",
|
"Open in sidebar view" : "Отвори страничен поглед",
|
||||||
"Open in bigger view" : "Отвори на голем екран",
|
"Open in bigger view" : "Отвори на голем екран",
|
||||||
"Comments" : "Коментари",
|
"Comments" : "Коментари",
|
||||||
|
"Failed to load comments" : "Неуспешно вчитување на коментари",
|
||||||
"No comments yet. Begin the discussion!" : "Сеуште нема коментари. Започни дискусија!",
|
"No comments yet. Begin the discussion!" : "Сеуште нема коментари. Започни дискусија!",
|
||||||
"The comment cannot be empty." : "Коментарот неможе да биде празен.",
|
"The comment cannot be empty." : "Коментарот неможе да биде празен.",
|
||||||
"The comment cannot be longer than 1000 characters." : "Коментарот неможе да биде поголем од 1000 карактери.",
|
"The comment cannot be longer than 1000 characters." : "Коментарот неможе да биде поголем од 1000 карактери.",
|
||||||
"Save" : "Зачувај",
|
"Save" : "Зачувај",
|
||||||
"Created:" : "Создадено:",
|
"Created:" : "Создадено:",
|
||||||
"In reply to" : "Како одговор на",
|
"In reply to" : "Како одговор на",
|
||||||
|
"Cancel reply" : "Откажи одговор",
|
||||||
"Reply" : "Одговор",
|
"Reply" : "Одговор",
|
||||||
"Update" : "Ажурирај",
|
"Update" : "Ажурирај",
|
||||||
"Write a description …" : "Напиши опис ...",
|
"Write a description …" : "Напиши опис ...",
|
||||||
|
"Could not save description" : "Неможе да се зачува описот",
|
||||||
"Description" : "Опис",
|
"Description" : "Опис",
|
||||||
"(Unsaved)" : "(Незачувано)",
|
"(Unsaved)" : "(Незачувано)",
|
||||||
"(Saving…)" : "(Снимање…)",
|
"(Saving…)" : "(Снимање…)",
|
||||||
@@ -203,67 +264,135 @@
|
|||||||
"Choose attachment" : "Избери прилог",
|
"Choose attachment" : "Избери прилог",
|
||||||
"Select Date" : "Избери датум",
|
"Select Date" : "Избери датум",
|
||||||
"Later today – {timeLocale}" : "Денес покасно – {timeLocale}",
|
"Later today – {timeLocale}" : "Денес покасно – {timeLocale}",
|
||||||
|
"Set due date for later today" : "Постави краен рок за денес подоцна",
|
||||||
"Tomorrow – {timeLocale}" : "Утре – {timeLocale}",
|
"Tomorrow – {timeLocale}" : "Утре – {timeLocale}",
|
||||||
|
"Set due date for tomorrow" : "Постави краен рок за утре",
|
||||||
"This weekend – {timeLocale}" : "Овој викенд – {timeLocale}",
|
"This weekend – {timeLocale}" : "Овој викенд – {timeLocale}",
|
||||||
"Set due date for this weekend" : "Постави рок за овој викенд",
|
"Set due date for this weekend" : "Постави краен рок за овој викенд",
|
||||||
|
"Next week – {timeLocale}" : "Следна недела – {timeLocale}",
|
||||||
|
"Set due date for next week" : "Постави краен рок за следната недела",
|
||||||
"Assign a due date to this card…" : "Додели рок за оваа картица…",
|
"Assign a due date to this card…" : "Додели рок за оваа картица…",
|
||||||
"Set a due date" : "Постави краен рок",
|
"Set a due date" : "Постави краен рок",
|
||||||
|
"Add due date" : "Додади краен рок",
|
||||||
|
"Choose a date" : "Избери датум",
|
||||||
"Remove due date" : "Отстрани краен рок",
|
"Remove due date" : "Отстрани краен рок",
|
||||||
"Mark as done" : "Означи како готово",
|
"Mark as done" : "Означи како готово",
|
||||||
|
"Due at:" : "Краен рок:",
|
||||||
|
"Not done" : "Не е завршено",
|
||||||
"Unarchive card" : "Врати картица од архива",
|
"Unarchive card" : "Врати картица од архива",
|
||||||
"Archive card" : "Архивирај картица",
|
"Archive card" : "Архивирај картица",
|
||||||
"Assign a tag to this card…" : "Додади ознака на оваа картица...",
|
"Assign a tag to this card…" : "Додади ознака на оваа картица...",
|
||||||
"Select or create a tag…" : "Избери или креирај ознака...",
|
"Select or create a tag…" : "Избери или креирај ознака...",
|
||||||
|
"Create a new tag:" : "Направи нова ознака:",
|
||||||
"(group)" : "(group)",
|
"(group)" : "(group)",
|
||||||
|
"{count} comments, {unread} unread" : "{count} коментари, {unread} непрочитани",
|
||||||
|
"Todo items" : "Работи за правење",
|
||||||
|
"Edit card title" : "Измени наслов на картица",
|
||||||
|
"Open link" : "Отвори линк",
|
||||||
"Card deleted" : "Картицата е избришана",
|
"Card deleted" : "Картицата е избришана",
|
||||||
"Edit title" : "Удери наслов",
|
"Edit title" : "Удери наслов",
|
||||||
"Assign to me" : "Доделени мене",
|
"Assign to me" : "Доделени мене",
|
||||||
"Unassign myself" : "Откажи се",
|
"Unassign myself" : "Откажи се",
|
||||||
|
"Mark as not done" : "Означи како не-готово",
|
||||||
"Delete card" : "Избриши картица",
|
"Delete card" : "Избриши картица",
|
||||||
"seconds ago" : "пред неколку секунди",
|
"seconds ago" : "пред неколку секунди",
|
||||||
"Keyboard shortcuts" : "Кратенки преку тастатура",
|
"Keyboard shortcuts" : "Кратенки преку тастатура",
|
||||||
|
"Boost your productivity using Deck with keyboard shortcuts." : "Зголеми ја продуктивноста со користење на кратенки преку тастатура.",
|
||||||
|
"Board actions" : "Акции за табла",
|
||||||
"Keyboard shortcut" : "Кратенка преку тастатура",
|
"Keyboard shortcut" : "Кратенка преку тастатура",
|
||||||
|
"Action" : "Акција",
|
||||||
"Shift" : "Shift",
|
"Shift" : "Shift",
|
||||||
|
"Scroll" : "Scroll",
|
||||||
|
"Scroll sideways" : "Лизгај странично",
|
||||||
|
"Navigate between cards" : "Навигација помеѓу картиците",
|
||||||
|
"Esc" : "Esc",
|
||||||
|
"Close card details" : "Затвори детали на картица",
|
||||||
"Ctrl" : "Ctrl",
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Барај",
|
"Search" : "Барај",
|
||||||
|
"Show card filters" : "Прикажи филтри за картици",
|
||||||
|
"Clear card filters" : "Исчисти филтри за картици",
|
||||||
|
"Show help dialog" : "Прикажи дијалог за помош",
|
||||||
|
"Card actions" : "Акции за картици",
|
||||||
|
"The following actions can be triggered on the currently highlighted card" : "Следните акции можат да се активираат на моментално обележаната картичка",
|
||||||
|
"Enter" : "Ентер",
|
||||||
"Space" : "Празно место",
|
"Space" : "Празно место",
|
||||||
|
"Open card details" : "Отвори детали на картица",
|
||||||
|
"Edit the card title" : "Измени наслов на картица",
|
||||||
|
"Assign yourself to the current card" : "Доделете се себеси на тековната картица",
|
||||||
|
"Archive/unarchive the current card" : "Архивирај/одархивирај тековната картица",
|
||||||
|
"Mark card as completed/not completed" : "Означи ја картицата како завршена/незавршена",
|
||||||
|
"Open card menu" : "Отвори мени на картица",
|
||||||
"All boards" : "Сите табли",
|
"All boards" : "Сите табли",
|
||||||
"Archived boards" : "Архивирани табли",
|
"Archived boards" : "Архивирани табли",
|
||||||
"Shared with you" : "Споделено со тебе",
|
"Shared with you" : "Споделено со тебе",
|
||||||
|
"Deck settings" : "Deck параметри",
|
||||||
"Use bigger card view" : "Користи поголем преглед на картици",
|
"Use bigger card view" : "Користи поголем преглед на картици",
|
||||||
|
"Show card ID badge" : "Прикажи ID на картиците",
|
||||||
"Show boards in calendar/tasks" : "Прикажи ги таблите во календарнот",
|
"Show boards in calendar/tasks" : "Прикажи ги таблите во календарнот",
|
||||||
|
"Limit board creation to some groups" : "Ограничи го креирањето на нови табли само на овие групи",
|
||||||
|
"Users outside of those groups will not be able to create their own boards, but will still be able to work on boards that have been shared with them." : "Корисниците кој што не се во овие групи нема да можат да прават нови таби, но ќе можат да работат на таблите кој ќе бидат споделени со нив.",
|
||||||
"Cancel edit" : "Откажи ажурирање",
|
"Cancel edit" : "Откажи ажурирање",
|
||||||
|
"Save board" : "Зачувај табла",
|
||||||
"Board {0} deleted" : "Таблата {0} е избришана",
|
"Board {0} deleted" : "Таблата {0} е избришана",
|
||||||
"All cards" : "Сите картици",
|
"All cards" : "Сите картици",
|
||||||
"Only assigned cards" : "Само доделени картици",
|
"Only assigned cards" : "Само доделени картици",
|
||||||
"No reminder" : "Нема потсетник",
|
"No reminder" : "Нема потсетник",
|
||||||
"An error occurred" : "Настана грешка",
|
"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?" : "Бришење на таблата?",
|
"Delete the board?" : "Бришење на таблата?",
|
||||||
|
"Exporting board..." : "Извоз на табла...",
|
||||||
"Board details" : "Детали за таблата",
|
"Board details" : "Детали за таблата",
|
||||||
"Edit board" : "Измени табла",
|
"Edit board" : "Измени табла",
|
||||||
"Clone board" : "Клонирај табла",
|
"Clone board" : "Клонирај табла",
|
||||||
"Unarchive board" : "Врати табла од архива",
|
"Unarchive board" : "Врати табла од архива",
|
||||||
"Archive board" : "Архивирај табла",
|
"Archive board" : "Архивирај табла",
|
||||||
|
"Export board" : "Извези табла",
|
||||||
"Turn on due date reminders" : "Вклучи потсетници за крајните рокови",
|
"Turn on due date reminders" : "Вклучи потсетници за крајните рокови",
|
||||||
"Turn off due date reminders" : "Исклучи потсетници за крајните рокови",
|
"Turn off due date reminders" : "Исклучи потсетници за крајните рокови",
|
||||||
"Due date reminders" : "Потсетници за крајните рокови",
|
"Due date reminders" : "Потсетници за крајните рокови",
|
||||||
"Assigned cards" : "Доделени картици",
|
"Assigned cards" : "Доделени картици",
|
||||||
"No notifications" : "Нема известувања",
|
"No notifications" : "Нема известувања",
|
||||||
"Delete board" : "Избриши табла",
|
"Delete board" : "Избриши табла",
|
||||||
|
"Importing board..." : "Увезување табла...",
|
||||||
|
"Board imported successfully" : "Таблата е успешно увезена",
|
||||||
|
"Import board" : "Увези табла",
|
||||||
|
"Clone {boardTitle}" : "Клонирај {boardTitle}",
|
||||||
"Clone cards" : "Клинирај картици",
|
"Clone cards" : "Клинирај картици",
|
||||||
|
"Clone assignments" : "Клонирај задачи",
|
||||||
|
"Clone labels" : "Клонирај ознаки",
|
||||||
|
"Clone due dates" : "Клонирај крајни рокови",
|
||||||
"Advanced options" : "Напредни опции",
|
"Advanced options" : "Напредни опции",
|
||||||
|
"Move all cards to the first list" : "Помести ги сите картици во првата листа",
|
||||||
|
"Restore archived cards" : "Врати архивирани картици",
|
||||||
"Clone" : "Клонирај",
|
"Clone" : "Клонирај",
|
||||||
|
"Export {boardTitle}" : "Извези {boardTitle}",
|
||||||
|
"Export as JSON" : "Извези како JSON",
|
||||||
|
"Export as CSV" : "Извези како CSV",
|
||||||
|
"Note: Only the JSON format is supported for importing back into the Deck app." : "Забелешка: Поддржан е само JSON формат за увоз назад во апликацијата Deck.",
|
||||||
"Export" : "Извези",
|
"Export" : "Извези",
|
||||||
"Loading filtered view" : "Вчитување на филтриран поглед",
|
"Loading filtered view" : "Вчитување на филтриран поглед",
|
||||||
|
"Search for {searchQuery} in other boards" : "Барај {searchQuery} во други табли",
|
||||||
|
"Search for {searchQuery} in all boards" : "Барај {searchQuery} во сите табли",
|
||||||
"No results found" : "Нема пронајдено резултати",
|
"No results found" : "Нема пронајдено резултати",
|
||||||
|
"Deck board {name}\n* Last modified on {lastMod}" : "Табла {name}\n* Последна промена на {lastMod}",
|
||||||
|
"* Created on {created}\n* Last modified on {lastMod}\n* {nbAttachments} attachments\n* {nbComments} comments" : "* Креирана на {created}\n* Последна промена на {lastMod}\n* {nbAttachments} прилози\n* {nbComments} коментари",
|
||||||
|
"{nbCards} cards" : "{nbCards} картици",
|
||||||
|
"Due on {date}" : "Истекува на {date}",
|
||||||
"{stack} in {board}" : "{stack} во {board}",
|
"{stack} in {board}" : "{stack} во {board}",
|
||||||
|
"Click to expand description" : "Кликнни за проширување на опис",
|
||||||
|
"Click to expand comment" : "Кликнни за проширување на коментарот",
|
||||||
"Create card" : "Креирајте картица",
|
"Create card" : "Креирајте картица",
|
||||||
"Create a new card" : "Креирајте нова картица",
|
"Create a new card" : "Креирајте нова картица",
|
||||||
"Card title" : "Наслов на картицата",
|
"Card title" : "Наслов на картицата",
|
||||||
|
"Creating the new card …" : "Креирање нова картица ...",
|
||||||
|
"Card \"{card}\" was added to \"{board}\"" : "Картицата \"{card}\" е додадена во \"{board}\"",
|
||||||
"Open card" : "Отвори картица",
|
"Open card" : "Отвори картица",
|
||||||
"Close" : "Затвори",
|
"Close" : "Затвори",
|
||||||
"No upcoming cards" : "Нема престојни картици",
|
"No upcoming cards" : "Нема престојни картици",
|
||||||
|
"upcoming cards today" : "престојни картици за денес",
|
||||||
|
"upcoming cards tomorrow" : "престојни картици за утре",
|
||||||
"upcoming cards" : "престојни картици",
|
"upcoming cards" : "престојни картици",
|
||||||
|
"New card" : "Нова картица",
|
||||||
"Link to a board" : "Линк до табла",
|
"Link to a board" : "Линк до табла",
|
||||||
"Link to a card" : "Линк до картица",
|
"Link to a card" : "Линк до картица",
|
||||||
"Create a card" : "Креирајте картица",
|
"Create a card" : "Креирајте картица",
|
||||||
@@ -271,6 +400,7 @@
|
|||||||
"Something went wrong" : "Нешто не е во ред",
|
"Something went wrong" : "Нешто не е во ред",
|
||||||
"Failed to upload {name}" : "Неуспешно прикачување {name}",
|
"Failed to upload {name}" : "Неуспешно прикачување {name}",
|
||||||
"Maximum file size of {size} exceeded" : "Максималната големина на датотека од {size} е достигната",
|
"Maximum file size of {size} exceeded" : "Максималната големина на датотека од {size} е достигната",
|
||||||
|
"Assigned users" : "Доделени корисници",
|
||||||
"Due date" : "До датум",
|
"Due date" : "До датум",
|
||||||
"Error creating the share" : "Грешка при креирање на споделување",
|
"Error creating the share" : "Грешка при креирање на споделување",
|
||||||
"Share with a Deck card" : "Споделено со Deck картица",
|
"Share with a Deck card" : "Споделено со Deck картица",
|
||||||
|
|||||||
@@ -266,6 +266,7 @@ OC.L10N.register(
|
|||||||
"{count} comments, {unread} unread" : "{count} reacties, {unread} ongelezen",
|
"{count} comments, {unread} unread" : "{count} reacties, {unread} ongelezen",
|
||||||
"Todo items" : "Te doen onderwerpen",
|
"Todo items" : "Te doen onderwerpen",
|
||||||
"Edit card title" : "Wijzig de titel van de kaart",
|
"Edit card title" : "Wijzig de titel van de kaart",
|
||||||
|
"Open link" : "Open link",
|
||||||
"Card deleted" : "Kaart verwijderd",
|
"Card deleted" : "Kaart verwijderd",
|
||||||
"Edit title" : "Titel bewerken",
|
"Edit title" : "Titel bewerken",
|
||||||
"Assign to me" : "Aan mij toewijzen",
|
"Assign to me" : "Aan mij toewijzen",
|
||||||
@@ -279,6 +280,7 @@ OC.L10N.register(
|
|||||||
"Shift" : "Shift",
|
"Shift" : "Shift",
|
||||||
"Ctrl" : "Ctrl",
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Zoeken",
|
"Search" : "Zoeken",
|
||||||
|
"Enter" : "Enter",
|
||||||
"All boards" : "Alle borden",
|
"All boards" : "Alle borden",
|
||||||
"Archived boards" : "Gearchiveerde borden",
|
"Archived boards" : "Gearchiveerde borden",
|
||||||
"Shared with you" : "Deelde met jou",
|
"Shared with you" : "Deelde met jou",
|
||||||
|
|||||||
@@ -264,6 +264,7 @@
|
|||||||
"{count} comments, {unread} unread" : "{count} reacties, {unread} ongelezen",
|
"{count} comments, {unread} unread" : "{count} reacties, {unread} ongelezen",
|
||||||
"Todo items" : "Te doen onderwerpen",
|
"Todo items" : "Te doen onderwerpen",
|
||||||
"Edit card title" : "Wijzig de titel van de kaart",
|
"Edit card title" : "Wijzig de titel van de kaart",
|
||||||
|
"Open link" : "Open link",
|
||||||
"Card deleted" : "Kaart verwijderd",
|
"Card deleted" : "Kaart verwijderd",
|
||||||
"Edit title" : "Titel bewerken",
|
"Edit title" : "Titel bewerken",
|
||||||
"Assign to me" : "Aan mij toewijzen",
|
"Assign to me" : "Aan mij toewijzen",
|
||||||
@@ -277,6 +278,7 @@
|
|||||||
"Shift" : "Shift",
|
"Shift" : "Shift",
|
||||||
"Ctrl" : "Ctrl",
|
"Ctrl" : "Ctrl",
|
||||||
"Search" : "Zoeken",
|
"Search" : "Zoeken",
|
||||||
|
"Enter" : "Enter",
|
||||||
"All boards" : "Alle borden",
|
"All boards" : "Alle borden",
|
||||||
"Archived boards" : "Gearchiveerde borden",
|
"Archived boards" : "Gearchiveerde borden",
|
||||||
"Shared with you" : "Deelde met jou",
|
"Shared with you" : "Deelde met jou",
|
||||||
|
|||||||
@@ -185,7 +185,7 @@ class CardApiController extends ApiController {
|
|||||||
* Reorder cards
|
* Reorder cards
|
||||||
*/
|
*/
|
||||||
public function reorder($stackId, $order) {
|
public function reorder($stackId, $order) {
|
||||||
$card = $this->cardService->reorder($this->request->getParam('cardId'), $stackId, $order);
|
$card = $this->cardService->reorder((int)$this->request->getParam('cardId'), (int)$stackId, (int)$order);
|
||||||
return new DataResponse($card, HTTP::STATUS_OK);
|
return new DataResponse($card, HTTP::STATUS_OK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,33 +77,18 @@ class AssignmentMapper extends DeckMapper implements IPermissionMapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function deleteByParticipantOnBoard(string $participant, int $boardId, $type = Assignment::TYPE_USER) {
|
public function deleteByParticipantOnBoard(string $participant, int $boardId, $type = Assignment::TYPE_USER) {
|
||||||
// Step 1: Get all card IDs for the board that have assignments for this participant
|
$qb = $this->db->getQueryBuilder();
|
||||||
// This avoids MySQL Error 1093 by separating the SELECT from the DELETE operation
|
|
||||||
$cardIdQuery = $this->db->getQueryBuilder();
|
$cardIdQuery = $this->db->getQueryBuilder();
|
||||||
$cardIdQuery->select('a.card_id')
|
$cardIdQuery->select('a.card_id')
|
||||||
->from('deck_assigned_users', 'a')
|
->from('deck_assigned_users', 'a')
|
||||||
->innerJoin('a', 'deck_cards', 'c', 'c.id = a.card_id')
|
->innerJoin('a', 'deck_cards', 'c', 'c.id = a.card_id')
|
||||||
->innerJoin('c', 'deck_stacks', 's', 's.id = c.stack_id')
|
->innerJoin('c', 'deck_stacks', 's', 's.id = c.stack_id')
|
||||||
->where($cardIdQuery->expr()->eq('a.participant', $cardIdQuery->createNamedParameter($participant, IQueryBuilder::PARAM_STR)))
|
->where($cardIdQuery->expr()->eq('a.participant', $qb->createNamedParameter($participant, IQueryBuilder::PARAM_STR)))
|
||||||
->andWhere($cardIdQuery->expr()->eq('s.board_id', $cardIdQuery->createNamedParameter($boardId, IQueryBuilder::PARAM_INT)))
|
->andWhere($cardIdQuery->expr()->eq('s.board_id', $qb->createNamedParameter($boardId, IQueryBuilder::PARAM_INT)))
|
||||||
->andWhere($cardIdQuery->expr()->eq('a.type', $cardIdQuery->createNamedParameter($type, IQueryBuilder::PARAM_INT)));
|
->andWhere($cardIdQuery->expr()->eq('a.type', $qb->createNamedParameter($type, IQueryBuilder::PARAM_INT)));
|
||||||
|
$qb->delete('deck_assigned_users')
|
||||||
$result = $cardIdQuery->executeQuery();
|
->where($qb->expr()->in('card_id', $qb->createFunction($cardIdQuery->getSQL()), IQueryBuilder::PARAM_INT_ARRAY));
|
||||||
$cardIds = [];
|
$qb->executeStatement();
|
||||||
while ($row = $result->fetch()) {
|
|
||||||
$cardIds[] = $row['card_id'];
|
|
||||||
}
|
|
||||||
$result->closeCursor();
|
|
||||||
|
|
||||||
// Step 2: If we have card IDs, delete the assignments
|
|
||||||
if (!empty($cardIds)) {
|
|
||||||
$deleteQuery = $this->db->getQueryBuilder();
|
|
||||||
$deleteQuery->delete('deck_assigned_users')
|
|
||||||
->where($deleteQuery->expr()->eq('participant', $deleteQuery->createNamedParameter($participant, IQueryBuilder::PARAM_STR)))
|
|
||||||
->andWhere($deleteQuery->expr()->eq('type', $deleteQuery->createNamedParameter($type, IQueryBuilder::PARAM_INT)))
|
|
||||||
->andWhere($deleteQuery->expr()->in('card_id', $deleteQuery->createNamedParameter($cardIds, IQueryBuilder::PARAM_INT_ARRAY)));
|
|
||||||
$deleteQuery->executeStatement();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -131,11 +131,7 @@ class CardMapper extends QBMapper implements IPermissionMapper {
|
|||||||
return $card;
|
return $card;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public function findAll($stackId, $limit = null, $offset = null, $since = -1) {
|
||||||
* @return Card[]
|
|
||||||
* @throws \OCP\DB\Exception
|
|
||||||
*/
|
|
||||||
public function findAll($stackId, ?int $limit = null, ?int $offset = null, int $since = -1) {
|
|
||||||
$qb = $this->db->getQueryBuilder();
|
$qb = $this->db->getQueryBuilder();
|
||||||
$qb->select('*')
|
$qb->select('*')
|
||||||
->from('deck_cards')
|
->from('deck_cards')
|
||||||
@@ -150,32 +146,6 @@ class CardMapper extends QBMapper implements IPermissionMapper {
|
|||||||
return $this->findEntities($qb);
|
return $this->findEntities($qb);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param int[] $stackIds
|
|
||||||
* @return array<int, null|Card[]>
|
|
||||||
* @throws \OCP\DB\Exception
|
|
||||||
*/
|
|
||||||
public function findAllForStacks(array $stackIds, ?int $limit = null, ?int $offset = null, int $since = -1): array {
|
|
||||||
$qb = $this->db->getQueryBuilder();
|
|
||||||
$qb->select('*')
|
|
||||||
->from('deck_cards')
|
|
||||||
->where($qb->expr()->in('stack_id', $qb->createNamedParameter($stackIds, IQueryBuilder::PARAM_INT_ARRAY)))
|
|
||||||
->andWhere($qb->expr()->eq('archived', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL)))
|
|
||||||
->andWhere($qb->expr()->eq('deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)))
|
|
||||||
->andWhere($qb->expr()->gt('last_modified', $qb->createNamedParameter($since, IQueryBuilder::PARAM_INT)))
|
|
||||||
->setMaxResults($limit)
|
|
||||||
->setFirstResult($offset)
|
|
||||||
->orderBy('order')
|
|
||||||
->addOrderBy('id');
|
|
||||||
|
|
||||||
$rawCards = $this->findEntities($qb);
|
|
||||||
$cards = array_fill_keys($stackIds, null);
|
|
||||||
foreach ($rawCards as $card) {
|
|
||||||
$cards[$card->getStackId()][] = $card;
|
|
||||||
}
|
|
||||||
return $cards;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function queryCardsByBoard(int $boardId): IQueryBuilder {
|
public function queryCardsByBoard(int $boardId): IQueryBuilder {
|
||||||
$qb = $this->db->getQueryBuilder();
|
$qb = $this->db->getQueryBuilder();
|
||||||
$qb->select('c.*')
|
$qb->select('c.*')
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ use Sabre\VObject\Component\VCalendar;
|
|||||||
* @method int getDeletedAt()
|
* @method int getDeletedAt()
|
||||||
* @method int getLastModified()
|
* @method int getLastModified()
|
||||||
* @method int getOrder()
|
* @method int getOrder()
|
||||||
* @method Card[] getCards()
|
|
||||||
*/
|
*/
|
||||||
class Stack extends RelationalEntity {
|
class Stack extends RelationalEntity {
|
||||||
protected $title;
|
protected $title;
|
||||||
|
|||||||
@@ -77,10 +77,12 @@ class StackMapper extends DeckMapper implements IPermissionMapper {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param numeric $boardId
|
* @param numeric $boardId
|
||||||
|
* @param int|null $limit
|
||||||
|
* @param int|null $offset
|
||||||
* @return Stack[]
|
* @return Stack[]
|
||||||
* @throws \OCP\DB\Exception
|
* @throws \OCP\DB\Exception
|
||||||
*/
|
*/
|
||||||
public function findAll($boardId, ?int $limit = null, ?int $offset = null): array {
|
public function findAll($boardId, $limit = null, $offset = null): array {
|
||||||
$qb = $this->db->getQueryBuilder();
|
$qb = $this->db->getQueryBuilder();
|
||||||
$qb->select('*')
|
$qb->select('*')
|
||||||
->from($this->getTableName())
|
->from($this->getTableName())
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ class Notifier implements INotifier {
|
|||||||
*/
|
*/
|
||||||
public function prepare(INotification $notification, string $languageCode): INotification {
|
public function prepare(INotification $notification, string $languageCode): INotification {
|
||||||
$l = $this->l10nFactory->get('deck', $languageCode);
|
$l = $this->l10nFactory->get('deck', $languageCode);
|
||||||
if ($notification->getApp() !== 'deck') {
|
if ($notification->getApp() !== 'deck' || $notification->getObjectType() === 'activity_notification') {
|
||||||
throw new UnknownNotificationException();
|
throw new UnknownNotificationException();
|
||||||
}
|
}
|
||||||
$notification->setIcon($this->url->getAbsoluteURL($this->url->imagePath('deck', 'deck-dark.svg')));
|
$notification->setIcon($this->url->getAbsoluteURL($this->url->imagePath('deck', 'deck-dark.svg')));
|
||||||
@@ -136,7 +136,7 @@ class Notifier implements INotifier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$notification->setParsedSubject(
|
$notification->setParsedSubject(
|
||||||
$l->t('The card "%1$s" on "%2$s" has reached its due date.', $params)
|
$l->t('The card "%s" on "%s" has reached its due date.', $params)
|
||||||
);
|
);
|
||||||
$notification->setRichSubject(
|
$notification->setRichSubject(
|
||||||
$l->t('The card {deck-card} on {deck-board} has reached its due date.'),
|
$l->t('The card {deck-card} on {deck-board} has reached its due date.'),
|
||||||
|
|||||||
@@ -64,7 +64,6 @@ class BoardReferenceProvider implements IReferenceProvider {
|
|||||||
$reference = new Reference($referenceText);
|
$reference = new Reference($referenceText);
|
||||||
$reference->setTitle($this->l10n->t('Deck board') . ': ' . $board['title']);
|
$reference->setTitle($this->l10n->t('Deck board') . ': ' . $board['title']);
|
||||||
$ownerDisplayName = $board['owner']['displayname'] ?? $board['owner']['uid'] ?? '???';
|
$ownerDisplayName = $board['owner']['displayname'] ?? $board['owner']['uid'] ?? '???';
|
||||||
// TRANSLATORS Owned by {boardOwnerName}
|
|
||||||
$reference->setDescription($this->l10n->t('Owned by %1$s', [$ownerDisplayName]));
|
$reference->setDescription($this->l10n->t('Owned by %1$s', [$ownerDisplayName]));
|
||||||
$imageUrl = $this->urlGenerator->getAbsoluteURL(
|
$imageUrl = $this->urlGenerator->getAbsoluteURL(
|
||||||
$this->urlGenerator->imagePath(Application::APP_ID, 'deck-dark.svg')
|
$this->urlGenerator->imagePath(Application::APP_ID, 'deck-dark.svg')
|
||||||
|
|||||||
@@ -90,7 +90,6 @@ class CommentReferenceProvider implements IReferenceProvider {
|
|||||||
$reference->setTitle($comment['message']);
|
$reference->setTitle($comment['message']);
|
||||||
$boardOwnerDisplayName = $board['owner']['displayname'] ?? $board['owner']['uid'] ?? '???';
|
$boardOwnerDisplayName = $board['owner']['displayname'] ?? $board['owner']['uid'] ?? '???';
|
||||||
$reference->setDescription(
|
$reference->setDescription(
|
||||||
// TRANSLATORS From {userName}, in {boardTitle}/{stackTitle}, owned by {boardOwnerName}
|
|
||||||
$this->l10n->t('From %1$s, in %2$s/%3$s, owned by %4$s', [
|
$this->l10n->t('From %1$s, in %2$s/%3$s, owned by %4$s', [
|
||||||
$comment['actorDisplayName'],
|
$comment['actorDisplayName'],
|
||||||
$board['title'],
|
$board['title'],
|
||||||
|
|||||||
@@ -439,7 +439,7 @@ class CardService {
|
|||||||
* @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException
|
* @throws \OCP\AppFramework\Db\MultipleObjectsReturnedException
|
||||||
* @throws BadRequestException
|
* @throws BadRequestException
|
||||||
*/
|
*/
|
||||||
public function reorder($id, $stackId, $order) {
|
public function reorder(int $id, int $stackId, int $order) {
|
||||||
$this->cardServiceValidator->check(compact('id', 'stackId', 'order'));
|
$this->cardServiceValidator->check(compact('id', 'stackId', 'order'));
|
||||||
|
|
||||||
$this->permissionService->checkPermission($this->cardMapper, $id, Acl::PERMISSION_EDIT);
|
$this->permissionService->checkPermission($this->cardMapper, $id, Acl::PERMISSION_EDIT);
|
||||||
|
|||||||
@@ -75,22 +75,19 @@ class StackService {
|
|||||||
$this->stackServiceValidator = $stackServiceValidator;
|
$this->stackServiceValidator = $stackServiceValidator;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @param Stack[] $stacks */
|
private function enrichStackWithCards($stack, $since = -1) {
|
||||||
private function enrichStacksWithCards(array $stacks, $since = -1): void {
|
$cards = $this->cardMapper->findAll($stack->getId(), null, null, $since);
|
||||||
$cardsByStackId = $this->cardMapper->findAllForStacks(array_map(fn (Stack $stack) => $stack->getId(), $stacks), null, null, $since);
|
|
||||||
|
|
||||||
foreach ($cardsByStackId as $stackId => $cards) {
|
if (\count($cards) === 0) {
|
||||||
if (!$cards) {
|
return;
|
||||||
continue;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
$stack->setCards($this->cardService->enrichCards($cards));
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($stacks as $stack) {
|
private function enrichStacksWithCards($stacks, $since = -1) {
|
||||||
if ($stack->getId() === $stackId) {
|
foreach ($stacks as $stack) {
|
||||||
$stack->setCards($this->cardService->enrichCards($cards));
|
$this->enrichStackWithCards($stack, $since);
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -127,9 +124,9 @@ class StackService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param mixed $boardId
|
* @param $boardId
|
||||||
*
|
*
|
||||||
* @return Stack[]
|
* @return array
|
||||||
* @throws \OCA\Deck\NoPermissionException
|
* @throws \OCA\Deck\NoPermissionException
|
||||||
* @throws BadRequestException
|
* @throws BadRequestException
|
||||||
*/
|
*/
|
||||||
@@ -250,7 +247,7 @@ class StackService {
|
|||||||
);
|
);
|
||||||
$this->changeHelper->boardChanged($stack->getBoardId());
|
$this->changeHelper->boardChanged($stack->getBoardId());
|
||||||
$this->eventDispatcher->dispatchTyped(new BoardUpdatedEvent($stack->getBoardId()));
|
$this->eventDispatcher->dispatchTyped(new BoardUpdatedEvent($stack->getBoardId()));
|
||||||
$this->enrichStacksWithCards([$stack]);
|
$this->enrichStackWithCards($stack);
|
||||||
|
|
||||||
return $stack;
|
return $stack;
|
||||||
}
|
}
|
||||||
|
|||||||
4
package-lock.json
generated
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "deck",
|
"name": "deck",
|
||||||
"version": "2.0.0-dev.0",
|
"version": "1.16.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "deck",
|
"name": "deck",
|
||||||
"version": "2.0.0-dev.0",
|
"version": "1.16.0",
|
||||||
"license": "agpl",
|
"license": "agpl",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/polyfill": "^7.12.1",
|
"@babel/polyfill": "^7.12.1",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "deck",
|
"name": "deck",
|
||||||
"description": "",
|
"description": "",
|
||||||
"version": "2.0.0-dev.0",
|
"version": "1.16.0",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "Julius Härtl",
|
"name": "Julius Härtl",
|
||||||
|
|||||||
@@ -107,6 +107,10 @@ export default {
|
|||||||
this.$store.dispatch('loadSharees')
|
this.$store.dispatch('loadSharees')
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
// Redirect to cleaner URL (without /index.php) if RewriteBase is enabled
|
||||||
|
if (this.$route.path.startsWith('/index.php')) {
|
||||||
|
window.location.href = this.$route.fullPath.replace('/index.php', '')
|
||||||
|
}
|
||||||
// Set navigation to initial state and update in case it gets toggled
|
// Set navigation to initial state and update in case it gets toggled
|
||||||
emit('toggle-navigation', { open: !this.isMobile && this.navShown, _initial: true })
|
emit('toggle-navigation', { open: !this.isMobile && this.navShown, _initial: true })
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
|
|||||||
@@ -276,15 +276,18 @@ export default {
|
|||||||
position: relative;
|
position: relative;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
max-height: calc(100vh - 50px);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.board {
|
.board {
|
||||||
|
padding-left: $board-spacing;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
max-height: calc(100% - var(--default-clickable-area));
|
||||||
|
overflow: hidden;
|
||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
scrollbar-gutter: stable;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -294,15 +297,11 @@ export default {
|
|||||||
.smooth-dnd-container.horizontal {
|
.smooth-dnd-container.horizontal {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
gap: $board-gap;
|
|
||||||
padding: 0 $board-gap;
|
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
&:deep(.stack-draggable-wrapper.smooth-dnd-draggable-wrapper) {
|
&:deep(.stack-draggable-wrapper.smooth-dnd-draggable-wrapper) {
|
||||||
display: flex;
|
display: flex;
|
||||||
height: auto;
|
height: auto;
|
||||||
flex: 0 1 $card-max-width;
|
|
||||||
min-width: $card-min-width;
|
|
||||||
|
|
||||||
.stack {
|
.stack {
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -310,13 +309,16 @@ export default {
|
|||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
.smooth-dnd-container.vertical {
|
.smooth-dnd-container.vertical {
|
||||||
$margin-x: calc($stack-gap * -1);
|
flex-grow: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: $stack-gap;
|
// Margin left instead of padidng to avoid jumps on dropping a card
|
||||||
padding: $stack-gap;
|
margin-left: $stack-spacing;
|
||||||
margin: 0 $margin-x;
|
padding-right: $stack-spacing;
|
||||||
|
overflow-x: hidden;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
padding-top: 15px;
|
||||||
|
margin-top: -10px;
|
||||||
scrollbar-gutter: stable;
|
scrollbar-gutter: stable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,10 +14,10 @@
|
|||||||
{{ stack.title }}
|
{{ stack.title }}
|
||||||
</h3>
|
</h3>
|
||||||
<h3 v-else-if="!editing"
|
<h3 v-else-if="!editing"
|
||||||
|
title="stack.title"
|
||||||
dir="auto"
|
dir="auto"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
:aria-label="stack.title"
|
:aria-label="stack.title"
|
||||||
:title="stack.title"
|
|
||||||
class="stack__title"
|
class="stack__title"
|
||||||
@click="startEditing(stack)"
|
@click="startEditing(stack)"
|
||||||
@keydown.enter="startEditing(stack)">
|
@keydown.enter="startEditing(stack)">
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
</Container>
|
</Container>
|
||||||
|
|
||||||
<transition name="slide-bottom" appear>
|
<transition name="slide-bottom" appear>
|
||||||
<div v-if="showAddCard" class="stack__card-add">
|
<div v-show="showAddCard" class="stack__card-add">
|
||||||
<form :class="{ 'icon-loading-small': stateCardCreating }"
|
<form :class="{ 'icon-loading-small': stateCardCreating }"
|
||||||
@submit.prevent.stop="clickAddCard()">
|
@submit.prevent.stop="clickAddCard()">
|
||||||
<label for="new-stack-input-main" class="hidden-visually">{{ t('deck', 'Add a new card') }}</label>
|
<label for="new-stack-input-main" class="hidden-visually">{{ t('deck', 'Add a new card') }}</label>
|
||||||
@@ -365,31 +365,37 @@ export default {
|
|||||||
@import './../../css/variables';
|
@import './../../css/variables';
|
||||||
|
|
||||||
.stack {
|
.stack {
|
||||||
width: 100%;
|
width: $stack-width + $stack-spacing * 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
.stack__header {
|
.stack__header {
|
||||||
display: flex;
|
display: flex;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
height: var(--default-clickable-area);
|
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
|
padding-left: $card-spacing;
|
||||||
|
padding-right: $card-spacing;
|
||||||
|
margin: 6px;
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
cursor: grab;
|
cursor: grab;
|
||||||
background-color: var(--color-main-background);
|
background-color: var(--color-main-background);
|
||||||
|
|
||||||
// Smooth fade out of the cards at the top
|
// Smooth fade out of the cards at the top
|
||||||
&:before {
|
&:before {
|
||||||
content: '';
|
content: ' ';
|
||||||
display: block;
|
display: block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 100%;
|
width: calc(100% - 16px);
|
||||||
height: $stack-gap;
|
height: 20px;
|
||||||
bottom: 0;
|
top: 30px;
|
||||||
|
left: 0px;
|
||||||
z-index: 99;
|
z-index: 99;
|
||||||
transition: top var(--animation-slow);
|
transition: top var(--animation-slow);
|
||||||
background-image: linear-gradient(180deg, var(--color-main-background) 0%, transparent 100%);
|
|
||||||
transform: translateY(100%);
|
background-image: linear-gradient(180deg, var(--color-main-background) 3px, rgba(255, 255, 255, 0) 100%);
|
||||||
|
body.theme--dark & {
|
||||||
|
background-image: linear-gradient(180deg, var(--color-main-background) 3px, rgba(0, 0, 0, 0) 100%);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
& > * {
|
& > * {
|
||||||
@@ -398,10 +404,8 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
h3, form {
|
h3, form {
|
||||||
flex: 1 1 auto;
|
flex-grow: 1;
|
||||||
min-width: 0;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
|
||||||
cursor: inherit;
|
cursor: inherit;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
||||||
@@ -414,8 +418,9 @@ export default {
|
|||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
|
max-width: calc($stack-width - 60px);
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
padding: $card-padding;
|
padding: 4px 4px;
|
||||||
font-size: var(--default-font-size);
|
font-size: var(--default-font-size);
|
||||||
|
|
||||||
&:focus-visible {
|
&:focus-visible {
|
||||||
@@ -425,6 +430,7 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
form {
|
form {
|
||||||
|
margin: -4px;
|
||||||
input {
|
input {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
padding: 0 6px;
|
padding: 0 6px;
|
||||||
@@ -447,25 +453,14 @@ export default {
|
|||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
display: flex;
|
display: flex;
|
||||||
padding-bottom: $stack-gap;
|
margin-bottom: 5px;
|
||||||
|
padding-top: var(--default-grid-baseline);
|
||||||
background-color: var(--color-main-background);
|
background-color: var(--color-main-background);
|
||||||
position: relative;
|
|
||||||
|
|
||||||
// Smooth fade out of the cards at the top
|
|
||||||
&:before {
|
|
||||||
content: '';
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
height: $stack-gap;
|
|
||||||
z-index: 99;
|
|
||||||
transition: bottom var(--animation-slow);
|
|
||||||
background-image: linear-gradient(0deg, var(--color-main-background) 0%, transparent 100%);
|
|
||||||
transform: translateY(-100%);
|
|
||||||
}
|
|
||||||
|
|
||||||
form {
|
form {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
margin-left: $stack-spacing;
|
||||||
|
margin-right: $stack-spacing;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border: 2px solid var(--color-border-maxcontrast);
|
border: 2px solid var(--color-border-maxcontrast);
|
||||||
border-radius: var(--border-radius-large);
|
border-radius: var(--border-radius-large);
|
||||||
@@ -486,6 +481,7 @@ export default {
|
|||||||
input {
|
input {
|
||||||
border: none;
|
border: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
padding: 4px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -101,8 +101,6 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import './../../css/variables';
|
|
||||||
|
|
||||||
.badges {
|
.badges {
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -113,7 +111,6 @@ export default {
|
|||||||
.icon-badge {
|
.icon-badge {
|
||||||
color: var(--color-text-maxcontrast);
|
color: var(--color-text-maxcontrast);
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
|
||||||
margin-right: 2px;
|
margin-right: 2px;
|
||||||
|
|
||||||
span,
|
span,
|
||||||
@@ -128,7 +125,6 @@ export default {
|
|||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 3px;
|
gap: 3px;
|
||||||
height: var(--default-clickable-area);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.badge-left, .badge-right {
|
.badge-left, .badge-right {
|
||||||
|
|||||||
@@ -4,10 +4,13 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div v-if="cardId && ( attachments.length > 0 )" class="card-cover">
|
<div v-if="referencePreview" class="card-cover">
|
||||||
<div v-for="attachment in attachments"
|
<div class="image-wrapper rounded-left rounded-right" :style="{ backgroundImage: `url(${referencePreview})`}" />
|
||||||
|
</div>
|
||||||
|
<div v-else-if="cardId && ( attachments.length > 0 )" class="card-cover">
|
||||||
|
<div v-for="(attachment, index) in attachments"
|
||||||
:key="attachment.id"
|
:key="attachment.id"
|
||||||
class="image-wrapper"
|
:class="['image-wrapper', { 'rounded-left': index === 0 }, { 'rounded-right': index === attachments.length - 1 }]"
|
||||||
:style="{ backgroundImage: `url(${attachmentPreview(attachment)})` }" />
|
:style="{ backgroundImage: `url(${attachmentPreview(attachment)})` }" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -74,7 +77,9 @@ export default {
|
|||||||
.card-cover {
|
.card-cover {
|
||||||
height: 90px;
|
height: 90px;
|
||||||
display: flex;
|
display: flex;
|
||||||
margin: $card-image-margin $card-image-margin 0;
|
margin-top: -4px;
|
||||||
|
margin-left: -4px;
|
||||||
|
margin-right: -4px;
|
||||||
|
|
||||||
.image-wrapper {
|
.image-wrapper {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
@@ -82,6 +87,12 @@ export default {
|
|||||||
background-size: cover;
|
background-size: cover;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-position: center center;
|
background-position: center center;
|
||||||
|
&.rounded-left {
|
||||||
|
border-top-left-radius: calc(var(--border-radius-large) - 1px);
|
||||||
|
}
|
||||||
|
&.rounded-right {
|
||||||
|
border-top-right-radius: calc(var(--border-radius-large) - 1px);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<AttachmentDragAndDrop v-if="card" :card-id="card.id" class="drop-upload--card">
|
<AttachmentDragAndDrop v-if="card" :card-id="card.id" class="drop-upload--card">
|
||||||
<div :ref="`card${card.id}`"
|
<div :ref="`card${card.id}`"
|
||||||
:class="{'compact': compactMode, 'current-card': currentCard, 'no-labels': !hasLabels, 'card__editable': canEdit, 'card__archived': card.archived, 'card__highlight': highlight}"
|
:class="{'compact': compactMode, 'current-card': currentCard, 'has-labels': card.labels && card.labels.length > 0, 'card__editable': canEdit, 'card__archived': card.archived, 'card__highlight': highlight}"
|
||||||
tag="div"
|
tag="div"
|
||||||
:tabindex="0"
|
:tabindex="0"
|
||||||
class="card"
|
class="card"
|
||||||
@@ -331,17 +331,16 @@ export default {
|
|||||||
border-radius: var(--border-radius-large);
|
border-radius: var(--border-radius-large);
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
background-color: var(--color-main-background);
|
background-color: var(--color-main-background);
|
||||||
padding: $card-padding;
|
margin-bottom: $card-spacing;
|
||||||
|
padding: var(--default-grid-baseline) $card-padding;
|
||||||
border: 2px solid var(--color-border-dark);
|
border: 2px solid var(--color-border-dark);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
gap: $card-gap;
|
|
||||||
overflow: hidden;
|
|
||||||
|
|
||||||
&:deep(*) {
|
&:deep(*:not(.dragDisabled)) {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.current-card {
|
&.current-card {
|
||||||
border: 2px solid var(--color-primary-element);
|
border: 2px solid var(--color-primary-element);
|
||||||
@@ -360,10 +359,12 @@ export default {
|
|||||||
h4 {
|
h4 {
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
padding: var(--default-grid-baseline);
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
|
padding-left: 4px;
|
||||||
align-self: center;
|
align-self: center;
|
||||||
|
|
||||||
:deep(a) {
|
:deep(a) {
|
||||||
@@ -373,6 +374,9 @@ export default {
|
|||||||
&.editable {
|
&.editable {
|
||||||
span {
|
span {
|
||||||
cursor: text;
|
cursor: text;
|
||||||
|
padding-right: 8px;
|
||||||
|
padding-top: 3px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
|
||||||
&:focus, &:focus-visible {
|
&:focus, &:focus-visible {
|
||||||
outline: none;
|
outline: none;
|
||||||
@@ -381,7 +385,6 @@ export default {
|
|||||||
|
|
||||||
&:focus-within {
|
&:focus-within {
|
||||||
outline: 2px solid var(--color-border-dark);
|
outline: 2px solid var(--color-border-dark);
|
||||||
outline-offset: 4px;
|
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -424,6 +427,8 @@ export default {
|
|||||||
.card-labels {
|
.card-labels {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: end;
|
align-items: end;
|
||||||
|
padding-left: var(--default-grid-baseline);
|
||||||
|
padding-top: var(--default-grid-baseline);
|
||||||
|
|
||||||
.labels {
|
.labels {
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
@@ -439,7 +444,7 @@ export default {
|
|||||||
|
|
||||||
.card-related {
|
.card-related {
|
||||||
display: flex;
|
display: flex;
|
||||||
padding: 4px;
|
padding: 12px;
|
||||||
padding-bottom: 0px;
|
padding-bottom: 0px;
|
||||||
color: var(--color-text-maxcontrast);
|
color: var(--color-text-maxcontrast);
|
||||||
|
|
||||||
@@ -464,8 +469,8 @@ export default {
|
|||||||
height: 32px;
|
height: 32px;
|
||||||
width: 32px;
|
width: 32px;
|
||||||
}
|
}
|
||||||
&.no-labels {
|
&.has-labels {
|
||||||
padding-bottom: var(--default-grid-baseline);
|
padding-bottom: $card-padding;
|
||||||
}
|
}
|
||||||
.labels {
|
.labels {
|
||||||
height: 6px;
|
height: 6px;
|
||||||
|
|||||||
@@ -14,25 +14,45 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-else-if="isValidFilter" class="overview">
|
<div v-else-if="isValidFilter" class="overview">
|
||||||
<div v-for="columnProps in columnPropsList" :key="columnProps.title" class="dashboard-column">
|
<div class="dashboard-column">
|
||||||
<div class="dashboard-column__header">
|
<h3>{{ t('deck', 'Overdue') }}</h3>
|
||||||
<h3 class="dashboard-column__header-title"
|
<div v-for="card in sortCards('overdue')" :key="card.id">
|
||||||
:title="columnProps.title"
|
<CardItem :id="card.id" />
|
||||||
:aria-label="columnProps.title">
|
|
||||||
{{ t('deck', columnProps.title) }}
|
|
||||||
</h3>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="dashboard-column__list">
|
</div>
|
||||||
<template v-if="columnProps.sort === false">
|
|
||||||
<CardItem v-for="card in filterCards(columnProps.filter)"
|
<div class="dashboard-column">
|
||||||
:id="card.id"
|
<h3>{{ t('deck', 'Today') }}</h3>
|
||||||
:key="card.id" />
|
<div v-for="card in sortCards('today')" :key="card.id">
|
||||||
</template>
|
<CardItem :id="card.id" />
|
||||||
<template v-else>
|
</div>
|
||||||
<CardItem v-for="card in sortCards(filterCards(columnProps.filter))"
|
</div>
|
||||||
:id="card.id"
|
|
||||||
:key="card.id" />
|
<div class="dashboard-column">
|
||||||
</template>
|
<h3>{{ t('deck', 'Tomorrow') }}</h3>
|
||||||
|
<div v-for="card in sortCards('tomorrow')" :key="card.id">
|
||||||
|
<CardItem :id="card.id" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="dashboard-column">
|
||||||
|
<h3>{{ t('deck', 'Next 7 days') }}</h3>
|
||||||
|
<div v-for="card in sortCards('nextSevenDays')" :key="card.id">
|
||||||
|
<CardItem :id="card.id" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="dashboard-column">
|
||||||
|
<h3>{{ t('deck', 'Later') }}</h3>
|
||||||
|
<div v-for="card in sortCards('later')" :key="card.id">
|
||||||
|
<CardItem :id="card.id" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="dashboard-column">
|
||||||
|
<h3>{{ t('deck', 'No due') }}</h3>
|
||||||
|
<div v-for="card in assignedCardsDashboard.nodue" :key="card.id">
|
||||||
|
<CardItem :id="card.id" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -53,34 +73,6 @@ const SUPPORTED_FILTERS = [
|
|||||||
FILTER_UPCOMING,
|
FILTER_UPCOMING,
|
||||||
]
|
]
|
||||||
|
|
||||||
const COLUMN_PROPS_LIST = [
|
|
||||||
{
|
|
||||||
title: 'Overdue',
|
|
||||||
filter: 'overdue',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Today',
|
|
||||||
filter: 'today',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Tomorrow',
|
|
||||||
filter: 'tomorrow',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Next 7 days',
|
|
||||||
filter: 'nextSevenDays',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Later',
|
|
||||||
filter: 'later',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'No due',
|
|
||||||
filter: 'nodue',
|
|
||||||
sort: false,
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Overview',
|
name: 'Overview',
|
||||||
components: {
|
components: {
|
||||||
@@ -97,7 +89,6 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
loading: true,
|
loading: true,
|
||||||
columnPropsList: COLUMN_PROPS_LIST,
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -134,16 +125,16 @@ export default {
|
|||||||
}
|
}
|
||||||
this.loading = false
|
this.loading = false
|
||||||
},
|
},
|
||||||
filterCards(when) {
|
sortCards(when) {
|
||||||
return this.assignedCardsDashboard[when]
|
const cards = this.assignedCardsDashboard[when]
|
||||||
},
|
|
||||||
sortCards(cards) {
|
|
||||||
if (!cards) {
|
if (!cards) {
|
||||||
return null
|
return null
|
||||||
} else {
|
} else {
|
||||||
return cards.toSorted((current, next) => {
|
return cards.toSorted((current, next) => {
|
||||||
const currentDueDate = new Date(current.duedate)
|
const currentDueDate = new Date(current.duedate)
|
||||||
const nextDueDate = new Date(next.duedate)
|
const nextDueDate = new Date(next.duedate)
|
||||||
|
|
||||||
return currentDueDate - nextDueDate
|
return currentDueDate - nextDueDate
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -160,75 +151,38 @@ export default {
|
|||||||
position: relative;
|
position: relative;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
max-height: calc(100vh - 50px);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
.overview {
|
.overview {
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow-x: auto;
|
height: calc(100% - var(--default-clickable-area));
|
||||||
flex-grow: 1;
|
overflow-x: scroll;
|
||||||
scrollbar-gutter: stable;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
gap: $board-gap;
|
padding-left: $board-spacing;
|
||||||
padding: 0 $board-gap;
|
padding-right: $board-spacing;
|
||||||
|
|
||||||
.dashboard-column {
|
.dashboard-column {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
flex: 0 1 $card-max-width;
|
min-width: $stack-width;
|
||||||
min-width: $card-min-width;
|
width: $stack-width;
|
||||||
|
margin-left: $stack-spacing;
|
||||||
|
margin-right: $stack-spacing;
|
||||||
|
|
||||||
.dashboard-column__header {
|
h3 {
|
||||||
display: flex;
|
font-size: var(--default-font-size);
|
||||||
|
margin: -6px;
|
||||||
|
margin-bottom: 12px;
|
||||||
|
padding: 6px 13px;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
height: var(--default-clickable-area);
|
|
||||||
z-index: 100;
|
z-index: 100;
|
||||||
margin-top: 0;
|
|
||||||
background-color: var(--color-main-background);
|
background-color: var(--color-main-background);
|
||||||
|
border: 1px solid var(--color-main-background);
|
||||||
// Smooth fade out of the cards at the top
|
|
||||||
&:before {
|
|
||||||
content: '';
|
|
||||||
display: block;
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
height: 20px;
|
|
||||||
top: 30px;
|
|
||||||
left: 0px;
|
|
||||||
z-index: 99;
|
|
||||||
transition: top var(--animation-slow);
|
|
||||||
background-image: linear-gradient(180deg, var(--color-main-background) 3px, rgba(255, 255, 255, 0) 100%);
|
|
||||||
|
|
||||||
body.theme--dark & {
|
|
||||||
background-image: linear-gradient(180deg, var(--color-main-background) 3px, rgba(0, 0, 0, 0) 100%);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.dashboard-column__header-title {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
height: var(--default-clickable-area);
|
|
||||||
margin: 0;
|
|
||||||
white-space: nowrap;
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
padding: $card-padding;
|
|
||||||
font-size: var(--default-font-size);
|
|
||||||
}
|
|
||||||
|
|
||||||
.dashboard-column__list {
|
|
||||||
$margin-x: calc($stack-gap * -1);
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
gap: $stack-gap;
|
|
||||||
padding: $stack-gap;
|
|
||||||
margin: 0 $margin-x;
|
|
||||||
overflow-y: auto;
|
|
||||||
scrollbar-gutter: stable;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,19 +4,16 @@
|
|||||||
-->
|
-->
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<section v-if="searchQuery!==''" class="global-search">
|
<div v-if="searchQuery!==''" class="global-search">
|
||||||
<header class="search-header">
|
<h2>
|
||||||
<h2>
|
<NcRichText :text="t('deck', 'Search for {searchQuery} in all boards')" :arguments="queryStringArgs" />
|
||||||
<NcRichText :text="$route.params.id ? t('deck', 'Search for {searchQuery} in other boards') : t('deck', 'Search for {searchQuery} in all boards')"
|
<div v-if="loading" class="icon-loading-small" />
|
||||||
:arguments="queryStringArgs" />
|
</h2>
|
||||||
<span v-if="loading" class="icon-loading-small" />
|
<NcActions>
|
||||||
</h2>
|
<NcActionButton icon="icon-close" @click="$store.commit('setSearchQuery', '')" />
|
||||||
<NcActions>
|
</NcActions>
|
||||||
<NcActionButton icon="icon-close" @click="$store.commit('setSearchQuery', '')" />
|
|
||||||
</NcActions>
|
|
||||||
</header>
|
|
||||||
<div class="search-wrapper">
|
<div class="search-wrapper">
|
||||||
<template v-if="loading || filteredResults.length > 0">
|
<div v-if="loading || filteredResults.length > 0" class="search-results">
|
||||||
<CardItem v-for="card in filteredResults"
|
<CardItem v-for="card in filteredResults"
|
||||||
:id="card.id"
|
:id="card.id"
|
||||||
:key="card.id"
|
:key="card.id"
|
||||||
@@ -29,12 +26,12 @@
|
|||||||
{{ t('deck', 'No results found') }}
|
{{ t('deck', 'No results found') }}
|
||||||
</div>
|
</div>
|
||||||
</InfiniteLoading>
|
</InfiniteLoading>
|
||||||
</template>
|
</div>
|
||||||
<template v-else>
|
<div v-else>
|
||||||
<p>{{ t('deck', 'No results found') }}</p>
|
<p>{{ t('deck', 'No results found') }}</p>
|
||||||
</template>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -162,7 +159,7 @@ export default {
|
|||||||
|
|
||||||
.global-search {
|
.global-search {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: $board-gap;
|
padding: $board-spacing + $stack-spacing;
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
min-height: 35vh;
|
min-height: 35vh;
|
||||||
@@ -172,24 +169,17 @@ export default {
|
|||||||
border-top: 1px solid var(--color-border);
|
border-top: 1px solid var(--color-border);
|
||||||
z-index: 1010;
|
z-index: 1010;
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
|
|
||||||
.action-item.icon-close {
|
.action-item.icon-close {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 10px;
|
top: 10px;
|
||||||
right: 10px;
|
right: 10px;
|
||||||
}
|
}
|
||||||
|
.search-wrapper {
|
||||||
.search-header {
|
overflow: scroll;
|
||||||
display: flex;
|
height: 100%;
|
||||||
align-items: flex-start;
|
position: relative;
|
||||||
justify-content: space-between;
|
padding: 10px;
|
||||||
}
|
|
||||||
|
|
||||||
h2 {
|
|
||||||
margin: 0;
|
|
||||||
padding: var(--default-grid-baseline) var(--default-grid-baseline) $board-gap;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
h2 > div {
|
h2 > div {
|
||||||
@@ -199,24 +189,23 @@ export default {
|
|||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
h2:deep(span) {
|
h2:deep(span) {
|
||||||
background-color: var(--color-background-dark);
|
background-color: var(--color-background-dark);
|
||||||
padding: 3px;
|
padding: 3px;
|
||||||
border-radius: var(--border-radius);
|
border-radius: var(--border-radius);
|
||||||
}
|
}
|
||||||
|
|
||||||
.search-wrapper {
|
.search-results {
|
||||||
overflow: auto;
|
|
||||||
height: 100%;
|
|
||||||
position: relative;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: $stack-gap;
|
flex-wrap: wrap;
|
||||||
|
|
||||||
& > .drop-upload--card {
|
& > div {
|
||||||
flex: 0 1 $card-max-width;
|
flex-grow: 0;
|
||||||
min-width: $card-min-width;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
&:deep(.card) {
|
||||||
|
width: $stack-width;
|
||||||
|
margin-right: $stack-spacing;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -62,13 +62,14 @@ export default {
|
|||||||
$clickable-area: var(--default-clickable-area);
|
$clickable-area: var(--default-clickable-area);
|
||||||
|
|
||||||
.card--placeholder {
|
.card--placeholder {
|
||||||
min-width: $card-min-width;
|
width: $stack-width;
|
||||||
max-width: $card-min-width;
|
margin-right: $stack-spacing;
|
||||||
padding: $card-padding;
|
padding: $card-padding;
|
||||||
transition: box-shadow 0.1s ease-in-out;
|
transition: box-shadow 0.1s ease-in-out;
|
||||||
box-shadow: 0 0 2px 0 var(--color-box-shadow);
|
box-shadow: 0 0 2px 0 var(--color-box-shadow);
|
||||||
border-radius: var(--border-radius-large);
|
border-radius: var(--border-radius-large);
|
||||||
font-size: 100%;
|
font-size: 100%;
|
||||||
|
margin-bottom: $card-spacing;
|
||||||
height: 100px;
|
height: 100px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,8 @@
|
|||||||
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
|
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
*/
|
*/
|
||||||
$card-min-width: 216px;
|
$card-spacing: 8px;
|
||||||
$card-max-width: 300px;
|
$card-padding: 4px;
|
||||||
$card-padding: calc(var(--default-grid-baseline) * 2) calc(var(--default-grid-baseline) * 2) var(--default-grid-baseline);
|
$stack-spacing: 12px;
|
||||||
$card-gap: calc(var(--default-grid-baseline) * 3);
|
$stack-width: 280px;
|
||||||
$card-image-margin: calc(var(--default-grid-baseline) * -2);
|
$board-spacing: 16px;
|
||||||
$stack-gap: calc(var(--default-grid-baseline) * 3);
|
|
||||||
$board-gap: calc(var(--default-grid-baseline) * 4);
|
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ export default {
|
|||||||
card.assignedUsers = card.assignedUsers || []
|
card.assignedUsers = card.assignedUsers || []
|
||||||
const existingIndex = state.cards.findIndex(_card => _card.id === card.id)
|
const existingIndex = state.cards.findIndex(_card => _card.id === card.id)
|
||||||
if (existingIndex !== -1) {
|
if (existingIndex !== -1) {
|
||||||
const existingCard = state.cards[existingIndex]
|
const existingCard = state.cards.find(_card => _card.id === card.id)
|
||||||
Vue.set(state.cards, existingIndex, Object.assign({}, existingCard, card))
|
Vue.set(state.cards, existingIndex, Object.assign({}, existingCard, card))
|
||||||
} else {
|
} else {
|
||||||
state.cards.push(card)
|
state.cards.push(card)
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
81373
|
82773
|
||||||
|
|||||||
@@ -129,17 +129,12 @@ class StackServiceTest extends TestCase {
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$this->cardMapper->expects($this->any())->method('findAllForStacks')->willReturnCallback(function (array $stackIds) {
|
$this->cardMapper->expects($this->any())->method('findAll')->willReturn($this->getCards(222));
|
||||||
$r = [];
|
|
||||||
foreach ($stackIds as $stackId) {
|
|
||||||
$r[$stackId] = $this->getCards(222);
|
|
||||||
}
|
|
||||||
return $r;
|
|
||||||
});
|
|
||||||
|
|
||||||
$actual = $this->stackService->findAll(123);
|
$actual = $this->stackService->findAll(123);
|
||||||
for ($stackId = 0; $stackId < 3; $stackId++) {
|
for ($stackId = 0; $stackId < 3; $stackId++) {
|
||||||
for ($cardId = 0; $cardId < 10; $cardId++) {
|
for ($cardId = 0;$cardId < 10;$cardId++) {
|
||||||
$this->assertEquals($actual[0]->getCards()[$cardId]->getId(), $cardId);
|
$this->assertEquals($actual[0]->getCards()[$cardId]->getId(), $cardId);
|
||||||
$this->assertEquals($actual[0]->getCards()[$cardId]->getStackId(), 222);
|
$this->assertEquals($actual[0]->getCards()[$cardId]->getStackId(), 222);
|
||||||
$this->assertEquals($actual[0]->getCards()[$cardId]->getLabels(), $this->getLabels()[$cardId]);
|
$this->assertEquals($actual[0]->getCards()[$cardId]->getLabels(), $this->getLabels()[$cardId]);
|
||||||
@@ -216,7 +211,7 @@ class StackServiceTest extends TestCase {
|
|||||||
$stackToBeDeleted->setBoardId(1);
|
$stackToBeDeleted->setBoardId(1);
|
||||||
$this->stackMapper->expects($this->once())->method('find')->willReturn($stackToBeDeleted);
|
$this->stackMapper->expects($this->once())->method('find')->willReturn($stackToBeDeleted);
|
||||||
$this->stackMapper->expects($this->once())->method('update')->willReturn($stackToBeDeleted);
|
$this->stackMapper->expects($this->once())->method('update')->willReturn($stackToBeDeleted);
|
||||||
$this->cardMapper->expects($this->once())->method('findAllForStacks')->willReturn([]);
|
$this->cardMapper->expects($this->once())->method('findAll')->willReturn([]);
|
||||||
$this->stackService->delete(123);
|
$this->stackService->delete(123);
|
||||||
$this->assertTrue($stackToBeDeleted->getDeletedAt() <= time(), 'deletedAt is in the past');
|
$this->assertTrue($stackToBeDeleted->getDeletedAt() <= time(), 'deletedAt is in the past');
|
||||||
$this->assertTrue($stackToBeDeleted->getDeletedAt() > 0, 'deletedAt is set');
|
$this->assertTrue($stackToBeDeleted->getDeletedAt() > 0, 'deletedAt is set');
|
||||||
|
|||||||
Reference in New Issue
Block a user