Compare commits

...
171 Commits
Author SHA1 Message Date
Lauri Ojansivu 3d0e91f80e v4.23 2020-08-13 17:44:43 +03:00
Lauri Ojansivu 533857c961 Update ChangeLog. 2020-08-13 17:39:05 +03:00
Lauri Ojansivu 83bc176ebf Update translations. 2020-08-13 17:35:46 +03:00
Lauri Ojansivu 910f0cecbe Update vulnerable dependency elliptic that is dependency of meteor-node-stubs that is dependency of Wekan.
Thanks to filipenevola, neeldug, L25inux and xet7.

Closes #3234
2020-08-13 17:32:27 +03:00
Lauri Ojansivu 10f0c49007 Update translations. 2020-08-11 17:47:21 +03:00
Lauri Ojansivu ba2911a645 Update translations. 2020-08-10 19:12:26 +03:00
Lauri Ojansivu 07860bd4de Update translations. 2020-08-10 13:33:38 +03:00
Lauri Ojansivu 42bd03e333 Remove old code from rebuild-wekan.sh 2020-08-08 21:25:55 +03:00
Lauri Ojansivu 97f525fdbc Update dependencies. 2020-08-08 21:25:23 +03:00
Lauri Ojansivu 1050e04c10 Update translations. 2020-08-03 11:49:33 +03:00
Lauri Ojansivu 1534b22315 v4.22 2020-07-23 17:43:27 +03:00
Lauri Ojansivu bcec728c2e Update translations. 2020-07-23 17:36:05 +03:00
Lauri Ojansivu 6f503ca818 Upgrade to Node 12.18.3
Thanks to Node developers !
2020-07-23 17:32:08 +03:00
Lauri Ojansivu 1b927a9d3a Update ChangeLog. 2020-07-23 17:22:41 +03:00
Lauri Ojansivu 045b8a84a2 Hide CSV export until it's fixed in EdgeHTML compatible way.
Thanks to xet7 !
2020-07-23 17:16:02 +03:00
Lauri Ojansivu 1624fc82f7 Exports now work at #3173 at least for small boards. TODO: Fix EdgeHTML to work, before I can release this.
Thanks to xet7 !
2020-07-23 13:36:39 +03:00
Lauri Ojansivu 42d8773e36 Revert xss to previous compatible version.
Thanks to xet7 !
2020-07-23 12:32:57 +03:00
Lauri Ojansivu 15dff73b94 Update ChangeLog. 2020-07-23 11:53:38 +03:00
Lauri Ojansivu ec1d8f275f Fix detecting current IP address on rebuild-wekan.sh
Thanks to xet7 !
2020-07-23 11:47:37 +03:00
Lauri Ojansivu 68391a943b Try to fix Snap. TODO: Sometime migrate from Caddy v1 to Caddy v2.
Thanks to xet7 !
2020-07-22 14:45:03 +03:00
Lauri Ojansivu 9c48cc9ec0 v4.21 2020-07-21 22:06:09 +03:00
Lauri Ojansivu 41c06c1374 Update ChangeLog. 2020-07-21 21:20:11 +03:00
Lauri Ojansivu 2c6841210c Update translations. 2020-07-21 21:13:43 +03:00
Lauri Ojansivu eba8fb4c9c Merge pull request #3215 from gvespignani70/develop
changed edit_card and get_card_by_customfields
2020-07-21 21:03:00 +03:00
Unknown 95522ebcd9 changed edit_card and get_card_by_customfields
There was a bug in edit_card API: If I call API to edit listid and some fields It modifies only the listid. In addiction I've modified get_card_by_customfield to return full documents.
2020-07-21 17:36:46 +02:00
Unknown 8bf13f43e8 Merge remote-tracking branch 'myorigin/master' into develop 2020-07-21 16:13:56 +02:00
Unknown ca8f2a70a4 Merge remote-tracking branch 'origin/master' 2020-07-21 16:11:51 +02:00
Lauri Ojansivu f6e9f5a5e8 Fix typo. 2020-07-20 00:54:33 +03:00
Lauri Ojansivu be6d1044a0 v4.20 2020-07-20 00:21:03 +03:00
Lauri Ojansivu 52938b2f1c Update ChangeLog. 2020-07-20 00:16:23 +03:00
Lauri Ojansivu 116372e11e Update dependencies, part 2.
Thanks to developers of dependencies and xet7 !
2020-07-20 00:13:39 +03:00
Lauri Ojansivu 14cdb5bdf1 Update ChangeLog. 2020-07-19 23:13:22 +03:00
Lauri Ojansivu de28bf8569 Add missing Wekan logo sizes for PWAs and Apps.
Thanks to xet7 !
2020-07-19 23:11:00 +03:00
Lauri Ojansivu 419615bed4 Update dependencies.
Thanks to developers of dependencies and xet7 !
2020-07-19 23:07:17 +03:00
Lauri Ojansivu 3ee9b13b3b Update ChangeLog. 2020-07-19 22:47:43 +03:00
Lauri Ojansivu 0725ce3fb1 Update translations. 2020-07-19 22:44:32 +03:00
Lauri Ojansivu eb7623e218 Merge pull request #3214 from NicoP-S/master
Change slug on card rename
2020-07-19 22:35:25 +03:00
Nico 19acd7861d Change slug on card rename 2020-07-19 19:57:23 +02:00
Lauri Ojansivu 282f0f91fe v4.19 2020-07-18 10:28:52 +03:00
Lauri Ojansivu b51094d5cd Update ChangeLog. 2020-07-18 10:16:03 +03:00
Lauri Ojansivu b9a4b0b51d Add support for EdgeHTML browser (Microsoft Legacy Edge, not based on Chromium) by removing incompatible csv-stringify package.
CSV export will be fixed later.

Thanks to xet7 !

Closes #3125
2020-07-18 10:08:59 +03:00
Lauri Ojansivu 1a49d25c90 Update translations. 2020-07-18 10:01:51 +03:00
Lauri Ojansivu f57ed2990f Update dependencies. 2020-07-18 09:54:37 +03:00
Lauri Ojansivu 87412ceb55 Merge branch 'master' of github.com:wekan/wekan 2020-07-18 09:52:08 +03:00
Lauri Ojansivu 87cb4598f7 Update dependencies.
Thanks to developers of dependencies and xet7 !
2020-07-18 09:51:27 +03:00
Lauri Ojansivu b35b9d8aa2 Merge pull request #3211 from Robert-Lebedeu/master
Checklist Item PUT API: boolean cast on isFinished
2020-07-18 09:51:10 +03:00
Lauri Ojansivu 6646d48ccb Merge pull request #3212 from wekan/dependabot/npm_and_yarn/lodash-4.17.19
Bump lodash from 4.17.15 to 4.17.19
2020-07-18 09:48:32 +03:00
dependabot[bot] 23ee93ca3d Bump lodash from 4.17.15 to 4.17.19
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-18 04:28:59 +00:00
Robert Lebedeu 0911511d0c Checklist Item PUT API: boolean cast on isFinished 2020-07-17 16:24:27 +02:00
Lauri Ojansivu b7562a7085 v4.18 2020-07-10 19:28:43 +03:00
Lauri Ojansivu 16a793e672 Update ChangeLog. 2020-07-10 19:14:47 +03:00
Lauri Ojansivu 6e4407ed9c Upgrade to Node 12.18.2.
Thanks to Node developers and xet7 !
2020-07-10 19:11:46 +03:00
Lauri Ojansivu 05cd1247ab Update dependencies. 2020-07-10 19:04:46 +03:00
Lauri Ojansivu af240450d6 Update ChangeLog. 2020-07-10 19:01:51 +03:00
Lauri Ojansivu ba24c4e40c All logged in users are now allowed to reorder boards by dragging at All Boards page and Public Boards page.
Thanks to xet7 !

Fixes #3147
2020-07-10 18:56:26 +03:00
Lauri Ojansivu 2cbd7d83f9 Update ChangeLog. 2020-07-10 16:08:31 +03:00
Lauri Ojansivu 892008563b Update translations. 2020-07-10 16:08:03 +03:00
Lauri Ojansivu c7a40784e7 Merge pull request #3206 from salleman33/patch-2
Update users.js
2020-07-10 14:10:45 +03:00
Allemand c5e0832e00 Update users.js
issue #3099 : we have to delete the existing user, Account Service create it again
2020-07-10 10:06:39 +02:00
Lauri Ojansivu eb4219504d Update ChangeLog. 2020-06-29 06:15:08 -04:00
Lauri Ojansivu a5e5b44330 Merge pull request #3197 from Lua00808/fix-typo
Fix typo.
2020-06-29 06:11:47 -04:00
Lua00808 ee6852f8ea Fix typo. 2020-06-29 14:05:01 +09:00
Lauri Ojansivu 2575552e11 Update ChangeLog. 2020-06-28 06:44:56 -04:00
Lauri Ojansivu a77cf56fbd Fix running meteor for dev in rebuild-wekan.sh
Thanks to xet7 !
2020-06-28 06:42:05 -04:00
Lauri Ojansivu 07dfe33ed8 Merge branch 'master' of github.com:wekan/wekan 2020-06-28 05:55:45 -04:00
Lauri Ojansivu c8b21b2e17 Update translations. 2020-06-28 05:55:12 -04:00
Lauri Ojansivu 0be1c00fcc Fix start-wekan.bat
Thanks to xet7 !
2020-06-25 22:08:57 +03:00
Lauri Ojansivu 20edac091a Update translations. 2020-06-24 10:02:05 -04:00
Lauri Ojansivu 311c0d23a4 Add meteor ens3 Ethernet interface to rebuild-wekan.sh
Thanks to xet7 !
2020-06-24 10:00:53 -04:00
Lauri Ojansivu 032099cfbe v4.17 2020-06-18 02:33:01 +03:00
Lauri Ojansivu cd97cca7b8 Update ChangeLog. 2020-06-18 02:23:48 +03:00
Lauri Ojansivu 3f0fddf448 Merge branch 'marc1006-mobile_fix' 2020-06-18 02:18:58 +03:00
Lauri Ojansivu f1e103b082 Merge branch 'mobile_fix' of https://github.com/marc1006/wekan into marc1006-mobile_fix 2020-06-18 02:16:35 +03:00
Lauri Ojansivu afe00d02cd Add back checks about can user export CSV/TSV.
Thanks to marc1006 and xet7 !

Related #3173
2020-06-18 02:13:19 +03:00
Marc Hartmayer e21c078521 Fix activities view on mobile devices
Turns out that the sidebar is not available on mobile device therefore add
guards for this for now. This needs further investigation.
2020-06-18 01:07:56 +02:00
Lauri Ojansivu 5eb3784527 Revert users changes that were made at Wekan v4.16.
Thanks to xet7 !
2020-06-18 02:00:51 +03:00
Lauri Ojansivu 0ff1e63a5d v4.16 2020-06-17 21:59:54 +03:00
Lauri Ojansivu b11ae567c9 Upgrade to Node 12.18.1
Thanks to Node developers and xet7 !
2020-06-17 21:49:49 +03:00
Lauri Ojansivu e41256f935 Update ChangeLog. 2020-06-17 21:39:34 +03:00
Lauri Ojansivu b00db983c8 Try to prevent errors on CSV/TSV export.
Thanks to xet7 !

Related #3173
2020-06-17 21:37:01 +03:00
Lauri Ojansivu 3e4a8bca36 Update ChangeLog. 2020-06-17 20:31:01 +03:00
Lauri Ojansivu 54b4682258 Update translations. 2020-06-17 20:30:38 +03:00
Lauri Ojansivu bda49ed609 Add find-replace.sh script. 2020-06-17 20:28:22 +03:00
Lauri Ojansivu 39be9aa58d Update ChangeLog. 2020-06-17 20:25:22 +03:00
Lauri Ojansivu f245b6b7fa Update users.js etc with global search replace, to try to fix selecting correct user.
Thanks to xet7 !
2020-06-17 20:21:44 +03:00
Lauri Ojansivu ad87f9ff4e Merge pull request #3180 from salleman33/patch-1
Update users.js
2020-06-17 20:11:20 +03:00
Lauri Ojansivu 40abff4c1e Update ChangeLog. 2020-06-17 20:06:18 +03:00
Lauri Ojansivu 51ad89c3af Merge branch 'bentiss-fix-docs' 2020-06-17 20:02:28 +03:00
Allemand 768412ba7c remove useless comments 2020-06-17 19:00:40 +02:00
Allemand 670b964e6b update comments 2020-06-17 18:50:44 +02:00
Allemand f6c377eb9f update onCreateUser for oidc
correct bug : remove the wrong user !
2020-06-17 18:44:12 +02:00
Allemand 6d063a4f64 Update users.js
change method to find existing user
2020-06-17 18:07:22 +02:00
Benjamin Tissoires 207be3a363 cards: fix JSDoc
There was one missing comma, and the return type was then invalid
2020-06-17 05:40:38 +02:00
Benjamin Tissoires e1ffe943c8 openapi: also consider Object type as valid
Not sure if this will end up in a correct openapi file, but the docs
are correctly generated, so... meh.
2020-06-17 05:40:38 +02:00
Benjamin Tissoires 431d884e83 openapi: fix jsdoc/operation matching
The script was considering that the operation
associated to a jsdoc was declared on the line
just after the end of the jsdoc.

Turns out that adding new lines makes the code
clearer, but the python script was then ignoring
some jsdocs.

Change the behaviour to consider that the jsdoc
associated with an operation is the last one
declared after the end of the previous operation.

Fixes #3169
2020-06-17 05:15:39 +02:00
Lauri Ojansivu 983714cd72 v4.15 2020-06-16 20:40:12 +03:00
Lauri Ojansivu e6629779f7 Fix lint errors. 2020-06-16 20:34:28 +03:00
Lauri Ojansivu f1587753cb Fix lint errors. 2020-06-16 20:30:15 +03:00
Lauri Ojansivu a6d4f445fb v4.14 2020-06-16 20:08:20 +03:00
Lauri Ojansivu 8f34cdc279 Update dependencies. 2020-06-16 20:02:39 +03:00
Lauri Ojansivu 71cbac358b Update ChangeLog. 2020-06-16 19:59:33 +03:00
Lauri Ojansivu 3b2b108744 Fix: Unable to delete a custom field in a board.
Thanks to xet7 !

Fixes #2605
2020-06-16 19:55:56 +03:00
Lauri Ojansivu 100e2d4696 Update translations. 2020-06-16 18:17:18 +03:00
Lauri Ojansivu d42c4fb4f6 Update ChangeLog. 2020-06-16 18:14:35 +03:00
Lauri Ojansivu ed3e20dce5 Merge pull request #3174 from hgustafsson/master
Alignment and spacing of minicard labels
2020-06-16 18:13:37 +03:00
Lauri Ojansivu 82b0bd9ddb Merge pull request #3172 from marc1006/margin_fix
Remove top and bottom margin for hidden checklist items
2020-06-16 18:11:16 +03:00
Lauri Ojansivu ab6ec59bfb Merge branch 'fix-docs' of https://github.com/bentiss/wekan into bentiss-fix-docs 2020-06-16 18:07:53 +03:00
Lauri Ojansivu b144fab042 Update ChangeLog. 2020-06-16 18:05:26 +03:00
Lauri Ojansivu b1d1c7c45a Merge branch 'NicoP-S-master' 2020-06-16 18:03:20 +03:00
Lauri Ojansivu 2353f654de Merge branch 'master' of https://github.com/NicoP-S/wekan into NicoP-S-master 2020-06-16 17:58:36 +03:00
Marc Hartmayer 6e0ae161ad Remove top and bottom margin for hidden checklist items
Remove top and bottom margin for hidden checklist items, otherwise there could
be a gap between unchecked items if multiple hidden/checked items were between
them.
2020-06-14 21:34:19 +02:00
Henrik Gustafsson f1660e3b9f Alignment and spacing of minicard labels 2020-06-12 20:55:22 -04:00
Benjamin Tissoires 336a22555f openapi: fix jsdoc/operation matching
The script was considering that the operation
associated to a jsdoc was declared on the line
just after the end of the jsdoc.

Turns out that adding new lines makes the code
clearer, but the python script was then ignoring
some jsdocs.

Change the behaviour to consider that the jsdoc
associated with an operation is the last one
declared after the end of the previous operation.

Fixes #3169
2020-06-12 07:22:36 +02:00
Nico 06b548f12e edit_card start vote
better visibility what was voted
2020-06-11 19:52:44 +02:00
Lauri Ojansivu e4de42d487 Update translations. 2020-06-11 16:32:48 +03:00
Lauri Ojansivu 1617577378 Update ChangeLog. 2020-06-11 15:27:11 +03:00
Lauri Ojansivu 2add82efc5 Merge branch 'marc1006-fix' 2020-06-11 15:07:22 +03:00
Marc Hartmayer 06cacd7a5a Fix infinite scrolling for activities
This fixes the error:

Uncaught TypeError: activitiesComponent.loadNextPage is not a function
    at constructor.reachNextPeak (sidebar.js:63)
    at constructor.BlazeComponent.callFirstWith (peerlibrary_blaze-components.js?hash=4049f7e3116e3d9e865392b9546e70dc479b9add:660)
    at constructor.scroll (infiniteScrolling.js:28)
    at peerlibrary_blaze-components.js?hash=4049f7e3116e3d9e865392b9546e70dc479b9add:469
    at Object.Blaze._withCurrentView (view.js:533)
    at peerlibrary_blaze-components.js?hash=4049f7e3116e3d9e865392b9546e70dc479b9add:468
    at Template._withTemplateInstanceFunc (template.js:490)
    at Blaze.View.eventMap.<computed> (peerlibrary_blaze-components.js?hash=4049f7e3116e3d9e865392b9546e70dc479b9add:467)
    at view.js:879
    at Object.Blaze._withCurrentView (view.js:533)
2020-06-11 02:36:06 +02:00
Lauri Ojansivu 2d4f29cb5a Update ChangeLog. 2020-06-10 15:17:27 +03:00
Lauri Ojansivu 0b26250b46 Merge branch 'marc1006-checklists' 2020-06-10 14:54:00 +03:00
Lauri Ojansivu 09677d0bfa Merge branch 'checklists' of https://github.com/marc1006/wekan into marc1006-checklists 2020-06-10 14:48:42 +03:00
Marc Hartmayer aa4bdf7efb Strikethrough checked items 2020-06-09 23:41:01 +02:00
Marc Hartmayer 5755ece33e Add user option to hide finished checklist items
Add a user option to hide finished items in a checklist.
2020-06-09 23:40:44 +02:00
Lauri Ojansivu 2e93a975c4 v4.13 2020-06-09 22:41:46 +03:00
Lauri Ojansivu c4df69a05b Update ChangeLog. 2020-06-09 22:35:44 +03:00
Lauri Ojansivu a562ee4ba1 Update ChangeLog. 2020-06-09 22:34:18 +03:00
Lauri Ojansivu 781b384fe9 Update translations. 2020-06-09 22:29:18 +03:00
Lauri Ojansivu b6cc6c440d Update ChangeLog. 2020-06-09 22:27:34 +03:00
Lauri Ojansivu 20da91b774 Merge branch 'marc1006-issue_3164' 2020-06-09 22:24:00 +03:00
Lauri Ojansivu e530077fc5 Merge branch 'issue_3164' of https://github.com/marc1006/wekan into marc1006-issue_3164 2020-06-09 22:19:56 +03:00
Lauri Ojansivu 444fff47dc Update ChangeLog. 2020-06-09 22:16:00 +03:00
Marc Hartmayer 1aa8f502ae Fix condition whether a card is in list
This fixes the issues https://github.com/wekan/wekan/issues/3164,
https://github.com/wekan/wekan/issues/3162, and
https://github.com/wekan/wekan/issues/3163. While at it, remove now useless
comments.
2020-06-09 17:24:17 +02:00
Lauri Ojansivu 2a25318ba8 Merge pull request #3158 from jimmyjones2/patch-1
OpenShift template updates
2020-06-08 21:35:15 +03:00
Lauri Ojansivu 39a8524354 Merge pull request #3154 from marc1006/issue_2970
Copy the labels only if the target board is different
2020-06-08 21:34:56 +03:00
Lauri Ojansivu 573ca73b45 Use Docker Hub image, it did build faster this time. 2020-06-08 21:22:34 +03:00
Lauri Ojansivu 07d1a864d8 v4.12 2020-06-08 20:29:55 +03:00
Lauri Ojansivu ffcd380523 Update ChangeLog. 2020-06-08 20:24:40 +03:00
Lauri Ojansivu 55534b8b2e Fix typos. 2020-06-08 20:23:34 +03:00
Lauri Ojansivu ca23934bde Update ChangeLog. 2020-06-08 20:21:36 +03:00
Lauri Ojansivu 8a622ec7c3 Change to correct dependency version. 2020-06-08 19:20:27 +03:00
Lauri Ojansivu 39519d1cc9 1) Public board default view to Swimlane.
2) When changing Public board view (sets view cookie), also reload page so view is changed immediately.

