Compare commits

...

33 Commits

Author SHA1 Message Date
Julius Härtl
120e4e13a6 Bump version to 0.4.0-beta4
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-02 12:16:02 +02:00
Julius Härtl
04aa9df45b Merge pull request #470 from nextcloud/feature/noid/export
Implement user data export via occ command
2018-07-02 12:06:53 +02:00
Julius Härtl
8d60a4379d Add rough test and fix card array
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-02 11:51:53 +02:00
Julius Härtl
4e96dec474 Implement user data export via occ command
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-02 11:06:13 +02:00
Julius Härtl
9727356d3b Merge pull request #514 from nextcloud/feature/noid/file-progress
File upload progress
2018-07-02 09:49:00 +02:00
Julius Härtl
c0c0cb8545 Implement file upload status and cancel button
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-02 09:34:57 +02:00
Julius Härtl
af646c1999 Reset FileService status when switching cards
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-07-02 09:34:57 +02:00
Julius Härtl
38bb4c7a3a Merge pull request #515 from nextcloud/dependabot/npm_and_yarn/js/mini-css-extract-plugin-0.4.1
Bump mini-css-extract-plugin from 0.4.0 to 0.4.1 in /js
2018-07-02 08:35:07 +02:00
dependabot[bot]
573fa2c457 Bump mini-css-extract-plugin from 0.4.0 to 0.4.1 in /js
Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 0.4.0 to 0.4.1.
- [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v0.4.0...v0.4.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-02 06:29:23 +00:00
Julius Härtl
d7e7fd58b0 Merge pull request #516 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.14.0
Bump webpack from 4.12.1 to 4.14.0 in /js
2018-07-02 08:27:07 +02:00
dependabot[bot]
f5a234fd26 Bump webpack from 4.12.1 to 4.14.0 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.12.1 to 4.14.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.12.1...v4.14.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-07-02 01:14:11 +00:00
Nextcloud bot
f75c9e0d4a [tx-robot] updated from transifex 2018-07-02 00:14:13 +00:00
Nextcloud bot
5eca92a0ea [tx-robot] updated from transifex 2018-07-01 00:16:09 +00:00
Julius Härtl
384b7a41a9 Merge pull request #513 from nextcloud/bugfix/noid/img-colorpicker-dark
Add misisng colorpicker image
2018-06-30 10:59:19 +02:00
Julius Härtl
47e27a7a89 Add misisng colorpicker image
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-06-30 09:47:46 +02:00
Nextcloud bot
ac19621d5b [tx-robot] updated from transifex 2018-06-30 00:16:44 +00:00
Nextcloud bot
cf2e84873c [tx-robot] updated from transifex 2018-06-29 00:18:56 +00:00
Julius Härtl
c523474980 Merge pull request #508 from nextcloud/bugfix/502/markdown-newline
Fix markdownit configuration
2018-06-28 21:36:19 +02:00
Julius Härtl
754486673a Merge pull request #510 from nextcloud/bugfix/noid/upload-size-fontend
Add frontend check for file size before starting to upload
2018-06-28 21:34:54 +02:00
Julius Härtl
a7110082e7 Merge branch 'master' into bugfix/502/markdown-newline 2018-06-28 21:32:03 +02:00
Julius Härtl
db619e4cda Merge pull request #509 from nextcloud/bugfix/504/fix-inline-javascript-error
Do not prefix href of select2 with unsafe to avoid #504
2018-06-28 21:31:38 +02:00
Julius Härtl
34d05f2ac0 Merge pull request #511 from nextcloud/bugfix/501/colorpicker-invert
Invert color picker icon on bright backgrounds
2018-06-28 21:31:15 +02:00
Julius Härtl
fdb1dbf397 Invert color picker icon on bright backgrounds
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-06-28 16:02:24 +02:00
Julius Härtl
5c2925aeed Fix markdownit configuration
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-06-28 15:34:36 +02:00
Julius Härtl
dc5fbbf7eb Do not prefix href of select2 with unsafe to avoid #504
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-06-28 15:26:27 +02:00
Julius Härtl
e46844988e Add frontend check for file size before starting to upload
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2018-06-28 15:25:25 +02:00
Julius Härtl
9d98107f3a Merge pull request #506 from nextcloud/dependabot/npm_and_yarn/js/karma-2.0.4
Bump karma from 2.0.3 to 2.0.4 in /js
2018-06-28 10:55:53 +02:00
Nextcloud bot
681176c684 [tx-robot] updated from transifex 2018-06-28 00:18:52 +00:00
Nextcloud bot
5d4757ddf1 [tx-robot] updated from transifex 2018-06-27 00:18:47 +00:00
dependabot[bot]
9731e6811a Bump karma from 2.0.3 to 2.0.4 in /js
Bumps [karma](https://github.com/karma-runner/karma) from 2.0.3 to 2.0.4.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v2.0.3...v2.0.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-06-26 08:43:48 +00:00
Julius Härtl
23c86a4fcc Merge pull request #507 from nextcloud/dependabot/npm_and_yarn/js/webpack-4.12.1
Bump webpack from 4.12.0 to 4.12.1 in /js
2018-06-26 10:41:55 +02:00
Nextcloud bot
43ea0136c8 [tx-robot] updated from transifex 2018-06-26 00:18:51 +00:00
dependabot[bot]
2cc8eb1313 Bump webpack from 4.12.0 to 4.12.1 in /js
Bumps [webpack](https://github.com/webpack/webpack) from 4.12.0 to 4.12.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v4.12.0...v4.12.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-06-25 22:19:43 +00:00
43 changed files with 869 additions and 718 deletions

View File

@@ -9,6 +9,7 @@ All notable changes to this project will be documented in this file.
- Embed attachments into the card description
- Color picker to use any color value for board and labels
- Support for checkboxes inside the description
- occ command to export user data as JSON
### Fixed

View File

@@ -14,7 +14,7 @@
- 🚀 Get your project organized
</description>
<version>0.4.0-beta3</version>
<version>0.4.0-beta4</version>
<licence>agpl</licence>
<author>Julius Härtl</author>
<namespace>Deck</namespace>
@@ -37,4 +37,7 @@
<step>OCA\Deck\Migration\UnknownUsers</step>
</post-migration>
</repair-steps>
<commands>
<command>OCA\Deck\Command\UserExport</command>
</commands>
</info>

View File

@@ -877,6 +877,9 @@ input.input-inline {
button.icon-history {
width: 44px;
}
progress {
margin-top: 3px;
}
}
}
@@ -973,8 +976,8 @@ input.input-inline {
}
}
.colorselect-label {
background-image: url('../img/color_picker.svg');
.colorselect-label, .colorselect-label-white {
background-image: url('../img/color_picker-dark.svg');
background-position: center center;
background-repeat: no-repeat;
opacity: 1;
@@ -985,6 +988,9 @@ input.input-inline {
width: 40px;
}
}
.colorselect-label-white {
background-image: url('../img/color_picker.svg');
}
}
.labels {

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 100 100"><path d="M91.645 8.355c-4.474-4.474-11.727-4.474-16.2 0l-13.5 13.501-3.727-3.727a5.015 5.015 0 1 0-7.093 7.093l3.727 3.727-41.51 41.508a11.411 11.411 0 0 0-3.329 7.324c-.073 1.087-.347 3.105-.675 5.292a1.748 1.748 0 0 1-.487.983l-3.105 3.106a2.546 2.546 0 0 0 0 3.6l3.493 3.493a2.546 2.546 0 0 0 3.6 0l3.106-3.105c.277-.275.622-.433.981-.486 2.187-.329 4.205-.602 5.293-.675a11.412 11.412 0 0 0 7.325-3.33l41.508-41.508 3.727 3.727a5.015 5.015 0 1 0 7.093-7.093L69.507 29.419l9.697 7.577 12.44-12.441c4.475-4.473 4.474-11.726.001-16.2zM65.051 42.749l-20.53 20.53a2.546 2.546 0 0 1-3.6 0l-3.27-3.27a2.545 2.545 0 0 0-3.599.001l-.616.616-.002-.002-14.728 14.727c-.337.337-.819.401-1.076.143s-.194-.74.143-1.076l23.841-23.841.004.004 15.633-15.633a2.546 2.546 0 0 1 3.6 0l4.2 4.201a2.546 2.546 0 0 1 0 3.6z"/></svg>

After

Width:  |  Height:  |  Size: 897 B

View File

@@ -1,5 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg id="Layer_1" width="15" height="15" enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 100 100" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<path d="m91.645 8.355c-4.474-4.474-11.727-4.474-16.2 0l-13.5 13.501-3.727-3.727c-1.959-1.959-5.134-1.959-7.093 0s-1.959 5.134 0 7.093l3.727 3.727-41.51 41.508c-2.039 2.039-3.149 4.656-3.329 7.324-0.073 1.087-0.347 3.105-0.675 5.292-0.053 0.359-0.212 0.706-0.487 0.983l-3.105 3.106c-0.994 0.994-0.994 2.606 0 3.6l3.493 3.493c0.994 0.994 2.606 0.994 3.6 0l3.106-3.105c0.277-0.275 0.622-0.433 0.981-0.486 2.187-0.329 4.205-0.602 5.293-0.675 2.668-0.18 5.285-1.29 7.325-3.33l41.508-41.508 3.727 3.727c1.959 1.959 5.134 1.959 7.093 0s1.959-5.134 0-7.093l-12.365-12.366 9.697 7.577 12.44-12.441c4.475-4.473 4.474-11.726 1e-3 -16.2zm-26.594 34.394l-20.53 20.53c-0.994 0.994-2.606 0.994-3.6 0l-3.27-3.27c-0.994-0.993-2.605-0.993-3.599 1e-3l-0.616 0.616-2e-3 -2e-3 -14.728 14.727c-0.337 0.337-0.819 0.401-1.076 0.143s-0.194-0.74 0.143-1.076l23.841-23.841 4e-3 4e-3 15.633-15.633c0.994-0.994 2.606-0.994 3.6 0l4.2 4.201c0.994 0.994 0.994 2.606 0 3.6z" fill="#fff"/>
<metadata><rdf:RDF><cc:Work><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/><dc:publisher><cc:Agent rdf:about="http://openclipart.org/"><dc:title>Openclipart</dc:title></cc:Agent></dc:publisher></cc:Work><cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/"><cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/><cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/><cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/></cc:License></rdf:RDF></metadata></svg>
<svg width="15" height="15" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><path d="M91.645 8.355c-4.474-4.474-11.727-4.474-16.2 0l-13.5 13.501-3.727-3.727a5.015 5.015 0 1 0-7.093 7.093l3.727 3.727-41.51 41.508a11.411 11.411 0 0 0-3.329 7.324c-.073 1.087-.347 3.105-.675 5.292a1.748 1.748 0 0 1-.487.983l-3.105 3.106a2.546 2.546 0 0 0 0 3.6l3.493 3.493a2.546 2.546 0 0 0 3.6 0l3.106-3.105c.277-.275.622-.433.981-.486 2.187-.329 4.205-.602 5.293-.675a11.412 11.412 0 0 0 7.325-3.33l41.508-41.508 3.727 3.727a5.015 5.015 0 1 0 7.093-7.093L69.507 29.419l9.697 7.577 12.44-12.441c4.475-4.473 4.474-11.726.001-16.2zM65.051 42.749l-20.53 20.53a2.546 2.546 0 0 1-3.6 0l-3.27-3.27a2.545 2.545 0 0 0-3.599.001l-.616.616-.002-.002-14.728 14.727c-.337.337-.819.401-1.076.143s-.194-.74.143-1.076l23.841-23.841.004.004 15.633-15.633a2.546 2.546 0 0 1 3.6 0l4.2 4.201a2.546 2.546 0 0 1 0 3.6z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 910 B

View File

@@ -33,12 +33,16 @@ app.config(function ($provide, $interpolateProvider, $httpProvider, $urlRouterPr
$compileProvider.debugInfoEnabled(true);
// This should fix adding "unsafe:" prefix to ui-select href links containing javascript
// inline JS is blocked by CSP anyway and filtered out by our markdown renderer as well
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|javascript):/);
markdownItConverterProvider.use(markdownitLinkTarget, {
markdownItConverterProvider.config({
breaks: true,
linkify: true,
xhtmlOut: true
}).use(markdownitCheckbox);
});
markdownItConverterProvider.use(markdownitLinkTarget).use(markdownitCheckbox);
$urlRouterProvider.otherwise('/');

View File

@@ -23,10 +23,11 @@
import app from '../app/App.js';
/** global: OC */
app.controller('AppController', function ($scope, $location, $http, $log, $rootScope) {
app.controller('AppController', function ($scope, $location, $http, $log, $rootScope, $attrs) {
$rootScope.sidebar = {
show: false
};
$scope.sidebar = $rootScope.sidebar;
$scope.user = oc_current_user;
$rootScope.config = JSON.parse($attrs.config);
});

View File

@@ -43,6 +43,7 @@ app.controller('CardController', function ($scope, $rootScope, $sce, $location,
return $state.params;
}, function (params) {
$scope.params = params;
$scope.fileservice.reset();
}, true);
$scope.params = $state.params;

1056
js/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -25,10 +25,10 @@
"babel-loader": "^7.1.2",
"babel-preset-env": "^1.7.0",
"css-loader": "^0.28.9",
"karma": "^2.0.3",
"mini-css-extract-plugin": "^0.4.0",
"karma": "^2.0.4",
"mini-css-extract-plugin": "^0.4.1",
"node-sass": "^4.5.3",
"webpack": "^4.12.0",
"webpack": "^4.14.0",
"webpack-cli": "^3.0.8",
"webpack-merge": "^4.1.3"
},

View File

@@ -1,5 +1,5 @@
/*
* @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
* @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
@@ -25,16 +25,23 @@ import app from '../app/App.js';
/* global OC oc_requesttoken */
export default class FileService {
constructor ($http, FileUploader, CardService) {
constructor (FileUploader, CardService, $rootScope, $filter) {
this.$filter = $filter;
this.uploader = new FileUploader();
this.cardservice = CardService;
this.uploader.onAfterAddingFile = this.onAfterAddingFile.bind(this);
this.uploader.onSuccessItem = this.onSuccessItem.bind(this);
this.uploader.onErrorItem = this.onErrorItem.bind(this);
this.uploader.onCancelItem = this.onCancelItem.bind(this);
this.maxUploadSize = $rootScope.config.maxUploadSize;
this.progress = [];
this.status = null;
}
reset () {
this.status = null;
}
runUpload (fileItem, attachmentId) {
this.status = null;
@@ -55,8 +62,17 @@ export default class FileService {
}
onAfterAddingFile (fileItem) {
if (this.maxUploadSize > 0 && fileItem.file.size > this.maxUploadSize) {
this.status = {
error: t('deck', `Failed to upload {name}`, {name: fileItem.file.name}),
message: t('deck', 'Maximum file size of {size} exceeded', {size: this.$filter('bytes')(this.maxUploadSize)})
};
return;
}
// Fetch card details before trying to upload so we can detect filename collisions properly
let self = this;
this.progress.push(fileItem);
this.cardservice.fetchOne(fileItem.cardId).then(function (data) {
let attachments = self.cardservice.get(fileItem.cardId).attachments;
let existingFile = attachments.find((attachment) => {
@@ -85,7 +101,7 @@ export default class FileService {
self.runUpload(fileItem);
}
}, function (error) {
this.progress = this.progress.filter((item) => (fileItem.file.name !== item.file.name));
});
}
@@ -97,15 +113,25 @@ export default class FileService {
attachments = attachments.splice(index, 1);
}
this.cardservice.get(item.cardId).attachments.push(response);
this.progress = this.progress.filter((fileItem) => (fileItem.file.name !== item.file.name));
}
onErrorItem (item, response) {
this.progress = this.progress.filter((fileItem) => (fileItem.file.name !== item.file.name));
this.status = {
error: t('deck', `Failed to upload:`) + ' ' + item.file.name,
message: response.message
};
}
onCancelItem (item) {
this.progress = this.progress.filter((fileItem) => (fileItem.file.name !== item.file.name));
}
getProgressItemsForCard (cardId) {
return this.progress.filter((fileItem) => (fileItem.cardId === cardId));
}
}
app.service('FileService', FileService);
app.service('FileService', FileService);

View File

@@ -14,6 +14,11 @@ OC.L10N.register(
"To review" : "K revizi",
"Action needed" : "Nutná akce",
"Later" : "Později",
"The file was uploaded" : "Soubor byl nahrán",
"No file was uploaded" : "Nebyl nahrán žádný soubor",
"Missing a temporary folder" : "Chybí adresář pro dočasné soubory",
"Could not write file to disk" : "Nedaří se zapsat soubor do úložiště",
"A PHP extension stopped the file upload" : "Rozšíření PHP zastavilo nahrávání souboru.",
"Deck" : "Balík",
"Add a new stack" : "Přidat nový zásobník",
"Submit" : "Odeslat",
@@ -65,9 +70,12 @@ OC.L10N.register(
"Click to set" : "Klikněte pro výběr",
"Remove due date" : "Odstranit termín",
"Description" : "Popis",
"Attachments" : "Přílohy",
"Saved" : "Uloženo",
"Unsaved changes" : "Neuložené změny",
"Formatting help" : "Nápověda k formátování",
"Upload attachment" : "Nahrát přílohu",
"Insert attachment" : "Vložit přílohu",
"Add a card description…" : "Přidat popis karty...",
"Shared boards" : "Sdílené desky",
"View more" : "Ukázat více",

View File

@@ -12,6 +12,11 @@
"To review" : "K revizi",
"Action needed" : "Nutná akce",
"Later" : "Později",
"The file was uploaded" : "Soubor byl nahrán",
"No file was uploaded" : "Nebyl nahrán žádný soubor",
"Missing a temporary folder" : "Chybí adresář pro dočasné soubory",
"Could not write file to disk" : "Nedaří se zapsat soubor do úložiště",
"A PHP extension stopped the file upload" : "Rozšíření PHP zastavilo nahrávání souboru.",
"Deck" : "Balík",
"Add a new stack" : "Přidat nový zásobník",
"Submit" : "Odeslat",
@@ -63,9 +68,12 @@
"Click to set" : "Klikněte pro výběr",
"Remove due date" : "Odstranit termín",
"Description" : "Popis",
"Attachments" : "Přílohy",
"Saved" : "Uloženo",
"Unsaved changes" : "Neuložené změny",
"Formatting help" : "Nápověda k formátování",
"Upload attachment" : "Nahrát přílohu",
"Insert attachment" : "Vložit přílohu",
"Add a card description…" : "Přidat popis karty...",
"Shared boards" : "Sdílené desky",
"View more" : "Ukázat více",

View File

@@ -6,10 +6,12 @@ OC.L10N.register(
"Remove user from card" : "Benutzer von Karte entfernen",
"Hours" : "Stunden",
"Minutes" : "Minuten",
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten",
"Are you sure you want to delete the stack with all of its data?" : "Möchtest du diesen Stapel mit allen Daten wirklich löschen?",
"The card \"%s\" on \"%s\" has reached its due date." : "Die Karte \"%s\" auf \"%s\" ist überfällig.",
"The board \"%s\" has been shared with you by %s." : "Das Board \"%s\" wurde von %s mit Dir geteilt.",
"{user} has shared the board %s with you." : "{user} hat das Board %s mit Dir geteilt.",
"No data was provided to create an attachment." : "Es wurde keine Daten zum Erstellen eines Anhangs bereitgestellt.",
"Finished" : "Abgeschlossen",
"To review" : "Zu überprüfen",
"Action needed" : "Handlung erforderlich",
@@ -22,7 +24,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Kein temporärer Ordner vorhanden",
"Could not write file to disk" : "Die Datei konnte nicht auf die Festplatte geschrieben werden",
"A PHP extension stopped the file upload" : "Eine PHP-Erweiterung hat das Hochladen der Datei gestoppt",
"No file uploaded" : "Keine Datei hochgeladen",
"No file uploaded or file size exceeds maximum of %s" : "Keine Datei hochgeladen oder die Dateigröße überschreitet %s",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "Ein Kanban Werkzeug für Nextcloud",
"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- 🚀 Get your project organized" : "Deck ist ein Organisationstool im Kanban-Stil für die persönliche Planung und Projektorganisation von Teams, die in Nextcloud integriert sind.\n\n\n- 📥 Füge Deine Aufgaben zu den Karten hinzu und ordne diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Vergabe von Labels für noch bessere Organisation\n- 👥 Teile mit Deinem Team, Freunden oder der Familie\n- 🚀 Organisiere Dein Projekt",

View File

@@ -4,10 +4,12 @@
"Remove user from card" : "Benutzer von Karte entfernen",
"Hours" : "Stunden",
"Minutes" : "Minuten",
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten",
"Are you sure you want to delete the stack with all of its data?" : "Möchtest du diesen Stapel mit allen Daten wirklich löschen?",
"The card \"%s\" on \"%s\" has reached its due date." : "Die Karte \"%s\" auf \"%s\" ist überfällig.",
"The board \"%s\" has been shared with you by %s." : "Das Board \"%s\" wurde von %s mit Dir geteilt.",
"{user} has shared the board %s with you." : "{user} hat das Board %s mit Dir geteilt.",
"No data was provided to create an attachment." : "Es wurde keine Daten zum Erstellen eines Anhangs bereitgestellt.",
"Finished" : "Abgeschlossen",
"To review" : "Zu überprüfen",
"Action needed" : "Handlung erforderlich",
@@ -20,7 +22,7 @@
"Missing a temporary folder" : "Kein temporärer Ordner vorhanden",
"Could not write file to disk" : "Die Datei konnte nicht auf die Festplatte geschrieben werden",
"A PHP extension stopped the file upload" : "Eine PHP-Erweiterung hat das Hochladen der Datei gestoppt",
"No file uploaded" : "Keine Datei hochgeladen",
"No file uploaded or file size exceeds maximum of %s" : "Keine Datei hochgeladen oder die Dateigröße überschreitet %s",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "Ein Kanban Werkzeug für Nextcloud",
"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- 🚀 Get your project organized" : "Deck ist ein Organisationstool im Kanban-Stil für die persönliche Planung und Projektorganisation von Teams, die in Nextcloud integriert sind.\n\n\n- 📥 Füge Deine Aufgaben zu den Karten hinzu und ordne diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Vergabe von Labels für noch bessere Organisation\n- 👥 Teile mit Deinem Team, Freunden oder der Familie\n- 🚀 Organisiere Dein Projekt",

View File

@@ -6,10 +6,12 @@ OC.L10N.register(
"Remove user from card" : "Benutzer von Karte entfernen",
"Hours" : "Stunden",
"Minutes" : "Minuten",
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten",
"Are you sure you want to delete the stack with all of its data?" : "Möchten Sie diesen Stapel mit allen Daten wirklich löschen?",
"The card \"%s\" on \"%s\" has reached its due date." : "Die Karte \"%s\" auf \"%s\" ist überfällig.",
"The board \"%s\" has been shared with you by %s." : "Das Board \"%s\" wurde von %s mit Ihnen geteilt.",
"{user} has shared the board %s with you." : "{user} hat das Board %s mit Ihnen geteilt.",
"No data was provided to create an attachment." : "Es wurde keine Daten zum Erstellen eines Anhangs bereitgestellt.",
"Finished" : "Abgeschlossen",
"To review" : "Zu überprüfen",
"Action needed" : "Handlung erforderlich",
@@ -22,7 +24,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Kein temporärer Ordner vorhanden",
"Could not write file to disk" : "Die Datei konnte nicht auf die Festplatte geschrieben werden",
"A PHP extension stopped the file upload" : "Eine PHP-Erweiterung hat das Hochladen der Datei gestoppt",
"No file uploaded" : "Keine Datei hochgeladen",
"No file uploaded or file size exceeds maximum of %s" : "Keine Datei hochgeladen oder die Dateigröße überschreitet %s",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "Ein Kanban Werzeug für Nextcloud",
"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- 🚀 Get your project organized" : "Deck ist ein Organisationstool im Kanban-Stil für die persönliche Planung und Projektorganisation von Teams, die in Nextcloud integriert sind.\n\n\n- 📥 Fügen Sie Ihre Aufgaben zu den Karten hinzu und ordnen Sie diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Vergabe von Labels für noch bessere Organisation\n- 👥 Teilen Sie mit Ihrem Team, Ihren Freunden oder Ihrer Familie\n- 🚀 Organisieren Sie Ihr Projekt",

View File

@@ -4,10 +4,12 @@
"Remove user from card" : "Benutzer von Karte entfernen",
"Hours" : "Stunden",
"Minutes" : "Minuten",
"Maximum file size of {size} exceeded" : "Maximale Dateigröße von {size} überschritten",
"Are you sure you want to delete the stack with all of its data?" : "Möchten Sie diesen Stapel mit allen Daten wirklich löschen?",
"The card \"%s\" on \"%s\" has reached its due date." : "Die Karte \"%s\" auf \"%s\" ist überfällig.",
"The board \"%s\" has been shared with you by %s." : "Das Board \"%s\" wurde von %s mit Ihnen geteilt.",
"{user} has shared the board %s with you." : "{user} hat das Board %s mit Ihnen geteilt.",
"No data was provided to create an attachment." : "Es wurde keine Daten zum Erstellen eines Anhangs bereitgestellt.",
"Finished" : "Abgeschlossen",
"To review" : "Zu überprüfen",
"Action needed" : "Handlung erforderlich",
@@ -20,7 +22,7 @@
"Missing a temporary folder" : "Kein temporärer Ordner vorhanden",
"Could not write file to disk" : "Die Datei konnte nicht auf die Festplatte geschrieben werden",
"A PHP extension stopped the file upload" : "Eine PHP-Erweiterung hat das Hochladen der Datei gestoppt",
"No file uploaded" : "Keine Datei hochgeladen",
"No file uploaded or file size exceeds maximum of %s" : "Keine Datei hochgeladen oder die Dateigröße überschreitet %s",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "Ein Kanban Werzeug für Nextcloud",
"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- 🚀 Get your project organized" : "Deck ist ein Organisationstool im Kanban-Stil für die persönliche Planung und Projektorganisation von Teams, die in Nextcloud integriert sind.\n\n\n- 📥 Fügen Sie Ihre Aufgaben zu den Karten hinzu und ordnen Sie diese\n- 📄 Zusätzliche Hinweise in der Abschrift notieren\n- 🔖 Vergabe von Labels für noch bessere Organisation\n- 👥 Teilen Sie mit Ihrem Team, Ihren Freunden oder Ihrer Familie\n- 🚀 Organisieren Sie Ihr Projekt",

View File

@@ -6,10 +6,12 @@ OC.L10N.register(
"Remove user from card" : "Eliminar usuario de la tarjeta",
"Hours" : "Horas",
"Minutes" : "Minutos",
"Maximum file size of {size} exceeded" : "Tamaño máximo de archivo de {size} excedido",
"Are you sure you want to delete the stack with all of its data?" : "¿Estás seguro de que quieres eliminar el mazo con todos sus datos?",
"The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alcanzado su fecha límite.",
"The board \"%s\" has been shared with you by %s." : "El tablero \"%s\" ha sido compartido contigo por %s.",
"{user} has shared the board %s with you." : "{user} ha compartido el tablero %s contigo.",
"No data was provided to create an attachment." : "No se proporcionaron datos para crear un adjunto",
"Finished" : "Finalizado",
"To review" : "Para revisar",
"Action needed" : "Acción necesaria",
@@ -22,7 +24,6 @@ OC.L10N.register(
"Missing a temporary folder" : "Falta una carpeta temporal",
"Could not write file to disk" : "No se ha podido escribir el archivo al disco",
"A PHP extension stopped the file upload" : "Una extensión de PHP ha detenido la subida del archivo",
"No file uploaded" : "No se ha subido ningún archivo",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "Una herramienta de manejo de proyectos y personal al estilo kanban para Nextcloud.",
"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- 🚀 Get your project organized" : "Deckes una herramienta de organización al estilo kanban enfocada en la planificación personal y en la organización de proyectos para equipos, integrada en Nextcloud.\n\n\n- 📥 Añade tus tareas a tarjetas y ordénalas\n- 📄 Escribe notas adicionales en markdown\n- 🔖 Asigna etiquetas para una organización aún mejor\n- 👥 Comparte con tu equipo, amigos o familia\n- 🚀 Organiza tu proyecto",

View File

@@ -4,10 +4,12 @@
"Remove user from card" : "Eliminar usuario de la tarjeta",
"Hours" : "Horas",
"Minutes" : "Minutos",
"Maximum file size of {size} exceeded" : "Tamaño máximo de archivo de {size} excedido",
"Are you sure you want to delete the stack with all of its data?" : "¿Estás seguro de que quieres eliminar el mazo con todos sus datos?",
"The card \"%s\" on \"%s\" has reached its due date." : "La tarjeta \"%s\" en \"%s\" ha alcanzado su fecha límite.",
"The board \"%s\" has been shared with you by %s." : "El tablero \"%s\" ha sido compartido contigo por %s.",
"{user} has shared the board %s with you." : "{user} ha compartido el tablero %s contigo.",
"No data was provided to create an attachment." : "No se proporcionaron datos para crear un adjunto",
"Finished" : "Finalizado",
"To review" : "Para revisar",
"Action needed" : "Acción necesaria",
@@ -20,7 +22,6 @@
"Missing a temporary folder" : "Falta una carpeta temporal",
"Could not write file to disk" : "No se ha podido escribir el archivo al disco",
"A PHP extension stopped the file upload" : "Una extensión de PHP ha detenido la subida del archivo",
"No file uploaded" : "No se ha subido ningún archivo",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "Una herramienta de manejo de proyectos y personal al estilo kanban para Nextcloud.",
"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- 🚀 Get your project organized" : "Deckes una herramienta de organización al estilo kanban enfocada en la planificación personal y en la organización de proyectos para equipos, integrada en Nextcloud.\n\n\n- 📥 Añade tus tareas a tarjetas y ordénalas\n- 📄 Escribe notas adicionales en markdown\n- 🔖 Asigna etiquetas para una organización aún mejor\n- 👥 Comparte con tu equipo, amigos o familia\n- 🚀 Organiza tu proyecto",

View File

@@ -6,6 +6,8 @@ OC.L10N.register(
"Remove user from card" : "Poista käyttäjä kortilta",
"Hours" : "Tunnit",
"Minutes" : "Minuutit",
"Maximum file size of {size} exceeded" : "Tiedoston enimmäiskoko {size} ylitetty",
"Are you sure you want to delete the stack with all of its data?" : "Haluatko varmasti poistaa pinon ja kaikki siinä olevat tiedot?",
"The card \"%s\" on \"%s\" has reached its due date." : "Kortin \"%s\" on \"%s\" eräpäivä on tullut vastaan.",
"The board \"%s\" has been shared with you by %s." : "Taulu \"%s\" on jaettu kanssasi käyttäjän %s toimesta.",
"{user} has shared the board %s with you." : "{user} on jakanut taulun %s kanssasi.",
@@ -13,12 +15,19 @@ OC.L10N.register(
"To review" : "Arvostella",
"Action needed" : "Toimia vaaditaan",
"Later" : "Myöhemmin",
"The file was uploaded" : "Tiedosto lähetettiin",
"The file was only partially uploaded" : "Tiedosto lähetettiin vain osittain",
"No file was uploaded" : "Tiedostoa ei lähetetty",
"Could not write file to disk" : "Tiedostoa ei voitu kirjoittaa levylle",
"Deck" : "Kansi",
"A kanban style project and personal management tool for Nextcloud" : "Kanban-tyylinen projektien ja henkilökohtaisten asioiden hallintatyökalu Nextcloudille",
"Add a new stack" : "Lisää uusi pino",
"Show archived cards" : "Näytä arkistoidut kortit",
"Hide archived cards" : "Piilota arkistoidut kortit",
"Board details" : "Taulun tiedot",
"All Boards" : "Kaikki taulut",
"Archived boards" : "Arkistoidut taulut",
"Drop your files here to upload it to the card" : "Pudota tiedostot tähän lähettääksesi ne kortille",
"Archive" : "Arkisto",
"Unarchive" : "Pois arkistosta",
"Enter a card title" : "Anna otsikko",
@@ -42,10 +51,13 @@ OC.L10N.register(
"More actions" : "Lisää toimintoja",
"Edit board" : "Muokkaa taulua",
"Archive board" : "Arkistoi taulu",
"Unarchive board" : "Kumoa taulun arkistointi",
"Delete board" : "Poista taulu",
"Create new board" : "Luo uusi taulu",
"New board title" : "Uusi taulun otsikko",
"Select an attachment" : "Valitse liite",
"by" : " Kirjoittaja:",
"Undo file deletion" : "Kumoa tiedoston luonti",
"Modified:" : "Muokattu:",
"Created:" : "Luotu:",
"Choose a tag" : "Valitse tunniste",
@@ -58,9 +70,11 @@ OC.L10N.register(
"Click to set" : "Napsauta asettaaksesi",
"Remove due date" : "Poista eräpäivä",
"Description" : "Kuvaus",
"Attachments" : "Liitteet",
"Saved" : "Tallennettu",
"Unsaved changes" : "Tallentamattomia muutoksia",
"Formatting help" : "Muotoiluapu",
"Upload attachment" : "Lähetä liite",
"Add a card description…" : "Lisää kortin kuvaus…",
"Shared boards" : "Jaetut taulut",
"View more" : "Näytä lisää",

View File

@@ -4,6 +4,8 @@
"Remove user from card" : "Poista käyttäjä kortilta",
"Hours" : "Tunnit",
"Minutes" : "Minuutit",
"Maximum file size of {size} exceeded" : "Tiedoston enimmäiskoko {size} ylitetty",
"Are you sure you want to delete the stack with all of its data?" : "Haluatko varmasti poistaa pinon ja kaikki siinä olevat tiedot?",
"The card \"%s\" on \"%s\" has reached its due date." : "Kortin \"%s\" on \"%s\" eräpäivä on tullut vastaan.",
"The board \"%s\" has been shared with you by %s." : "Taulu \"%s\" on jaettu kanssasi käyttäjän %s toimesta.",
"{user} has shared the board %s with you." : "{user} on jakanut taulun %s kanssasi.",
@@ -11,12 +13,19 @@
"To review" : "Arvostella",
"Action needed" : "Toimia vaaditaan",
"Later" : "Myöhemmin",
"The file was uploaded" : "Tiedosto lähetettiin",
"The file was only partially uploaded" : "Tiedosto lähetettiin vain osittain",
"No file was uploaded" : "Tiedostoa ei lähetetty",
"Could not write file to disk" : "Tiedostoa ei voitu kirjoittaa levylle",
"Deck" : "Kansi",
"A kanban style project and personal management tool for Nextcloud" : "Kanban-tyylinen projektien ja henkilökohtaisten asioiden hallintatyökalu Nextcloudille",
"Add a new stack" : "Lisää uusi pino",
"Show archived cards" : "Näytä arkistoidut kortit",
"Hide archived cards" : "Piilota arkistoidut kortit",
"Board details" : "Taulun tiedot",
"All Boards" : "Kaikki taulut",
"Archived boards" : "Arkistoidut taulut",
"Drop your files here to upload it to the card" : "Pudota tiedostot tähän lähettääksesi ne kortille",
"Archive" : "Arkisto",
"Unarchive" : "Pois arkistosta",
"Enter a card title" : "Anna otsikko",
@@ -40,10 +49,13 @@
"More actions" : "Lisää toimintoja",
"Edit board" : "Muokkaa taulua",
"Archive board" : "Arkistoi taulu",
"Unarchive board" : "Kumoa taulun arkistointi",
"Delete board" : "Poista taulu",
"Create new board" : "Luo uusi taulu",
"New board title" : "Uusi taulun otsikko",
"Select an attachment" : "Valitse liite",
"by" : " Kirjoittaja:",
"Undo file deletion" : "Kumoa tiedoston luonti",
"Modified:" : "Muokattu:",
"Created:" : "Luotu:",
"Choose a tag" : "Valitse tunniste",
@@ -56,9 +68,11 @@
"Click to set" : "Napsauta asettaaksesi",
"Remove due date" : "Poista eräpäivä",
"Description" : "Kuvaus",
"Attachments" : "Liitteet",
"Saved" : "Tallennettu",
"Unsaved changes" : "Tallentamattomia muutoksia",
"Formatting help" : "Muotoiluapu",
"Upload attachment" : "Lähetä liite",
"Add a card description…" : "Lisää kortin kuvaus…",
"Shared boards" : "Jaetut taulut",
"View more" : "Näytä lisää",

View File

@@ -6,10 +6,12 @@ OC.L10N.register(
"Remove user from card" : "Supprimer l'utilisateur de la carte",
"Hours" : "Heures",
"Minutes" : "Minutes",
"Maximum file size of {size} exceeded" : "Taille de fichier maximale de {size} dépassée",
"Are you sure you want to delete the stack with all of its data?" : "Êtes-vous sûr de vouloir supprimer la pile avec toutes ses données ?",
"The card \"%s\" on \"%s\" has reached its due date." : "Le délais de la carte %s de %s est expiré.",
"The board \"%s\" has been shared with you by %s." : "Le tableau %s a été partagé avec vous par %s.",
"{user} has shared the board %s with you." : "{user} a partagé le tableau %s avec vous.",
"No data was provided to create an attachment." : "Aucune donnée n'a été fournie pour créer une pièce jointe.",
"Finished" : "Terminé",
"To review" : "A réviser",
"Action needed" : "Action requise",
@@ -22,8 +24,10 @@ OC.L10N.register(
"Missing a temporary folder" : "Absence de dossier temporaire",
"Could not write file to disk" : "Impossible d'écrire le fichier sur le disque.",
"A PHP extension stopped the file upload" : "Une extension PHP a arrêté le téléversement du fichier",
"No file uploaded" : "Aucun fichier téléversé",
"No file uploaded or file size exceeds maximum of %s" : "Aucun fichier téléversé ou la taille du fichier dépasse la maximum de %s",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : " Un outil de style kanban pour Nextcloud, pour la gestion de votre vie personnelle et de vos projets.",
"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- 🚀 Get your project organized" : "Deck est un outil d'organisation de style kanban destiné à la planification personnelle et à l'organisation de projets pour les équipes intégrées à Nextcloud.\n\n\n- 📥 Ajoutez vos tâches à des cartes et organisez-les\n- 📄 Écrivez des notes supplémentaires en Markdown\n- 🔖 Affectez des étiquettes pour une organisation encore meilleure\n- 👥 Partagez avec votre équipe, vos amis ou votre famille\n- 🚀 Organisez vos projets",
"Add a new stack" : "Ajouter une nouvelle pile",
"Submit" : "Envoyer",
"Show archived cards" : "Afficher les cartes archivées",

View File

@@ -4,10 +4,12 @@
"Remove user from card" : "Supprimer l'utilisateur de la carte",
"Hours" : "Heures",
"Minutes" : "Minutes",
"Maximum file size of {size} exceeded" : "Taille de fichier maximale de {size} dépassée",
"Are you sure you want to delete the stack with all of its data?" : "Êtes-vous sûr de vouloir supprimer la pile avec toutes ses données ?",
"The card \"%s\" on \"%s\" has reached its due date." : "Le délais de la carte %s de %s est expiré.",
"The board \"%s\" has been shared with you by %s." : "Le tableau %s a été partagé avec vous par %s.",
"{user} has shared the board %s with you." : "{user} a partagé le tableau %s avec vous.",
"No data was provided to create an attachment." : "Aucune donnée n'a été fournie pour créer une pièce jointe.",
"Finished" : "Terminé",
"To review" : "A réviser",
"Action needed" : "Action requise",
@@ -20,8 +22,10 @@
"Missing a temporary folder" : "Absence de dossier temporaire",
"Could not write file to disk" : "Impossible d'écrire le fichier sur le disque.",
"A PHP extension stopped the file upload" : "Une extension PHP a arrêté le téléversement du fichier",
"No file uploaded" : "Aucun fichier téléversé",
"No file uploaded or file size exceeds maximum of %s" : "Aucun fichier téléversé ou la taille du fichier dépasse la maximum de %s",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : " Un outil de style kanban pour Nextcloud, pour la gestion de votre vie personnelle et de vos projets.",
"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- 🚀 Get your project organized" : "Deck est un outil d'organisation de style kanban destiné à la planification personnelle et à l'organisation de projets pour les équipes intégrées à Nextcloud.\n\n\n- 📥 Ajoutez vos tâches à des cartes et organisez-les\n- 📄 Écrivez des notes supplémentaires en Markdown\n- 🔖 Affectez des étiquettes pour une organisation encore meilleure\n- 👥 Partagez avec votre équipe, vos amis ou votre famille\n- 🚀 Organisez vos projets",
"Add a new stack" : "Ajouter une nouvelle pile",
"Submit" : "Envoyer",
"Show archived cards" : "Afficher les cartes archivées",

View File

@@ -6,10 +6,12 @@ OC.L10N.register(
"Remove user from card" : "Rimuovi utente dalla scheda",
"Hours" : "Ore",
"Minutes" : "Minuti",
"Maximum file size of {size} exceeded" : "Dimensione massima dei file di {size} superata",
"Are you sure you want to delete the stack with all of its data?" : "Sei sicuro di voler eliminare questa pila con tutti i suoi dati?",
"The card \"%s\" on \"%s\" has reached its due date." : "La scheda \"%s\" in \"%s\" ha raggiunto la sua data di scadenza.",
"The board \"%s\" has been shared with you by %s." : "La lavagna \"%s\" è stata condivisa con te da %s.",
"{user} has shared the board %s with you." : "{user} ha condiviso la lavagna %s con te.",
"No data was provided to create an attachment." : "Non è stato fornito alcun dato per creare un allegato.",
"Finished" : "Finito",
"To review" : "Da revisionare",
"Action needed" : "Azione necessaria",
@@ -22,7 +24,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Manca una cartella temporanea",
"Could not write file to disk" : "Impossibile scrivere il file su disco",
"A PHP extension stopped the file upload" : "Un'estensione PHP ha fermato il caricamento del file",
"No file uploaded" : "Nessun file caricato",
"No file uploaded or file size exceeds maximum of %s" : "Nessun file caricato o la dimensione del file supera il massimo di %s",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "Uno strumento in stile kanban di gestione progetti e personale per Nextcloud",
"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- 🚀 Get your project organized" : "Deck è uno strumenti di organizzazione in stile kanban destinato alla pianificazione personale e all'organizzazione di progetti per squadre integrata con Nextcloud.\n\n\n- 📥 Aggiungi le tue attività alle schede e mettile in ordine\n- 📄 Scrivi note aggiuntive in markdown\n- 🔖 Assegna etichette per un'organizzazione ancora migliore\n- 👥 Cindividi cin la tua squadra, amici o famiglia\n- 🚀 Organizza il tuo progetto",

View File

@@ -4,10 +4,12 @@
"Remove user from card" : "Rimuovi utente dalla scheda",
"Hours" : "Ore",
"Minutes" : "Minuti",
"Maximum file size of {size} exceeded" : "Dimensione massima dei file di {size} superata",
"Are you sure you want to delete the stack with all of its data?" : "Sei sicuro di voler eliminare questa pila con tutti i suoi dati?",
"The card \"%s\" on \"%s\" has reached its due date." : "La scheda \"%s\" in \"%s\" ha raggiunto la sua data di scadenza.",
"The board \"%s\" has been shared with you by %s." : "La lavagna \"%s\" è stata condivisa con te da %s.",
"{user} has shared the board %s with you." : "{user} ha condiviso la lavagna %s con te.",
"No data was provided to create an attachment." : "Non è stato fornito alcun dato per creare un allegato.",
"Finished" : "Finito",
"To review" : "Da revisionare",
"Action needed" : "Azione necessaria",
@@ -20,7 +22,7 @@
"Missing a temporary folder" : "Manca una cartella temporanea",
"Could not write file to disk" : "Impossibile scrivere il file su disco",
"A PHP extension stopped the file upload" : "Un'estensione PHP ha fermato il caricamento del file",
"No file uploaded" : "Nessun file caricato",
"No file uploaded or file size exceeds maximum of %s" : "Nessun file caricato o la dimensione del file supera il massimo di %s",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "Uno strumento in stile kanban di gestione progetti e personale per Nextcloud",
"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- 🚀 Get your project organized" : "Deck è uno strumenti di organizzazione in stile kanban destinato alla pianificazione personale e all'organizzazione di progetti per squadre integrata con Nextcloud.\n\n\n- 📥 Aggiungi le tue attività alle schede e mettile in ordine\n- 📄 Scrivi note aggiuntive in markdown\n- 🔖 Assegna etichette per un'organizzazione ancora migliore\n- 👥 Cindividi cin la tua squadra, amici o famiglia\n- 🚀 Organizza il tuo progetto",

View File

@@ -8,6 +8,12 @@ OC.L10N.register(
"To review" : "Peržiūrėti",
"Action needed" : "Reikalingas veiksmas",
"Later" : "Vėliau",
"The file was uploaded" : "Failas buvo įkeltas",
"The file was only partially uploaded" : "Failas buvo tik dalinai įkeltas",
"No file was uploaded" : "Nebuvo įkeltas joks failas",
"Missing a temporary folder" : "Trūksta laikinojo aplanko",
"Could not write file to disk" : "Nepavyko įrašyti failą į diską",
"A PHP extension stopped the file upload" : "PHP plėtinys sustabdė failo įkėlimą",
"Deck" : "Užduočių saugykla",
"Add a new stack" : "Pridėti naują skiltį",
"Submit" : "Pateikti",
@@ -19,6 +25,7 @@ OC.L10N.register(
"Archive" : "Archyvuoti",
"Unarchive" : "Išskleisti",
"Enter a card title" : "Įveskite kortelės vardą",
"Add card" : "Pridėti kortelę",
"Close" : "Užverti",
"Sharing" : "Bendrinimas",
"Tags" : "Žymės",
@@ -29,6 +36,8 @@ OC.L10N.register(
"Edit" : "Taisyti",
"Manage" : "Redaguoti",
"Discard share" : "Atšaukti dalinimąsi",
"Update" : "Atnaujinti",
"Create" : "Sukurti",
"Create a new tag" : "Sukurti naują žymę",
"Status" : "Būsena",
"Title" : "Pavadinimas",
@@ -42,6 +51,8 @@ OC.L10N.register(
"Create new board" : "Sukurti naują sąrašą",
"New board title" : "Naujas sąrašo vardas",
"by" : " ",
"Undo file deletion" : "Atšaukti failo ištrynimą",
"Insert the file into the description" : "Įterpti failą į aprašą",
"Modified:" : "Keitimo laikas:",
"Created:" : "Sukūrimo laikas:",
"Assign users" : "Priskirti naudotojus",
@@ -49,9 +60,12 @@ OC.L10N.register(
"Click to set" : "Spustelėkite pakeitimams atlikti",
"Remove due date" : "Pašalinti terminą",
"Description" : "Aprašas",
"Attachments" : "Priedai",
"Saved" : "Įrašyta",
"Unsaved changes" : "Neįrašyti pakeitimai",
"Formatting help" : "Formatavimo pagalba",
"Upload attachment" : "Įkelti priedą",
"Insert attachment" : "Įterpti priedą",
"Add a card description…" : "Pridėti elemento apibūdinimą...",
"Shared boards" : "Bendrinami sąrašai",
"View more" : "Rodyti daugiau",

View File

@@ -6,6 +6,12 @@
"To review" : "Peržiūrėti",
"Action needed" : "Reikalingas veiksmas",
"Later" : "Vėliau",
"The file was uploaded" : "Failas buvo įkeltas",
"The file was only partially uploaded" : "Failas buvo tik dalinai įkeltas",
"No file was uploaded" : "Nebuvo įkeltas joks failas",
"Missing a temporary folder" : "Trūksta laikinojo aplanko",
"Could not write file to disk" : "Nepavyko įrašyti failą į diską",
"A PHP extension stopped the file upload" : "PHP plėtinys sustabdė failo įkėlimą",
"Deck" : "Užduočių saugykla",
"Add a new stack" : "Pridėti naują skiltį",
"Submit" : "Pateikti",
@@ -17,6 +23,7 @@
"Archive" : "Archyvuoti",
"Unarchive" : "Išskleisti",
"Enter a card title" : "Įveskite kortelės vardą",
"Add card" : "Pridėti kortelę",
"Close" : "Užverti",
"Sharing" : "Bendrinimas",
"Tags" : "Žymės",
@@ -27,6 +34,8 @@
"Edit" : "Taisyti",
"Manage" : "Redaguoti",
"Discard share" : "Atšaukti dalinimąsi",
"Update" : "Atnaujinti",
"Create" : "Sukurti",
"Create a new tag" : "Sukurti naują žymę",
"Status" : "Būsena",
"Title" : "Pavadinimas",
@@ -40,6 +49,8 @@
"Create new board" : "Sukurti naują sąrašą",
"New board title" : "Naujas sąrašo vardas",
"by" : " ",
"Undo file deletion" : "Atšaukti failo ištrynimą",
"Insert the file into the description" : "Įterpti failą į aprašą",
"Modified:" : "Keitimo laikas:",
"Created:" : "Sukūrimo laikas:",
"Assign users" : "Priskirti naudotojus",
@@ -47,9 +58,12 @@
"Click to set" : "Spustelėkite pakeitimams atlikti",
"Remove due date" : "Pašalinti terminą",
"Description" : "Aprašas",
"Attachments" : "Priedai",
"Saved" : "Įrašyta",
"Unsaved changes" : "Neįrašyti pakeitimai",
"Formatting help" : "Formatavimo pagalba",
"Upload attachment" : "Įkelti priedą",
"Insert attachment" : "Įterpti priedą",
"Add a card description…" : "Pridėti elemento apibūdinimą...",
"Shared boards" : "Bendrinami sąrašai",
"View more" : "Rodyti daugiau",

View File

@@ -6,10 +6,12 @@ OC.L10N.register(
"Remove user from card" : "Remover usuário do cartão",
"Hours" : "Horas",
"Minutes" : "Minutos",
"Maximum file size of {size} exceeded" : "Excedeu o tamanho máximo de arquivo de {size}",
"Are you sure you want to delete the stack with all of its data?" : "Quer realmente excluir a pilha com todos os seus dados?",
"The card \"%s\" on \"%s\" has reached its due date." : "O cartão \"%s\" em \"%s\" atingiu sua data de vencimento.",
"The board \"%s\" has been shared with you by %s." : "O quadro \"%s\" foi compartilhado com você por %s.",
"{user} has shared the board %s with you." : "{user} compartilhou o quadro %s com você.",
"No data was provided to create an attachment." : "Nenhum dado foi fornecido para criar um anexo.",
"Finished" : "Terminado",
"To review" : "Para revisão",
"Action needed" : "Ação necessária",
@@ -22,7 +24,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Falta uma pasta temporária",
"Could not write file to disk" : "Não foi possível escrever no disco",
"A PHP extension stopped the file upload" : "Uma extensão PHP parou o envio do arquivo",
"No file uploaded" : "Nenhum arquivo enviado",
"No file uploaded or file size exceeds maximum of %s" : "Nenhum arquivo enviado ou o tamanho excede o máximo de %s",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "Um projeto no estilo kanban e uma ferramenta de gerenciamento pessoal para Nextcloud",
"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- 🚀 Get your project organized" : "Deck é uma ferramenta de organização de estilo kanban destinada ao planejamento pessoal e organização do projeto para equipes integradas com o Nextcloud.\n\n\n- 📥 Adicione suas tarefas aos cartões e coloque-os em ordem\n- 📄 Anote notas adicionais no markdown\n- 🔖 Atribua rótulos para uma organização ainda melhor\n- 👥 Compartilhe com sua equipe, amigos ou familiares\n- 🚀 Faça seu projeto organizado",

View File

@@ -4,10 +4,12 @@
"Remove user from card" : "Remover usuário do cartão",
"Hours" : "Horas",
"Minutes" : "Minutos",
"Maximum file size of {size} exceeded" : "Excedeu o tamanho máximo de arquivo de {size}",
"Are you sure you want to delete the stack with all of its data?" : "Quer realmente excluir a pilha com todos os seus dados?",
"The card \"%s\" on \"%s\" has reached its due date." : "O cartão \"%s\" em \"%s\" atingiu sua data de vencimento.",
"The board \"%s\" has been shared with you by %s." : "O quadro \"%s\" foi compartilhado com você por %s.",
"{user} has shared the board %s with you." : "{user} compartilhou o quadro %s com você.",
"No data was provided to create an attachment." : "Nenhum dado foi fornecido para criar um anexo.",
"Finished" : "Terminado",
"To review" : "Para revisão",
"Action needed" : "Ação necessária",
@@ -20,7 +22,7 @@
"Missing a temporary folder" : "Falta uma pasta temporária",
"Could not write file to disk" : "Não foi possível escrever no disco",
"A PHP extension stopped the file upload" : "Uma extensão PHP parou o envio do arquivo",
"No file uploaded" : "Nenhum arquivo enviado",
"No file uploaded or file size exceeds maximum of %s" : "Nenhum arquivo enviado ou o tamanho excede o máximo de %s",
"Deck" : "Deck",
"A kanban style project and personal management tool for Nextcloud" : "Um projeto no estilo kanban e uma ferramenta de gerenciamento pessoal para Nextcloud",
"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- 🚀 Get your project organized" : "Deck é uma ferramenta de organização de estilo kanban destinada ao planejamento pessoal e organização do projeto para equipes integradas com o Nextcloud.\n\n\n- 📥 Adicione suas tarefas aos cartões e coloque-os em ordem\n- 📄 Anote notas adicionais no markdown\n- 🔖 Atribua rótulos para uma organização ainda melhor\n- 👥 Compartilhe com sua equipe, amigos ou familiares\n- 🚀 Faça seu projeto organizado",

View File

@@ -10,6 +10,7 @@ OC.L10N.register(
"The card \"%s\" on \"%s\" has reached its due date." : "Настал срок карточки «%s» в «%s» .",
"The board \"%s\" has been shared with you by %s." : "%s предоставил(а) Вам доступ к доске «%s».",
"{user} has shared the board %s with you." : "{user} предоставил(а) Вам доступ к доске «%s».",
"No data was provided to create an attachment." : "Никаких данных для создания вложения не было.",
"Finished" : "Завершено",
"To review" : "Просмотреть",
"Action needed" : "Требуется действие",
@@ -22,7 +23,7 @@ OC.L10N.register(
"Missing a temporary folder" : "Отсутствует временный каталог",
"Could not write file to disk" : "Невозможно записать файл на диск",
"A PHP extension stopped the file upload" : "Расширение PHP прервало загрузку файла",
"No file uploaded" : "Нет загруженных файлов",
"No file uploaded or file size exceeds maximum of %s" : "Файл не загружен или его размер превышает %s",
"Deck" : "Дека",
"A kanban style project and personal management tool for Nextcloud" : "Проект в стиле канбан и личный инструмент управления для Nextcloud",
"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- 🚀 Get your project organized" : "Deck - инструмент, предназначенный для личного планирования и организации проекта в стиле канбан для команд , интегрированных в Nextcloud.\n\n\n- 📥 Добавьте свои задачи в карты и разместите их в нужном порядке\n- 📄 Записывайте дополнительные примечания в Markdown-формате\n- 🔖 Назначьте ярлыки для еще лучшей организации\n- 👥 Поделитесь с вашей командой, друзьями или семьей\n- 🚀 Сделайте свой проект более организованным",

View File

@@ -8,6 +8,7 @@
"The card \"%s\" on \"%s\" has reached its due date." : "Настал срок карточки «%s» в «%s» .",
"The board \"%s\" has been shared with you by %s." : "%s предоставил(а) Вам доступ к доске «%s».",
"{user} has shared the board %s with you." : "{user} предоставил(а) Вам доступ к доске «%s».",
"No data was provided to create an attachment." : "Никаких данных для создания вложения не было.",
"Finished" : "Завершено",
"To review" : "Просмотреть",
"Action needed" : "Требуется действие",
@@ -20,7 +21,7 @@
"Missing a temporary folder" : "Отсутствует временный каталог",
"Could not write file to disk" : "Невозможно записать файл на диск",
"A PHP extension stopped the file upload" : "Расширение PHP прервало загрузку файла",
"No file uploaded" : "Нет загруженных файлов",
"No file uploaded or file size exceeds maximum of %s" : "Файл не загружен или его размер превышает %s",
"Deck" : "Дека",
"A kanban style project and personal management tool for Nextcloud" : "Проект в стиле канбан и личный инструмент управления для Nextcloud",
"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- 🚀 Get your project organized" : "Deck - инструмент, предназначенный для личного планирования и организации проекта в стиле канбан для команд , интегрированных в Nextcloud.\n\n\n- 📥 Добавьте свои задачи в карты и разместите их в нужном порядке\n- 📄 Записывайте дополнительные примечания в Markdown-формате\n- 🔖 Назначьте ярлыки для еще лучшей организации\n- 👥 Поделитесь с вашей командой, друзьями или семьей\n- 🚀 Сделайте свой проект более организованным",

View File

@@ -6,14 +6,25 @@ OC.L10N.register(
"Remove user from card" : "Уклони корисника са картице",
"Hours" : "Сати",
"Minutes" : "Минути",
"Maximum file size of {size} exceeded" : "Премашена максимална величина фајла од {size}",
"Are you sure you want to delete the stack with all of its data?" : "Да ли стварно желите да обришете ову гомилу са свим подацима на њој?",
"The card \"%s\" on \"%s\" has reached its due date." : "Картици \"%s\" на табли \"%s\" је истекао рок.",
"The board \"%s\" has been shared with you by %s." : "Таблу \"%s\" је поделио \"%s\" са Вама. ",
"{user} has shared the board %s with you." : "{user} је поделио таблу %s са Вама.",
"No data was provided to create an attachment." : "Нису дати подаци за креирање прилога.",
"Finished" : "Завршено",
"To review" : "Треба прегледати",
"Action needed" : "Потребна акција",
"Later" : "После",
"The file was uploaded" : "Фајл је отпремљен",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Фајл за отпремање премашује upload_max_filesize директиву у php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Фајл за отпремање премашује MAX_FILE_SIZE директиву наведену у HTML форми",
"The file was only partially uploaded" : "Фајл је парцијално отпремљен",
"No file was uploaded" : "Ниједан фајл није отпремљен",
"Missing a temporary folder" : "Недостаје привремена фасцикла",
"Could not write file to disk" : "Не могу да пишем на диск",
"A PHP extension stopped the file upload" : "PHP екстензија је зауставила отпремање фајла",
"No file uploaded or file size exceeds maximum of %s" : "Ниједан фајл није отпремљен или величина фајла премашује максимум од %s",
"Deck" : "Шпил",
"A kanban style project and personal management tool for Nextcloud" : "Канбан стил пројекта и лични менаџмент алат за Некстклауд",
"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- 🚀 Get your project organized" : "Deck је алатка канбан организационог стила намењена за лично планирање и организацију пројеката за тимове интегрисане са Некстклаудом.\n\n\n- 📥 Додајте Ваше задатке на картице и распоређујте их како желите\n- 📄 Допишите додатне белешке markdown синтаксом\n- 🔖 Додељујте ознаке за још боље организовање\n- 👥 Делите са Вашим тимом, пријатељима или породицом\n- 🚀 Организујте Ваше пројекте",
@@ -24,6 +35,7 @@ OC.L10N.register(
"Board details" : "Детаљи табле",
"All Boards" : "Све табле",
"Archived boards" : "Архивиране табле",
"Drop your files here to upload it to the card" : "Превуците Ваше фајлове овде да их отпремите у картицу",
"Archive" : "Архива",
"Unarchive" : "Врати из архиве",
"Enter a card title" : "Унесите назив картице",
@@ -54,7 +66,11 @@ OC.L10N.register(
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Врати брисање табле - у супротном ће табла бити обрисана за време следећег крон посла.",
"Create new board" : "Направи нову таблу",
"New board title" : "Назив нове табле",
"Select an attachment" : "Одаберите прилог",
"by" : "од",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Поништи брисање фајла - у супротном, фајл ће бити обрисан на следеће покретање крон посла.",
"Undo file deletion" : "Поништи брисање фајла",
"Insert the file into the description" : "Убаци фајл у опис",
"Modified:" : "Измењена:",
"Created:" : "Направљена:",
"Choose a tag" : "Одаберите ознаку",
@@ -67,9 +83,12 @@ OC.L10N.register(
"Click to set" : "Кликните да поставите",
"Remove due date" : "Уклони рок",
"Description" : "Опис",
"Attachments" : "Прилози",
"Saved" : "Сачувано",
"Unsaved changes" : "Несачуване измене",
"Formatting help" : "Помоћ око форматирања",
"Upload attachment" : "Отпреми прилог",
"Insert attachment" : "Убаци прилог",
"Add a card description…" : "Додај опис картице…",
"Shared boards" : "Дељене табле",
"View more" : "Види још",

View File

@@ -4,14 +4,25 @@
"Remove user from card" : "Уклони корисника са картице",
"Hours" : "Сати",
"Minutes" : "Минути",
"Maximum file size of {size} exceeded" : "Премашена максимална величина фајла од {size}",
"Are you sure you want to delete the stack with all of its data?" : "Да ли стварно желите да обришете ову гомилу са свим подацима на њој?",
"The card \"%s\" on \"%s\" has reached its due date." : "Картици \"%s\" на табли \"%s\" је истекао рок.",
"The board \"%s\" has been shared with you by %s." : "Таблу \"%s\" је поделио \"%s\" са Вама. ",
"{user} has shared the board %s with you." : "{user} је поделио таблу %s са Вама.",
"No data was provided to create an attachment." : "Нису дати подаци за креирање прилога.",
"Finished" : "Завршено",
"To review" : "Треба прегледати",
"Action needed" : "Потребна акција",
"Later" : "После",
"The file was uploaded" : "Фајл је отпремљен",
"The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Фајл за отпремање премашује upload_max_filesize директиву у php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Фајл за отпремање премашује MAX_FILE_SIZE директиву наведену у HTML форми",
"The file was only partially uploaded" : "Фајл је парцијално отпремљен",
"No file was uploaded" : "Ниједан фајл није отпремљен",
"Missing a temporary folder" : "Недостаје привремена фасцикла",
"Could not write file to disk" : "Не могу да пишем на диск",
"A PHP extension stopped the file upload" : "PHP екстензија је зауставила отпремање фајла",
"No file uploaded or file size exceeds maximum of %s" : "Ниједан фајл није отпремљен или величина фајла премашује максимум од %s",
"Deck" : "Шпил",
"A kanban style project and personal management tool for Nextcloud" : "Канбан стил пројекта и лични менаџмент алат за Некстклауд",
"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- 🚀 Get your project organized" : "Deck је алатка канбан организационог стила намењена за лично планирање и организацију пројеката за тимове интегрисане са Некстклаудом.\n\n\n- 📥 Додајте Ваше задатке на картице и распоређујте их како желите\n- 📄 Допишите додатне белешке markdown синтаксом\n- 🔖 Додељујте ознаке за још боље организовање\n- 👥 Делите са Вашим тимом, пријатељима или породицом\n- 🚀 Организујте Ваше пројекте",
@@ -22,6 +33,7 @@
"Board details" : "Детаљи табле",
"All Boards" : "Све табле",
"Archived boards" : "Архивиране табле",
"Drop your files here to upload it to the card" : "Превуците Ваше фајлове овде да их отпремите у картицу",
"Archive" : "Архива",
"Unarchive" : "Врати из архиве",
"Enter a card title" : "Унесите назив картице",
@@ -52,7 +64,11 @@
"Undo board deletion - Otherwise the board will be deleted during the next cronjob run." : "Врати брисање табле - у супротном ће табла бити обрисана за време следећег крон посла.",
"Create new board" : "Направи нову таблу",
"New board title" : "Назив нове табле",
"Select an attachment" : "Одаберите прилог",
"by" : "од",
"Undo file deletion - Otherwise the file will be deleted during the next cronjob run." : "Поништи брисање фајла - у супротном, фајл ће бити обрисан на следеће покретање крон посла.",
"Undo file deletion" : "Поништи брисање фајла",
"Insert the file into the description" : "Убаци фајл у опис",
"Modified:" : "Измењена:",
"Created:" : "Направљена:",
"Choose a tag" : "Одаберите ознаку",
@@ -65,9 +81,12 @@
"Click to set" : "Кликните да поставите",
"Remove due date" : "Уклони рок",
"Description" : "Опис",
"Attachments" : "Прилози",
"Saved" : "Сачувано",
"Unsaved changes" : "Несачуване измене",
"Formatting help" : "Помоћ око форматирања",
"Upload attachment" : "Отпреми прилог",
"Insert attachment" : "Убаци прилог",
"Add a card description…" : "Додај опис картице…",
"Shared boards" : "Дељене табле",
"View more" : "Види још",

View File

@@ -22,7 +22,6 @@ OC.L10N.register(
"Missing a temporary folder" : "Geçici bir klasör eksik",
"Could not write file to disk" : "Dosya diske yazılamadı",
"A PHP extension stopped the file upload" : "Bir PHP eklentisi dosyanın yüklenmesini engelledi",
"No file uploaded" : "Herhangi bir dosya yüklenmemiş",
"Deck" : "Tahta",
"A kanban style project and personal management tool for Nextcloud" : "Nextcloud için Kanban tarzında bir proje ve kişisel yönetim uygulaması",
"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- 🚀 Get your project organized" : "Deste, Nextcloud ile bütünleştirilmiş takımlar için Kanban tarzında bir kişisel planlama ve proje yönetimi uygulamasıdır.\n\n\n- 📥 Görevleri kartlara ekleyerek sıralayabilirsiniz\n- 📄 Markdown ile biçimlendirilmiş notlar ekleyebilirsiniz\n- 🔖 Daha iyi düzenleme için etiketler atayabilirsiniz\n- 👥 Takımınız, arkadaşlarınız ya da aileniz ile paylaşabilirsiniz\n- 🚀 Projelerinizi düzenli tutarak izleyebilirsiniz",

View File

@@ -20,7 +20,6 @@
"Missing a temporary folder" : "Geçici bir klasör eksik",
"Could not write file to disk" : "Dosya diske yazılamadı",
"A PHP extension stopped the file upload" : "Bir PHP eklentisi dosyanın yüklenmesini engelledi",
"No file uploaded" : "Herhangi bir dosya yüklenmemiş",
"Deck" : "Tahta",
"A kanban style project and personal management tool for Nextcloud" : "Nextcloud için Kanban tarzında bir proje ve kişisel yönetim uygulaması",
"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- 🚀 Get your project organized" : "Deste, Nextcloud ile bütünleştirilmiş takımlar için Kanban tarzında bir kişisel planlama ve proje yönetimi uygulamasıdır.\n\n\n- 📥 Görevleri kartlara ekleyerek sıralayabilirsiniz\n- 📄 Markdown ile biçimlendirilmiş notlar ekleyebilirsiniz\n- 🔖 Daha iyi düzenleme için etiketler atayabilirsiniz\n- 👥 Takımınız, arkadaşlarınız ya da aileniz ile paylaşabilirsiniz\n- 🚀 Projelerinizi düzenli tutarak izleyebilirsiniz",

119
lib/Command/UserExport.php Normal file
View File

@@ -0,0 +1,119 @@
<?php
/**
* @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Deck\Command;
use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\StackMapper;
use OCA\Deck\Service\BoardService;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Db\MultipleObjectsReturnedException;
use OCP\IGroupManager;
use OCP\IUserManager;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class UserExport extends Command {
protected $boardService;
protected $cardMapper;
private $userManager;
private $groupManager;
private $assignedUsersMapper;
public function __construct(BoardMapper $boardMapper,
BoardService $boardService,
StackMapper $stackMapper,
CardMapper $cardMapper,
AssignedUsersMapper $assignedUsersMapper,
IUserManager $userManager,
IGroupManager $groupManager) {
parent::__construct();
$this->cardMapper = $cardMapper;
$this->boardService = $boardService;
$this->stackMapper = $stackMapper;
$this->assignedUsersMapper = $assignedUsersMapper;
$this->boardMapper = $boardMapper;
$this->userManager = $userManager;
$this->groupManager = $groupManager;
}
protected function configure() {
$this
->setName('deck:export')
->setDescription('Export a JSON dump of user data')
->addArgument(
'user-id',
InputArgument::REQUIRED,
'User ID of the user'
)
;
}
/**
* @param InputInterface $input
* @param OutputInterface $output
* @return void
* @throws DoesNotExistException
* @throws MultipleObjectsReturnedException
* @throws \ReflectionException
*/
protected function execute(InputInterface $input, OutputInterface $output) {
$userId = $input->getArgument('user-id');
$groups = $this->groupManager->getUserGroupIds(
$this->userManager->get($userId)
);
$boards = $this->boardService->findAll([
'user' => $userId,
'groups' => $groups
]);
$data = [];
foreach ($boards as $board) {
$fullBoard = $this->boardMapper->find($board->getId(), true, true);
$data[$board->getId()] = (array)$fullBoard->jsonSerialize();
$stacks = $this->stackMapper->findAll($board->getId());
foreach ($stacks as $stack) {
$data[$board->getId()]['stacks'][] = (array)$stack->jsonSerialize();
$cards = $this->cardMapper->findAllByStack($stack->getId());
foreach ($cards as $card) {
$fullCard = $this->cardMapper->find($card->getId());
$assignedUsers = $this->assignedUsersMapper->find($card->getId());
$fullCard->setAssignedUsers($assignedUsers);
$data[$board->getId()]['stacks'][$stack->getId()]['cards'][] = (array)$fullCard->jsonSerialize();
}
}
}
$output->writeln(json_encode($data, JSON_PRETTY_PRINT));
}
}

View File

@@ -46,6 +46,7 @@ class PageController extends Controller {
public function index() {
$params = [
'user' => $this->userId,
'maxUploadSize' => \OCP\Util::uploadLimit(),
];
return new TemplateResponse('deck', 'main', $params);
}

View File

@@ -30,7 +30,7 @@ Util::addStyle('deck', 'style');
Util::addScript('deck', 'build/deck');
?>
<div id="app" class="app-deck" data-ng-app="Deck" ng-controller="AppController" ng-cloak>
<div id="app" class="app-deck" data-ng-app="Deck" ng-controller="AppController" ng-cloak config="<?php p(json_encode($_)); ?>">
<div id="app-navigation" data-ng-controller="ListController" ng-init="initSidebar()">
<?php print_unescaped($this->inc('part.navigation')); ?>

View File

@@ -86,7 +86,7 @@
</div>
<div class="colorselect" ng-controller="ColorPickerController">
<div class="color" ng-repeat="c in defaultColors" ng-style="{'background-color':'#{{ c }}'}" ng-click="label=setColor(label,c);" ng-class="{'selected': (c == label.color) }"><br /></div>
<label class="colorselect-label color" ng-style="getCustomBackground(label.hashedColor)" ng-init="label.hashedColor='#' + label.color">
<label class="colorselect-label{{ label.color | iconWhiteFilter }} color" ng-style="getCustomBackground(label.hashedColor)" ng-init="label.hashedColor='#' + label.color">
<input class="color" type="color" ng-model="label.hashedColor" value="#{{label.color}}" ng-change="label=setHashedColor(label)"/>
</label>
</div>
@@ -104,7 +104,7 @@
</div>
<div class="colorselect" ng-controller="ColorPickerController">
<div class="color" ng-repeat="c in defaultColors" ng-style="{'background-color':'#{{ c }}'}" ng-click="newLabel=setColor(newLabel,c)" ng-class="{'selected': (c == newLabel.color), 'dark': (newBoard.color | textColorFilter) === '#ffffff' }"><br /></div>
<label class="colorselect-label color" ng-style="getCustomBackground(newLabel.hashedColor)" ng-init="newLabel.hashedColor='#' + newLabel.color">
<label class="colorselect-label{{ newLabel.color | iconWhiteFilter }} color" ng-style="getCustomBackground(newLabel.hashedColor)" ng-init="newLabel.hashedColor='#' + newLabel.color">
<input class="color" type="color" ng-model="newLabel.hashedColor" value="#{{newLabel.color}}" ng-change="newLabel=setHashedColor(newLabel)"/>
</label>
</div>

View File

@@ -35,7 +35,7 @@
<input class="edit ng-valid ng-empty" type="text" autofocus-on-insert ng-model="b.title" maxlength="100" ng-model-options="{ debounce: 250 }">
<div class="colorselect" ng-controller="ColorPickerController">
<div class="color" ng-repeat="c in ::colors" ng-style="{'background-color':'#{{ c }}'}" ng-click="b=setColor(b,c)" ng-class="{'selected': (c == b.color) }"></div>
<label class="colorselect-label color" ng-style="getCustomBackground(b.hashedColor)" ng-init="b.hashedColor='#' + b.color">
<label class="colorselect-label{{ b.color | iconWhiteFilter }} color" ng-style="getCustomBackground(b.hashedColor)" ng-init="b.hashedColor='#' + b.color">
<input class="color" type="color" ng-model="b.hashedColor" value="#{{b.color}}" ng-change="b=setHashedColor(b)"/>
</label>
</div>
@@ -107,7 +107,7 @@
autofocus-on-insert ng-model="newBoard.title" maxlength="100" ng-model-options="{ debounce: 250 }">
<div class="colorselect" ng-controller="ColorPickerController">
<div class="color" ng-repeat="c in ::colors" ng-style="{'background-color':'#{{ c }}'}" ng-click="selectColor(c);b=setColor(b,c);"ng-class="{'selected': (c == newBoard.color), 'dark': (newBoard.color | textColorFilter) === '#ffffff' }"></div>
<label class="colorselect-label color" ng-style="getCustomBackground(newBoard.hashedColor)" ng-init="newBoard.hashedColor='#' + newBoard.color">
<label class="colorselect-label{{ newBoard.color | iconWhiteFilter }} color" ng-style="getCustomBackground(newBoard.hashedColor)" ng-init="newBoard.hashedColor='#' + newBoard.color">
<input class="color" type="color" ng-model="newBoard.hashedColor" value="#{{newBoard.color}}" ng-change="newBoard=setHashedColor(newBoard)"/>
</label>
</div>

View File

@@ -2,6 +2,19 @@
<div class="attachment-list" ng-class="{selector: $ctrl.isFileSelector}">
<h3 class="attachment-selector" ng-if="$ctrl.isFileSelector"><?php p($l->t('Select an attachment')); ?> <a class="icon-close" ng-click="$ctrl.abort()"></a></h3>
<ul>
<li class="attachment"
ng-repeat="attachment in $ctrl.fileservice.getProgressItemsForCard($ctrl.cardservice.getCurrent().id)">
<a class="fileicon icon-file"></a>
<div class="details">
<div class="filename">
<span class="basename">{{ attachment.file.name }}</span>
</div>
<progress value="{{ attachment.progress }}" max="100"></progress>
</div>
<button class="icon icon-close button-inline" ng-click="attachment.cancel()">
<span class="hidden-visually"><?php p($l->t('Cancel upload')); ?></span>
</button>
</li>
<li class="attachment"
ng-repeat="attachment in $ctrl.cardservice.getCurrent().attachments | filter: {type: 'deck_file'} | orderBy: ['deletedAt', '-lastModified']"
ng-class="{deleted: attachment.deletedAt > 0, selector: $ctrl.isFileSelector}"

View File

@@ -40,7 +40,7 @@
</form>
<div class="colorselect" ng-controller="ColorPickerController">
<div class="color" ng-repeat="c in ::colors" ng-style="{'background-color':'#{{ c }}'}" ng-click="b=setColor(b,c)" ng-class="{'selected': (c == b.color) }"></div>
<label class="colorselect-label color" ng-style="getCustomBackground(b.hashedColor)" ng-init="b.hashedColor='#' + b.color">
<label class="colorselect-label{{ b.color | iconWhiteFilter }} color" ng-style="getCustomBackground(b.hashedColor)" ng-init="b.hashedColor='#' + b.color">
<input class="color" type="color" ng-model="b.hashedColor" value="#{{b.color}}" ng-change="b=setHashedColor(b)"/>
</label>
</div>
@@ -58,7 +58,7 @@
</form>
<div class="colorselect" ng-controller="ColorPickerController">
<div class="color" ng-repeat="c in ::colors" ng-style="{'background-color':'#{{ c }}'}" ng-click="selectColor(c);newBoard=setColor(newBoard,c)" ng-class="{'selected': (c == newBoard.color), 'dark': (newBoard.color | textColorFilter) === '#ffffff' }"><br /></div>
<label class="colorselect-label color" ng-style="getCustomBackground(newBoard.hashedColor)" ng-init="newBoard.hashedColor='#' + newBoard.color">
<label class="colorselect-label{{ newBoard.color | iconWhiteFilter }} color" ng-style="getCustomBackground(newBoard.hashedColor)" ng-init="newBoard.hashedColor='#' + newBoard.color">
<input class="color" type="color" ng-model="newBoard.hashedColor" value="#{{newBoard.color}}" ng-change="newBoard=setHashedColor(newBoard)"/>
</label>
</div>

View File

@@ -0,0 +1,141 @@
<?php
/**
* @copyright Copyright (c) 2018 Julius Härtl <jus@bitgrid.net>
*
* @author Julius Härtl <jus@bitgrid.net>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
namespace OCA\Deck\Command;
use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\Attachment;
use OCA\Deck\Db\AttachmentMapper;
use OCA\Deck\Db\Board;
use OCA\Deck\Db\BoardMapper;
use OCA\Deck\Db\Card;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Db\Stack;
use OCA\Deck\Db\StackMapper;
use OCA\Deck\InvalidAttachmentType;
use OCA\Deck\Service\AttachmentService;
use OCA\Deck\Service\BoardService;
use OCA\Deck\Service\IAttachmentService;
use OCP\IGroupManager;
use OCP\IUser;
use OCP\IUserManager;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
class UserExportTest extends \Test\TestCase {
protected $boardMapper;
protected $boardService;
protected $stackMapper;
protected $cardMapper;
protected $assignedUserMapper;
protected $userManager;
protected $groupManager;
private $userExport;
public function setUp() {
parent::setUp();
$this->boardMapper = $this->createMock(BoardMapper::class);
$this->boardService= $this->createMock(BoardService::class);
$this->stackMapper= $this->createMock(StackMapper::class);
$this->cardMapper= $this->createMock(CardMapper::class);
$this->assignedUserMapper= $this->createMock(AssignedUsersMapper::class);
$this->userManager = $this->createMock(IUserManager::class);
$this->groupManager = $this->createMock(IGroupManager::class);
$this->userExport = new UserExport($this->boardMapper, $this->boardService, $this->stackMapper, $this->cardMapper, $this->assignedUserMapper, $this->userManager, $this->groupManager);
}
public function getBoard($id) {
$board = new Board();
$board->setId($id);
$board->setTitle('Board ' . $id);
return $board;
}
public function getStack($id) {
$stack = new Stack();
$stack->setId($id);
$stack->setTitle('Stack ' . $id);
return $stack;
}
public function getCard($id) {
$card = new Card();
$card->setId($id);
$card->setTitle('Card ' . $id);
return $card;
}
public function testExecute() {
$input = $this->createMock(InputInterface::class);
$input->expects($this->once())->method('getArgument')->with('user-id')->willReturn('admin');
$output = $this->createMock(OutputInterface::class);
$user = $this->createMock(IUser::class);
$this->userManager->expects($this->once())
->method('get')
->with('admin')
->willReturn($user);
$groups = [];
$this->groupManager->expects($this->once())
->method('getUserGroupIds')
->with($user)
->willReturn($groups);
$boards = [
$this->getBoard(1),
$this->getBoard(2),
];
$this->boardService->expects($this->once())
->method('findAll')
->with([
'user' => 'admin',
'groups' => $groups
])
->willReturn($boards);
$this->boardMapper->expects($this->exactly(count($boards)))
->method('find')
->willReturn($boards[0]);
$stacks = [
$this->getStack(1),
$this->getStack(2)
];
$this->stackMapper->expects($this->exactly(count($boards)))
->method('findAll')
->willReturn($stacks);
$cards = [
$this->getCard(1),
$this->getCard(2),
$this->getCard(3),
];
$this->cardMapper->expects($this->exactly(count($boards)*count($stacks)))
->method('findAllByStack')
->willReturn($cards);
$this->cardMapper->expects($this->exactly(count($boards)*count($stacks)*count($cards)))
->method('find')
->willReturn($cards[0]);
$this->assignedUserMapper->expects($this->exactly(count($boards)*count($stacks)*count($cards)))
->method('find')
->willReturn([]);
$result = $this->invokePrivate($this->userExport, 'execute', [$input, $output]);
}
}