Thanks to xet7 !
2020-06-08 19:12:17 +03:00
Lauri Ojansivu dcbf92b5b1 Update dependencies. 2020-06-08 17:55:43 +03:00
Lauri Ojansivu 7f6d500cbe Default view Swimlanes part 3: Change dropdown order to Swimlanes/Lists/Calendar.
Thanks to xet7 !
2020-06-08 17:53:03 +03:00
Lauri Ojansivu cb1e91fee8 Update minifier-css.
Thanks to xet7 !
2020-06-08 17:37:20 +03:00
Lauri Ojansivu 96494bacf5 Fix indent part 2.
Thanks to xet7 !
2020-06-08 17:35:25 +03:00
Lauri Ojansivu 99f68f36b0 Fix XSS.
Thanks to xet7 !
2020-06-08 17:34:45 +03:00
Lauri Ojansivu 61e682470c Default view Swimlanes part 2.
Thanks to xet7 !
2020-06-08 17:33:38 +03:00
Lauri Ojansivu 415e94d187 Fix indent.
Thanks to xet7 !
2020-06-08 17:32:17 +03:00
Lauri Ojansivu 6b22f96313 Use markdown in Swimlane titles.
Thanks to xet7 !
2020-06-08 17:30:26 +03:00
Lauri Ojansivu 8c3322f9a9 Change default view to Swimlanes.
Thanks to xet7 !
2020-06-08 17:28:53 +03:00
Lauri Ojansivu f935cf391e Update translations. 2020-06-08 17:26:00 +03:00
Marc Hartmayer fb44df9815 WIP: XSS fixes 2020-06-07 23:22:04 +02:00
Jimmy Jones e127895cf3 OpenShift template updates
* Remove status fields (this is created by Kubernetes at run time)
* The latest MongoDB by [default available with OpenShift is 3.6](https://github.com/openshift/origin/blob/master/examples/image-streams/image-streams-rhel7.json#L334)
* Change MongoDB service name to contain wekan to avoid potentially conflicting with other mongodb instances in the same project
2020-06-07 20:18:17 +01:00
Marc Hartmayer 1f85b25549 WIP: markdown 2020-06-06 11:26:56 +02:00
Marc Hartmayer df9851e2b7 Copy the labels only if the target board is different
This fixes the issues https://github.com/wekan/wekan/issues/2404 and
https://github.com/wekan/wekan/issues/2970 if the target board doesn't differ
from the source board.
2020-06-05 08:54:10 +02:00
Lauri Ojansivu 232bc746f4 Update ChangeLog. 2020-06-04 02:52:18 +03:00
Lauri Ojansivu ea448cd6c3 Update ChangeLog. 2020-06-04 02:49:38 +03:00
Lauri Ojansivu a7d12ddcaa v4.11 2020-06-04 01:41:17 +03:00
Lauri Ojansivu 420e9b23d2 Update ChangeLog. 2020-06-04 01:36:05 +03:00
Lauri Ojansivu cd49018306 Add fibers. 2020-06-04 01:34:49 +03:00
Lauri Ojansivu ddbf4f18ff Update translations. 2020-06-04 01:33:58 +03:00
Lauri Ojansivu 24104991b4 Update ChangeLog. 2020-06-04 01:31:53 +03:00
Lauri Ojansivu d9d451a206 Upgrade to Node v12.18.0
Thanks to Node developers and xet7 !
2020-06-04 01:25:35 +03:00
Lauri Ojansivu 1f07050979 Merge pull request #3149 from marc1006/issue_3148
Update `markedjs` package
2020-06-04 00:57:44 +03:00
Marc Hartmayer 399ddd2dab Update markedjs package
Update `markedjs` to commit
https://github.com/markedjs/marked/commit/7b3036f8c0440cfd003ce47dd6e1a92af0f5e822.
This fixes the issue https://github.com/wekan/wekan/issues/3148.
2020-06-03 23:10:25 +02:00
Lauri Ojansivu 2876ce633c Merge pull request #3146 from GitGramm/patch-1
Added dates & assignees to REST API calls #3145
2020-06-01 16:51:57 +03:00
GitGramm 333b9c811d Merge pull request #2 from GitGramm/GitGramm-patch-2
Added dates & assignees to REST API calls incl receivedAt
2020-06-01 15:45:20 +02:00
GitGramm 1df3d56f7c Added dates & assignees to REST API calls incl receivedAt
I have added the dates (received, start, due, end) and the assignees to the output of the REST API Calls.
2020-06-01 15:44:51 +02:00
GitGramm d2a7a82870 Added dates & assignees to REST API calls #3145
I have added the dates (stat, due, end) and the assignees to the output of the REST API Calls
2020-06-01 14:23:43 +02:00
Lauri Ojansivu 5e49006b6f Update ChangeLog. 2020-05-31 05:29:11 +03:00
Lauri Ojansivu f73ea218ee Add Calendar Month Event List view.
Thanks to xet7 !
2020-05-30 17:12:09 +03:00
124 changed files with 8284 additions and 4241 deletions

No files matched your search

+1 -1
View File
@@ -6,7 +6,7 @@ ENV DEBIAN_FRONTEND=noninteractive
ENV \
DEBUG=false \
NODE_VERSION=12.17.0 \
NODE_VERSION=12.18.3 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
+1 -1
View File
@@ -81,7 +81,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 12.17.0
node-engine: 12.18.3
node-packages:
- node-gyp
- node-pre-gyp
+198
View File
@@ -0,0 +1,198 @@
#!/bin/bash
echo "Note: If you use other locale than en_US.UTF-8 , you need to additionally install en_US.UTF-8"
echo " with 'sudo dpkg-reconfigure locales' , so that MongoDB works correctly."
echo " You can still use any other locale as your main locale."
#Below script installs newest node 8.x for Debian/Ubuntu/Mint.
#NODE_VERSION=12.18.2
#X64NODE="https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz"
function pause(){
read -p "$*"
}
function cprec(){
if [[ -d "$1" ]]; then
if [[ ! -d "$2" ]]; then
sudo mkdir -p "$2"
fi
for i in $(ls -A "$1"); do
cprec "$1/$i" "$2/$i"
done
else
sudo cp "$1" "$2"
fi
}
# sudo npm doesn't work right, so this is a workaround
function npm_call(){
TMPDIR="/tmp/tmp_npm_prefix"
if [[ -d "$TMPDIR" ]]; then
rm -rf $TMPDIR
fi
mkdir $TMPDIR
NPM_PREFIX="$(npm config get prefix)"
npm config set prefix $TMPDIR
npm "$@"
npm config set prefix "$NPM_PREFIX"
echo "Moving files to $NPM_PREFIX"
for i in $(ls -A $TMPDIR); do
cprec "$TMPDIR/$i" "$NPM_PREFIX/$i"
done
rm -rf $TMPDIR
}
#function wekan_repo_check(){
## UNCOMMENTING, IT'S NOT REQUIRED THAT /HOME/USERNAME IS /HOME/WEKAN
# git_remotes="$(git remote show 2>/dev/null)"
# res=""
# for i in $git_remotes; do
# res="$(git remote get-url $i | sed 's/.*wekan\/wekan.*/wekan\/wekan/')"
# if [[ "$res" == "wekan/wekan" ]]; then
# break
# fi
# done
#
# if [[ "$res" != "wekan/wekan" ]]; then
# echo "$PWD is not a wekan repository"
# exit;
# fi
#}
echo
PS3='Please enter your choice: '
options=("Install Wekan dependencies" "Build Wekan" "Run Meteor for dev on http://localhost:4000" "Run Meteor for dev on http://CURRENT-IP-ADDRESS:4000" "Run Meteor for dev on http://CUSTOM-IP-ADDRESS:PORT" "Quit")
select opt in "${options[@]}"
do
case $opt in
"Install Wekan dependencies")
if [[ "$OSTYPE" == "linux-gnu" ]]; then
echo "Linux";
# Debian, Ubuntu, Mint
sudo apt-get install -y build-essential gcc g++ make git curl wget
# npm nodejs
#sudo npm -g install npm
curl -0 -L https://npmjs.org/install.sh | sudo sh
sudo chown -R $(id -u):$(id -g) $HOME/.npm
sudo npm -g install n
sudo n 12.18.2
#curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
#sudo apt-get install -y nodejs
elif [[ "$OSTYPE" == "darwin"* ]]; then
echo "macOS";
pause '1) Install XCode 2) Install Node 8.x from https://nodejs.org/en/ 3) Press [Enter] key to continue.'
elif [[ "$OSTYPE" == "cygwin" ]]; then
# POSIX compatibility layer and Linux environment emulation for Windows
echo "TODO: Add Cygwin";
exit;
elif [[ "$OSTYPE" == "msys" ]]; then
# Lightweight shell and GNU utilities compiled for Windows (part of MinGW)
echo "TODO: Add msys on Windows";
exit;
elif [[ "$OSTYPE" == "win32" ]]; then
# I'm not sure this can happen.
echo "TODO: Add Windows";
exit;
elif [[ "$OSTYPE" == "freebsd"* ]]; then
echo "TODO: Add FreeBSD";
exit;
else
echo "Unknown"
echo ${OSTYPE}
exit;
fi
## Latest npm with Meteor 1.8.x
npm_call -g install npm
npm_call -g install node-gyp
# Latest fibers for Meteor 1.8.x
sudo mkdir -p /usr/local/lib/node_modules/fibers/.node-gyp
npm_call -g install fibers
# Install Meteor, if it's not yet installed
curl https://install.meteor.com | bash
sudo chown -R $(id -u):$(id -g) $HOME/.npm $HOME/.meteor
break
;;
"Build Wekan")
echo "Building Wekan."
#wekan_repo_check
# REPOS BELOW ARE INCLUDED TO WEKAN REPO
#rm -rf packages/kadira-flow-router packages/meteor-useraccounts-core packages/meteor-accounts-cas packages/wekan-ldap packages/wekan-ldap packages/wekan-scrfollbar packages/meteor-accounts-oidc packages/markdown
#mkdir packages
#cd packages
#git clone --depth 1 -b master https://github.com/wekan/flow-router.git kadira-flow-router
#git clone --depth 1 -b master https://github.com/meteor-useraccounts/core.git meteor-useraccounts-core
#git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git
#git clone --depth 1 -b master https://github.com/wekan/wekan-ldap.git
#git clone --depth 1 -b master https://github.com/wekan/wekan-scrollbar.git
#git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-oidc.git
#git clone --depth 1 -b master --recurse-submodules https://github.com/wekan/markdown.git
#mv meteor-accounts-oidc/packages/switch_accounts-oidc wekan_accounts-oidc
#mv meteor-accounts-oidc/packages/switch_oidc wekan_oidc
#rm -rf meteor-accounts-oidc
#if [[ "$OSTYPE" == "darwin"* ]]; then
# echo "sed at macOS";
# sed -i '' 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
#else
# echo "sed at ${OSTYPE}"
# sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
#fi
#cd ..
sudo chown -R $(id -u):$(id -g) $HOME/.npm $HOME/.meteor
rm -rf node_modules .meteor/local
npm install
rm -rf .build
meteor build .build --directory
cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
# Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc.
rm -rf .build/bundle/programs/web.browser.legacy
#Removed binary version of bcrypt because of security vulnerability that is not fixed yet.
#https://github.com/wekan/wekan/commit/4b2010213907c61b0e0482ab55abb06f6a668eac
#https://github.com/wekan/wekan/commit/7eeabf14be3c63fae2226e561ef8a0c1390c8d3c
#cd ~/repos/wekan/.build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt
#rm -rf node_modules/bcrypt
#meteor npm install bcrypt
cd .build/bundle/programs/server
rm -rf node_modules
npm install
#meteor npm install bcrypt
cd ../../../..
echo Done.
break
;;
"Run Meteor for dev on http://localhost:4000")
WITH_API=true RICHER_CARD_COMMENT_EDITOR=false ROOT_URL=http://localhost:4000 meteor run --exclude-archs web.browser.legacy,web.cordova --port 4000
break
;;
"Run Meteor for dev on http://CURRENT-IP-ADDRESS:4000")
IPADDRESS=$(ip a | grep 'noprefixroute' | grep 'inet ' | cut -d: -f2 | awk '{ print $2}' | cut -d '/' -f 1)
echo "Your IP address is $IPADDRESS"
WITH_API=true RICHER_CARD_COMMENT_EDITOR=false ROOT_URL=http://$IPADDRESS:4000 meteor run --exclude-archs web.browser.legacy,web.cordova --port 4000
break
;;
"Run Meteor for dev on http://CUSTOM-IP-ADDRESS:PORT")
ip address
echo "From above list, what is your IP address?"
read IPADDRESS
echo "On what port you would like to run Wekan?"
read PORT
echo "ROOT_URL=http://$IPADDRESS:$PORT"
WITH_API=true RICHER_CARD_COMMENT_EDITOR=false ROOT_URL=http://$IPADDRESS:$PORT meteor run --exclude-archs web.browser.legacy,web.cordova --port $PORT
break
;;
"Quit")
break
;;
*) echo invalid option;;
esac
done
+1 -1
View File
@@ -83,7 +83,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 12.17.0
node-engine: 12.18.3
node-packages:
- node-gyp
- node-pre-gyp
+1
View File
@@ -98,3 +98,4 @@ percolate:synced-cron
easylogic:summernote
cfs:filesystem
ostrio:cookies
tmeasday:check-npm-versions
+11 -10
View File
@@ -1,7 +1,7 @@
3stack:presence@1.1.2
accounts-base@1.6.0
accounts-oauth@1.2.0
accounts-password@1.6.0
accounts-password@1.6.1
aldeed:collection2@2.10.0
aldeed:collection2-core@1.2.0
aldeed:schema-deny@1.1.0
@@ -51,8 +51,8 @@ dburles:collection-helpers@1.1.0
ddp@1.4.0
ddp-client@2.3.3
ddp-common@1.4.0
ddp-rate-limiter@1.0.7
ddp-server@2.3.1
ddp-rate-limiter@1.0.8
ddp-server@2.3.2
deps@1.0.12
diff-sequence@1.1.1
dynamic-import@0.5.2
@@ -91,7 +91,7 @@ logging@1.1.20
lucasantoniassi:accounts-lockout@1.0.0
matb33:collection-hooks@0.9.1
matteodem:easy-search@1.6.4
mdg:meteor-apm-agent@3.2.5
mdg:meteor-apm-agent@3.2.6
mdg:validation-error@0.5.1
meteor@1.9.3
meteor-base@1.4.0
@@ -101,7 +101,7 @@ meteorhacks:collection-utils@1.2.0
meteorhacks:picker@1.0.3
meteorhacks:subs-manager@1.6.4
meteorspark:util@0.2.0
minifier-css@1.5.0
minifier-css@1.5.2
minifier-js@2.6.0
minifiers@1.1.8-faster-rebuild.0
minimongo@1.6.0
@@ -109,7 +109,7 @@ mobile-status-bar@1.1.0
modern-browsers@0.1.5
modules@0.15.0
modules-runtime@0.12.0
momentjs:moment@2.26.0
momentjs:moment@2.27.0
mongo@1.10.0
mongo-decimal@0.1.1
mongo-dev-server@1.1.0
@@ -162,14 +162,14 @@ simple:json-routes@2.1.0
simple:rest-accounts-password@1.1.2
simple:rest-bearer-token-parser@1.0.1
simple:rest-json-error-handler@1.0.1
socket-stream-client@0.3.0
socket-stream-client@0.3.1
softwarerero:accounts-t9n@1.3.11
spacebars@1.0.15
spacebars-compiler@1.1.3
srp@1.1.0
standard-minifier-css@1.6.0
standard-minifier-js@2.6.0
staringatlights:fast-render@3.2.0
staringatlights:fast-render@3.3.0
staringatlights:inject-data@2.3.0
tap:i18n@1.8.2
templates:tabs@2.3.0
@@ -177,11 +177,12 @@ templating@1.3.2
templating-compiler@1.3.3
templating-runtime@1.3.2
templating-tools@1.1.2
tmeasday:check-npm-versions@0.3.2
tracker@1.2.0
twbs:bootstrap@3.3.6
ui@1.0.13
underscore@1.0.10
url@1.3.0
url@1.3.1
useraccounts:core@1.14.2
useraccounts:flow-routing@1.14.2
useraccounts:unstyled@1.14.2
@@ -191,7 +192,7 @@ webapp-hashing@1.0.9
wekan-accounts-cas@0.1.0
wekan-accounts-oidc@1.0.10
wekan-ldap@0.0.2
wekan-markdown@1.0.7
wekan-markdown@1.0.9
wekan-oidc@1.0.12
wekan-scrollbar@3.1.3
yasaricli:slugify@0.0.7
+1 -1
View File
@@ -3,7 +3,7 @@ sudo: required
env:
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
TRAVIS_NODE_VERSION: 12.17.0
TRAVIS_NODE_VERSION: 12.18.3
TRAVIS_NPM_VERSION: latest
before_install:
+273
View File
@@ -1,3 +1,276 @@
# v4.23 2020-08-13 Wekan release
This release fixes following CRITICAL VULNERABILITIES:
- [Update vulnerable dependency elliptic that is dependency of meteor-node-stubs that is dependency of
Wekan](https://github.com/wekan/wekan/commit/910f0cecbe7a4b3fdff603e5e74c2cb1c40b660b).
Thanks to filipenevola, neeldug, L25inux and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.22 2020-07-23 Wekan release
This release adds back these features:
- [Export to JSON and HTML .zip file](https://github.com/commit/1624fc82f7c319e84a78f29445c7867f7da15c32)
that also fixes #3216 Clone Boards not working.
Thanks to xet7.
and hides these features temporarily:
- [Hide CSV export until it's fixed in EdgeHTML compatible way](https://github.com/wekan/wekan/commit/045b8a84a29dde09201dd5108c757719d00e6f55).
Thanks to xet7.
and adds the following updates:
- [Upgrade to Node 12.18.3](https://github.com/wekan/wekan/commit/6f503ca818abff17a20b6612aeea1f9e2c4a8234).
Thanks to Node developers.
and fixes the following bugs:
- [Fix Snap](https://github.com/wekan/wekan/commit/68391a943bd37d9f98819ffb7b7a29692d0bd380).
This fix was already included to Wekan v4.21 to get it released.
TODO: Sometime migrate from Caddy v1 to Caddy v2.
Thanks to xet7.
- [Fix detecting current IP address on rebuild-wekan.sh](https://github.com/wekan/wekan/commit/ec1d8f275ff4cd720a8cd3bc918b32f9c5f5d099).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.21 2020-07-21 Wekan release
This release adds the following new features:
- [REST API: Changed edit_card and get_card_by_customfields to return full documents](https://github.com/wekan/wekan/pull/3215).
Thanks to gvespignani70.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.20 2020-07-20 Wekan release
This release adds the following updates:
- Update dependencies [Part1](https://github.com/wekan/wekan/commit/419615bed43b6e9de4030193c47137a066b85bde) and
[Part2](https://github.com/wekan/wekan/commit/116372e11e09ce9b8376a8694553add595e02815).
Thanks to developers of dependencies and xet7.
and fixes the following bugs:
- [Change slug on card rename](https://github.com/wekan/wekan/pull/3214).
Thanks to NicoP-S.
- [Add missing Wekan logo sizes for PWAs and Apps](https://github.com/wekan/wekan/commit/de28bf8569a7373a5d6fd60a4f413e76673adc26).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.19 2020-07-18 Wekan release
This release adds the following features:
- [Add support for EdgeHTML browser (Microsoft Legacy Edge, not based on Chromium) by removing incompatible csv-stringify package.
CSV export will be fixed later](https://github.com/wekan/wekan/commit/b9a4b0b51d3692fcbb715b1afc875f21cd204ae5).
Thanks to xet7.
and adds the following updates:
- Update dependencies [Part1](https://github.com/wekan/wekan/commit/23ee93ca3d4ea161a93627a8e28e1ce93eea1bab),
[Part2](https://github.com/wekan/wekan/commit/6646d48ccbaf04c4935de35fe037eff3bd7fd469),
[Part3](https://github.com/wekan/wekan/commit/87cb4598f745a362aaac06b8b457198c40aaf61e),
[Part4](https://github.com/wekan/wekan/commit/f57ed2990f5c6e1af10d270b24c7092805711afe).
Thanks to developers of dependencies and xet7.
and fixes the following bugs:
- [Checklist Item PUT API: boolean cast on isFinished](https://github.com/wekan/wekan/pull/3211).
Thanks to Robert-Lebedeu.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.18 2020-07-10 Wekan release
This release adds the following updates:
- [Upgrade to Node 12.18.2](https://github.com/wekan/wekan/commit/6e4407ed9cb3c95a99e0dbbb4383324dd57d6be1).
Thanks to Node developers and xet7.
- [Update dependencies](https://github.com/wekan/wekan/commit/05cd1247ab935f586d747743bb9cd79d23e0b1e6).
Thanks to dependency developers and xet7.
and fixes the following bugs:
- [All logged in users are now allowed to reorder boards by dragging at All Boards page and Public Boards page](https://github.com/wekan/wekan/commit/ba24c4e40c728d030504ed21ccf79247d0449e1b).
Thanks to xet7.
- [Fix running meteor for dev in rebuild-wekan.sh](https://github.com/wekan/wekan/commit/a77cf56fbdaf0b74d8b97aa41b0a88fee85e3ee1).
Thanks to xet7.
- [Fix start-wekan.bat](https://github.com/wekan/wekan/commit/0be1c00fccef8797a1b3612593a6623a9b465e0d) and
[Windows bundle install](https://github.com/wekan/wekan/wiki/Windows#a-bundle-with-windows-nodemongodb).
Thanks to xet7.
- [Fix typo](https://github.com/wekan/wekan/pull/3197).
Thanks to Lua00808.
- [Fix creating user misbehaving in some special case](https://github.com/wekan/wekan/pull/3206).
Thanks to salleman33.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.17 2020-06-18 Wekan release
This release fixes the following bugs:
- [Revert finding correct user changes that were made at Wekan v4.16](https://github.com/wekan/wekan/commit/5eb378452761ad1d6d67a491316007fdf6dfd689).
Thanks to xet7.
- [Fix activities view on mobile devices](https://github.com/wekan/wekan/pull/3183).
Thanks to marc1006.
- [Add back checks about can user export CSV/TSV](https://github.com/wekan/wekan/commit/afe00d02cddf016a3ccc1ed9a98a7f10d3339f26).
Thanks to marc1006 and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.16 2020-06-17 Wekan release
This release adds the following features:
- [Add find-replace.sh script for development](https://github.com/wekan/wekan/commit/bda49ed60947e0438206b2f55119f5c5c132c734).
Thanks to xet7.
and adds the following updates:
- [Upgrade to Node 12.18.1](https://github.com/wekan/wekan/commit/b11ae567c9b2d16a115ea4f3f7f88e67d076f326).
Thanks to Node developers and xet7.
and fixes the following bugs:
- [OpenAPI: Fix jsdoc/operation matching](https://github.com/wekan/wekan/pull/3171).
Thanks to bentiss.
- Fix finding corrent user [Part1](https://github.com/wekan/wekan/pull/3180) and
[Part2](https://github.com/wekan/wekan/commit/f245b6b7faa29b4f276527daca48c305fe9689c1).
Thanks to salleman33 and xet7.
- [Try to prevent errors on CSV/TSV export](https://github.com/wekan/wekan/commit/b00db983c8506e0cdc9968e452c3c8025fc10776).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.15 2020-06-16 Wekan release
This release fixes the following bugs:
- Fix lint errors [Part1](https://github.com/wekan/wekan/commit/f1587753cb0bba38e4b1df2e0300d3dc2826da72) and
[Part2](https://github.com/wekan/wekan/commit/e6629779f77676eadfe4465c407f0bee0ec64061).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.14 2020-06-16 Wekan release
This release adds the following new features:
- [Add user option to hide finished checklist items. Strikethrough checked items](https://github.com/wekan/wekan/pull/3167).
Thanks to marc1006.
- [Added the possibility to start a vote via API edit_card. And added some better visibility to see what was voted](https://github.com/wekan/wekan/pull/3170).
Thanks to NicoP-S.
and adds the following updates:
- [Update dependencies](https://github.com/wekan/wekan/commit/8f34cdc279602e97085e0a504f7716495349f83c).
Thanks to xet7.
and fixes the following bugs:
- [Fix infinite scrolling for activities](https://github.com/wekan/wekan/pull/3168).
Thanks to marc1006.
- [Remove top and bottom margin for hidden checklist items](https://github.com/wekan/wekan/pull/3172).
Thanks to marc1006.
- [Alignment and spacing of minicard labels](https://github.com/wekan/wekan/pull/3174).
Thanks to hgustafsson.
- [Fix: Unable to delete a custom field in a board](https://github.com/wekan/wekan/commit/3b2b1087447bc8613baa8254bfec55e3d485bdc4).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.13 2020-06-09 Wekan release
This release adds the following updates:
- [OpenShift template updates](https://github.com/wekan/wekan/pull/3158), Thanks to jimmyjones2:
1) Remove status fields (this is created by Kubernetes at run time)
2) The latest MongoDB by default available with OpenShift is 3.6
3) Change MongoDB service name to contain wekan to avoid potentially conflicting with other mongodb instances in the same project.
and fixes the following bugs:
- [Copy the labels only if the target board is different](https://github.com/wekan/wekan/pull/3154).
Thanks to marc1006.
- [Fix condition whether a card is in list](https://github.com/wekan/wekan/pull/3165).
Thanks to marc1006.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.12 2020-06-08 Wekan release
This release fixes the following CRITICAL SECURITY VULNERABILITIES:
- Fix XSS bug reported 2020-05-24 by [swsjona](https://twitter.com/swsjona):
[Part 1](https://github.com/wekan/wekan/commit/1f85b25549b50602380f1745f19e5fe44fe36d6f),
[Part 2](https://github.com/wekan/wekan/commit/fb44df981581354bf23a6928427ad2bf73c4550f),
[Part 3](https://github.com/wekan/wekan/commit/99f68f36b028d6c75acf2e5b83585b1acee65f97),
[Part 4](https://github.com/wekan/wekan/commit/8a622ec7c3043bf8f34399ef34563e6a9a19dcd8).
Logged in users could run javascript in input fields. This was partially fixed at v3.85,
but at some fields XSS was still possible. This affects at least Wekan versions v3.12-v4.12.
After this fix, Javascript in input fields is not executed.
Thanks to swsjona, marc1006 and xet7.
and adds the following new features:
- Change default view to Swimlanes:
[Part 1](https://github.com/wekan/wekan/commit/8c3322f9a93c321e8a2cc5cfcd4b1d6316a5fb7c),
[Part 2](https://github.com/wekan/wekan/commit/61e682470cdaef42cce2d74b41fb752cfc61848b),
[Part 3 Change dropdown order to Swimlanes/Lists/Calendar](https://github.com/wekan/wekan/commit/7f6d500cbec15496ae357b05b9df3f10e51ed1f1),
[Part 4.1. Public board default view to Swimlane. Part 4.2. When changing Public board
view (sets view cookie), also reload page so view is changed
immediately](https://github.com/wekan/wekan/commit/39519d1cc944c567837be0f88ab4a037e2144c61).
Thanks to xet7.
- [Use markdown in Swimlane titles](https://github.com/wekan/wekan/commit/6b22f96313354b45b851b93c25aa392bbe346bdb).
Thanks to xet7.
and adds the following updates:
- [Update minifier-css](https://github.com/wekan/wekan/commit/cb1e91fee83eaad1e926c288c0abfc1e4f2a8bd4).
Thanks to xet7.
and fixes the following bugs:
- Fix indent [Part1](https://github.com/wekan/wekan/commit/415e94d187ffcb9a4afaecc5c6960a50a87ca7eb),
[Part 2](https://github.com/wekan/wekan/commit/96494bacf550cde65598e6d59199517f311aa33d).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.11 2020-06-04 Wekan release
This release adds the following new platforms:
- [Using arm64 bundle on Raspberry Pi OS arm64 with MongoDB 4.2.x for RasPi3 and
RasPi4](https://github.com/wekan/wekan/wiki/Raspberry-Pi#raspberry-pi-os-arm64-with-mongodb-42x).
Thanks to Raspberry Pi OS devs, MongoDB devs and xet7.
- [s390x RHEL 8](https://github.com/wekan/wekan/wiki/s390x#rhel-8).
Thanks to IBM, Red Hat Linux, Linux Foundation and xet7.
and adds the following updates:
- [Upgrade to Node v12.18.0](https://github.com/wekan/wekan/commit/d9d451a206cabe7f6ca8ad5d35eb76443198e4c1).
Thanks to Node developers and xet7.
- [Update `markedjs` package](https://github.com/wekan/wekan/pull/3149).
Thanks to marc1006.
- [Add fibers](https://github.com/wekan/wekan/commit/cd49018306f826fff37b7024dfde9de05d88b620).
Thanks to xet7.
and adds the following new features:
- [Add Calendar Month Event List view](https://github.com/wekan/wekan/commit/f73ea218eefba3f0d6c642849dfede9e03052d25).
Thanks to xet7.
- [Added dates & assignees to REST API calls](https://github.com/wekan/wekan/pull/3146).
Thanks to GitGramm.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.10 2020-05-30 Wekan release
This release adds the following new features:
+1 -1
View File
@@ -8,7 +8,7 @@ ARG DEBIAN_FRONTEND=noninteractive
ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \
DEBUG=false \
NODE_VERSION=v12.17.0 \
NODE_VERSION=v12.18.3 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
+2 -2
View File
@@ -4,7 +4,7 @@ FROM amd64/alpine:3.7 AS builder
ENV QEMU_VERSION=v4.2.0-6 \
QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v12.17.0 \
NODE_VERSION=v12.18.3 \
WEKAN_VERSION=3.96 \
WEKAN_ARCHITECTURE=arm64
@@ -40,7 +40,7 @@ LABEL maintainer="wekan"
# Set the environment variables (defaults where required)
ENV QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v12.17.0 \
NODE_VERSION=v12.18.3 \
NODE_ENV=production \
NPM_VERSION=latest \
WITH_API=true \
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v4.10.0"
appVersion: "v4.23.0"
files:
userUploads:
- README.md
+28 -28
View File
@@ -34,38 +34,38 @@ template(name="activity")
//- board activity ------------------------------------------------------
if($eq mode 'board')
if($eq activity.activityType 'createBoard')
| {{_ 'activity-created' boardLabel}}.
| {{{_ 'activity-created' boardLabelLink}}}.
if($eq activity.activityType 'importBoard')
| {{{_ 'activity-imported-board' boardLabel sourceLink}}}.
| {{{_ 'activity-imported-board' boardLabelLink sourceLink}}}.
if($eq activity.activityType 'addBoardMember')
| {{{_ 'activity-added' memberLink boardLabel}}}.
| {{{_ 'activity-added' memberLink boardLabelLink}}}.
if($eq activity.activityType 'removeBoardMember')
| {{{_ 'activity-excluded' memberLink boardLabel}}}.
| {{{_ 'activity-excluded' memberLink boardLabelLink}}}.
//- card activity -------------------------------------------------------
if($eq activity.activityType 'createCard')
if($eq mode 'card')
| {{{_ 'activity-added' cardLabel activity.listName}}}.
| {{{_ 'activity-added' cardLabelLink (sanitize activity.listName)}}}.
else
| {{{_ 'activity-added' cardLabel boardLabel}}}.
| {{{_ 'activity-added' cardLabelLink boardLabelLink}}}.
if($eq activity.activityType 'importCard')
| {{{_ 'activity-imported' cardLink boardLabel sourceLink}}}.
| {{{_ 'activity-imported' cardLink boardLabelLink sourceLink}}}.
if($eq activity.activityType 'moveCard')
| {{{_ 'activity-moved' cardLabel activity.oldList.title activity.list.title}}}.
| {{{_ 'activity-moved' cardLabelLink (sanitize activity.oldList.title) (sanitize activity.list.title)}}}.
if($eq activity.activityType 'moveCardBoard')
| {{{_ 'activity-moved' cardLink activity.oldBoardName activity.boardName}}}.
| {{{_ 'activity-moved' cardLink (sanitize activity.oldBoardName) (sanitize activity.boardName)}}}.
if($eq activity.activityType 'archivedCard')
| {{{_ 'activity-archived' cardLink}}}.
if($eq activity.activityType 'restoredCard')
| {{{_ 'activity-sent' cardLink boardLabel}}}.
| {{{_ 'activity-sent' cardLink boardLabelLink}}}.
//- checklist activity --------------------------------------------------
if($eq activity.activityType 'addChecklist')
@@ -83,25 +83,25 @@ template(name="activity")
| {{{_ 'activity-checklist-removed' cardLink}}}.
if($eq activity.activityType 'completeChecklist')
| {{{_ 'activity-checklist-completed' activity.checklist.title cardLink}}}.
| {{{_ 'activity-checklist-completed' (sanitize activity.checklist.title) cardLink}}}.
if($eq activity.activityType 'uncompleteChecklist')
| {{{_ 'activity-checklist-uncompleted' activity.checklist.title cardLink}}}.
| {{{_ 'activity-checklist-uncompleted' (sanitize activity.checklist.title) cardLink}}}.
if($eq activity.activityType 'checkedItem')
| {{{_ 'activity-checked-item' checkItem activity.checklist.title cardLink}}}.
| {{{_ 'activity-checked-item' (sanitize checkItem) (sanitize activity.checklist.title) cardLink}}}.
if($eq activity.activityType 'uncheckedItem')
| {{{_ 'activity-unchecked-item' checkItem activity.checklist.title cardLink}}}.
| {{{_ 'activity-unchecked-item' (sanitize checkItem) (sanitize activity.checklist.title) cardLink}}}.
if($eq activity.activityType 'addChecklistItem')
| {{{_ 'activity-checklist-item-added' activity.checklist.title cardLink}}}.
| {{{_ 'activity-checklist-item-added' (sanitize activity.checklist.title) cardLink}}}.
.activity-checklist(href="{{ activity.card.absoluteUrl }}")
+viewer
= activity.checklistItem.title
if($eq activity.activityType 'removedChecklistItem')
| {{{_ 'activity-checklist-item-removed' activity.checklist.title cardLink}}}.
| {{{_ 'activity-checklist-item-removed' (sanitize activity.checklist.title) cardLink}}}.
//- comment activity ----------------------------------------------------
if($eq mode 'card')
@@ -143,31 +143,31 @@ template(name="activity")
| {{_ 'activity-customfield-created' customField}}.
if($eq activity.activityType 'setCustomField')
| {{{_ 'activity-set-customfield' lastCustomField lastCustomFieldValue cardLink}}}.
| {{{_ 'activity-set-customfield' (sanitize lastCustomField) (sanitize lastCustomFieldValue) cardLink}}}.
if($eq activity.activityType 'unsetCustomField')
| {{{_ 'activity-unset-customfield' lastCustomField cardLink}}}.
| {{{_ 'activity-unset-customfield' (sanitize lastCustomField) cardLink}}}.
//- label activity ------------------------------------------------------
if($eq activity.activityType 'addedLabel')
| {{{_ 'activity-added-label' lastLabel cardLink}}}.
| {{{_ 'activity-added-label' (sanitize lastLabel) cardLink}}}.
if($eq activity.activityType 'removedLabel')
| {{{_ 'activity-removed-label' lastLabel cardLink}}}.
| {{{_ 'activity-removed-label' (sanitize lastLabel) cardLink}}}.
//- list activity -------------------------------------------------------
if($neq mode 'card')
if($eq activity.activityType 'createList')
| {{{_ 'activity-added' listLabel boardLabel}}}.
| {{{_ 'activity-added' (sanitize listLabel) boardLabelLink}}}.
if($eq activity.activityType 'importList')
| {{{_ 'activity-imported' listLabel boardLabel sourceLink}}}.
| {{{_ 'activity-imported' (sanitize listLabel) boardLabelLink sourceLink}}}.
if($eq activity.activityType 'removeList')
| {{{_ 'activity-removed' activity.title boardLabel}}}.
| {{{_ 'activity-removed' (sanitize activity.title) boardLabelLink}}}.
if($eq activity.activityType 'archivedList')
| {{_ 'activity-archived' listLabel}}.
| {{_ 'activity-archived' (sanitize listLabel)}}.
//- member activity ----------------------------------------------------
if($eq activity.activityType 'joinMember')
@@ -185,15 +185,15 @@ template(name="activity")
//- swimlane activity --------------------------------------------------
if($neq mode 'card')
if($eq activity.activityType 'createSwimlane')
| {{{_ 'activity-added' activity.swimlane.title boardLabel}}}.
| {{_ 'activity-added' (sanitize activity.swimlane.title) boardLabelLink}}.
if($eq activity.activityType 'archivedSwimlane')
| {{_ 'activity-archived' activity.swimlane.title}}.
| {{_ 'activity-archived' (sanitize activity.swimlane.title)}}.
//- I don't understand this part ----------------------------------------
if(currentData.timeKey)
| {{{_ activity.activityType }}}
| {{_ activity.activityType }}
= ' '
i(title=currentData.timeValue).activity-meta {{ moment currentData.timeValue 'LLL' }}
if (currentData.timeOldValue)
@@ -203,6 +203,6 @@ template(name="activity")
i(title=currentData.timeOldValue).activity-meta {{ moment currentData.timeOldValue 'LLL' }}
= ' @'
else if(currentData.timeValue)
| {{{_ activity.activityType currentData.timeValue}}}
| {{_ activity.activityType currentData.timeValue}}
span(title=activity.createdAt).activity-meta {{ moment activity.createdAt }}
+25 -14
View File
@@ -1,3 +1,5 @@
import sanitizeXss from 'xss';
const activitiesPerPage = 20;
BlazeComponent.extendComponent({
@@ -5,8 +7,9 @@ BlazeComponent.extendComponent({
// XXX Should we use ReactiveNumber?
this.page = new ReactiveVar(1);
this.loadNextPageLocked = false;
const sidebar = this.parentComponent(); // XXX for some reason not working
sidebar.callFirstWith(null, 'resetNextPeak');
// TODO is sidebar always available? E.g. on small screens/mobile devices
const sidebar = Sidebar;
sidebar && sidebar.callFirstWith(null, 'resetNextPeak');
this.autorun(() => {
let mode = this.data().mode;
const capitalizedMode = Utils.capitalize(mode);
@@ -27,6 +30,8 @@ BlazeComponent.extendComponent({
this.subscribe('activities', mode, searchId, limit, hideSystem, () => {
this.loadNextPageLocked = false;
// TODO the guard can be removed as soon as the TODO above is resolved
if (!sidebar) return;
// If the sibear peak hasn't increased, that mean that there are no more
// activities, and we can stop calling new subscriptions.
// XXX This is hacky! We need to know excatly and reactively how many
@@ -41,23 +46,22 @@ BlazeComponent.extendComponent({
});
});
},
}).register('activities');
BlazeComponent.extendComponent({
loadNextPage() {
if (this.loadNextPageLocked === false) {
this.page.set(this.page.get() + 1);
this.loadNextPageLocked = true;
}
},
}).register('activities');
BlazeComponent.extendComponent({
checkItem() {
const checkItemId = this.currentData().activity.checklistItemId;
const checkItem = ChecklistItems.findOne({ _id: checkItemId });
return checkItem && checkItem.title;
},
boardLabel() {
boardLabelLink() {
const data = this.currentData();
if (data.mode !== 'board') {
return createBoardLink(data.activity.board(), data.activity.listName);
@@ -65,10 +69,10 @@ BlazeComponent.extendComponent({
return TAPi18n.__('this-board');
},
cardLabel() {
cardLabelLink() {
const data = this.currentData();
if (data.mode !== 'card') {
return createCardLink(this.currentData().activity.card());
return createCardLink(data.activity.card());
}
return TAPi18n.__('this-card');
},
@@ -134,11 +138,11 @@ BlazeComponent.extendComponent({
{
href: source.url,
},
source.system,
sanitizeXss(source.system),
),
);
} else {
return source.system;
return sanitizeXss(source.system);
}
}
return null;
@@ -162,10 +166,10 @@ BlazeComponent.extendComponent({
href: attachment.url({ download: true }),
target: '_blank',
},
attachment.name(),
sanitizeXss(attachment.name()),
),
)) ||
this.currentData().activity.attachmentName
sanitizeXss(this.currentData().activity.attachmentName)
);
},
@@ -202,7 +206,14 @@ BlazeComponent.extendComponent({
},
}).register('activity');
Template.activity.helpers({
sanitize(value) {
return sanitizeXss(value);
},
});
function createCardLink(card) {
if (!card) return '';
return (
card &&
Blaze.toHTML(
@@ -211,7 +222,7 @@ function createCardLink(card) {
href: card.absoluteUrl(),
class: 'action-card',
},
card.title,
sanitizeXss(card.title),
),
)
);
@@ -228,7 +239,7 @@ function createBoardLink(board, list) {
href: board.absoluteUrl(),
class: 'action-board',
},
text,
sanitizeXss(text),
),
)
);
+1 -1
View File
@@ -323,7 +323,7 @@ BlazeComponent.extendComponent({
header: {
left: 'title today prev,next',
center:
'agendaDay,listDay,timelineDay agendaWeek,listWeek,timelineWeek month,timelineMonth timelineYear',
'agendaDay,listDay,timelineDay agendaWeek,listWeek,timelineWeek month,listMonth',
right: '',
},
// height: 'parent', nope, doesn't work as the parent might be small
+10 -10
View File
@@ -99,13 +99,13 @@ template(name="boardHeaderBar")
a.board-header-btn.js-toggle-board-view(
title="{{_ 'board-view'}}")
i.fa.fa-caret-down
if $eq boardView 'board-view-lists'
i.fa.fa-trello
if $eq boardView 'board-view-swimlanes'
i.fa.fa-th-large
if $eq boardView 'board-view-lists'
i.fa.fa-trello
if $eq boardView 'board-view-cal'
i.fa.fa-calendar
span {{#if boardView}}{{_ boardView}}{{else}}{{_ 'board-view-lists'}}{{/if}}
span {{#if boardView}}{{_ boardView}}{{else}}{{_ 'board-view-swimlanes'}}{{/if}}
if canModifyBoard
a.board-header-btn.js-multiselection-activate(
@@ -172,13 +172,6 @@ template(name="boardChangeWatchPopup")
template(name="boardChangeViewPopup")
ul.pop-over-list
li
with "board-view-lists"
a.js-open-lists-view
i.fa.fa-trello.colorful
| {{_ 'board-view-lists'}}
if $eq Utils.boardView "board-view-lists"
i.fa.fa-check
li
with "board-view-swimlanes"
a.js-open-swimlanes-view
@@ -186,6 +179,13 @@ template(name="boardChangeViewPopup")
| {{_ 'board-view-swimlanes'}}
if $eq Utils.boardView "board-view-swimlanes"
i.fa.fa-check
li
with "board-view-lists"
a.js-open-lists-view
i.fa.fa-trello.colorful
| {{_ 'board-view-lists'}}
if $eq Utils.boardView "board-view-lists"
i.fa.fa-check
li
with "board-view-cal"
a.js-open-cal-view
-6
View File
@@ -25,10 +25,6 @@ BlazeComponent.extendComponent({
},
onRendered() {
function userIsAllowedToMove() {
return Meteor.user();
}
const itemsSelector = '.js-board:not(.placeholder)';
const $boards = this.$('.js-boards');
@@ -77,8 +73,6 @@ BlazeComponent.extendComponent({
handle: '.board-handle',
});
}
$boards.sortable('option', 'disabled', !userIsAllowedToMove());
});
},
+8 -2
View File
@@ -220,8 +220,14 @@ template(name="cardDetails")
+viewer
= getVoteQuestion
if showVotingButtons
button.card-details-green.js-vote.js-vote-positive(class="{{#if voteState}}voted{{/if}}") {{_ 'vote-for-it'}}
button.card-details-red.js-vote.js-vote-negative(class="{{#if $eq voteState false}}voted{{/if}}") {{_ 'vote-against'}}
button.card-details-green.js-vote.js-vote-positive(class="{{#if voteState}}voted{{/if}}")
if voteState
i.fa.fa-thumbs-up
| {{_ 'vote-for-it'}}
button.card-details-red.js-vote.js-vote-negative(class="{{#if $eq voteState false}}voted{{/if}}")
if $eq voteState false
i.fa.fa-thumbs-down
| {{_ 'vote-against'}}
//- XXX We should use "editable" to avoid repetiting ourselves
if canModifyCard
+3 -19
View File
@@ -38,22 +38,6 @@ BlazeComponent.extendComponent({
Meteor.subscribe('unsaved-edits');
},
voteState() {
const card = this.currentData();
const userId = Meteor.userId();
let state;
if (card.vote) {
if (card.vote.positive) {
state = _.contains(card.vote.positive, userId);
if (state === true) return true;
}
if (card.vote.negative) {
state = _.contains(card.vote.negative, userId);
if (state === true) return false;
}
}
return null;
},
isWatching() {
const card = this.currentData();
return card.findWatcher(Meteor.userId());
@@ -412,9 +396,9 @@ BlazeComponent.extendComponent({
const forIt = $(e.target).hasClass('js-vote-positive');
let newState = null;
if (
this.voteState() === null ||
(this.voteState() === false && forIt) ||
(this.voteState() === true && !forIt)
this.data().voteState() === null ||
(this.data().voteState() === false && forIt) ||
(this.data().voteState() === true && !forIt)
) {
newState = forIt;
}
+14 -4
View File
@@ -1,7 +1,17 @@
template(name="checklists")
h3
i.fa.fa-check
| {{_ 'checklists'}}
.checklists-title
h3
i.fa.fa-check
| {{_ 'checklists'}}
if currentUser.isBoardMember
.material-toggle-switch
span.toggle-switch-title {{_ 'hide-checked-items'}}
if hideCheckedItems
input.toggle-switch(type="checkbox" id="toggleHideCheckedItemsButton" checked="checked")
else
input.toggle-switch(type="checkbox" id="toggleHideCheckedItemsButton")
label.toggle-label(for="toggleHideCheckedItemsButton")
if toggleDeleteDialog.get
.board-overlay#card-details-overlay
+checklistDeleteDialog(checklist = checklistToDelete)
@@ -86,7 +96,7 @@ template(name="checklistItems")
| {{_ 'add-checklist-item'}}...
template(name='checklistItemDetail')
.js-checklist-item.checklist-item
.js-checklist-item.checklist-item(class="{{#if item.isFinished }}is-checked{{#if hideCheckedItems}} invisible{{/if}}{{/if}}")
if canModifyCard
.check-box-container
.check-box.materialCheckBox(class="{{#if item.isFinished }}is-checked{{/if}}")
+16
View File
@@ -193,6 +193,9 @@ BlazeComponent.extendComponent({
}
this.toggleDeleteDialog.set(!this.toggleDeleteDialog.get());
},
'click #toggleHideCheckedItemsButton'() {
Meteor.call('toggleHideCheckedItems');
},
};
return [
@@ -211,6 +214,14 @@ BlazeComponent.extendComponent({
},
}).register('checklists');
Template.checklists.helpers({
hideCheckedItems() {
const currentUser = Meteor.user();
if (currentUser) return currentUser.hasHideCheckedItems();
return false;
},
});
Template.checklistDeleteDialog.onCreated(() => {
const $cardDetails = this.$('.card-details');
this.scrollState = {
@@ -246,6 +257,11 @@ Template.checklistItemDetail.helpers({
!Meteor.user().isWorker()
);
},
hideCheckedItems() {
const user = Meteor.user();
if (user) return user.hasHideCheckedItems();
return false;
},
});
BlazeComponent.extendComponent({
+16
View File
@@ -16,6 +16,10 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
&:hover
color: inherit
.checklists-title
display: flex
justify-content: space-between
.checklist-title
.checkbox
float: left
@@ -99,6 +103,17 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
margin-top: 3px
display: flex
background: darken(white, 3%)
opacity: 1
transition: height 0ms 400ms, opacity 400ms 0ms
height: auto
overflow: hidden
&.is-checked.invisible
opacity: 0
height: 0
transition: height 0ms 0ms, opacity 600ms 0ms
margin-top: 0
margin-bottom: 0
&.placeholder
background: darken(white, 20%)
@@ -128,6 +143,7 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
&.is-checked
color: #8c8c8c
font-style: italic
text-decoration: line-through
& .viewer
p
margin-bottom: 2px
+2 -2
View File
@@ -106,9 +106,9 @@ template(name="minicard")
span.badge-icon.fa.fa-align-left
if getVoteQuestion
.badge.badge-state-image-only(title=getVoteQuestion)
span.badge-icon.fa.fa-thumbs-up
span.badge-icon.fa.fa-thumbs-up(class="{{#if voteState}}text-green{{/if}}")
span.badge-text {{ voteCountPositive }}
span.badge-icon.fa.fa-thumbs-down
span.badge-icon.fa.fa-thumbs-down(class="{{#if $eq voteState false}}text-red{{/if}}")
span.badge-text {{ voteCountNegative }}
if attachments.count
.badge
+8 -1
View File
@@ -87,7 +87,9 @@
width: 11px
height: @width
border-radius: 2px
margin-left: 3px
margin-right: 3px
margin-bottom: 3px
.minicard-custom-fields
display:block;
.minicard-custom-field
@@ -299,3 +301,8 @@ minicard-color(background, color...)
.minicard-indigo
minicard-color(#4b0082, #ffffff) //White text for better visibility
.text-red
color:red
.text-green
color:green
@@ -75,7 +75,7 @@ template(name="cardActions")
button.trigger-button.trigger-button-color.js-show-color-palette(
id="color-action"
class="card-details-{{cardColorButton}}")
| {{{_ cardColorButtonText }}}
| {{_ cardColorButtonText }}
div.trigger-button.js-set-color-action.js-goto-rules
i.fa.fa-plus
+8 -8
View File
@@ -366,14 +366,14 @@ template(name="exportBoard")
a.download-json-link(href="{{exportUrl}}", download="{{exportJsonFilename}}")
i.fa.fa-share-alt
| {{_ 'export-board-json'}}
li
a(href="{{exportCsvUrl}}", download="{{exportCsvFilename}}")
i.fa.fa-share-alt
| {{_ 'export-board-csv'}}
li
a(href="{{exportTsvUrl}}", download="{{exportTsvFilename}}")
i.fa.fa-share-alt
| {{_ 'export-board-tsv'}}
//li
// a(href="{{exportCsvUrl}}", download="{{exportCsvFilename}}")
// i.fa.fa-share-alt
// | {{_ 'export-board-csv'}}
//li
// a(href="{{exportTsvUrl}}", download="{{exportTsvFilename}}")
// i.fa.fa-share-alt
// | {{_ 'export-board-tsv'}}
li
a.html-export-board
i.fa.fa-archive
@@ -11,7 +11,8 @@ template(name="swimlaneHeader")
template(name="swimlaneFixedHeader")
.swimlane-header(
class="{{#if currentUser.isBoardMember}}js-open-inlined-form is-editable{{/if}}")
= title
+viewer
= title
.swimlane-header-menu
unless currentUser.isCommentOnly
a.fa.fa-plus.js-open-add-swimlane-menu.swimlane-header-plus-icon
+1 -1
View File
@@ -23,8 +23,8 @@ function currentCardIsInThisList(listId, swimlaneId) {
currentCard.listId === listId &&
currentCard.swimlaneId === swimlaneId
);
// Default view: board-view-lists
else return currentCard && currentCard.listId === listId;
// https://github.com/wekan/wekan/issues/1623
// https://github.com/ChronikEwok/wekan/commit/cad9b20451bb6149bfb527a99b5001873b06c3de
// TODO: In public board, if you would like to switch between List/Swimlane view, you could
+13 -5
View File
@@ -6,12 +6,18 @@ Utils = {
currentUser = Meteor.user();
if (currentUser) {
Meteor.user().setBoardView(view);
} else if (view === 'board-view-lists') {
cookies.set('boardView', 'board-view-lists'); //true
} else if (view === 'board-view-swimlanes') {
cookies.set('boardView', 'board-view-swimlanes'); //true
location.reload();
} else if (view === 'board-view-lists') {
cookies.set('boardView', 'board-view-lists'); //true
location.reload();
} else if (view === 'board-view-cal') {
cookies.set('boardView', 'board-view-cal'); //true
location.reload();
} else {
cookies.set('boardView', 'board-view-swimlanes'); //true
location.reload();
}
},
@@ -24,14 +30,16 @@ Utils = {
currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).boardView;
} else if (cookies.get('boardView') === 'board-view-lists') {
return 'board-view-lists';
} else if (cookies.get('boardView') === 'board-view-swimlanes') {
return 'board-view-swimlanes';
} else if (cookies.get('boardView') === 'board-view-lists') {
return 'board-view-lists';
} else if (cookies.get('boardView') === 'board-view-cal') {
return 'board-view-cal';
} else {
return false;
cookies.set('boardView', 'board-view-swimlanes'); //true
location.reload();
return 'board-view-swimlanes';
}
},
+3 -3
View File
@@ -115,11 +115,11 @@ services:
# NOTE: Quay is currently not updated, use Docker Hub image below c)
# a) For Wekan Meteor 1.8.x version at master branch,
# using https://quay.io/wekan/wekan automatic builds
image: quay.io/wekan/wekan
#image: quay.io/wekan/wekan
# b) Using specific Meteor 1.6.x version tag:
# image: quay.io/wekan/wekan:v1.95
# c) Using Docker Hub automatic builds https://hub.docker.com/r/wekanteam/wekan
#image: wekanteam/wekan
image: wekanteam/wekan
# image: wekanteam/wekan:v2.99
#-------------------------------------------------------------------------------------
container_name: wekan-app
@@ -180,7 +180,7 @@ services:
# that if you're using more than 1 instance of Wekan
# (or any MeteorJS based tool) you're supposed to set
# MONGO_OPLOG_URL as an environment variable.
# Without setting it, Meteor will perform a pull-and-diff
# Without setting it, Meteor will perform a poll-and-diff
# update of it's dataset. With it, Meteor will update from
# the OPLOG. See here
# https://blog.meteor.com/tuning-meteor-mongo-livedata-for-scalability-13fe9deb8908
+5
View File
@@ -0,0 +1,5 @@
# Recursive find/replace.
# Syntax: ./find-replace.sh searchtext replacetext
egrep -lRZ '$1' . | xargs -0 -l sed -i -e 's/$1/$2/g'
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+63 -62
View File
@@ -73,7 +73,7 @@
"activity-unchecked-item-card": "nedokončen %s v seznamu %s",
"activity-checklist-completed-card": "dokončil(a) zaškrtávací seznam __checklist__ na kartě __card__ ve sloupci __list__ ve swimlane __swimlane__ na tablu __board__",
"activity-checklist-uncompleted-card": "nedokončený seznam %s",
"activity-editComment": "edited comment %s",
"activity-editComment": "upravit komentář %s",
"activity-deleteComment": "smazat komentář %s",
"add-attachment": "Přidat přílohu",
"add-board": "Přidat tablo",
@@ -161,18 +161,18 @@
"cardAttachmentsPopup-title": "Přiložit formulář",
"cardCustomField-datePopup-title": "Změnit datum",
"cardCustomFieldsPopup-title": "Upravit vlastní pole",
"cardStartVotingPopup-title": "Start a vote",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
"card-edit-voting": "Edit voting",
"editVoteEndDatePopup-title": "Change vote end date",
"allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
"deleteVotePopup-title": "Delete vote?",
"vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardStartVotingPopup-title": "Začít hlasování",
"positiveVoteMembersPopup-title": "Navrhovatelé",
"negativeVoteMembersPopup-title": "Oponenti",
"card-edit-voting": "Úprava hlasování",
"editVoteEndDatePopup-title": "Změnit datum konce hlasování",
"allowNonBoardMembers": "Povolit všechny přihlášené uživatele",
"vote-question": "Otázka hlasování",
"vote-public": "Ukázat kdo jak hlasoval",
"vote-for-it": "pro",
"vote-against": "proti",
"deleteVotePopup-title": "Smazat hlas?",
"vote-delete-pop": "Smazání je nevratné. Ztratíte vše spojené s tímto hlasováním.",
"cardDeletePopup-title": "Smazat kartu?",
"cardDetailsActionsPopup-title": "Akce karty",
"cardLabelsPopup-title": "Štítky",
@@ -235,7 +235,7 @@
"comment-only-desc": "Může přidávat komentáře pouze do karet.",
"no-comments": "Žádné komentáře",
"no-comments-desc": "Nemůže vidět komentáře a aktivity",
"worker": "Worker",
"worker": "Pracovník",
"worker-desc": "Can only move cards, assign itself to card and comment.",
"computer": "Počítač",
"confirm-subtask-delete-dialog": "Opravdu chcete smazat tento podúkol?",
@@ -256,8 +256,8 @@
"current": "Aktuální",
"custom-field-delete-pop": "Nelze vrátit zpět. Toto odebere toto vlastní pole ze všech karet a zničí jeho historii.",
"custom-field-checkbox": "Checkbox",
"custom-field-currency": "Currency",
"custom-field-currency-option": "Currency Code",
"custom-field-currency": "Měna",
"custom-field-currency-option": "Kód měny",
"custom-field-date": "Datum",
"custom-field-dropdown": "Rozbalovací seznam",
"custom-field-dropdown-none": "(prázdné)",
@@ -319,27 +319,27 @@
"error-username-taken": "Toto uživatelské jméno již existuje",
"error-email-taken": "Tento email byl již použit",
"export-board": "Exportovat tablo",
"export-board-json": "Export board to JSON",
"export-board-csv": "Export board to CSV",
"export-board-tsv": "Export board to TSV",
"export-board-html": "Export board to HTML",
"export-board-json": "Exportovat tablo do JSON",
"export-board-csv": "Exportovat tablo do CSV",
"export-board-tsv": "Exportovat tablo do TSV",
"export-board-html": "Exportovat tablo do HTML",
"exportBoardPopup-title": "Exportovat tablo",
"sort": "řadit",
"sort-desc": "Click to Sort List",
"sort-desc": "Kliknout pro třídění seznamu",
"list-sort-by": "řadit seznam podle",
"list-label-modifiedAt": "Last Access Time",
"list-label-title": "Name of the List",
"list-label-sort": "Your Manual Order",
"list-label-modifiedAt": "Čas posledního přístupu",
"list-label-title": "Název seznamu",
"list-label-sort": "Vaše ruční uspořádání",
"list-label-short-modifiedAt": "(L)",
"list-label-short-title": "(N)",
"list-label-short-sort": "(M)",
"filter": "Filtr",
"filter-cards": "Filter Cards or Lists",
"list-filter-label": "Filter List by Title",
"filter-cards": "Filtrovat karty nebo seznamy",
"list-filter-label": "Filtrovat seznam podle názvu",
"filter-clear": "Vyčistit filtr",
"filter-no-label": "Žádný štítek",
"filter-no-member": "Žádný člen",
"filter-no-assignee": "No assignee",
"filter-no-assignee": "Bez řešitele",
"filter-no-custom-fields": "Žádné vlastní pole",
"filter-show-archive": "Zobrazit archivované listy",
"filter-hide-empty": "Skrýt prázdné listy",
@@ -359,16 +359,16 @@
"import-board-c": "Importovat tablo",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Importovat tablo z předchozího exportu",
"import-board-title-csv": "Import board from CSV/TSV",
"import-board-title-csv": "Importovat tablo z CSV/TSV",
"from-trello": "Z Trella",
"from-wekan": "Z předchozího exportu",
"from-csv": "From CSV/TSV",
"from-csv": "Z CSV/TSV",
"import-board-instruction-trello": "Na svém Trello tablu, otevři 'Menu', pak 'More', 'Print and Export', 'Export JSON', a zkopíruj výsledný text",
"import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-csv": "Vložit do vašeho Comma Separated Values (CSV)/ Tab Separated Values (TSV).",
"import-board-instruction-wekan": "Ve vašem tablu jděte do 'Menu', klikněte na 'Exportovat tablo' a zkopírujte text ze staženého souboru.",
"import-board-instruction-about-errors": "Někdy import funguje i přestože dostáváte chyby při importování tabla, které se zobrazí na stránce Všechna tabla.",
"import-json-placeholder": "Sem vlož validní JSON data",
"import-csv-placeholder": "Paste your valid CSV/TSV data here",
"import-csv-placeholder": "Zde vložte vaše platné CSV/TSV data",
"import-map-members": "Mapovat členy",
"import-members-map": "Toto importované tablo obsahuje několik osob. Prosím namapujte osoby z importu na místní uživatelské účty.",
"import-show-user-mapping": "Zkontrolovat namapování členů",
@@ -401,7 +401,7 @@
"swimlaneActionPopup-title": "Akce swimlane",
"swimlaneAddPopup-title": "Přidat swimlane dolů",
"listImportCardPopup-title": "Importovat Trello kartu",
"listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listImportCardsTsvPopup-title": "Importovat Excel CSV/TSV",
"listMorePopup-title": "Více",
"link-list": "Odkaz na tento sloupec",
"list-delete-pop": "Všechny akce budou odstraněny z kanálu aktivity a nebude možné sloupec obnovit. Toto nelze vrátit zpět.",
@@ -464,7 +464,7 @@
"save": "Uložit",
"search": "Hledat",
"rules": "Pravidla",
"search-cards": "Search from card/list titles, descriptions and custom fields on this board",
"search-cards": "Hledání napříč názvy karet/seznamů, popisy a vlasními poli tohoto tabla",
"search-example": "Hledaný text",
"select-color": "Vybrat barvu",
"set-wip-limit-value": "Nastaví limit pro maximální počet úkolů ve sloupci.",
@@ -549,7 +549,7 @@
"error-invitation-code-not-exist": "Kód pozvánky neexistuje.",
"error-notAuthorized": "Nejste autorizován k prohlížení této stránky.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"webhook-token": "Token (Volitelné pro autentizaci)",
"outgoing-webhooks": "Odchozí Webhooky",
"bidirectional-webhooks": "Two-Way Webhooks",
"outgoingWebhooksPopup-title": "Odchozí Webhooky",
@@ -607,9 +607,9 @@
"default": "Výchozí",
"queue": "Fronta",
"subtask-settings": "Nastavení podúkolů",
"card-settings": "Card Settings",
"card-settings": "Nastavení karet",
"boardSubtaskSettingsPopup-title": "Nastavení podúkolů tabla",
"boardCardSettingsPopup-title": "Card Settings",
"boardCardSettingsPopup-title": "Nastavení karet",
"deposit-subtasks-board": "Vložit podúkoly do tohoto tabla",
"deposit-subtasks-list": "Landing list for subtasks deposited here:",
"show-parent-in-minicard": "Ukázat předka na minikartě",
@@ -727,14 +727,14 @@
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
"r-when-a-card-is-moved": "Když je karta přesunuta do jiného sloupce",
"r-set": "Set",
"r-update": "Update",
"r-datefield": "date field",
"r-update": "Aktualizovat",
"r-datefield": "pole datum",
"r-df-start-at": "začátek",
"r-df-due-at": "due",
"r-df-due-at": "do",
"r-df-end-at": "konec",
"r-df-received-at": "received",
"r-df-received-at": "přijato",
"r-to-current-datetime": "to current date/time",
"r-remove-value-from": "Remove value from",
"r-remove-value-from": "Odstranit hodnotu z",
"ldap": "LDAP",
"oauth2": "OAuth2",
"cas": "CAS",
@@ -756,7 +756,7 @@
"restore-all": "Restore all",
"delete-all": "Delete all",
"loading": "Loading, please wait.",
"previous_as": "last time was",
"previous_as": "naposledy bylo",
"act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
"act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
@@ -778,8 +778,8 @@
"accounts-allowUserDelete": "Dovolit uživatelům smazat vlastní účet",
"hide-minicard-label-text": "Hide minicard label text",
"show-desktop-drag-handles": "Show desktop drag handles",
"assignee": "Assignee",
"cardAssigneesPopup-title": "Assignee",
"assignee": "Řešitel",
"cardAssigneesPopup-title": "Řešitel",
"addmore-detail": "Přidat detailnější popis",
"show-on-card": "Zobrazit na kartě",
"new": "Nový",
@@ -787,26 +787,27 @@
"newUserPopup-title": "Nový uživatel",
"notifications": "Upozornění",
"view-all": "Zobrazit vše",
"filter-by-unread": "Filter by Unread",
"filter-by-unread": "Zobrazit nepřečtené",
"mark-all-as-read": "Označit vše jako přečtené",
"remove-all-read": "Remove all read",
"remove-all-read": "Odstranit přečtené",
"allow-rename": "Povolit přejmenování",
"allowRenamePopup-title": "Povolit přejmenování",
"start-day-of-week": "Set day of the week start",
"monday": "Monday",
"tuesday": "Tuesday",
"wednesday": "Wednesday",
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
"sunday": "Sunday",
"status": "Status",
"swimlane": "Swimlane",
"owner": "Owner",
"last-modified-at": "Last modified at",
"last-activity": "Last activity",
"voting": "Voting",
"archived": "Archived",
"start-day-of-week": "Nastavit první den týdne",
"monday": "Pondělí",
"tuesday": "Úterý",
"wednesday": "Středa",
"thursday": "Čtvrtek",
"friday": "Pátek",
"saturday": "Sobota",
"sunday": "Neděle",
"status": "Stav",
"swimlane": "Dráha",
"owner": "Vlastník",
"last-modified-at": "Naposledy změněno",
"last-activity": "Poslední aktivita",
"voting": "Hlasování",
"archived": "Archivováno",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Skrýt zvolené položky"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Afstemning",
"archived": "Arkiveret",
"delete-linked-card-before-this-card": "Du kan ikke slette dette kort før der slettes sammenkædede kort som har",
"delete-linked-cards-before-this-list": "Du kan ikke slette denne liste før der slettes sammenkædede kort, der peger til kort i denne liste"
"delete-linked-cards-before-this-list": "Du kan ikke slette denne liste før der slettes sammenkædede kort, der peger til kort i denne liste",
"hide-checked-items": "Hide checked items"
}
+3 -2
View File
@@ -807,6 +807,7 @@
"last-activity": "Letzte Aktivität",
"voting": "Abstimunng",
"archived": "Archiviert",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-card-before-this-card": "Sie können diese Karte erst löschen, wenn Sie alle verbundenen Karten gelöscht haben.",
"delete-linked-cards-before-this-list": "Sie können diese Liste erst löschen, wenn Sie alle Karten gelöscht haben, die auf Karten in dieser Liste verweisen.",
"hide-checked-items": "Erledigte ausblenden"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+4 -3
View File
@@ -256,8 +256,8 @@
"current": "actual",
"custom-field-delete-pop": "Se eliminará este campo personalizado de todas las tarjetas y se destruirá su historial. Esta acción no puede deshacerse.",
"custom-field-checkbox": "Casilla de verificación",
"custom-field-currency": "Currency",
"custom-field-currency-option": "Currency Code",
"custom-field-currency": "Moneda",
"custom-field-currency-option": "Código de moneda",
"custom-field-date": "Fecha",
"custom-field-dropdown": "Lista desplegable",
"custom-field-dropdown-none": "(nada)",
@@ -808,5 +808,6 @@
"voting": "Votar",
"archived": "Archivado",
"delete-linked-card-before-this-card": "No puede borrar esta tarjeta antes de borrar la tarjeta enlazada que tiene",
"delete-linked-cards-before-this-list": "No puede borrar esta lista antes de borrar las tarjetas enlazadas que apuntan a tarjetas en esta lista"
"delete-linked-cards-before-this-list": "No puede borrar esta lista antes de borrar las tarjetas enlazadas que apuntan a tarjetas en esta lista",
"hide-checked-items": "Ocultar elementos marcados"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+12 -11
View File
@@ -164,15 +164,15 @@
"cardStartVotingPopup-title": "شروع به رای",
"positiveVoteMembersPopup-title": "طرفداران",
"negativeVoteMembersPopup-title": "مخالفان",
"card-edit-voting": "Edit voting",
"editVoteEndDatePopup-title": "Change vote end date",
"allowNonBoardMembers": "Allow all logged in users",
"card-edit-voting": "ویرایش رای",
"editVoteEndDatePopup-title": "تغییر تاریخ پایان رای گیری",
"allowNonBoardMembers": "اجازه دادن به همه کاربران وارد شده",
"vote-question": "سوال رای گیری",
"vote-public": "نمایش چه کسی به چه رای داده است",
"vote-for-it": "for it",
"vote-for-it": "برای این",
"vote-against": "بر خلاف",
"deleteVotePopup-title": "Delete vote?",
"vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"deleteVotePopup-title": "رای حذف شود ؟",
"vote-delete-pop": "حذف کردن به صورت دائمی هست و قابل برگشت نیست.",
"cardDeletePopup-title": "آیا می خواهید کارت را حذف کنید؟",
"cardDetailsActionsPopup-title": "اعمال کارت",
"cardLabelsPopup-title": "برچسب ها",
@@ -256,8 +256,8 @@
"current": "جاری",
"custom-field-delete-pop": "این اقدام فیلدشخصی را بهمراه تمامی تاریخچه آن از کارت ها پاک می کند و برگشت پذیر نمی باشد",
"custom-field-checkbox": "جعبه انتخابی",
"custom-field-currency": "Currency",
"custom-field-currency-option": "Currency Code",
"custom-field-currency": "واحد پولی",
"custom-field-currency-option": "کد واحد پولی",
"custom-field-date": "تاریخ",
"custom-field-dropdown": "لیست افتادنی",
"custom-field-dropdown-none": "(هیچ)",
@@ -804,9 +804,10 @@
"swimlane": "Swimlane",
"owner": "Owner",
"last-modified-at": "Last modified at",
"last-activity": "Last activity",
"last-activity": "آخرین فعالیت‌ها",
"voting": "Voting",
"archived": "Archived",
"archived": "بایگانی شده",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Äänestys",
"archived": "Arkistoitu",
"delete-linked-card-before-this-card": "Et voi poistaa tätä korttia ennenkuin ensin poistat linkitetyn kortin jolla on",
"delete-linked-cards-before-this-list": "Et voi poistaa tätä listaa ennenkuin poistat linkitetyt kortit jotka osoittavat kortteihin tässä listassa"
"delete-linked-cards-before-this-list": "Et voi poistaa tätä listaa ennenkuin poistat linkitetyt kortit jotka osoittavat kortteihin tässä listassa",
"hide-checked-items": "Piilota ruksatut kohdat"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Vote",
"archived": "Archivé",
"delete-linked-card-before-this-card": "Vous ne pouvez pas supprimer cette carte avant d'avoir d'abord supprimé la carte liée qui a",
"delete-linked-cards-before-this-list": "Vous ne pouvez pas supprimer cette liste avant d'avoir d'abord supprimé les cartes liées qui pointent vers des cartes de cette liste"
"delete-linked-cards-before-this-list": "Vous ne pouvez pas supprimer cette liste avant d'avoir d'abord supprimé les cartes liées qui pointent vers des cartes de cette liste",
"hide-checked-items": "Cacher les éléments cochés"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "הצבעה",
"archived": "בארכיון",
"delete-linked-card-before-this-card": "לא ניתן למחוק את הכרטיס הזה לפני שמוחקים את הכרטיס המקושר שיש לו",
"delete-linked-cards-before-this-list": "לא ניתן למחוק את הרשימה הזו לפני שמוחקים את הכרטיסים שמצביעים לכרטיסים ברשימה הזו"
"delete-linked-cards-before-this-list": "לא ניתן למחוק את הרשימה הזו לפני שמוחקים את הכרטיסים שמצביעים לכרטיסים ברשימה הזו",
"hide-checked-items": "הסתרת הפריטים שסומנו"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+48 -47
View File
@@ -111,8 +111,8 @@
"restore-board": "Tábla visszaállítása",
"no-archived-boards": "No Boards in Archive.",
"archives": "Archiválás",
"template": "Template",
"templates": "Templates",
"template": "Sablon",
"templates": "Sablonok",
"assign-member": "Tag hozzárendelése",
"attached": "csatolva",
"attachment": "Melléklet",
@@ -137,7 +137,7 @@
"board-view": "Tábla nézet",
"board-view-cal": "Naptár",
"board-view-swimlanes": "Swimlanes",
"board-view-collapse": "Collapse",
"board-view-collapse": "Összecsukás",
"board-view-lists": "Listák",
"bucket-example": "Mint például „Bakancslista”",
"cancel": "Mégse",
@@ -680,30 +680,30 @@
"r-remove-all": "Remove all members from the card",
"r-set-color": "Set color to",
"r-checklist": "checklist",
"r-check-all": "Check all",
"r-uncheck-all": "Uncheck all",
"r-check-all": "Összes megjelölése",
"r-uncheck-all": "Összes jelölés törlése",
"r-items-check": "items of checklist",
"r-check": "Check",
"r-uncheck": "Uncheck",
"r-check": "Kijelölés",
"r-uncheck": "Jelölés törlése",
"r-item": "item",
"r-of-checklist": "ellenőrzőlistából",
"r-send-email": "Send an email",
"r-to": "to",
"r-send-email": "E-mail küldése",
"r-to": "címzett",
"r-of": "of",
"r-subject": "subject",
"r-subject": "tárgy",
"r-rule-details": "Rule details",
"r-d-move-to-top-gen": "Move card to top of its list",
"r-d-move-to-top-spec": "Move card to top of list",
"r-d-move-to-bottom-gen": "Move card to bottom of its list",
"r-d-move-to-bottom-spec": "Move card to bottom of list",
"r-d-send-email": "Send email",
"r-d-send-email-to": "to",
"r-d-send-email-subject": "subject",
"r-d-send-email-message": "message",
"r-d-send-email": "E-mail küldése",
"r-d-send-email-to": "címzett",
"r-d-send-email-subject": "tárgy",
"r-d-send-email-message": "üzenet",
"r-d-archive": "Move card to Archive",
"r-d-unarchive": "Restore card from Archive",
"r-d-add-label": "Add label",
"r-d-remove-label": "Remove label",
"r-d-add-label": "Címke hozzáadása",
"r-d-remove-label": "Címke eltávolítása",
"r-create-card": "Create new card",
"r-in-list": "in list",
"r-in-swimlane": "in swimlane",
@@ -712,8 +712,8 @@
"r-d-remove-all-member": "Remove all member",
"r-d-check-all": "Check all items of a list",
"r-d-uncheck-all": "Uncheck all items of a list",
"r-d-check-one": "Elem ellenőrzése",
"r-d-uncheck-one": "Uncheck item",
"r-d-check-one": "Elem kijelölése",
"r-d-uncheck-one": "Elem bejelölésének törlése",
"r-d-check-of-list": "ellenőrzőlistából",
"r-d-add-checklist": "Ellenőrzőlista hozzáadása",
"r-d-remove-checklist": "Ellenőrzőlista eltávolítása",
@@ -727,12 +727,12 @@
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
"r-when-a-card-is-moved": "Amikor egy kártya másik listába kerül",
"r-set": "Set",
"r-update": "Update",
"r-datefield": "date field",
"r-df-start-at": "start",
"r-df-due-at": "due",
"r-df-end-at": "end",
"r-df-received-at": "received",
"r-update": "Frissítés",
"r-datefield": "dátum mező",
"r-df-start-at": "kezdet",
"r-df-due-at": "határidő",
"r-df-end-at": "végzett",
"r-df-received-at": "megérkezett",
"r-to-current-datetime": "to current date/time",
"r-remove-value-from": "Remove value from",
"ldap": "LDAP",
@@ -753,9 +753,9 @@
"people-number": "The number of people is:",
"swimlaneDeletePopup-title": "Delete Swimlane ?",
"swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.",
"restore-all": "Restore all",
"delete-all": "Delete all",
"loading": "Loading, please wait.",
"restore-all": "Összes visszaállítása",
"delete-all": "Összes törlése",
"loading": "Betöltés folyamatban, kis türelmet…",
"previous_as": "last time was",
"act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
@@ -778,35 +778,36 @@
"accounts-allowUserDelete": "Allow users to self delete their account",
"hide-minicard-label-text": "Hide minicard label text",
"show-desktop-drag-handles": "Show desktop drag handles",
"assignee": "Assignee",
"cardAssigneesPopup-title": "Assignee",
"assignee": "Felelős",
"cardAssigneesPopup-title": "Felelős",
"addmore-detail": "Add a more detailed description",
"show-on-card": "Show on Card",
"new": "New",
"editUserPopup-title": "Edit User",
"newUserPopup-title": "New User",
"notifications": "Notifications",
"view-all": "View All",
"new": "Új",
"editUserPopup-title": "Felhasználó szerkesztése",
"newUserPopup-title": "Új felhasználó",
"notifications": "Értesítések",
"view-all": "Összes megtekintése",
"filter-by-unread": "Filter by Unread",
"mark-all-as-read": "Mark all as read",
"mark-all-as-read": "Összes megjelölése olvasottként",
"remove-all-read": "Remove all read",
"allow-rename": "Allow Rename",
"allowRenamePopup-title": "Allow Rename",
"start-day-of-week": "Set day of the week start",
"monday": "Monday",
"tuesday": "Tuesday",
"wednesday": "Wednesday",
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
"sunday": "Sunday",
"status": "Status",
"start-day-of-week": "Állítsa be a hét kezdetének napját",
"monday": "hétfő",
"tuesday": "kedd",
"wednesday": "szerda",
"thursday": "csütörtök",
"friday": "péntek",
"saturday": "szombat",
"sunday": "vasárnap",
"status": "Állapot",
"swimlane": "Swimlane",
"owner": "Owner",
"owner": "Tulajdonos",
"last-modified-at": "Last modified at",
"last-activity": "Last activity",
"voting": "Voting",
"archived": "Archived",
"archived": "Archiválva",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Kijelölt elemek elrejtése"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+177 -176
View File
@@ -1,7 +1,7 @@
{
"accept": "Terima",
"act-activity-notify": "Activity Notification",
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-activity-notify": "Pemeberitahuan Aktifitas",
"act-addAttachment": "ditambahkan lampiran __attachment__ di kartu __card__ pada daftar __list__ pada swimline __swimline__ pada papan __board__",
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
@@ -25,7 +25,7 @@
"act-createCustomField": "created custom field __customField__ at board __board__",
"act-deleteCustomField": "deleted custom field __customField__ at board __board__",
"act-setCustomField": "edited custom field __customField__: __customFieldValue__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-createList": "added list __list__ to board __board__",
"act-createList": "ditambahkan daftar __list__ pada papan __board__",
"act-addBoardMember": "added member __member__ to board __board__",
"act-archivedBoard": "Board __board__ moved to Archive",
"act-archivedCard": "Card __card__ at list __list__ at swimlane __swimlane__ at board __board__ moved to Archive",
@@ -98,7 +98,7 @@
"and-n-other-card_plural": "Dan__menghitung__kartu lain",
"apply": "Terapkan",
"app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.",
"archive": "Move to Archive",
"archive": "Pindahlan ke Arsip",
"archive-all": "Move All to Archive",
"archive-board": "Move Board to Archive",
"archive-card": "Move Card to Archive",
@@ -108,11 +108,11 @@
"archiveBoardPopup-title": "Move Board to Archive?",
"archived-items": "Arsip",
"archived-boards": "Boards in Archive",
"restore-board": "Restore Board",
"no-archived-boards": "No Boards in Archive.",
"restore-board": "Pulihkan Papan",
"no-archived-boards": "Tidak ada Papan pada Arsip",
"archives": "Arsip",
"template": "Template",
"templates": "Templates",
"template": "Klise",
"templates": "Klise",
"assign-member": "Tugaskan anggota",
"attached": "terlampir",
"attachment": "Lampiran",
@@ -131,22 +131,22 @@
"boardChangeTitlePopup-title": "Ganti Nama Panel",
"boardChangeVisibilityPopup-title": "Ubah Penampakan",
"boardChangeWatchPopup-title": "Ubah Pengamatan",
"boardMenuPopup-title": "Board Settings",
"boardChangeViewPopup-title": "Board View",
"boardMenuPopup-title": "Pengaturan Papan",
"boardChangeViewPopup-title": "Tampilan Papan",
"boards": "Panel",
"board-view": "Board View",
"board-view-cal": "Calendar",
"board-view": "Tampilan Papan",
"board-view-cal": "Kalender",
"board-view-swimlanes": "Swimlanes",
"board-view-collapse": "Collapse",
"board-view-collapse": "Ciutkan",
"board-view-lists": "Daftar",
"bucket-example": "Contohnya seperti “Bucket List” ",
"cancel": "Batal",
"card-archived": "This card is moved to Archive.",
"board-archived": "This board is moved to Archive.",
"card-archived": "Kartu ini telah dipindahkan ke Arsip",
"board-archived": "Kartu ini telah dipindahkan ke Arsip",
"card-comments-title": "Kartu ini punya %s komentar",
"card-delete-notice": "Menghapus sama dengan permanen. Anda akan kehilangan semua aksi yang terhubung ke kartu ini",
"card-delete-pop": "Semua aksi akan dihapus dari aktivitas dan anda tidak bisa lagi buka kartu ini",
"card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.",
"card-delete-suggest-archive": "Kamu bisa memindahkan Kartu ke Arsip untuk menghapusnya dari Papan dan mempertahankan Aktifitas",
"card-due": "Jatuh Tempo",
"card-due-on": "Jatuh Tempo pada",
"card-spent": "Spent Time",
@@ -425,8 +425,8 @@
"muted-info": "Anda tidak akan pernah dinotifikasi semua perubahan di panel ini",
"my-boards": "Panel saya",
"name": "Nama",
"no-archived-cards": "No cards in Archive.",
"no-archived-lists": "No lists in Archive.",
"no-archived-cards": "Tidak ada kartu di arsip.",
"no-archived-lists": "Tidak ada daftar di arsip.",
"no-archived-swimlanes": "No swimlanes in Archive.",
"no-results": "Tidak ada hasil",
"normal": "Normal",
@@ -452,8 +452,8 @@
"quick-access-description": "Beri bintang panel untuk menambah shortcut di papan ini",
"remove-cover": "Hapus Sampul",
"remove-from-board": "Hapus dari panel",
"remove-label": "Remove Label",
"listDeletePopup-title": "Delete List ?",
"remove-label": "Hapus Label",
"listDeletePopup-title": "Hapus Daftar ?",
"remove-member": "Hapus Anggota",
"remove-member-from-card": "Hapus dari Kartu",
"remove-member-pop": "Hapus__nama__(__username__) dari __boardTitle__? Partisipan akan dihapus dari semua kartu di panel ini. Mereka akan diberi tahu",
@@ -463,21 +463,21 @@
"restore": "Pulihkan",
"save": "Simpan",
"search": "Cari",
"rules": "Rules",
"search-cards": "Search from card/list titles, descriptions and custom fields on this board",
"search-example": "Text to search for?",
"select-color": "Select Color",
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
"setWipLimitPopup-title": "Set WIP Limit",
"rules": "Peraturan",
"search-cards": "Cari dari judul kartu/daftar, deskripsi dan bidang khusus di papan ini",
"search-example": "Teks untuk dicari ?",
"select-color": "Pilih Warna",
"set-wip-limit-value": "Tetapkan batas untuk jumlah tugas maksimum dalam daftar ini",
"setWipLimitPopup-title": "Tetapkan Batas WIP ",
"shortcut-assign-self": "Masukkan diri anda sendiri ke kartu ini",
"shortcut-autocomplete-emoji": "Autocomplete emoji",
"shortcut-autocomplete-emoji": "Pelengkap Otomatis emoji",
"shortcut-autocomplete-members": "Autocomplete partisipan",
"shortcut-clear-filters": "Bersihkan semua saringan",
"shortcut-close-dialog": "Tutup Dialog",
"shortcut-filter-my-cards": "Filter kartu saya",
"shortcut-show-shortcuts": "Angkat naik shortcut daftar ini",
"shortcut-toggle-filterbar": "Toggle Filter Sidebar",
"shortcut-toggle-sidebar": "Toggle Board Sidebar",
"shortcut-toggle-filterbar": "Toggle Filter Bilah Samping",
"shortcut-toggle-sidebar": "Toggle Papan Bilah Samping",
"show-cards-minimum-count": "Tampilkan jumlah kartu jika daftar punya lebih dari ",
"sidebar-open": "Buka Sidebar",
"sidebar-close": "Tutup Sidebar",
@@ -489,16 +489,16 @@
"team": "Tim",
"this-board": "Panel ini",
"this-card": "Kartu ini",
"spent-time-hours": "Spent time (hours)",
"overtime-hours": "Overtime (hours)",
"overtime": "Overtime",
"has-overtime-cards": "Has overtime cards",
"spent-time-hours": "Waktu yang dihabiskan (jam)",
"overtime-hours": "Lembur (jam)",
"overtime": "Lembur",
"has-overtime-cards": "Punya kartu lembur",
"has-spenttime-cards": "Has spent time cards",
"time": "Waktu",
"title": "Judul",
"tracking": "Pelacakan",
"tracking-info": "Anda akan dinotifikasi semua perubahan di kartu tersebut diaman anda terlibat sebagai creator atau partisipan",
"type": "Type",
"type": "tipe",
"unassign-member": "Tidak sertakan partisipan",
"unsaved-description": "Anda memiliki deskripsi yang belum disimpan.",
"unwatch": "Tidak mengamati",
@@ -515,11 +515,11 @@
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Tingkat dasar",
"welcome-list2": "Tingkat lanjut",
"card-templates-swimlane": "Card Templates",
"list-templates-swimlane": "List Templates",
"board-templates-swimlane": "Board Templates",
"card-templates-swimlane": "Klise Kartu",
"list-templates-swimlane": "Klise Daftar",
"board-templates-swimlane": "Klise Papan",
"what-to-do": "Apa yang mau Anda lakukan?",
"wipLimitErrorPopup-title": "Invalid WIP Limit",
"wipLimitErrorPopup-title": "Batas WIP tidak valid",
"wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
"wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.",
"admin-panel": "Panel Admin",
@@ -544,11 +544,11 @@
"invitation-code": "Kode Undangan",
"email-invite-register-subject": "__inviter__ mengirim undangan ke Anda",
"email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.",
"email-smtp-test-subject": "SMTP Test Email",
"email-smtp-test-subject": "SMTP Tes Surel",
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Kode undangan tidak ada",
"error-notAuthorized": "You are not authorized to view this page.",
"webhook-title": "Webhook Name",
"webhook-title": "Nama Webhook",
"webhook-token": "Token (Optional for Authentication)",
"outgoing-webhooks": "Outgoing Webhooks",
"bidirectional-webhooks": "Two-Way Webhooks",
@@ -558,10 +558,10 @@
"global-webhook": "Global Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Node_version": "Node version",
"Meteor_version": "Meteor version",
"MongoDB_version": "MongoDB version",
"MongoDB_storage_engine": "MongoDB storage engine",
"Node_version": "Versi Node",
"Meteor_version": "Versi Meteor",
"MongoDB_version": "Versi MongoDB",
"MongoDB_storage_engine": "Mesin penyimpanan MongoDb",
"MongoDB_Oplog_enabled": "MongoDB Oplog enabled",
"OS_Arch": "OS Arch",
"OS_Cpus": "OS CPU Count",
@@ -572,44 +572,44 @@
"OS_Totalmem": "OS Total Memory",
"OS_Type": "OS Type",
"OS_Uptime": "OS Uptime",
"days": "days",
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
"days": "hari",
"hours": "m",
"minutes": "menit",
"seconds": "detik",
"show-field-on-card": "Show this field on card",
"automatically-field-on-card": "Auto create field to all cards",
"showLabel-field-on-card": "Show field label on minicard",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"yes": "Ya",
"no": "Tidak",
"accounts": "Akun",
"accounts-allowEmailChange": "Allow Email Change",
"accounts-allowUserNameChange": "Allow Username Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active",
"card-received": "Received",
"card-received-on": "Received on",
"card-end": "End",
"card-end-on": "Ends on",
"editCardReceivedDatePopup-title": "Change received date",
"editCardEndDatePopup-title": "Change end date",
"setCardColorPopup-title": "Set color",
"setCardActionsColorPopup-title": "Choose a color",
"setSwimlaneColorPopup-title": "Choose a color",
"setListColorPopup-title": "Choose a color",
"assigned-by": "Assigned By",
"requested-by": "Requested By",
"createdAt": "Dibuat pada",
"verified": "Terverifikasi",
"active": "Aktif",
"card-received": "Diterima",
"card-received-on": "Diterima pada",
"card-end": "Berakhir",
"card-end-on": "Berakhir pada",
"editCardReceivedDatePopup-title": "Ubah tanggal diterima",
"editCardEndDatePopup-title": "Ubah tanggal berakhir",
"setCardColorPopup-title": "Tetapkan warna",
"setCardActionsColorPopup-title": "Pilih warna",
"setSwimlaneColorPopup-title": "Pilih warna",
"setListColorPopup-title": "Pilih warna",
"assigned-by": "Ditandatangani Oleh",
"requested-by": "Diminta Oleh",
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
"delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.",
"boardDeletePopup-title": "Delete Board?",
"delete-board": "Delete Board",
"boardDeletePopup-title": "Hapus Papan?",
"delete-board": "Hapus Papan",
"default-subtasks-board": "Subtasks for __board__ board",
"default": "Default",
"queue": "Queue",
"default": "Standar",
"queue": "Antrian",
"subtask-settings": "Subtasks Settings",
"card-settings": "Card Settings",
"card-settings": "Pengaturan Kartu",
"boardSubtaskSettingsPopup-title": "Board Subtasks Settings",
"boardCardSettingsPopup-title": "Card Settings",
"boardCardSettingsPopup-title": "Pengaturan Kartu",
"deposit-subtasks-board": "Deposit subtasks to this board:",
"deposit-subtasks-list": "Landing list for subtasks deposited here:",
"show-parent-in-minicard": "Show parent in minicard:",
@@ -629,34 +629,34 @@
"activity-delete-attach-card": "deleted an attachment",
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
"activity-unset-customfield": "unset custom field '%s' in %s",
"r-rule": "Rule",
"r-add-trigger": "Add trigger",
"r-add-action": "Add action",
"r-board-rules": "Board rules",
"r-add-rule": "Add rule",
"r-view-rule": "View rule",
"r-rule": "Aturan",
"r-add-trigger": "Tambahkan pelatuk",
"r-add-action": "Tambahkan aksi",
"r-board-rules": "Aturan papan",
"r-add-rule": "Tambahkan aturan",
"r-view-rule": "Lihat aturan",
"r-delete-rule": "Delete rule",
"r-new-rule-name": "New rule title",
"r-no-rules": "No rules",
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
"r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
"set-filter": "Set Filter",
"r-moved-to": "Moved to",
"r-moved-from": "Moved from",
"r-archived": "Moved to Archive",
"r-unarchived": "Restored from Archive",
"r-a-card": "a card",
"r-when-a-label-is": "When a label is",
"r-when-the-label": "When the label",
"r-list-name": "list name",
"r-when-a-member": "When a member is",
"r-when-the-member": "When the member",
"r-name": "name",
"r-when-a-card": "Ketika kartu",
"r-is": "adalah",
"r-is-moved": "dipindahkan",
"r-added-to": "Ditambahkan ke",
"r-removed-from": "Dihapus dari",
"r-the-board": "papan",
"r-list": "daftar",
"set-filter": "Atur Saringan",
"r-moved-to": "Dipindahkan ke",
"r-moved-from": "Dipindahkan dari",
"r-archived": "Dipindahkan ke Arsip",
"r-unarchived": "Dipulihkan dari Arsip",
"r-a-card": "Kartu",
"r-when-a-label-is": "Ketika label adalah",
"r-when-the-label": "Ketika label",
"r-list-name": "nama daftar",
"r-when-a-member": "Ketika anggota adalah",
"r-when-the-member": "Ketika anggota",
"r-name": "nama",
"r-when-a-attach": "When an attachment",
"r-when-a-checklist": "When a checklist is",
"r-when-the-checklist": "When the checklist",
@@ -669,70 +669,70 @@
"r-move-card-to": "Move card to",
"r-top-of": "Top of",
"r-bottom-of": "Bottom of",
"r-its-list": "its list",
"r-archive": "Move to Archive",
"r-unarchive": "Restore from Archive",
"r-card": "card",
"r-its-list": "daftar ini",
"r-archive": "Pindahlan ke Arsip",
"r-unarchive": "Pulihkan dari Arsip",
"r-card": "Kartu",
"r-add": "Tambah",
"r-remove": "Remove",
"r-remove": "hapus",
"r-label": "label",
"r-member": "member",
"r-remove-all": "Remove all members from the card",
"r-set-color": "Set color to",
"r-member": "anggota",
"r-remove-all": "Hapus semua anggota dari kartu",
"r-set-color": "Tetapkan warna ke",
"r-checklist": "checklist",
"r-check-all": "Check all",
"r-uncheck-all": "Uncheck all",
"r-items-check": "items of checklist",
"r-check": "Check",
"r-uncheck": "Uncheck",
"r-item": "item",
"r-item": "Item",
"r-of-checklist": "of checklist",
"r-send-email": "Send an email",
"r-to": "to",
"r-of": "of",
"r-subject": "subject",
"r-to": "kepada",
"r-of": "dari",
"r-subject": "Subyek",
"r-rule-details": "Rule details",
"r-d-move-to-top-gen": "Move card to top of its list",
"r-d-move-to-top-spec": "Move card to top of list",
"r-d-move-to-bottom-gen": "Move card to bottom of its list",
"r-d-move-to-bottom-spec": "Move card to bottom of list",
"r-d-send-email": "Send email",
"r-d-send-email-to": "to",
"r-d-send-email-subject": "subject",
"r-d-send-email-message": "message",
"r-d-archive": "Move card to Archive",
"r-d-unarchive": "Restore card from Archive",
"r-d-send-email": "Kirim surel",
"r-d-send-email-to": "kepada",
"r-d-send-email-subject": "Subyek",
"r-d-send-email-message": "pesan",
"r-d-archive": "Pindahlan kartu ke Arsip",
"r-d-unarchive": "Pulihkan kartu dari Arsip",
"r-d-add-label": "Tambahkan label",
"r-d-remove-label": "Remove label",
"r-create-card": "Create new card",
"r-in-list": "in list",
"r-d-remove-label": "Hapus label",
"r-create-card": "Buat kartu baru",
"r-in-list": "pada daftar",
"r-in-swimlane": "in swimlane",
"r-d-add-member": "Add member",
"r-d-remove-member": "Remove member",
"r-d-remove-all-member": "Remove all member",
"r-d-add-member": "Tambahkan anggota",
"r-d-remove-member": "Hapus anggota",
"r-d-remove-all-member": "Hapus semua anggota",
"r-d-check-all": "Check all items of a list",
"r-d-uncheck-all": "Uncheck all items of a list",
"r-d-check-one": "Check item",
"r-d-uncheck-one": "Uncheck item",
"r-d-check-of-list": "of checklist",
"r-d-add-checklist": "Add checklist",
"r-d-remove-checklist": "Remove checklist",
"r-by": "by",
"r-add-checklist": "Add checklist",
"r-with-items": "with items",
"r-items-list": "item1,item2,item3",
"r-d-add-checklist": "Tambahkan daftar periksa",
"r-d-remove-checklist": "Hapus daftar periksa",
"r-by": "oleh",
"r-add-checklist": "Tambahkan daftar periksa",
"r-with-items": "dengan item",
"r-items-list": "item 1, item2, item 3",
"r-add-swimlane": "Add swimlane",
"r-swimlane-name": "swimlane name",
"r-board-note": "Note: leave a field empty to match every possible value.",
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
"r-when-a-card-is-moved": "When a card is moved to another list",
"r-set": "Set",
"r-update": "Update",
"r-datefield": "date field",
"r-df-start-at": "start",
"r-df-due-at": "due",
"r-df-end-at": "end",
"r-df-received-at": "received",
"r-set": "Tetapkan",
"r-update": "Ubah",
"r-datefield": "bidang tanggal",
"r-df-start-at": "mulai",
"r-df-due-at": "sampai",
"r-df-end-at": "berakhir",
"r-df-received-at": "diterima",
"r-to-current-datetime": "to current date/time",
"r-remove-value-from": "Remove value from",
"ldap": "LDAP",
@@ -741,22 +741,22 @@
"authentication-method": "Metode Autentikasi",
"authentication-type": "Tipe Autentikasi",
"custom-product-name": "Custom Product Name",
"layout": "Layout",
"layout": "Tata letak",
"hide-logo": "Sembunyikan Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
"error-undefined": "Something went wrong",
"error-ldap-login": "An error occurred while trying to login",
"add-custom-html-after-body-start": "Tambahkan HTML khusus setelah <body> mulai",
"add-custom-html-before-body-end": "Tambahkan HTML khusus sebelum </body> berakhir",
"error-undefined": "Ada yang salah",
"error-ldap-login": "Terjadi kesalahan saat mencoba masuk",
"display-authentication-method": "Display Authentication Method",
"default-authentication-method": "Default Authentication Method",
"duplicate-board": "Duplicate Board",
"people-number": "The number of people is:",
"duplicate-board": "Duplikat Papan",
"people-number": "Jumlah orang:",
"swimlaneDeletePopup-title": "Delete Swimlane ?",
"swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.",
"restore-all": "Restore all",
"delete-all": "Delete all",
"loading": "Loading, please wait.",
"previous_as": "last time was",
"restore-all": "Pulihkan semua",
"delete-all": "Hapus semua",
"loading": "Sedang memuat, harap tunggu.",
"previous_as": "terakhir kali adalah",
"act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
"act-a-startAt": "modified starting time to __timeValue__ from (__timeOldValue__)",
@@ -776,37 +776,38 @@
"act-atUserComment": "You were mentioned in [__board__] __list__/__card__",
"delete-user-confirm-popup": "Are you sure you want to delete this account? There is no undo.",
"accounts-allowUserDelete": "Allow users to self delete their account",
"hide-minicard-label-text": "Hide minicard label text",
"show-desktop-drag-handles": "Show desktop drag handles",
"assignee": "Assignee",
"cardAssigneesPopup-title": "Assignee",
"addmore-detail": "Add a more detailed description",
"show-on-card": "Show on Card",
"new": "New",
"editUserPopup-title": "Edit User",
"newUserPopup-title": "New User",
"notifications": "Notifications",
"view-all": "View All",
"filter-by-unread": "Filter by Unread",
"mark-all-as-read": "Mark all as read",
"remove-all-read": "Remove all read",
"allow-rename": "Allow Rename",
"allowRenamePopup-title": "Allow Rename",
"start-day-of-week": "Set day of the week start",
"monday": "Monday",
"tuesday": "Tuesday",
"wednesday": "Wednesday",
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
"sunday": "Sunday",
"hide-minicard-label-text": "Sembunyikan teks label kartu mini",
"show-desktop-drag-handles": "Tampilkan gagang seret desktop",
"assignee": "Penerima tugas",
"cardAssigneesPopup-title": "Penerima tugas",
"addmore-detail": "Tambahkan deskripsi yang lebih rinci",
"show-on-card": "Tampilkan pada Kartu",
"new": "Baru",
"editUserPopup-title": "Ubah Pengguna",
"newUserPopup-title": "Pengguna Baru",
"notifications": "Pemberitahuan",
"view-all": "Lihat Semua",
"filter-by-unread": "Saring yang Belum Dibaca",
"mark-all-as-read": "Tandai semua telah dibaca",
"remove-all-read": "Hapus semua yang telah dibaca",
"allow-rename": "Ijinkan Ganti Nama",
"allowRenamePopup-title": "Ijinkan Ganti Nama",
"start-day-of-week": "Tetapkan hari dimulai dalam minggu",
"monday": "Senin",
"tuesday": "Selasa",
"wednesday": "Rabu",
"thursday": "Kamis",
"friday": "Jum'at",
"saturday": "Sabtu",
"sunday": "Minggu",
"status": "Status",
"swimlane": "Swimlane",
"owner": "Owner",
"last-modified-at": "Last modified at",
"last-activity": "Last activity",
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"owner": "Pemilik",
"last-modified-at": "Terakhir diubah pada",
"last-activity": "Aktifitas terakhir",
"voting": "Pemungutan Suara",
"archived": "Diarsipkan",
"delete-linked-card-before-this-card": "Kamu tidak dapat menghapus kartu ini sebelum menghapus kartu tertaut yang telah",
"delete-linked-cards-before-this-list": "Kamu tidak dapat menghapus daftar ini sebelum menghapus kartu tertaut yang mengarah ke kartu dalam daftar ini",
"hide-checked-items": "Sembunyikan item yang dicentang"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+4 -3
View File
@@ -256,8 +256,8 @@
"current": "corrente",
"custom-field-delete-pop": "Non potrai tornare indietro. Questa azione rimuoverà questo campo personalizzato da tutte le schede ed eliminerà ogni sua traccia.",
"custom-field-checkbox": "Casella di scelta",
"custom-field-currency": "Currency",
"custom-field-currency-option": "Currency Code",
"custom-field-currency": "Valuta",
"custom-field-currency-option": "Codice Valuta",
"custom-field-date": "Data",
"custom-field-dropdown": "Lista a discesa",
"custom-field-dropdown-none": "(niente)",
@@ -808,5 +808,6 @@
"voting": "Votazione",
"archived": "Archiviato",
"delete-linked-card-before-this-card": "Non puoi eliminare questa scheda prima di avere eliminato una scheda collegata che ha",
"delete-linked-cards-before-this-list": "Non puoi eliminare questa lista prima di avere eliminato le schede collegate che puntano su schede in questa lista"
"delete-linked-cards-before-this-list": "Non puoi eliminare questa lista prima di avere eliminato le schede collegate che puntano su schede in questa lista",
"hide-checked-items": "Nascondi articoli controllati"
}
+12 -11
View File
@@ -166,7 +166,7 @@
"negativeVoteMembersPopup-title": "反対者",
"card-edit-voting": "投票を編集",
"editVoteEndDatePopup-title": "投票終了日の変更",
"allowNonBoardMembers": "Allow all logged in users",
"allowNonBoardMembers": "ログイン中のすべてのユーザーに許可",
"vote-question": "投票の質問事項",
"vote-public": "誰が何に投票したか表示",
"vote-for-it": "賛成",
@@ -256,8 +256,8 @@
"current": "現在",
"custom-field-delete-pop": "この操作は取り消しできません。このカスタムフィールドはすべてのカードから外され履歴からも見えなくなります。",
"custom-field-checkbox": "チェックボックス",
"custom-field-currency": "Currency",
"custom-field-currency-option": "Currency Code",
"custom-field-currency": "通貨",
"custom-field-currency-option": "通貨コード",
"custom-field-date": "日付",
"custom-field-dropdown": "ドロップダウンリスト",
"custom-field-dropdown-none": "(none)",
@@ -362,9 +362,9 @@
"import-board-title-csv": "ボードをCSV/TSVからインポート",
"from-trello": "Trelloから",
"from-wekan": "以前のエクスポートから",
"from-csv": "From CSV/TSV",
"from-csv": "CSV/TSV から",
"import-board-instruction-trello": "Trelloボードの、 'Menu' → 'More' → 'Print and Export' → 'Export JSON'を選択し、テキストをコピーしてください。",
"import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-csv": "カンマ区切り(CSV) / タブ区切り(TSV) ファイルに貼り付けてください。",
"import-board-instruction-wekan": "ボードの、 'メニュー' → 'ボードのエクスポート'を選択し、ダウンロードされたファイルの中のテキストをコピーしてください。",
"import-board-instruction-about-errors": "ボードのインポート中にエラーが発生した場合、インポートがまだ進行中のまま、全てのボードページに表示されている場合があります。",
"import-json-placeholder": "JSONデータをここに貼り付けする",
@@ -641,7 +641,7 @@
"r-when-a-card": "カード:",
"r-is": "が",
"r-is-moved": "が移動された時",
"r-added-to": "Added to",
"r-added-to": "次に追加された時",
"r-removed-from": "次から削除された時",
"r-the-board": "ボード:",
"r-list": "リスト:",
@@ -800,13 +800,14 @@
"friday": "金曜",
"saturday": "土曜",
"sunday": "日曜",
"status": "Status",
"status": "ステータス",
"swimlane": "スイムレーン",
"owner": "オーナー",
"last-modified-at": "Last modified at",
"last-activity": "Last activity",
"last-modified-at": "最終更新",
"last-activity": "最終アクティビティ",
"voting": "投票",
"archived": "アーカイブ",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-card-before-this-card": "カード内にある、リンクされているカードを削除しなければ、このカードは削除できません",
"delete-linked-cards-before-this-list": "リスト内にある、他のカードを参照しているカードを削除しなければ、このリストは削除できません",
"hide-checked-items": "チェックした項目を隠す"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+11 -10
View File
@@ -49,7 +49,7 @@
"activity-archived": "%s moved to Archive",
"activity-attached": "%s를 %s에 첨부함",
"activity-created": "%s 생성됨",
"activity-customfield-created": "created custom field %s",
"activity-customfield-created": "생성된 사용자 정의 필드 %s",
"activity-excluded": "%s를 %s에서 제외함",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -73,8 +73,8 @@
"activity-unchecked-item-card": "unchecked %s in checklist %s",
"activity-checklist-completed-card": "completed checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
"activity-editComment": "edited comment %s",
"activity-deleteComment": "deleted comment %s",
"activity-editComment": "수정된 댓글",
"activity-deleteComment": "삭제된 댓글",
"add-attachment": "첨부파일 추가",
"add-board": "보드 추가",
"add-card": "카드 추가",
@@ -90,7 +90,7 @@
"addMemberPopup-title": "멤버",
"admin": "관리자",
"admin-desc": "카드를 보거나 수정하고, 멤버를 삭제하고, 보드에 대한 설정을 수정할 수 있습니다.",
"admin-announcement": "Announcement",
"admin-announcement": "공지사항",
"admin-announcement-active": "시스템에 공지사항을 표시합니다",
"admin-announcement-title": "관리자 공지사항 메시지",
"all-boards": "전체 보드",
@@ -147,7 +147,7 @@
"card-delete-notice": "영구 삭제입니다. 이 카드와 관련된 모든 작업들을 잃게됩니다.",
"card-delete-pop": "모든 작업이 활동 내역에서 제거되며 카드를 다시 열 수 없습니다. 복구가 안되니 주의하시기 바랍니다.",
"card-delete-suggest-archive": "You can move a card to Archive to remove it from the board and preserve the activity.",
"card-due": "종료일",
"card-due": "마감기한",
"card-due-on": "종료일",
"card-spent": "Spent Time",
"card-edit-attachments": "첨부 파일 수정",
@@ -233,8 +233,8 @@
"comment-placeholder": "댓글 입력",
"comment-only": "댓글만 입력 가능",
"comment-only-desc": "카드에 댓글만 달수 있습니다.",
"no-comments": "No comments",
"no-comments-desc": "Can not see comments and activities.",
"no-comments": "댓글 없음",
"no-comments-desc": "댓글과 활동내역을 볼 수 없습니다.",
"worker": "Worker",
"worker-desc": "Can only move cards, assign itself to card and comment.",
"computer": "내 컴퓨터",
@@ -589,7 +589,7 @@
"active": "Active",
"card-received": "Received",
"card-received-on": "Received on",
"card-end": "End",
"card-end": "종료일",
"card-end-on": "Ends on",
"editCardReceivedDatePopup-title": "Change received date",
"editCardEndDatePopup-title": "Change end date",
@@ -600,7 +600,7 @@
"assigned-by": "Assigned By",
"requested-by": "Requested By",
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
"delete-board-confirm-popup": "All lists, cards, labels, and activities will be deleted and you won't be able to recover the board contents. There is no undo.",
"delete-board-confirm-popup": "모든 목록, 카드, 레이블 및 활동이 삭제되고 보드 내용을 복구할 수 없습니다. 실행 취소는 불가능합니다.",
"boardDeletePopup-title": "Delete Board?",
"delete-board": "Delete Board",
"default-subtasks-board": "Subtasks for __board__ board",
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+4 -3
View File
@@ -256,8 +256,8 @@
"current": "Huidige",
"custom-field-delete-pop": "Er is geen herstelmogelijkheid. Deze actie zal dit maatwerkveld van alle kaarten verwijderen en de bijbehorende historie wissen.",
"custom-field-checkbox": "Checkbox",
"custom-field-currency": "Currency",
"custom-field-currency-option": "Currency Code",
"custom-field-currency": "Valuta",
"custom-field-currency-option": "Valuta Teken",
"custom-field-date": "Datum",
"custom-field-dropdown": "Dropdown Lijst",
"custom-field-dropdown-none": "(geen)",
@@ -808,5 +808,6 @@
"voting": "Stemmen",
"archived": "Gearchiveerd",
"delete-linked-card-before-this-card": "Je kunt deze kaart niet verwijderen voordat de gekoppelde kaart is verwijderd ",
"delete-linked-cards-before-this-list": "Je kunt deze lijst niet verwijderen voordat de gekoppelde kaarten verwijderd zijn die verwijzen naar kaarten in deze lijst"
"delete-linked-cards-before-this-list": "Je kunt deze lijst niet verwijderen voordat de gekoppelde kaarten verwijderd zijn die verwijzen naar kaarten in deze lijst",
"hide-checked-items": "Verberg aangevinkte items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+162 -161
View File
@@ -1,95 +1,95 @@
{
"accept": "Akceptuj",
"act-activity-notify": "Powiadomienia aktywności",
"act-addAttachment": "dodał(a) załącznik __attachment__ do karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-deleteAttachment": "usunął załącznik __attachment__ na karcie __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-addSubtask": "dodał(a) podzadanie __subtask__ na karcie __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-addLabel": "dodał(a) etykietę __label__ do karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-addedLabel": "dodał(a) etykietę __label__ do karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-removeLabel": "usunął etykietę __label__ z karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-removedLabel": "usunął etykietę __label__ z karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-addChecklist": "dodał(a) listę zadań __checklist__ do karty __card__ na liście __list__ w diagramie czynności __swimlane__ na tablicy __board__",
"act-addChecklistItem": "dodał(a) element listy zadań __checklistItem__ do listy zadań __checklist__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-removeChecklist": "usunął listę zadań __checklist__ z karty __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-removeChecklistItem": "usunął element listy zadań __checklistItem__ z listy zadań __checkList__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-checkedItem": "zaznaczył(a) __checklistItem__ na liście zadań __checklist__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-uncheckedItem": "odznaczył(a) __checklistItem__ na liście __checklist__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-completeChecklist": "wykonał(a) wszystkie zadania z listy __checklist__ na karcie __card__ na liście __list__ na diagramie czynności__ na tablicy __board__",
"act-uncompleteChecklist": "wycofał(a) ukończenie wykonania listy __checklist__ na karcie __card__ na liście __list__ na diagramie czynności__ na tablicy __board__",
"act-addComment": "dodał(a) komentarz na karcie __card__: __comment__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-editComment": "edytował(a) komentarz na karcie __card__: __comment__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-deleteComment": "usunął komentarz na karcie __card__: __comment__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-addAttachment": "dodał załącznik __attachment__ do karty __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-deleteAttachment": "usunął załącznik __attachment__ na karcie __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-addSubtask": "dodał podzadanie __subtask__ na karcie __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-addLabel": "dodał etykietę __label__ do karty __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-addedLabel": "dodał etykietę __label__ do karty __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-removeLabel": "usunął etykietę __label__ z karty __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-removedLabel": "usunął etykietę __label__ z karty __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-addChecklist": "dodał czeklistę __checklist__ do karty __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-addChecklistItem": "dodał element __checklistItem__ do czeklisty __checklist__ na karcie __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-removeChecklist": "usunął czeklistę __checklist__ z karty __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-removeChecklistItem": "usunął element __checklistItem__ z czeklisty __checkList__ na karcie __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-checkedItem": "zaznaczył(a) __checklistItem__ na czekliście __checklist__ na karcie __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-uncheckedItem": "odznaczył(a) __checklistItem__ na czekliście __checklist__ na karcie __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-completeChecklist": "wykonał(a) wszystkie elementy z czeklisty __checklist__ na karcie __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-uncompleteChecklist": "wycofał(a) ukończenie wykonania czeklisty __checklist__ na karcie __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-addComment": "dodał komentarz na karcie __card__: __comment__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-editComment": "edytował(a) komentarz na karcie __card__: __comment__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-deleteComment": "usunął komentarz na karcie __card__: __comment__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-createBoard": "utworzył(a) tablicę __board__",
"act-createSwimlane": "utworzył(a) diagram czynności __swimlane__ na tablicy __board__",
"act-createCard": "utworzył(a) kartę __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-createSwimlane": "utworzył(a) ścieżkę __swimlane__ na tablicy __board__",
"act-createCard": "utworzył(a) kartę __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-createCustomField": "utworzył(a) niestandardowe pole __customField__ na tablicy __board__",
"act-deleteCustomField": "usunął niestandardowe pole __customField__ na tablicy __board__",
"act-setCustomField": "zmienił(a) niestandardowe pole __customField__: __customFieldValue__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-createList": "dodał(a) listę __list__ do tablicy __board__",
"act-addBoardMember": "dodał(a) użytykownika __member__ do tablicy __board__",
"act-setCustomField": "zmienił(a) niestandardowe pole __customField__: __customFieldValue__ na karcie __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-createList": "dodał listę __list__ do tablicy __board__",
"act-addBoardMember": "dodał użytkownika __member__ do tablicy __board__",
"act-archivedBoard": "Tablica __board__ została przeniesiona do Archiwum",
"act-archivedCard": "przeniósł kartę __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__ do Archiwum",
"act-archivedList": "przeniósł listę __list__ na diagramie czynności __swimlane__ na tablicy __board__ do Archiwum",
"act-archivedSwimlane": "przeniósł diagram czynności __swimlane__ na tablicy __board__ do Archiwum",
"act-archivedCard": "przeniósł kartę __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__ do Archiwum",
"act-archivedList": "przeniósł listę __list__ na ścieżce __swimlane__ na tablicy __board__ do Archiwum",
"act-archivedSwimlane": "przeniósł ścieżkę __swimlane__ na tablicy __board__ do Archiwum",
"act-importBoard": "zaimportował(a) tablicę __board__",
"act-importCard": "zaimportował(a) kartę __card__ do listy __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-importList": "zaimportował(a) listę __list__ na diagram czynności __swimlane__ do tablicy __board__",
"act-joinMember": "dodał(a) użytkownika __member__ do karty __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-moveCard": "przeniósł kartę __card__ na tablicy __board__ z listy __oldList__ na diagramie czynności __oldSwimlane__ na listę __list__ na diagramie czynności __swimlane__",
"act-moveCardToOtherBoard": "przeniósł kartę __card__ z listy __oldList__ na diagramie czynności __oldSwimlane__ na tablicy __oldBoard__ do listy __listy__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-importCard": "zaimportował(a) kartę __card__ do listy __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-importList": "zaimportował(a) listę __list__ do ścieżki __swimlane__ na tablicy __board__",
"act-joinMember": "dodał użytkownika __member__ do karty __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-moveCard": "przeniósł kartę __card__ na tablicy __board__ z listy __oldList__ na ścieżce __oldSwimlane__ na listę __list__ na ścieżce __swimlane__",
"act-moveCardToOtherBoard": "przeniósł kartę __card__ z listy __oldList__ na ścieżce __oldSwimlane__ na tablicy __oldBoard__ do listy __listy__ na ścieżce __swimlane__ na tablicy __board__",
"act-removeBoardMember": "usunął użytkownika __member__ z tablicy __board__",
"act-restoredCard": "przywrócił(a) kartę __card__ na listę __list__ na diagram czynności__ na tablicy __board__",
"act-unjoinMember": "usunął użytkownika __member__ z karty __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"act-restoredCard": "przywrócił(a) kartę __card__ na listę __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-unjoinMember": "usunął użytkownika __member__ z karty __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-withBoardTitle": "__board__",
"act-withCardTitle": "[__board__] __card__",
"actions": "Akcje",
"activities": "Ostatnia aktywność",
"activity": "Aktywność",
"activity-added": "dodał(a) %s z %s",
"activity-added": "dodał %s do %s",
"activity-archived": "%s została przeniesiona do Archiwum",
"activity-attached": "załączono %s z %s",
"activity-attached": "dodał załącznik %s do %s",
"activity-created": "utworzył(a) %s",
"activity-customfield-created": "utworzył(a) niestandardowe pole %s",
"activity-excluded": "wyłączono %s z %s",
"activity-excluded": "odłączył %s od %s",
"activity-imported": "zaimportowano %s to %s z %s",
"activity-imported-board": "zaimportowano %s z %s",
"activity-joined": "dołączono %s",
"activity-moved": "przeniesiono % z %s to %s",
"activity-joined": "dodał się do %s",
"activity-moved": "przeniósł %s z %s do %s",
"activity-on": "w %s",
"activity-removed": "usunięto %s z %s",
"activity-sent": "wysłano %s z %s",
"activity-unjoined": "odłączono %s",
"activity-unjoined": "odłączył się od %s",
"activity-subtask-added": "dodano podzadanie do %s",
"activity-checked-item": "zaznaczono %s w liście zadań%s z %s",
"activity-unchecked-item": "odznaczono %s w liście zadań %s z %s",
"activity-checklist-added": "dodał(a) listę zadań do %s",
"activity-checklist-removed": "usunął listę zadań z %s",
"activity-checklist-completed": "ukończono listę zadań %s z %s",
"activity-checklist-uncompleted": "nieukończono listy zadań %s z %s",
"activity-checklist-item-added": "dodał(a) zadanie '%s' do %s",
"activity-checklist-item-removed": "usunął element z listy zadań '%s' w %s",
"activity-checked-item": "zaznaczył %s w czekliście %s w %s",
"activity-unchecked-item": "odznaczył %s w czekliście %s w %s",
"activity-checklist-added": "dodał czeklistę do %s",
"activity-checklist-removed": "usunął czeklistę z %s",
"activity-checklist-completed": "ukończył czeklistę %s z %s",
"activity-checklist-uncompleted": "cofnął ukończenie czeklisty %s z %s",
"activity-checklist-item-added": "dodał element do czeklisty '%s' w %s",
"activity-checklist-item-removed": "usunął element '%s' z %s",
"add": "Dodaj",
"activity-checked-item-card": "zaznaczono %s w liście zadań %s",
"activity-unchecked-item-card": "odznaczono %s w liście zadań %s",
"activity-checklist-completed-card": "wykonał(a) wszystkie zadania z listy __checklist__ na karcie __card__ na liście __list__ na diagramie czynności __swimlane__ na tablicy __board__",
"activity-checklist-uncompleted-card": "wycofano ukończenie listy zadań %s",
"activity-checked-item-card": "zaznaczył %s w czekliście %s",
"activity-unchecked-item-card": "odznaczył %s w czekliście %s",
"activity-checklist-completed-card": "wykonał(a) wszystkie elementy z czeklisty __checklist__ na karcie __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"activity-checklist-uncompleted-card": "wycofano ukończenie czeklisty %s",
"activity-editComment": "edytował(a) komentarz %s",
"activity-deleteComment": "usunął komentarz %s",
"add-attachment": "Dodaj załącznik",
"add-board": "Dodaj tablicę",
"add-card": "Dodaj kartę",
"add-swimlane": "Dodaj diagram czynności",
"add-swimlane": "Dodaj ścieżkę",
"add-subtask": "Dodaj podzadanie",
"add-checklist": "Dodaj listę kontrolną",
"add-checklist-item": "Dodaj element do listy kontrolnej",
"add-checklist": "Dodaj czeklistę",
"add-checklist-item": "Dodaj element do czeklisty",
"add-cover": "Dodaj okładkę",
"add-label": "Dodaj etykietę",
"add-list": "Dodaj listę",
"add-members": "Dodaj członków",
"add-members": "Dodaj użytkowników",
"added": "Dodane",
"addMemberPopup-title": "Członkowie",
"addMemberPopup-title": "Użytkownicy",
"admin": "Administrator",
"admin-desc": "Może widzieć i edytować karty, usuwać członków oraz zmieniać ustawienia tablicy.",
"admin-desc": "Może widzieć i edytować karty, usuwać użytkowników oraz zmieniać ustawienia tablicy.",
"admin-announcement": "Ogłoszenie",
"admin-announcement-active": "Włącz ogłoszenie systemowe",
"admin-announcement-title": "Ogłoszenie od administratora",
@@ -103,7 +103,7 @@
"archive-board": "Przenieś tablicę do Archiwum",
"archive-card": "Przenieś kartę do Archiwum",
"archive-list": "Przenieś listę do Archiwum",
"archive-swimlane": "Przenieś diagram czynności do Archiwum",
"archive-swimlane": "Przenieś ścieżkę do Archiwum",
"archive-selection": "Przenieś zaznaczone do Archiwum",
"archiveBoardPopup-title": "Przenieść tablicę do Archiwum?",
"archived-items": "Archiwum",
@@ -113,8 +113,8 @@
"archives": "Archiwum",
"template": "Szablon",
"templates": "Szablony",
"assign-member": "Dodaj członka",
"attached": "załączono",
"assign-member": "Dodaj użytkownika",
"attached": "dodał załącznik",
"attachment": "Załącznik",
"attachment-delete-pop": "Usunięcie załącznika jest nieodwracalne.",
"attachmentDeletePopup-title": "Usunąć załącznik?",
@@ -136,7 +136,7 @@
"boards": "Tablice",
"board-view": "Widok tablicy",
"board-view-cal": "Kalendarz",
"board-view-swimlanes": "Diagramy czynności",
"board-view-swimlanes": "Ścieżki",
"board-view-collapse": "Zwiń",
"board-view-lists": "Listy",
"bucket-example": "Tak jak na przykład \"lista kubełkowa\"",
@@ -147,15 +147,15 @@
"card-delete-notice": "Usunięcie jest trwałe. Stracisz wszystkie akcje powiązane z tą kartą.",
"card-delete-pop": "Wszystkie akcje będą usunięte z widoku aktywności, nie można będzie ponownie otworzyć karty. Usunięcie jest nieodwracalne.",
"card-delete-suggest-archive": "Możesz przenieść kartę do Archiwum, a następnie usunąć ją z tablicy i zachować ją w Aktywności.",
"card-due": "Ukończenie",
"card-due-on": "Ukończenie w",
"card-spent": "Spędzony czas",
"card-due": "Termin",
"card-due-on": "Termin ukończenia",
"card-spent": "Czas pracy",
"card-edit-attachments": "Edytuj załączniki",
"card-edit-custom-fields": "Edytuj niestandardowe pola",
"card-edit-labels": "Edytuj etykiety",
"card-edit-members": "Edytuj członków",
"card-edit-members": "Edytuj użytkowników",
"card-labels-title": "Zmień etykiety karty",
"card-members-title": "Dodaj lub usuń członków tablicy z karty.",
"card-members-title": "Dodaj lub usuń użytkowników tablicy z karty.",
"card-start": "Rozpoczęcie",
"card-start-on": "Zaczyna się o",
"cardAttachmentsPopup-title": "Dodaj załącznik z",
@@ -176,11 +176,11 @@
"cardDeletePopup-title": "Usunąć kartę?",
"cardDetailsActionsPopup-title": "Czynności kart",
"cardLabelsPopup-title": "Etykiety",
"cardMembersPopup-title": "Członkowie",
"cardMembersPopup-title": "Użytkownicy",
"cardMorePopup-title": "Więcej",
"cardTemplatePopup-title": "Utwórz szablon",
"cards": "Karty",
"cards-count": "Karty",
"cards-count": "kart",
"casSignIn": "Zaloguj się poprzez CAS",
"cardType-card": "Karta",
"cardType-linkedCard": "Podpięta karta",
@@ -196,7 +196,7 @@
"changePermissionsPopup-title": "Zmień uprawnienia",
"changeSettingsPopup-title": "Zmień ustawienia",
"subtasks": "Podzadania",
"checklists": "Listy zadań",
"checklists": "Czeklisty",
"click-to-star": "Kliknij by odznaczyć tę tablicę.",
"click-to-unstar": "Kliknij by usunąć odznaczenie tej tablicy.",
"clipboard": "Schowka lub poprzez przeciągnij & upuść",
@@ -239,12 +239,12 @@
"worker-desc": "Możesz tylko przenieść karty, przypisać je do siebie i na nich komentować.",
"computer": "Komputera",
"confirm-subtask-delete-dialog": "Czy jesteś pewien, że chcesz usunąć to podzadanie?",
"confirm-checklist-delete-dialog": "Czy jesteś pewien, że chcesz usunąć listę zadań?",
"confirm-checklist-delete-dialog": "Czy jesteś pewien, że chcesz usunąć czeklistę?",
"copy-card-link-to-clipboard": "Skopiuj łącze karty do schowka",
"linkCardPopup-title": "Podepnij kartę",
"searchElementPopup-title": "Wyszukaj",
"copyCardPopup-title": "Skopiuj kartę",
"copyChecklistToManyCardsPopup-title": "Kopiuj szablon listy zadań do wielu kart",
"copyChecklistToManyCardsPopup-title": "Kopiuj szablon czeklisty do wielu kart",
"copyChecklistToManyCardsPopup-instructions": "Docelowe tytuły i opisy kart są w formacie JSON",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"Tytuł pierwszej karty\", \"description\":\"Opis pierwszej karty\"}, {\"title\":\"Tytuł drugiej karty\",\"description\":\"Opis drugiej karty\"},{\"title\":\"Tytuł ostatniej karty\",\"description\":\"Opis ostatniej karty\"} ]",
"create": "Utwórz",
@@ -275,9 +275,9 @@
"deleteLabelPopup-title": "Usunąć etykietę?",
"description": "Opis",
"disambiguateMultiLabelPopup-title": "Ujednolić etykiety czynności",
"disambiguateMultiMemberPopup-title": "Ujednolić etykiety członków",
"disambiguateMultiMemberPopup-title": "Doprecyzuj czynności użytkowników",
"discard": "Odrzuć",
"done": "Zrobiono",
"done": "Zakończone",
"download": "Pobierz",
"edit": "Edytuj",
"edit-avatar": "Zmień avatar",
@@ -285,9 +285,9 @@
"edit-wip-limit": "Zmień limit kart na liście",
"soft-wip-limit": "Pozwól na nadmiarowe karty na liście",
"editCardStartDatePopup-title": "Zmień datę rozpoczęcia",
"editCardDueDatePopup-title": "Zmień datę ukończenia",
"editCardDueDatePopup-title": "Zmień termin ukończenia",
"editCustomFieldPopup-title": "Edytuj pole",
"editCardSpentTimePopup-title": "Zmień spędzony czas",
"editCardSpentTimePopup-title": "Zmień ilość przepracowanego czasu",
"editLabelPopup-title": "Zmień etykietę",
"editNotificationPopup-title": "Zmień tryb powiadamiania",
"editProfilePopup-title": "Edytuj profil",
@@ -308,7 +308,7 @@
"enable-wip-limit": "Włącz limit kart na liście",
"error-board-doesNotExist": "Ta tablica nie istnieje",
"error-board-notAdmin": "Musisz być administratorem tej tablicy żeby to zrobić",
"error-board-notAMember": "Musisz być członkiem tej tablicy, żeby wykonać tę czynność",
"error-board-notAMember": "Musisz być użytkownikiem tej tablicy, żeby wykonać tę czynność",
"error-json-malformed": "Twoja fraza nie jest w formacie JSON",
"error-json-schema": "Twoje dane JSON nie zawierają prawidłowych informacji w poprawnym formacie",
"error-csv-schema": "Twój plik CSV(plik oddzielony przecinkami)/TSV (plik oddzielony tabulatorami) nie zawiera danych w poprawnym formacie",
@@ -327,7 +327,7 @@
"sort": "Sortuj",
"sort-desc": "Kliknij by sortować listę",
"list-sort-by": "Sortuj listę przez:",
"list-label-modifiedAt": "Ostatni czas dostępu",
"list-label-modifiedAt": "Ostatni dostęp",
"list-label-title": "Nazwa listy",
"list-label-sort": "Twoja kolejność ustawiona ręcznie",
"list-label-short-modifiedAt": "(O)",
@@ -338,7 +338,7 @@
"list-filter-label": "Filtruj listy względem tytułu",
"filter-clear": "Usuń filter",
"filter-no-label": "Brak etykiety",
"filter-no-member": "Brak członków",
"filter-no-member": "Brak użytkowników",
"filter-no-assignee": "Nieprzypisane ",
"filter-no-custom-fields": "Brak niestandardowych pól",
"filter-show-archive": "Pokaż zarchiwizowane listy",
@@ -366,13 +366,13 @@
"import-board-instruction-trello": "W twojej tablicy na Trello przejdź do 'Menu', następnie 'Więcej', 'Drukuj i eksportuj', 'Eksportuj jako JSON' i skopiuj wynik",
"import-board-instruction-csv": "Wklej swoje dane w postaci wartości oddzielanych przecinkiem (CSV) lub tabulatorem (TSV)",
"import-board-instruction-wekan": "Na Twojej tablicy przejdź do 'Menu', a następnie wybierz 'Eksportuj tablicę' i skopiuj tekst w pobranym pliku.",
"import-board-instruction-about-errors": "W przypadku, gdy otrzymujesz błędy importowania tablicy, czasami importowanie pomimo wszystko działa poprawnie i tablica znajduje się w oknie Wszystkie tablice.",
"import-board-instruction-about-errors": "Czasami mimo komunikatu o błędzie importowanie tablicy przebiega poprawnie i jest ona widoczna na liście tablic (Wszystkie tablice).",
"import-json-placeholder": "Wklej Twoje dane JSON tutaj",
"import-csv-placeholder": "Wklej swoje dane z pliku CSV/TSV tutaj",
"import-map-members": "Przypisz członków",
"import-members-map": "Twoje zaimportowane tablice mają kilku członków. Proszę wybierz członków których chcesz zaimportować dla Twoich użytkowników",
"import-show-user-mapping": "Przejrzyj wybranych członków",
"import-user-select": "Wybierz istniejącego użytkownika, który ma stać się członkiem",
"import-map-members": "Przypisz użytkowników",
"import-members-map": "Zaimportowana tablica ma kilku użytkowników. Wybierz spośród nich osoby, które chcesz zaimportować jako użytkowników Twojej tablicy",
"import-show-user-mapping": "Przejrzyj przypisanych użytkowników",
"import-user-select": "Wybierz istniejącego użytkownika, którego chcesz dodać",
"importMapMembersAddPopup-title": "Wybierz użytkownika",
"info": "Wersja",
"initials": "Inicjały",
@@ -398,8 +398,8 @@
"list-select-cards": "Zaznacz wszystkie karty z tej listy",
"set-color-list": "Ustaw kolor",
"listActionPopup-title": "Lista akcji",
"swimlaneActionPopup-title": "Opcje diagramu czynności",
"swimlaneAddPopup-title": "Dodaj diagram czynności poniżej",
"swimlaneActionPopup-title": "Opcje ścieżki",
"swimlaneAddPopup-title": "Dodaj ścieżkę poniżej",
"listImportCardPopup-title": "Zaimportuj kartę z Trello",
"listImportCardsTsvPopup-title": "Importuj CSV/TSV z Excela",
"listMorePopup-title": "Więcej",
@@ -407,12 +407,12 @@
"list-delete-pop": "Wszystkie czynności zostaną usunięte z Aktywności i nie będziesz w stanie przywrócić listy. Nie ma możliwości cofnięcia tej operacji.",
"list-delete-suggest-archive": "Możesz przenieść listę do Archiwum, a następnie usunąć ją z tablicy i zachować ją w Aktywności.",
"lists": "Listy",
"swimlanes": "Diagramy czynności",
"swimlanes": "Ścieżki",
"log-out": "Wyloguj",
"log-in": "Zaloguj",
"loginPopup-title": "Zaloguj",
"memberMenuPopup-title": "Ustawienia członków",
"members": "Członkowie",
"memberMenuPopup-title": "Ustawienia użytkowników",
"members": "Użytkownicy",
"menu": "Menu",
"move-selection": "Przenieś zaznaczone",
"moveCardPopup-title": "Przenieś kartę",
@@ -427,12 +427,12 @@
"name": "Nazwa",
"no-archived-cards": "Brak kart w Archiwum.",
"no-archived-lists": "Brak list w Archiwum.",
"no-archived-swimlanes": "Brak diagramów czynności w Archiwum",
"no-archived-swimlanes": "Brak ścieżek w Archiwum",
"no-results": "Brak wyników",
"normal": "Użytkownik standardowy",
"normal-desc": "Może widzieć i edytować karty. Nie może zmieniać ustawiań.",
"not-accepted-yet": "Zaproszenie jeszcze niezaakceptowane",
"notify-participate": "Otrzymuj aktualizacje kart, w których uczestniczysz jako twórca lub członek.",
"notify-participate": "Otrzymuj informacje o aktywności w kartach, które stworzyłeś(aś) lub do których jesteś przypisany(a)",
"notify-watch": "Otrzymuj powiadomienia z tablic, list i kart, które obserwujesz",
"optional": "opcjonalny",
"or": "lub",
@@ -454,10 +454,10 @@
"remove-from-board": "Usuń z tablicy",
"remove-label": "Usuń etykietę",
"listDeletePopup-title": "Usunąć listę?",
"remove-member": "Usuń członka",
"remove-member": "Usuń użytkownika",
"remove-member-from-card": "Usuń z karty",
"remove-member-pop": "Remove __name__ (__username__) from __boardTitle__? The member will be removed from all cards on this board. They will receive a notification.",
"removeMemberPopup-title": "Usunąć członka?",
"removeMemberPopup-title": "Usunąć użytkownika?",
"rename": "Zmień nazwę",
"rename-board": "Zmień nazwę tablicy",
"restore": "Przywróć",
@@ -467,11 +467,11 @@
"search-cards": "Szukaj w tytułach kart/list oraz opisach i niestandardowych polach na tej tablicy",
"search-example": "Czego mam szukać?",
"select-color": "Wybierz kolor",
"set-wip-limit-value": "Ustaw maksymalny limit zadań na tej liście",
"set-wip-limit-value": "Ustaw maksymalny limit kart na tej liście",
"setWipLimitPopup-title": "Ustaw limit kart na liście",
"shortcut-assign-self": "Przypisz siebie do obecnej karty",
"shortcut-autocomplete-emoji": "Autouzupełnianie emoji",
"shortcut-autocomplete-members": "Autouzupełnianie członków",
"shortcut-autocomplete-members": "Autouzupełnianie użytkowników",
"shortcut-clear-filters": "Usuń wszystkie filtry",
"shortcut-close-dialog": "Zamknij okno",
"shortcut-filter-my-cards": "Filtruj moje karty",
@@ -489,17 +489,17 @@
"team": "Zespół",
"this-board": "ta tablica",
"this-card": "ta karta",
"spent-time-hours": "Spędzony czas (w godzinach)",
"overtime-hours": "Nadgodziny (czas)",
"overtime": "Dodatkowo",
"has-overtime-cards": "Ma dodatkowych kart",
"has-spenttime-cards": "Ma karty z wykorzystanym czasem",
"spent-time-hours": "Czas pracy (h)",
"overtime-hours": "Nadgodziny (h)",
"overtime": "Nadgodziny",
"has-overtime-cards": "Ma karty z wykazanymi nadgodzinami",
"has-spenttime-cards": "Ma karty z wykazanym czasem pracy",
"time": "Czas",
"title": "Tytuł",
"tracking": "Śledź",
"tracking-info": "Dostaniesz powiadomienie o zmianach kart, w których bierzesz udział jako twórca lub członek.",
"tracking-info": "Będziesz powiadamiany(a) o wszelkich zmianach w kartach, które stworzyłeś(aś) lub do których jesteś przypisany(a).",
"type": "Typ",
"unassign-member": "Nieprzypisany członek",
"unassign-member": "Odłącz użytkownika",
"unsaved-description": "Masz niezapisany opis.",
"unwatch": "Nie obserwuj",
"upload": "Wyślij",
@@ -521,7 +521,7 @@
"what-to-do": "Co chcesz zrobić?",
"wipLimitErrorPopup-title": "Nieprawidłowy limit kart na liście",
"wipLimitErrorPopup-dialog-pt1": "Aktualna ilość kart na tej liście jest większa niż aktualny zdefiniowany limit kart.",
"wipLimitErrorPopup-dialog-pt2": "Proszę przenieś zadania z tej listy lub zmień limit kart na tej liście na wyższy.",
"wipLimitErrorPopup-dialog-pt2": "Wycofaj jakieś karty z tej listy lub zwiększ limit kart na tej liście.",
"admin-panel": "Panel administracyjny",
"settings": "Ustawienia",
"people": "Osoby",
@@ -584,14 +584,14 @@
"accounts": "Konto",
"accounts-allowEmailChange": "Zezwól na zmianę adresu email",
"accounts-allowUserNameChange": "Zezwól na zmianę nazwy użytkownika",
"createdAt": "Stworzono o",
"createdAt": "Utworzone o",
"verified": "Zweryfikowane",
"active": "Aktywny",
"card-received": "Odebrano",
"card-received-on": "Odebrano",
"card-received": "Przyjęto",
"card-received-on": "Przyjęto",
"card-end": "Koniec",
"card-end-on": "Kończy się",
"editCardReceivedDatePopup-title": "Zmień datę odebrania",
"editCardReceivedDatePopup-title": "Zmień datę przyjęcia",
"editCardEndDatePopup-title": "Zmień datę ukończenia",
"setCardColorPopup-title": "Ustaw kolor",
"setCardActionsColorPopup-title": "Wybierz kolor",
@@ -610,7 +610,7 @@
"card-settings": "Ustawienia karty",
"boardSubtaskSettingsPopup-title": "Ustawienia tablicy podzadań",
"boardCardSettingsPopup-title": "Ustawienia kart",
"deposit-subtasks-board": "Przechowuj podzadania na tablicy:",
"deposit-subtasks-board": "Twórz podzadania na tablicy:",
"deposit-subtasks-list": "Początkowa lista dla podzadań jest przechowywana w:",
"show-parent-in-minicard": "Pokaż rodzica w minikarcie:",
"prefix-with-full-path": "Prefix z pełną ścieżką",
@@ -621,14 +621,14 @@
"parent-card": "Karta rodzica",
"source-board": "Tablica źródłowa",
"no-parent": "Nie pokazuj rodzica",
"activity-added-label": "dodał(a) etykietę '%s' z '%s'",
"activity-added-label": "dodał etykietę '%s' z '%s'",
"activity-removed-label": "usunął etykietę '%s' z '%s'",
"activity-delete-attach": "usunął załącznik z %s",
"activity-added-label-card": "dodał(a) etykietę '%s'",
"activity-added-label-card": "dodał etykietę '%s'",
"activity-removed-label-card": "usunął etykietę '%s'",
"activity-delete-attach-card": "usunął załącznik",
"activity-set-customfield": "ustawiono niestandardowe pole '%s' do '%s' na '%s'",
"activity-unset-customfield": "wyczyszczono niestandardowe pole '%s' na '%s'",
"activity-set-customfield": "ustawił niestandardowe pole '%s' na '%s' w '%s'",
"activity-unset-customfield": "wyczyścił niestandardowe pole '%s' w '%s'",
"r-rule": "Reguła",
"r-add-trigger": "Dodaj przełącznik",
"r-add-action": "Dodaj czynność",
@@ -646,24 +646,24 @@
"r-the-board": "tablicy",
"r-list": "lista",
"set-filter": "Ustaw filtr",
"r-moved-to": "Przeniesiono do",
"r-moved-from": "Przeniesiono z",
"r-moved-to": "Przeniesione do",
"r-moved-from": "Przeniesione z",
"r-archived": "Przeniesione z Archiwum",
"r-unarchived": "Przywrócone z Archiwum",
"r-a-card": "karta",
"r-when-a-label-is": "Gdy etykieta jest",
"r-when-the-label": "Gdy etykieta jest",
"r-list-name": "nazwa listy",
"r-when-a-member": "Gdy członek jest",
"r-when-the-member": "Gdy członek jest",
"r-when-a-member": "Gdy jakikolwiek użytkownik jest",
"r-when-the-member": "Gdy użytkownik",
"r-name": "nazwa",
"r-when-a-attach": "Gdy załącznik",
"r-when-a-checklist": "Gdy lista zadań jest",
"r-when-the-checklist": "Gdy lista zadań",
"r-completed": "Ukończono",
"r-when-a-checklist": "Gdy jakaś czeklista jest",
"r-when-the-checklist": "Gdy czeklista",
"r-completed": "Ukończone",
"r-made-incomplete": "Niedokończone",
"r-when-a-item": "Gdy lista zadań jest",
"r-when-the-item": "Gdy element listy zadań",
"r-when-a-item": "Gdy jakiś element czeklisty jest",
"r-when-the-item": "Gdy element",
"r-checked": "Zaznaczony",
"r-unchecked": "Odznaczony",
"r-move-card-to": "Przenieś kartę do",
@@ -676,17 +676,17 @@
"r-add": "Dodaj",
"r-remove": "Usuń",
"r-label": "etykieta",
"r-member": "członek",
"r-remove-all": "Usuń wszystkich członków tej karty",
"r-member": "użytkownik",
"r-remove-all": "Usuń wszystkich użytkowników tej karty",
"r-set-color": "Ustaw kolor na",
"r-checklist": "lista zadań",
"r-checklist": "Tytuł czeklisty",
"r-check-all": "Zaznacz wszystkie",
"r-uncheck-all": "Odznacz wszystkie",
"r-items-check": "elementy listy",
"r-items-check": "elementy czeklisty",
"r-check": "Zaznacz",
"r-uncheck": "Odznacz",
"r-item": "element",
"r-of-checklist": "z listy zadań",
"r-of-checklist": "z czeklisty",
"r-send-email": "Wyślij wiadomość email",
"r-to": "do",
"r-of": "z",
@@ -706,33 +706,33 @@
"r-d-remove-label": "Usuń etykietę",
"r-create-card": "Utwórz nową kartę",
"r-in-list": "na liście",
"r-in-swimlane": "w diagramie zdarzeń",
"r-d-add-member": "Dodaj członka",
"r-d-remove-member": "Usuń członka",
"r-d-remove-all-member": "Usuń wszystkich członków",
"r-in-swimlane": "na ścieżce",
"r-d-add-member": "Dodaj użytkownika",
"r-d-remove-member": "Usuń użytkownika",
"r-d-remove-all-member": "Usuń wszystkich użytkowników",
"r-d-check-all": "Zaznacz wszystkie elementy listy",
"r-d-uncheck-all": "Odznacz wszystkie elementy listy",
"r-d-check-one": "Zaznacz element",
"r-d-uncheck-one": "Odznacz element",
"r-d-check-of-list": "z listy zadań",
"r-d-add-checklist": "Dodaj listę zadań",
"r-d-remove-checklist": "Usuń listę zadań",
"r-d-check-of-list": "z czeklisty",
"r-d-add-checklist": "Dodaj czeklistę",
"r-d-remove-checklist": "Usuń czeklistę",
"r-by": "przez",
"r-add-checklist": "Dodaj listę zadań",
"r-add-checklist": "Dodaj czeklistę",
"r-with-items": "z elementami",
"r-items-list": "element1,element2,element3",
"r-add-swimlane": "Dodaj diagram zdarzeń",
"r-swimlane-name": "Nazwa diagramu",
"r-add-swimlane": "Dodaj ścieżkę",
"r-swimlane-name": "Nazwa ścieżki",
"r-board-note": "Uwaga: pozostaw pole puste, aby każda wartość była brana pod uwagę.",
"r-checklist-note": "Uwaga: wartości elementów listy muszą być oddzielone przecinkami.",
"r-checklist-note": "Uwaga: elementy czeklisty muszą być oddzielone przecinkami.",
"r-when-a-card-is-moved": "Gdy karta jest przeniesiona do innej listy",
"r-set": "Ustaw",
"r-update": "Aktualizuj",
"r-datefield": "pole daty",
"r-df-start-at": "start",
"r-df-due-at": "rozpoczęcie",
"r-df-due-at": "termin ukończenia jest",
"r-df-end-at": "zakończenie",
"r-df-received-at": "odebrano",
"r-df-received-at": "przyjęte",
"r-to-current-datetime": "o aktualnej dacie/godzinie",
"r-remove-value-from": "usunął wartość z",
"ldap": "LDAP",
@@ -751,35 +751,35 @@
"default-authentication-method": "Domyślna metoda logowania",
"duplicate-board": "Duplikuj tablicę",
"people-number": "Liczba użytkowników to:",
"swimlaneDeletePopup-title": "Usunąć diagram czynności?",
"swimlane-delete-pop": "Wszystkie akcje będą usunięte z widoku aktywności, nie można będzie przywrócić diagramu czynności. Usunięcie jest nieodwracalne.",
"swimlaneDeletePopup-title": "Usunąć ścieżkę?",
"swimlane-delete-pop": "Wszystkie czynności wykonane na tej ścieżce zostaną usunięte z historii aktywności. Tej operacji nie można cofnąć. Usunięcie jest nieodwracalne.",
"restore-all": "Przywróć wszystkie",
"delete-all": "Usuń wszystkie",
"loading": "Ładowanie, proszę czekać.",
"previous_as": "ostatni czas był",
"act-a-dueAt": "zmienił(a) czas zakończenia na: __timeValue__ w karcie __card__, poprzedni czas: __timeOldValue__",
"act-a-endAt": "zmienił(a) czas zakończenia na __timeValue__ z __timeOldValue__",
"act-a-startAt": "zmienił(a) czas rozpoczęcia na __timeValue__ z __timeOldValue__",
"act-a-receivedAt": "zmienił(a) czas odebrania zadania na __timeValue__ z __timeOldValue__",
"a-dueAt": "zmieniono czas zakończenia na",
"a-endAt": "zmieniono czas zakończenia na",
"a-startAt": "zmieniono czas startu na",
"a-receivedAt": "zmieniono czas odebrania zadania na",
"almostdue": "aktualny termin ukończenia %s dobiega końca",
"pastdue": "aktualny termin ukończenia %s jest w przeszłości",
"duenow": "aktualny termin ukończenia %s jest dzisiaj",
"act-newDue": "__list__/__card__ przypomina o 1szym zakończeniu terminu [__board__]",
"act-withDue": "__list__/__card__ posiada przypomnienia zakończenia terminu [__board__]",
"act-almostdue": "przypomina o zbliżającej się dacie ukończenia (__timeValue__) karty __card__",
"act-pastdue": "przypomina o ubiegłej dacie ukończenia (__timeValue__) karty __card__",
"act-duenow": "przypomina o ubiegającej teraz dacie ukończenia (__timeValue__) karty __card__",
"previous_as": "ostatni raz był",
"act-a-dueAt": "zmienił(a) termin ukończenia na: __timeValue__ w karcie __card__, poprzedni termin: __timeOldValue__",
"act-a-endAt": "zmienił czas zakończenia na __timeValue__ z __timeOldValue__",
"act-a-startAt": "zmienił czas rozpoczęcia na __timeValue__ z __timeOldValue__",
"act-a-receivedAt": "zmienił czas przyjęcia zadania na __timeValue__ z __timeOldValue__",
"a-dueAt": "zmienił termin ukończenia na",
"a-endAt": "zmienił czas zakończenia na",
"a-startAt": "zmienił czas rozpoczęcia na",
"a-receivedAt": "zmienił czas przyjęcia zadania na",
"almostdue": "termin ukończenia %s jest bliski",
"pastdue": "termin ukończenia %s minął",
"duenow": "termin ukończenia %s przypada dzisiaj",
"act-newDue": "__list__/__card__ pierwszy raz przypomina o terminie ukończenia [__board__]",
"act-withDue": "__list__/__card__ ma przypomnienia o terminie ukończenia [__board__]",
"act-almostdue": "przypominał o zbliżającym się terminie ukończenia (__timeValue__) karty __card__",
"act-pastdue": "przypominał o upłynięciu terminu ukończenia (__timeValue__) karty __card__",
"act-duenow": "przypominał o przypadającym właśnie terminie ukończenia (__timeValue__) karty __card__",
"act-atUserComment": "Zostałeś wspomniany w [__board] __list__/__card__",
"delete-user-confirm-popup": "Czy jesteś pewien, że chcesz usunąć te konto? Nie można tego wycofać.",
"accounts-allowUserDelete": "Pozwól użytkownikom na usuwanie własnych kont",
"hide-minicard-label-text": "Ukryj opisy etykiet minikart",
"show-desktop-drag-handles": "Pokaż przeciągnięcia na pulpit",
"assignee": "Przypisujący",
"cardAssigneesPopup-title": "Przypisujący",
"assignee": "Przypisani",
"cardAssigneesPopup-title": "Przypisani",
"addmore-detail": "Dodaj bardziej szczegółowy opis",
"show-on-card": "Pokaż na karcie",
"new": "Nowy",
@@ -801,12 +801,13 @@
"saturday": "Sobota",
"sunday": "Niedziela",
"status": "Status",
"swimlane": "Diagram czynności",
"swimlane": "Ścieżka",
"owner": "Właściciel",
"last-modified-at": "Ostatnio zmodyfikowano",
"last-activity": "Ostatnia aktywność",
"voting": "Głosowanie",
"archived": "Zarchiwizowany",
"delete-linked-card-before-this-card": "Nie możesz usunąć tej karty, dopóki nie usuniesz podpiętej karty, w której są",
"delete-linked-cards-before-this-list": "Nie możesz usunąć tej karty, dopóki nie usuniesz podpiętych kart, które wskazują na karty w tej liście"
"delete-linked-cards-before-this-list": "Nie możesz usunąć tej karty, dopóki nie usuniesz podpiętych kart, które wskazują na karty w tej liście",
"hide-checked-items": "Ukryj ukończone"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Votação",
"archived": "Arquivado",
"delete-linked-card-before-this-card": "Você não pode excluir este cartão antes de excluir primeiro o cartão vinculado que possui",
"delete-linked-cards-before-this-list": "Você não pode excluir esta lista antes de excluir primeiro os cartões vinculados que estão apontando para os cartões nesta lista"
"delete-linked-cards-before-this-list": "Você não pode excluir esta lista antes de excluir primeiro os cartões vinculados que estão apontando para os cartões nesta lista",
"hide-checked-items": "Esconder itens marcados"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Arquivado",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+4 -3
View File
@@ -256,8 +256,8 @@
"current": "текущий",
"custom-field-delete-pop": "Отменить нельзя. Это удалит настраиваемое поле со всех карт и уничтожит его историю.",
"custom-field-checkbox": "Галочка",
"custom-field-currency": "Currency",
"custom-field-currency-option": "Currency Code",
"custom-field-currency": "Валюта",
"custom-field-currency-option": "Код валюты",
"custom-field-date": "Дата",
"custom-field-dropdown": "Выпадающий список",
"custom-field-dropdown-none": "(нет)",
@@ -808,5 +808,6 @@
"voting": "Голосование",
"archived": "Архивировано",
"delete-linked-card-before-this-card": "Вы не можете удалить карточку, не удалив связанную c ней карточку, которая имеет ",
"delete-linked-cards-before-this-list": "Вы не можете удалить этот список, не удалив карточки, которые указывают на карточки в этом списке"
"delete-linked-cards-before-this-list": "Вы не можете удалить этот список, не удалив карточки, которые указывают на карточки в этом списке",
"hide-checked-items": "Спрятать отмеченные"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+243 -242
View File
@@ -1,208 +1,208 @@
{
"accept": "Acceptera",
"act-activity-notify": "Aktivitetsnotifiering",
"act-addAttachment": "lade till bifogad fil __attachment__ på kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-deleteAttachment": "raderade bifogad fil __attachment__ från kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-addSubtask": "lade till underaktivitet __subtask__ på kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-addLabel": "lade till etikett __label__ på kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-addedLabel": "lade till etikett __label__ på kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-removeLabel": "Tog bort etikett __label__ från kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-removedLabel": "Tog bort etikett __label__ från kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-addChecklist": "lade till checklista __checklist__ på kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-addChecklistItem": "lade till checklistobjekt __checklistItem__ till checklista __checklist__ på kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-removeChecklist": "tag bort checklista __checklist__ från kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-removeChecklistItem": "tog bort checklistobjekt __checklistItem__ från __checklist__ på kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-checkedItem": "bockade av __checklistItem__ från checklista __checklist__ på kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-uncheckedItem": "avmarkerade __checklistItem__ från checklista __checklist__ på kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-completeChecklist": "slutförde checklista __checklist__ i kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-uncompleteChecklist": "ofullbordade checklista __checklist__ på kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-addComment": "kommenterade på kort __card__: __comment__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-editComment": "redigerade kommentar på kort __card__: __comment__ i listan __list__ i simbana __swimlane__ i brädet __board__",
"act-deleteComment": "raderade kommentar på kort __card__: __comment__ i listan __list__ i simbana __swimlane__ i brädet __board__",
"act-createBoard": "skapade anslagstavla __board__",
"act-createSwimlane": "skapade simbana __swimlane__ till anslagstavla __board__",
"act-createCard": "skapade kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-createCustomField": "skapade anpassat fält __customField__ på anslagstavlan __board__",
"act-deleteCustomField": "raderade anpasssat fält __customField__ på bräde __board__",
"act-setCustomField": "redigerade anpassat fält __customField__: __customFieldValue__ på kort __card__ i lista __list__ i simbana __swimlane__ på bräde __board__",
"act-createList": "lade till lista __list__ på anslagstavla __board__",
"act-addBoardMember": "lade till medlem __member__ på anslagstavla __board__",
"act-archivedBoard": "Anslagstavla __board__ flyttad till arkivet",
"act-archivedCard": "Kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__ flyttad till arkivet",
"act-archivedList": "Lista __list__ i simbana __swimlane__ på anslagstavla __board__ flyttad till arkivet",
"act-archivedSwimlane": "Simbana __swimlane__ på anslagstavla __board__ flyttad till arkivet",
"act-importBoard": "importerade board __board__",
"act-importCard": "importerade kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-importList": "importerade lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-joinMember": "lade till medlem __member__ på kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-moveCard": "flyttade kort __card__ på anslagstavla __board__ från lista __oldList__ i sambana __oldSwimlane__ till lista list __list__ i simbana __swimlane__",
"act-moveCardToOtherBoard": "flyttade kort __card__ från lista __oldList__ i simbana __oldSwimlane__ på tavla __oldBoard__ till lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-removeBoardMember": "borttagen medlem __member__  från anslagstavla __board__",
"act-restoredCard": "återställde kort __card__ till lista __lis__ i simbana __swimlane__ på anslagstavla __board__",
"act-unjoinMember": "tog bort medlem __member__ från kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"act-activity-notify": "Aktivitetsnotis",
"act-addAttachment": "lade till bifogad fil __attachment__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-deleteAttachment": "raderade bifogad fil __attachment__ från kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-addSubtask": "lade till underaktivitet __subtask__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-addLabel": "lade till etikett __label__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-addedLabel": "lade till etikett __label__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-removeLabel": "Tog bort etikett __label__ från kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-removedLabel": "Tog bort etikett __label__ från kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-addChecklist": "lade till checklista __checklist__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-addChecklistItem": "lade till checklistobjekt __checklistItem__ till checklista __checklist__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-removeChecklist": "tog bort checklista __checklist__ från kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-removeChecklistItem": "tog bort checklistobjekt __checklistItem__ från __checklist__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-checkedItem": "klarmarkerade __checklistItem__ från checklista __checklist__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-uncheckedItem": "avmarkerade __checklistItem__ från checklista __checklist__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-completeChecklist": "slutförde checklista __checklist__ i kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-uncompleteChecklist": "ofullbordade checklista __checklist__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-addComment": "kommenterade på kort __card__: __comment__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-editComment": "redigerade kommentar på kort __card__: __comment__ i listan __list__ i simbana __swimlane__ på tavla __board__",
"act-deleteComment": "raderade kommentar på kort __card__: __comment__ i listan __list__ i simbana __swimlane__ på tavla __board__",
"act-createBoard": "skapade tavla __board__",
"act-createSwimlane": "skapade simbana __swimlane__ till tavla __board__",
"act-createCard": "skapade kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-createCustomField": "skapade anpassat fält __customField__ på tavla __board__",
"act-deleteCustomField": "raderade anpassat fält __customField__ på tavla __board__",
"act-setCustomField": "redigerade anpassat fält __customField__: __customFieldValue__ på kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-createList": "lade till lista __list__ på tavla __board__",
"act-addBoardMember": "lade till medlem __member__ på tavla __board__",
"act-archivedBoard": "Tavla__board__ flyttad till Arkiv",
"act-archivedCard": "Kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__ flyttad till Arkiv",
"act-archivedList": "Lista __list__ i simbana __swimlane__ på tavla __board__ flyttad till Arkiv",
"act-archivedSwimlane": "Simbana __swimlane__ på tavla __board__ flyttad till Arkiv",
"act-importBoard": "importerade tavla __board__",
"act-importCard": "importerade kort __card__ till lista __list__ i simbana __swimlane__ på tavla __board__",
"act-importList": "importerade lista __list__ till simbana __swimlane__ på tavla __board__",
"act-joinMember": "lade till medlem __member__ till kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-moveCard": "flyttade kort __card__ på tavla __board__ från lista __oldList__ i simbana __oldSwimlane__ till lista __list__ i simbana __swimlane__",
"act-moveCardToOtherBoard": "flyttade kort __card__ från lista __oldList__ i simbana __oldSwimlane__ på tavla __oldBoard__ till lista __list__ i simbana __swimlane__ på tavla __board__",
"act-removeBoardMember": "tog bort medlem __member__ från tavla __board__",
"act-restoredCard": "återställde kort __card__ till lista __list__ i simbana __swimlane__ på tavla __board__",
"act-unjoinMember": "tog bort medlem __member__ från kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"act-withBoardTitle": "__board__",
"act-withCardTitle": "[__board__] __card__",
"actions": "Åtgärder",
"actions": "Händelser",
"activities": "Aktiviteter",
"activity": "Aktivitet",
"activity-added": "Lade %s till %s",
"activity-added": "lade %s till %s",
"activity-archived": "%s flyttades till Arkiv",
"activity-attached": "bifogade %s to %s",
"activity-attached": "bifogade %s till %s",
"activity-created": "skapade %s",
"activity-customfield-created": "skapa anpassat fält %s",
"activity-customfield-created": "skapade anpassat fält %s",
"activity-excluded": "exkluderade %s från %s",
"activity-imported": "importerade %s till %s från %s",
"activity-imported-board": "importerade %s från %s",
"activity-joined": "anslöt sig till %s",
"activity-moved": "tog bort %s från %s till %s",
"activity-joined": "gick med i %s",
"activity-moved": "flyttade %s från %s till %s",
"activity-on": "på %s",
"activity-removed": "tog bort %s från %s",
"activity-sent": "skickade %s till %s",
"activity-unjoined": "gick ur %s",
"activity-subtask-added": "lade till deluppgift till %s",
"activity-checked-item": "kryssad %s i checklistan %s av %s",
"activity-unchecked-item": "okryssad %s i checklistan %s av %s",
"activity-checklist-added": "lade kontrollista till %s",
"activity-checked-item": "klarmarkerade %s i checklistan %s av %s",
"activity-unchecked-item": "avmarkerade %s i checklistan %s av %s",
"activity-checklist-added": "lade till checklista till %s",
"activity-checklist-removed": "tog bort en checklista från %s",
"activity-checklist-completed": "slutförde checklista %s av %s",
"activity-checklist-uncompleted": "inte slutfört checklistan %s av %s",
"activity-checklist-item-added": "lade checklista objekt till '%s' i %s",
"activity-checklist-item-removed": "tog bort en checklista objekt från \"%s\" i %s",
"activity-checklist-uncompleted": "ofullbordade checklistan %s av %s",
"activity-checklist-item-added": "lade till checklistobjekt till \"%s\" i %s",
"activity-checklist-item-removed": "tog bort ett checklistobjekt från \"%s\" i %s",
"add": "Lägg till",
"activity-checked-item-card": "kryssad %s i checklistan %s",
"activity-unchecked-item-card": "okryssad %s i checklistan %s",
"activity-checklist-completed-card": "slutförde checklista __checklist__ i kort __card__ i lista __list__ i simbana __swimlane__ på anslagstavla __board__",
"activity-checklist-uncompleted-card": "icke slutfört checklistan %s",
"activity-editComment": "redigerade kommentaren %s",
"activity-deleteComment": "tog bort kommentaren %s",
"add-attachment": "Lägg till bilaga",
"add-board": "Lägg till anslagstavla",
"add-card": "Lägg till kort",
"add-swimlane": "Lägg till simbana",
"add-subtask": "Lägg till deluppgift",
"add-checklist": "Lägg till checklista",
"add-checklist-item": "Lägg till ett objekt till kontrollista",
"add-cover": "Lägg till omslag",
"add-label": "Lägg till etikett",
"add-list": "Lägg till lista",
"add-members": "Lägg till medlemmar",
"activity-checked-item-card": "klarmarkerade %s i checklistan %s",
"activity-unchecked-item-card": "avmarkerade %s i checklistan %s",
"activity-checklist-completed-card": "slutförde checklista __checklist__ i kort __card__ i lista __list__ i simbana __swimlane__ på tavla __board__",
"activity-checklist-uncompleted-card": "ofullbordade checklistan %s",
"activity-editComment": "redigerade kommentar %s",
"activity-deleteComment": "raderade kommentar %s",
"add-attachment": "Lägg till Bilaga",
"add-board": "Lägg till Tavla",
"add-card": "Lägg till Kort",
"add-swimlane": "Lägg till Simbana",
"add-subtask": "Lägg till Deluppgift",
"add-checklist": "Lägg till Checklista",
"add-checklist-item": "Lägg till ett objekt i checklista",
"add-cover": "Lägg till Omslag",
"add-label": "Lägg till Etikett",
"add-list": "Lägg till Lista",
"add-members": "Lägg till Medlemmar",
"added": "Lades till",
"addMemberPopup-title": "Medlemmar",
"admin": "Adminstratör",
"admin-desc": "Kan visa och redigera kort, ta bort medlemmar och ändra inställningarna för anslagstavlan.",
"admin-desc": "Kan visa och redigera kort, ta bort medlemmar och ändra inställningarna för tavlan.",
"admin-announcement": "Meddelande",
"admin-announcement-active": "Aktivt system-brett meddelande",
"admin-announcement-title": "Meddelande från administratör",
"all-boards": "Alla anslagstavlor",
"admin-announcement-active": "Aktivt Systemövergripande Meddelande",
"admin-announcement-title": "Meddelande från Administratör",
"all-boards": "Alla tavlor",
"and-n-other-card": "Och __count__ annat kort",
"and-n-other-card_plural": "Och __count__ andra kort",
"apply": "Tillämpa",
"app-is-offline": "Läser in, vänligen vänta. Uppdatering av sidan kommer att orsaka förlust av data. Om inläsningen inte fungerar, kontrollera att servern inte har stoppats.",
"archive": "Flytta till Arkiv",
"archive-all": "Flytta alla till Arkiv",
"archive-board": "Flytta Anslagstavla till Arkiv",
"archive-card": "Flytta kort till Arkiv",
"archive-all": "Flytta Alla till Arkiv",
"archive-board": "Flytta Tavla till Arkiv",
"archive-card": "Flytta Kort till Arkiv",
"archive-list": "Flytta Lista till Arkiv",
"archive-swimlane": "Flytta simbanan till arkivet",
"archive-swimlane": "Flytta Simbanan till Arkiv",
"archive-selection": "Flytta markerad till Arkiv",
"archiveBoardPopup-title": "Flytta Anslagstavla till Arkiv?",
"archiveBoardPopup-title": "Flytta Tavla till Arkiv?",
"archived-items": "Arkiv",
"archived-boards": "Anslagstavlor i Arkiv",
"restore-board": "Återställ anslagstavla",
"no-archived-boards": "Inga anslagstavlor i Arkiv.",
"archived-boards": "Tavlor i Arkiv",
"restore-board": "Återställ Tavla",
"no-archived-boards": "Inga Tavlor i Arkiv.",
"archives": "Arkiv",
"template": "Mall",
"templates": "Mallar",
"assign-member": "Tilldela medlem",
"attached": "bifogad",
"attachment": "Bilaga",
"attachment-delete-pop": "Ta bort en bilaga är permanent. Det går inte att ångra.",
"attachmentDeletePopup-title": "Ta bort bilaga?",
"attachment-delete-pop": "Radera en bilaga är permanent. Det går inte att ångra.",
"attachmentDeletePopup-title": "Radera bilaga?",
"attachments": "Bilagor",
"auto-watch": "Bevaka automatiskt anslagstavlor när de skapas",
"auto-watch": "Bevaka automatiskt tavlor när de skapas",
"avatar-too-big": "Avatar är för stor (70KB max)",
"back": "Tillbaka",
"board-change-color": "Ändra färg",
"board-nb-stars": "%s stjärnor",
"board-not-found": "Anslagstavla hittades inte",
"board-private-info": "Denna anslagstavla kommer att vara <strong>privat</strong>.",
"board-public-info": "Denna anslagstavla kommer att vara <strong>publik</strong>.",
"boardChangeColorPopup-title": "Ändra bakgrund på anslagstavla",
"boardChangeTitlePopup-title": "Byt namn på anslagstavla",
"boardChangeVisibilityPopup-title": "Ändra synlighet",
"boardChangeWatchPopup-title": "Ändra bevaka",
"boardMenuPopup-title": "Anslagstavlans inställningar",
"boardChangeViewPopup-title": "Anslagstavelsvy",
"boards": "Anslagstavlor",
"board-view": "Anslagstavelsvy",
"board-not-found": "Tavla hittades inte",
"board-private-info": "Denna tavla kommer att vara <strong>privat</strong>.",
"board-public-info": "Denna tavla kommer att vara <strong>publik</strong>.",
"boardChangeColorPopup-title": "Ändra Tavelbakgrund",
"boardChangeTitlePopup-title": "Byt namn på Tavla",
"boardChangeVisibilityPopup-title": "Ändra Synlighet",
"boardChangeWatchPopup-title": "Ändra Bevakning",
"boardMenuPopup-title": "Tavelinställningar",
"boardChangeViewPopup-title": "Tavelvy",
"boards": "Tavlor",
"board-view": "Tavelvy",
"board-view-cal": "Kalender",
"board-view-swimlanes": "Simbanor",
"board-view-collapse": "Kollapsa",
"board-view-collapse": "Fäll ihop",
"board-view-lists": "Listor",
"bucket-example": "Gilla \"att-göra-innan-jag-dör-lista\" till exempel",
"cancel": "Avbryt",
"card-archived": "Detta kort är flyttat till Arkiv.",
"board-archived": "Den här anslagstavlan är flyttad till Arkiv.",
"board-archived": "Den här tavlan är flyttad till Arkiv.",
"card-comments-title": "Detta kort har %s kommentar.",
"card-delete-notice": "Ta bort är permanent. Du kommer att förlora alla åtgärder i samband med detta kort.",
"card-delete-pop": "Alla åtgärder kommer att tas bort från aktivitetsflöde och du kommer inte att kunna öppna kortet igen. Det går inte att ångra.",
"card-delete-suggest-archive": "Du kan flytta ett kort för att Arkiv för att ta bort det från anslagstavlan och bevara aktiviteten.",
"card-delete-notice": "Radering är permanent. Du kommer att förlora alla händelser kopplade till detta kort.",
"card-delete-pop": "Alla händelser kommer att tas bort från aktivitetsflödet och du kommer inte att kunna öppna kortet igen. Det går inte att ångra.",
"card-delete-suggest-archive": "Du kan flytta ett kort till Arkiv för att ta bort det från tavlan och bevara aktiviteten.",
"card-due": "Förfaller",
"card-due-on": "Förfaller på",
"card-spent": "Spenderad tid",
"card-edit-attachments": "Redigera bilaga",
"card-spent": "Spenderad Tid",
"card-edit-attachments": "Redigera bilagor",
"card-edit-custom-fields": "Redigera anpassade fält",
"card-edit-labels": "Redigera etiketter",
"card-edit-members": "Redigera medlemmar",
"card-labels-title": "Ändra etiketter för kortet.",
"card-members-title": "Lägg till eller ta bort medlemmar av anslagstavlan från kortet.",
"card-labels-title": "Ändra etiketterna för kortet.",
"card-members-title": "Lägg till eller ta bort medlemmar i tavlan från kortet.",
"card-start": "Börja",
"card-start-on": "Börja med",
"cardAttachmentsPopup-title": "Bifoga från",
"card-start-on": "Börjar med",
"cardAttachmentsPopup-title": "Bifoga Från",
"cardCustomField-datePopup-title": "Ändra datum",
"cardCustomFieldsPopup-title": "Redigera anpassade fält",
"cardStartVotingPopup-title": "Påbörja en omröstning",
"positiveVoteMembersPopup-title": "Förespråkare",
"negativeVoteMembersPopup-title": "Opponenter",
"card-edit-voting": "Redigera röstning",
"editVoteEndDatePopup-title": "Ändra slutdatum för röstning",
"card-edit-voting": "Redigera omröstning",
"editVoteEndDatePopup-title": "Ändra slutdatum för omröstning",
"allowNonBoardMembers": "Tillåt alla inloggade användare",
"vote-question": "Omröstningsfråga",
"vote-public": "Visa vem som röstade på vad",
"vote-for-it": "för",
"vote-against": "emot",
"deleteVotePopup-title": "Radera röstning?",
"vote-delete-pop": "Radering är permanent. Du kommer förlora alla aktiviteter som hör till denna röstning.",
"cardDeletePopup-title": "Ta bort kort?",
"cardDetailsActionsPopup-title": "Kortåtgärder",
"deleteVotePopup-title": "Radera omröstning?",
"vote-delete-pop": "Radering är permanent. Du kommer förlora alla händelser kopplade till denna röstning.",
"cardDeletePopup-title": "Radera Kort?",
"cardDetailsActionsPopup-title": "Korthändelser",
"cardLabelsPopup-title": "Etiketter",
"cardMembersPopup-title": "Medlemmar",
"cardMorePopup-title": "Mera",
"cardMorePopup-title": "Mer",
"cardTemplatePopup-title": "Skapa mall",
"cards": "Kort",
"cards-count": "Kort",
"casSignIn": "Logga in med CAS",
"cardType-card": "Kort",
"cardType-linkedCard": "Länkat kort",
"cardType-linkedBoard": "Länkad anslagstavla",
"cardType-linkedCard": "Länkat Kort",
"cardType-linkedBoard": "Länkad Tavla",
"change": "Ändra",
"change-avatar": "Ändra avatar",
"change-password": "Ändra lösenord",
"change-avatar": "Ändra Avatar",
"change-password": "Ändra Lösenord",
"change-permissions": "Ändra behörigheter",
"change-settings": "Ändra inställningar",
"changeAvatarPopup-title": "Ändra avatar",
"changeLanguagePopup-title": "Ändra språk",
"changePasswordPopup-title": "Ändra lösenord",
"changePermissionsPopup-title": "Ändra behörigheter",
"changeSettingsPopup-title": "Ändra inställningar",
"changeAvatarPopup-title": "Ändra Avatar",
"changeLanguagePopup-title": "Ändra Språk",
"changePasswordPopup-title": "Ändra Lösenord",
"changePermissionsPopup-title": "Ändra Behörigheter",
"changeSettingsPopup-title": "Ändra Inställningar",
"subtasks": "Deluppgifter",
"checklists": "Kontrollistor",
"click-to-star": "Klicka för att stjärnmärka denna anslagstavla.",
"click-to-unstar": "Klicka för att ta bort stjärnmärkningen från denna anslagstavla.",
"clipboard": "Urklipp eller dra och släpp",
"checklists": "Checklistor",
"click-to-star": "Klicka för att stjärnmärka denna tavla.",
"click-to-unstar": "Klicka för att ta bort stjärnmärkningen från denna tavla.",
"clipboard": "Urklipp eller dra & släpp",
"close": "Stäng",
"close-board": "Stäng anslagstavla",
"close-board-pop": "Du kommer att kunna återställa anslagstavlan genom att klicka på knappen \"Arkiv\" från hemrubriken.",
"close-board": "Stäng Tavla",
"close-board-pop": "Du kommer att kunna återställa tavlan genom att klicka på knappen \"Arkiv\" i huvudmenyn.",
"color-black": "svart",
"color-blue": "blå",
"color-crimson": "mörkröd",
@@ -217,7 +217,7 @@
"color-navy": "marinblå",
"color-orange": "orange",
"color-paleturquoise": "turkos",
"color-peachpuff": "ersika",
"color-peachpuff": "persika",
"color-pink": "rosa",
"color-plum": "lila",
"color-purple": "lila",
@@ -236,79 +236,79 @@
"no-comments": "Inga kommentarer",
"no-comments-desc": "Kan inte se kommentarer och aktiviteter.",
"worker": "Worker",
"worker-desc": "Kan endast flytta kort, tilldela sig kort och kommentera.",
"worker-desc": "Kan endast flytta kort, tilldela sig själv till kort och kommentera.",
"computer": "Dator",
"confirm-subtask-delete-dialog": "Är du säker på att du vill radera deluppgift?",
"confirm-checklist-delete-dialog": "Är du säker på att du vill radera checklista?",
"copy-card-link-to-clipboard": "Kopiera kortlänk till urklipp",
"linkCardPopup-title": "Länka kort",
"linkCardPopup-title": "Länka Kort",
"searchElementPopup-title": "Sök",
"copyCardPopup-title": "Kopiera kort",
"copyChecklistToManyCardsPopup-title": "Kopiera checklist-mallen till flera kort",
"copyCardPopup-title": "Kopiera Kort",
"copyChecklistToManyCardsPopup-title": "Kopiera Checklistmallen till Flera Kort",
"copyChecklistToManyCardsPopup-instructions": "Destinationskorttitlar och beskrivningar i detta JSON-format",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"Första kortets titel\", \"description\":\"Första kortets beskrivning\"}, {\"title\":\"Andra kortets titel\",\"description\":\"Andra kortets beskrivning\"},{\"title\":\"Sista kortets titel\",\"description\":\"Sista kortets beskrivning\"} ]",
"create": "Skapa",
"createBoardPopup-title": "Skapa anslagstavla",
"chooseBoardSourcePopup-title": "Importera anslagstavla",
"createLabelPopup-title": "Skapa etikett",
"createCustomField": "Skapa fält",
"createCustomFieldPopup-title": "Skapa fält",
"createBoardPopup-title": "Skapa Tavla",
"chooseBoardSourcePopup-title": "Importera tavla",
"createLabelPopup-title": "Skapa Etikett",
"createCustomField": "Skapa Fält",
"createCustomFieldPopup-title": "Skapa Fält",
"current": "aktuell",
"custom-field-delete-pop": "Det går inte att ångra. Detta tar bort det här anpassade fältet från alla kort och förstör dess historia.",
"custom-field-delete-pop": "Det går inte att ångra. Detta tar bort det här anpassade fältet från alla kort och förstör dess historik.",
"custom-field-checkbox": "Kryssruta",
"custom-field-currency": "Currency",
"custom-field-currency-option": "Currency Code",
"custom-field-currency": "Valuta",
"custom-field-currency-option": "Valutakod",
"custom-field-date": "Datum",
"custom-field-dropdown": "Rullgardingsmeny",
"custom-field-dropdown": "Rullgardinsmeny",
"custom-field-dropdown-none": "(inga)",
"custom-field-dropdown-options": "Listalternativ",
"custom-field-dropdown-options-placeholder": "Tryck på enter för att lägga till fler alternativ",
"custom-field-dropdown-unknown": "(okänd)",
"custom-field-number": "Nummer",
"custom-field-text": "Text",
"custom-fields": "Anpassade fält",
"custom-fields": "Anpassade Fält",
"date": "Datum",
"decline": "Nedgång",
"default-avatar": "Standard avatar",
"delete": "Ta bort",
"deleteCustomFieldPopup-title": "Ta bort anpassade fält?",
"deleteLabelPopup-title": "Ta bort etikett?",
"deleteCustomFieldPopup-title": "Radera Anpassat Fält?",
"deleteLabelPopup-title": "Radera Etikett?",
"description": "Beskrivning",
"disambiguateMultiLabelPopup-title": "Otvetydig etikettåtgärd",
"disambiguateMultiMemberPopup-title": "Otvetydig medlemsåtgärd",
"discard": "Kassera",
"disambiguateMultiLabelPopup-title": "Precisera Etiketthändelse",
"disambiguateMultiMemberPopup-title": "Precisera Medlemshändelse",
"discard": "Ignorera",
"done": "Färdig",
"download": "Hämta",
"edit": "Redigera",
"edit-avatar": "Ändra avatar",
"edit-profile": "Redigera profil",
"edit-wip-limit": "Redigera WIP-gränsen",
"soft-wip-limit": "Mjuk WIP-gräns",
"edit-avatar": "Ändra Avatar",
"edit-profile": "Redigera Profil",
"edit-wip-limit": "Redigera WIP Gräns",
"soft-wip-limit": "Mjuk WIP Gräns",
"editCardStartDatePopup-title": "Ändra startdatum",
"editCardDueDatePopup-title": "Ändra förfallodatum",
"editCustomFieldPopup-title": "Redigera fält",
"editCustomFieldPopup-title": "Redigera Fält",
"editCardSpentTimePopup-title": "Ändra spenderad tid",
"editLabelPopup-title": "Ändra etikett",
"editNotificationPopup-title": "Redigera avisering",
"editProfilePopup-title": "Redigera profil",
"editLabelPopup-title": "Ändra Etikett",
"editNotificationPopup-title": "Redigera Notis",
"editProfilePopup-title": "Redigera Profil",
"email": "E-post",
"email-enrollAccount-subject": "Ett konto skapas för dig på __siteName__",
"email-enrollAccount-text": "Hej __user__,\n\nFör att börja använda tjänsten, klicka på länken nedan.\n\n__url__\n\nTack.",
"email-enrollAccount-subject": "Ett konto skapat för dig på __siteName__",
"email-enrollAccount-text": "Hej __user__,\n\nFör att börja använda tjänsten, klicka på länken nedan.\n\n__url__\n\nTack!",
"email-fail": "Sändning av e-post misslyckades",
"email-fail-text": "Ett fel vid försök att skicka e-post",
"email-invalid": "Ogiltig e-post",
"email-invite": "Bjud in via e-post",
"email-invite": "Bjud in via E-post",
"email-invite-subject": "__inviter__ skickade dig en inbjudan",
"email-invite-text": "Bästa __user__,\n\n__inviter__ inbjuder dig till anslagstavlan \"__board__\" för samarbete.\n\nFölj länken nedan:\n\n__url__\n\nTack.",
"email-invite-text": "Kära __user__,\n\n__inviter__ inbjuder dig till tavlan \"__board__\" för samarbete.\n\nFölj länken nedan:\n\n__url__\n\nTack.",
"email-resetPassword-subject": "Återställa lösenordet för __siteName__",
"email-resetPassword-text": "Hej __user__,\n\nFör att återställa ditt lösenord, klicka på länken nedan.\n\n__url__\n\nTack.",
"email-resetPassword-text": "Hej __user__,\n\nFör att återställa ditt lösenord, klicka på länken nedan.\n\n__url__\n\nTack!",
"email-sent": "E-post skickad",
"email-verifyEmail-subject": "Verifiera din e-post adress på __siteName__",
"email-verifyEmail-text": "Hej __user__,\n\nFör att verifiera din konto e-post, klicka på länken nedan.\n\n__url__\n\nTack.",
"enable-wip-limit": "Aktivera WIP-gräns",
"error-board-doesNotExist": "Denna anslagstavla finns inte",
"error-board-notAdmin": "Du måste vara administratör för denna anslagstavla för att göra det",
"error-board-notAMember": "Du måste vara medlem i denna anslagstavla för att göra det",
"email-verifyEmail-text": "Hej __user__,\n\nFör att verifiera din konto e-post, klicka på länken nedan.\n\n__url__\n\nTack!",
"enable-wip-limit": "Aktivera WIP Gräns",
"error-board-doesNotExist": "Denna tavla finns inte",
"error-board-notAdmin": "Du måste vara administratör för denna tavla för att göra det",
"error-board-notAMember": "Du måste vara medlem i denna tavla för att göra det",
"error-json-malformed": "Din text är inte giltigt JSON",
"error-json-schema": "Din JSON data inkluderar inte korrekt information i rätt format",
"error-csv-schema": "Din CSV(Comma Separated Values)/TSV (Tab Separated Values) innehåller inte korrekt information i rätt format.",
@@ -318,12 +318,12 @@
"error-user-notCreated": "Den här användaren har inte skapats",
"error-username-taken": "Detta användarnamn är redan taget",
"error-email-taken": "E-post har redan tagits",
"export-board": "Exportera anslagstavla",
"export-board": "Exportera tavla",
"export-board-json": "Exportera tavla till JSON",
"export-board-csv": "Expoertera tavla till CSV",
"export-board-tsv": "Exportera tavla till TSV",
"export-board-html": "Export board to HTML",
"exportBoardPopup-title": "Exportera anslagstavla",
"export-board-html": "Exportera tavla till HTML",
"exportBoardPopup-title": "Exportera tavla",
"sort": "Sortera",
"sort-desc": "Klicka för att sortera listan",
"list-sort-by": "Sortera listan efter:",
@@ -339,38 +339,38 @@
"filter-clear": "Rensa filter",
"filter-no-label": "Ingen etikett",
"filter-no-member": "Ingen medlem",
"filter-no-assignee": "Inte tilldelad någon",
"filter-no-assignee": "Inte tilldelad",
"filter-no-custom-fields": "Inga anpassade fält",
"filter-show-archive": "Visa arkiverade listor",
"filter-hide-empty": "Dölj tomma listor",
"filter-on": "Filter är på",
"filter-on-desc": "Du filtrerar kort på denna anslagstavla. Klicka här för att redigera filter.",
"filter-on-desc": "Du filtrerar kort på denna tavla. Klicka här för att redigera filter.",
"filter-to-selection": "Filter till val",
"advanced-filter-label": "Avancerat filter",
"advanced-filter-description": "Avancerade filter låter dig skriva en sträng innehållande följande operatorer: == != <= >= && || ( ). Ett mellanslag används som separator mellan operatorerna. Du kan filtrera alla specialfält genom att skriva dess namn och värde. Till exempel: Fält1 == Vårde1. Notera: om fälten eller värden innehåller mellanrum behöver du innesluta dem med enkla citatstecken. Till exempel: 'Fält 1' == 'Värde 1'. För att skippa enkla kontrolltecken (' \\/) kan du använda \\. Till exempel: Fält1 == I\\'m. Du kan även kombinera fler villkor. TIll exempel: F1 == V1 || F1 == V2. Vanligtvis läses operatorerna från vänster till höger. Du kan ändra ordning genom att använda paranteser. TIll exempel: F1 == V1 && ( F2 == V2 || F2 == V3 ). Du kan även söka efter textfält med hjälp av regex: F1 == /Tes.*/i",
"fullname": "Namn",
"header-logo-title": "Gå tillbaka till din anslagstavlor-sida.",
"hide-system-messages": "Dölj systemmeddelanden",
"headerBarCreateBoardPopup-title": "Skapa anslagstavla",
"headerBarCreateBoardPopup-title": "Skapa Tavla",
"home": "Hem",
"import": "Importera",
"link": "Länk",
"import-board": "importera anslagstavla",
"import-board-c": "Importera anslagstavla",
"import-board-title-trello": "Importera anslagstavla från Trello",
"import-board-title-wekan": "Importera anslagstavla från tidigare export",
"import-board": "importera tavla",
"import-board-c": "Importera tavla",
"import-board-title-trello": "Importera tavla från Trello",
"import-board-title-wekan": "Importera tavla från tidigare export",
"import-board-title-csv": "Importera tavla från CSV/TSV",
"from-trello": "Från Trello",
"from-wekan": "Från tidigare export",
"from-csv": "Från CSV/TSV",
"import-board-instruction-trello": "I din Trello-anslagstavla, gå till 'Meny', sedan 'Mera', 'Skriv ut och exportera', 'Exportera JSON' och kopiera den resulterande text.",
"import-board-instruction-trello": "I din Trello-tavla, gå till 'Meny', sedan 'Mera', 'Skriv ut och exportera', 'Exportera JSON' och kopiera den resulterande text.",
"import-board-instruction-csv": "Klistra in Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "På din anslagstavla, gå till \"Meny\", sedan \"Exportera anslagstavla\" och kopiera texten i den hämtade filen.",
"import-board-instruction-about-errors": "Om du får fel vid import av anslagstavla, ibland importerar fortfarande fungerar, och styrelsen är på alla sidor för anslagstavlor.",
"import-board-instruction-wekan": "På din tavla, gå till \"Meny\", sedan \"Exportera tavla\" och kopiera texten i den hämtade filen.",
"import-board-instruction-about-errors": "If you get errors when importing board, sometimes importing still works, and board is at All Boards page.",
"import-json-placeholder": "Klistra in giltigt JSON data här",
"import-csv-placeholder": "Klistra in CSV/TSV-data här",
"import-csv-placeholder": "Klistra in CSV/TSV data här",
"import-map-members": "Kartlägg medlemmar",
"import-members-map": "Din importerade anslagstavla har några medlemmar. Vänligen kartlägg medlemmarna du vill importera till dina användare",
"import-members-map": "Din importerade tavla har några medlemmar. Vänligen matcha medlemmarna du vill importera mot dina användare",
"import-show-user-mapping": "Granska medlemskartläggning",
"import-user-select": "Välj din befintliga användare du vill använda som den här medlemmen",
"importMapMembersAddPopup-title": "Välj medlem",
@@ -380,32 +380,32 @@
"invalid-time": "Ogiltig tid",
"invalid-user": "Ogiltig användare",
"joined": "gick med",
"just-invited": "Du blev nyss inbjuden till denna anslagstavla",
"just-invited": "Du blev nyss inbjuden till denna tavla",
"keyboard-shortcuts": "Tangentbordsgenvägar",
"label-create": "Skapa etikett",
"label-default": "%s etikett (standard)",
"label-delete-pop": "Det finns ingen ångra. Detta tar bort denna etikett från alla kort och förstöra dess historik.",
"label-delete-pop": "Det går inte att ångra. Detta tar bort denna etikett från alla kort och förstör dess historik.",
"labels": "Etiketter",
"language": "Språk",
"last-admin-desc": "Du kan inte ändra roller för det måste finnas minst en administratör.",
"leave-board": "Lämna anslagstavla",
"leave-board-pop": "Är du säker på att du vill lämna __boardTitle__? Du kommer att tas bort från alla kort på den här anslagstavlan.",
"leaveBoardPopup-title": "Lämna anslagstavla ?",
"leave-board": "Lämna Tavla",
"leave-board-pop": "Är du säker på att du vill lämna __boardTitle__? Du kommer att tas bort från alla kort på den här tavlan.",
"leaveBoardPopup-title": "Lämna Tavla ?",
"link-card": "Länk till detta kort",
"list-archive-cards": "Flytta alla kort i den här listan till Arkiv",
"list-archive-cards-pop": "Detta kommer att ta bort alla kort i denna lista från anslagstavlan. För att visa kort i Arkiv och få dem tillbaka till anslagstavlan, klicka på \"Meny\" > \"Arkiv\".",
"list-archive-cards-pop": "Detta kommer att ta bort alla kort i denna lista från tavlan. För att visa kort i Arkiv och få dem tillbaka till tavlan, klicka på \"Meny\" > \"Arkiv\".",
"list-move-cards": "Flytta alla kort i denna lista",
"list-select-cards": "Välj alla kort i denna lista",
"set-color-list": "Ange färg",
"listActionPopup-title": "Liståtgärder",
"swimlaneActionPopup-title": "Simbana-åtgärder",
"swimlaneAddPopup-title": "Lägg till en simbana nedan",
"swimlaneAddPopup-title": "Lägg till en Simbana nedan",
"listImportCardPopup-title": "Importera ett Trello kort",
"listImportCardsTsvPopup-title": "Importera Excel CSV/TSV",
"listMorePopup-title": "Mera",
"link-list": "Länk till den här listan",
"list-delete-pop": "Alla åtgärder kommer att tas bort från aktivitetsmatningen och du kommer inte att kunna återställa listan. Det går inte att ångra.",
"list-delete-suggest-archive": "Du kan flytta en lista till Arkiv för att ta bort den från anslagstavlan och bevara aktiviteten.",
"list-delete-pop": "Alla händelser kommer att tas bort från aktivitetsflödet och du kommer inte att kunna återställa listan. Det går inte att ångra.",
"list-delete-suggest-archive": "Du kan flytta en lista till Arkiv för att ta bort den från tavlan och bevara aktiviteten.",
"lists": "Listor",
"swimlanes": "Simbanor",
"log-out": "Logga ut",
@@ -422,12 +422,12 @@
"multi-selection": "Flerval",
"multi-selection-on": "Flerval är på",
"muted": "Tystad",
"muted-info": "Du kommer aldrig att meddelas om eventuella ändringar i denna anslagstavla",
"muted-info": "Du kommer aldrig att få notiser om eventuella ändringar i denna tavla",
"my-boards": "Mina anslagstavlor",
"name": "Namn",
"no-archived-cards": "Inga kort i Arkiv.",
"no-archived-lists": "Inga listor i Arkiv.",
"no-archived-swimlanes": "Inga simbanor i arkivet.",
"no-archived-swimlanes": "Inga simbanor i Arkiv.",
"no-results": "Inga reslutat",
"normal": "Normal",
"normal-desc": "Kan se och redigera kort. Kan inte ändra inställningar.",
@@ -445,26 +445,26 @@
"previewAttachedImagePopup-title": "Förhandsvisning",
"previewClipboardImagePopup-title": "Förhandsvisning",
"private": "Privat",
"private-desc": "Denna anslagstavla är privat. Endast personer tillagda till anslagstavlan kan se och redigera den.",
"private-desc": "Denna tavla är privat. Endast personer tillagda i tavlan kan se och redigera den.",
"profile": "Profil",
"public": "Officiell",
"public-desc": "Denna anslagstavla är offentlig. Den är synligt för alla med länken och kommer att dyka upp i sökmotorer som Google. Endast personer tillagda till anslagstavlan kan redigera.",
"quick-access-description": "Stjärnmärk en anslagstavla för att lägga till en genväg i detta fält.",
"remove-cover": "Ta bort omslag",
"remove-from-board": "Ta bort från anslagstavla",
"remove-label": "Ta bort etikett",
"public-desc": "Denna tavla är offentlig. Den är synlig för alla med länken och kommer att dyka upp i sökmotorer som Google. Endast personer tillagda i tavlan kan redigera.",
"quick-access-description": "Stjärnmärk en tavla för att lägga till en genväg i detta fält.",
"remove-cover": "Ta bort Omslag",
"remove-from-board": "Ta bort från Tavla",
"remove-label": "Ta bort Etikett",
"listDeletePopup-title": "Ta bort lista",
"remove-member": "Ta bort medlem",
"remove-member-from-card": "Ta bort från kort",
"remove-member-pop": "Ta bort __name__ (__username__) från __boardTitle__? Medlemmen kommer att bli borttagen från alla kort i denna anslagstavla. De kommer att få en avisering.",
"removeMemberPopup-title": "Ta bort medlem?",
"remove-member": "Ta bort Medlem",
"remove-member-from-card": "Ta bort från Kort",
"remove-member-pop": "Ta bort __name__ (__username__) från __boardTitle__? Medlemmen kommer att bli borttagen från alla kort i denna tavla. De kommer att få en notis.",
"removeMemberPopup-title": "Ta bort Medlem?",
"rename": "Byt namn",
"rename-board": "Byt namn på anslagstavla",
"rename-board": "Byt namn på Tavla",
"restore": "Återställ",
"save": "Spara",
"search": "Sök",
"rules": "Regler",
"search-cards": "Sök i kort- och listtitlar, beskrivningar och anpassade fält på denna anslagstavla",
"search-cards": "Sök i kort- och listtitlar, beskrivningar och anpassade fält på denna tavla",
"search-example": "Text att söka efter?",
"select-color": "Välj färg",
"set-wip-limit-value": "Ange en gräns för det maximala antalet uppgifter i den här listan",
@@ -482,12 +482,12 @@
"sidebar-open": "Stäng sidofält",
"sidebar-close": "Stäng sidofält",
"signupPopup-title": "Skapa ett konto",
"star-board-title": "Klicka för att stjärnmärka denna anslagstavla. Den kommer att visas högst upp på din lista över anslagstavlor.",
"star-board-title": "Klicka för att stjärnmärka denna tavla. Den kommer att visas högst upp på din lista över tavlor.",
"starred-boards": "Stjärnmärkta anslagstavlor",
"starred-boards-description": "Stjärnmärkta anslagstavlor visas högst upp på din lista över anslagstavlor.",
"subscribe": "Prenumenera",
"team": "Grupp",
"this-board": "denna anslagstavla",
"this-board": "denna tavla",
"this-card": "detta kort",
"spent-time-hours": "Spenderad tid (timmar)",
"overtime-hours": "Övertid (timmar)",
@@ -510,13 +510,13 @@
"warn-list-archived": "varning: detta kort finns i en lista i Arkiv",
"watch": "Bevaka",
"watching": "Bevaka",
"watching-info": "Du kommer att meddelas om alla ändringar på denna anslagstavla",
"watching-info": "Du kommer att få notis om alla ändringar på denna tavla",
"welcome-board": "Välkomstanslagstavla",
"welcome-swimlane": "Milstolpe 1",
"welcome-list1": "Grunderna",
"welcome-list2": "Avancerad",
"card-templates-swimlane": "Kortmallar",
"list-templates-swimlane": "Listmalla",
"list-templates-swimlane": "Listmallar",
"board-templates-swimlane": "Tavelmallar",
"what-to-do": "Vad vill du göra?",
"wipLimitErrorPopup-title": "Ogiltig WIP-gräns",
@@ -543,8 +543,8 @@
"send-smtp-test": "Skicka ett prov e-postmeddelande till dig själv",
"invitation-code": "Inbjudningskod",
"email-invite-register-subject": "__inviter__ skickade dig en inbjudan",
"email-invite-register-text": "Kära__user__,\n\n__inviter__ bjuder in dig att samarbeta på kanban-anslagstavlan.\n\nFölj länken nedan:\n__url__\n\nDin inbjudningskod är: __icode__\n\nTack!",
"email-smtp-test-subject": "SMTP test-email",
"email-invite-register-text": "Kära__user__,\n\n__inviter__ bjuder in dig att samarbeta på kanban-tavla.\n\nFölj länken nedan:\n__url__\n\nDin inbjudningskod är: __icode__\n\nTack!",
"email-smtp-test-subject": "SMTP Test E-post",
"email-smtp-test-text": "Du har skickat ett e-postmeddelande",
"error-invitation-code-not-exist": "Inbjudningskod finns inte",
"error-notAuthorized": "Du är inte behörig att se den här sidan.",
@@ -553,10 +553,10 @@
"outgoing-webhooks": "Utgående Webhookar",
"bidirectional-webhooks": "Dubbelriktade Webhookar",
"outgoingWebhooksPopup-title": "Utgående Webhookar",
"boardCardTitlePopup-title": "Korttitelfiler",
"disable-webhook": "Avaktivera denna webhook",
"global-webhook": "Globala webhooks",
"new-outgoing-webhook": "Ny utgående webhook",
"boardCardTitlePopup-title": "Korttitelfilter",
"disable-webhook": "Avaktivera Denna Webhook",
"global-webhook": "Globala Webhooks",
"new-outgoing-webhook": "Ny Utgående Webhook",
"no-name": "(Okänd)",
"Node_version": "Nodversion",
"Meteor_version": "Meteor-version",
@@ -599,40 +599,40 @@
"setListColorPopup-title": "Välj en färg",
"assigned-by": "Tilldelad av",
"requested-by": "Efterfrågad av",
"board-delete-notice": "Borttagningen är permanent. Du kommer förlora alla listor, kort och händelser kopplade till den här anslagstavlan.",
"delete-board-confirm-popup": "Alla listor, kort, etiketter och aktiviteter kommer tas bort och du kommer inte kunna återställa anslagstavlans innehåll. Det går inte att ångra.",
"boardDeletePopup-title": "Ta bort anslagstavla?",
"delete-board": "Ta bort anslagstavla",
"board-delete-notice": "Radering är permanent. Du kommer förlora alla listor, kort och händelser kopplade till den här tavlan.",
"delete-board-confirm-popup": "Alla listor, kort, etiketter och aktiviteter kommer tas bort och du kommer inte kunna återställa tavlans innehåll. Det går inte att ångra.",
"boardDeletePopup-title": "Ta bort Tavla?",
"delete-board": "Ta bort Tavla",
"default-subtasks-board": "Deluppgifter för __board__ board",
"default": "Standard",
"queue": "Kö",
"subtask-settings": "Deluppgift inställningar",
"card-settings": "Kortinställningar",
"boardSubtaskSettingsPopup-title": "Deluppgiftsinställningar för anslagstavla",
"boardSubtaskSettingsPopup-title": "Tavelinställningar för Deluppgifter",
"boardCardSettingsPopup-title": "Kortinställningar",
"deposit-subtasks-board": "Insättnings deluppgifter på denna anslagstavla:",
"deposit-subtasks-board": "Lägg till deluppgifter till denna tavla:",
"deposit-subtasks-list": "Landningslista för deluppgifter deponerade här:",
"show-parent-in-minicard": "Visa förälder i minikort:",
"show-parent-in-minicard": "Visa överordnad i minikort:",
"prefix-with-full-path": "Prefix med fullständig sökväg",
"prefix-with-parent": "Prefix med förälder",
"prefix-with-parent": "Prefix med överordnad",
"subtext-with-full-path": "Undertext med fullständig sökväg",
"subtext-with-parent": "Undertext med förälder",
"change-card-parent": "Ändra kortets förälder",
"subtext-with-parent": "Undertext med överordnad",
"change-card-parent": "Ändra kortets överordnad",
"parent-card": "Ovankort",
"source-board": "Källa för anslagstavla",
"no-parent": "Visa inte förälder",
"source-board": "Tavelkälla",
"no-parent": "Visa inte överordnad",
"activity-added-label": "lade till etiketten '%s' till %s",
"activity-removed-label": "tog bort etiketten '%s' från %s",
"activity-delete-attach": "raderade en bilaga från %s",
"activity-added-label-card": "lade till etiketten \"%s\"",
"activity-removed-label-card": "tog bort etiketten \"%s\"",
"activity-delete-attach-card": "tog bort en bilaga",
"activity-set-customfield": "ställ in anpassat fält '%s' till '%s' i %s",
"activity-unset-customfield": "Koppla bort anpassat fält '%s' i %s",
"activity-set-customfield": "ställ in anpassat fält \"%s\" till \"%s\" i %s",
"activity-unset-customfield": "koppla bort anpassat fält \"%s\" i %s",
"r-rule": "Regel",
"r-add-trigger": "Lägg till utlösare",
"r-add-action": "Lägg till åtgärd",
"r-board-rules": "Regler för anslagstavla",
"r-board-rules": "Tavelregler",
"r-add-rule": "Lägg till regel",
"r-view-rule": "Visa regel",
"r-delete-rule": "Ta bort regel",
@@ -643,7 +643,7 @@
"r-is-moved": "är flyttad",
"r-added-to": "Tillagd till",
"r-removed-from": "Borttagen från",
"r-the-board": "anslagstavlan",
"r-the-board": "tavlan",
"r-list": "lista",
"set-filter": "Ställ in filter",
"r-moved-to": "Flyttad till",
@@ -652,7 +652,7 @@
"r-unarchived": "Återställd från Arkiv",
"r-a-card": "ett kort",
"r-when-a-label-is": "När en etikett är",
"r-when-the-label": "När etiketten är",
"r-when-the-label": "När etiketten",
"r-list-name": "listnamn",
"r-when-a-member": "När en medlem är",
"r-when-the-member": "När medlemmen",
@@ -662,7 +662,7 @@
"r-when-the-checklist": "När checklistan",
"r-completed": "Avslutad",
"r-made-incomplete": "Gjord ofullständig",
"r-when-a-item": "När ett checklistobjekt ä",
"r-when-a-item": "När ett checklistobjekt är",
"r-when-the-item": "När checklistans objekt",
"r-checked": "Kryssad",
"r-unchecked": "Okryssad",
@@ -724,7 +724,7 @@
"r-add-swimlane": "Lägg till simbana",
"r-swimlane-name": "Simbanans namn",
"r-board-note": "Notera: lämna ett fält tomt för att matcha alla möjliga värden.",
"r-checklist-note": "Notera: Objekt i en checklista måste skrivas som kommaseparerade objekt",
"r-checklist-note": "Notera: objekt i en checklista måste skrivas som kommaseparerade värden.",
"r-when-a-card-is-moved": "När ett kort flyttas till en annan lista",
"r-set": "Ange",
"r-update": "Uppdatera",
@@ -749,10 +749,10 @@
"error-ldap-login": "Ett fel uppstod när du försökte logga in",
"display-authentication-method": "Visa autentiseringsmetod",
"default-authentication-method": "Standard autentiseringsmetod",
"duplicate-board": "Dubblett anslagstavla",
"duplicate-board": "Duplicera Tavla",
"people-number": "Antalet personer är:",
"swimlaneDeletePopup-title": "Delete Swimlane ?",
"swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.",
"swimlaneDeletePopup-title": "Radera Simbana ?",
"swimlane-delete-pop": "Alla händelser kommer att tas bort från aktivitetsflödet och du kommer inte att kunna återställa simbanan. Det går inte att ångra.",
"restore-all": "Återställ alla",
"delete-all": "Ta bort alla",
"loading": "Läser in, var god vänta.",
@@ -781,11 +781,11 @@
"assignee": "Tilldelad till",
"cardAssigneesPopup-title": "Tilldelad till",
"addmore-detail": "Lägg till detaljerad beskrivning",
"show-on-card": "Visa på kort",
"show-on-card": "Visa på Kort",
"new": "Ny",
"editUserPopup-title": "Redigera användare",
"newUserPopup-title": "Ny användare",
"notifications": "Notifieringar",
"editUserPopup-title": "Redigera Användare",
"newUserPopup-title": "Ny Användare",
"notifications": "Notiser",
"view-all": "Visa Allt",
"filter-by-unread": "Filtrera efter Oläst",
"mark-all-as-read": "Markera alla som lästa",
@@ -807,6 +807,7 @@
"last-activity": "Senaste aktivitet",
"voting": "Röstning",
"archived": "Arkiverad",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-card-before-this-card": "Du kan inte radera det här kortet innan du raderat länkat kort som har",
"delete-linked-cards-before-this-list": "Du kan inte radera den här listan innan du raderat länkade kort som pekar till kort i den här listan",
"hide-checked-items": "Dölj markerade objekt"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+42 -41
View File
@@ -256,8 +256,8 @@
"current": "mevcut",
"custom-field-delete-pop": "Bunun geri dönüşü yoktur. Bu özel alan tüm kartlardan kaldırılıp tarihçesi yokedilecektir.",
"custom-field-checkbox": "İşaret kutusu",
"custom-field-currency": "Currency",
"custom-field-currency-option": "Currency Code",
"custom-field-currency": "Para birimi",
"custom-field-currency-option": "Para birimi kodu",
"custom-field-date": "Tarih",
"custom-field-dropdown": "Açılır liste",
"custom-field-dropdown-none": "(hiçbiri)",
@@ -319,12 +319,12 @@
"error-username-taken": "Kullanıcı adı zaten alınmış",
"error-email-taken": "Bu e-posta adresi daha önceden alınmış",
"export-board": "Panoyu dışarı aktar",
"export-board-json": "Export board to JSON",
"export-board-csv": "Export board to CSV",
"export-board-tsv": "Export board to TSV",
"export-board-html": "Export board to HTML",
"export-board-json": "Panoyu JSON olarak dışarı aktar",
"export-board-csv": "Panoyu CSV olarak dışarı aktar",
"export-board-tsv": "Panoyu TSV olarak dışarı aktar",
"export-board-html": "Panoyu HTML olarak dışarı aktar",
"exportBoardPopup-title": "Panoyu dışarı aktar",
"sort": "Sort",
"sort": "Sırala",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
"list-label-modifiedAt": "Son Erişim Zamanı...",
@@ -338,11 +338,11 @@
"list-filter-label": "Filter List by Title",
"filter-clear": "Filtreyi temizle",
"filter-no-label": "Etiket yok",
"filter-no-member": "Üye yok",
"filter-no-assignee": "No assignee",
"filter-no-member": "Üyesi olmayan",
"filter-no-assignee": "Atanmayan",
"filter-no-custom-fields": "Hiç özel alan yok",
"filter-show-archive": "Show archived lists",
"filter-hide-empty": "Hide empty lists",
"filter-show-archive": "Arşivlenmiş listeleri göster",
"filter-hide-empty": "Boş listeleri gizle",
"filter-on": "Filtre aktif",
"filter-on-desc": "Bu panodaki kartları filtreliyorsunuz. Fitreyi düzenlemek için tıklayın.",
"filter-to-selection": "Seçime göre filtreleme yap",
@@ -359,10 +359,10 @@
"import-board-c": "Panoyu içe aktar",
"import-board-title-trello": "Trello'dan panoyu içeri aktar",
"import-board-title-wekan": "Import board from previous export",
"import-board-title-csv": "Import board from CSV/TSV",
"import-board-title-csv": "CSV/TSV formatındaki panoyu içeri aktar",
"from-trello": "Trello'dan",
"from-wekan": "From previous export",
"from-csv": "From CSV/TSV",
"from-csv": "CSV/TSV'den",
"import-board-instruction-trello": "Trello panonuzda 'Menü'ye gidip 'Daha fazlası'na tıklayın, ardından 'Yazdır ve Çıktı Al'ı seçip 'JSON biçiminde çıktı al' diyerek çıkan metni buraya kopyalayın.",
"import-board-instruction-csv": "Paste in your Comma Separated Values(CSV)/ Tab Separated Values (TSV) .",
"import-board-instruction-wekan": "In your board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
@@ -399,13 +399,13 @@
"set-color-list": "Rengi Ayarla",
"listActionPopup-title": "Liste İşlemleri",
"swimlaneActionPopup-title": "Kulvar İşlemleri",
"swimlaneAddPopup-title": "Add a Swimlane below",
"swimlaneAddPopup-title": "Aşağı kulvar ekle",
"listImportCardPopup-title": "Bir Trello kartını içeri aktar",
"listImportCardsTsvPopup-title": "Import Excel CSV/TSV",
"listMorePopup-title": "Daha",
"listImportCardsTsvPopup-title": "İçe aktar Excel CSV/TSV",
"listMorePopup-title": "Daha fazla",
"link-list": "Listeye doğrudan bağlantı",
"list-delete-pop": "Etkinlik akışınızdaki tüm eylemler geri kurtarılamaz şekilde kaldırılacak. Bu işlem geri alınamaz.",
"list-delete-suggest-archive": "You can move a list to Archive to remove it from the board and preserve the activity.",
"list-delete-suggest-archive": "Bir listeyi panodan kaldırmak için Arşive taşıyabilir ve kayıtları saklayabilirsiniz.",
"lists": "Listeler",
"swimlanes": "Kulvarlar",
"log-out": "Oturum Kapat",
@@ -437,7 +437,7 @@
"optional": "isteğe bağlı",
"or": "veya",
"page-maybe-private": "Bu sayfa gizli olabilir. <a href='%s'>Oturum açarak</a> görmeyi deneyin.",
"page-not-found": "Sayda bulunamadı.",
"page-not-found": "Sayfa bulunamadı.",
"password": "Parola",
"paste-or-dragdrop": "Dosya eklemek için yapıştırabilir, veya (eğer resimse) sürükle bırak yapabilirsiniz",
"participating": "Katılımcılar",
@@ -448,8 +448,8 @@
"private-desc": "Bu pano gizli. Sadece panoya ekli kişiler görüntüleyebilir ve düzenleyebilir.",
"profile": "Kullanıcı Sayfası",
"public": "Genel",
"public-desc": "Bu pano genel. Bağlantı adresi ile herhangi bir kimseye görünür ve Google gibi arama motorlarında gösterilecektir. Panoyu, sadece eklenen kişiler düzenleyebilir.",
"quick-access-description": "Bu bara kısayol olarak bir pano eklemek için panoyu yıldızlamalısınız",
"public-desc": "Bu pano genel bir panodur. Bağlantıya sahip olan herkes panoyu görüntüleyebilir, ayrıca panonuz Google gibi arama motorlarında görünür. Panoyu, sadece panoya eklenen kişiler düzenleyebilir.",
"quick-access-description": "Yıldızladığınız panolar burada gözükür",
"remove-cover": "Kapak Resmini Kaldır",
"remove-from-board": "Panodan Kaldır",
"remove-label": "Etiketi Kaldır",
@@ -464,7 +464,7 @@
"save": "Kaydet",
"search": "Arama",
"rules": "Kurallar",
"search-cards": "Search from card/list titles, descriptions and custom fields on this board",
"search-cards": "Bu panodaki kart / liste başlıkları, açıklamalar ve özel alanlarda arama yapın",
"search-example": "Aranılacak metin?",
"select-color": "Renk Seç",
"set-wip-limit-value": "Bu listedeki en fazla öğe sayısı için bir sınır belirleyin",
@@ -515,9 +515,9 @@
"welcome-swimlane": "Kilometre taşı",
"welcome-list1": "Temel",
"welcome-list2": "Gelişmiş",
"card-templates-swimlane": "Card Templates",
"list-templates-swimlane": "List Templates",
"board-templates-swimlane": "Board Templates",
"card-templates-swimlane": "Kart şablonları",
"list-templates-swimlane": "Liste şablonları",
"board-templates-swimlane": "Pano şablonları",
"what-to-do": "Ne yapmak istiyorsunuz?",
"wipLimitErrorPopup-title": "Geçersiz Devam Eden İş Sınırı",
"wipLimitErrorPopup-dialog-pt1": "Bu listedeki iş sayısı belirlediğiniz sınırdan daha fazla.",
@@ -548,21 +548,21 @@
"email-smtp-test-text": "E-Posta başarıyla gönderildi",
"error-invitation-code-not-exist": "Davetiye kodu bulunamadı",
"error-notAuthorized": "Bu sayfayı görmek için yetkiniz yok.",
"webhook-title": "Webhook Name",
"webhook-token": "Token (Optional for Authentication)",
"webhook-title": "Bağlantı Adı",
"webhook-token": "Belirteç (Kimlik Doğrulama için İsteğe Bağlı)",
"outgoing-webhooks": "Dışarı giden bağlantılar",
"bidirectional-webhooks": "Two-Way Webhooks",
"bidirectional-webhooks": "İki yönlü bağlantılar",
"outgoingWebhooksPopup-title": "Dışarı giden bağlantılar",
"boardCardTitlePopup-title": "Kart Başlığı Filtresi",
"disable-webhook": "Disable This Webhook",
"global-webhook": "Global Webhooks",
"disable-webhook": "Bu bağlantıyı devre dışı bırak",
"global-webhook": "Global Bağlantılar",
"new-outgoing-webhook": "Yeni Dışarı Giden Web Bağlantısı",
"no-name": "(Bilinmeyen)",
"Node_version": "Node sürümü",
"Meteor_version": "Meteor version",
"MongoDB_version": "MongoDB version",
"MongoDB_storage_engine": "MongoDB storage engine",
"MongoDB_Oplog_enabled": "MongoDB Oplog enabled",
"Meteor_version": "Meteor sürümü",
"MongoDB_version": "MongoDB sürümü",
"MongoDB_storage_engine": "MongoDB depolama motoru",
"MongoDB_Oplog_enabled": "MongoDB Oplog etkin",
"OS_Arch": "İşletim Sistemi Mimarisi",
"OS_Cpus": "İşletim Sistemi İşlemci Sayısı",
"OS_Freemem": "İşletim Sistemi Kullanılmayan Bellek",
@@ -603,18 +603,18 @@
"delete-board-confirm-popup": "Tüm listeler, kartlar, etiketler ve etkinlikler silinecek ve pano içeriğini kurtaramayacaksınız. Geri dönüş yok.",
"boardDeletePopup-title": "Panoyu Sil?",
"delete-board": "Panoyu Sil",
"default-subtasks-board": "Subtasks for __board__ board",
"default-subtasks-board": "__board__ panosu için alt görevler",
"default": "Varsayılan",
"queue": "Sıra",
"subtask-settings": "Alt Görev ayarları",
"card-settings": "Card Settings",
"card-settings": "Kart ayarları",
"boardSubtaskSettingsPopup-title": "Pano alt görev ayarları",
"boardCardSettingsPopup-title": "Card Settings",
"deposit-subtasks-board": "Deposit subtasks to this board:",
"boardCardSettingsPopup-title": "Kart ayarları",
"deposit-subtasks-board": "Alt görevleri bu panoda sakla:",
"deposit-subtasks-list": "Alt görevlerin açılacağı liste:",
"show-parent-in-minicard": "Mini kart içinde üst kartı göster",
"prefix-with-full-path": "Tam yolunu önüne ekle",
"prefix-with-parent": "Prefix with parent",
"prefix-with-parent": "Ana görev ile ön adlandır",
"subtext-with-full-path": "Tam yolu ile alt metin",
"subtext-with-parent": "üst öge ile alt metin",
"change-card-parent": "Kartın üst kartını değiştir",
@@ -778,8 +778,8 @@
"accounts-allowUserDelete": "Kullanıcılara hesaplarını silmek için izin ver.",
"hide-minicard-label-text": "Mini kart etiklerini gizle",
"show-desktop-drag-handles": "Show desktop drag handles",
"assignee": "Assignee",
"cardAssigneesPopup-title": "Assignee",
"assignee": "Atanan",
"cardAssigneesPopup-title": "Atanan",
"addmore-detail": "Add a more detailed description",
"show-on-card": "Show on Card",
"new": "New",
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+4 -3
View File
@@ -256,8 +256,8 @@
"current": "当前",
"custom-field-delete-pop": "没有撤销,此动作将从所有卡片中移除自定义字段并销毁历史。",
"custom-field-checkbox": "选择框",
"custom-field-currency": "Currency",
"custom-field-currency-option": "Currency Code",
"custom-field-currency": "货币",
"custom-field-currency-option": "货币代码",
"custom-field-date": "日期",
"custom-field-dropdown": "下拉列表",
"custom-field-dropdown-none": "(无)",
@@ -808,5 +808,6 @@
"voting": "投票",
"archived": "存档",
"delete-linked-card-before-this-card": "在你首次删除卡片前你无法删除此选项卡片",
"delete-linked-cards-before-this-list": "在首先删除指向此列表中的卡的链接卡之前,不能删除此列表"
"delete-linked-cards-before-this-list": "在首先删除指向此列表中的卡的链接卡之前,不能删除此列表",
"hide-checked-items": "隐藏选中项"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+2 -1
View File
@@ -808,5 +808,6 @@
"voting": "Voting",
"archived": "Archived",
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list"
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
"hide-checked-items": "Hide checked items"
}
+12 -8
View File
@@ -18,18 +18,14 @@ Boards.attachSchema(
type: String,
// eslint-disable-next-line consistent-return
autoValue() {
// XXX We need to improve slug management. Only the id should be necessary
// to identify a board in the code.
// XXX If the board title is updated, the slug should also be updated.
// In some cases (Chinese and Japanese for instance) the `getSlug` function
// return an empty string. This is causes bugs in our application so we set
// a default slug in this case.
if (this.isInsert && !this.isSet) {
// Improvment would be to change client URL after slug is changed
const title = this.field('title');
if (title.isSet && !this.isSet) {
let slug = 'board';
const title = this.field('title');
if (title.isSet) {
slug = getSlug(title.value) || slug;
}
slug = getSlug(title.value) || slug;
return slug;
}
},
@@ -1219,6 +1215,14 @@ if (Meteor.isServer) {
fetch: ['members'],
});
// All logged in users are allowed to reorder boards by dragging at All Boards page and Public Boards page.
Boards.allow({
update(userId, board, fieldNames) {
return _.contains(fieldNames, 'sort');
},
fetch: [],
});
// The number of users that have starred this board is managed by trusted code
// and the user is not allowed to update it
Boards.deny({
+137 -89
View File
@@ -368,30 +368,36 @@ Cards.allow({
Cards.helpers({
copy(boardId, swimlaneId, listId) {
const oldBoard = Boards.findOne(this.boardId);
const oldBoardLabels = oldBoard.labels;
// Get old label names
const oldCardLabels = _.pluck(
_.filter(oldBoardLabels, label => {
return _.contains(this.labelIds, label._id);
}),
'name',
);
const newBoard = Boards.findOne(boardId);
const newBoardLabels = newBoard.labels;
const newCardLabels = _.pluck(
_.filter(newBoardLabels, label => {
return _.contains(oldCardLabels, label.name);
}),
'_id',
);
const oldId = this._id;
const oldCard = Cards.findOne(oldId);
// Copy Custom Fields
if (oldBoard._id !== boardId) {
// we must only copy the labels and custom fields if the target board
// differs from the source board
if (this.boardId !== boardId) {
const oldBoard = Boards.findOne(this.boardId);
const oldBoardLabels = oldBoard.labels;
// Get old label names
const oldCardLabels = _.pluck(
_.filter(oldBoardLabels, label => {
return _.contains(this.labelIds, label._id);
}),
'name',
);
const newBoard = Boards.findOne(boardId);
const newBoardLabels = newBoard.labels;
const newCardLabels = _.pluck(
_.filter(newBoardLabels, label => {
return _.contains(oldCardLabels, label.name);
}),
'_id',
);
// now set the new label ids
delete this.labelIds;
this.labelIds = newCardLabels;
// Copy Custom Fields
CustomFields.find({
_id: {
$in: oldCard.customFields.map(cf => {
@@ -404,8 +410,6 @@ Cards.helpers({
}
delete this._id;
delete this.labelIds;
this.labelIds = newCardLabels;
this.boardId = boardId;
this.swimlaneId = swimlaneId;
this.listId = listId;
@@ -1108,6 +1112,21 @@ Cards.helpers({
return Users.find({ _id: { $in: this.vote.negative } });
return [];
},
voteState() {
const userId = Meteor.userId();
let state;
if (this.vote) {
if (this.vote.positive) {
state = _.contains(this.vote.positive, userId);
if (state === true) return true;
}
if (this.vote.negative) {
state = _.contains(this.vote.negative, userId);
if (state === true) return false;
}
}
return null;
},
getId() {
if (this.isLinked()) {
@@ -1298,8 +1317,40 @@ Cards.mutations({
},
move(boardId, swimlaneId, listId, sort) {
// Copy Custom Fields
const mutatedFields = {
boardId,
swimlaneId,
listId,
sort,
};
// we must only copy the labels and custom fields if the target board
// differs from the source board
if (this.boardId !== boardId) {
// Get label names
const oldBoard = Boards.findOne(this.boardId);
const oldBoardLabels = oldBoard.labels;
const oldCardLabels = _.pluck(
_.filter(oldBoardLabels, label => {
return _.contains(this.labelIds, label._id);
}),
'name',
);
const newBoard = Boards.findOne(boardId);
const newBoardLabels = newBoard.labels;
const newCardLabelIds = _.pluck(
_.filter(newBoardLabels, label => {
return label.name && _.contains(oldCardLabels, label.name);
}),
'_id',
);
Object.assign(mutatedFields, {
labelIds: newCardLabelIds,
});
// Copy custom fields
CustomFields.find({
_id: {
$in: this.customFields.map(cf => {
@@ -1311,33 +1362,6 @@ Cards.mutations({
});
}
// Get label names
const oldBoard = Boards.findOne(this.boardId);
const oldBoardLabels = oldBoard.labels;
const oldCardLabels = _.pluck(
_.filter(oldBoardLabels, label => {
return _.contains(this.labelIds, label._id);
}),
'name',
);
const newBoard = Boards.findOne(boardId);
const newBoardLabels = newBoard.labels;
const newCardLabelIds = _.pluck(
_.filter(newBoardLabels, label => {
return label.name && _.contains(oldCardLabels, label.name);
}),
'_id',
);
const mutatedFields = {
boardId,
swimlaneId,
listId,
sort,
labelIds: newCardLabelIds,
};
Cards.update(this._id, {
$set: mutatedFields,
});
@@ -2168,6 +2192,11 @@ if (Meteor.isServer) {
title: doc.title,
description: doc.description,
listId: doc.listId,
receivedAt: doc.receivedAt,
startAt: doc.startAt,
dueAt: doc.dueAt,
endAt: doc.endAt,
assignees: doc.assignees,
};
}),
});
@@ -2204,6 +2233,11 @@ if (Meteor.isServer) {
_id: doc._id,
title: doc.title,
description: doc.description,
receivedAt: doc.receivedAt,
startAt: doc.startAt,
dueAt: doc.dueAt,
endAt: doc.endAt,
assignees: doc.assignees,
};
}),
});
@@ -2355,6 +2389,10 @@ if (Meteor.isServer) {
* @param {boolean} [isOverTime] the new isOverTime field of the card
* @param {string} [customFields] the new customFields value of the card
* @param {string} [color] the new color of the card
* @param {Object} [vote] the vote object
* @param {string} vote.question the vote question
* @param {boolean} vote.public show who voted what
* @param {boolean} vote.allowNonBoardMembers allow all logged in users to vote?
* @return_type {_id: string}
*/
JsonRoutes.add(
@@ -2382,34 +2420,6 @@ if (Meteor.isServer) {
},
);
}
if (req.body.hasOwnProperty('listId')) {
const newParamListId = req.body.listId;
Cards.direct.update(
{
_id: paramCardId,
listId: paramListId,
boardId: paramBoardId,
archived: false,
},
{
$set: {
listId: newParamListId,
},
},
);
const card = Cards.findOne({
_id: paramCardId,
});
cardMove(
req.body.authorId,
card,
{
fieldName: 'listId',
},
paramListId,
);
}
if (req.body.hasOwnProperty('parentId')) {
const newParentId = req.body.parentId;
Cards.direct.update(
@@ -2454,6 +2464,24 @@ if (Meteor.isServer) {
{ $set: { color: newColor } },
);
}
if (req.body.hasOwnProperty('vote')) {
const newVote = req.body.vote;
newVote.positive = [];
newVote.negative = [];
if (!newVote.hasOwnProperty('public')) newVote.public = false;
if (!newVote.hasOwnProperty('allowNonBoardMembers'))
newVote.allowNonBoardMembers = false;
Cards.direct.update(
{
_id: paramCardId,
listId: paramListId,
boardId: paramBoardId,
archived: false,
},
{ $set: { vote: newVote } },
);
}
if (req.body.hasOwnProperty('labelIds')) {
let newlabelIds = req.body.labelIds;
if (_.isString(newlabelIds)) {
@@ -2635,6 +2663,34 @@ if (Meteor.isServer) {
{ $set: { swimlaneId: newParamSwimlaneId } },
);
}
if (req.body.hasOwnProperty('listId')) {
const newParamListId = req.body.listId;
Cards.direct.update(
{
_id: paramCardId,
listId: paramListId,
boardId: paramBoardId,
archived: false,
},
{
$set: {
listId: newParamListId,
},
},
);
const card = Cards.findOne({
_id: paramCardId,
});
cardMove(
req.body.authorId,
card,
{
fieldName: 'listId',
},
paramListId,
);
}
JsonRoutes.sendResult(res, {
code: 200,
data: {
@@ -2693,7 +2749,7 @@ if (Meteor.isServer) {
* @return_type [{_id: string,
* title: string,
* description: string,
* listId: string
* listId: string,
* swinlaneId: string}]
*/
JsonRoutes.add(
@@ -2716,15 +2772,7 @@ if (Meteor.isServer) {
},
},
archived: false,
}).map(function(doc) {
return {
_id: doc._id,
title: doc.title,
description: doc.description,
listId: doc.listId,
swinlaneId: doc.swinlaneId,
};
}),
}).fetch(),
});
},
);
+9 -1
View File
@@ -302,10 +302,18 @@ if (Meteor.isServer) {
const paramItemId = req.params.itemId;
function isTrue(data) {
try {
return data.toLowerCase() === 'true';
} catch (error) {
return data;
}
}
if (req.body.hasOwnProperty('isFinished')) {
ChecklistItems.direct.update(
{ _id: paramItemId },
{ $set: { isFinished: req.body.isFinished } },
{ $set: { isFinished: isTrue(req.body.isFinished) } },
);
}
if (req.body.hasOwnProperty('title')) {
+5 -7
View File
@@ -172,16 +172,14 @@ function customFieldDeletion(userId, doc) {
function customFieldEdit(userId, doc) {
const card = Cards.findOne(doc.cardId);
const customFieldValue = Activities.findOne({ customFieldId: doc._id }).value;
const boardId = card.boardId;
//boardId: doc.boardIds[0], // We are creating a customField, it has only one boardId
Activities.insert({
userId,
activityType: 'setCustomField',
boardId,
boardId: doc.boardIds[0], // We are creating a customField, it has only one boardId
customFieldId: doc._id,
customFieldValue,
listId: card.listId,
swimlaneId: card.swimlaneId,
listId: doc.listId,
swimlaneId: doc.swimlaneId,
});
}
@@ -206,8 +204,8 @@ if (Meteor.isServer) {
Activities.remove({
customFieldId: doc._id,
boardId: modifier.$pull.boardIds,
listId: card.listId,
swimlaneId: card.swimlaneId,
listId: doc.listId,
swimlaneId: doc.swimlaneId,
});
} else if (_.contains(fieldNames, 'boardIds') && modifier.$push) {
Activities.insert({
+14 -14
View File
@@ -80,19 +80,19 @@ if (Meteor.isServer) {
});
}
const exporter = new Exporter(boardId);
if (exporter.canExport(user)) {
body = params.query.delimiter
? exporter.buildCsv(params.query.delimiter)
: exporter.buildCsv();
res.writeHead(200, {
'Content-Length': body.length,
'Content-Type': params.query.delimiter ? 'text/csv' : 'text/tsv',
});
res.write(body);
res.end();
} else {
res.writeHead(403);
res.end('Permission Error');
}
//if (exporter.canExport(user)) {
body = params.query.delimiter
? exporter.buildCsv(params.query.delimiter)
: exporter.buildCsv();
//'Content-Length': body.length,
res.writeHead(200, {
'Content-Type': params.query.delimiter ? 'text/csv' : 'text/tsv',
});
res.write(body);
res.end();
//} else {
// res.writeHead(403);
// res.end('Permission Error');
//}
});
}
+1 -1
View File
@@ -1,4 +1,4 @@
const stringify = require('csv-stringify');
//const stringify = require('csv-stringify');
// exporter maybe is broken since Gridfs introduced, add fs and path
export class Exporter {
+45 -19
View File
@@ -95,7 +95,7 @@ Users.attachSchema(
autoValue() {
if (this.isInsert && !this.isSet) {
return {
boardView: 'board-view-lists',
boardView: 'board-view-swimlanes',
};
}
},
@@ -128,6 +128,13 @@ Users.attachSchema(
type: Boolean,
optional: true,
},
'profile.hideCheckedItems': {
/**
* does the user want to hide checked checklist items?
*/
type: Boolean,
optional: true,
},
'profile.hiddenSystemMessages': {
/**
* does the user want to hide system messages?
@@ -218,8 +225,8 @@ Users.attachSchema(
type: String,
optional: true,
allowedValues: [
'board-view-lists',
'board-view-swimlanes',
'board-view-lists',
'board-view-cal',
],
},
@@ -483,6 +490,11 @@ Users.helpers({
return profile.showDesktopDragHandles || false;
},
hasHideCheckedItems() {
const profile = this.profile || {};
return profile.hideCheckedItems || false;
},
hasHiddenSystemMessages() {
const profile = this.profile || {};
return profile.hiddenSystemMessages || false;
@@ -612,6 +624,15 @@ Users.mutations({
};
},
toggleHideCheckedItems() {
const value = this.hasHideCheckedItems();
return {
$set: {
'profile.hideCheckedItems': !value,
},
};
},
toggleSystem(value = false) {
return {
$set: {
@@ -690,6 +711,10 @@ Meteor.methods({
const user = Meteor.user();
user.toggleDesktopHandles(user.hasShowDesktopDragHandles());
},
toggleHideCheckedItems() {
const user = Meteor.user();
user.toggleHideCheckedItems();
},
toggleSystemMessages() {
const user = Meteor.user();
user.toggleSystem(user.hasHiddenSystemMessages());
@@ -903,7 +928,7 @@ if (Meteor.isServer) {
user.profile = {
initials,
fullname: user.services.oidc.fullname,
boardView: 'board-view-lists',
boardView: 'board-view-swimlanes',
};
user.authenticationMethod = 'oauth2';
@@ -921,7 +946,8 @@ if (Meteor.isServer) {
existingUser.profile = user.profile;
existingUser.authenticationMethod = user.authenticationMethod;
Meteor.users.remove({ _id: existingUser._id }); // remove existing record
Meteor.users.remove({ _id: user._id });
Meteor.users.remove({ _id: existingUser._id }); // is going to be created again
return existingUser;
}
@@ -961,7 +987,7 @@ if (Meteor.isServer) {
);
} else {
user.profile = { icode: options.profile.invitationcode };
user.profile.boardView = 'board-view-lists';
user.profile.boardView = 'board-view-swimlanes';
// Deletes the invitation code after the user was created successfully.
setTimeout(
@@ -1109,10 +1135,10 @@ if (Meteor.isServer) {
});
*/
const Future = require('fibers/future');
let future1 = new Future();
let future2 = new Future();
let future3 = new Future();
const Future = require('fibers/future');
const future1 = new Future();
const future2 = new Future();
const future3 = new Future();
Boards.insert(
{
title: TAPi18n.__('templates'),
@@ -1140,7 +1166,7 @@ if (Meteor.isServer) {
Users.update(fakeUserId.get(), {
$set: { 'profile.cardTemplatesSwimlaneId': swimlaneId },
});
future1.return();
future1.return();
},
);
@@ -1158,7 +1184,7 @@ if (Meteor.isServer) {
Users.update(fakeUserId.get(), {
$set: { 'profile.listTemplatesSwimlaneId': swimlaneId },
});
future2.return();
future2.return();
},
);
@@ -1176,22 +1202,22 @@ if (Meteor.isServer) {
Users.update(fakeUserId.get(), {
$set: { 'profile.boardTemplatesSwimlaneId': swimlaneId },
});
future3.return();
future3.return();
},
);
},
);
// HACK
future1.wait();
future2.wait();
future3.wait();
// HACK
future1.wait();
future2.wait();
future3.wait();
});
});
}
Users.after.insert((userId, doc) => {
// HACK
doc = Users.findOne({_id: doc._id});
Users.after.insert((userId, doc) => {
// HACK
doc = Users.findOne({ _id: doc._id });
if (doc.createdThroughApi) {
// The admin user should be able to create a user despite disabling registration because
// it is two different things (registration and creation).
+14 -3
View File
@@ -249,7 +249,10 @@ class EntryPoint(object):
if name.startswith('{'):
param_type = name.strip('{}')
if param_type not in ['string', 'number', 'boolean', 'integer', 'array', 'file']:
if param_type == 'Object':
# hope for the best
param_type = 'object'
elif param_type not in ['string', 'number', 'boolean', 'integer', 'array', 'file']:
self.warn('unknown type {}\n allowed values: string, number, boolean, integer, array, file'.format(param_type))
try:
name, desc = desc.split(maxsplit=1)
@@ -814,13 +817,21 @@ def parse_schemas(schemas_dir):
for d in data]
entry_points.extend(schema_entry_points)
end_of_previous_operation = -1
# try to match JSDoc to the operations
for entry_point in schema_entry_points:
operation = entry_point.method # POST/GET/PUT/DELETE
# find all jsdocs that end before the current operation,
# the last item in the list is the one we need
jsdoc = [j for j in jsdocs
if j.loc.end.line + 1 == operation.loc.start.line]
if j.loc.end.line + 1 <= operation.loc.start.line and
j.loc.start.line > end_of_previous_operation]
if bool(jsdoc):
entry_point.doc = jsdoc[0]
entry_point.doc = jsdoc[-1]
end_of_previous_operation = operation.loc.end.line
except TypeError:
logger.warning(context.txt_for(statement))
logger.error('{}:{}-{} can not parse {}'.format(path,
+2 -16
View File
@@ -64,8 +64,6 @@ objects:
name: "${WEKAN_SERVICE_NAME}"
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
- apiVersion: v1
kind: Service
metadata:
@@ -86,8 +84,6 @@ objects:
name: "${DATABASE_SERVICE_NAME}"
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
@@ -276,7 +272,6 @@ objects:
lastTriggeredImage: ''
type: ImageChange
- type: ConfigChange
status: {}
- apiVersion: route.openshift.io/v1
kind: Route
metadata:
@@ -297,15 +292,6 @@ objects:
name: wekan
weight: 100
wildcardPolicy: None
status:
ingress:
- conditions:
- lastTransitionTime: '2018-08-28T14:45:21Z'
status: 'True'
type: Admitted
host: ${FQDN}
routerName: router
wildcardPolicy: None
parameters:
- description: The Fully Qualified Hostname (FQDN) of the application
displayName: FQDN
@@ -323,7 +309,7 @@ parameters:
displayName: Database Service Name
name: DATABASE_SERVICE_NAME
required: true
value: mongodb
value: wekan-mongodb
- description: Username for MongoDB user that will be used for accessing the database.
displayName: MongoDB Connection Username
from: user[A-Z0-9]{3}
@@ -356,7 +342,7 @@ parameters:
displayName: Version of MongoDB Image
name: MONGODB_VERSION
required: true
value: '4.0.10'
value: '3.6'
- name: WEKAN_SERVICE_NAME
displayName: Wekan Service Name
value: wekan
+605 -213
View File
File diff suppressed because it is too large. Load diff
+3 -3
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v4.10.0",
"version": "v4.23.0",
"description": "Open-Source kanban",
"private": true,
"scripts": {
@@ -62,13 +62,13 @@
"bcrypt": "^3.0.7",
"bson": "^4.0.3",
"bunyan": "^1.8.12",
"csv-stringify": "^5.5.0",
"es6-promise": "^4.2.4",
"fibers": "^5.0.0",
"flatted": "^2.0.1",
"gridfs-stream": "^0.5.3",
"jszip": "^3.4.0",
"ldapjs": "^1.0.2",
"meteor-node-stubs": "^0.4.1",
"meteor-node-stubs": "^1.0.1",
"mongodb": "^3.5.7",
"os": "^0.1.1",
"page": "^1.11.5",
-9
View File
@@ -1,9 +0,0 @@
var mark = marked;
mark.setOptions({
gfm: true,
tables: true,
breaks: true
});
Markdown = mark;
@@ -43,7 +43,7 @@ console.log(marked(markdownString));
|Member |Type |Default |Since |Notes |
|:-----------|:---------|:--------|:--------|:-------------|
|baseUrl |`string` |`null` |0.3.9 |A prefix url for any relative link. |
|breaks |`boolean` |`false` |v0.2.7 |If true, add `<br>` on a single line break (copies GitHub). Requires `gfm` be `true`.|
|breaks |`boolean` |`false` |v0.2.7 |If true, add `<br>` on a single line break (copies GitHub behavior on comments, but not on rendered markdown files). Requires `gfm` be `true`.|
|gfm |`boolean` |`true` |v0.2.1 |If true, use approved [GitHub Flavored Markdown (GFM) specification](https://github.github.com/gfm/).|
|headerIds |`boolean` |`true` |v0.4.0 |If true, include an `id` attribute when emitting headings (h1, h2, h3, etc).|
|headerPrefix|`string` |`''` |v0.3.0 |A string to prefix the `id` attribute when emitting headings (h1, h2, h3, etc).|
@@ -57,6 +57,8 @@ console.log(marked(markdownString));
|silent |`boolean` |`false` |v0.2.7 |If true, the parser does not throw any exception.|
|smartLists |`boolean` |`false` |v0.2.8 |If true, use smarter list behavior than those found in `markdown.pl`.|
|smartypants |`boolean` |`false` |v0.2.9 |If true, use "smart" typographic punctuation for things like quotes and dashes.|
|tokenizer |`object` |`new Tokenizer()`|v1.0.0|An object containing functions to create tokens from markdown. See [extensibility](/#/USING_PRO.md) for more details.|
|walkTokens |`function` |`null`|v1.1.0|A function which is called for every token. See [extensibility](/#/USING_PRO.md) for more details.|
|xhtml |`boolean` |`false` |v0.3.2 |If true, emit self-closing HTML tags for void elements (&lt;br/&gt;, &lt;img/&gt;, etc.) with a "/" as required by XHTML.|
<h2 id="highlight">Asynchronous highlighting</h2>
+228 -39
View File
@@ -2,9 +2,21 @@
To champion the single-responsibility and open/closed principles, we have tried to make it relatively painless to extend marked. If you are looking to add custom functionality, this is the place to start.
<h2 id="use">marked.use()</h2>
`marked.use(options)` is the recommended way to extend marked. The options object can contain any [option](#/USING_ADVANCED.md#options) available in marked.
The `renderer` and `tokenizer` options can be an object with functions that will be merged into the `renderer` and `tokenizer` respectively.
The `renderer` and `tokenizer` functions can return false to fallback to the previous function.
The `walkTokens` option can be a function that will be called with every token before rendering. When calling `use` multiple times with different `walkTokens` functions each function will be called in the **reverse** order in which they were assigned.
All other options will overwrite previously set options.
<h2 id="renderer">The renderer</h2>
The renderer is...
The renderer defines the output of the parser.
**Example:** Overriding default heading token by adding an embedded anchor tag like on GitHub.
@@ -12,24 +24,25 @@ The renderer is...
// Create reference instance
const marked = require('marked');
// Get reference
const renderer = new marked.Renderer();
// Override function
renderer.heading = function (text, level) {
const escapedText = text.toLowerCase().replace(/[^\w]+/g, '-');
const renderer = {
heading(text, level) {
const escapedText = text.toLowerCase().replace(/[^\w]+/g, '-');
return `
<h${level}>
<a name="${escapedText}" class="anchor" href="#${escapedText}">
<span class="header-link"></span>
</a>
${text}
</h${level}>`;
return `
<h${level}>
<a name="${escapedText}" class="anchor" href="#${escapedText}">
<span class="header-link"></span>
</a>
${text}
</h${level}>`;
}
};
marked.use({ renderer });
// Run marked
console.log(marked('# heading+', { renderer: renderer }));
console.log(marked('# heading+'));
```
**Output:**
@@ -58,7 +71,7 @@ console.log(marked('# heading+', { renderer: renderer }));
- tablerow(*string* content)
- tablecell(*string* content, *object* flags)
`slugger` has the `slug` method to create an unique id from value:
`slugger` has the `slug` method to create a unique id from value:
```js
slugger.slug('foo') // foo
@@ -89,14 +102,130 @@ slugger.slug('foo-1') // foo-1-2
- image(*string* href, *string* title, *string* text)
- text(*string* text)
<h2 id="tokenizer">The tokenizer</h2>
The tokenizer defines how to turn markdown text into tokens.
**Example:** Overriding default `codespan` tokenizer to include LaTeX.
```js
// Create reference instance
const marked = require('marked');
// Override function
const tokenizer = {
codespan(src) {
const match = src.match(/\$+([^\$\n]+?)\$+/);
if (match) {
return {
type: 'codespan',
raw: match[0],
text: match[1].trim()
};
}
// return false to use original codespan tokenizer
return false;
}
};
marked.use({ tokenizer });
// Run marked
console.log(marked('$ latex code $\n\n` other code `'));
```
**Output:**
```html
<p><code>latex code</code></p>
<p><code>other code</code></p>
```
### Block level tokenizer methods
- space(*string* src)
- code(*string* src, *array* tokens)
- fences(*string* src)
- heading(*string* src)
- nptable(*string* src)
- hr(*string* src)
- blockquote(*string* src)
- list(*string* src)
- html(*string* src)
- def(*string* src)
- table(*string* src)
- lheading(*string* src)
- paragraph(*string* src)
- text(*string* src, *array* tokens)
### Inline level tokenizer methods
- escape(*string* src)
- tag(*string* src, *bool* inLink, *bool* inRawBlock)
- link(*string* src)
- reflink(*string* src, *object* links)
- strong(*string* src)
- em(*string* src)
- codespan(*string* src)
- br(*string* src)
- del(*string* src)
- autolink(*string* src, *function* mangle)
- url(*string* src, *function* mangle)
- inlineText(*string* src, *bool* inRawBlock, *function* smartypants)
`mangle` is a method that changes text to HTML character references:
```js
mangle('test@example.com')
// "&#x74;&#101;&#x73;&#116;&#x40;&#101;&#120;&#x61;&#x6d;&#112;&#108;&#101;&#46;&#x63;&#111;&#x6d;"
```
`smartypants` is a method that translates plain ASCII punctuation characters into “smart” typographic punctuation HTML entities:
https://daringfireball.net/projects/smartypants/
```js
smartypants('"this ... string"')
// "“this … string”"
```
<h2 id="walk-tokens">Walk Tokens</h2>
The walkTokens function gets called with every token. Child tokens are called before moving on to sibling tokens. Each token is passed by reference so updates are persisted when passed to the parser. The return value of the function is ignored.
**Example:** Overriding heading tokens to start at h2.
```js
const marked = require('marked');
// Override function
const walkTokens = (token) => {
if (token.type === 'heading') {
token.depth += 1;
}
};
marked.use({ walkTokens });
// Run marked
console.log(marked('# heading 2\n\n## heading 3'));
```
**Output:**
```html
<h2 id="heading-2">heading 2</h2>
<h3 id="heading-3">heading 3</h3>
```
<h2 id="lexer">The lexer</h2>
The lexer is...
The lexer takes a markdown string and calls the tokenizer functions.
<h2 id="parser">The parser</h2>
The parser is...
The parser takes tokens as input and calls the renderer functions.
***
@@ -105,30 +234,48 @@ The parser is...
You also have direct access to the lexer and parser if you so desire.
``` js
const tokens = marked.lexer(text, options);
const tokens = marked.lexer(markdown, options);
console.log(marked.parser(tokens, options));
```
``` js
const lexer = new marked.Lexer(options);
const tokens = lexer.lex(text);
const tokens = lexer.lex(markdown);
console.log(tokens);
console.log(lexer.rules);
console.log(lexer.tokenizer.rules.block); // block level rules used
console.log(lexer.tokenizer.rules.inline); // inline level rules used
console.log(marked.Lexer.rules.block); // all block level rules
console.log(marked.Lexer.rules.inline); // all inline level rules
```
``` bash
$ node
> require('marked').lexer('> i am using marked.')
[ { type: 'blockquote_start' },
{ type: 'paragraph',
text: 'i am using marked.' },
{ type: 'blockquote_end' },
links: {} ]
> require('marked').lexer('> I am using marked.')
[
{
type: "blockquote",
raw: "> I am using marked.",
tokens: [
{
type: "paragraph",
raw: "I am using marked.",
text: "I am using marked.",
tokens: [
{
type: "text",
raw: "I am using marked.",
text: "I am using marked."
}
]
}
]
},
links: {}
]
```
The Lexers build an array of tokens, which will be passed to their respective
Parsers. The Parsers process each token in the token arrays,
which are removed from the array of tokens:
The Lexer builds an array of tokens, which will be passed to the Parser.
The Parser processes each token in the token array:
``` js
const marked = require('marked');
@@ -146,18 +293,60 @@ console.log(tokens);
const html = marked.parser(tokens);
console.log(html);
console.log(tokens);
```
``` bash
[ { type: 'heading', depth: 1, text: 'heading' },
{ type: 'paragraph', text: ' [link][1]' },
{ type: 'space' },
links: { '1': { href: '#heading', title: 'heading' } } ]
[
{
type: "heading",
raw: " # heading\n\n",
depth: 1,
text: "heading",
tokens: [
{
type: "text",
raw: "heading",
text: "heading"
}
]
},
{
type: "paragraph",
raw: " [link][1]",
text: " [link][1]",
tokens: [
{
type: "text",
raw: " ",
text: " "
},
{
type: "link",
raw: "[link][1]",
text: "link",
href: "#heading",
title: "heading",
tokens: [
{
type: "text",
raw: "link",
text: "link"
}
]
}
]
},
{
type: "space",
raw: "\n\n"
},
links: {
"1": {
href: "#heading",
title: "heading"
}
}
]
<h1 id="heading">heading</h1>
<p> <a href="#heading" title="heading">link</a></p>
[ links: { '1': { href: '#heading', title: 'heading' } } ]
```
+7 -7
View File
@@ -183,7 +183,7 @@ function handleIframeLoad() {
function handleInput() {
inputDirty = true;
};
}
function handleVersionChange() {
if ($markedVerElem.value === 'commit' || $markedVerElem.value === 'pr') {
@@ -256,7 +256,7 @@ function handleChange(panes, visiblePane) {
}
}
return active;
};
}
function addCommitVersion(value, text, commit) {
if (markedVersions[value]) {
@@ -331,13 +331,13 @@ function jsonString(input) {
.replace(/[\\"']/g, '\\$&')
.replace(/\u0000/g, '\\0');
return '"' + output + '"';
};
}
function getScrollSize() {
var e = $activeOutputElem;
return e.scrollHeight - e.clientHeight;
};
}
function getScrollPercent() {
var size = getScrollSize();
@@ -347,11 +347,11 @@ function getScrollPercent() {
}
return $activeOutputElem.scrollTop / size;
};
}
function setScrollPercent(percent) {
$activeOutputElem.scrollTop = percent * getScrollSize();
};
}
function updateLink() {
var outputType = '';
@@ -446,7 +446,7 @@ function checkForChanges() {
}
}
checkChangeTimeout = window.setTimeout(checkForChanges, delayTime);
};
}
function setResponseTime(ms) {
var amount = ms;
+39 -21
View File
@@ -1,4 +1,5 @@
/* globals marked, unfetch, ES6Promise, Promise */ // eslint-disable-line no-redeclare
if (!self.Promise) {
self.importScripts('https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.js');
self.Promise = ES6Promise;
@@ -48,38 +49,55 @@ function parse(e) {
case 'parse':
var startTime = new Date();
var lexed = marked.lexer(e.data.markdown, e.data.options);
var lexedList = [];
for (var i = 0; i < lexed.length; i++) {
var lexedLine = [];
for (var j in lexed[i]) {
lexedLine.push(j + ':' + jsonString(lexed[i][j]));
}
lexedList.push('{' + lexedLine.join(', ') + '}');
}
var lexedList = jsonString(lexed);
var parsed = marked.parser(lexed, e.data.options);
var endTime = new Date();
// setTimeout(function () {
postMessage({
task: e.data.task,
lexed: lexedList.join('\n'),
lexed: lexedList,
parsed: parsed,
time: endTime - startTime
});
// }, 10000);
break;
}
}
function jsonString(input) {
var output = (input + '')
.replace(/\n/g, '\\n')
.replace(/\r/g, '\\r')
.replace(/\t/g, '\\t')
.replace(/\f/g, '\\f')
.replace(/[\\"']/g, '\\$&')
.replace(/\u0000/g, '\\0');
return '"' + output + '"';
};
function stringRepeat(char, times) {
var s = '';
for (var i = 0; i < times; i++) {
s += char;
}
return s;
}
function jsonString(input, level) {
level = level || 0;
if (Array.isArray(input)) {
if (input.length === 0) {
return '[]';
}
var items = [],
i;
if (!Array.isArray(input[0]) && typeof input[0] === 'object' && input[0] !== null) {
for (i = 0; i < input.length; i++) {
items.push(stringRepeat(' ', 2 * level) + jsonString(input[i], level + 1));
}
return '[\n' + items.join('\n') + '\n]';
}
for (i = 0; i < input.length; i++) {
items.push(jsonString(input[i], level));
}
return '[' + items.join(', ') + ']';
} else if (typeof input === 'object' && input !== null) {
var props = [];
for (var prop in input) {
props.push(prop + ':' + jsonString(input[prop], level));
}
return '{' + props.join(', ') + '}';
} else {
return JSON.stringify(input);
}
}
function loadVersion(ver) {
var promise;
+3
View File
@@ -154,7 +154,10 @@
<li>
<a href="#/USING_PRO.md">Extensibility</a>
<ul>
<li><a href="#/USING_PRO.md#use">marked.use()</a></li>
<li><a href="#/USING_PRO.md#renderer">Renderer</a></li>
<li><a href="#/USING_PRO.md#tokenizer">Tokenizer</a></li>
<li><a href="#/USING_PRO.md#walk-tokens">Walk Tokens</a></li>
<li><a href="#/USING_PRO.md#lexer">Lexer</a></li>
<li><a href="#/USING_PRO.md#parser">Parser</a></li>
</ul>
Loaded 100 of 124 files, more files were not shown because too many files have changed in this diff. Show more