Compare commits

...
414 Commits
Author SHA1 Message Date
Lauri Ojansivu 26f66f3cf0 v0.76 2018-02-21 21:03:29 +02:00
Lauri Ojansivu 2e449e9e78 Update translations. 2018-02-21 20:49:33 +02:00
Lauri Ojansivu e30f6515c6 Disabled Import temporarily on Sandstorm because of data loss bug.
Thanks to xet7 !
2018-02-21 20:20:19 +02:00
Lauri Ojansivu 11e9811f82 Added path to capnp.js to make Wekan work on Sandstorm. 2018-02-21 20:15:40 +02:00
Lauri Ojansivu df5be82840 Update translations. 2018-02-20 15:09:34 +02:00
Lauri Ojansivu 599c83e0da Persian (Iran) => Persian 2018-02-20 14:43:04 +02:00
Lauri Ojansivu c0dbb79ac9 Merge branch 'couscous3-patch-1' into devel 2018-02-20 14:22:38 +02:00
Lauri Ojansivu 0375c551f3 Add swimlaneId to API. Thanks to couscous3 ! 2018-02-20 14:21:34 +02:00
couscous3 ee0f42eeb1 add swimlaneId to POST /api/boards/:boardId/lists/:listId/cards route 2018-02-19 14:55:56 +01:00
Lauri Ojansivu 7f4b382d2f Merge branch 'erikturk-copyMany' into devel
v0.75
2018-02-16 00:08:29 +02:00
Lauri Ojansivu 96d81768bc v0.75 2018-02-16 00:06:00 +02:00
Lauri Ojansivu cd012954e9 Adding Finnish changelog to Sandstorm. 2018-02-15 23:47:55 +02:00
Lauri Ojansivu 3b202c284a Update translations. 2018-02-15 23:41:04 +02:00
Lauri Ojansivu 8da1dd524d Merge branch 'copyMany' of https://github.com/erikturk/wekan into erikturk-copyMany 2018-02-15 22:40:59 +02:00
Erik Turk cfaeb43f1f changed variable names 2018-02-15 15:26:19 -05:00
Erik Turk 25e0c38ad8 change copyMany to copyChecklistToManyCards for instructions and title 2018-02-15 11:55:15 -05:00
Erik Turk 756fbd0f4c i18n fixes 2018-02-14 15:18:54 -05:00
Lauri Ojansivu 55a53e2655 Add note about Unicode Emojis. 2018-02-13 00:17:57 +02:00
Lauri Ojansivu 29461cb110 v0.74 2018-02-13 00:06:20 +02:00
Lauri Ojansivu a30f61d72f Remove Emoji support, so MAC addresses etc show correctly.
Thanks to xet7 ! Closes #1248, closes #323
2018-02-12 23:58:09 +02:00
Lauri Ojansivu 056843d66c Remove Emoji support, so MAC addresses etc show correctly.
Thanks to xet7 ! Closes #1248, closes #323
2018-02-12 23:52:22 +02:00
Lauri Ojansivu 69e4ad48bf Update translations. 2018-02-12 22:40:08 +02:00
Lauri Ojansivu 3588f4324c License year to 2018 2018-02-12 21:08:11 +02:00
Lauri Ojansivu 71decc370d Update screenshot. 2018-02-12 20:52:11 +02:00
Lauri Ojansivu 3171af613a Add Quay. Comment out Travis. 2018-02-12 20:49:08 +02:00
Erik Turk 11b8e12ede spaces/tabs okay - no 'git add i18n/en-GB.i18n.json' 2018-02-08 13:11:20 -05:00
Erik Turk 69aeee536d Merge branch 'devel' into copyMany 2018-02-08 13:04:43 -05:00
Erik Turk ab6a7c2dd6 Merge branch 'devel' of https://github.com/wekan/wekan into devel 2018-02-08 13:03:37 -05:00
Erik Turk 0a5af2b719 more spacing/tabs fixes 2018-02-08 10:32:09 -05:00
Erik Turk ecd77c8704 fixed spacing & indentation - changed var to const 2018-02-08 10:13:54 -05:00
Erik Turk c5019e620a remove console.log statements 2018-02-08 08:14:33 -05:00
Erik Turk 257ed56db3 finish adding[4~ copyMany 2018-02-08 08:13:31 -05:00
Lauri Ojansivu edc2459ff8 v0.73 2018-02-08 13:45:09 +02:00
Lauri Ojansivu 36a2aa355e Merge branch 'kubiko-devel-fix' into devel
Fix snap store rejection. Thanks to kubiko !
Closes wekan/wekan-snap#20,
closes wekan/wekan-snap#28,
closes wekan/wekan-snap#27,
closes wekan/wekan-snap#24
2018-02-08 13:43:01 +02:00
Lauri Ojansivu cea8101574 Fix snap store rejection. Thanks to kubiko !
Closes wekan/wekan-snap#20,
closes wekan/wekan-snap#27,
closes wekan/wekan-snap#24
2018-02-08 13:35:40 +02:00
Ondrej Kubik 3cb356eb1d Fixing snap store rejection
Signed-off-by: Ondrej Kubik <ondrej.kubik@canonical.com>
2018-02-08 11:03:58 +00:00
Lauri Ojansivu b3d3158863 v0.72 2018-02-07 15:37:02 +02:00
Lauri Ojansivu f795edc640 Fix import Trello board without swimlanes. Fix swimlane move parameters.
Thanks to andresmanelli ! Closes #1442
2018-02-07 15:33:29 +02:00
Lauri Ojansivu c1ddaaa475 Merge remote-tracking branch 'upstream/devel' into devel 2018-02-07 15:24:22 +02:00
Lauri Ojansivu 2dc71e97a7 Merge branch 'ViViDboarder-fix-card-sorting' into devel 2018-02-07 15:23:33 +02:00
Lauri Ojansivu 92122f0fa2 Fix card sorting. Thanks to ViViDboarder ! Closes #1461 2018-02-07 15:21:02 +02:00
Lauri Ojansivu ce1fd00517 Update translations. 2018-02-07 15:17:40 +02:00
Andrés Manelli 5871a478e1 Fix import Trello board without swimlanes 2018-02-07 01:47:18 -03:00
Andrés Manelli fcebb2a537 Fix move parameters 2018-02-07 01:24:15 -03:00
ViViDboarder b267015d8c Fixing cards query to apply sort
Issue #1461
2018-02-06 19:35:01 -08:00
Erik Turk 842c8b83d2 missing ) 2018-02-05 15:03:21 -05:00
Erik Turk 9705118ca2 add titleList.split to copyManyCard 2018-02-05 14:47:37 -05:00
Erik Turk 326b4c5350 added copyManyCard 2018-02-05 13:27:47 -05:00
Erik Turk f3ed6ee6f6 added copyManyCardPopup to i18n 2018-02-05 13:26:26 -05:00
Erik Turk 60c6f4f5af added Popup 2018-02-05 11:11:41 -05:00
Erik Turk 3c1cd85f6f added copyManyCard 2018-02-05 11:02:01 -05:00
Erik Turk bb9d5cb694 Revert "added copyManyCard"
This reverts commit c3fe70e094.
2018-02-05 10:58:36 -05:00
Erik Turk 669c2f3861 Revert "Revert "v0.71""
This reverts commit 6a93a93d0b.
2018-02-05 10:58:13 -05:00
Erik Turk 6a93a93d0b Revert "v0.71"
This reverts commit 79ae90825e.
2018-02-05 10:57:08 -05:00
Erik Turk c3fe70e094 added copyManyCard 2018-02-05 10:49:37 -05:00
Lauri Ojansivu 79ae90825e v0.71 2018-02-03 12:56:09 +02:00
Lauri Ojansivu b0f0bf4a24 Fix Welcome board is not editable: Added default swimlane to Welcome board.
Fix Import Wekan board with swimlanes.
Thanks to andresmanelli ! Closes #1457, closes #1445
2018-02-03 12:49:45 +02:00
Lauri Ojansivu 9dba6ff6fd Update translations. 2018-02-03 12:11:58 +02:00
Andrés Manelli d77afe3e2e Add trailing comma 2018-02-02 23:09:42 -03:00
Andrés Manelli ec0a8449ba Fix import wekan board with swimlanes 2018-02-02 23:04:54 -03:00
Andrés Manelli 9df3e3d26b Add default swimlane to welkome board 2018-02-02 21:52:00 -03:00
Lauri Ojansivu 73401a5d74 v0.70 2018-02-02 14:36:07 +02:00
Lauri Ojansivu 653f2b1ac8 Update translations. 2018-02-02 14:28:42 +02:00
Lauri Ojansivu 2cd4caa76a Add missing text to changelog. 2018-02-02 14:21:48 +02:00
Lauri Ojansivu 000b267eaf Update changelog. 2018-02-02 14:06:40 +02:00
Andrés Manelli 5953fb8a44 Add popup menu and archive action 2018-02-01 14:29:49 -03:00
Andrés Manelli 3414cb84ad Add ability to edit swimlane name 2018-02-01 14:24:21 -03:00
Andrés Manelli 42bc905c16 Remove unused hack 2018-02-01 14:24:21 -03:00
Lauri Ojansivu d94f11c778 v0.69 2018-02-01 16:47:14 +02:00
Lauri Ojansivu fcd5fda751 Merge branch 'd-Rickyy-b-patch-1' into devel 2018-02-01 16:25:27 +02:00
Lauri Ojansivu 66bfb1cdc8 Fix typo. 2018-02-01 16:24:57 +02:00
Lauri Ojansivu 69dfa1033f Fix typo in issue template. Thanks to d-Rickyy-b ! 2018-02-01 16:23:51 +02:00
Lauri Ojansivu 94b8bba324 Merge branch 'patch-1' of https://github.com/d-Rickyy-b/wekan into d-Rickyy-b-patch-1 2018-02-01 16:21:41 +02:00
Lauri Ojansivu 5dd8c9829d Update translations: Hebrew. Related #884 2018-02-01 16:20:29 +02:00
Lauri Ojansivu e0e6f06a83 Fix swimlanes card details and drag bugs. Thanks to andresmanelli ! 2018-02-01 15:59:22 +02:00
Rico 8322500e47 Fix typo in issue template 2018-01-31 23:21:07 +01:00
Andrés Manelli ff9ca755f3 Fix details view in lists only mode 2018-01-31 15:46:59 -03:00
Andrés Manelli d3c110cd8f Workaround to avoid drag bug 2018-01-31 14:13:14 -03:00
Andrés Manelli f6fb05d3f4 Fix card details bug 2018-01-31 14:13:14 -03:00
Lauri Ojansivu 8102ee5b4f Add release date to changelog. 2018-01-30 15:18:27 +02:00
Lauri Ojansivu 3c60df4fcd Update translations. 2018-01-30 15:04:55 +02:00
Lauri Ojansivu 23cba8a43f v0.68 2018-01-29 12:10:31 +02:00
Lauri Ojansivu 65c081acc0 Fix: Trello board import fails because of missing "Swimlane id".
Thanks to xet7 ! Closes #1442
2018-01-29 12:07:42 +02:00
Lauri Ojansivu 735907977d v0.67 2018-01-28 21:21:07 +02:00
Lauri Ojansivu 9d7ff75d3f Fix Igbo language at menu. 2018-01-28 21:01:22 +02:00
Lauri Ojansivu 1ef5b8efe1 Remove extra file. 2018-01-28 19:19:49 +02:00
Lauri Ojansivu f3d6aa9e09 Update translations. 2018-01-28 19:15:51 +02:00
Lauri Ojansivu fd430d3405 v0.66 2018-01-28 18:27:00 +02:00
Lauri Ojansivu 0ce4171d33 Merge branch 'soohwa-fix-dockerfile-rm' into devel
Fix Dockerfile for Debian. Thanks to soohwa !
2018-01-28 11:22:00 +02:00
Lauri Ojansivu 7df5679c0c Fix Dockerfile for Debian. Thanks to soohwa ! 2018-01-28 11:21:21 +02:00
soohwa 1616dd1b74 Fix Dockerfile 2018-01-28 10:04:10 +01:00
Lauri Ojansivu 081c1fdf83 v0.65 2018-01-28 00:01:20 +02:00
Lauri Ojansivu 9444624f19 Rename Igbo langage code name to get it working. 2018-01-27 23:25:50 +02:00
Lauri Ojansivu abd1d322f2 Try to fix Dockerfile. 2018-01-27 21:35:40 +02:00
Lauri Ojansivu d19083bb89 Update translations. 2018-01-27 18:28:31 +02:00
Lauri Ojansivu 7ddaa12520 Update translations. 2018-01-25 09:07:43 +02:00
Lauri Ojansivu 3b8c76a32e Update versions of Node and NPM at Travis. 2018-01-25 09:00:57 +02:00
Lauri Ojansivu 7f4401f3a2 Fix lint errors. Update changelog. 2018-01-25 08:22:11 +02:00
Lauri Ojansivu 188341cf50 Merge remote-tracking branch 'upstream/devel' into devel 2018-01-25 07:31:42 +02:00
Andrés Manelli af119ff7c0 Add card on first swimlane found 2018-01-22 23:43:47 -03:00
Andrés Manelli 7b04f14e3c Allow toogle of lists and swimlanes views 2018-01-22 23:35:23 -03:00
Andrés Manelli a14f4ffee2 Add view boards field to change between views 2018-01-22 16:54:19 -03:00
Andrés Manelli 2d7d9b5d9f Fix lint errors 2018-01-22 15:31:33 -03:00
Andrés Manelli ecb8c88233 Add migration for swimlane addition 2018-01-22 15:10:26 -03:00
Lauri Ojansivu 91e738bd32 Go back using debian buster-slim Docker base image 2018-01-22 18:46:53 +02:00
Lauri Ojansivu ec0bbe9e14 Try Debian experimental with Docker, does it work or fix bugs 2018-01-22 17:54:19 +02:00
Lauri Ojansivu 6e25ef73b0 Use Debian package version of gosu 2018-01-22 17:22:16 +02:00
Lauri Ojansivu d2ce41694f Dockerfile apt => apt-get 2018-01-22 17:17:28 +02:00
Lauri Ojansivu b2c9d47b0f Removed dist-upgrade from Dockerfile, trying to fix docker build. 2018-01-22 16:59:36 +02:00
Lauri Ojansivu 52aa22f36a Try Debian 10 buster with Docker 2018-01-22 16:53:39 +02:00
Lauri Ojansivu bc6217854a Try to fix snap external symlink, that prevents uploading of snap 2018-01-22 16:41:01 +02:00
Lauri Ojansivu d79bb1a81c Try to fix Docker and Snap: add apt-utils, remove sed bson. 2018-01-22 14:37:34 +02:00
Lauri Ojansivu fb220fe918 v0.64 2018-01-22 00:43:41 +02:00
Lauri Ojansivu 89ccef84be Sandstorm fix for Meteor 1.6.0.1 2018-01-22 00:20:53 +02:00
Lauri Ojansivu 6622dbb56b Meteor 1.6.0.1, Node 8.9.3, NPM 5.5.1, fibers 2.0.0 2018-01-22 00:18:59 +02:00
Lauri Ojansivu 7963171058 Update translations. 2018-01-21 18:24:16 +02:00
Andrés Manelli ee2a43dd5b Add siwmlane button. Allow card drop between swimlanes 2018-01-19 16:00:02 -03:00
Andrés Manelli 690a5b9703 First swimlane draft, no functionality 2018-01-19 12:22:03 -03:00
Lauri Ojansivu f33be3e243 Add Mongolian and Portuguese. 2018-01-16 01:54:16 +02:00
Lauri Ojansivu 4eaf92d17e Update translations. Add Mongolian and Portuguese. 2018-01-16 01:53:11 +02:00
Lauri Ojansivu 1baa4b2fa4 spenttime => spent time 2018-01-16 00:27:14 +02:00
Lauri Ojansivu 6210c00f95 Fix double slash bug on snap. Thanks to xet7 ! 2018-01-15 23:01:00 +02:00
Lauri Ojansivu 8b6a2eade3 Update translations. 2018-01-15 19:49:30 +02:00
Lauri Ojansivu f7ef629dba Merge branch 'dpoznyak-bugfix/#476-scroll-drag-lists' into devel
Fix for dragging into scrolled-down list. Thanks to dpoznyak !
Partially addresses #476
2018-01-08 18:41:27 +02:00
Lauri Ojansivu 0f0a93cabf Fix for dragging into scrolled-down list. Thanks to dpoznyak !
Partially addresses #476
2018-01-08 18:40:03 +02:00
DPLV\dpoz e5193870fc working fix for wekan/wekan#476 in lists
working fix for wekan/wekan#476 in lists
2018-01-08 23:26:09 +08:00
Lauri Ojansivu 428465d361 Try to fix double slash on snap #962 2018-01-06 20:29:16 +02:00
Lauri Ojansivu 37b2771a9d Update translations. 2018-01-06 16:29:44 +02:00
Lauri Ojansivu ccb14beb83 Merge branch 'mmarschall-different-icons-for-start-and-due-date' into devel
Different icons for start and due date. Thanks to mmarschall !
Closes #1414
2018-01-06 15:34:31 +02:00
Lauri Ojansivu 17bb464107 Different icons for start and due date. Thanks to mmarschall !
Closes #1414
2018-01-06 15:32:18 +02:00
Matthias Marschall cd4062c9f1 different icons for start and due date 2018-01-04 18:34:39 +01:00
Lauri Ojansivu 22158b4941 Update translations. 2017-12-28 22:35:21 +02:00
Lauri Ojansivu bdf252b6e2 v0.63 2017-12-20 15:18:45 +02:00
Lauri Ojansivu 2347fbae17 Update translations. 2017-12-20 14:45:31 +02:00
Lauri Ojansivu 9e3e63f494 Merge branch 'thuanpq-auto-setting-card-cover-with-drag-drop' into devel 2017-12-20 14:15:38 +02:00
Lauri Ojansivu ba2d9b89dc Auto update card cover with new image uploaded via drag&drop.
Thanks to thuanpq !
2017-12-20 14:14:46 +02:00
Lauri Ojansivu 62d000cd67 Merge branch 'auto-setting-card-cover-with-drag-drop' of https://github.com/thuanpq/wekan into thuanpq-auto-setting-card-cover-with-drag-drop 2017-12-20 14:12:52 +02:00
Lauri Ojansivu 0c15048bdd Use Node 4.6.7. Add paxctl fix to snap. 2017-12-20 14:11:41 +02:00
Lauri Ojansivu 74877fd10d Try to fix snap build. 2017-12-19 21:38:20 +02:00
Thuan Pham Quoc c3e67510c8 Update - auto update card cover with new image uploaded via drag&drop 2017-12-18 22:40:01 +07:00
Lauri Ojansivu 4fad48e7ac Revert snap MongoDB from v3.2.18 back to v3.2.16 because of SSL cert error. Trying to fix snap build. 2017-12-13 14:28:32 +02:00
Lauri Ojansivu 0f567a8e9c Trying to fix snap build. 2017-12-13 13:49:07 +02:00
Lauri Ojansivu 0d976aaf0f v0.62 2017-12-12 15:36:02 +02:00
Lauri Ojansivu f115e33f66 v0.61 2017-12-12 14:30:02 +02:00
Lauri Ojansivu 6e8a84eaa7 Restore Meteot 1.4 version of sandstorm.js 2017-12-12 14:18:34 +02:00
Lauri Ojansivu eb9d417a27 Add mixmax:smart-disconnect to lower CPU usage when
browser tab is not selected. Thanks mfshiu !
Related wekan/wekan-mongodb#2
2017-12-12 14:06:14 +02:00
Lauri Ojansivu 8dd6255ebf Revert back to Meteor v1.4, Node v4.8.6 and MongoDB v3.2.18 2017-12-12 13:58:46 +02:00
Lauri Ojansivu 7a943f99e3 Add mixmax:smart-disconnect to lower CPU usage when
browser tab is not selected. Thanks mfshiu !
Related wekan/wekan-mongodb#2
2017-12-12 13:51:45 +02:00
Lauri Ojansivu 415fafe7f6 Add mixmax:smart-disconnect to lower CPU usage when
browser tab is not selected. Thanks mfshiu !
Related wekan/wekan-mongodb#2
2017-12-12 13:50:19 +02:00
Lauri Ojansivu 462b8023eb Update translations. 2017-12-11 23:38:49 +02:00
Lauri Ojansivu 8f2bebeeef Merge branch 'thuanpq-make-small-add-card-at-list-top-easier-to-see' into devel 2017-12-11 22:54:58 +02:00
Lauri Ojansivu e08f9686d8 Make it easier to see the Add Card button at top of list.
Thanks to thuanpq !
2017-12-11 22:54:10 +02:00
Lauri Ojansivu bd127af916 Merge branch 'make-small-add-card-at-list-top-easier-to-see' of https://github.com/thuanpq/wekan into thuanpq-make-small-add-card-at-list-top-easier-to-see 2017-12-11 22:52:53 +02:00
Lauri Ojansivu d235a00b11 Merge branch 'thuanpq-keep-attachment-section-for-uploading-attachment-easier' into devel 2017-12-11 22:51:50 +02:00
Lauri Ojansivu 8dc9856ed8 Always display attachment section for uploading file quickly.
Thanks to thuanpq !
2017-12-11 22:51:16 +02:00
Lauri Ojansivu ca1da1adc2 Merge branch 'keep-attachment-section-for-uploading-attachment-easier' of https://github.com/thuanpq/wekan into thuanpq-keep-attachment-section-for-uploading-attachment-easier 2017-12-11 22:49:09 +02:00
Lauri Ojansivu 4c0b262c7b Merge branch 'thuanpq-fixed-bug-on-long-card-history-log' into devel 2017-12-11 22:47:45 +02:00
Lauri Ojansivu 4ac9048d80 Fixed bug on long url of attachment in card activity log.
Thanks to thuanpq !
2017-12-11 22:46:59 +02:00
Lauri Ojansivu fb83a5164d Merge branch 'fixed-bug-on-long-card-history-log' of https://github.com/thuanpq/wekan into thuanpq-fixed-bug-on-long-card-history-log 2017-12-11 22:45:56 +02:00
Lauri Ojansivu a05292bd91 Update Travis versions of Node and NPM. 2017-12-11 22:44:34 +02:00
Lauri Ojansivu f4e0d92296 Merge branch 'thuanpq-fix-bug-on-header-quick-access' into devel 2017-12-11 22:13:28 +02:00
Lauri Ojansivu 9e0142b885 Boards subscription should be placed at header for all other component
can be used. Thanks to thuanpq !
2017-12-11 22:12:49 +02:00
Lauri Ojansivu 5f30c6ecca Merge branch 'fix-bug-on-header-quick-access' of https://github.com/thuanpq/wekan into thuanpq-fix-bug-on-header-quick-access 2017-12-11 22:11:31 +02:00
Lauri Ojansivu 7214e4bb2f Merge branch 'thuanpq-auto-update-card-cover-with-latest-uploaded-image' into devel 2017-12-11 22:08:17 +02:00
Lauri Ojansivu fd7a140429 Auto update card cover with latest uploaded image attachment.
Thanks to thuanpq !
2017-12-11 22:07:47 +02:00
Lauri Ojansivu 07954c0f6d Merge branch 'auto-update-card-cover-with-latest-uploaded-image' of https://github.com/thuanpq/wekan into thuanpq-auto-update-card-cover-with-latest-uploaded-image 2017-12-11 22:06:14 +02:00
Lauri Ojansivu a282a38ecd Merge branch 'thuanpq-dont-open-swipebox-overlay-while-downloading-update-cover' into devel 2017-12-11 22:05:07 +02:00
Lauri Ojansivu 1f830cc5e3 Don't open swipebox on update card cover / download file / delete file.
Thanks to thuanpq !
2017-12-11 22:04:24 +02:00
Lauri Ojansivu 96b560eb00 Merge branch 'dont-open-swipebox-overlay-while-downloading-update-cover' of https://github.com/thuanpq/wekan into thuanpq-dont-open-swipebox-overlay-while-downloading-update-cover 2017-12-11 22:00:38 +02:00
Lauri Ojansivu 6ce5ea9ca5 Merge branch 'thuanpq-fix-bug-on-sidebar-member-avatar-not-shown' into devel 2017-12-11 21:51:39 +02:00
Lauri Ojansivu 9ed730284d Fixed bug on not able to see member avatar on sidebar activity.
Thanks to thuanpq !
2017-12-11 21:50:21 +02:00
Lauri Ojansivu 10427a9beb Merge branch 'fix-bug-on-sidebar-member-avatar-not-shown' of https://github.com/thuanpq/wekan into thuanpq-fix-bug-on-sidebar-member-avatar-not-shown 2017-12-11 21:47:15 +02:00
Lauri Ojansivu ddcdcb6e08 Use Node v6.12.2 and Meteor v1.6.0 2017-12-11 21:41:52 +02:00
Lauri Ojansivu 7afea1809f Revert Meteor 1.6.1 upgrade because it broke Wekan. So now using Meteor 1.6. 2017-12-11 21:13:30 +02:00
Lauri Ojansivu 1790b99fe0 Version updates. 2017-12-11 18:15:02 +02:00
Thuan Pham Quoc d5d661b131 Fixed - make it easier to see the Adding Card btn at top of list 2017-12-10 23:03:13 +07:00
Thuan Pham Quoc 8a28e988e9 Always display attachment section for uploading file quickly 2017-12-10 22:53:45 +07:00
Thuan Pham Quoc d1d8e0b935 Fixed - bug on long url of attachment in card activity log 2017-12-09 00:41:29 +07:00
Thuan Pham Quoc 84d60b5908 Added - auto update card cover with latest uploaded image attachment of card 2017-12-09 00:36:23 +07:00
Thuan Pham Quoc 245d262705 Fixed - don't open swipebox on update card cover - download file - delete file 2017-12-08 23:57:53 +07:00
Thuan Pham Quoc c686cadfef Fixed - boards subscription should be placed at header for all other component can be used 2017-12-06 15:39:54 +07:00
Thuan Pham Quoc 26405c011f Fixed - bug on not able to see member avatar on sidebar activity 2017-12-06 15:24:53 +07:00
Lauri Ojansivu ba9e163dd5 Remove not needed packages. Upgrade packages. Update Sandstorm capnp path.
Note: This version does not work on Sandstorm yet.
2017-12-03 18:50:22 +02:00
Lauri Ojansivu 7c403053e3 Fix lint errors. 2017-12-03 04:00:55 +02:00
Lauri Ojansivu c52233cacf Update Meteor 1.6, Node 6.12 and NPM versions to Dockerfile. 2017-12-03 02:56:56 +02:00
Lauri Ojansivu d6a5cb534d Try upgrading Wekan to Node v6.12 and Meteor 1.6, still using MongoDB 3.2.18.
Standalone Wekan seems to work, needs testing.
This does not fix crash bug of MongoDB 3.4.x.
This version does not yet work on Sandstorm.
2017-12-03 02:29:37 +02:00
Lauri Ojansivu e2f768c6a0 Update Node to 4.8.6 and MongoDB to 3.2.18 2017-12-02 23:10:59 +02:00
Lauri Ojansivu 4c5eda0ae5 Merge branch 'thuanpq-fix-bug-on-missing-admin-panel-menuoption' into devel
Fixed Bug on not being able to see Admin Panel if not having access to Board List.
Thanks to thuanpq !
2017-12-02 22:20:44 +02:00
Lauri Ojansivu 670cc99b8f Fixed Bug on not being able to see Admin Panel if not having access to Board List.
Thanks to thuanpq !
2017-12-02 22:19:19 +02:00
Lauri Ojansivu 847843e51d Merge branch 'fix-bug-on-missing-admin-panel-menuoption' of https://github.com/thuanpq/wekan into thuanpq-fix-bug-on-missing-admin-panel-menuoption 2017-12-02 22:07:56 +02:00
Lauri Ojansivu 9261371c51 Fix lint error. 2017-12-02 22:04:20 +02:00
Lauri Ojansivu 233554a3d6 Move global subscription to template subscription so that subscription
will stop when template is unused. It's very important for efficiency
espacially with large number of users. Thanks to mfshiu !
2017-12-02 22:00:42 +02:00
Lauri Ojansivu fa281e3f5f Update translations. Add Latvian language. 2017-12-02 21:41:09 +02:00
Lauri Ojansivu fcf7c02c69 Merge branch 'thuanpq-allow-changing-user-password-in-admin-panel' into devel
Change password of any user in Standalone Wekan Admin Panel. Thanks to thuanpq !
2017-12-02 21:02:21 +02:00
Lauri Ojansivu 3a391d5539 Change password of any user in Standalone Wekan Admin Panel. Thanks to thuanpq ! 2017-12-02 21:01:40 +02:00
Thuan Pham Quoc 22e369804b Allow admin to change user password in admin panel 2017-12-01 15:55:53 +07:00
Thuan Pham Quoc 3dc326db6a Move user-admin subsciption to header 2017-12-01 15:26:41 +07:00
Thuan Pham Quoc b3eab212ae Fixed - Missing trailing comma comma-dangle 2017-12-01 15:15:44 +07:00
Thuan Pham Quoc 6d9d183674 Fixed - bug on not able to see ADMIN PANEL if not access Board List 2017-12-01 15:04:35 +07:00
Lauri Ojansivu 54036fd7a3 v0.60 2017-11-29 14:18:51 +02:00
Lauri Ojansivu c72792e4ed Merge branch 'nztqa-conflict-resolution-458' into devel
Optimize for mobile web, show single list per page with navigate bar.
Thanks to floatinghotpot and nztqa ! Related #953
2017-11-29 12:11:02 +02:00
Lauri Ojansivu c3e2ee1db8 Optimize for mobile web, show single list per page with navigate bar.
Thanks to floatinghotpot and nztqa ! Related #953
2017-11-29 12:03:41 +02:00
Lauri Ojansivu 5d8462ca11 Merge branch 'conflict-resolution-458' of https://github.com/nztqa/wekan into nztqa-conflict-resolution-458 2017-11-29 11:29:43 +02:00
Lauri Ojansivu 7e4b42e9b3 Fix: Frequent Subscriptions problem that make Excessive CPU usage.
Thanks to mfshiu ! Closes #1096, Closes wekan/wekan-mongodb#2
2017-11-29 11:23:49 +02:00
Lauri Ojansivu c609096700 Add SMTP test email button to Admin Panel. Thanks to nztqa ! 2017-11-29 11:00:15 +02:00
Lauri Ojansivu 79fa5f89f3 Merge branch 'nztqa-improve-smtp-testing' into devel
Add SMTP test email button to Admin Panel. Thanks to nztqa !
2017-11-29 10:54:03 +02:00
Lauri Ojansivu f224934ae0 Update translations. 2017-11-29 10:53:08 +02:00
nztqa c31d7455f7 Optimize for mobile web, show single list per page with navigate bar 2017-11-29 17:06:33 +09:00
Lauri Ojansivu 596dd87862 Fix typo 2017-11-28 09:30:22 +02:00
Lauri Ojansivu c048ce89f1 Merge branch 'improve-smtp-testing' of https://github.com/nztqa/wekan into nztqa-improve-smtp-testing 2017-11-28 08:49:44 +02:00
nztqa 44559b52a6 Add smtp test email translations 2017-11-28 13:26:46 +09:00
Lauri Ojansivu 162b15c0cd Merge branch 'nztqa-issue-1349' into devel
Fix: User with comment only permissions can remove another user from a card.
Thanks to nztqa ! Closes #1349
2017-11-27 13:15:00 +02:00
Lauri Ojansivu 3756b7b0fc Fix: User with comment only permissions can remove another user from a card.
Thanks to nztqa ! Closes #1349
2017-11-27 13:12:59 +02:00
nztqa 332f12ce28 Add alert method 2017-11-27 19:24:06 +09:00
Lauri Ojansivu d31d5fd47a Merge branch 'issue-1349' of https://github.com/nztqa/wekan into nztqa-issue-1349 2017-11-27 11:37:18 +02:00
Lauri Ojansivu 83efd5b872 Merge branch 'martinlindhe-devel' into devel
Fix some typos in readne. Thanks to martinlindhe !
2017-11-27 11:32:34 +02:00
nztqa c2fd03e113 Fix permissions (isBoardMember to isNotCommentOnly) 2017-11-27 17:52:21 +09:00
nztqa dffe3d5ade Add test SMTP settings 2017-11-27 16:44:19 +09:00
Martin Lindhe d7cefc0042 fix some typos 2017-11-25 11:56:33 +01:00
Lauri Ojansivu 33b7622897 v0.59 2017-11-23 17:47:15 +02:00
Lauri Ojansivu eb8083097f Merge branch 'pierreozoux-fix-log' into devel 2017-11-23 17:45:03 +02:00
Lauri Ojansivu 80c0c80a6a Fix not working stdout logging by removing Winston logger. Thanks to pierreozoux ! 2017-11-23 17:44:22 +02:00
pierreozoux e28f3692ca Revert 00a357cd70 to fix logging 2017-11-23 16:31:18 +01:00
Lauri Ojansivu 6bcc1cfc62 v0.58 2017-11-23 12:11:35 +02:00
Lauri Ojansivu 990003ee0f Update translations. 2017-11-23 12:08:01 +02:00
Lauri Ojansivu 60929fb200 v0.57 2017-11-23 11:45:44 +02:00
Lauri Ojansivu 45c78a05e2 Fix Winston logger. Thanks to pierreozoux ! 2017-11-23 11:40:03 +02:00
Lauri Ojansivu cf045e3c34 Merge branch 'pierreozoux-fix-logger' into devel
Fix logger. Thanks to pierreozoux !
2017-11-23 11:35:51 +02:00
Lauri Ojansivu 6575312e74 Merge branch 'fix-logger' of https://github.com/pierreozoux/wekan into pierreozoux-fix-logger
Conflicts:
	server/logger.js
2017-11-23 11:35:27 +02:00
pierreozoux ee22364354 Try to fix build 2017-11-23 10:30:56 +01:00
Lauri Ojansivu a64dbc4a9b Merge branch 'fix-logger' of https://github.com/pierreozoux/wekan into pierreozoux-fix-logger 2017-11-23 11:23:07 +02:00
pierreozoux ebff813f99 Try to fix build 2017-11-23 10:21:03 +01:00
Lauri Ojansivu 674d45a81c Add Gogs Integration as separate project. 2017-11-23 01:47:10 +02:00
pierreozoux b03c9b9879 Fix bug when LOGGER is enabled, but LOGGERS is empty. 2017-11-22 16:10:43 +01:00
pierreozoux 7f8f6bf3db Make logger enabled by default 2017-11-22 16:10:18 +01:00
pierreozoux 4ffe9438e0 Fix add logger bug
In case you want to have only the console, it will fail at the `Winston.add`
as it is already there.
2017-11-22 16:10:03 +01:00
Lauri Ojansivu fbf97d31a0 Maybe github does not like : at bullet point. 2017-11-21 13:28:22 +02:00
Lauri Ojansivu 0c5d6c2ade Try to fix markdown. Is there bug at GitHub? It did combine bullet points to same line. 2017-11-21 13:26:55 +02:00
Lauri Ojansivu 00737fa015 Try to fix markdown. 2017-11-21 13:24:42 +02:00
Lauri Ojansivu 0c9343ad88 Fix typo. 2017-11-21 13:22:49 +02:00
Lauri Ojansivu f31d007177 v0.56 2017-11-21 12:40:30 +02:00
Lauri Ojansivu 932a273ba0 Add bcrypt just to see if bson error goes away. 2017-11-21 12:39:26 +02:00
Lauri Ojansivu 9ea35b7188 Merge branch 'thuanpq-card-spent-time' into devel
Spent time/Overtime on card. Thanks to thuanpq ! Closes #1337
2017-11-21 11:31:04 +02:00
Lauri Ojansivu d76387aed2 Spent time/Overtime on card. Thanks to thuanpq ! Closes #1337 2017-11-21 11:30:18 +02:00
Lauri Ojansivu 77a4341621 Update translations. Added Greek language. 2017-11-21 11:25:59 +02:00
Lauri Ojansivu e162fe3c0f Merge branch 'card-spent-time' of https://github.com/thuanpq/wekan into thuanpq-card-spent-time 2017-11-21 10:03:02 +02:00
Lauri Ojansivu f3e7646cfa Merge branch 'couscous3-fix-title-editing-shift-key-firefox' into devel
Card details: fix title editing with shift key. Thanks to couscous3 !
2017-11-21 09:30:58 +02:00
Lauri Ojansivu 552fa32b87 Card details: fix title editing with shift key. Thanks to couscous3 ! 2017-11-21 09:30:31 +02:00
Lauri Ojansivu 8a4f5ed6e3 Merge branch 'fix-title-editing-shift-key-firefox' of https://github.com/couscous3/wekan into couscous3-fix-title-editing-shift-key-firefox 2017-11-21 09:28:37 +02:00
Lauri Ojansivu c8cef7551f Merge branch 'couscous3-remove-minicard-title-whitespace' into devel 2017-11-21 09:27:21 +02:00
Lauri Ojansivu 9c46c6c962 Remove erroneous minicard title whitespace. Thanks couscous3 ! 2017-11-21 09:26:50 +02:00
Lauri Ojansivu 01818a99b9 Merge branch 'remove-minicard-title-whitespace' of https://github.com/couscous3/wekan into couscous3-remove-minicard-title-whitespace 2017-11-21 09:24:44 +02:00
Lauri Ojansivu 70fb1c4650 Merge branch 'thuanpq-fix-board-list-long-desc' into devel
Fix: Board list with long-description boards not visible. Thanks thuanpq !
2017-11-21 09:22:41 +02:00
Lauri Ojansivu 5c743f12a1 Board list with long-description boards not visible. Thanks thuanpq ! 2017-11-21 09:22:23 +02:00
Lauri Ojansivu 5b9e8cce14 Merge branch 'fix-board-list-long-desc' of https://github.com/thuanpq/wekan into thuanpq-fix-board-list-long-desc 2017-11-21 09:19:06 +02:00
Lauri Ojansivu 06afa1ae35 Merge branch 'GhassenRjab-feature/copy-move-cards-x-boards' into devel
Copy/Move card to another board in Standalone Wekan.
Thanks to GhassenRjab and thuanpq ! Closes #797
2017-11-21 09:16:28 +02:00
Lauri Ojansivu a84db59898 Copy/Move card to another board in Standalone Wekan. Thanks to GhassenRjab and thuanpq ! Closes #797 2017-11-21 09:15:16 +02:00
Lauri Ojansivu 9441fb29c9 Fix Copy/Move cards. Thanks to thuanpq ! 2017-11-21 09:07:56 +02:00
couscous3 7dae37eeac card detail: fix title editing with shift key
in firefox there is no global `event` object, therefore we should use the `evt` argument from the event handler
2017-11-20 18:25:56 +01:00
couscous3 90fd3286a8 remove erroneous minicard title whitespace
introduced by the markdown viewer in commit #309c1d0 (the markdown viewer uses <p> tags which have a margin-bottom)
2017-11-20 18:07:37 +01:00
Thuan Pham Quoc 996fdc2bda Fixed issue on board list with long-desc boards 2017-11-20 23:28:46 +07:00
Thuan Pham Quoc 6dba4ccd4d Added red-green circle to board lists item for indicating board which has overtime logs or normal spent time log 2017-11-20 23:24:27 +07:00
Lauri Ojansivu b592e8ad14 Merge branch 'feature/copy-move-cards-x-boards' of https://github.com/GhassenRjab/wekan into GhassenRjab-feature/copy-move-cards-x-boards 2017-11-20 17:46:34 +02:00
Thuan Pham Quoc d38071457c Update spent time title to indicate Overtime or normal Spent time 2017-11-20 22:40:02 +07:00
Thuan Pham Quoc eec3c301bc Add card spent time to log time what can be overtime or not (will support filtering in future) 2017-11-20 22:26:31 +07:00
Lauri Ojansivu dfd0b21947 v0.55 2017-11-19 19:01:42 +02:00
Lauri Ojansivu 6d93e9ffb0 Add link to commit by xet7 to CHANGELOG invitation code fix. 2017-11-19 18:05:41 +02:00
Lauri Ojansivu 99be745f02 Fix: Invitation /sign-up page did not show input for invitation code. Thanks to xet7 ! 2017-11-19 18:04:02 +02:00
Lauri Ojansivu 62e43c0832 Fix: Error after sending invitation and joining board:
Exception while invoking method 'login' TypeError: Cannot read property 'loginDisabled' of undefined.
Thanks to nztqa ! Closes #1331
2017-11-19 17:51:26 +02:00
Lauri Ojansivu eceaac7998 Merge branch 'soohwa-add-rest-api-bettor-error-output' into devel
REST API better error output. Thanks to soohwa ! Related #1037
2017-11-19 10:45:04 +02:00
Lauri Ojansivu c01335ee29 REST API better error output. Thanks to soohwa ! Related #1037 2017-11-19 10:44:37 +02:00
Lauri Ojansivu 9353d785ea Fix: Helper to list boards for user. Thanks to milesibastos ! Closes #1326 2017-11-19 09:50:03 +02:00
Lauri Ojansivu 0ea96fca3f Merge branch 'thuanpq-devel' into devel
User Admin to Admin Panel: List users.
Change: is user admin, name, fullname, email address, is user active.
Not changing password yet. Thanks to thuanpq and xet7 ! Related #802
2017-11-19 01:45:58 +02:00
Lauri Ojansivu 75c5eeb046 Update translations. 2017-11-19 01:41:53 +02:00
Lauri Ojansivu 9f30eeae61 User Admin to Admin Panel: List users.
Change: is user admin, name, fullname, email address, is user active.
Not changing password yet. Thanks to thuanpq and xet7 ! Related #802
2017-11-19 01:25:28 +02:00
Lauri Ojansivu 6fc992e6d7 Change admin panel header order to info people version. 2017-11-19 01:05:43 +02:00
Lauri Ojansivu 622292e40e Make Admin Panel People page text translateable 2017-11-19 01:05:09 +02:00
Lauri Ojansivu 22e43e6591 Merge branch 'devel' of https://github.com/thuanpq/wekan into thuanpq-devel 2017-11-18 23:37:15 +02:00
Lauri Ojansivu 13d8e75c05 Merge branch 'brooksbecton-addMarkdownToTitle' into devel
Markdown in card/minicard/checlist titles
and checklist items. Next line: Shift+Enter. Submit: Enter. Closes #926.
Fix: Emoji detection breaks MAC addresses. Closes #1248.
Fix: Codeblocks should not be scanned for emoji. Closes #643.
Fix: Whitespace trimming breaks Markdown code block indentation. Closes #1288.
Thanks to brooksbecton !
2017-11-18 23:31:00 +02:00
Lauri Ojansivu 8ae9cb97f7 Markdown in card/minicard/checlist titles
and checklist items. Next line: Shift+Enter. Submit: Enter. Closes #926.
Fix: Emoji detection breaks MAC addresses. Closes #1248.
Fix: Codeblocks should not be scanned for emoji. Closes #643.
Fix: Whitespace trimming breaks Markdown code block indentation. Closes #1288.
Thanks to brooksbecton !
2017-11-18 23:30:20 +02:00
Thuan Pham Quoc b4c3e02b75 Fix Missing trailing comma in users.js 2017-11-16 14:14:03 +07:00
Brooks Becton ffb8b72b69 Updated comments about pressing enter on forms 2017-11-14 20:57:36 -06:00
Brooks Becton 309c1d08ff Added markdown support to card-titles, minicard-titles, checklist title, and checklist items 2017-11-14 20:41:05 -06:00
Ghassen Rjab ce4f158976 Hide list of boards in Copy|Move cards for Sandstorm users 2017-11-14 03:25:04 +01:00
Ghassen Rjab 5a37ba0d9f Move cards cross boards 2017-11-14 03:03:29 +01:00
Ghassen Rjab 59f4daf91e Copy cards cross boards 2017-11-14 03:03:08 +01:00
Thuan Pham Quoc fa1d8cd5ef Added update all user profile from admin panel 2017-11-08 11:34:37 +07:00
Thuan Pham Quoc e3b7f85cc3 Updated users methods to get user id from client on updating user data, is aimed to support admin update other user profile 2017-11-08 11:34:05 +07:00
Thuan Pham Quoc 3bead1bf78 Added pagination to people management in admin panel 2017-11-08 11:27:59 +07:00
Thuan Pham Quoc 1f6545e411 Added edit user from admin panel 2017-11-07 22:26:21 +07:00
Thuan Pham Quoc 29d54f46aa Added people list in admin panel , just raw data right now, will add more features soon 2017-11-07 14:01:27 +07:00
Thuan Pham Quoc 2d12a4f404 Add .idea to .gitignore 2017-11-06 17:34:32 +07:00
Lauri Ojansivu ba3c3f8289 v0.54 2017-11-02 02:11:27 +02:00
Lauri Ojansivu 6eef4043ca Merge branch 'amadilsons-softwiplimit' into devel
Soft WIP Limit. Thanks to amadilsons and xet7 ! Closes #1311
2017-11-02 01:29:49 +02:00
Lauri Ojansivu 999cdb2bb9 Soft WIP Limit. Thanks to amadilsons and xet7 ! Closes #1311 2017-11-02 01:29:23 +02:00
Lauri Ojansivu cc5435c780 Update translations. 2017-11-02 01:25:09 +02:00
Lauri Ojansivu e015e4245e Make it possible to translate text Soft WIP Limit. 2017-11-02 01:03:51 +02:00
amadilsons c17f26f6ba fix: always restore archived cards if wip limit is soft 2017-10-31 21:20:53 +00:00
amadilsons fdd1aad80d added soft wip limit feature, fixed wipLimit=0 bug (??) 2017-10-31 21:10:36 +00:00
Lauri Ojansivu 8bf3f300ad v0.52 2017-10-31 07:26:32 +02:00
Lauri Ojansivu 99455b2728 Update translations. 2017-10-31 07:24:03 +02:00
Lauri Ojansivu 1a232c7bbb Add iPhone favicon for Wekan. Thanks to guillaumebriday ! Closes #1317 2017-10-31 06:54:47 +02:00
Lauri Ojansivu d3d73e9cdd Merge branch 'Tentoe-boardimportbug' into devel
Fixed Members do not get included on board import from Wekan.
Thanks to Tentoe ! Closes #1255
2017-10-31 06:48:40 +02:00
Lauri Ojansivu 0c34cb97a7 Fixed Members do not get included on board import from Wekan. Thanks to Tentoe ! Closes #1255 2017-10-31 06:48:15 +02:00
Lauri Ojansivu 0df3e7a3c0 Merge branch 'boardimportbug' of https://github.com/Tentoe/wekan into Tentoe-boardimportbug 2017-10-31 06:28:00 +02:00
Lauri Ojansivu 29a08e5568 Merge branch 'brooksbecton-attachments-improvements' into devel 2017-10-31 06:20:02 +02:00
Lauri Ojansivu 09808840cd Image attachment resize on smaller screens and swipebox. Thanks to brooksbecton ! Closes #201 2017-10-31 06:19:24 +02:00
Lauri Ojansivu c5e36d9160 Merge branch 'attachments-improvements' of https://github.com/brooksbecton/wekan into brooksbecton-attachments-improvements 2017-10-31 06:02:55 +02:00
Lauri Ojansivu aa1646ad45 Merge branch 'ocdtrekkie-patch-1' into devel
Permit editing WIP limit. Thanks to nztqa and ocdtrekkie ! Closes #1310
2017-10-31 05:59:04 +02:00
Lauri Ojansivu c2173e073e Permit editing WIP limit. Thanks to nztqa and ocdtrekkie ! Closes #1310 2017-10-31 05:58:33 +02:00
Keven Kurz PC 81d00a9471 Covered case of no admin and no self mapping.
Now importer is always admin of the imported board so that no
undeletable boards can be created.
2017-10-29 17:36:31 +01:00
Keven Kurz PC e8cfed1f7b fixed Members do not get included on board import from WeKan #1255
fixed multiple errors where constants were mistakenly overridden.(or
trying to get a property of an object after making sure it doesn't
exits)

renamed wekanBoard Parameter from createBoardAndLabels for clairity

reworked adding admin for imorter
2017-10-29 16:34:49 +01:00
Brooks Becton 28c78fdfef Merge branch 'attachments-improvements' of github.com:brooksbecton/wekan into attachments-improvements 2017-10-28 10:15:57 -05:00
Brooks Becton d48043c7ee Added swipebox package and added it to attachement images
Also removed '.js-open-viewer' and it's styling stub
2017-10-28 10:15:47 -05:00
Brooks Becton dd1a8ade5e Added media queries to resize attatchments
media queries match other break points and break from a 3 column to 2 to 1
2017-10-28 10:15:47 -05:00
Brooks Becton d9705a0ec4 Added swipebox package and added it to attachement images
Also removed '.js-open-viewer' and it's styling stub
2017-10-28 10:15:05 -05:00
Jacob Weisz 58fbe8e6f2 Permit editing the WIP limit
This is a fix for #1310 and required for Edge users to be able to edit the WIP limit. (The up/down buttons appear to be "optional" according to the HTML5 spec, and can't be assumed to be present.)

I also believe I fixed a spelling error in the same section.

This PR is **NOT TESTED**
2017-10-26 23:48:24 -05:00
Brooks Becton 5c1ace7293 Merge branch 'attachments-improvements' of github.com:brooksbecton/wekan into attachments-improvements 2017-10-25 18:34:48 -05:00
Brooks Becton 0321d9770c Added media queries to resize attatchments
media queries match other break points and break from a 3 column to 2 to 1
2017-10-25 18:34:40 -05:00
Brooks Becton 6a2b6ef3c0 Added media queries to resize attatchments
media queries match other break points and break from a 3 column to 2 to 1
2017-10-25 18:22:34 -05:00
Lauri Ojansivu 01507576b1 v0.51 2017-10-25 17:38:01 +03:00
Lauri Ojansivu 94a6d9ae2f Merge branch 'devel' of github.com:wekan/wekan into devel 2017-10-25 17:28:01 +03:00
Lauri Ojansivu 64fe808a4a Update translations. 2017-10-25 17:27:45 +03:00
Lauri Ojansivu a493c314db Add more languages to Roboto font. Thanks to chromas-cro ! Closes #1299 2017-10-23 16:53:58 +03:00
Lauri Ojansivu d1670ee4c1 Add more languages to Roboto font. Thanks to chromas-cro ! Closes #1299 2017-10-23 16:51:36 +03:00
Lauri Ojansivu 2edced5467 Fix: User with comment only permission can add cards. Thanks to xet7 ! Closes #1301 2017-10-20 17:08:54 +03:00
Lauri Ojansivu 509b640588 Fix: User with comment only permission can add cards. Thanks to xet7 ! Closes #1301 2017-10-20 17:08:21 +03:00
Lauri Ojansivu 624c5aa9b2 Update changelog. 2017-10-20 15:53:27 +03:00
Lauri Ojansivu c5540ddcbd Change invitation link from sign-in to sign-up. Thanks to xet7 ! Closes #1300 2017-10-20 15:52:19 +03:00
Lauri Ojansivu b105f0e2e7 Update translations. Add Spanish of Argentina. 2017-10-20 15:43:54 +03:00
Lauri Ojansivu 99703035d7 Use paxctl to fix segfaut on Alpine Linux. Closes #1303 2017-10-20 14:34:15 +03:00
Lauri Ojansivu b92cde23aa Merge branch 'soohwa-1285-feature-disable-user' into devel
REST API:
- Disable and enable user login.
- Take ownership boards of a user.
- List boards of user.

Thanks to soohwa ! Closes #1285, closes #1220, closes #1118
2017-10-20 14:29:32 +03:00
Lauri Ojansivu 21f76bcacc REST API: Disable and enable user login. Take ownership boards of a user.
List boards of user. Thanks to soohwa ! Closes #1285, closes #1220, closes #1118
2017-10-20 14:29:07 +03:00
Lauri Ojansivu 0d7c1501ce Merge branch '1285-feature-disable-user' of https://github.com/soohwa/wekan into soohwa-1285-feature-disable-user 2017-10-16 18:43:22 +03:00
soohwa 97a23011da Add REST API better error output 2017-10-15 07:39:48 +02:00
Lauri Ojansivu 93d8a3f88a Update translations: es 2017-10-14 23:18:33 +03:00
soohwa 624719974e fix lint error 2017-10-13 09:15:52 +02:00
soohwa c290d63048 fix lint error 2017-10-13 09:00:25 +02:00
soohwa b55756216e fix lint errors 2017-10-13 08:46:25 +02:00
soohwa 77d23df87f Add the ability for the admin :
- disabling a login for a user (not himself)
- enabling a login for a user
- transfering the ownership of all user's boards to himself
2017-10-13 08:15:19 +02:00
Lauri Ojansivu 3ab33ed826 v0.50 2017-10-10 18:08:21 +03:00
Lauri Ojansivu 8f1f7a1d56 Fix and update translations. Thanks to xet7 ! Closes #1286 2017-10-10 17:57:26 +03:00
Lauri Ojansivu 4eccfb6c25 v0.49 2017-10-09 20:00:47 +03:00
Lauri Ojansivu a5daf5dc29 Fix: When WIP limit in use, hide also add card + button at top of list. Thanks to xet7 ! 2017-10-09 19:46:11 +03:00
Lauri Ojansivu 6a89914873 v0.48 2017-10-09 18:30:36 +03:00
Lauri Ojansivu 5532a0071a Merge branch 'amadilsons-userSelfRemove' into devel
User can leave board on Standalone Wekan. Thanks to amadilsons !
2017-10-09 18:23:25 +03:00
Lauri Ojansivu 46d7a33575 User can leave board on Standalone Wekan. Thanks to amadilsons ! 2017-10-09 18:22:50 +03:00
Lauri Ojansivu 2f0609db64 Update translations. 2017-10-09 18:13:16 +03:00
Lauri Ojansivu f16687fa94 Merge branch 'userSelfRemove' of https://github.com/amadilsons/wekan into amadilsons-userSelfRemove 2017-10-09 16:38:43 +03:00
Lauri Ojansivu dc82582391 Merge branch 'soohwa-fix-admin-create-user' into devel
REST API: Create user despite disabling registration.
Thanks to soohwa ! Closes #1232
2017-10-09 16:36:31 +03:00
Lauri Ojansivu ff7b001b00 REST API: Create user despite disabling registration.
Thanks to soohwa ! Closes #1232
2017-10-09 16:35:56 +03:00
Lauri Ojansivu 33cea11393 Merge branch 'fix-admin-create-user' of https://github.com/soohwa/wekan into soohwa-fix-admin-create-user 2017-10-09 15:57:42 +03:00
Lauri Ojansivu 10cb2db94f Merge branch 'amadilsons-issue783' into devel
WIP Limits. Thanks to amadilsons ! Closes #783
2017-10-09 15:55:44 +03:00
Lauri Ojansivu c346743234 WIP Limits. Thanks to amadilsons ! Closes #783 2017-10-09 15:55:11 +03:00
amadilsons 6ba1fc5ba1 user can now leave the board 2017-10-09 14:49:03 +02:00
Lauri Ojansivu de2acaec68 Update translations. 2017-10-09 15:37:43 +03:00
Lauri Ojansivu fb060ed2c5 Merge branch 'issue783' of https://github.com/amadilsons/wekan into amadilsons-issue783 2017-10-09 14:49:38 +03:00
Lauri Ojansivu c84187bdad Fix: Admin announcement can be viewed without signing in.
Thanks to nztqa ! Closes #1281
2017-10-09 14:48:05 +03:00
soohwa ad607c1291 Remove trailing space 2017-10-08 18:15:11 +09:00
soohwa b9be17360f Add comment 2017-10-07 08:33:28 +09:00
Lauri Ojansivu 23ff08382a Dockerfile base image to debian:jessie-slim 2017-10-06 19:33:36 +03:00
Lauri Ojansivu b34c62bbc7 Dockerfile base image from debian:8.9 to bitnami/minideb:jessie 2017-10-06 19:15:14 +03:00
Lauri Ojansivu e85d6d6c5e MongoDB v3.2.17 2017-10-06 19:14:23 +03:00
soohwa 8daa5b4848 Change fromAdmin into createdThroughApi 2017-10-06 23:08:22 +09:00
soohwa 273784b9e4 Clear "fromAdmin". Thx to nztqa. 2017-10-06 01:21:45 +09:00
amadilsons f77da76c68 added i18n translation, minor fix 2017-10-05 17:22:03 +02:00
amadilsons 214fe6a61f feature implemented, known bugs fixed 2017-10-05 16:46:55 +02:00
Lauri Ojansivu 38d1a424d0 v0.47 2017-10-04 21:57:41 +03:00
Lauri Ojansivu e4c08f6933 Update translations. 2017-10-04 21:47:30 +03:00
Lauri Ojansivu 3bee5ad7fe Merge branch 'nztqa-improve-slider-color' into devel
Use theme color for Slider for Comments only. Thanks to nztqa! Closes #1274
2017-10-04 20:45:42 +03:00
Lauri Ojansivu 296520f9ac Use theme color for Slider for Comments only. Thanks to nztqa! Closes #1274 2017-10-04 20:45:14 +03:00
amadilsons c865bfe497 most work concluded, code needs clean up, further testing required 2017-10-04 17:48:37 +02:00
amadilsons 089dbf0cf6 on its way 2017-10-04 11:12:52 +02:00
nztqa 527c430307 Add toggle switch-style for board color change events 2017-10-04 17:18:12 +09:00
nztqa de4ae2dc74 Add check to see if permission is available (with isBoardMember) 2017-10-04 17:06:52 +09:00
Lauri Ojansivu bab02bf8fa v0.46 2017-10-03 15:24:16 +03:00
Lauri Ojansivu 23a9ba0ef6 SECURIY FIX: Meteor allow/deny. Thanks to nztqa ! Closes #1271 2017-10-03 15:20:46 +03:00
Lauri Ojansivu c3804dc0fa SECURITY FIX: Meteor allow/deny. 2017-10-03 15:17:40 +03:00
Lauri Ojansivu 08bab70dbe Merge branch 'andresmanelli-devel' into devel 2017-10-03 15:09:57 +03:00
Lauri Ojansivu ed4c749cea Webhook parameters and response order. Thanks to andresmanelli ! 2017-10-03 15:09:25 +03:00
Lauri Ojansivu d6ef4a8266 Merge branch 'devel' of https://github.com/andresmanelli/wekan into andresmanelli-devel 2017-10-03 14:03:15 +03:00
Lauri Ojansivu 1d3e2ffadd Merge branch 'nztqa-improve-comment-only' into devel
Fix: Slider for Comments only does not work correctly with over 21 activities.
Thanks to nztqa ! Closes #1269
2017-10-03 14:01:47 +03:00
Lauri Ojansivu 0074317bd3 Fix: Slider for Comments only does not work correctly with over 21 activities.
Thanks to nztqa ! Closes #1269
2017-10-03 14:01:05 +03:00
nztqa 26aa9a4ac4 Use Meteor.subscribe instead of DOM manipulation for Hide system messages 2017-10-03 10:56:28 +09:00
nztqa e587964e82 Remove console log 2017-10-03 09:59:25 +09:00
Lauri Ojansivu 61dce8e65d Fix typo. 2017-10-01 16:12:29 +03:00
Lauri Ojansivu c18ded23a3 v0.45 2017-10-01 12:06:22 +03:00
Lauri Ojansivu ff5e88fca3 Merge branch 'nztqa-improve-announcement' into devel
Site Wide Announcement. Thanks to nztqa !
2017-10-01 10:44:42 +03:00
Lauri Ojansivu 8df9e681ed Fix lint errors. 2017-10-01 10:44:06 +03:00
Lauri Ojansivu 443c3a7ac6 Update translations. 2017-10-01 10:41:57 +03:00
Lauri Ojansivu c8cbb7697d Site Wide Announcement. Thanks to nztqa ! 2017-10-01 10:18:16 +03:00
Lauri Ojansivu d213d37dab Merge branch 'improve-announcement' of https://github.com/nztqa/wekan into nztqa-improve-announcement 2017-10-01 09:59:57 +03:00
Lauri Ojansivu a003161fa7 Merge branch 'nztqa-fix-create_label' into devel
git commit CHANGELOG.md -m "Hide create label from normal users, because only board admin can create labels.
Thanks to nztqa ! Closes #1229"
2017-10-01 09:58:35 +03:00
Lauri Ojansivu 51fd053119 Hide create label from normal users, because only board admin can create labels.
Thanks to nztqa ! Related #1229
2017-10-01 09:55:33 +03:00
Lauri Ojansivu 740c705748 Merge branch 'fix-create_label' of https://github.com/nztqa/wekan into nztqa-fix-create_label 2017-10-01 09:50:49 +03:00
Lauri Ojansivu a1d0672739 Merge branch 'nztqa-improve-activities' into devel
Slider for Comments only in activity feed.
Thanks to nztqa ! Closes #1182
2017-10-01 09:48:52 +03:00
Lauri Ojansivu 7d3fed56ae Slider for Comments only in activity feed.
Thanks to nztqa ! Closes #1182
2017-10-01 09:47:53 +03:00
Lauri Ojansivu a0cccb736c Merge branch 'improve-activities' of https://github.com/nztqa/wekan into nztqa-improve-activities 2017-10-01 09:42:15 +03:00
Lauri Ojansivu 6ec14ee52b Merge branch 'nztqa-fix-copy-card' into devel
Fix Data inconsistency when copying card.
Thanks to nztqa ! Related #1218
2017-10-01 09:40:27 +03:00
Lauri Ojansivu 4b995e88ba Fix Data inconsistency when copying card.
Thanks to nztqa ! Related #1218
2017-10-01 09:39:35 +03:00
Lauri Ojansivu 2ae0dc315f Merge branch 'fix-copy-card' of https://github.com/nztqa/wekan into nztqa-fix-copy-card 2017-10-01 09:35:36 +03:00
nztqa a88ac6113e Rename notice -> announcement 2017-10-01 12:43:15 +09:00
soohwa 42ca385a36 Fix password not saved 2017-10-01 10:15:54 +09:00
Andrés Manelli de1ca1d12a Send result before webhook 2017-09-29 18:47:40 -03:00
Andrés Manelli 196f959f1d Add some parameters to webhook 2017-09-29 17:11:13 -03:00
amadilsons a918d36533 mostly frontend work, lists coll update with wipLimit field 2017-09-29 16:52:53 +02:00
nztqa 0e43a5561b Add check to see if permission 2017-09-29 15:02:35 +09:00
amadilsons c9c650664f basic frontend setup, List model updated with wipLimit field 2017-09-28 16:59:53 +02:00
nztqa aa1876f94c Add message from service administrator 2017-09-28 16:57:04 +09:00
soohwa ee94735922 Lint error 2017-09-25 22:14:13 +09:00
soohwa deef0855d5 Fix https://github.com/wekan/wekan/issues/1249 2017-09-25 21:03:18 +09:00
nztqa 61ee107c27 Disable button when "Hide system messages" in user profile setting is valid 2017-09-25 20:27:54 +09:00
nztqa b503ba1144 Add comments only in activity feed 2017-09-25 14:52:55 +09:00
nztqa 860ae6f38d Remove cover id 2017-09-25 13:52:44 +09:00
162 changed files with 8640 additions and 2191 deletions

No files matched your search

+2 -3
View File
@@ -52,7 +52,6 @@
"prefer-const": 2,
"prefer-spread": 2,
"prefer-template": 2,
"no-console": 0,
"no-unused-vars" : "warn"
},
"globals": {
@@ -125,11 +124,11 @@
"Checklists": true,
"Settings": true,
"InvitationCodes": true,
"Winston":true,
"JsonRoutes": true,
"Authentication": true,
"Integrations": true,
"HTTP": true,
"AccountSettings": true
"AccountSettings": true,
"Announcements": true
}
}
+1 -1
View File
@@ -10,7 +10,7 @@
* ROOT_URL environment variable (Is there a subfolder?):
**Problem description**:
- *be as explicit has you can*
- *be as explicit as you can*
- *describe the problem and its symptoms*
- *explain how to reproduce*
- *attach whatever information that can help understanding the context (screen capture, log files)*
+1
View File
@@ -5,6 +5,7 @@
tmp/
node_modules/
.vscode/
.idea/
.build/*
packages/kadira-flow-router/
packages/meteor-useraccounts-core/
+1
View File
@@ -15,3 +15,4 @@ notices-for-facebook-graph-api-2
1.4.0-remove-old-dev-bundle-link
1.4.1-add-shell-server-package
1.4.3-split-account-service-packages
1.5-add-dynamic-import-package
+18 -15
View File
@@ -3,13 +3,13 @@
# 'meteor add' and 'meteor remove' will edit this file for you,
# but you can also edit it by hand.
meteor-base@1.0.4
meteor-base@1.2.0
# Build system
ecmascript@0.7.2
stylus@2.513.9
standard-minifier-css@1.3.4
standard-minifier-js@2.0.0
ecmascript@0.9.0
stylus@2.513.13
standard-minifier-css@1.3.5
standard-minifier-js@2.2.0
mquandalle:jade
# Polyfills
@@ -17,18 +17,16 @@ es5-shim@4.6.15
# Collections
aldeed:collection2
cfs:gridfs
cfs:standard-packages
cottz:publish-relations
dburles:collection-helpers
idmontie:migrations
matb33:collection-hooks
matteodem:easy-search
mongo@1.1.16
mongo@1.3.1
mquandalle:collection-mutations
# Account system
accounts-password@1.3.5
kenton:accounts-sandstorm
service-configuration@1.0.11
useraccounts:unstyled
@@ -38,9 +36,9 @@ useraccounts:flow-routing
check@1.2.5
jquery@1.11.10
random@1.0.10
reactive-dict@1.1.8
reactive-dict@1.2.0
session@1.1.7
tracker@1.1.2
tracker@1.1.3
underscore@1.0.10
3stack:presence
alethes:pages
@@ -48,7 +46,6 @@ arillo:flow-router-helpers
audit-argument-checks@1.0.7
kadira:blaze-layout
kadira:dochead
meteorhacks:fast-render
meteorhacks:picker
meteorhacks:subs-manager
mquandalle:autofocus
@@ -56,7 +53,7 @@ mquandalle:moment
ongoworks:speakingurl
raix:handlebar-helpers
tap:i18n
http
http@1.3.0
# UI components
blaze
@@ -69,13 +66,19 @@ mquandalle:mousetrap-bindglobal
mquandalle:perfect-scrollbar
peerlibrary:blaze-components@=0.15.1
perak:markdown
seriousm:emoji-continued
templates:tabs
verron:autosize
simple:json-routes
rajit:bootstrap3-datepicker
kadira:flow-router
shell-server@0.2.3
shell-server@0.3.0
simple:rest-accounts-password
useraccounts:core
email@1.2.3
horka:swipebox
dynamic-import@0.2.0
staringatlights:fast-render
staringatlights:flow-router
mixmax:smart-disconnect
accounts-password@1.5.0
cfs:gridfs
+1 -1
View File
@@ -1 +1 @@
METEOR@1.4.4.1
METEOR@1.6.0.1
+53 -46
View File
@@ -1,23 +1,23 @@
3stack:presence@1.0.5
accounts-base@1.2.16
accounts-password@1.3.5
3stack:presence@1.1.2
accounts-base@1.4.0
accounts-password@1.5.0
aldeed:collection2@2.10.0
aldeed:collection2-core@1.2.0
aldeed:schema-deny@1.1.0
aldeed:schema-index@1.1.1
aldeed:simple-schema@1.5.3
alethes:pages@1.8.6
allow-deny@1.0.5
allow-deny@1.1.0
arillo:flow-router-helpers@0.5.2
audit-argument-checks@1.0.7
autoupdate@1.3.12
babel-compiler@6.18.2
babel-runtime@1.0.1
babel-compiler@6.24.7
babel-runtime@1.1.1
base64@1.0.10
binary-heap@1.0.10
blaze@2.3.2
blaze-tools@1.0.10
boilerplate-generator@1.0.11
boilerplate-generator@1.3.1
caching-compiler@1.1.9
caching-html-compiler@1.1.2
callback-hook@1.0.10
@@ -27,7 +27,7 @@ cfs:collection@0.5.5
cfs:collection-filters@0.2.4
cfs:data-man@0.0.6
cfs:file@0.1.17
cfs:gridfs@0.0.33
cfs:gridfs@0.0.34
cfs:http-methods@0.0.32
cfs:http-publish@0.0.13
cfs:power-queue@0.9.11
@@ -40,61 +40,66 @@ cfs:upload-http@0.0.20
cfs:worker@0.1.4
check@1.2.5
chuangbo:cookie@1.1.0
coffeescript@1.12.3_1
cottz:publish-relations@2.0.7
coffeescript@1.12.7_3
coffeescript-compiler@1.12.7_3
cottz:publish-relations@2.0.8
dburles:collection-helpers@1.1.0
ddp@1.2.5
ddp-client@1.3.4
ddp-common@1.2.8
ddp@1.4.0
ddp-client@2.2.0
ddp-common@1.3.0
ddp-rate-limiter@1.0.7
ddp-server@1.3.14
ddp-server@2.1.1
deps@1.0.12
diff-sequence@1.0.7
ecmascript@0.7.3
ecmascript-runtime@0.3.15
ejson@1.0.13
dynamic-import@0.2.1
ecmascript@0.9.0
ecmascript-runtime@0.5.0
ecmascript-runtime-client@0.5.0
ecmascript-runtime-server@0.5.0
ejson@1.1.0
email@1.2.3
es5-shim@4.6.15
fastclick@1.0.13
fortawesome:fontawesome@4.7.0
geojson-utils@1.0.10
horka:swipebox@1.0.2
hot-code-push@1.0.4
html-tools@1.0.11
htmljs@1.0.11
http@1.2.12
http@1.3.0
id-map@1.0.9
idmontie:migrations@1.0.3
jquery@1.11.10
kadira:blaze-layout@2.3.0
kadira:dochead@1.5.0
kadira:flow-router@2.12.1
kenton:accounts-sandstorm@0.6.0
kenton:accounts-sandstorm@0.7.0
launch-screen@1.1.1
livedata@1.0.18
localstorage@1.0.12
logging@1.1.17
localstorage@1.2.0
logging@1.1.19
matb33:collection-hooks@0.8.4
matteodem:easy-search@1.6.4
mdg:validation-error@0.5.1
meteor@1.6.1
meteor-base@1.0.4
meteor@1.8.2
meteor-base@1.2.0
meteor-platform@1.2.6
meteorhacks:aggregate@1.3.0
meteorhacks:collection-utils@1.2.0
meteorhacks:fast-render@2.16.0
meteorhacks:inject-data@2.0.0
meteorhacks:meteorx@1.4.1
meteorhacks:picker@1.0.3
meteorhacks:subs-manager@1.6.4
meteorspark:util@0.2.0
minifier-css@1.2.16
minifier-js@2.0.0
minifier-js@2.2.2
minifiers@1.1.8-faster-rebuild.0
minimongo@1.0.21
minimongo@1.4.3
mixmax:smart-disconnect@0.0.4
mobile-status-bar@1.0.14
modules@0.8.2
modules-runtime@0.7.10
mongo@1.1.16
modules@0.11.0
modules-runtime@0.9.1
mongo@1.3.1
mongo-dev-server@1.1.0
mongo-id@1.0.6
mongo-livedata@1.0.12
mousetrap:mousetrap@1.4.6_1
@@ -107,52 +112,54 @@ mquandalle:jquery-ui-drag-drop-sort@0.2.0
mquandalle:moment@1.0.1
mquandalle:mousetrap-bindglobal@0.0.1
mquandalle:perfect-scrollbar@0.6.5_2
npm-bcrypt@0.9.2
npm-mongo@2.2.24
npm-bcrypt@0.9.3
npm-mongo@2.2.33
observe-sequence@1.0.16
ongoworks:speakingurl@1.1.0
ordered-dict@1.0.9
peerlibrary:assert@0.2.5
peerlibrary:base-component@0.16.0
peerlibrary:blaze-components@0.15.1
peerlibrary:computed-field@0.6.1
peerlibrary:computed-field@0.7.0
peerlibrary:reactive-field@0.3.0
perak:markdown@1.0.5
promise@0.8.8
promise@0.10.0
raix:eventemitter@0.1.3
raix:handlebar-helpers@0.2.5
rajit:bootstrap3-datepicker@1.6.4
rajit:bootstrap3-datepicker@1.7.1
random@1.0.10
rate-limit@1.0.8
reactive-dict@1.1.8
reactive-dict@1.2.0
reactive-var@1.0.11
reload@1.1.11
retry@1.0.9
routepolicy@1.0.12
seriousm:emoji-continued@1.4.0
service-configuration@1.0.11
session@1.1.7
sha@1.0.9
shell-server@0.2.3
shell-server@0.3.1
simple:authenticate-user-by-token@1.0.1
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
softwarerero:accounts-t9n@1.3.9
softwarerero:accounts-t9n@1.3.11
spacebars@1.0.15
spacebars-compiler@1.1.2
spacebars-compiler@1.1.3
srp@1.0.10
standard-minifier-css@1.3.4
standard-minifier-js@2.0.0
stylus@2.513.9
standard-minifier-css@1.3.5
standard-minifier-js@2.2.3
staringatlights:fast-render@2.16.5
staringatlights:flow-router@2.12.2
staringatlights:inject-data@2.0.5
stylus@2.513.13
tap:i18n@1.8.2
templates:tabs@2.3.0
templating@1.3.2
templating-compiler@1.3.2
templating-compiler@1.3.3
templating-runtime@1.3.2
templating-tools@1.1.2
tracker@1.1.2
tracker@1.1.3
ui@1.0.13
underscore@1.0.10
url@1.1.0
@@ -160,6 +167,6 @@ useraccounts:core@1.14.2
useraccounts:flow-routing@1.14.2
useraccounts:unstyled@1.14.2
verron:autosize@3.0.8
webapp@1.3.15
webapp@1.4.0
webapp-hashing@1.0.9
zimme:active-route@2.3.2
+3 -3
View File
@@ -2,9 +2,9 @@ dist: trusty
sudo: required
env:
TRAVIS_DOCKER_COMPOSE_VERSION: 1.12.0
TRAVIS_NODE_VERSION: 4.8.4
TRAVIS_NPM_VERSION: 4.6.1
TRAVIS_DOCKER_COMPOSE_VERSION: 1.17.0
TRAVIS_NODE_VERSION: 8.9.3
TRAVIS_NPM_VERSION: 5.5.1
before_install:
- sudo apt-get update -y
+1 -1
View File
@@ -39,7 +39,7 @@ host = https://www.transifex.com
# tap:i18n requires us to use `-` separator in the language identifiers whereas
# Transifex uses a `_` separator, without an option to customize it on one side
# or the other, so we need to do a Manual mapping.
lang_map = en_GB:en-GB, fa_IR:fa, fi_FI:fi, hu_HU:hu, id_ID:id, no:nb, pt_BR:pt-BR, ro_RO:ro, zh_CN:zh-CN, zh_TW:zh-TW
lang_map = en_GB:en-GB, es_AR:es-AR, el_GR:el, fi_FI:fi, hu_HU:hu, id_ID:id, mn_MN:mn, no:nb, lv_LV:lv, pt_BR:pt-BR, ro_RO:ro, zh_CN:zh-CN, zh_TW:zh-TW
[wekan.application]
file_filter = i18n/<lang>.i18n.json
+363 -4
View File
@@ -1,3 +1,362 @@
# v0.76 2018-02-21 Wekan release
This release adds the following new features:
- [Add swimlaneId to POST /api/boards/:boardId/lists/:listId/cards route](https://github.com/wekan/wekan/commit/ee0f42eeb1b10107bd8fc38cdefbdbc4f3fde108);
- [Added path to capnp.js to make Wekan work on Sandstorm](https://github.com/wekan/wekan/commit/11e9811f82858a3d98036e142b0da69d867adebc).
Known bugs:
- [Disabled Import temporarily on Sandstorm because of data loss bug](https://github.com/wekan/wekan/commit/e30f6515c623de7a48f25e0b2fc75313ae5d187c);
- [Swimlane not visible at Sandstorm](https://github.com/wekan/wekan/issues/1494).
Thanks to GitHub users couscous3 and xet7 for their contributions.
# v0.75 2018-02-16 Wekan release
This release adds the following new features:
- [Checklist templates](https://github.com/wekan/wekan/pull/1470);
- Added [Finnish language changelog](https://github.com/wekan/wekan/tree/devel/meta/t9n-changelog)
and [more Finnish traslations](https://github.com/wekan/wekan/blob/devel/sandstorm-pkgdef.capnp)
to Sandstorm.
Thanks to GitHub users erikturk and xet7 for their contributions.
# v0.74 2018-02-13 Wekan release
This release fixes the following bugs:
- [Remove Emoji support, so MAC addresses etc show correctly](https://github.com/wekan/wekan/commit/056843d66c361594d5d4478cfe86e2e405333b91).
NOTE: You can still add Unicode Emojis, this only removes broken autoconversion to Emojis.
Thanks to GitHub user xet7 for contributions.
# v0.73 2018-02-08 Wekan release
This release fixes the following bugs:
- [Fix Ubuntu snap build](https://github.com/wekan/wekan/pull/1469).
Thanks to GitHub user kubiko for contributions.
# v0.72 2018-02-07 Wekan release
This release fixes the following bugs:
- [Fix card sorting](https://github.com/wekan/wekan/pull/1465);
- [Fix import Trello board without swimlanes](https://github.com/wekan/wekan/commit/5871a478e1280818f12fcb7250b7cbccf6907cf0);
- [Fix swimlane move parameters](https://github.com/wekan/wekan/commit/fcebb2a5373d6dea41b98b530c176cbee31bee4b).
Thanks to GitHub users andresmanelli and ViViDboarder for their contributions.
# v0.71 2018-02-03 Wekan release
This release fixes the following bugs:
- [Fix Welcome board is not editable: Added default swimlane to Welcome board](https://github.com/wekan/wekan/commit/9df3e3d26bffb2268cdcc7fa768eda60e4f0975c);
- [Fix Import Wekan board with swimlanes](https://github.com/wekan/wekan/commit/ec0a8449ba98aea708e484d386e5a209e2be8fff).
Thanks to GitHub user andresmanelli for contributions.
# v0.70 2018-02-02 Wekan release
This release adds the following new features:
- [Add ability to edit swimlane name](https://github.com/wekan/wekan/commit/3414cb84ad8ac800e23bbda6ce12822f40d1bd19);
- [Add swimlane popup menu and archive icon](https://github.com/wekan/wekan/commit/5953fb8a44a3582ed0d8816ffb32a5b7f41f50a3).
and fixes the following bugs:
- [Two empty columns in swimlane view](https://github.com/wekan/wekan/issues/1459).
Thanks to GitHub user andresmanelli for contributions.
# v0.69 2018-02-01 Wekan release
This release fixes the following bugs:
- [Fix swimlanes card details bug](https://github.com/wekan/wekan/commit/f6fb05d3f49c656e9890351f5d7c0827bf2605c1);
- [Workaround to avoid swimlanes drag bug](https://github.com/wekan/wekan/commit/d3c110cd8f3ad16a4ced5520c27ab542cc79b548);
- [Fix swimlanes details view in lists only mode](https://github.com/wekan/wekan/commit/ff9ca755f338e3c45a1bd726dfbce1c607f2ff4c).
- [Fix typo in issue template](https://github.com/wekan/wekan/pull/1451).
Thanks to GitHub users andresmanelli and d-Rickyy-b for their contributions.
# v0.68 2018-01-30 Wekan release
This release fixes the following bugs:
* [Partial fix: Trello board import fails because of missing "Swimlane id"](https://github.com/wekan/wekan/issues/1442), still needs some work.
Thanks to GitHub user xet7 for contributions.
# v0.67 2018-01-28 Wekan release
This release fixes the following bugs:
* [Fix Igbo language name at menu](https://github.com/wekan/wekan/commit/9d7ff75d3fed1285273245fbe6f6a757b6180039).
Thanks to GitHub user xet7 for contributions.
# v0.66 2018-01-28 Wekan release
This release fixes the following bugs:
* [Fix Dockerfile for Debian](https://github.com/wekan/wekan/pull/1439).
Thanks to GitHub user soohwa for contributions.
# v0.65 2018-01-28 Wekan release
This release adds the following new features:
* [Swimlanes, part 1](https://github.com/wekan/wekan/issues/955);
* Added new language: Igbo.
Thanks to GitHub user andresmanelli for contributions.
# v0.64 2018-01-22 Wekan release
This release adds the following new features:
* [Different icons for start and due date](https://github.com/wekan/wekan/pull/1420).
* Added new languages: Mongolian and Portuguese;
* Upgraded to Meteor 1.6.0.1, Node 8.9.3, NPM 5.5.1 and fibers 2.0.0.
and fixes the following bugs:
* [Fix for dragging into scrolled-down list](https://github.com/wekan/wekan/pull/1424).
* [Fix double slash bug on snap](https://github.com/wekan/wekan/issues/962#issuecomment-357785748).
Thanks to GitHub users dpoznyak, mmarschall and xet7 for their contributions.
# v0.63 2017-12-20 Wekan release
This release adds the following new features:
* [Auto update card cover with new image uploaded via drag&drop](https://github.com/wekan/wekan/pull/1401);
* Update to Node 4.8.7.
Thanks to GitHub users thuanpq and xet7 for their contributions.
# v0.62 2017-12-12 Wekan release
This release fixes the following bugs:
* Added missing packages to build script.
Thanks to GitHub user xet7 for contributions.
# v0.61 2017-12-12 Wekan release
This release adds the following new features:
* [Change password of any user in Standalone Wekan Admin Panel](https://github.com/wekan/wekan/pull/1372);
* [Performance optimization: Move more global subscriptions to template subscription](https://github.com/wekan/wekan/pull/1373);
* [Auto update card cover with latest uploaded image attachment](https://github.com/wekan/wekan/pull/1387);
* [Always display attachment section for uploading file quickly](https://github.com/wekan/wekan/pull/1391);
* [Make it easier to see the Add Card button at top of list](https://github.com/wekan/wekan/pull/1392);
* [Add mixmax:smart-disconnect to lower CPU usage when browser tab is not selected](https://github.com/wekan/wekan-mongodb/issues/2);
* Update tranlations. Add Latvian language;
* Update to Node 4.8.6 and MongoDB 3.2.18.
and fixes the following bugs:
* [Bug on not being able to see Admin Panel if not having access to Board List](https://github.com/wekan/wekan/pull/1371);
* [Bug on not able to see member avatar on sidebar activity](https://github.com/wekan/wekan/pull/1380);
* [Don't open swipebox on update card cover / download file / delete file](https://github.com/wekan/wekan/pull/1386);
* [Boards subscription should be placed at header for all other component can be used](https://github.com/wekan/wekan/pull/1381);
* [Bug on long url of attachment in card activity log](https://github.com/wekan/wekan/pull/1388).
Thanks to GitHub users mfshiu, thuanpq and xet7 for their contributions.
Thanks to translators for their translations.
# v0.60 2017-11-29 Wekan release
This release adds the following new features:
* [Add SMTP test email button to Standalone Wekan Admin Panel](https://github.com/wekan/wekan/pull/1359);
* [Optimize for mobile web, show single list per page with navigate bar](https://github.com/wekan/wekan/pull/1365).
and fixes the following bugs:
* [User with comment only permissions can remove another user from a card](https://github.com/wekan/wekan/pull/1352);
* [Frequent Subscriptions problem that make Excessive CPU usage](https://github.com/wekan/wekan/pull/1363).
Thanks to GitHub users floatinghotpot, mfshiu and nztqa for their contributions.
# v0.59 2017-11-23 Wekan release.
This release fixes the following bugs:
* [Remove incomplete logger fix](https://github.com/wekan/wekan/pull/1352).
Thanks to GitHub user pierreozoux for contributions.
# v0.58 2017-11-23 Wekan release
This release adds the following new features:
* Updated translations.
Thanks to all translators.
# v0.57 2017-11-23 Wekan release
This release adds the following new features:
* [Gogs Integration](https://github.com/wekan/wekan-gogs) as separate project. Please test and submit issues and pull requests to that project.
and fixes the following bugs:
* [Fix Winston logger](https://github.com/wekan/wekan/pull/1350).
Thanks to GitHub users andresmanelli and pierreozoux for their contributions.
# v0.56 2017-11-21 Wekan release
This release adds the following new features:
* [Copy/Move cards to other board in Standalone Wekan](https://github.com/wekan/wekan/pull/1330);
* [Spent time/Overtime on card](https://github.com/wekan/wekan/pull/1344);
* New translation: Greek.
and fixes the following bugs:
* [Board list with long-description boards not visible](https://github.com/wekan/wekan/pull/1346);
* [Remove erroneous minicard title whitespace](https://github.com/wekan/wekan/pull/1347);
* [Fix title editing with shift key at card details](https://github.com/wekan/wekan/pull/1348).
Thanks to GitHub users couscous3, GhassenRjab, thuanpq and xet7 for their contributions.
# v0.55 2017-11-19 Wekan release
This release adds the following new features:
* [Markdown in card/minicard/checlist titles and checklist items. Next line: Shift+Enter. Submit: Enter.](https://github.com/wekan/wekan/pull/1334);
* [User Admin to Admin Panel: List users. Change: is user admin, name, fullname, email address, is user active. Not changing password yet.](https://github.com/wekan/wekan/pull/1325);
* [REST API better error output](https://github.com/wekan/wekan/pull/1323).
and fixes the following bugs:
* [Emoji detection breaks MAC addresses](https://github.com/wekan/wekan/issues/1248); - this has not yet fixed all cases.
* [Codeblocks should not be scanned for emoji](https://github.com/wekan/wekan/issues/643);
* [Whitespace trimming breaks Markdown code block indentation](https://github.com/wekan/wekan/issues/1288):
* [Helper to list boards for user](https://github.com/wekan/wekan/pull/1327);
* [Error after sending invitation and joining board: Exception while invoking method 'login' TypeError: Cannot read property 'loginDisabled' of undefined](https://github.com/wekan/wekan/issues/1331);
* [Invitation /sign-up page did not show input for invitation code](https://github.com/wekan/wekan/commit/99be745f0299b32a8a7b30204b43bff7fd5ba638).
Thanks to Github users brooksbecton, milesibastos, nztqa, soohwa, thuanpq and xet7 for their contributions.
# v0.54 2017-11-02 Wekan release
This release adds the following new features:
* [Soft WIP Limit](https://github.com/wekan/wekan/pull/1319).
Thanks to GitHub users amadilsons and xet7 for their contributions.
# v0.53 2017-11-02 Wekan release
(This was canceled, it had some missing version numbers).
# v0.52 2017-10-31 Wekan release
This release adds the following new features:
* [Permit editing WIP limit](https://github.com/wekan/wekan/pull/1312);
* [Image attachment resize on smaller screens and swipebox](https://github.com/wekan/wekan/pull/1315);
* [Add iPhone favicon for Wekan](https://github.com/wekan/wekan/issues/1317).
and fixes the following bugs:
* [Members do not get included on board import from Wekan](https://github.com/wekan/wekan/pull/1316).
Thanks to GitHub users brooksbecton, guillaumebriday, nztqa, ocdtrekkie and Tentoe for their contributions.
# v0.51 2017-10-25 Wekan release
This release adds the following new features:
* [REST API: Disable and enable user login. Take ownership boards of a user. List boards of user.](https://github.com/wekan/wekan/pull/1296);
* [Add translation: Spanish of Argentina](https://github.com/wekan/wekan/commit/b105f0e2e72c49a2f1ba3f6c87532a5418192386);
* [Add more languages to Roboto font](https://github.com/wekan/wekan/issues/1299).
and fixes the following bugs:
* [Segfault on Alpine Linux](https://github.com/wekan/wekan/issues/1303);
* [Change invitation link from sign-in to sign-up](https://github.com/wekan/wekan/issues/1300);
* [User with comment only permission can add cards](https://github.com/wekan/wekan/issues/1301).
Thanks to GitHub users chromas-cro, soohwa, wenerme and xet7 for their contributions.
# v0.50 2017-10-10 Wekan release
This release fixes the following bugs:
* [Fix and update translations](https://github.com/wekan/wekan/issues/1286).
Thanks to GitHub user xet7 for contributions.
# v0.49 2017-10-09 Wekan release
This release fixes the following bugs:
* [When WIP limit in use, hide also add card + button at top of list](https://github.com/wekan/wekan/commit/a5daf5dc29278b82e133fbe4db09a91ffc0c0d3b).
Thanks to GitHub user xet7 for contributions.
# v0.48 2017-10-09 Wekan release
This release adds the following new features:
* [WIP Limits](https://github.com/wekan/wekan/pull/1278);
* [REST API: Create user despite disabling registration](https://github.com/wekan/wekan/issues/1232);
* [User can leave board on Standalone Wekan](https://github.com/wekan/wekan/pull/1283).
and fixes the following bugs:
* [Admin announcement can be viewed without signing in](https://github.com/wekan/wekan/issues/1281).
Thanks to GitHub users amadilsons, nztqa and soohwa for their contributions.
# v0.47 2017-10-04 Wekan release
This release adds the following new features:
* [Use theme color for Slider for Comments only](https://github.com/wekan/wekan/pull/1275).
Thanks to GitHub user nztqa for contributions.
# v0.46 2017-10-03 Wekan release
This release adds the following new features:
* [Webhook parameters and response order](https://github.com/wekan/wekan/pull/1263).
and fixes the following bugs:
* SECURITY FIX: [Meteor allow/deny](https://blog.meteor.com/meteor-allow-deny-vulnerability-disclosure-baf398f47b25) fixed
[here](https://github.com/wekan/wekan/commit/c3804dc0fad0817285460d86dc1b3bdc96361f49);
* [Fix: Slider for Comments only does not work correctly with over 21 activities](https://github.com/wekan/wekan/pull/1247).
Thanks to GitHub users andresmanelli and nztqa for their contributions.
# v0.45 2017-10-01 Wekan release
This release adds the following new features:
* [Slider for Comments only in activity feed](https://github.com/wekan/wekan/issues/1247);
* [Site Wide Announcement](https://github.com/wekan/wekan/pull/1260).
and fixes the following bugs:
* [Data inconsistency when copying card](https://github.com/wekan/wekan/pull/1246). Note: There is no feature for copying card attachment yet;
* [Hide create label from normal users, because only board admin can create labels](https://github.com/wekan/wekan/pull/1261).
Thanks to GitHub user nztqa for contributions.
# v0.44 2017-09-30 Wekan release
This release adds the following new features:
@@ -378,12 +737,12 @@ and fixes the following bugs:
exists valid admin panel data MAIL_URL is not set.
MAIL_FROM was ignored. Same behaviour, env variable has bigger priority
than database configuration.
On both cases, althrought environment variable is set, updating admin-panel
On both cases, althought environment variable is set, updating admin-panel
mail settings will load new info and ignore the environment variable;
* Dockerfile fix for local packages;
* Don't send emails if missing smtp host;
* Remove invitation code if email sending failed;
* Show customized error msg while invitaion code is wrong during registration;
* Show customized error msg while invitation code is wrong during registration;
* Fix "internal error" while registration is done;
* Fix "cannot access disableRegistration of undefined" error;
* Add high available server for getting the gpg keys - suppose it should lead
@@ -488,7 +847,7 @@ and adds the following new features:
```
1) Disable Self-Registration and invite users
2) SMTP settings.
Adding Admin user in mongo cli:
1) Use database that has wekan data, for example:
use admin;
@@ -669,7 +1028,7 @@ performance and security. It also features the following improvements:
password, to change the password, or to enable email confirmation (all of
which were previously impossible);
* Avatar customization, including the possibility to upload images and to choose
one from Gravatar or the user initials (on Sandstrom we use the avatar exposed
one from Gravatar or the user initials (on Sandstorm we use the avatar exposed
by Sandstorm);
* Cards multi-selection to facilitate batch actions such as moving all the cards
of selection, or attaching a label or a member to them;
+20 -24
View File
@@ -1,4 +1,4 @@
FROM debian:8.9
FROM debian:buster-slim
MAINTAINER wekan
# Declare Arguments
@@ -12,14 +12,14 @@ ARG ARCHITECTURE
ARG SRC_PATH
# Set the environment variables (defaults where required)
ENV BUILD_DEPS="wget curl bzip2 build-essential python git ca-certificates gcc-4.9"
ENV GOSU_VERSION=1.10
ENV NODE_VERSION ${NODE_VERSION:-v4.8.4}
ENV METEOR_RELEASE ${METEOR_RELEASE:-1.4.4.1}
# paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
ENV BUILD_DEPS="apt-utils gnupg gosu wget curl bzip2 build-essential python git ca-certificates gcc-7 paxctl"
ENV NODE_VERSION ${NODE_VERSION:-v8.9.3}
ENV METEOR_RELEASE ${METEOR_RELEASE:-1.6.0.1}
ENV USE_EDGE ${USE_EDGE:-false}
ENV METEOR_EDGE ${METEOR_EDGE:-1.5-beta.17}
ENV NPM_VERSION ${NPM_VERSION:-4.6.1}
ENV FIBERS_VERSION ${FIBERS_VERSION:-1.0.15}
ENV NPM_VERSION ${NPM_VERSION:-5.5.1}
ENV FIBERS_VERSION ${FIBERS_VERSION:-2.0.0}
ENV ARCHITECTURE ${ARCHITECTURE:-linux-x64}
ENV SRC_PATH ${SRC_PATH:-./}
@@ -31,17 +31,7 @@ RUN \
useradd --user-group --system --home-dir /home/wekan wekan && \
\
# OS dependencies
apt-get update -y && apt-get dist-upgrade -y && apt-get install -y --no-install-recommends ${BUILD_DEPS} && \
\
# Gosu installation
GOSU_ARCHITECTURE="$(dpkg --print-architecture | awk -F- '{ print $NF }')" && \
wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-${GOSU_ARCHITECTURE}" && \
wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/${GOSU_VERSION}/gosu-${GOSU_ARCHITECTURE}.asc" && \
export GNUPGHOME="$(mktemp -d)" && \
gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 && \
gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu && \
rm -R "$GNUPGHOME" /usr/local/bin/gosu.asc && \
chmod +x /usr/local/bin/gosu && \
apt-get update -y && apt-get install -y --no-install-recommends ${BUILD_DEPS} && \
\
# Download nodejs
wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
@@ -50,7 +40,7 @@ RUN \
# Verify nodejs authenticity
grep ${NODE_VERSION}-${ARCHITECTURE}.tar.gz SHASUMS256.txt.asc | shasum -a 256 -c - && \
export GNUPGHOME="$(mktemp -d)" && \
\
# Try other key servers if ha.pool.sks-keyservers.net is unreachable
# Code from https://github.com/chorrell/docker-node/commit/2b673e17547c34f17f24553db02beefbac98d23c
# gpg keys listed at https://github.com/nodejs/node#release-team
@@ -69,7 +59,10 @@ RUN \
gpg --keyserver keyserver.pgp.com --recv-keys "$key" ; \
done && \
gpg --verify SHASUMS256.txt.asc && \
rm -R "$GNUPGHOME" SHASUMS256.txt.asc && \
# Ignore socket files then delete files then delete directories
find "$GNUPGHOME" -type f | xargs rm -f && \
find "$GNUPGHOME" -type d | xargs rm -fR && \
rm -f SHASUMS256.txt.asc && \
\
# Install Node
tar xvzf node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
@@ -78,6 +71,9 @@ RUN \
ln -s /opt/nodejs/bin/node /usr/bin/node && \
ln -s /opt/nodejs/bin/npm /usr/bin/npm && \
\
# paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
paxctl -mC `which node` && \
\
# Install Node dependencies
npm install -g npm@${NPM_VERSION} && \
npm install -g node-gyp && \
@@ -86,14 +82,14 @@ RUN \
# Change user to wekan and install meteor
cd /home/wekan/ && \
chown wekan:wekan --recursive /home/wekan && \
curl https://install.meteor.com -o ./install_meteor.sh && \
curl https://install.meteor.com -o /home/wekan/install_meteor.sh && \
sed -i "s|RELEASE=.*|RELEASE=${METEOR_RELEASE}\"\"|g" ./install_meteor.sh && \
echo "Starting meteor ${METEOR_RELEASE} installation... \n" && \
chown wekan:wekan ./install_meteor.sh && \
chown wekan:wekan /home/wekan/install_meteor.sh && \
\
# Check if opting for a release candidate instead of major release
if [ "$USE_EDGE" = false ]; then \
gosu wekan:wekan sh ./install_meteor.sh; \
gosu wekan:wekan sh /home/wekan/install_meteor.sh; \
else \
gosu wekan:wekan git clone --recursive --depth 1 -b release/METEOR@${METEOR_EDGE} git://github.com/meteor/meteor.git /home/wekan/.meteor; \
fi; \
@@ -115,12 +111,12 @@ RUN \
gosu wekan:wekan /home/wekan/.meteor/meteor build --directory /home/wekan/app_build && \
cp /home/wekan/app/fix-download-unicode/cfs_access-point.txt /home/wekan/app_build/bundle/programs/server/packages/cfs_access-point.js && \
chown wekan:wekan /home/wekan/app_build/bundle/programs/server/packages/cfs_access-point.js && \
gosu wekan:wekan sed -i "s|build\/Release\/bson|browser_build\/bson|g" /home/wekan/app_build/bundle/programs/server/npm/node_modules/meteor/cfs_gridfs/node_modules/mongodb/node_modules/bson/ext/index.js && \
cd /home/wekan/app_build/bundle/programs/server/npm/node_modules/meteor/npm-bcrypt && \
gosu wekan:wekan rm -rf node_modules/bcrypt && \
gosu wekan:wekan npm install bcrypt && \
cd /home/wekan/app_build/bundle/programs/server/ && \
gosu wekan:wekan npm install && \
gosu wekan:wekan npm install bcrypt && \
mv /home/wekan/app_build/bundle /build && \
\
# Cleanup
+1 -1
View File
@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2014-2017 The Wekan Team
Copyright (c) 2014-2018 The Wekan Team
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+5 -1
View File
@@ -1,6 +1,10 @@
# Wekan
[![Docker Repository on Quay](https://quay.io/repository/wekan/wekan/status "Docker Repository on Quay")](https://quay.io/repository/wekan/wekan)
<!--
[![Wekan Build Status][travis_badge]][travis_status]
-->
Freenode IRC #wekan
@@ -80,7 +84,7 @@ with [Meteor](https://www.meteor.com).
[platforms]: https://github.com/wekan/wekan/wiki/Platforms
[dev_docs]: https://github.com/wekan/wekan/wiki/Developer-Documentation
[screenshot_wekan]: http://i.imgur.com/cI4jW2h.png
[screenshot_wefork]: https://wekan.github.io/screenshot.png
[screenshot_wefork]: https://wekan.github.io/wekan-markdown.png
[features]: https://github.com/wekan/wekan/wiki/Features
[integrations]: https://github.com/wekan/wekan/wiki/Integrations
[roadmap_wekan]: http://try.wekan.io/b/MeSsFJaSqeuo9M6bs/wekan-roadmap
+7 -1
View File
@@ -31,7 +31,7 @@ template(name="boardActivities")
.activity-checklist(href="{{ card.absoluteUrl }}")
+viewer
= checklist.title
if($eq activityType 'addChecklistItem')
| {{{_ 'activity-checklist-item-added' checklist.title cardLink}}}.
.activity-checklist(href="{{ card.absoluteUrl }}")
@@ -44,6 +44,9 @@ template(name="boardActivities")
if($eq activityType 'archivedList')
| {{_ 'activity-archived' list.title}}.
if($eq activityType 'archivedSwimlane')
| {{_ 'activity-archived' swimlane.title}}.
if($eq activityType 'createBoard')
| {{_ 'activity-created' boardLabel}}.
@@ -53,6 +56,9 @@ template(name="boardActivities")
if($eq activityType 'createList')
| {{_ 'activity-added' list.title boardLabel}}.
if($eq activityType 'createSwimlane')
| {{_ 'activity-added' swimlane.title boardLabel}}.
if($eq activityType 'removeList')
| {{_ 'activity-removed' title boardLabel}}.
@@ -1,5 +1,10 @@
@import 'nib'
.activity-title
margin: 0 0.5em 0.8em
display: flex
justify-content:space-between
.activities
clear: both
@@ -12,10 +17,14 @@
height: @width
.activity-desc
word-wrap: break-word
overflow: hidden
flex: 1
align-self: center
margin: 0
margin-left: 3px
overflow: hidden;
word-break: break-word;
.activity-comment
display: block
+1 -1
View File
@@ -11,4 +11,4 @@ template(name="archivedBoards")
| {{_ 'restore-board'}}
= title
else
li.no-items-message {{_ 'no-archived-board'}}
li.no-items-message {{_ 'no-archived-boards'}}
+5 -21
View File
@@ -20,24 +20,8 @@ template(name="boardBody")
class="{{#if draggingActive.get}}is-dragging-active{{/if}}")
if showOverlay.get
.board-overlay
.lists.js-lists
each currentBoard.lists
+list(this)
if currentCardIsInThisList
+cardDetails(currentCard)
if canSeeAddList
+addListForm
template(name="addListForm")
.list.js-list.list-composer.js-list-composer
.list-header
+inlinedForm(autoclose=false)
input.list-name-input.full-line(type="text" placeholder="{{_ 'add-list'}}"
autocomplete="off" autofocus)
.edit-controls.clearfix
button.primary.confirm(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
else
a.open-list-composer.js-open-inlined-form
i.fa.fa-plus
| {{_ 'add-list'}}
if isViewSwimlanes
each currentBoard.swimlanes
+swimlane(this)
if isViewLists
+listsGroup
+12 -146
View File
@@ -29,10 +29,6 @@ BlazeComponent.extendComponent({
this.mouseHasEnterCardDetails = false;
},
openNewListForm() {
this.childComponents('addListForm')[0].open();
},
// XXX Flow components allow us to avoid creating these two setter methods by
// exposing a public API to modify the component state. We need to investigate
// best practices here.
@@ -47,16 +43,22 @@ BlazeComponent.extendComponent({
});
},
currentCardIsInThisList() {
const currentCard = Cards.findOne(Session.get('currentCard'));
const listId = this.currentData()._id;
return currentCard && currentCard.listId === listId;
},
onlyShowCurrentCard() {
return Utils.isMiniScreen() && Session.get('currentCard');
},
isViewSwimlanes() {
const currentBoardId = Session.get('currentBoard');
const board = Boards.findOne(currentBoardId);
return (board.view === 'board-view-swimlanes');
},
isViewLists() {
const currentBoardId = Session.get('currentBoard');
const board = Boards.findOne(currentBoardId);
return (board.view === 'board-view-lists');
},
events() {
return [{
// XXX The board-overlay div should probably be moved to the parent
@@ -66,147 +68,11 @@ BlazeComponent.extendComponent({
this.showOverlay.set(false);
}
},
// Click-and-drag action
'mousedown .board-canvas'(evt) {
// Translating the board canvas using the click-and-drag action can
// conflict with the build-in browser mechanism to select text. We
// define a list of elements in which we disable the dragging because
// the user will legitimately expect to be able to select some text with
// his mouse.
const noDragInside = ['a', 'input', 'textarea', 'p', '.js-list-header'];
if ($(evt.target).closest(noDragInside.join(',')).length === 0 && $('.lists').prop('clientHeight') > evt.offsetY) {
this._isDragging = true;
this._lastDragPositionX = evt.clientX;
}
},
'mouseup'() {
if (this._isDragging) {
this._isDragging = false;
}
},
'mousemove'(evt) {
if (this._isDragging) {
// Update the canvas position
this.listsDom.scrollLeft -= evt.clientX - this._lastDragPositionX;
this._lastDragPositionX = evt.clientX;
// Disable browser text selection while dragging
evt.stopPropagation();
evt.preventDefault();
// Don't close opened card or inlined form at the end of the
// click-and-drag.
EscapeActions.executeUpTo('popup-close');
EscapeActions.preventNextClick();
}
},
}];
},
}).register('board');
Template.boardBody.onRendered(function() {
const self = BlazeComponent.getComponentForElement(this.firstNode);
self.listsDom = this.find('.js-lists');
if (!Session.get('currentCard')) {
self.scrollLeft();
}
// We want to animate the card details window closing. We rely on CSS
// transition for the actual animation.
self.listsDom._uihooks = {
removeElement(node) {
const removeNode = _.once(() => {
node.parentNode.removeChild(node);
});
if ($(node).hasClass('js-card-details')) {
$(node).css({
flexBasis: 0,
padding: 0,
});
$(self.listsDom).one(CSSEvents.transitionend, removeNode);
} else {
removeNode();
}
},
};
$(self.listsDom).sortable({
tolerance: 'pointer',
helper: 'clone',
handle: '.js-list-header',
items: '.js-list:not(.js-list-composer)',
placeholder: 'list placeholder',
distance: 7,
start(evt, ui) {
ui.placeholder.height(ui.helper.height());
Popup.close();
},
stop() {
$(self.listsDom).find('.js-list:not(.js-list-composer)').each(
(i, list) => {
const data = Blaze.getData(list);
Lists.update(data._id, {
$set: {
sort: i,
},
});
}
);
},
});
function userIsMember() {
return Meteor.user() && Meteor.user().isBoardMember();
}
// Disable drag-dropping while in multi-selection mode, or if the current user
// is not a board member
self.autorun(() => {
const $listDom = $(self.listsDom);
if ($listDom.data('sortable')) {
$(self.listsDom).sortable('option', 'disabled',
MultiSelection.isActive() || !userIsMember());
}
});
// If there is no data in the board (ie, no lists) we autofocus the list
// creation form by clicking on the corresponding element.
const currentBoard = Boards.findOne(Session.get('currentBoard'));
if (userIsMember() && currentBoard.lists().count() === 0) {
self.openNewListForm();
}
});
BlazeComponent.extendComponent({
// Proxy
open() {
this.childComponents('inlinedForm')[0].open();
},
events() {
return [{
submit(evt) {
evt.preventDefault();
const titleInput = this.find('.list-name-input');
const title = titleInput.value.trim();
if (title) {
Lists.insert({
title,
boardId: Session.get('currentBoard'),
sort: $('.list').length,
});
titleInput.value = '';
titleInput.focus();
}
},
}];
},
}).register('addListForm');
Template.boardBody.helpers({
canSeeAddList() {
return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
},
});
+16 -3
View File
@@ -20,15 +20,14 @@ position()
&.is-sibling-sidebar-open
margin-right: 248px
.lists
align-items: flex-start
.swimlane
border-bottom: 1px solid #CCC
display: flex
flex-direction: row
margin: 0 0 10px
padding: 0 40px 5px 0
overflow-x: auto
overflow-y: hidden
position: cover
.board-overlay
position: cover
@@ -43,3 +42,17 @@ position()
.open-minicard-composer,
.minicard-wrapper.is-checked
display: none
@media screen and (max-width: 800px)
.board-wrapper
.board-canvas
.swimlane
border-bottom: 1px solid #CCC
display: flex
flex-direction: column
margin: 0
padding: 0 40px 0px 0
overflow-x: hidden
overflow-y: auto
+14
View File
@@ -51,11 +51,25 @@ setBoardColor(color)
&:not(.is-checked) + .minicard:hover:not(.minicard-composer)
background: lighten(color, 97%)
.toggle-label
&:after
background-color: darken(color, 20%)
.toggle-switch:checked ~ .toggle-label
background-color: lighten(color, 20%)
&:after
background-color: darken(color, 20%)
@media screen and (max-width: 800px)
&.pop-over .header
background: color
color: white
&#header ul li.current, &#header-quick-access ul li.current
border-bottom: 4px solid lighten(color, 20%)
.board-color-nephritis
setBoardColor(#27AE60)
@@ -87,6 +87,11 @@ template(name="boardHeaderBar")
a.board-header-btn-close.js-filter-reset(title="{{_ 'filter-clear'}}")
i.fa.fa-times-thin
a.board-header-btn.js-toggle-board-view(
title="{{_ 'board-view'}}")
i.fa.fa-th-large
span {{_ currentBoard.view}}
if canModifyBoard
a.board-header-btn.js-multiselection-activate(
title="{{#if MultiSelection.isActive}}{{_ 'multi-selection-on'}}{{else}}{{_ 'multi-selection'}}{{/if}}"
+21 -4
View File
@@ -58,10 +58,6 @@ BlazeComponent.extendComponent({
return user && user.hasStarred(boardId);
},
isMiniScreen() {
return Utils.isMiniScreen();
},
// Only show the star counter if the number of star is greater than 2
showStarCounter() {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
@@ -80,6 +76,22 @@ BlazeComponent.extendComponent({
'click .js-open-archived-board'() {
Modal.open('archivedBoards');
},
'click .js-toggle-board-view'() {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
if (currentBoard.view === 'board-view-swimlanes') {
Boards.update(currentBoard._id, {
$set: {
view: 'board-view-lists',
},
});
} else if (currentBoard.view === 'board-view-lists') {
Boards.update(currentBoard._id, {
$set: {
view: 'board-view-swimlanes',
},
});
}
},
'click .js-open-filter-view'() {
Sidebar.setView('filter');
},
@@ -168,6 +180,11 @@ const CreateBoard = BlazeComponent.extendComponent({
permission: visibility,
}));
Swimlanes.insert({
title: 'Default',
boardId: this.boardId.get(),
});
Utils.goBoardId(this.boardId.get());
},
+6
View File
@@ -20,6 +20,12 @@ template(name="boardList")
i.fa.js-star-board(
class="fa-star{{#if isStarred}} is-star-active{{else}}-o{{/if}}"
title="{{_ 'star-board-title'}}")
if hasSpentTimeCards
i.fa.js-has-spenttime-cards(
class="fa-circle{{#if hasOvertimeCards}} has-overtime-card-active{{else}} no-overtime-card-active{{/if}}"
title="{{#if hasOvertimeCards}}{{_ 'has-overtime-cards'}}{{else}}{{_ 'has-spenttime-cards'}}{{/if}}")
p.board-list-item-desc= description
li.js-add-board
a.board-list-item.label {{_ 'add-board'}}
+16
View File
@@ -1,4 +1,10 @@
const subManager = new SubsManager();
BlazeComponent.extendComponent({
onCreated() {
Meteor.subscribe('setting');
},
boards() {
return Boards.find({
archived: false,
@@ -13,6 +19,16 @@ BlazeComponent.extendComponent({
return user && user.hasStarred(this.currentData()._id);
},
hasOvertimeCards() {
subManager.subscribe('board', this.currentData()._id);
return this.currentData().hasOvertimeCards();
},
hasSpentTimeCards() {
subManager.subscribe('board', this.currentData()._id);
return this.currentData().hasSpentTimeCards();
},
isInvited() {
const user = Meteor.user();
return user && user.isInvitedTo(this.currentData()._id);
+18
View File
@@ -17,6 +17,7 @@ $spaceBetweenTiles = 16px
opacity: 1
.board-list-item
overflow: hidden;
background-color: #999
color: #f6f6f6
height: 90px
@@ -73,6 +74,23 @@ $spaceBetweenTiles = 16px
transition-duration: .15s
transition-property: color, font-size, background
.fa-circle
bottom: 0;
font-size: 10px;
height: 10px;
line-height: 10px;
padding: 9px 9px;
position: absolute;
right: 0;
transition-duration: .15s
transition-property: color, font-size, background
.has-overtime-card-active
color: #eb4646 !important
.no-overtime-card-active
color: #3cb500 !important
.is-star-active
color: white
+3 -3
View File
@@ -21,11 +21,11 @@ template(name="attachmentDeletePopup")
template(name="attachmentsGalery")
.attachments-galery
each attachments
a.attachment-item.js-open-viewer(title="{{_ 'added'}} {{ moment uploadedAt }}")
.attachment-thumbnail
.attachment-item
a.attachment-thumbnail.swipebox(href="{{url}}" title="{{name}}")
if isUploaded
if isImage
img.attachment-thumbnail-img.js-preview-image(src="{{url}}")
img.attachment-thumbnail-img(src="{{url}}")
else
span.attachment-thumbnail-ext= extension
else
+13 -5
View File
@@ -11,9 +11,6 @@ Template.attachmentsGalery.events({
'click .js-download'(event) {
event.stopPropagation();
},
'click .js-open-viewer'() {
// XXX Not implemented!
},
'click .js-add-cover'() {
Cards.findOne(this.cardId).setCover(this._id);
},
@@ -63,7 +60,13 @@ Template.cardAttachmentsPopup.events({
file.boardId = card.boardId;
file.cardId = card._id;
file.userId = Meteor.userId();
Attachments.insert(file);
const attachment = Attachments.insert(file);
if (attachment && attachment._id && attachment.isImage()) {
card.setCover(attachment._id);
}
Popup.close();
});
},
@@ -110,7 +113,12 @@ Template.previewClipboardImagePopup.events({
file.boardId = card.boardId;
file.cardId = card._id;
file.userId = Meteor.userId();
Attachments.insert(file);
const attachment = Attachments.insert(file);
if (attachment && attachment._id && attachment.isImage()) {
card.setCover(attachment._id);
}
pastedResults = null;
$(document.body).pasteImageReader(() => {});
Popup.close();
+21
View File
@@ -58,7 +58,28 @@
.preview-clipboard-image
width: 280px
max-width: 100%;
height: 200px
display: block
border: 1px solid black
box-shadow: 0 1px 2px rgba(0,0,0,.2)
@media screen and (max-width: 800px)
.attachments-galery
flex-direction
row
.attachment-item
width: 50% - 2%
.attachment-thumbnail
height: 130px
.attachment-details
font-size: 1.1em
@media screen and (max-width: 360px)
.attachments-galery
.attachment-item
width: 100%
.attachment-thumbnail
height: 200px
+8 -6
View File
@@ -171,11 +171,12 @@ class CardStartDate extends CardDate {
}
classes() {
let classes = 'start-date' + ' ';
if (this.date.get().isBefore(this.now.get(), 'minute') &&
this.now.get().isBefore(this.data().dueAt)) {
return 'current';
classes += 'current';
}
return '';
return classes;
}
showTitle() {
@@ -200,13 +201,14 @@ class CardDueDate extends CardDate {
}
classes() {
let classes = 'due-date' + ' ';
if (this.now.get().diff(this.date.get(), 'days') >= 2)
return 'long-overdue';
classes += 'long-overdue';
else if (this.now.get().diff(this.date.get(), 'minute') >= 0)
return 'due';
classes += 'due';
else if (this.now.get().diff(this.date.get(), 'days') >= -1)
return 'almost-due';
return '';
classes += 'almost-due';
return classes;
}
showTitle() {
+12 -2
View File
@@ -49,10 +49,20 @@
&:hover, &.is-active
background-color: darken(#fd5d47, 7)
&.due-date
time
&::before
content: "\f090" // symbol: fa-sign-in
&.start-date
time
&::before
content: "\f08b" // symbol: fa-sign-out
time
&::before
font: normal normal normal 14px/1 FontAwesome
font-size: inherit
-webkit-font-smoothing: antialiased
content: "\f017" // clock symbol
margin-right: 0.3em
margin-right: 0.3em
+63 -12
View File
@@ -9,9 +9,10 @@ template(name="cardDetails")
a.fa.fa-navicon.card-details-menu.js-open-card-details-menu
h2.card-details-title.js-card-title(
class="{{#if canModifyCard}}js-open-inlined-form is-editable{{/if}}")
= title
if isWatching
i.fa.fa-eye.card-details-watch
+viewer
= title
if isWatching
i.fa.fa-eye.card-details-watch
if archived
p.warning {{_ 'card-archived'}}
@@ -45,6 +46,14 @@ template(name="cardDetails")
h3.card-details-item-title {{_ 'card-due'}}
+cardDueDate
.card-details-items
if spentTime
.card-details-item.card-details-item-spent
if isOvertime
h3.card-details-item-title {{_ 'overtime-hours'}}
else
h3.card-details-item-title {{_ 'spent-time-hours'}}
+cardSpentTime
//- XXX We should use "editable" to avoid repetiting ourselves
if canModifyCard
@@ -76,16 +85,24 @@ template(name="cardDetails")
hr
+checklists(cardId = _id)
if attachments.count
hr
h2
i.fa.fa-paperclip
| {{_ 'attachments'}}
hr
h2
i.fa.fa-paperclip
| {{_ 'attachments'}}
+attachmentsGalery
+attachmentsGalery
hr
h2 {{ _ 'activity'}}
.activity-title
h2 {{ _ 'activity'}}
if currentUser.isBoardMember
.material-toggle-switch
span.toggle-switch-title {{_ 'hide-system-messages'}}
if hiddenSystemMessages
input.toggle-switch(type="checkbox" id="toggleButton" checked="checked")
else
input.toggle-switch(type="checkbox" id="toggleButton")
label.toggle-label(for="toggleButton")
if currentUser.isBoardMember
+commentForm
if isLoaded.get
@@ -109,6 +126,7 @@ template(name="cardDetailsActionsPopup")
li: a.js-attachments {{_ 'card-edit-attachments'}}
li: a.js-start-date {{_ 'editCardStartDatePopup-title'}}
li: a.js-due-date {{_ 'editCardDueDatePopup-title'}}
li: a.js-spent-time {{_ 'editCardSpentTimePopup-title'}}
hr
ul.pop-over-list
li: a.js-move-card-to-top {{_ 'moveCardToTop-title'}}
@@ -117,19 +135,52 @@ template(name="cardDetailsActionsPopup")
ul.pop-over-list
li: a.js-move-card {{_ 'moveCardPopup-title'}}
li: a.js-copy-card {{_ 'copyCardPopup-title'}}
li: a.js-copy-checklist-cards {{_ 'copyChecklistToManyCardsPopup-title'}}
unless archived
li: a.js-archive {{_ 'archive-card'}}
li: a.js-more {{_ 'cardMorePopup-title'}}
template(name="moveCardPopup")
+boardLists
if isSandstorm
+boardLists
else
+boardsAndLists
template(name="copyCardPopup")
label(for='copy-card-title') {{_ 'title'}}:
textarea#copy-card-title.minicard-composer-textarea.js-card-title(autofocus)
= title
if isSandstorm
+boardLists
else
+boardsAndLists
template(name="copyChecklistToManyCardsPopup")
label(for='copy-checklist-cards-title') {{_ 'copyChecklistToManyCardsPopup-instructions'}}:
textarea#copy-card-title.minicard-composer-textarea.js-card-title(autofocus)
| {{_ 'copyChecklistToManyCardsPopup-format'}}
if isSandstorm
+boardLists
else
+boardsAndLists
template(name="boardsAndLists")
select.js-select-boards
each boards
if $eq _id currentBoard._id
option(value="{{_id}}" selected) {{_ 'current'}}
else
option(value="{{_id}}") {{title}}
label {{_ 'lists'}}:
+boardLists
ul.pop-over-list
each aBoardLists
li
if $eq ../_id _id
a.disabled {{title}} ({{_ 'current'}})
else
a.js-select-list= title
template(name="cardMembersPopup")
ul.pop-over-list.js-card-member-list
+112 -12
View File
@@ -1,3 +1,5 @@
const subManager = new SubsManager();
BlazeComponent.extendComponent({
mixins() {
return [Mixins.InfiniteScrolling, Mixins.PerfectScrollbar];
@@ -18,9 +20,11 @@ BlazeComponent.extendComponent({
onCreated() {
this.isLoaded = new ReactiveVar(false);
this.parentComponent().showOverlay.set(true);
this.parentComponent().mouseHasEnterCardDetails = false;
this.parentComponent().parentComponent().showOverlay.set(true);
this.parentComponent().parentComponent().mouseHasEnterCardDetails = false;
this.calculateNextPeak();
Meteor.subscribe('unsaved-edits');
},
isWatching() {
@@ -28,13 +32,17 @@ BlazeComponent.extendComponent({
return card.findWatcher(Meteor.userId());
},
hiddenSystemMessages() {
return Meteor.user().hasHiddenSystemMessages();
},
canModifyCard() {
return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
},
scrollParentContainer() {
const cardPanelWidth = 510;
const bodyBoardComponent = this.parentComponent();
const bodyBoardComponent = this.parentComponent().parentComponent();
const $cardContainer = bodyBoardComponent.$('.js-lists');
const $cardView = this.$(this.firstNode());
@@ -61,7 +69,7 @@ BlazeComponent.extendComponent({
},
onDestroyed() {
this.parentComponent().showOverlay.set(false);
this.parentComponent().parentComponent().showOverlay.set(false);
},
events() {
@@ -96,8 +104,11 @@ BlazeComponent.extendComponent({
'click .js-add-members': Popup.open('cardMembers'),
'click .js-add-labels': Popup.open('cardLabels'),
'mouseenter .js-card-details' () {
this.parentComponent().showOverlay.set(true);
this.parentComponent().mouseHasEnterCardDetails = true;
this.parentComponent().parentComponent().showOverlay.set(true);
this.parentComponent().parentComponent().mouseHasEnterCardDetails = true;
},
'click #toggleButton'() {
Meteor.call('toggleSystemMessages');
},
}];
},
@@ -156,17 +167,19 @@ Template.cardDetailsActionsPopup.events({
'click .js-attachments': Popup.open('cardAttachments'),
'click .js-start-date': Popup.open('editCardStartDate'),
'click .js-due-date': Popup.open('editCardDueDate'),
'click .js-spent-time': Popup.open('editCardSpentTime'),
'click .js-move-card': Popup.open('moveCard'),
'click .js-copy-card': Popup.open('copyCard'),
'click .js-copy-checklist-cards': Popup.open('copyChecklistToManyCards'),
'click .js-move-card-to-top' (evt) {
evt.preventDefault();
const minOrder = _.min(this.list().cards().map((c) => c.sort));
this.move(this.listId, minOrder - 1);
const minOrder = _.min(this.list().cards(this.swimlaneId).map((c) => c.sort));
this.move(this.swimlaneId, this.listId, minOrder - 1);
},
'click .js-move-card-to-bottom' (evt) {
evt.preventDefault();
const maxOrder = _.max(this.list().cards().map((c) => c.sort));
this.move(this.listId, maxOrder + 1);
const maxOrder = _.max(this.list().cards(this.swimlaneId).map((c) => c.sort));
this.move(this.swimlaneId, this.listId, maxOrder + 1);
},
'click .js-archive' (evt) {
evt.preventDefault();
@@ -190,7 +203,8 @@ Template.editCardTitleForm.onRendered(function () {
Template.editCardTitleForm.events({
'keydown .js-edit-card-title' (evt) {
// If enter key was pressed, submit the data
if (evt.keyCode === 13) {
// Unless the shift key is also being pressed
if (evt.keyCode === 13 && !evt.shiftKey) {
$('.js-submit-edit-card-title-form').click();
}
},
@@ -202,17 +216,48 @@ Template.moveCardPopup.events({
// instead from a “component” state.
const card = Cards.findOne(Session.get('currentCard'));
const newListId = this._id;
card.move(newListId);
card.move(card.swimlaneId, newListId, 0);
Popup.close();
},
});
BlazeComponent.extendComponent({
onCreated() {
this.selectedBoard = new ReactiveVar(Session.get('currentBoard'));
},
boards() {
const boards = Boards.find({
archived: false,
'members.userId': Meteor.userId(),
}, {
sort: ['title'],
});
return boards;
},
aBoardLists() {
subManager.subscribe('board', this.selectedBoard.get());
const board = Boards.findOne(this.selectedBoard.get());
return board.lists();
},
events() {
return [{
'change .js-select-boards'(evt) {
this.selectedBoard.set($(evt.currentTarget).val());
},
}];
},
}).register('boardsAndLists');
Template.copyCardPopup.events({
'click .js-select-list' (evt) {
const card = Cards.findOne(Session.get('currentCard'));
const oldId = card._id;
card._id = null;
card.listId = this._id;
const list = Lists.findOne(card.listId);
card.boardId = list.boardId;
const textarea = $(evt.currentTarget).parents('.content').find('textarea');
const title = textarea.val().trim();
// insert new card to the bottom of new list
@@ -220,6 +265,7 @@ Template.copyCardPopup.events({
if (title) {
card.title = title;
card.coverId = '';
const _id = Cards.insert(card);
// In case the filter is active we need to add the newly inserted card in
// the list of exceptions -- cards that are not filtered. Otherwise the
@@ -251,6 +297,60 @@ Template.copyCardPopup.events({
},
});
Template.copyChecklistToManyCardsPopup.events({
'click .js-select-list' (evt) {
const card = Cards.findOne(Session.get('currentCard'));
const oldId = card._id;
card._id = null;
card.listId = this._id;
const list = Lists.findOne(card.listId);
card.boardId = list.boardId;
const textarea = $(evt.currentTarget).parents('.content').find('textarea');
const titleEntry = textarea.val().trim();
// insert new card to the bottom of new list
card.sort = Lists.findOne(this._id).cards().count();
if (titleEntry) {
const titleList = JSON.parse(titleEntry);
for (let i = 0; i < titleList.length; i++){
const obj = titleList[i];
card.title = obj.title;
card.description = obj.description;
card.coverId = '';
const _id = Cards.insert(card);
// In case the filter is active we need to add the newly inserted card in
// the list of exceptions -- cards that are not filtered. Otherwise the
// card will disappear instantly.
// See https://github.com/wekan/wekan/issues/80
Filter.addException(_id);
// copy checklists
let cursor = Checklists.find({cardId: oldId});
cursor.forEach(function() {
'use strict';
const checklist = arguments[0];
checklist.cardId = _id;
checklist._id = null;
Checklists.insert(checklist);
});
// copy card comments
cursor = CardComments.find({cardId: oldId});
cursor.forEach(function () {
'use strict';
const comment = arguments[0];
comment.cardId = _id;
comment._id = null;
CardComments.insert(comment);
});
}
Popup.close();
}
},
});
Template.cardMorePopup.events({
'click .js-copy-card-link-to-clipboard' () {
// Clipboard code from:
+22
View File
@@ -0,0 +1,22 @@
template(name="editCardSpentTime")
.edit-card-time
form.edit-time
.fields
label(for="time") {{_ 'time'}}
input.js-time-field#time(type="number" step="0.01" name="time" value="{{card.spentTime}}" placeholder=timeFormat autofocus)
label(for="overtime") {{_ 'overtime'}}
a.js-toggle-overtime
.materialCheckBox#overtime(class="{{#if card.isOvertime}}is-checked{{/if}}" name="overtime")
if error.get
.warning {{_ error.get}}
button.primary.wide.left.js-submit-time(type="submit") {{_ 'save'}}
button.js-delete-time.negate.wide.right {{_ 'delete'}}
template(name="timeBadge")
if canModifyCard
a.js-edit-time.card-time(title="{{showTitle}}" class="{{#if isOvertime}}card-label-red{{else}}card-label-green{{/if}}")
| {{showTime}}
else
a.card-time(title="{{showTitle}}" class="{{#if isOvertime}}card-label-red{{else}}card-label-green{{/if}}")
| {{showTime}}
+81
View File
@@ -0,0 +1,81 @@
BlazeComponent.extendComponent({
template() {
return 'editCardSpentTime';
},
onCreated() {
this.error = new ReactiveVar('');
this.card = this.data();
},
toggleOvertime() {
this.card.isOvertime = !this.card.isOvertime;
$('#overtime .materialCheckBox').toggleClass('is-checked');
$('#overtime').toggleClass('is-checked');
},
storeTime(spentTime, isOvertime) {
this.card.setSpentTime(spentTime);
this.card.setOvertime(isOvertime);
},
deleteTime() {
this.card.unsetSpentTime();
},
events() {
return [{
//TODO : need checking this portion
'submit .edit-time'(evt) {
evt.preventDefault();
const spentTime = parseFloat(evt.target.time.value);
const isOvertime = this.card.isOvertime;
if (spentTime >= 0) {
this.storeTime(spentTime, isOvertime);
Popup.close();
} else {
this.error.set('invalid-time');
evt.target.time.focus();
}
},
'click .js-delete-time'(evt) {
evt.preventDefault();
this.deleteTime();
Popup.close();
},
'click a.js-toggle-overtime': this.toggleOvertime,
}];
},
}).register('editCardSpentTimePopup');
BlazeComponent.extendComponent({
template() {
return 'timeBadge';
},
onCreated() {
const self = this;
self.time = ReactiveVar();
},
showTitle() {
if (this.data().isOvertime) {
return `${TAPi18n.__('overtime')} ${this.data().spentTime} ${TAPi18n.__('hours')}`;
} else {
return `${TAPi18n.__('card-spent')} ${this.data().spentTime} ${TAPi18n.__('hours')}`;
}
},
showTime() {
return this.data().spentTime;
},
isOvertime() {
return this.data().isOvertime;
},
events() {
return [{
'click .js-edit-time': Popup.open('editCardSpentTime'),
}];
},
}).register('cardSpentTime');
Template.timeBadge.helpers({
canModifyCard() {
return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
},
});
+17
View File
@@ -0,0 +1,17 @@
.card-time
display: block
border-radius: 4px
padding: 1px 3px
color: #fff
background-color: #dbdbdb
&:hover, &.is-active
background-color: #b3b3b3
time
&::before
font: normal normal normal 14px/1 FontAwesome
font-size: inherit
-webkit-font-smoothing: antialiased
content: "\f017" // clock symbol
margin-right: 0.3em
+12 -4
View File
@@ -28,9 +28,13 @@ template(name="checklistDetail")
span.checklist-stat(class="{{#if checklist.isFinished}}is-finished{{/if}}") {{checklist.finishedCount}}/{{checklist.itemCount}}
if canModifyCard
h2.title.js-open-inlined-form.is-editable {{checklist.title}}
h2.title.js-open-inlined-form.is-editable
+viewer
= checklist.title
else
h2.title {{checklist.title}}
h2.title
+viewer
= checklist.title
+checklistItems(checklist = checklist)
template(name="checklistDeleteDialog")
@@ -83,7 +87,11 @@ template(name='itemDetail')
.item.js-checklist-item
if canModifyCard
.check-box.materialCheckBox(class="{{#if item.isFinished }}is-checked{{/if}}")
.item-title.js-open-inlined-form.is-editable(class="{{#if item.isFinished }}is-checked{{/if}}") {{item.title}}
.item-title.js-open-inlined-form.is-editable(class="{{#if item.isFinished }}is-checked{{/if}}")
+viewer
= item.title
else
.materialCheckBox(class="{{#if item.isFinished }}is-checked{{/if}}")
.item-title(class="{{#if item.isFinished }}is-checked{{/if}}") {{item.title}}
.item-title(class="{{#if item.isFinished }}is-checked{{/if}}")
+viewer
= item.title
+5 -4
View File
@@ -146,8 +146,9 @@ BlazeComponent.extendComponent({
},
pressKey(event) {
//If user press enter key inside a form, submit it, so user doesn't have to leave keyboard to submit a form.
if (event.keyCode === 13) {
//If user press enter key inside a form, submit it
//Unless the user is also holding down the 'shift' key
if (event.keyCode === 13 && !event.shiftKey) {
event.preventDefault();
const $form = $(event.currentTarget).closest('form');
$form.find('button[type=submit]').click();
@@ -180,8 +181,8 @@ BlazeComponent.extendComponent({
Template.checklistDeleteDialog.onCreated(() => {
const $cardDetails = this.$('.card-details');
this.scrollState = { position: $cardDetails.scrollTop(), //save current scroll position
top: false, //required for smooth scroll animation
};
top: false, //required for smooth scroll animation
};
//Callback's purpose is to only prevent scrolling after animation is complete
$cardDetails.animate({ scrollTop: 0 }, 500, () => { this.scrollState.top = true; });
+2 -1
View File
@@ -34,4 +34,5 @@ template(name="cardLabelsPopup")
= name
if(isLabelSelected ../_id)
i.card-label-selectable-icon.fa.fa-check
a.quiet-button.full.js-add-label {{_ 'label-create'}}
if currentUser.isBoardAdmin
a.quiet-button.full.js-add-label {{_ 'label-create'}}
+11 -5
View File
@@ -6,14 +6,20 @@ template(name="minicard")
.minicard-labels
each labels
.minicard-label(class="card-label-{{color}}" title="{{name}}")
.minicard-title= title
.minicard-title
+viewer
= title
.dates
if startAt
.date
+minicardStartDate
.date
+minicardStartDate
if dueAt
.date
+minicardDueDate
.date
+minicardDueDate
if spentTime
.date
+cardSpentTime
if members
.minicard-members.js-minicard-members
each members
+3
View File
@@ -77,6 +77,9 @@
height: @width
border-radius: 2px
margin-left: 3px
.minicard-title
p:last-child
margin-bottom: 0
.dates
display: flex;
flex-direction: row;
+53
View File
@@ -630,6 +630,59 @@ button
a, .quiet
color: white
// Material Design Toggle Switch
.material-toggle-switch
display: flex
.toggle-label
position: relative
display: block
height: 20px
width: 44px
background-color: #a6a6a6
border-radius: 100px
cursor: pointer
transition: all 0.3s ease
&:after
position: absolute
left: -2px
top: -3px
display: block
width: 26px
height: 26px
border-radius: 100px
background-color: #fff
box-shadow: 0px 3px 3px rgba(0,0,0,0.05)
content: ''
transition: all 0.3s ease
&:active
&:after
transform: scale(1.15, 0.85)
.toggle-switch:checked ~ .toggle-label
background-color: #6fbeb5
&:after
left: 20px
background-color: #179588
.toggle-switch:checked:disabled ~ .toggle-label
background-color: #d5d5d5
pointer-events: none
&:after
background-color: #bcbdbc
.toggle-switch
display: none
.toggle-switch-title
margin: 0 0.5em
display: flex
@media screen and (max-width: 800px)
.edit-controls,
.add-controls
+11 -7
View File
@@ -11,13 +11,17 @@ template(name="import")
+Template.dynamic(template=currentTemplate)
template(name="importTextarea")
form
p: label(for='import-textarea') {{_ instruction}}
textarea.js-import-json(placeholder="{{_ 'import-json-placeholder'}}" autofocus)
| {{jsonText}}
if isSandstorm
p.warning {{_ 'import-sandstorm-warning'}}
input.primary.wide(type="submit" value="{{_ 'import'}}")
unless isSandstorm
form
p: label(for='import-textarea') {{_ instruction}}
textarea.js-import-json(placeholder="{{_ 'import-json-placeholder'}}" autofocus)
| {{jsonText}}
if isSandstorm
p.warning {{_ 'import-sandstorm-warning'}}
input.primary.wide(type="submit" value="{{_ 'import'}}")
if isSandstorm
p.warning 'Import disabled because of data loss bug https://github.com/wekan/wekan/issues/1430'
template(name="importMapMembers")
h2 {{_ 'import-map-members'}}
+4
View File
@@ -2,3 +2,7 @@ template(name='list')
.list.js-list(id="js-list-{{_id}}")
+listHeader
+listBody
template(name='miniList')
a.mini-list.js-select-list.js-list(id="js-list-{{_id}}")
+listHeader
+12 -4
View File
@@ -18,11 +18,11 @@ BlazeComponent.extendComponent({
// callback, we basically solve all issues related to reactive updates. A
// comment below provides further details.
onRendered() {
const boardComponent = this.parentComponent();
const boardComponent = this.parentComponent().parentComponent();
const itemsSelector = '.js-minicard:not(.placeholder, .js-card-composer)';
const $cards = this.$('.js-minicards');
$cards.sortable({
connectWith: '.js-minicards',
connectWith: '.js-minicards:not(.js-list-full)',
tolerance: 'pointer',
appendTo: 'body',
helper(evt, item) {
@@ -55,6 +55,7 @@ BlazeComponent.extendComponent({
const nCards = MultiSelection.isActive() ? MultiSelection.count() : 1;
const sortIndex = calculateIndex(prevCardDom, nextCardDom, nCards);
const listId = Blaze.getData(ui.item.parents('.list').get(0))._id;
const swimlaneId = Blaze.getData(ui.item.parents('.swimlane').get(0))._id;
// Normally the jquery-ui sortable library moves the dragged DOM element
// to its new position, which disrupts Blaze reactive updates mechanism
@@ -67,12 +68,12 @@ BlazeComponent.extendComponent({
if (MultiSelection.isActive()) {
Cards.find(MultiSelection.getMongoSelector()).forEach((card, i) => {
card.move(listId, sortIndex.base + i * sortIndex.increment);
card.move(swimlaneId, listId, sortIndex.base + i * sortIndex.increment);
});
} else {
const cardDomElement = ui.item.get(0);
const card = Blaze.getData(cardDomElement);
card.move(listId, sortIndex.base);
card.move(swimlaneId, listId, sortIndex.base);
}
boardComponent.setIsDragging(false);
},
@@ -114,3 +115,10 @@ BlazeComponent.extendComponent({
});
},
}).register('list');
Template.miniList.events({
'click .js-select-list'() {
const listId = this._id;
Session.set('currentList', listId);
},
});
+78 -2
View File
@@ -9,7 +9,6 @@
// Even if this background color is the same as the body we can't leave it
// transparent, because that won't work during a list drag.
background: darken(white, 13%)
height: 100%
border-left: 1px solid darken(white, 20%)
padding: 0
float: left
@@ -53,6 +52,9 @@
&.ui-sortable-handle
cursor: grab
.list-header-left-icon
display: none
.list-header-name
display: inline
font-size: 16px
@@ -78,15 +80,21 @@
.list-header-plus-icon
color: #a6a6a6
margin-right: 10px
.highlight
color: #ce1414
.list-body
flex: 1
flex-direction: column
display: flex
overflow-y: auto
padding: 5px 11px
.minicards
flex: 1
flex-grow: 1
flex-shrink: 0
form
margin-bottom: 9px
@@ -110,3 +118,71 @@
background: #fafafa
color: #222
box-shadow: 0 1px 2px rgba(0,0,0,.2)
#js-wip-limit-edit
padding-top: 2%
p
margin-bottom: 0
input
display: inline-block
.wip-limit-value
width: 20%
margin-right: 5%
.wip-limit-error
display: none
.soft-wip-limit
margin-right: 8px
div
float: left
@media screen and (max-width: 800px)
.mini-list
flex: 0 0 60px
height: 60px
width: 100%
border-left: 0px
border-bottom: 1px solid darken(white, 20%)
.list
display: block
width: 100%
border-left: 0px
&.ui-sortable-helper
flex: 0 0 60px
height: 60px
width: 100%
border-left: 0px
border-bottom: 1px solid darken(white, 20%)
.list-header.ui-sortable-handle
cursor: grabbing
&.placeholder
flex: 0 0 60px
height: 60px
width: 100%
border-left: 0px
border-bottom: 1px solid darken(white, 20%)
.list-header
.list-header-left-icon
display: inline
padding: 7px
padding-right: 27px
margin-top: 1px
top: -@padding
left: -@padding
.list-header-menu-icon
position: absolute
padding: 7px
top: -@padding
right: 17px
+2 -2
View File
@@ -1,10 +1,10 @@
template(name="listBody")
.list-body.js-perfect-scrollbar
.minicards.clearfix.js-minicards
.minicards.clearfix.js-minicards(class="{{#if reachedWipLimit}}js-list-full{{/if}}")
if cards.count
+inlinedForm(autoclose=false position="top")
+addCardForm(listId=_id position="top")
each cards
each (cards (idOrNull ../../_id))
a.minicard-wrapper.js-minicard(href=absoluteUrl
class="{{#if cardIsSelected}}is-selected{{/if}}"
class="{{#if MultiSelection.isSelected _id}}is-checked{{/if}}")
+25 -7
View File
@@ -36,6 +36,14 @@ BlazeComponent.extendComponent({
const members = formComponent.members.get();
const labelIds = formComponent.labels.get();
const boardId = this.data().board()._id;
const board = Boards.findOne(boardId);
let swimlaneId = '';
if (board.view === 'board-view-swimlanes')
swimlaneId = this.parentComponent().parentComponent().data()._id;
else
swimlaneId = Swimlanes.findOne({boardId})._id;
if (title) {
const _id = Cards.insert({
title,
@@ -44,6 +52,7 @@ BlazeComponent.extendComponent({
listId: this.data()._id,
boardId: this.data().board()._id,
sort: sortIndex,
swimlaneId,
});
// In case the filter is active we need to add the newly inserted card in
// the list of exceptions -- cards that are not filtered. Otherwise the
@@ -96,6 +105,22 @@ BlazeComponent.extendComponent({
MultiSelection.toggle(this.currentData()._id);
},
idOrNull(swimlaneId) {
const board = Boards.findOne(Session.get('currentBoard'));
if (board.view === 'board-view-swimlanes')
return swimlaneId;
return undefined;
},
canSeeAddCard() {
return !this.reachedWipLimit() && Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
},
reachedWipLimit() {
const list = Template.currentData();
return !list.getWipLimit('soft') && list.getWipLimit('enabled') && list.getWipLimit('value') <= list.cards().count();
},
events() {
return [{
'click .js-minicard': this.clickOnMiniCard,
@@ -239,10 +264,3 @@ BlazeComponent.extendComponent({
});
},
}).register('addCardForm');
Template.listBody.helpers({
canSeeAddCard() {
return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
},
});
+51 -3
View File
@@ -3,19 +3,40 @@ template(name="listHeader")
+inlinedForm
+editListTitleForm
else
if isMiniScreen
if currentList
a.list-header-left-icon.fa.fa-angle-left.js-unselect-list
h2.list-header-name(
class="{{#if currentUser.isBoardMember}}js-open-inlined-form is-editable{{/if}}")
= title
if wipLimit.enabled
|&nbsp;(
span(class="{{#if reachedWipLimit}}highlight{{/if}}") {{cards.count}}
|/#{wipLimit.value})
if showCardsCountForList cards.count
= cards.count
span.lowercase
| {{_ 'cards'}}
if currentUser.isBoardMember
if isMiniScreen
if currentList
if isWatching
i.list-header-watch-icon.fa.fa-eye
div.list-header-menu
unless currentUser.isCommentOnly
if canSeeAddCard
a.js-add-card.fa.fa-plus.list-header-plus-icon
a.fa.fa-navicon.js-open-list-menu
else
a.list-header-menu-icon.fa.fa-angle-right.js-select-list
else if currentUser.isBoardMember
if isWatching
i.list-header-watch-icon.fa.fa-eye
div.list-header-menu
a.js-add-card.fa.fa-plus.list-header-plus-icon
a.fa.fa-navicon.js-open-list-menu
unless currentUser.isCommentOnly
if canSeeAddCard
a.js-add-card.fa.fa-plus.list-header-plus-icon
a.fa.fa-navicon.js-open-list-menu
template(name="editListTitleForm")
.list-composer
@@ -33,6 +54,10 @@ template(name="listActionPopup")
if cards.count
li: a.js-select-cards {{_ 'list-select-cards'}}
hr
if currentUser.isBoardAdmin
ul.pop-over-list
li: a.js-set-wip-limit {{#if isWipLimitEnabled }}{{_ 'edit-wip-limit'}}{{else}}{{_ 'setWipLimitPopup-title'}}{{/if}}
hr
ul.pop-over-list
li: a.js-close-list {{_ 'archive-list'}}
hr
@@ -64,3 +89,26 @@ template(name="listDeletePopup")
unless archived
p {{_ "list-delete-suggest-archive"}}
button.js-confirm.negate.full(type="submit") {{_ 'delete'}}
template(name="setWipLimitPopup")
#js-wip-limit-edit
label {{_ 'set-wip-limit-value'}}
ul.pop-over-list
li: a.js-enable-wip-limit {{_ 'enable-wip-limit'}}
if isWipLimitEnabled
i.fa.fa-check
if isWipLimitEnabled
p
input.wip-limit-value(type="number" value="{{ wipLimitValue }}" min="1" max="99")
input.wip-limit-apply(type="submit" value="{{_ 'apply'}}")
input.wip-limit-error
p
.soft-wip-limit
.materialCheckBox(class="{{#if isWipLimitSoft}}is-checked{{/if}}")
label {{_ 'soft-wip-limit'}}
template(name="wipLimitErrorPopup")
.wip-limit-invalid
p {{_ 'wipLimitErrorPopup-dialog-pt1'}}
p {{_ 'wipLimitErrorPopup-dialog-pt2'}}
button.full.js-back-view(type="submit") {{_ 'cancel'}}
+71
View File
@@ -1,4 +1,9 @@
BlazeComponent.extendComponent({
canSeeAddCard() {
const list = Template.currentData();
return !list.getWipLimit('enabled') || list.getWipLimit('soft') || !this.reachedWipLimit();
},
editTitle(evt) {
evt.preventDefault();
const newTitle = this.childComponents('inlinedForm')[0].getValue().trim();
@@ -17,6 +22,11 @@ BlazeComponent.extendComponent({
return Meteor.user().getLimitToShowCardsCount();
},
reachedWipLimit() {
const list = Template.currentData();
return list.getWipLimit('enabled') && list.getWipLimit('value') <= list.cards().count();
},
showCardsCountForList(count) {
return count > this.limitToShowCardsCount();
},
@@ -31,12 +41,19 @@ BlazeComponent.extendComponent({
position: 'top',
});
},
'click .js-unselect-list'() {
Session.set('currentList', null);
},
submit: this.editTitle,
}];
},
}).register('listHeader');
Template.listActionPopup.helpers({
isWipLimitEnabled() {
return Template.currentData().getWipLimit('enabled');
},
isWatching() {
return this.findWatcher(Meteor.userId());
},
@@ -61,9 +78,63 @@ Template.listActionPopup.events({
this.archive();
Popup.close();
},
'click .js-set-wip-limit': Popup.open('setWipLimit'),
'click .js-more': Popup.open('listMore'),
});
BlazeComponent.extendComponent({
applyWipLimit() {
const list = Template.currentData();
const limit = parseInt(Template.instance().$('.wip-limit-value').val(), 10);
if(limit < list.cards().count() && !list.getWipLimit('soft')){
Template.instance().$('.wip-limit-error').click();
} else {
Meteor.call('applyWipLimit', list._id, limit);
Popup.back();
}
},
enableSoftLimit() {
const list = Template.currentData();
if(list.getWipLimit('soft') && list.getWipLimit('value') < list.cards().count()){
list.setWipLimit(list.cards().count());
}
Meteor.call('enableSoftLimit', Template.currentData()._id);
},
enableWipLimit() {
const list = Template.currentData();
// Prevent user from using previously stored wipLimit.value if it is less than the current number of cards in the list
if(!list.getWipLimit('enabled') && list.getWipLimit('value') < list.cards().count()){
list.setWipLimit(list.cards().count());
}
Meteor.call('enableWipLimit', list._id);
},
isWipLimitSoft() {
return Template.currentData().getWipLimit('soft');
},
isWipLimitEnabled() {
return Template.currentData().getWipLimit('enabled');
},
wipLimitValue(){
return Template.currentData().getWipLimit('value');
},
events() {
return [{
'click .js-enable-wip-limit': this.enableWipLimit,
'click .wip-limit-apply': this.applyWipLimit,
'click .wip-limit-error': Popup.open('wipLimitError'),
'click .materialCheckBox': this.enableSoftLimit,
}];
},
}).register('setWipLimitPopup');
Template.listMorePopup.events({
'click .js-delete': Popup.afterConfirm('listDelete', function () {
Popup.close();
+13
View File
@@ -0,0 +1,13 @@
BlazeComponent.extendComponent({
currentCardIsInThisList(listId, swimlaneId) {
const currentCard = Cards.findOne(Session.get('currentCard'));
const currentBoardId = Session.get('currentBoard');
const board = Boards.findOne(currentBoardId);
if (board.view === 'board-view-lists')
return currentCard && currentCard.listId === listId;
else if (board.view === 'board-view-swimlanes')
return currentCard && currentCard.listId === listId && currentCard.swimlaneId === swimlaneId;
else
return false;
},
}).register('listsGroup');
+2 -3
View File
@@ -9,6 +9,5 @@ template(name="editor")
template(name="viewer")
.viewer
+mentions
+emoji
+markdown
{{> UI.contentBlock }}
+markdown
{{> UI.contentBlock }}
+1 -20
View File
@@ -4,25 +4,6 @@ Template.editor.onRendered(() => {
autosize($textarea);
$textarea.escapeableTextComplete([
// Emoji
{
match: /\B:([\-+\w]*)$/,
search(term, callback) {
callback(Emoji.values.map((emoji) => {
return emoji.includes(term) ? emoji : null;
}).filter(Boolean));
},
template(value) {
const imgSrc = Emoji.baseImagePath + value;
const image = `<img src="${imgSrc}.png" />`;
return image + value;
},
replace(value) {
return `:${value}:`;
},
index: 1,
},
// User mentions
{
match: /\B@([\w.]*)$/,
@@ -47,7 +28,7 @@ Template.editor.onRendered(() => {
import sanitizeXss from 'xss';
// XXX I believe we should compute a HTML rendered field on the server that
// would handle markdown, emoji and user mentions. We can simply have two
// would handle markdown and user mentions. We can simply have two
// fields, one source, and one compiled version (in HTML) and send only the
// compiled version to most users -- who don't need to edit.
// In the meantime, all the transformation are done on the client using the
+32 -12
View File
@@ -7,19 +7,31 @@ template(name="header")
unless isSandstorm
if currentUser
#header-quick-access(class=currentBoard.colorClass)
ul
li
a(href="{{pathFor 'home'}}")
span.fa.fa-home
| {{_ 'all-boards'}}
each currentUser.starredBoards
li.separator -
li(class="{{#if $.Session.equals 'currentBoard' _id}}current{{/if}}")
a(href="{{pathFor 'board' id=_id slug=slug}}")
= title
else
li.current {{_ 'quick-access-description'}}
if isMiniScreen
ul
li
a(href="{{pathFor 'home'}}")
span.fa.fa-home
if currentList
each currentBoard.lists
li(class="{{#if $.Session.equals 'currentList' _id}}current{{/if}}")
a.js-select-list
= title
#header-new-board-icon
else
ul
li
a(href="{{pathFor 'home'}}")
span.fa.fa-home
| {{_ 'all-boards'}}
each currentUser.starredBoards
li.separator -
li(class="{{#if $.Session.equals 'currentBoard' _id}}current{{/if}}")
a(href="{{pathFor 'board' id=_id slug=slug}}")
= title
else
li.current {{_ 'quick-access-description'}}
a#header-new-board-icon.js-create-board
i.fa.fa-plus(title="Create a new board")
@@ -49,6 +61,14 @@ template(name="header")
if appIsOffline
+offlineWarning
if currentUser.isBoardMember
if hasAnnouncement
.announcement
p
i.fa.fa-bullhorn
| #{announcement}
i.fa.fa-times-circle.js-close-announcement
template(name="offlineWarning")
.offline-warning
p
+21
View File
@@ -1,3 +1,6 @@
Meteor.subscribe('user-admin');
Meteor.subscribe('boards');
Template.header.helpers({
wrappedHeader() {
return !Session.get('currentBoard');
@@ -10,8 +13,26 @@ Template.header.helpers({
appIsOffline() {
return !Meteor.status().connected;
},
hasAnnouncement() {
const announcements = Announcements.findOne();
return announcements && announcements.enabled;
},
announcement() {
$('.announcement').show();
const announcements = Announcements.findOne();
return announcements && announcements.body;
},
});
Template.header.events({
'click .js-create-board': Popup.open('headerBarCreateBoard'),
'click .js-close-announcement'() {
$('.announcement').hide();
},
'click .js-select-list'() {
Session.set('currentList', this._id);
Session.set('currentCard', null);
},
});
+25 -2
View File
@@ -191,12 +191,35 @@
bottom: 0px
ul
width: calc(100% - 150px)
width: calc(100% - 60px)
overflow: ellipsis
padding: 10px
margin: -10px
li
height: 28px
height: 100%
padding: 12px 0px
margin: -10px 0px
a
height: 100%
padding: 12px 10px
margin: -10px 0px
.fa-home
font-size: 26px
margin-top: -2px
#header-new-board-icon
display: none
#header-user-bar
position: absolute
right: 0px
padding: 10px
margin: -10px
.announcement,
.offline-warning
width: 100%
text-align: center
+1
View File
@@ -8,6 +8,7 @@ head
difficult to do that cleanly with Blaze -- at least without adding extra
packages.
link(rel="shortcut icon" href="/wekan-favicon.png")
link(rel="apple-touch-icon" href="/wekan-favicon.png")
link(rel="manifest" href="/wekan-manifest.json")
template(name="userFormsLayout")
+1 -5
View File
@@ -1,7 +1,3 @@
Meteor.subscribe('boards');
Meteor.subscribe('setting');
Meteor.subscribe('user-admin');
BlazeLayout.setRoot('body');
const i18nTagToT9n = (i18nTag) => {
@@ -23,7 +19,7 @@ Template.userFormsLayout.helpers({
return _.map(TAPi18n.getLanguages(), (lang, code) => {
return {
tag: code,
name: lang.name === 'br' ? 'Brezhoneg' : lang.name,
name: lang.name === 'br' ? 'Brezhoneg' : lang.name === 'ig' ? 'Igbo' : lang.name,
};
}).sort(function(a, b) {
if (a.name === b.name) {
-5
View File
@@ -270,11 +270,6 @@ kbd
.grabbing
cursor: grabbing
.emoji
height: 18px
width: 18px
vertical-align: text-bottom
// Implement a thiner close icon as suggested in
// https://github.com/FortAwesome/Font-Awesome/issues/1540#issuecomment-68689950
.fa.fa-times-thin:before
+1 -1
View File
@@ -1,6 +1,6 @@
Template.invitationCode.onRendered(() => {
const setting = Settings.findOne();
if (!setting || !setting.disableRegistration) {
if (setting || setting.disableRegistration) {
$('#invitationcode').hide();
}
});
@@ -0,0 +1,90 @@
template(name="people")
.setting-content
unless currentUser.isAdmin
| {{_ 'error-notAuthorized'}}
else
.content-title
span {{_ 'people'}}
.content-body
.side-menu
ul
li.active
a.js-setting-menu(data-id="people-setting") {{_ 'people'}}
.main-body
if loading.get
+spinner
else if people.get
+peopleGeneral
template(name="peopleGeneral")
table
tbody
tr
th {{_ 'username'}}
th {{_ 'fullname'}}
th {{_ 'admin'}}
th {{_ 'email'}}
th {{_ 'verified'}}
th {{_ 'createdAt'}}
th {{_ 'active'}}
th
each user in peopleList
+peopleRow(userId=user._id)
template(name="peopleRow")
tr
td.username {{ userData.username }}
td {{ userData.profile.fullname }}
td
if userData.isAdmin
| {{_ 'yes'}}
else
| {{_ 'no'}}
td {{ userData.emails.[0].address }}
td
if userData.emails.[0].verified
| {{_ 'yes'}}
else
| {{_ 'no'}}
td {{ moment userData.createdAt 'LLL' }}
td
if userData.loginDisabled
| {{_ 'no'}}
else
| {{_ 'yes'}}
td
a.edit-user
| {{_ 'edit'}}
template(name="editUserPopup")
form
label.hide.userId(type="text" value=user._id)
label
| {{_ 'fullname'}}
input.js-profile-fullname(type="text" value=user.profile.fullname autofocus)
label
| {{_ 'username'}}
span.error.hide.username-taken
| {{_ 'error-username-taken'}}
input.js-profile-username(type="text" value=user.username)
label
| {{_ 'email'}}
span.error.hide.email-taken
| {{_ 'error-email-taken'}}
input.js-profile-email(type="email" value="{{user.emails.[0].address}}")
label
| {{_ 'admin'}}
select.select-role.js-profile-isadmin
option(value="false") {{_ 'no'}}
option(value="true" selected="{{user.isAdmin}}") {{_ 'yes'}}
label
| {{_ 'active'}}
select.select-active.js-profile-isactive
option(value="false") {{_ 'yes'}}
option(value="true" selected="{{user.loginDisabled}}") {{_ 'no'}}
hr
label
| {{_ 'password'}}
input.js-profile-password(type="password")
input.primary.wide(type="submit" value="{{_ 'save'}}")
+158
View File
@@ -0,0 +1,158 @@
const usersPerPage = 25;
BlazeComponent.extendComponent({
mixins() {
return [Mixins.InfiniteScrolling];
},
onCreated() {
this.error = new ReactiveVar('');
this.loading = new ReactiveVar(false);
this.people = new ReactiveVar(true);
this.page = new ReactiveVar(1);
this.loadNextPageLocked = false;
this.callFirstWith(null, 'resetNextPeak');
this.autorun(() => {
const limit = this.page.get() * usersPerPage;
this.subscribe('people', limit, () => {
this.loadNextPageLocked = false;
const nextPeakBefore = this.callFirstWith(null, 'getNextPeak');
this.calculateNextPeak();
const nextPeakAfter = this.callFirstWith(null, 'getNextPeak');
if (nextPeakBefore === nextPeakAfter) {
this.callFirstWith(null, 'resetNextPeak');
}
});
});
},
loadNextPage() {
if (this.loadNextPageLocked === false) {
this.page.set(this.page.get() + 1);
this.loadNextPageLocked = true;
}
},
calculateNextPeak() {
const element = this.find('.main-body');
if (element) {
const altitude = element.scrollHeight;
this.callFirstWith(this, 'setNextPeak', altitude);
}
},
reachNextPeak() {
this.loadNextPage();
},
setError(error) {
this.error.set(error);
},
setLoading(w) {
this.loading.set(w);
},
peopleList() {
return Users.find({}, {
fields: {_id: true},
});
},
}).register('people');
Template.peopleRow.helpers({
userData() {
const userCollection = this.esSearch ? ESSearchResults : Users;
return userCollection.findOne(this.userId);
},
});
Template.editUserPopup.helpers({
user() {
return Users.findOne(this.userId);
},
});
BlazeComponent.extendComponent({
onCreated() {
},
user() {
return Users.findOne(this.userId);
},
events() {
return [{
'click a.edit-user': Popup.open('editUser'),
}];
},
}).register('peopleRow');
Template.editUserPopup.events({
submit(evt, tpl) {
evt.preventDefault();
const user = Users.findOne(this.userId);
const fullname = tpl.find('.js-profile-fullname').value.trim();
const username = tpl.find('.js-profile-username').value.trim();
const password = tpl.find('.js-profile-password').value;
const isAdmin = tpl.find('.js-profile-isadmin').value.trim();
const isActive = tpl.find('.js-profile-isactive').value.trim();
const email = tpl.find('.js-profile-email').value.trim();
const isChangePassword = password.length > 0;
const isChangeUserName = username !== user.username;
const isChangeEmail = email.toLowerCase() !== user.emails[0].address.toLowerCase();
Users.update(this.userId, {
$set: {
'profile.fullname': fullname,
'isAdmin': isAdmin === 'true',
'loginDisabled': isActive === 'true',
},
});
if(isChangePassword){
Meteor.call('setPassword', password, this.userId);
}
if (isChangeUserName && isChangeEmail) {
Meteor.call('setUsernameAndEmail', username, email.toLowerCase(), this.userId, function (error) {
const usernameMessageElement = tpl.$('.username-taken');
const emailMessageElement = tpl.$('.email-taken');
if (error) {
const errorElement = error.error;
if (errorElement === 'username-already-taken') {
usernameMessageElement.show();
emailMessageElement.hide();
} else if (errorElement === 'email-already-taken') {
usernameMessageElement.hide();
emailMessageElement.show();
}
} else {
usernameMessageElement.hide();
emailMessageElement.hide();
Popup.close();
}
});
} else if (isChangeUserName) {
Meteor.call('setUsername', username, this.userId, function (error) {
const usernameMessageElement = tpl.$('.username-taken');
if (error) {
const errorElement = error.error;
if (errorElement === 'username-already-taken') {
usernameMessageElement.show();
}
} else {
usernameMessageElement.hide();
Popup.close();
}
});
} else if (isChangeEmail) {
Meteor.call('setEmail', email.toLowerCase(), this.userId, function (error) {
const emailMessageElement = tpl.$('.email-taken');
if (error) {
const errorElement = error.error;
if (errorElement === 'email-already-taken') {
emailMessageElement.show();
}
} else {
emailMessageElement.hide();
Popup.close();
}
});
} else Popup.close();
},
});
@@ -0,0 +1,15 @@
.main-body
overflow: scroll;
table
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
td, th
border: 1px solid #d2d0d0;
text-align: left;
padding: 8px;
tr:nth-child(even)
background-color: #dddddd;
@@ -14,6 +14,8 @@ template(name="setting")
a.js-setting-menu(data-id="email-setting") {{_ 'email'}}
li
a.js-setting-menu(data-id="account-setting") {{_ 'accounts'}}
li
a.js-setting-menu(data-id="announcement-setting") {{_ 'admin-announcement'}}
.main-body
if loading.get
+spinner
@@ -23,6 +25,8 @@ template(name="setting")
+email
else if accountSetting.get
+accountSettings
else if announcementSetting.get
+announcementSettings
template(name="general")
ul#registration-setting.setting-detail
@@ -85,6 +89,9 @@ template(name='email')
li
button.js-save.primary {{_ 'save'}}
li
button.js-send-smtp-test-email.primary {{_ 'send-smtp-test'}}
template(name='accountSettings')
ul#account-setting.setting-detail
li.smtp-form
@@ -96,3 +103,19 @@ template(name='accountSettings')
span {{_ 'no'}}
li
button.js-accounts-save.primary {{_ 'save'}}
template(name='announcementSettings')
ul#announcement-setting.setting-detail
li
a.flex.js-toggle-activemessage
.materialCheckBox(class="{{#if currentSetting.enabled}}is-checked{{/if}}")
span {{_ 'admin-announcement-active'}}
li
.admin-announcement(class="{{#if currentSetting.enabled}}{{else}}hide{{/if}}")
ul
li
.title {{_ 'admin-announcement-title'}}
textarea#admin-announcement.form-control= currentSetting.body
li
button.js-announcement-save.primary {{_ 'save'}}
+66 -5
View File
@@ -1,7 +1,3 @@
Meteor.subscribe('setting');
Meteor.subscribe('mailServer');
Meteor.subscribe('accountSettings');
BlazeComponent.extendComponent({
onCreated() {
this.error = new ReactiveVar('');
@@ -9,6 +5,12 @@ BlazeComponent.extendComponent({
this.generalSetting = new ReactiveVar(true);
this.emailSetting = new ReactiveVar(false);
this.accountSetting = new ReactiveVar(false);
this.announcementSetting = new ReactiveVar(false);
Meteor.subscribe('setting');
Meteor.subscribe('mailServer');
Meteor.subscribe('accountSettings');
Meteor.subscribe('announcements');
},
setError(error) {
@@ -65,6 +67,7 @@ BlazeComponent.extendComponent({
this.generalSetting.set('registration-setting' === targetID);
this.emailSetting.set('email-setting' === targetID);
this.accountSetting.set('account-setting' === targetID);
this.announcementSetting.set('announcement-setting' === targetID);
}
},
@@ -113,7 +116,7 @@ BlazeComponent.extendComponent({
const from = this.checkField('#mail-server-from');
const tls = $('#mail-server-tls.is-checked').length > 0;
Settings.update(Settings.findOne()._id, {$set:{'mailServer.host':host, 'mailServer.port': port, 'mailServer.username': username,
'mailServer.password': password, 'mailServer.enableTLS': tls, 'mailServer.from': from}});
'mailServer.password': password, 'mailServer.enableTLS': tls, 'mailServer.from': from}});
} catch (e) {
return;
} finally {
@@ -122,6 +125,21 @@ BlazeComponent.extendComponent({
},
sendSMTPTestEmail() {
Meteor.call('sendSMTPTestEmail', (err, ret) => {
if (!err && ret) { /* eslint-disable no-console */
const message = `${TAPi18n.__(ret.message)}: ${ret.email}`;
console.log(message);
alert(message);
} else {
const reason = err.reason || '';
const message = `${TAPi18n.__(err.error)}\n${reason}`;
console.log(message, err);
alert(message);
} /* eslint-enable no-console */
});
},
events(){
return [{
'click a.js-toggle-registration': this.toggleRegistration,
@@ -130,6 +148,7 @@ BlazeComponent.extendComponent({
'click a.js-toggle-board-choose': this.checkBoard,
'click button.js-email-invite': this.inviteThroughEmail,
'click button.js-save': this.saveMailServerInfo,
'click button.js-send-smtp-test-email': this.sendSMTPTestEmail,
}];
},
}).register('setting');
@@ -152,3 +171,45 @@ BlazeComponent.extendComponent({
}];
},
}).register('accountSettings');
BlazeComponent.extendComponent({
onCreated() {
this.loading = new ReactiveVar(false);
},
setLoading(w) {
this.loading.set(w);
},
currentSetting(){
return Announcements.findOne();
},
saveMessage() {
const message = $('#admin-announcement').val().trim();
Announcements.update(Announcements.findOne()._id, {
$set: { 'body': message },
});
},
toggleActive(){
this.setLoading(true);
const isActive = this.currentSetting().enabled;
Announcements.update(Announcements.findOne()._id, {
$set:{ 'enabled': !isActive},
});
this.setLoading(false);
if(isActive){
$('.admin-announcement').slideUp();
}else{
$('.admin-announcement').slideDown();
}
},
events() {
return [{
'click a.js-toggle-activemessage': this.toggleActive,
'click button.js-announcement-save': this.saveMessage,
}];
},
}).register('announcementSettings');
+4 -3
View File
@@ -61,10 +61,11 @@
.is-checked
border-bottom: 2px solid #2980b9;
border-right: 2px solid #2980b9;
span
span
padding: 0 0.5rem
.admin-announcement,
.invite-people
padding-left 20px;
li
@@ -9,13 +9,14 @@ template(name="settingHeaderBar")
a.setting-header-btn.settings(href="{{pathFor 'setting'}}")
i.fa(class="fa-cog")
span {{_ 'settings'}}
a.setting-header-btn.people(href="{{pathFor 'people'}}")
i.fa(class="fa-users")
span {{_ 'people'}}
a.setting-header-btn.informations(href="{{pathFor 'information'}}")
i.fa(class="fa-info-circle")
span {{_ 'info'}}
//TODO
// a.setting-header-btn.people
// i.fa(class="fa-users")
// span {{_ 'people'}}
else
a.setting-header-btn.js-log-in(
+11 -7
View File
@@ -82,23 +82,27 @@ template(name="memberPopup")
ul.pop-over-list
li
a.js-filter-member {{_ 'filter-cards'}}
if currentUser.isBoardAdmin
unless isSandstorm
unless isSandstorm
if currentUser.isBoardAdmin
li
a.js-change-role
| {{_ 'change-permissions'}}
span.quiet (#{memberType})
li
if $eq currentUser._id userId
a.js-leave-member {{_ 'leave-board'}}
else
a.js-remove-member {{_ 'remove-from-board'}}
li
if $eq currentUser._id userId
a.js-leave-member {{_ 'leave-board'}}
else if currentUser.isBoardAdmin
a.js-remove-member {{_ 'remove-from-board'}}
template(name="removeMemberPopup")
p {{_ 'remove-member-pop' name=user.profile.fullname username=user.username boardTitle=board.title}}
button.js-confirm.negate.full(type="submit") {{_ 'remove-member'}}
template(name="leaveBoardPopup")
p {{_ 'leave-board-pop' boardTitle=board.title}}
button.js-confirm.negate.full(type="submit") {{_ 'leave-board'}}
template(name="addMemberPopup")
.js-search-member
+esInput(index="users")
+10 -6
View File
@@ -153,15 +153,13 @@ Template.memberPopup.events({
Boards.findOne(boardId).removeMember(memberId);
Popup.close();
}),
'click .js-leave-member'() {
'click .js-leave-member': Popup.afterConfirm('leaveBoard', () => {
const boardId = Session.get('currentBoard');
Meteor.call('quitBoard', boardId, (err, ret) => {
if (!ret && ret) {
Popup.close();
FlowRouter.go('home');
}
Popup.close();
FlowRouter.go('home');
});
},
}),
});
Template.removeMemberPopup.helpers({
@@ -173,6 +171,12 @@ Template.removeMemberPopup.helpers({
},
});
Template.leaveBoardPopup.helpers({
board() {
return Boards.findOne(Session.get('currentBoard'));
},
});
Template.membersWidget.helpers({
isInvited() {
const user = Meteor.user();
@@ -25,3 +25,14 @@ template(name="archivesSidebar")
= title
else
li.no-items-message {{_ 'no-archived-lists'}}
+tabContent(slug="swimlanes")
ul.archived-lists
each archivedSwimlanes
li.archived-lists-item
if currentUser.isBoardMember
button.js-restore-swimlane
i.fa.fa-undo
= title
else
li.no-items-message {{_ 'no-archived-swimlanes'}}
+15 -1
View File
@@ -3,6 +3,7 @@ BlazeComponent.extendComponent({
return [
{ name: TAPi18n.__('cards'), slug: 'cards' },
{ name: TAPi18n.__('lists'), slug: 'lists' },
{ name: TAPi18n.__('swimlanes'), slug: 'swimlanes' },
];
},
@@ -20,6 +21,13 @@ BlazeComponent.extendComponent({
});
},
archivedSwimlanes() {
return Swimlanes.find({
archived: true,
boardId: Session.get('currentBoard'),
});
},
cardIsInArchivedList() {
return this.currentData().list().archived;
},
@@ -32,7 +40,9 @@ BlazeComponent.extendComponent({
return [{
'click .js-restore-card'() {
const card = this.currentData();
card.restore();
if(card.canBeRestored()){
card.restore();
}
},
'click .js-delete-card': Popup.afterConfirm('cardDelete', function() {
const cardId = this._id;
@@ -43,6 +53,10 @@ BlazeComponent.extendComponent({
const list = this.currentData();
list.restore();
},
'click .js-restore-swimlane'() {
const swimlane = this.currentData();
swimlane.restore();
},
}];
},
}).register('archivesSidebar');
@@ -59,7 +59,7 @@ template(name="multiselectionSidebar")
if name
= name
else
span.quiet {{_ "label-default" color}}
span.quiet {{_ "label-default" (_ (concat "color-" color))}}
if allSelectedElementHave 'label' _id
i.fa.fa-check
else if someSelectedElementHave 'label' _id
@@ -0,0 +1,23 @@
template(name="swimlaneHeader")
.swimlane-header-wrap
+inlinedForm
+editSwimlaneTitleForm
else
.swimlane-header(
class="{{#if currentUser.isBoardMember}}js-open-inlined-form is-editable{{/if}}")
= title
.swimlane-header-menu
unless currentUser.isCommentOnly
a.fa.fa-navicon.js-open-swimlane-menu
template(name="editSwimlaneTitleForm")
.list-composer
input.list-name-input.full-line(type="text" value=title autofocus)
.edit-controls.clearfix
button.primary.confirm(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
template(name="swimlaneActionPopup")
unless currentUser.isCommentOnly
ul.pop-over-list
li: a.js-close-swimlane {{_ 'archive-swimlane'}}
@@ -0,0 +1,25 @@
BlazeComponent.extendComponent({
editTitle(evt) {
evt.preventDefault();
const newTitle = this.childComponents('inlinedForm')[0].getValue().trim();
const swimlane = this.currentData();
if (newTitle) {
swimlane.rename(newTitle.trim());
}
},
events() {
return [{
'click .js-open-swimlane-menu': Popup.open('swimlaneAction'),
submit: this.editTitle,
}];
},
}).register('swimlaneHeader');
Template.swimlaneActionPopup.events({
'click .js-close-swimlane' (evt) {
evt.preventDefault();
this.archive();
Popup.close();
},
});
@@ -0,0 +1,75 @@
template(name="swimlane")
.swimlane.js-lists
+swimlaneHeader
if isMiniScreen
if currentList
+list(currentList)
else
each currentBoard.lists
+miniList(this)
if currentUser.isBoardMember
+addListForm
else
each currentBoard.lists
+list(this)
if currentCardIsInThisList _id ../_id
+cardDetails(currentCard)
if currentUser.isBoardMember
+addListAndSwimlaneForm
template(name="listsGroup")
.swimlane.js-lists
if isMiniScreen
if currentList
+list(currentList)
else
each currentBoard.lists
+miniList(this)
if currentUser.isBoardMember
+addListForm
else
each currentBoard.lists
+list(this)
if currentCardIsInThisList _id null
+cardDetails(currentCard)
if currentUser.isBoardMember
+addListForm
template(name="addListAndSwimlaneForm")
.list.js-list.list-composer.js-list-composer
.list-header
+inlinedForm(autoclose=false)
input.list-name-input.full-line(type="text" placeholder="{{_ 'add-list'}}"
autocomplete="off" autofocus)
.edit-controls.clearfix
button.primary.confirm(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
else
a.open-list-composer.js-open-inlined-form
i.fa.fa-plus
| {{_ 'add-list'}}
.list-header
+inlinedForm(autoclose=false)
input.swimlane-name-input.full-line(type="text" placeholder="{{_ 'add-swimlane'}}"
autocomplete="off" autofocus)
.edit-controls.clearfix
button.primary.confirm(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
else
a.open-list-composer.js-open-inlined-form
i.fa.fa-plus
| {{_ 'add-swimlane'}}
template(name="addListForm")
.list.js-list.list-composer.js-list-composer
.list-header
+inlinedForm(autoclose=false)
input.list-name-input.full-line(type="text" placeholder="{{_ 'add-list'}}"
autocomplete="off" autofocus)
.edit-controls.clearfix
button.primary.confirm(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
else
a.open-list-composer.js-open-inlined-form
i.fa.fa-plus
| {{_ 'add-list'}}
+229
View File
@@ -0,0 +1,229 @@
BlazeComponent.extendComponent({
onCreated() {
this.draggingActive = new ReactiveVar(false);
this._isDragging = false;
this._lastDragPositionX = 0;
},
openNewListForm() {
this.childComponents('addListForm')[0].open();
},
id() {
return this._id;
},
// XXX Flow components allow us to avoid creating these two setter methods by
// exposing a public API to modify the component state. We need to investigate
// best practices here.
setIsDragging(bool) {
this.draggingActive.set(bool);
},
scrollLeft(position = 0) {
const lists = this.$('.js-lists');
lists && lists.animate({
scrollLeft: position,
});
},
currentCardIsInThisList(listId, swimlaneId) {
const currentCard = Cards.findOne(Session.get('currentCard'));
const currentBoardId = Session.get('currentBoard');
const board = Boards.findOne(currentBoardId);
if (board.view === 'board-view-lists')
return currentCard && currentCard.listId === listId;
else if (board.view === 'board-view-swimlanes')
return currentCard && currentCard.listId === listId && currentCard.swimlaneId === swimlaneId;
else
return false;
},
events() {
return [{
// Click-and-drag action
'mousedown .board-canvas'(evt) {
// Translating the board canvas using the click-and-drag action can
// conflict with the build-in browser mechanism to select text. We
// define a list of elements in which we disable the dragging because
// the user will legitimately expect to be able to select some text with
// his mouse.
const noDragInside = ['a', 'input', 'textarea', 'p', '.js-list-header'];
if ($(evt.target).closest(noDragInside.join(',')).length === 0 && this.$('.swimlane').prop('clientHeight') > evt.offsetY) {
this._isDragging = true;
this._lastDragPositionX = evt.clientX;
}
},
'mouseup'() {
if (this._isDragging) {
this._isDragging = false;
}
},
'mousemove'(evt) {
if (this._isDragging) {
// Update the canvas position
this.listsDom.scrollLeft -= evt.clientX - this._lastDragPositionX;
this._lastDragPositionX = evt.clientX;
// Disable browser text selection while dragging
evt.stopPropagation();
evt.preventDefault();
// Don't close opened card or inlined form at the end of the
// click-and-drag.
EscapeActions.executeUpTo('popup-close');
EscapeActions.preventNextClick();
}
},
}];
},
}).register('swimlane');
Template.swimlane.onRendered(function() {
const self = BlazeComponent.getComponentForElement(this.firstNode);
self.listsDom = this.find('.js-lists');
if (!Session.get('currentCard')) {
self.scrollLeft();
}
// We want to animate the card details window closing. We rely on CSS
// transition for the actual animation.
self.listsDom._uihooks = {
removeElement(node) {
const removeNode = _.once(() => {
node.parentNode.removeChild(node);
});
if ($(node).hasClass('js-card-details')) {
$(node).css({
flexBasis: 0,
padding: 0,
});
$(self.listsDom).one(CSSEvents.transitionend, removeNode);
} else {
removeNode();
}
},
};
$(self.listsDom).sortable({
tolerance: 'pointer',
helper: 'clone',
handle: '.js-list-header',
items: '.js-list:not(.js-list-composer)',
placeholder: 'list placeholder',
distance: 7,
start(evt, ui) {
ui.placeholder.height(ui.helper.height());
Popup.close();
},
stop() {
$(self.listsDom).find('.js-list:not(.js-list-composer)').each(
(i, list) => {
const data = Blaze.getData(list);
Lists.update(data._id, {
$set: {
sort: i,
},
});
}
);
},
});
function userIsMember() {
return Meteor.user() && Meteor.user().isBoardMember();
}
// Disable drag-dropping while in multi-selection mode, or if the current user
// is not a board member
self.autorun(() => {
const $listDom = $(self.listsDom);
if ($listDom.data('sortable')) {
$(self.listsDom).sortable('option', 'disabled',
MultiSelection.isActive() || !userIsMember());
}
});
// If there is no data in the board (ie, no lists) we autofocus the list
// creation form by clicking on the corresponding element.
const currentBoard = Boards.findOne(Session.get('currentBoard'));
if (userIsMember() && currentBoard.lists().count() === 0) {
self.openNewListForm();
}
});
BlazeComponent.extendComponent({
// Proxy
open() {
this.childComponents('inlinedForm')[0].open();
},
events() {
return [{
submit(evt) {
evt.preventDefault();
const titleInput = this.find('.list-name-input');
const title = titleInput.value.trim();
if (title) {
Lists.insert({
title,
boardId: Session.get('currentBoard'),
sort: $('.list').length,
});
titleInput.value = '';
titleInput.focus();
}
},
}];
},
}).register('addListForm');
BlazeComponent.extendComponent({
// Proxy
open() {
this.childComponents('inlinedForm')[0].open();
},
events() {
return [{
submit(evt) {
evt.preventDefault();
let titleInput = this.find('.list-name-input');
if (titleInput) {
const title = titleInput.value.trim();
if (title) {
Lists.insert({
title,
boardId: Session.get('currentBoard'),
sort: $('.list').length,
});
titleInput.value = '';
titleInput.focus();
}
} else {
titleInput = this.find('.swimlane-name-input');
const title = titleInput.value.trim();
if (title) {
Swimlanes.insert({
title,
boardId: Session.get('currentBoard'),
sort: $('.swimlane').length,
});
titleInput.value = '';
titleInput.focus();
}
}
},
}];
},
}).register('addListAndSwimlaneForm');
Template.swimlane.helpers({
canSeeAddList() {
return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
},
});
@@ -0,0 +1,24 @@
@import 'nib'
.swimlane-header-wrap
display: flex;
flex-direction: row;
flex: 0 0 50px;
.swimlane-header
writing-mode: sideways-lr;
font-size: 14px;
line-height: 50px;
margin: 0;
font-weight: bold;
min-height: 9px;
min-width: 30px;
overflow: hidden;
-o-text-overflow: ellipsis;
text-overflow: ellipsis;
word-wrap: break-word;
text-align: center;
.swimlane-header-menu
position: absolute
padding: 20px 20px
+6 -6
View File
@@ -71,10 +71,10 @@ template(name="cardMemberPopup")
.info
h3= user.profile.fullname
p.quiet @{{ user.username }}
if currentUser.isBoardMember
ul.pop-over-list
li: a.js-remove-member {{_ 'remove-member-from-card'}}
ul.pop-over-list
if currentUser.isNotCommentOnly
li: a.js-remove-member {{_ 'remove-member-from-card'}}
if $eq currentUser._id user._id
with currentUser
li: a.js-edit-profile {{_ 'edit-profile'}}
if $eq currentUser._id user._id
with currentUser
li: a.js-edit-profile {{_ 'edit-profile'}}
+2 -2
View File
@@ -1,5 +1,3 @@
Meteor.subscribe('my-avatars');
Template.userAvatar.helpers({
userData() {
// We need to handle a special case for the search results provided by the
@@ -54,6 +52,8 @@ Template.userAvatarInitials.helpers({
BlazeComponent.extendComponent({
onCreated() {
this.error = new ReactiveVar('');
Meteor.subscribe('my-avatars');
},
avatarUrlOptions() {
+5 -4
View File
@@ -3,10 +3,11 @@ template(name="headerUserBar")
a.header-user-bar-name.js-open-header-member-menu
.header-user-bar-avatar
+userAvatar(userId=currentUser._id)
if currentUser.profile.fullname
= currentUser.profile.fullname
else
= currentUser.username
unless isMiniScreen
if currentUser.profile.fullname
= currentUser.profile.fullname
else
= currentUser.username
template(name="memberMenuPopup")
ul.pop-over-list
+12 -10
View File
@@ -35,14 +35,16 @@ Template.editProfilePopup.events({
const email = tpl.find('.js-profile-email').value.trim();
let isChangeUserName = false;
let isChangeEmail = false;
Users.update(Meteor.userId(), {$set: {
'profile.fullname': fullname,
'profile.initials': initials,
}});
Users.update(Meteor.userId(), {
$set: {
'profile.fullname': fullname,
'profile.initials': initials,
},
});
isChangeUserName = username !== Meteor.user().username;
isChangeEmail = email.toLowerCase() !== Meteor.user().emails[0].address.toLowerCase();
if (isChangeUserName && isChangeEmail) {
Meteor.call('setUsernameAndEmail', username, email.toLowerCase(), function(error) {
Meteor.call('setUsernameAndEmail', username, email.toLowerCase(), Meteor.userId(), function (error) {
const usernameMessageElement = tpl.$('.username-taken');
const emailMessageElement = tpl.$('.email-taken');
if (error) {
@@ -61,7 +63,7 @@ Template.editProfilePopup.events({
}
});
} else if (isChangeUserName) {
Meteor.call('setUsername', username, function(error) {
Meteor.call('setUsername', username, Meteor.userId(), function (error) {
const messageElement = tpl.$('.username-taken');
if (error) {
messageElement.show();
@@ -71,7 +73,7 @@ Template.editProfilePopup.events({
}
});
} else if (isChangeEmail) {
Meteor.call('setEmail', email.toLowerCase(), function(error) {
Meteor.call('setEmail', email.toLowerCase(), Meteor.userId(), function (error) {
const messageElement = tpl.$('.email-taken');
if (error) {
messageElement.show();
@@ -105,7 +107,7 @@ Template.editNotificationPopup.events({
// XXX For some reason the useraccounts autofocus isnt working in this case.
// See https://github.com/meteor-useraccounts/core/issues/384
Template.changePasswordPopup.onRendered(function() {
Template.changePasswordPopup.onRendered(function () {
this.find('#at-field-current_password').focus();
});
@@ -114,9 +116,9 @@ Template.changeLanguagePopup.helpers({
return _.map(TAPi18n.getLanguages(), (lang, code) => {
return {
tag: code,
name: lang.name === 'br' ? 'Brezhoneg' : lang.name,
name: lang.name === 'br' ? 'Brezhoneg' : lang.name === 'ig' ? 'Igbo' : lang.name,
};
}).sort(function(a, b) {
}).sort(function (a, b) {
if (a.name === b.name) {
return 0;
} else {
+11
View File
@@ -16,6 +16,17 @@ Blaze.registerHelper('currentCard', () => {
}
});
Blaze.registerHelper('currentList', () => {
const listId = Session.get('currentList');
if (listId) {
return Lists.findOne(listId);
} else {
return null;
}
});
Blaze.registerHelper('getUser', (userId) => Users.findOne(userId));
Blaze.registerHelper('concat', (...args) => args.slice(0, -1).join(''));
Blaze.registerHelper('isMiniScreen', () => Utils.isMiniScreen());
-152
View File
@@ -1,152 +0,0 @@
Emoji.values = ['+1', '-1', '100', '1234', '8ball', 'a', 'ab', 'abc', 'abcd',
'accept', 'aerial_tramway', 'airplane', 'alarm_clock', 'alien', 'ambulance',
'anchor', 'angel', 'anger', 'angry', 'anguished', 'ant', 'apple', 'aquarius',
'aries', 'arrow_backward', 'arrow_double_down', 'arrow_double_up', 'arrow_down',
'arrow_down_small', 'arrow_forward', 'arrow_heading_down', 'arrow_heading_up',
'arrow_left', 'arrow_lower_left', 'arrow_lower_right', 'arrow_right',
'arrow_right_hook', 'arrow_up', 'arrow_up_down', 'arrow_up_small',
'arrow_upper_left', 'arrow_upper_right', 'arrows_clockwise',
'arrows_counterclockwise', 'art', 'articulated_lorry', 'astonished', 'atm', 'b',
'baby', 'baby_bottle', 'baby_chick', 'baby_symbol', 'baggage_claim', 'balloon',
'ballot_box_with_check', 'bamboo', 'banana', 'bangbang', 'bank', 'bar_chart',
'barber', 'baseball', 'basketball', 'bath', 'bathtub', 'battery', 'bear', 'bee',
'beer', 'beers', 'beetle', 'beginner', 'bell', 'bento', 'bicyclist', 'bike',
'bikini', 'bird', 'birthday', 'black_circle', 'black_joker', 'black_nib',
'black_square', 'black_square_button', 'blossom', 'blowfish', 'blue_book',
'blue_car', 'blue_heart', 'blush', 'boar', 'boat', 'bomb', 'book', 'bookmark',
'bookmark_tabs', 'books', 'boom', 'boot', 'bouquet', 'bow', 'bowling', 'bowtie',
'boy', 'bread', 'bride_with_veil', 'bridge_at_night', 'briefcase',
'broken_heart', 'bug', 'bulb', 'bullettrain_front', 'bullettrain_side', 'bus',
'busstop', 'bust_in_silhouette', 'busts_in_silhouette', 'cactus', 'cake',
'calendar', 'calling', 'camel', 'camera', 'cancer', 'candy', 'capital_abcd',
'capricorn', 'car', 'card_index', 'carousel_horse', 'cat', 'cat2', 'cd',
'chart', 'chart_with_downwards_trend', 'chart_with_upwards_trend',
'checkered_flag', 'cherries', 'cherry_blossom', 'chestnut', 'chicken',
'children_crossing', 'chocolate_bar', 'christmas_tree', 'church', 'cinema',
'circus_tent', 'city_sunrise', 'city_sunset', 'cl', 'clap', 'clapper',
'clipboard', 'clock1', 'clock10', 'clock1030', 'clock11', 'clock1130',
'clock12', 'clock1230', 'clock130', 'clock2', 'clock230', 'clock3', 'clock330',
'clock4', 'clock430', 'clock5', 'clock530', 'clock6', 'clock630', 'clock7',
'clock730', 'clock8', 'clock830', 'clock9', 'clock930', 'closed_book',
'closed_lock_with_key', 'closed_umbrella', 'cloud', 'clubs', 'cn', 'cocktail',
'coffee', 'cold_sweat', 'collision', 'computer', 'confetti_ball', 'confounded',
'confused', 'congratulations', 'construction', 'construction_worker',
'convenience_store', 'cookie', 'cool', 'cop', 'copyright', 'corn', 'couple',
'couple_with_heart', 'couplekiss', 'cow', 'cow2', 'credit_card', 'crocodile',
'crossed_flags', 'crown', 'cry', 'crying_cat_face', 'crystal_ball', 'cupid',
'curly_loop', 'currency_exchange', 'curry', 'custard', 'customs', 'cyclone',
'dancer', 'dancers', 'dango', 'dart', 'dash', 'date', 'de', 'deciduous_tree',
'department_store', 'diamond_shape_with_a_dot_inside', 'diamonds',
'disappointed', 'disappointed_relieved', 'dizzy', 'dizzy_face', 'do_not_litter',
'dog', 'dog2', 'dollar', 'dolls', 'dolphin', 'donut', 'door', 'doughnut',
'dragon', 'dragon_face', 'dress', 'dromedary_camel', 'droplet', 'dvd', 'e-mail',
'ear', 'ear_of_rice', 'earth_africa', 'earth_americas', 'earth_asia', 'egg',
'eggplant', 'eight', 'eight_pointed_black_star', 'eight_spoked_asterisk',
'electric_plug', 'elephant', 'email', 'end', 'envelope', 'es', 'euro',
'european_castle', 'european_post_office', 'evergreen_tree', 'exclamation',
'expressionless', 'eyeglasses', 'eyes', 'facepunch', 'factory', 'fallen_leaf',
'family', 'fast_forward', 'fax', 'fearful', 'feelsgood', 'feet', 'ferris_wheel',
'file_folder', 'finnadie', 'fire', 'fire_engine', 'fireworks',
'first_quarter_moon', 'first_quarter_moon_with_face', 'fish', 'fish_cake',
'fishing_pole_and_fish', 'fist', 'five', 'flags', 'flashlight', 'floppy_disk',
'flower_playing_cards', 'flushed', 'foggy', 'football', 'fork_and_knife',
'fountain', 'four', 'four_leaf_clover', 'fr', 'free', 'fried_shrimp', 'fries',
'frog', 'frowning', 'fu', 'fuelpump', 'full_moon', 'full_moon_with_face',
'game_die', 'gb', 'gem', 'gemini', 'ghost', 'gift', 'gift_heart', 'girl',
'globe_with_meridians', 'goat', 'goberserk', 'godmode', 'golf', 'grapes',
'green_apple', 'green_book', 'green_heart', 'grey_exclamation', 'grey_question',
'grimacing', 'grin', 'grinning', 'guardsman', 'guitar', 'gun', 'haircut',
'hamburger', 'hammer', 'hamster', 'hand', 'handbag', 'hankey', 'hash',
'hatched_chick', 'hatching_chick', 'headphones', 'hear_no_evil', 'heart',
'heart_decoration', 'heart_eyes', 'heart_eyes_cat', 'heartbeat', 'heartpulse',
'hearts', 'heavy_check_mark', 'heavy_division_sign', 'heavy_dollar_sign',
'heavy_exclamation_mark', 'heavy_minus_sign', 'heavy_multiplication_x',
'heavy_plus_sign', 'helicopter', 'herb', 'hibiscus', 'high_brightness',
'high_heel', 'hocho', 'honey_pot', 'honeybee', 'horse', 'horse_racing',
'hospital', 'hotel', 'hotsprings', 'hourglass', 'hourglass_flowing_sand',
'house', 'house_with_garden', 'hurtrealbad', 'hushed', 'ice_cream', 'icecream',
'id', 'ideograph_advantage', 'imp', 'inbox_tray', 'incoming_envelope',
'information_desk_person', 'information_source', 'innocent', 'interrobang',
'iphone', 'it', 'izakaya_lantern', 'jack_o_lantern', 'japan', 'japanese_castle',
'japanese_goblin', 'japanese_ogre', 'jeans', 'joy', 'joy_cat', 'jp', 'key',
'keycap_ten', 'kimono', 'kiss', 'kissing', 'kissing_cat', 'kissing_closed_eyes',
'kissing_face', 'kissing_heart', 'kissing_smiling_eyes', 'koala', 'koko', 'kr',
'large_blue_circle', 'large_blue_diamond', 'large_orange_diamond',
'last_quarter_moon', 'last_quarter_moon_with_face', 'laughing', 'leaves',
'ledger', 'left_luggage', 'left_right_arrow', 'leftwards_arrow_with_hook',
'lemon', 'leo', 'leopard', 'libra', 'light_rail', 'link', 'lips', 'lipstick',
'lock', 'lock_with_ink_pen', 'lollipop', 'loop', 'loudspeaker', 'love_hotel',
'love_letter', 'low_brightness', 'm', 'mag', 'mag_right', 'mahjong', 'mailbox',
'mailbox_closed', 'mailbox_with_mail', 'mailbox_with_no_mail', 'man',
'man_with_gua_pi_mao', 'man_with_turban', 'mans_shoe', 'maple_leaf', 'mask',
'massage', 'meat_on_bone', 'mega', 'melon', 'memo', 'mens', 'metal', 'metro',
'microphone', 'microscope', 'milky_way', 'minibus', 'minidisc',
'mobile_phone_off', 'money_with_wings', 'moneybag', 'monkey', 'monkey_face',
'monorail', 'moon', 'mortar_board', 'mount_fuji', 'mountain_bicyclist',
'mountain_cableway', 'mountain_railway', 'mouse', 'mouse2', 'movie_camera',
'moyai', 'muscle', 'mushroom', 'musical_keyboard', 'musical_note',
'musical_score', 'mute', 'nail_care', 'name_badge', 'neckbeard', 'necktie',
'negative_squared_cross_mark', 'neutral_face', 'new', 'new_moon',
'new_moon_with_face', 'newspaper', 'ng', 'nine', 'no_bell', 'no_bicycles',
'no_entry', 'no_entry_sign', 'no_good', 'no_mobile_phones', 'no_mouth',
'no_pedestrians', 'no_smoking', 'non-potable_water', 'nose', 'notebook',
'notebook_with_decorative_cover', 'notes', 'nut_and_bolt', 'o', 'o2', 'ocean',
'octocat', 'octopus', 'oden', 'office', 'ok', 'ok_hand', 'ok_woman',
'older_man', 'older_woman', 'on', 'oncoming_automobile', 'oncoming_bus',
'oncoming_police_car', 'oncoming_taxi', 'one', 'open_file_folder', 'open_hands',
'open_mouth', 'ophiuchus', 'orange_book', 'outbox_tray', 'ox', 'page_facing_up',
'page_with_curl', 'pager', 'palm_tree', 'panda_face', 'paperclip', 'parking',
'part_alternation_mark', 'partly_sunny', 'passport_control', 'paw_prints',
'peach', 'pear', 'pencil', 'pencil2', 'penguin', 'pensive', 'performing_arts',
'persevere', 'person_frowning', 'person_with_blond_hair',
'person_with_pouting_face', 'phone', 'pig', 'pig2', 'pig_nose', 'pill',
'pineapple', 'pisces', 'pizza', 'plus1', 'point_down', 'point_left',
'point_right', 'point_up', 'point_up_2', 'police_car', 'poodle', 'poop',
'post_office', 'postal_horn', 'postbox', 'potable_water', 'pouch',
'poultry_leg', 'pound', 'pouting_cat', 'pray', 'princess', 'punch',
'purple_heart', 'purse', 'pushpin', 'put_litter_in_its_place', 'question',
'rabbit', 'rabbit2', 'racehorse', 'radio', 'radio_button', 'rage', 'rage1',
'rage2', 'rage3', 'rage4', 'railway_car', 'rainbow', 'raised_hand',
'raised_hands', 'raising_hand', 'ram', 'ramen', 'rat', 'recycle', 'red_car',
'red_circle', 'registered', 'relaxed', 'relieved', 'repeat', 'repeat_one',
'restroom', 'revolving_hearts', 'rewind', 'ribbon', 'rice', 'rice_ball',
'rice_cracker', 'rice_scene', 'ring', 'rocket', 'roller_coaster', 'rooster',
'rose', 'rotating_light', 'round_pushpin', 'rowboat', 'ru', 'rugby_football',
'runner', 'running', 'running_shirt_with_sash', 'sa', 'sagittarius', 'sailboat',
'sake', 'sandal', 'santa', 'satellite', 'satisfied', 'saxophone', 'school',
'school_satchel', 'scissors', 'scorpius', 'scream', 'scream_cat', 'scroll',
'seat', 'secret', 'see_no_evil', 'seedling', 'seven', 'shaved_ice', 'sheep',
'shell', 'ship', 'shipit', 'shirt', 'shit', 'shoe', 'shower', 'signal_strength',
'six', 'six_pointed_star', 'ski', 'skull', 'sleeping', 'sleepy', 'slot_machine',
'small_blue_diamond', 'small_orange_diamond', 'small_red_triangle',
'small_red_triangle_down', 'smile', 'smile_cat', 'smiley', 'smiley_cat',
'smiling_imp', 'smirk', 'smirk_cat', 'smoking', 'snail', 'snake', 'snowboarder',
'snowflake', 'snowman', 'sob', 'soccer', 'soon', 'sos', 'sound',
'space_invader', 'spades', 'spaghetti', 'sparkler', 'sparkles',
'sparkling_heart', 'speak_no_evil', 'speaker', 'speech_balloon', 'speedboat',
'squirrel', 'star', 'star2', 'stars', 'station', 'statue_of_liberty',
'steam_locomotive', 'stew', 'straight_ruler', 'strawberry', 'stuck_out_tongue',
'stuck_out_tongue_closed_eyes', 'stuck_out_tongue_winking_eye', 'sun_with_face',
'sunflower', 'sunglasses', 'sunny', 'sunrise', 'sunrise_over_mountains',
'surfer', 'sushi', 'suspect', 'suspension_railway', 'sweat', 'sweat_drops',
'sweat_smile', 'sweet_potato', 'swimmer', 'symbols', 'syringe', 'tada',
'tanabata_tree', 'tangerine', 'taurus', 'taxi', 'tea', 'telephone',
'telephone_receiver', 'telescope', 'tennis', 'tent', 'thought_balloon', 'three',
'thumbsdown', 'thumbsup', 'ticket', 'tiger', 'tiger2', 'tired_face', 'tm',
'toilet', 'tokyo_tower', 'tomato', 'tongue', 'top', 'tophat', 'tractor',
'traffic_light', 'train', 'train2', 'tram', 'triangular_flag_on_post',
'triangular_ruler', 'trident', 'triumph', 'trolleybus', 'trollface', 'trophy',
'tropical_drink', 'tropical_fish', 'truck', 'trumpet', 'tshirt', 'tulip',
'turtle', 'tv', 'twisted_rightwards_arrows', 'two', 'two_hearts',
'two_men_holding_hands', 'two_women_holding_hands', 'u5272', 'u5408', 'u55b6',
'u6307', 'u6708', 'u6709', 'u6e80', 'u7121', 'u7533', 'u7981', 'u7a7a', 'uk',
'umbrella', 'unamused', 'underage', 'unlock', 'up', 'us', 'v',
'vertical_traffic_light', 'vhs', 'vibration_mode', 'video_camera', 'video_game',
'violin', 'virgo', 'volcano', 'vs', 'walking', 'waning_crescent_moon',
'waning_gibbous_moon', 'warning', 'watch', 'water_buffalo', 'watermelon',
'wave', 'wavy_dash', 'waxing_crescent_moon', 'waxing_gibbous_moon', 'wc',
'weary', 'wedding', 'whale', 'whale2', 'wheelchair', 'white_check_mark',
'white_circle', 'white_flower', 'white_square', 'white_square_button',
'wind_chime', 'wine_glass', 'wink', 'wolf', 'woman', 'womans_clothes',
'womans_hat', 'womens', 'worried', 'wrench', 'x', 'yellow_heart', 'yen', 'yum',
'zap', 'zero', 'zzz'];
-3
View File
@@ -90,9 +90,6 @@ Template.keyboardShortcuts.helpers({
}, {
keys: ['@'],
action: 'shortcut-autocomplete-members',
}, {
keys: [':'],
action: 'shortcut-autocomplete-emoji',
}, {
keys: ['SPACE'],
action: 'shortcut-assign-self',
+1 -1
View File
@@ -31,7 +31,7 @@ window.Modal = new class {
this._currentModal.set({ header, modalName });
this._onCloseGoTo = onCloseGoTo;
}
};
}();
Blaze.registerHelper('Modal', Modal);
+1 -2
View File
@@ -190,7 +190,7 @@ window.Popup = new class {
return title !== translationKey ? title : defaultTitle;
};
}
};
}();
// We close a potential opened popup on any left click on the document, or go
// one step back by pressing escape.
@@ -205,4 +205,3 @@ escapeActions.forEach((actionName) => {
}
);
});
-2
View File
@@ -1,5 +1,3 @@
Meteor.subscribe('unsaved-edits');
// `UnsavedEdits` is a global key-value store used to save drafts of user
// inputs. We used to have the notion of a `cachedValue` that was local to a
// component but the global store has multiple advantages:
+25
View File
@@ -8,6 +8,7 @@ FlowRouter.route('/', {
triggersEnter: [AccountsTemplates.ensureSignedIn],
action() {
Session.set('currentBoard', null);
Session.set('currentList', null);
Session.set('currentCard', null);
Filter.reset();
@@ -88,6 +89,7 @@ FlowRouter.route('/import/:source', {
Session.set('fromBoard', Session.get('currentBoard'));
}
Session.set('currentBoard', null);
Session.set('currentList', null);
Session.set('currentCard', null);
Session.set('importSource', params.source);
@@ -106,6 +108,7 @@ FlowRouter.route('/setting', {
AccountsTemplates.ensureSignedIn,
() => {
Session.set('currentBoard', null);
Session.set('currentList', null);
Session.set('currentCard', null);
Filter.reset();
@@ -126,6 +129,7 @@ FlowRouter.route('/information', {
AccountsTemplates.ensureSignedIn,
() => {
Session.set('currentBoard', null);
Session.set('currentList', null);
Session.set('currentCard', null);
Filter.reset();
@@ -140,6 +144,27 @@ FlowRouter.route('/information', {
},
});
FlowRouter.route('/people', {
name: 'people',
triggersEnter: [
AccountsTemplates.ensureSignedIn,
() => {
Session.set('currentBoard', null);
Session.set('currentList', null);
Session.set('currentCard', null);
Filter.reset();
EscapeActions.executeAll();
},
],
action() {
BlazeLayout.render('defaultLayout', {
headerBar: 'settingHeaderBar',
content: 'people',
});
},
});
FlowRouter.notFound = {
action() {
BlazeLayout.render('defaultLayout', { content: 'notFound' });
+1 -1
View File
@@ -3,7 +3,7 @@ version: '2'
services:
wekandb:
image: mongo:3.2.16
image: mongo:3.2.18
container_name: wekan-db
restart: always
command: mongod --smallfiles --oplogSize 128
+101 -59
View File
@@ -12,6 +12,7 @@
"act-archivedBoard": "قام بأرشفة __board__",
"act-archivedCard": "قام بأرشفة __card__",
"act-archivedList": "قام بأرشفة __list__",
"act-archivedSwimlane": "archived __swimlane__",
"act-importBoard": "إستورد __board__",
"act-importCard": "إستورد __card__",
"act-importList": "إستورد __list__",
@@ -44,6 +45,7 @@
"add-attachment": "إضافة مرفق",
"add-board": "إضافة لوحة",
"add-card": "إضافة بطاقة",
"add-swimlane": "Add Swimlane",
"add-checklist": "إضافة قائمة تدقيق",
"add-checklist-item": "إضافة عنصر إلى قائمة التحقق",
"add-cover": "إضافة غلاف",
@@ -54,6 +56,9 @@
"addMemberPopup-title": "الأعضاء",
"admin": "المدير",
"admin-desc": "إمكانية مشاهدة و تعديل و حذف أعضاء ، و تعديل إعدادات اللوحة أيضا.",
"admin-announcement": "إعلان",
"admin-announcement-active": "Active System-Wide Announcement",
"admin-announcement-title": "Announcement from Administrator",
"all-boards": "كل اللوحات",
"and-n-other-card": "And __count__ other بطاقة",
"and-n-other-card_plural": "And __count__ other بطاقات",
@@ -64,6 +69,7 @@
"archive-board": "أرشيف اللوحة",
"archive-card": "أرشيف البطاقة",
"archive-list": "قائمة الأرشيفات",
"archive-swimlane": "Archive Swimlane",
"archive-selection": "أرشف المُحدّد",
"archiveBoardPopup-title": "أرشيف اللوحة ؟",
"archived-items": "عناصر مؤرشفة",
@@ -91,6 +97,9 @@
"boardChangeWatchPopup-title": "تغيير المتابعة",
"boardMenuPopup-title": "قائمة اللوحة",
"boards": "لوحات",
"board-view": "Board View",
"board-view-swimlanes": "Swimlanes",
"board-view-lists": "القائمات",
"bucket-example": "مثل « todo list » على سبيل المثال",
"cancel": "إلغاء",
"card-archived": "هذه البطاقة أُرشفت.",
@@ -100,6 +109,7 @@
"card-delete-suggest-archive": "يمكنك أرشفة بطاقة لحذفها من اللوحة والمحافظة على النشاط.",
"card-due": "مستحق",
"card-due-on": "مستحق في",
"card-spent": "Spent Time",
"card-edit-attachments": "تعديل المرفقات",
"card-edit-labels": "تعديل العلامات",
"card-edit-members": "تعديل الأعضاء",
@@ -147,8 +157,11 @@
"comment-only-desc": "يمكن التعليق على بطاقات فقط.",
"computer": "حاسوب",
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist",
"copy-card-link-to-clipboard": "Copy card link to clipboard",
"copyCardPopup-title": "Copy Card",
"copy-card-link-to-clipboard": "نسخ رابط البطاقة إلى الحافظة",
"copyCardPopup-title": "نسخ البطاقة",
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
"create": "إنشاء",
"createBoardPopup-title": "إنشاء لوحة",
"chooseBoardSourcePopup-title": "استيراد لوحة",
@@ -168,8 +181,11 @@
"edit": "تعديل",
"edit-avatar": "تعديل الصورة الشخصية",
"edit-profile": "تعديل الملف الشخصي",
"edit-wip-limit": "Edit WIP Limit",
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "تغيير تاريخ البدء",
"editCardDueDatePopup-title": "تغيير تاريخ الاستحقاق",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "تعديل العلامة",
"editNotificationPopup-title": "تصحيح الإشعار",
"editProfilePopup-title": "تعديل الملف الشخصي",
@@ -177,6 +193,7 @@
"email-enrollAccount-subject": "An account created for you on __siteName__",
"email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.",
"email-fail": "Sending email failed",
"email-fail-text": "Error trying to send email",
"email-invalid": "Invalid email",
"email-invite": "Invite via Email",
"email-invite-subject": "__inviter__ sent you an invitation",
@@ -186,6 +203,7 @@
"email-sent": "Email sent",
"email-verifyEmail-subject": "Verify your email address on __siteName__",
"email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.",
"enable-wip-limit": "Enable WIP Limit",
"error-board-doesNotExist": "This board does not exist",
"error-board-notAdmin": "You need to be admin of this board to do that",
"error-board-notAMember": "You need to be a member of this board to do that",
@@ -196,7 +214,7 @@
"error-user-notAllowSelf": "لا يمكنك دعوة نفسك",
"error-user-notCreated": "This user is not created",
"error-username-taken": "إسم المستخدم مأخوذ مسبقا",
"error-email-taken": "Email has already been taken",
"error-email-taken": "البريد الإلكتروني مأخوذ بالفعل",
"export-board": "Export board",
"filter": "تصفية",
"filter-cards": "تصفية البطاقات",
@@ -227,9 +245,11 @@
"import-show-user-mapping": "Review members mapping",
"import-user-select": "Pick the Wekan user you want to use as this member",
"importMapMembersAddPopup-title": "حدّد عضو ويكان",
"info": "Version",
"info": "الإصدار",
"initials": "أولية",
"invalid-date": "تاريخ غير صالح",
"invalid-time": "Invalid time",
"invalid-user": "Invalid user",
"joined": "انضمّ",
"just-invited": "You are just invited to this board",
"keyboard-shortcuts": "اختصار لوحة المفاتيح",
@@ -240,18 +260,22 @@
"language": "لغة",
"last-admin-desc": "لا يمكن تعديل الأدوار لأن ذلك يتطلب صلاحيات المدير.",
"leave-board": "مغادرة اللوحة",
"leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.",
"leaveBoardPopup-title": "مغادرة اللوحة ؟",
"link-card": "ربط هذه البطاقة",
"list-archive-cards": "أرضفت بطاقات هذه القائمة",
"list-archive-cards-pop": "سيقتضي هذا أرشفة جميع بطاقات هذه القائمة. لمشاهدة أرشيف البطاقات أو إعادتها إلى اللوحة، اضغط على -القائمة- ثم - أرشيف العناصر-",
"list-move-cards": "نقل بطاقات هذه القائمة",
"list-select-cards": "تحديد بطاقات هذه القائمة",
"listActionPopup-title": "قائمة الإجراءات",
"swimlaneActionPopup-title": "Swimlane Actions",
"listImportCardPopup-title": "Import a Trello card",
"listMorePopup-title": "المزيد",
"link-list": "رابط إلى هذه القائمة",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
"list-delete-suggest-archive": "يمكنك أرشفة قائمة لحذفها من اللوحة والمحافظة على النشاط.",
"lists": "القائمات",
"swimlanes": "Swimlanes",
"log-out": "تسجيل الخروج",
"log-in": "تسجيل الدخول",
"loginPopup-title": "تسجيل الدخول",
@@ -260,17 +284,18 @@
"menu": "القائمة",
"move-selection": "Move selection",
"moveCardPopup-title": "نقل البطاقة",
"moveCardToBottom-title": "Move to Bottom",
"moveCardToTop-title": "Move to Top",
"moveCardToBottom-title": "التحرك إلى القاع",
"moveCardToTop-title": "التحرك إلى الأعلى",
"moveSelectionPopup-title": "Move selection",
"multi-selection": "تحديد أكثر من واحدة",
"multi-selection-on": "Multi-Selection is on",
"muted": "Muted",
"muted": "مكتوم",
"muted-info": "You will never be notified of any changes in this board",
"my-boards": "لوحاتي",
"name": "اسم",
"no-archived-cards": "لا توجد بطاقات مؤرشفة.",
"no-archived-lists": "لا توجد قوائم مؤرشفة.",
"no-archived-swimlanes": "No archived swimlanes.",
"no-results": "لا توجد نتائج",
"normal": "عادي",
"normal-desc": "يمكن مشاهدة و تعديل البطاقات. لا يمكن تغيير إعدادات الضبط.",
@@ -283,7 +308,7 @@
"page-not-found": "صفحة غير موجودة",
"password": "كلمة المرور",
"paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)",
"participating": "Participating",
"participating": "المشاركة",
"preview": "Preview",
"previewAttachedImagePopup-title": "Preview",
"previewClipboardImagePopup-title": "Preview",
@@ -295,8 +320,8 @@
"quick-access-description": "أضف لوحة إلى المفضلة لإنشاء اختصار في هذا الشريط.",
"remove-cover": "حذف الغلاف",
"remove-from-board": "حذف من اللوحة",
"remove-label": "Remove Label",
"listDeletePopup-title": "Delete List ?",
"remove-label": "إزالة التصنيف",
"listDeletePopup-title": "حذف القائمة ؟",
"remove-member": "حذف العضو",
"remove-member-from-card": "حذف من البطاقة",
"remove-member-pop": "حذف __name__ (__username__) من __boardTitle__ ? سيتم حذف هذا العضو من جميع بطاقة اللوحة مع إرسال إشعار له بذاك.",
@@ -306,7 +331,9 @@
"restore": "استعادة",
"save": "حفظ",
"search": "بحث",
"select-color": "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",
"shortcut-assign-self": "Assign yourself to current card",
"shortcut-autocomplete-emoji": "الإكمال التلقائي للرموز التعبيرية",
"shortcut-autocomplete-members": "الإكمال التلقائي لأسماء الأعضاء",
@@ -316,9 +343,9 @@
"shortcut-show-shortcuts": "عرض قائمة الإختصارات ،تلك",
"shortcut-toggle-filterbar": "Toggle Filter Sidebar",
"shortcut-toggle-sidebar": "إظهار-إخفاء الشريط الجانبي للوحة",
"show-cards-minimum-count": "Show cards count if list contains more than",
"sidebar-open": "Open Sidebar",
"sidebar-close": "Close Sidebar",
"show-cards-minimum-count": "إظهار عدد البطاقات إذا كانت القائمة تتضمن أكثر من",
"sidebar-open": "فتح الشريط الجانبي",
"sidebar-close": "إغلاق الشريط الجانبي",
"signupPopup-title": "إنشاء حساب",
"star-board-title": "اضغط لإضافة هذه اللوحة إلى المفضلة . سوف يتم إظهارها على رأس بقية اللوحات.",
"starred-boards": "اللوحات المفضلة",
@@ -327,69 +354,84 @@
"team": "فريق",
"this-board": "هذه اللوحة",
"this-card": "هذه البطاقة",
"time": "Time",
"spent-time-hours": "Spent time (hours)",
"overtime-hours": "Overtime (hours)",
"overtime": "Overtime",
"has-overtime-cards": "Has overtime cards",
"has-spenttime-cards": "Has spent time cards",
"time": "الوقت",
"title": "عنوان",
"tracking": "Tracking",
"tracking": "تتبع",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
"unassign-member": "إلغاء تعيين العضو",
"unsaved-description": "لديك وصف غير محفوظ",
"unwatch": "Unwatch",
"unwatch": "غير مُشاهد",
"upload": "Upload",
"upload-avatar": "رفع صورة شخصية",
"uploaded-avatar": "تم رفع الصورة الشخصية",
"username": "اسم المستخدم",
"view-it": "شاهدها",
"warn-list-archived": "انتبه : هذه البطاقة في أرشيف القائمات",
"watch": "Watch",
"watching": "Watching",
"watch": "مُشاهد",
"watching": "مشاهدة",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "لوحة التّرحيب",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "المبادئ",
"welcome-list2": "متقدم",
"what-to-do": "ماذا تريد أن تنجز?",
"admin-panel": "Admin Panel",
"settings": "Settings",
"people": "People",
"registration": "Registration",
"wipLimitErrorPopup-title": "Invalid WIP Limit",
"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": "لوحة التحكم",
"settings": "الإعدادات",
"people": "الناس",
"registration": "تسجيل",
"disable-self-registration": "Disable Self-Registration",
"invite": "Invite",
"invite-people": "Invite People",
"invite": "دعوة",
"invite-people": "الناس المدعوين",
"to-boards": "إلى اللوحات",
"email-addresses": "Email Addresses",
"email-addresses": "عناوين البريد الإلكتروني",
"smtp-host-description": "The address of the SMTP server that handles your emails.",
"smtp-port-description": "The port your SMTP server uses for outgoing emails.",
"smtp-tls-description": "Enable TLS support for SMTP server",
"smtp-host": "SMTP Host",
"smtp-port": "SMTP Port",
"smtp-tls-description": "تفعيل دعم TLS من اجل خادم SMTP",
"smtp-host": "مضيف SMTP",
"smtp-port": "منفذ SMTP",
"smtp-username": "اسم المستخدم",
"smtp-password": "كلمة المرور",
"smtp-tls": "TLS support",
"send-from": "From",
"invitation-code": "Invitation Code",
"email-invite-register-subject": "__inviter__ sent you an invitation",
"smtp-tls": "دعم التي ال سي",
"send-from": "من",
"send-smtp-test": "Send a test email to yourself",
"invitation-code": "رمز الدعوة",
"email-invite-register-subject": "__inviter__ أرسل دعوة لك",
"email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"outgoing-webhooks": "Outgoing Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Unknown)",
"Wekan_version": "Wekan version",
"Node_version": "Node version",
"OS_Arch": "OS Arch",
"OS_Cpus": "OS CPU Count",
"OS_Freemem": "OS Free Memory",
"OS_Loadavg": "OS Load Average",
"OS_Platform": "OS Platform",
"OS_Release": "OS Release",
"OS_Totalmem": "OS Total Memory",
"OS_Type": "OS Type",
"OS_Uptime": "OS Uptime",
"hours": "hours",
"minutes": "minutes",
"seconds": "seconds",
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"email-smtp-test-subject": "SMTP Test Email From Wekan",
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "رمز الدعوة غير موجود",
"error-notAuthorized": "أنتَ لا تملك الصلاحيات لرؤية هذه الصفحة.",
"outgoing-webhooks": "الويبهوك الصادرة",
"outgoingWebhooksPopup-title": "الويبهوك الصادرة",
"new-outgoing-webhook": "ويبهوك جديدة ",
"no-name": "(غير معروف)",
"Wekan_version": "إصدار ويكان",
"Node_version": "إصدار النود",
"OS_Arch": "معمارية نظام التشغيل",
"OS_Cpus": "استهلاك وحدة المعالجة المركزية لنظام التشغيل",
"OS_Freemem": "الذاكرة الحرة لنظام التشغيل",
"OS_Loadavg": "متوسط حمل نظام التشغيل",
"OS_Platform": "منصة نظام التشغيل",
"OS_Release": "إصدار نظام التشغيل",
"OS_Totalmem": "الذاكرة الكلية لنظام التشغيل",
"OS_Type": "نوع نظام التشغيل",
"OS_Uptime": "مدة تشغيل نظام التشغيل",
"hours": "الساعات",
"minutes": "الدقائق",
"seconds": "الثواني",
"yes": "نعم",
"no": "لا",
"accounts": "الحسابات",
"accounts-allowEmailChange": "السماح بتغيير البريد الإلكتروني",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}
+43 -1
View File
@@ -12,6 +12,7 @@
"act-archivedBoard": "archived __board__",
"act-archivedCard": "archived __card__",
"act-archivedList": "archived __list__",
"act-archivedSwimlane": "archived __swimlane__",
"act-importBoard": "imported __board__",
"act-importCard": "imported __card__",
"act-importList": "imported __list__",
@@ -44,6 +45,7 @@
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-card": "Add Card",
"add-swimlane": "Add Swimlane",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"add-cover": "Ouzphenn ur golo",
@@ -54,6 +56,9 @@
"addMemberPopup-title": "Izili",
"admin": "Merour",
"admin-desc": "Can view and edit cards, remove members, and change settings for the board.",
"admin-announcement": "Announcement",
"admin-announcement-active": "Active System-Wide Announcement",
"admin-announcement-title": "Announcement from Administrator",
"all-boards": "All boards",
"and-n-other-card": "And __count__ other card",
"and-n-other-card_plural": "And __count__ other cards",
@@ -64,6 +69,7 @@
"archive-board": "Archive Board",
"archive-card": "Archive Card",
"archive-list": "Archive List",
"archive-swimlane": "Archive Swimlane",
"archive-selection": "Archive selection",
"archiveBoardPopup-title": "Archive Board?",
"archived-items": "Archived Items",
@@ -91,6 +97,9 @@
"boardChangeWatchPopup-title": "Change Watch",
"boardMenuPopup-title": "Board Menu",
"boards": "Boards",
"board-view": "Board View",
"board-view-swimlanes": "Swimlanes",
"board-view-lists": "Lists",
"bucket-example": "Like “Bucket List” for example",
"cancel": "Cancel",
"card-archived": "This card is archived.",
@@ -100,6 +109,7 @@
"card-delete-suggest-archive": "You can archive a card to remove it from the board and preserve the activity.",
"card-due": "Due",
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
@@ -149,6 +159,9 @@
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist",
"copy-card-link-to-clipboard": "Copy card link to clipboard",
"copyCardPopup-title": "Copy Card",
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
"create": "Krouiñ",
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
@@ -168,8 +181,11 @@
"edit": "Kemmañ",
"edit-avatar": "Change Avatar",
"edit-profile": "Edit Profile",
"edit-wip-limit": "Edit WIP Limit",
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
"editProfilePopup-title": "Edit Profile",
@@ -177,6 +193,7 @@
"email-enrollAccount-subject": "An account created for you on __siteName__",
"email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.",
"email-fail": "Sending email failed",
"email-fail-text": "Error trying to send email",
"email-invalid": "Invalid email",
"email-invite": "Invite via Email",
"email-invite-subject": "__inviter__ sent you an invitation",
@@ -186,6 +203,7 @@
"email-sent": "Email sent",
"email-verifyEmail-subject": "Verify your email address on __siteName__",
"email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.",
"enable-wip-limit": "Enable WIP Limit",
"error-board-doesNotExist": "This board does not exist",
"error-board-notAdmin": "You need to be admin of this board to do that",
"error-board-notAMember": "You need to be a member of this board to do that",
@@ -230,6 +248,8 @@
"info": "Version",
"initials": "Initials",
"invalid-date": "Invalid date",
"invalid-time": "Invalid time",
"invalid-user": "Invalid user",
"joined": "joined",
"just-invited": "You are just invited to this board",
"keyboard-shortcuts": "Keyboard shortcuts",
@@ -240,18 +260,22 @@
"language": "Yezh",
"last-admin-desc": "You can’t change roles because there must be at least one admin.",
"leave-board": "Leave Board",
"leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.",
"leaveBoardPopup-title": "Leave Board ?",
"link-card": "Link to this card",
"list-archive-cards": "Archive all cards in this list",
"list-archive-cards-pop": "This will remove all the cards in this list from the board. To view archived cards and bring them back to the board, click “Menu” > “Archived Items”.",
"list-move-cards": "Move all cards in this list",
"list-select-cards": "Select all cards in this list",
"listActionPopup-title": "List Actions",
"swimlaneActionPopup-title": "Swimlane Actions",
"listImportCardPopup-title": "Import a Trello card",
"listMorePopup-title": "Muioc’h",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
"list-delete-suggest-archive": "You can archive a list to remove it from the board and preserve the activity.",
"lists": "Lists",
"swimlanes": "Swimlanes",
"log-out": "Log Out",
"log-in": "Log In",
"loginPopup-title": "Log In",
@@ -271,6 +295,7 @@
"name": "Name",
"no-archived-cards": "No archived cards.",
"no-archived-lists": "No archived lists.",
"no-archived-swimlanes": "No archived swimlanes.",
"no-results": "No results",
"normal": "Normal",
"normal-desc": "Can view and edit cards. Can't change settings.",
@@ -307,6 +332,8 @@
"save": "Save",
"search": "Search",
"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",
"shortcut-assign-self": "Assign yourself to current card",
"shortcut-autocomplete-emoji": "Autocomplete emoji",
"shortcut-autocomplete-members": "Autocomplete members",
@@ -327,6 +354,11 @@
"team": "Team",
"this-board": "this board",
"this-card": "this card",
"spent-time-hours": "Spent time (hours)",
"overtime-hours": "Overtime (hours)",
"overtime": "Overtime",
"has-overtime-cards": "Has overtime cards",
"has-spenttime-cards": "Has spent time cards",
"time": "Time",
"title": "Title",
"tracking": "Tracking",
@@ -344,9 +376,13 @@
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "What do you want to do?",
"wipLimitErrorPopup-title": "Invalid WIP Limit",
"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": "Admin Panel",
"settings": "Settings",
"people": "People",
@@ -365,9 +401,12 @@
"smtp-password": "Ger-tremen",
"smtp-tls": "TLS support",
"send-from": "From",
"send-smtp-test": "Send a test email to yourself",
"invitation-code": "Invitation Code",
"email-invite-register-subject": "__inviter__ sent you an invitation",
"email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan 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 From Wekan",
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"outgoing-webhooks": "Outgoing Webhooks",
@@ -391,5 +430,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}
+46 -4
View File
@@ -2,8 +2,8 @@
"accept": "Accepta",
"act-activity-notify": "[Wekan] Notificació d'activitat",
"act-addAttachment": "adjuntat __attachment__ a __card__",
"act-addChecklist": "added checklist __checklist__ to __card__",
"act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__",
"act-addChecklist": "afegida la checklist _checklist__ a __card__",
"act-addChecklistItem": "afegit __checklistItem__ a la checklist __checklist__ on __card__",
"act-addComment": "comentat a __card__: __comment__",
"act-createBoard": "creat __board__",
"act-createCard": "afegit/da __card__ a __list__",
@@ -12,6 +12,7 @@
"act-archivedBoard": "__board__ arxivat",
"act-archivedCard": "__card__ arxivat/da",
"act-archivedList": "__list__ arxivat/da",
"act-archivedSwimlane": "archived __swimlane__",
"act-importBoard": "__board__ importat",
"act-importCard": "__card__ importat",
"act-importList": "__list__ importat",
@@ -44,6 +45,7 @@
"add-attachment": "Afegeix adjunt",
"add-board": "Afegeix Tauler",
"add-card": "Afegeix fitxa",
"add-swimlane": "Add Swimlane",
"add-checklist": "Afegeix checklist",
"add-checklist-item": "Afegeix un ítem",
"add-cover": "Afegeix coberta",
@@ -54,6 +56,9 @@
"addMemberPopup-title": "Membres",
"admin": "Administrador",
"admin-desc": "Pots veure i editar fitxes, eliminar membres, i canviar la configuració del tauler",
"admin-announcement": "Announcement",
"admin-announcement-active": "Active System-Wide Announcement",
"admin-announcement-title": "Announcement from Administrator",
"all-boards": "Tots els taulers",
"and-n-other-card": "And __count__ other card",
"and-n-other-card_plural": "And __count__ other cards",
@@ -64,6 +69,7 @@
"archive-board": "Arxiva tauler",
"archive-card": "Arxiva fitxa",
"archive-list": "Arxiva llista",
"archive-swimlane": "Archive Swimlane",
"archive-selection": "Arxiva selecció",
"archiveBoardPopup-title": "Arxivar el tauler?",
"archived-items": "Elements arxivats",
@@ -91,6 +97,9 @@
"boardChangeWatchPopup-title": "Canvia seguiment",
"boardMenuPopup-title": "Menú del tauler",
"boards": "Taulers",
"board-view": "Board View",
"board-view-swimlanes": "Swimlanes",
"board-view-lists": "Llistes",
"bucket-example": "Igual que “Bucket List”, per exemple",
"cancel": "Cancel·la",
"card-archived": "Aquesta fitxa està arxivada.",
@@ -100,6 +109,7 @@
"card-delete-suggest-archive": "Podeu arxivar una fitxa per extreure-la del tauler i preservar l'activitat.",
"card-due": "Finalitza",
"card-due-on": "Finalitza a",
"card-spent": "Spent Time",
"card-edit-attachments": "Edita arxius adjunts",
"card-edit-labels": "Edita etiquetes",
"card-edit-members": "Edita membres",
@@ -149,6 +159,9 @@
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist",
"copy-card-link-to-clipboard": "Copia l'enllaç de la ftixa al porta-retalls",
"copyCardPopup-title": "Copia la fitxa",
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
"create": "Crea",
"createBoardPopup-title": "Crea tauler",
"chooseBoardSourcePopup-title": "Importa Tauler",
@@ -168,8 +181,11 @@
"edit": "Edita",
"edit-avatar": "Canvia Avatar",
"edit-profile": "Edita el teu Perfil",
"edit-wip-limit": "Edit WIP Limit",
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Canvia data d'inici",
"editCardDueDatePopup-title": "Canvia data de finalització",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Canvia etiqueta",
"editNotificationPopup-title": "Edita la notificació",
"editProfilePopup-title": "Edita teu Perfil",
@@ -177,6 +193,7 @@
"email-enrollAccount-subject": "An account created for you on __siteName__",
"email-enrollAccount-text": "Hola __user__,\n\nPer començar a utilitzar el servei, segueix l'enllaç següent.\n\n__url__\n\nGràcies.",
"email-fail": "Error enviant el correu",
"email-fail-text": "Error trying to send email",
"email-invalid": "Adreça de correu invàlida",
"email-invite": "Convida mitjançant correu electrònic",
"email-invite-subject": "__inviter__ t'ha convidat",
@@ -186,6 +203,7 @@
"email-sent": "Correu enviat",
"email-verifyEmail-subject": "Verify your email address on __siteName__",
"email-verifyEmail-text": "Hola __user__, \n\n per verificar el teu correu, segueix l'enllaç següent.\n\n __url__\n\n Gràcies.",
"enable-wip-limit": "Enable WIP Limit",
"error-board-doesNotExist": "Aquest tauler no existeix",
"error-board-notAdmin": "Necessites ser administrador d'aquest tauler per dur a lloc aquest acció",
"error-board-notAMember": "Necessites ser membre d'aquest tauler per dur a terme aquesta acció",
@@ -216,7 +234,7 @@
"import-board-c": "Importa tauler",
"import-board-title-trello": "Importa tauler des de Trello",
"import-board-title-wekan": "I",
"import-sandstorm-warning": "Imported board will delete all existing data on board and replace it with imported board.",
"import-sandstorm-warning": "Estau segur que voleu esborrar aquesta checklist?",
"from-trello": "Des de Trello",
"from-wekan": "Des de Wekan",
"import-board-instruction-trello": "En el teu tauler Trello, ves a 'Menú', 'Més'.' Imprimir i Exportar', 'Exportar JSON', i copia el text resultant.",
@@ -230,6 +248,8 @@
"info": "Versió",
"initials": "Inicials",
"invalid-date": "Data invàlida",
"invalid-time": "Temps Invàlid",
"invalid-user": "Invalid user",
"joined": "s'ha unit",
"just-invited": "Has estat convidat a aquest tauler",
"keyboard-shortcuts": "Dreceres de teclat",
@@ -240,18 +260,22 @@
"language": "Idioma",
"last-admin-desc": "No podeu canviar rols perquè ha d'haver-hi almenys un administrador.",
"leave-board": "Abandona tauler",
"leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.",
"leaveBoardPopup-title": "Leave Board ?",
"link-card": "Enllaç a aquesta fitxa",
"list-archive-cards": "Arxiva totes les fitxes d'aquesta llista",
"list-archive-cards-pop": "Això eliminarà totes les fitxes d'aquesta llista del tauler. Per veure les fitxes arxivades i recuperar-les en el tauler, feu clic a \" Menú \"/ \" Articles Arxivat \".",
"list-move-cards": "Mou totes les fitxes d'aquesta llista",
"list-select-cards": "Selecciona totes les fitxes d'aquesta llista",
"listActionPopup-title": "Accions de la llista",
"swimlaneActionPopup-title": "Swimlane Actions",
"listImportCardPopup-title": "importa una fitxa de Trello",
"listMorePopup-title": "Més",
"link-list": "Enllaça a aquesta llista",
"list-delete-pop": "Totes les accions seran esborrades de la llista d'activitats i no serà possible recuperar la llista",
"list-delete-suggest-archive": "Pots arxivar una llista per eliminar-la del tauler i preservar la seva activitat",
"lists": "Llistes",
"swimlanes": "Swimlanes",
"log-out": "Finalitza la sessió",
"log-in": "Ingresa",
"loginPopup-title": "Inicia sessió",
@@ -271,6 +295,7 @@
"name": "Nom",
"no-archived-cards": "No hi ha fitxes arxivades.",
"no-archived-lists": "No hi ha llistes arxivades.",
"no-archived-swimlanes": "No archived swimlanes.",
"no-results": "Sense resultats",
"normal": "Normal",
"normal-desc": "Podeu veure i editar fitxes. No podeu canviar la configuració.",
@@ -307,6 +332,8 @@
"save": "Desa",
"search": "Cerca",
"select-color": "Selecciona color",
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
"setWipLimitPopup-title": "Set WIP Limit",
"shortcut-assign-self": "Assigna't la ftixa actual",
"shortcut-autocomplete-emoji": "Autocompleta emoji",
"shortcut-autocomplete-members": "Autocompleta membres",
@@ -327,6 +354,11 @@
"team": "Equip",
"this-board": "aquest tauler",
"this-card": "aquesta fitxa",
"spent-time-hours": "Spent time (hours)",
"overtime-hours": "Overtime (hours)",
"overtime": "Overtime",
"has-overtime-cards": "Has overtime cards",
"has-spenttime-cards": "Has spent time cards",
"time": "Hora",
"title": "Títol",
"tracking": "En seguiment",
@@ -344,9 +376,13 @@
"watching": "En observació",
"watching-info": "Seràs notificat de cada canvi en aquest tauler",
"welcome-board": "Tauler de benvinguda",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Bàsics",
"welcome-list2": "Avançades",
"what-to-do": "Què vols fer?",
"wipLimitErrorPopup-title": "Invalid WIP Limit",
"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": "Tauler d'administració",
"settings": "Configuració",
"people": "Persones",
@@ -365,9 +401,12 @@
"smtp-password": "Contrasenya",
"smtp-tls": "Suport TLS",
"send-from": "De",
"send-smtp-test": "Send a test email to yourself",
"invitation-code": "Codi d'invitació",
"email-invite-register-subject": "__inviter__ t'ha convidat",
"email-invite-register-text": " __user__,\n\n __inviter__ us ha convidat a col·laborar a Wekan.\n\n Clicau l'enllaç següent per acceptar l'invitació:\n __url__\n\n El vostre codi d'invitació és: __icode__\n\n Gràcies",
"email-smtp-test-subject": "SMTP Test Email From Wekan",
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "El codi d'invitació no existeix",
"error-notAuthorized": "No estau autoritzats per veure aquesta pàgina",
"outgoing-webhooks": "Outgoing Webhooks",
@@ -391,5 +430,8 @@
"yes": "Si",
"no": "No",
"accounts": "Comptes",
"accounts-allowEmailChange": "Permet modificar correu electrònic"
"accounts-allowEmailChange": "Permet modificar correu electrònic",
"createdAt": "Creat ",
"verified": "Verificat",
"active": "Actiu"
}
+43 -1
View File
@@ -12,6 +12,7 @@
"act-archivedBoard": "archivace __board__",
"act-archivedCard": "archivace __card__",
"act-archivedList": "archivace __list__",
"act-archivedSwimlane": "archived __swimlane__",
"act-importBoard": "import __board__",
"act-importCard": "import __card__",
"act-importList": "import __list__",
@@ -44,6 +45,7 @@
"add-attachment": "Přidat přílohu",
"add-board": "Přidat tablo",
"add-card": "Přidat kartu",
"add-swimlane": "Add Swimlane",
"add-checklist": "Přidat zaškrtávací seznam",
"add-checklist-item": "Přidat položku do zaškrtávacího seznamu",
"add-cover": "Přidat obal",
@@ -54,6 +56,9 @@
"addMemberPopup-title": "Členové",
"admin": "Administrátor",
"admin-desc": "Může zobrazovat a upravovat karty, mazat členy a měnit nastavení tabla.",
"admin-announcement": "Announcement",
"admin-announcement-active": "Active System-Wide Announcement",
"admin-announcement-title": "Announcement from Administrator",
"all-boards": "Všechna tabla",
"and-n-other-card": "A __count__ další karta(y)",
"and-n-other-card_plural": "A __count__ dalších karet",
@@ -64,6 +69,7 @@
"archive-board": "Archivovat tablo",
"archive-card": "Archivovat kartu",
"archive-list": "Archive List",
"archive-swimlane": "Archive Swimlane",
"archive-selection": "Archivovat výběr",
"archiveBoardPopup-title": "Archivovat tablo?",
"archived-items": "Archivované položky",
@@ -91,6 +97,9 @@
"boardChangeWatchPopup-title": "Change Watch",
"boardMenuPopup-title": "Menu tabla",
"boards": "Tabla",
"board-view": "Board View",
"board-view-swimlanes": "Swimlanes",
"board-view-lists": "Seznamy",
"bucket-example": "Například \"Než mě odvedou\"",
"cancel": "Zrušit",
"card-archived": "Tato karta je archivována.",
@@ -100,6 +109,7 @@
"card-delete-suggest-archive": "Kartu můžete archivovat a tím ji odstranit z tabla a přitom zachovat aktivity.",
"card-due": "Termín",
"card-due-on": "Do",
"card-spent": "Spent Time",
"card-edit-attachments": "Upravit přílohy",
"card-edit-labels": "Upravit štítky",
"card-edit-members": "Upravit členy",
@@ -149,6 +159,9 @@
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist",
"copy-card-link-to-clipboard": "Kopírovat adresu karty do mezipaměti",
"copyCardPopup-title": "Kopírovat kartu",
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
"create": "Vytvořit",
"createBoardPopup-title": "Vytvořit tablo",
"chooseBoardSourcePopup-title": "Importovat tablo",
@@ -168,8 +181,11 @@
"edit": "Upravit",
"edit-avatar": "Změnit avatar",
"edit-profile": "Upravit profil",
"edit-wip-limit": "Edit WIP Limit",
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Změnit datum startu úkolu",
"editCardDueDatePopup-title": "Změnit datum dokončení úkolu",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Změnit štítek",
"editNotificationPopup-title": "Změnit notifikace",
"editProfilePopup-title": "Upravit profil",
@@ -177,6 +193,7 @@
"email-enrollAccount-subject": "Byl vytvořen účet na __siteName__",
"email-enrollAccount-text": "Ahoj __user__,\n\nMůžeš začít používat službu kliknutím na odkaz níže.\n\n__url__\n\nDěkujeme.",
"email-fail": "Odeslání emailu selhalo",
"email-fail-text": "Error trying to send email",
"email-invalid": "Neplatný email",
"email-invite": "Pozvat pomocí emailu",
"email-invite-subject": "__inviter__ odeslal pozvánku",
@@ -186,6 +203,7 @@
"email-sent": "Email byl odeslán",
"email-verifyEmail-subject": "Ověř svou emailovou adresu na",
"email-verifyEmail-text": "Ahoj __user__,\n\nPro ověření emailové adresy klikni na odkaz níže.\n\n__url__\n\nDěkujeme.",
"enable-wip-limit": "Enable WIP Limit",
"error-board-doesNotExist": "Toto tablo neexistuje",
"error-board-notAdmin": "K provedení změny musíš být administrátor tohoto tabla",
"error-board-notAMember": "K provedení změny musíš být členem tohoto tabla",
@@ -230,6 +248,8 @@
"info": "Version",
"initials": "Iniciály",
"invalid-date": "Invalid date",
"invalid-time": "Invalid time",
"invalid-user": "Invalid user",
"joined": "spojeno",
"just-invited": "Právě jsi byl pozván(a) do tohoto tabla",
"keyboard-shortcuts": "Klávesové zkratky",
@@ -240,18 +260,22 @@
"language": "Jazyk",
"last-admin-desc": "Nelze změnit role, protože musí existovat alespoň jeden administrátor.",
"leave-board": "Opustit tablo",
"leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.",
"leaveBoardPopup-title": "Leave Board ?",
"link-card": "Odkázat na tuto kartu",
"list-archive-cards": "Archivovat všechny karty na tomto seznamu",
"list-archive-cards-pop": "Toto odstraní z tabla všechny karty z tohoto seznamu. Pro zobrazení archivovaných karet a jejich opětovné obnovení, klikni v \"Menu\" > \"Archivované položky\".",
"list-move-cards": "Přesunout všechny karty v tomto seznamu",
"list-select-cards": "Vybrat všechny karty v tomto seznamu",
"listActionPopup-title": "Vypsat akce",
"swimlaneActionPopup-title": "Swimlane Actions",
"listImportCardPopup-title": "Importovat Trello kartu",
"listMorePopup-title": "Více",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
"list-delete-suggest-archive": "You can archive a list to remove it from the board and preserve the activity.",
"lists": "Seznamy",
"swimlanes": "Swimlanes",
"log-out": "Odhlásit",
"log-in": "Přihlásit",
"loginPopup-title": "Přihlásit",
@@ -271,6 +295,7 @@
"name": "Jméno",
"no-archived-cards": "Žádné archivované karty.",
"no-archived-lists": "Žádné archivované seznamy.",
"no-archived-swimlanes": "No archived swimlanes.",
"no-results": "Žádné výsledky",
"normal": "Normální",
"normal-desc": "Může zobrazovat a upravovat karty. Nemůže měnit nastavení.",
@@ -307,6 +332,8 @@
"save": "Uložit",
"search": "Hledat",
"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",
"shortcut-assign-self": "Přiřadit sebe k aktuální kartě",
"shortcut-autocomplete-emoji": "Autocomplete emoji",
"shortcut-autocomplete-members": "Automatický výběr uživatel",
@@ -327,6 +354,11 @@
"team": "Tým",
"this-board": "toto tablo",
"this-card": "tuto kartu",
"spent-time-hours": "Spent time (hours)",
"overtime-hours": "Overtime (hours)",
"overtime": "Overtime",
"has-overtime-cards": "Has overtime cards",
"has-spenttime-cards": "Has spent time cards",
"time": "Time",
"title": "Název",
"tracking": "Tracking",
@@ -344,9 +376,13 @@
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "Co chcete dělat?",
"wipLimitErrorPopup-title": "Invalid WIP Limit",
"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": "Admin Panel",
"settings": "Nastavení",
"people": "Lidé",
@@ -365,9 +401,12 @@
"smtp-password": "Heslo",
"smtp-tls": "TLS support",
"send-from": "Od",
"send-smtp-test": "Send a test email to yourself",
"invitation-code": "Invitation Code",
"email-invite-register-subject": "__inviter__ odeslal pozvánku",
"email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan 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 From Wekan",
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "Nejste autorizován k prohlížení této stránky.",
"outgoing-webhooks": "Outgoing Webhooks",
@@ -391,5 +430,8 @@
"yes": "Ano",
"no": "Ne",
"accounts": "Účty",
"accounts-allowEmailChange": "Povolit změnu Emailu"
"accounts-allowEmailChange": "Povolit změnu Emailu",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}
+60 -18
View File
@@ -12,6 +12,7 @@
"act-archivedBoard": "hat __board__ archiviert",
"act-archivedCard": "hat __card__ archiviert",
"act-archivedList": "hat __list__ archiviert",
"act-archivedSwimlane": "__swimlane__ wurde archiviert",
"act-importBoard": "hat __board__ importiert",
"act-importCard": "hat __card__ importiert",
"act-importList": "hat __list__ importiert",
@@ -44,6 +45,7 @@
"add-attachment": "Datei anhängen",
"add-board": "neues Board",
"add-card": "Karte hinzufügen",
"add-swimlane": "Swimlane hinzufügen",
"add-checklist": "Checkliste hinzufügen",
"add-checklist-item": "Punkt zu einer Checkliste hinzufügen",
"add-cover": "Cover hinzufügen",
@@ -53,7 +55,10 @@
"added": "Hinzugefügt",
"addMemberPopup-title": "Mitglieder",
"admin": "Admin",
"admin-desc": "Kann Karten anschauen und bearbeiten, Mitglieder entfernen und Boardeinstellungen ändern.",
"admin-desc": "Kann Karten anzeigen und bearbeiten, Mitglieder entfernen und Boardeinstellungen ändern.",
"admin-announcement": "Ankündigung",
"admin-announcement-active": "Aktive, systemweite Ankündigungen",
"admin-announcement-title": "Ankündigung des Administrators",
"all-boards": "Alle Boards",
"and-n-other-card": "und eine andere Karte",
"and-n-other-card_plural": "und __count__ andere Karten",
@@ -64,12 +69,13 @@
"archive-board": "Board archivieren",
"archive-card": "Karte archivieren",
"archive-list": "Liste archivieren",
"archive-swimlane": "Swimlane archivieren",
"archive-selection": "Auswahl archivieren",
"archiveBoardPopup-title": "Board archivieren?",
"archived-items": "Archivierte Einträge",
"archived-boards": "Achivierte Boards",
"restore-board": "Board wiederherstellen",
"no-archived-boards": "keine archivierten Boards",
"no-archived-boards": "Keine archivierten Boards",
"archives": "Archive",
"assign-member": "Mitglied zuweisen",
"attached": "angehängt",
@@ -85,21 +91,25 @@
"board-not-found": "Board nicht gefunden",
"board-private-info": "Dieses Board wird <strong>privat</strong> sein.",
"board-public-info": "Dieses Board wird <strong>öffentlich</strong> sein.",
"boardChangeColorPopup-title": "Boardfarbe ändern",
"boardChangeColorPopup-title": "Farbe des Boards ändern",
"boardChangeTitlePopup-title": "Board umbenennen",
"boardChangeVisibilityPopup-title": "Sichtbarkeit ändern",
"boardChangeWatchPopup-title": "Beobachtung ändern",
"boardMenuPopup-title": "Boardmenü",
"boards": "Boards",
"board-view": "Boardansicht",
"board-view-swimlanes": "Swimlanes",
"board-view-lists": "Listen",
"bucket-example": "z.B. \"Löffelliste\"",
"cancel": "Abbrechen",
"card-archived": "Diese Karte wurde archiviert.",
"card-comments-title": "Diese Karte hat %s Kommentare.",
"card-comments-title": "Diese Karte hat %s Kommentar(e).",
"card-delete-notice": "Löschen ist unwiderruflich. Alle Aktionen die dieser Karte zugeordnet sind werden ebenfalls gelöscht.",
"card-delete-pop": "Alle Aktionen werden vom Aktivitätsfeed entfernt und die Karte kann nicht mehr geöffnet werden. Das Löschen kann nicht widerrufen werden!",
"card-delete-suggest-archive": "Sie können eine Karte archivieren, um sie von dem Board zu entfernen und die Aktivitäten zu behalten.",
"card-delete-suggest-archive": "Sie können eine Karte archivieren, um sie vom Board zu entfernen und die Aktivitäten zu behalten.",
"card-due": "Ende",
"card-due-on": "Ende am",
"card-spent": "Aufgewendete Zeit",
"card-edit-attachments": "Anhänge ändern",
"card-edit-labels": "Labels ändern",
"card-edit-members": "Mitglieder ändern",
@@ -125,8 +135,8 @@
"changePermissionsPopup-title": "Berechtigungen ändern",
"changeSettingsPopup-title": "Einstellungen ändern",
"checklists": "Checklisten",
"click-to-star": "Klicken um dem Board einen Stern zu geben.",
"click-to-unstar": "Klicken um den Stern von dem Board zu entfernen.",
"click-to-star": "Klicken Sie, um das Board mit einem Stern zu markieren.",
"click-to-unstar": "Klicken Sie, um den Stern vom Board zu entfernen.",
"clipboard": "Zwischenablage oder Drag & Drop",
"close": "Schließen",
"close-board": "Board schließen",
@@ -146,9 +156,12 @@
"comment-only": "Nur kommentierbar",
"comment-only-desc": "Kann Karten nur Kommentieren",
"computer": "Computer",
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist",
"copy-card-link-to-clipboard": "Kopiere die Karte in die Zwischenablage",
"confirm-checklist-delete-dialog": "Sind Sie sicher, dass Sie die Checkliste löschen möchten?",
"copy-card-link-to-clipboard": "Kopiere Link zur Karte in die Zwischenablage",
"copyCardPopup-title": "Karte kopieren",
"copyChecklistToManyCardsPopup-title": "Checklistenvorlage in mehrere Karten kopieren",
"copyChecklistToManyCardsPopup-instructions": "Titel und Beschreibungen der Zielkarten im folgenden JSON-Format",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"Titel der ersten Karte\", \"description\":\"Beschreibung der ersten Karte\"}, {\"title\":\"Titel der zweiten Karte\",\"description\":\"Beschreibung der zweiten Karte\"},{\"title\":\"Titel der letzten Karte\",\"description\":\"Beschreibung der letzten Karte\"} ]",
"create": "Erstellen",
"createBoardPopup-title": "Board erstellen",
"chooseBoardSourcePopup-title": "Board importieren",
@@ -168,8 +181,11 @@
"edit": "Bearbeiten",
"edit-avatar": "Profilbild ändern",
"edit-profile": "Profil ändern",
"edit-wip-limit": "WIP-Limit bearbeiten",
"soft-wip-limit": "Soft WIP-Limit",
"editCardStartDatePopup-title": "Startdatum ändern",
"editCardDueDatePopup-title": "Enddatum ändern",
"editCardSpentTimePopup-title": "Aufgewendete Zeit ändern",
"editLabelPopup-title": "Label ändern",
"editNotificationPopup-title": "Benachrichtigung ändern",
"editProfilePopup-title": "Profil ändern",
@@ -177,6 +193,7 @@
"email-enrollAccount-subject": "Ihr Benutzerkonto auf __siteName__ wurde erstellt",
"email-enrollAccount-text": "Hallo __user__,\n\num den Dienst nutzen zu können, klicken Sie bitte auf folgenden Link:\n\n__url__\n\nDanke.",
"email-fail": "Senden der E-Mail fehlgeschlagen",
"email-fail-text": "Fehler beim Senden des E-Mails",
"email-invalid": "Ungültige E-Mail-Adresse",
"email-invite": "via E-Mail einladen",
"email-invite-subject": "__inviter__ hat Ihnen eine Einladung geschickt",
@@ -186,6 +203,7 @@
"email-sent": "E-Mail gesendet",
"email-verifyEmail-subject": "Bestätigen Sie ihre E-Mail-Adresse auf __siteName__",
"email-verifyEmail-text": "Hallo __user__,\n\num ihre E-Mail-Adresse zu bestätigen, klicken Sie bitte auf folgenden Link:\n\n__url__\n\nDanke.",
"enable-wip-limit": "WIP-Limit einschalten",
"error-board-doesNotExist": "Dieses Board existiert nicht",
"error-board-notAdmin": "Um das zu tun, müssen Sie Administrator dieses Boards sein",
"error-board-notAMember": "Um das zu tun, müssen Sie Mitglied dieses Boards sein",
@@ -204,7 +222,7 @@
"filter-no-label": "Kein Label",
"filter-no-member": "Kein Mitglied",
"filter-on": "Filter ist aktiv",
"filter-on-desc": "Sie filtern die Karten in diesem Board. Klicken um die Filter zu bearbeiten.",
"filter-on-desc": "Sie filtern die Karten in diesem Board. Klicken Sie, um den Filter zu bearbeiten.",
"filter-to-selection": "Ergebnisse auswählen",
"fullname": "Vollständiger Name",
"header-logo-title": "Zurück zur Board Seite.",
@@ -223,13 +241,15 @@
"import-board-instruction-wekan": "Gehen Sie in Ihrem Wekan board auf 'Menü', und dann auf 'Board exportieren'. Kopieren Sie anschließend den Text aus der heruntergeladenen Datei.",
"import-json-placeholder": "Fügen Sie die korrekten JSON-Daten hier ein",
"import-map-members": "Mitglieder zuordnen",
"import-members-map": "Das importierte Board hat einige Mitglieder. Bitte ordnen Sie die Mitglieder, die importiert werden sollen, Wekan-Nutzern zu",
"import-members-map": "Das importierte Board hat Mitglieder. Bitte ordnen Sie jene, die importiert werden sollen, vorhandenen Wekan-Nutzern zu",
"import-show-user-mapping": "Mitgliederzuordnung überprüfen",
"import-user-select": "Wählen Sie den Wekan-Nutzer aus, der dieses Mitglied sein soll",
"importMapMembersAddPopup-title": "Wekan-Nutzer auswählen",
"info": "Version",
"initials": "Initialen",
"invalid-date": "Ungültiges Datum",
"invalid-time": "Ungültige Zeitangabe",
"invalid-user": "Ungültiger Benutzer",
"joined": "beigetreten",
"just-invited": "Sie wurden soeben zu diesem Board eingeladen",
"keyboard-shortcuts": "Tastaturkürzel",
@@ -240,18 +260,22 @@
"language": "Sprache",
"last-admin-desc": "Sie können keine Rollen ändern, weil es mindestens einen Administrator geben muss.",
"leave-board": "Board verlassen",
"leave-board-pop": "Sind Sie sicher, dass Sie __boardTitle__ verlassen möchten? Sie werden von allen Karten in diesem Board entfernt.",
"leaveBoardPopup-title": "Board verlassen?",
"link-card": "Link zu dieser Karte",
"list-archive-cards": "Alle Karten in dieser Liste archivieren",
"list-archive-cards-pop": "Alle Karten von dieser Liste werden vom Board entfernt. Um archivierte Karten anzuzeigen und wiederherzustellen, klicken Sie auf \"Menü\" > \"Archivierte Einträge\".",
"list-move-cards": "Alle Karten in dieser Liste verschieben",
"list-select-cards": "Alle Karten in dieser Liste auswählen",
"listActionPopup-title": "Listenaktionen",
"swimlaneActionPopup-title": "Swimlaneaktionen",
"listImportCardPopup-title": "Eine Trello-Karte importieren",
"listMorePopup-title": "Mehr",
"link-list": "Link zu dieser Liste",
"list-delete-pop": "Alle Aktionen werden aus dem Verlauf gelöscht. Die Liste kann nicht wiederhergestellt werden.",
"list-delete-suggest-archive": "Listen können archiviert werden um sie aus dem Board zu entfernen und den Verlauf zu erhalten.",
"list-delete-suggest-archive": "Listen können archiviert werden, um sie aus dem Board zu entfernen und den Verlauf zu erhalten.",
"lists": "Listen",
"swimlanes": "Swimlanes",
"log-out": "Ausloggen",
"log-in": "Einloggen",
"loginPopup-title": "Einloggen",
@@ -260,22 +284,23 @@
"menu": "Menü",
"move-selection": "Auswahl verschieben",
"moveCardPopup-title": "Karte verschieben",
"moveCardToBottom-title": "Zum Ende verschieben",
"moveCardToBottom-title": "Ans Ende verschieben",
"moveCardToTop-title": "Zum Anfang verschieben",
"moveSelectionPopup-title": "Auswahl verschieben",
"multi-selection": "Mehrfachauswahl",
"multi-selection-on": "Mehrfachauswahl ist aktiv",
"muted": "Stumm",
"muted-info": "Sie werden über keine Änderung in diesem Board benachrichtigt",
"muted-info": "Sie werden nicht über Änderungen auf diesem Board benachrichtigt",
"my-boards": "Meine Boards",
"name": "Name",
"no-archived-cards": "Keine archivierten Karten.",
"no-archived-lists": "Keine archivierten Listen.",
"no-archived-swimlanes": "Keine archivierten Swimlanes",
"no-results": "Keine Ergebnisse",
"normal": "Normal",
"normal-desc": "Kann Karten anschauen und bearbeiten, aber keine Einstellungen ändern.",
"normal-desc": "Kann Karten anzeigen und bearbeiten, aber keine Einstellungen ändern.",
"not-accepted-yet": "Die Einladung wurde noch nicht angenommen",
"notify-participate": "Benachrichtigungen über alle Karten erhalten, bei denen Sie als Ersteller oder Mitglied teilnehmen",
"notify-participate": "Benachrichtigungen zu allen Karten erhalten, an denen Sie teilnehmen",
"notify-watch": "Benachrichtigungen über alle Boards, Listen oder Karten erhalten, die Sie beobachten",
"optional": "optional",
"or": "oder",
@@ -307,6 +332,8 @@
"save": "Speichern",
"search": "Suchen",
"select-color": "Farbe auswählen",
"set-wip-limit-value": "Setzen Sie ein Limit für die maximale Anzahl von Aufgaben in dieser Liste",
"setWipLimitPopup-title": "WIP-Limit setzen",
"shortcut-assign-self": "Fügen Sie sich zur aktuellen Karte hinzu",
"shortcut-autocomplete-emoji": "Emojis vervollständigen",
"shortcut-autocomplete-members": "Mitglieder vervollständigen",
@@ -320,13 +347,18 @@
"sidebar-open": "Seitenleiste öffnen",
"sidebar-close": "Seitenleiste schließen",
"signupPopup-title": "Benutzerkonto erstellen",
"star-board-title": "Klicken um das Board mit einem Stern zu markieren. Es erscheint dann oben in ihrer Boardliste.",
"star-board-title": "Klicken Sie, um das Board mit einem Stern zu markieren. Es erscheint dann oben in ihrer Boardliste.",
"starred-boards": "Markierte Boards",
"starred-boards-description": "Markierte Boards erscheinen oben in ihrer Boardliste.",
"subscribe": "Abonnieren",
"team": "Team",
"this-board": "dieses Board",
"this-card": "diese Karte",
"spent-time-hours": "Aufgewendete Zeit (Stunden)",
"overtime-hours": "Überzeit (Stunden)",
"overtime": "Überzeit",
"has-overtime-cards": "Hat Karten mit Überzeit",
"has-spenttime-cards": "Hat Karten mit aufgewendeten Zeiten",
"time": "Zeit",
"title": "Titel",
"tracking": "Folgen",
@@ -344,9 +376,13 @@
"watching": "Beobachten",
"watching-info": "Sie werden über alle Änderungen in diesem Board benachrichtigt",
"welcome-board": "Willkommen-Board",
"welcome-swimlane": "Meilenstein 1",
"welcome-list1": "Grundlagen",
"welcome-list2": "Fortgeschritten",
"what-to-do": "Was wollen Sie tun?",
"wipLimitErrorPopup-title": "Ungültiges WIP-Limit",
"wipLimitErrorPopup-dialog-pt1": "Die Anzahl von Aufgaben in dieser Liste ist größer als das von Ihnen definierte WIP-Limit.",
"wipLimitErrorPopup-dialog-pt2": "Bitte verschieben Sie einige Aufgaben aus dieser Liste oder setzen Sie ein grösseres WIP-Limit.",
"admin-panel": "Administration",
"settings": "Einstellungen",
"people": "Nutzer",
@@ -365,9 +401,12 @@
"smtp-password": "Passwort",
"smtp-tls": "TLS Unterstützung",
"send-from": "Absender",
"send-smtp-test": "Test-E-Mail an sich selbst schicken",
"invitation-code": "Einladungscode",
"email-invite-register-subject": "__inviter__ hat Ihnen eine Einladung geschickt",
"email-invite-register-text": "Hallo __user__,\n\n__inviter__ hat Sie für Ihre Zusammenarbeit zu Wekan eingeladen.\n\nBitte klicken Sie auf folgenden Link:\n__url__\n\nIhr Einladungscode lautet: __icode__\n\nDanke.",
"email-smtp-test-subject": "SMTP-Test-E-Mail von Wekan",
"email-smtp-test-text": "Sie haben erfolgreich eine E-Mail versandt",
"error-invitation-code-not-exist": "Ungültiger Einladungscode",
"error-notAuthorized": "Sie sind nicht berechtigt diese Seite zu sehen.",
"outgoing-webhooks": "Ausgehende Webhooks",
@@ -391,5 +430,8 @@
"yes": "Ja",
"no": "Nein",
"accounts": "Konten",
"accounts-allowEmailChange": "Zulassen E-Mail ändern"
"accounts-allowEmailChange": "Ändern der E-Mailadresse zulassen",
"createdAt": "Erstellt am",
"verified": "Geprüft",
"active": "Aktiv"
}
+437
View File
@@ -0,0 +1,437 @@
{
"accept": "Accept",
"act-activity-notify": "[Wekan] Activity Notification",
"act-addAttachment": "attached __attachment__ to __card__",
"act-addChecklist": "added checklist __checklist__ to __card__",
"act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__",
"act-addComment": "commented on __card__: __comment__",
"act-createBoard": "created __board__",
"act-createCard": "added __card__ to __list__",
"act-createList": "added __list__ to __board__",
"act-addBoardMember": "added __member__ to __board__",
"act-archivedBoard": "archived __board__",
"act-archivedCard": "archived __card__",
"act-archivedList": "archived __list__",
"act-archivedSwimlane": "archived __swimlane__",
"act-importBoard": "imported __board__",
"act-importCard": "imported __card__",
"act-importList": "imported __list__",
"act-joinMember": "added __member__ to __card__",
"act-moveCard": "moved __card__ from __oldList__ to __list__",
"act-removeBoardMember": "removed __member__ from __board__",
"act-restoredCard": "restored __card__ to __board__",
"act-unjoinMember": "removed __member__ from __card__",
"act-withBoardTitle": "[Wekan] __board__",
"act-withCardTitle": "[__board__] __card__",
"actions": "Actions",
"activities": "Activities",
"activity": "Activity",
"activity-added": "added %s to %s",
"activity-archived": "archived %s",
"activity-attached": "attached %s to %s",
"activity-created": "created %s",
"activity-excluded": "excluded %s from %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
"activity-joined": "joined %s",
"activity-moved": "moved %s from %s to %s",
"activity-on": "on %s",
"activity-removed": "removed %s from %s",
"activity-sent": "sent %s to %s",
"activity-unjoined": "unjoined %s",
"activity-checklist-added": "added checklist to %s",
"activity-checklist-item-added": "added checklist item to '%s' in %s",
"add": "Προσθήκη",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-card": "Προσθήκη Κάρτας",
"add-swimlane": "Add Swimlane",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"add-cover": "Add Cover",
"add-label": "Προσθήκη Ετικέτας",
"add-list": "Προσθήκη Λίστας",
"add-members": "Προσθήκη Μελών",
"added": "Προστέθηκε",
"addMemberPopup-title": "Μέλοι",
"admin": "Διαχειριστής",
"admin-desc": "Can view and edit cards, remove members, and change settings for the board.",
"admin-announcement": "Announcement",
"admin-announcement-active": "Active System-Wide Announcement",
"admin-announcement-title": "Announcement from Administrator",
"all-boards": "All boards",
"and-n-other-card": "And __count__ other card",
"and-n-other-card_plural": "And __count__ other cards",
"apply": "Εφαρμογή",
"app-is-offline": "Wekan is loading, please wait. Refreshing the page will cause data loss. If Wekan does not load, please check that Wekan server has not stopped.",
"archive": "Archive",
"archive-all": "Archive All",
"archive-board": "Archive Board",
"archive-card": "Archive Card",
"archive-list": "Archive List",
"archive-swimlane": "Archive Swimlane",
"archive-selection": "Archive selection",
"archiveBoardPopup-title": "Archive Board?",
"archived-items": "Archived Items",
"archived-boards": "Archived Boards",
"restore-board": "Restore Board",
"no-archived-boards": "No Archived Boards.",
"archives": "Archives",
"assign-member": "Assign member",
"attached": "attached",
"attachment": "Attachment",
"attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.",
"attachmentDeletePopup-title": "Delete Attachment?",
"attachments": "Attachments",
"auto-watch": "Automatically watch boards when they are created",
"avatar-too-big": "The avatar is too large (70KB max)",
"back": "Πίσω",
"board-change-color": "Αλλαγή χρώματος",
"board-nb-stars": "%s stars",
"board-not-found": "Board not found",
"board-private-info": "This board will be <strong>private</strong>.",
"board-public-info": "This board will be <strong>public</strong>.",
"boardChangeColorPopup-title": "Change Board Background",
"boardChangeTitlePopup-title": "Rename Board",
"boardChangeVisibilityPopup-title": "Change Visibility",
"boardChangeWatchPopup-title": "Change Watch",
"boardMenuPopup-title": "Board Menu",
"boards": "Boards",
"board-view": "Board View",
"board-view-swimlanes": "Swimlanes",
"board-view-lists": "Λίστες",
"bucket-example": "Like “Bucket List” for example",
"cancel": "Ακύρωση",
"card-archived": "This card is archived.",
"card-comments-title": "This card has %s comment.",
"card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.",
"card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.",
"card-delete-suggest-archive": "You can archive a card to remove it from the board and preserve the activity.",
"card-due": "Έως",
"card-due-on": "Έως τις",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
"card-labels-title": "Change the labels for the card.",
"card-members-title": "Add or remove members of the board from the card.",
"card-start": "Start",
"card-start-on": "Starts on",
"cardAttachmentsPopup-title": "Attach From",
"cardDeletePopup-title": "Διαγραφή Κάρτας;",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Ετικέτες",
"cardMembersPopup-title": "Μέλοι",
"cardMorePopup-title": "Περισσότερα",
"cards": "Κάρτες",
"change": "Αλλαγή",
"change-avatar": "Change Avatar",
"change-password": "Αλλαγή Κωδικού",
"change-permissions": "Change permissions",
"change-settings": "Αλλαγή Ρυθμίσεων",
"changeAvatarPopup-title": "Change Avatar",
"changeLanguagePopup-title": "Αλλαγή Γλώσσας",
"changePasswordPopup-title": "Αλλαγή Κωδικού",
"changePermissionsPopup-title": "Change Permissions",
"changeSettingsPopup-title": "Αλλαγή Ρυθμίσεων",
"checklists": "Checklists",
"click-to-star": "Click to star this board.",
"click-to-unstar": "Click to unstar this board.",
"clipboard": "Clipboard or drag & drop",
"close": "Κλείσιμο",
"close-board": "Close Board",
"close-board-pop": "You will be able to restore the board by clicking the “Archives” button from the home header.",
"color-black": "μαύρο",
"color-blue": "μπλε",
"color-green": "πράσινο",
"color-lime": "λάιμ",
"color-orange": "πορτοκαλί",
"color-pink": "ροζ",
"color-purple": "μωβ",
"color-red": "κόκκινο",
"color-sky": "ουρανός",
"color-yellow": "κίτρινο",
"comment": "Comment",
"comment-placeholder": "Write Comment",
"comment-only": "Comment only",
"comment-only-desc": "Can comment on cards only.",
"computer": "Υπολογιστής",
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist",
"copy-card-link-to-clipboard": "Copy card link to clipboard",
"copyCardPopup-title": "Copy Card",
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
"create": "Δημιουργία",
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
"current": "current",
"date": "Ημερομηνία",
"decline": "Decline",
"default-avatar": "Default avatar",
"delete": "Διαγραφή",
"deleteLabelPopup-title": "Delete Label?",
"description": "Description",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
"disambiguateMultiMemberPopup-title": "Disambiguate Member Action",
"discard": "Απόρριψη",
"done": "Done",
"download": "Download",
"edit": "Edit",
"edit-avatar": "Change Avatar",
"edit-profile": "Edit Profile",
"edit-wip-limit": "Edit WIP Limit",
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
"editProfilePopup-title": "Edit Profile",
"email": "Email",
"email-enrollAccount-subject": "An account created for you on __siteName__",
"email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.",
"email-fail": "Sending email failed",
"email-fail-text": "Error trying to send email",
"email-invalid": "Invalid email",
"email-invite": "Invite via Email",
"email-invite-subject": "__inviter__ sent you an invitation",
"email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.",
"email-resetPassword-subject": "Reset your password on __siteName__",
"email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.",
"email-sent": "Email sent",
"email-verifyEmail-subject": "Verify your email address on __siteName__",
"email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.",
"enable-wip-limit": "Enable WIP Limit",
"error-board-doesNotExist": "This board does not exist",
"error-board-notAdmin": "You need to be admin of this board to do that",
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Το κείμενο δεν είναι έγκυρο JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"error-user-notAllowSelf": "You can not invite yourself",
"error-user-notCreated": "This user is not created",
"error-username-taken": "This username is already taken",
"error-email-taken": "Email has already been taken",
"export-board": "Export board",
"filter": "Φίλτρο",
"filter-cards": "Filter Cards",
"filter-clear": "Clear filter",
"filter-no-label": "No label",
"filter-no-member": "Κανένα μέλος",
"filter-on": "Filter is on",
"filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
"filter-to-selection": "Filter to selection",
"fullname": "Πλήρες Όνομα",
"header-logo-title": "Go back to your boards page.",
"hide-system-messages": "Hide system messages",
"headerBarCreateBoardPopup-title": "Create Board",
"home": "Home",
"import": "Εισαγωγή",
"import-board": "import board",
"import-board-c": "Import board",
"import-board-title-trello": "Import board from Trello",
"import-board-title-wekan": "Import board from Wekan",
"import-sandstorm-warning": "Imported board will delete all existing data on board and replace it with imported board.",
"from-trello": "Από το Trello",
"from-wekan": "Από το Wekan",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text.",
"import-board-instruction-wekan": "In your Wekan board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
"import-json-placeholder": "Paste your valid JSON data here",
"import-map-members": "Map members",
"import-members-map": "Your imported board has some members. Please map the members you want to import to Wekan users",
"import-show-user-mapping": "Review members mapping",
"import-user-select": "Pick the Wekan user you want to use as this member",
"importMapMembersAddPopup-title": "Select Wekan member",
"info": "Έκδοση",
"initials": "Initials",
"invalid-date": "Invalid date",
"invalid-time": "Invalid time",
"invalid-user": "Invalid user",
"joined": "joined",
"just-invited": "You are just invited to this board",
"keyboard-shortcuts": "Keyboard shortcuts",
"label-create": "Create Label",
"label-default": "%s label (default)",
"label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.",
"labels": "Ετικέτες",
"language": "Γλώσσα",
"last-admin-desc": "You can’t change roles because there must be at least one admin.",
"leave-board": "Leave Board",
"leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.",
"leaveBoardPopup-title": "Leave Board ?",
"link-card": "Link to this card",
"list-archive-cards": "Archive all cards in this list",
"list-archive-cards-pop": "This will remove all the cards in this list from the board. To view archived cards and bring them back to the board, click “Menu” > “Archived Items”.",
"list-move-cards": "Move all cards in this list",
"list-select-cards": "Select all cards in this list",
"listActionPopup-title": "List Actions",
"swimlaneActionPopup-title": "Swimlane Actions",
"listImportCardPopup-title": "Import a Trello card",
"listMorePopup-title": "Περισσότερα",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
"list-delete-suggest-archive": "You can archive a list to remove it from the board and preserve the activity.",
"lists": "Λίστες",
"swimlanes": "Swimlanes",
"log-out": "Αποσύνδεση",
"log-in": "Σύνδεση",
"loginPopup-title": "Σύνδεση",
"memberMenuPopup-title": "Member Settings",
"members": "Μέλοι",
"menu": "Menu",
"move-selection": "Move selection",
"moveCardPopup-title": "Move Card",
"moveCardToBottom-title": "Move to Bottom",
"moveCardToTop-title": "Move to Top",
"moveSelectionPopup-title": "Move selection",
"multi-selection": "Multi-Selection",
"multi-selection-on": "Multi-Selection is on",
"muted": "Muted",
"muted-info": "You will never be notified of any changes in this board",
"my-boards": "My Boards",
"name": "Όνομα",
"no-archived-cards": "No archived cards.",
"no-archived-lists": "No archived lists.",
"no-archived-swimlanes": "No archived swimlanes.",
"no-results": "Κανένα αποτέλεσμα",
"normal": "Normal",
"normal-desc": "Can view and edit cards. Can't change settings.",
"not-accepted-yet": "Invitation not accepted yet",
"notify-participate": "Receive updates to any cards you participate as creater or member",
"notify-watch": "Receive updates to any boards, lists, or cards you’re watching",
"optional": "optional",
"or": "ή",
"page-maybe-private": "This page may be private. You may be able to view it by <a href='%s'>logging in</a>.",
"page-not-found": "Η σελίδα δεν βρέθηκε.",
"password": "Κωδικός",
"paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)",
"participating": "Participating",
"preview": "Preview",
"previewAttachedImagePopup-title": "Preview",
"previewClipboardImagePopup-title": "Preview",
"private": "Private",
"private-desc": "This board is private. Only people added to the board can view and edit it.",
"profile": "Profile",
"public": "Public",
"public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.",
"quick-access-description": "Star a board to add a shortcut in this bar.",
"remove-cover": "Remove Cover",
"remove-from-board": "Remove from Board",
"remove-label": "Remove Label",
"listDeletePopup-title": "Διαγραφή Λίστας;",
"remove-member": "Αφαίρεση Μέλους",
"remove-member-from-card": "Αφαίρεση από την Κάρτα",
"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": "Αφαίρεση Μέλους;",
"rename": "Μετανομασία",
"rename-board": "Rename Board",
"restore": "Restore",
"save": "Αποθήκευση",
"search": "Αναζήτηση",
"select-color": "Επιλέξτε Χρώμα",
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
"setWipLimitPopup-title": "Set WIP Limit",
"shortcut-assign-self": "Assign yourself to current card",
"shortcut-autocomplete-emoji": "Autocomplete emoji",
"shortcut-autocomplete-members": "Autocomplete members",
"shortcut-clear-filters": "Clear all filters",
"shortcut-close-dialog": "Close Dialog",
"shortcut-filter-my-cards": "Filter my cards",
"shortcut-show-shortcuts": "Bring up this shortcuts list",
"shortcut-toggle-filterbar": "Toggle Filter Sidebar",
"shortcut-toggle-sidebar": "Toggle Board Sidebar",
"show-cards-minimum-count": "Show cards count if list contains more than",
"sidebar-open": "Open Sidebar",
"sidebar-close": "Close Sidebar",
"signupPopup-title": "Δημιουργία Λογαριασμού",
"star-board-title": "Click to star this board. It will show up at top of your boards list.",
"starred-boards": "Starred Boards",
"starred-boards-description": "Starred boards show up at the top of your boards list.",
"subscribe": "Subscribe",
"team": "Ομάδα",
"this-board": "this board",
"this-card": "αυτή η κάρτα",
"spent-time-hours": "Spent time (hours)",
"overtime-hours": "Overtime (hours)",
"overtime": "Overtime",
"has-overtime-cards": "Has overtime cards",
"has-spenttime-cards": "Has spent time cards",
"time": "Ώρα",
"title": "Τίτλος",
"tracking": "Tracking",
"tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
"unassign-member": "Unassign member",
"unsaved-description": "You have an unsaved description.",
"unwatch": "Unwatch",
"upload": "Upload",
"upload-avatar": "Upload an avatar",
"uploaded-avatar": "Uploaded an avatar",
"username": "Όνομα Χρήστη",
"view-it": "View it",
"warn-list-archived": "warning: this card is in an archived list",
"watch": "Watch",
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "What do you want to do?",
"wipLimitErrorPopup-title": "Invalid WIP Limit",
"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": "Admin Panel",
"settings": "Ρυθμίσεις",
"people": "People",
"registration": "Registration",
"disable-self-registration": "Disable Self-Registration",
"invite": "Invite",
"invite-people": "Invite People",
"to-boards": "To board(s)",
"email-addresses": "Email Διευθύνσεις",
"smtp-host-description": "The address of the SMTP server that handles your emails.",
"smtp-port-description": "The port your SMTP server uses for outgoing emails.",
"smtp-tls-description": "Enable TLS support for SMTP server",
"smtp-host": "SMTP Host",
"smtp-port": "SMTP Port",
"smtp-username": "Όνομα Χρήστη",
"smtp-password": "Κωδικός",
"smtp-tls": "TLS υποστήριξη",
"send-from": "Από",
"send-smtp-test": "Send a test email to yourself",
"invitation-code": "Κωδικός Πρόσκλησης",
"email-invite-register-subject": "__inviter__ sent you an invitation",
"email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan 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 From Wekan",
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Ο κωδικός πρόσκλησης δεν υπάρχει",
"error-notAuthorized": "You are not authorized to view this page.",
"outgoing-webhooks": "Outgoing Webhooks",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"new-outgoing-webhook": "New Outgoing Webhook",
"no-name": "(Άγνωστο)",
"Wekan_version": "Wekan έκδοση",
"Node_version": "Node version",
"OS_Arch": "OS Arch",
"OS_Cpus": "OS CPU Count",
"OS_Freemem": "OS Free Memory",
"OS_Loadavg": "OS Load Average",
"OS_Platform": "OS Platform",
"OS_Release": "OS Release",
"OS_Totalmem": "OS Total Memory",
"OS_Type": "OS Type",
"OS_Uptime": "OS Uptime",
"hours": "ώρες",
"minutes": "λεπτά",
"seconds": "δευτερόλεπτα",
"yes": "Ναι",
"no": "Όχι",
"accounts": "Λογαριασμοί",
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}
+43 -1
View File
@@ -12,6 +12,7 @@
"act-archivedBoard": "archived __board__",
"act-archivedCard": "archived __card__",
"act-archivedList": "archived __list__",
"act-archivedSwimlane": "archived __swimlane__",
"act-importBoard": "imported __board__",
"act-importCard": "imported __card__",
"act-importList": "imported __list__",
@@ -44,6 +45,7 @@
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-card": "Add Card",
"add-swimlane": "Add Swimlane",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"add-cover": "Add Cover",
@@ -54,6 +56,9 @@
"addMemberPopup-title": "Members",
"admin": "Admin",
"admin-desc": "Can view and edit cards, remove members, and change settings for the board.",
"admin-announcement": "Announcement",
"admin-announcement-active": "Active System-Wide Announcement",
"admin-announcement-title": "Announcement from Administrator",
"all-boards": "All boards",
"and-n-other-card": "And __count__ other card",
"and-n-other-card_plural": "And __count__ other cards",
@@ -64,6 +69,7 @@
"archive-board": "Archive Board",
"archive-card": "Archive Card",
"archive-list": "Archive List",
"archive-swimlane": "Archive Swimlane",
"archive-selection": "Archive selection",
"archiveBoardPopup-title": "Archive Board?",
"archived-items": "Archived Items",
@@ -91,6 +97,9 @@
"boardChangeWatchPopup-title": "Change Watch",
"boardMenuPopup-title": "Board Menu",
"boards": "Boards",
"board-view": "Board View",
"board-view-swimlanes": "Swimlanes",
"board-view-lists": "Lists",
"bucket-example": "Like “Bucket List” for example",
"cancel": "Cancel",
"card-archived": "This card is archived.",
@@ -100,6 +109,7 @@
"card-delete-suggest-archive": "You can archive a card to remove it from the board and preserve the activity.",
"card-due": "Due",
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
@@ -149,6 +159,9 @@
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist",
"copy-card-link-to-clipboard": "Copy card link to clipboard",
"copyCardPopup-title": "Copy Card",
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
"create": "Create",
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
@@ -168,8 +181,11 @@
"edit": "Edit",
"edit-avatar": "Change Avatar",
"edit-profile": "Edit Profile",
"edit-wip-limit": "Edit WIP Limit",
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
"editProfilePopup-title": "Edit Profile",
@@ -177,6 +193,7 @@
"email-enrollAccount-subject": "An account created for you on __siteName__",
"email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.",
"email-fail": "Sending email failed",
"email-fail-text": "Error trying to send email",
"email-invalid": "Invalid email",
"email-invite": "Invite via email",
"email-invite-subject": "__inviter__ sent you an invitation",
@@ -186,6 +203,7 @@
"email-sent": "Email sent",
"email-verifyEmail-subject": "Verify your email address on __siteName__",
"email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.",
"enable-wip-limit": "Enable WIP Limit",
"error-board-doesNotExist": "This board does not exist",
"error-board-notAdmin": "You need to be admin of this board to do that",
"error-board-notAMember": "You need to be a member of this board to do that",
@@ -230,6 +248,8 @@
"info": "Version",
"initials": "Initials",
"invalid-date": "Invalid date",
"invalid-time": "Invalid time",
"invalid-user": "Invalid user",
"joined": "joined",
"just-invited": "You are just invited to this board",
"keyboard-shortcuts": "Keyboard shortcuts",
@@ -240,18 +260,22 @@
"language": "Language",
"last-admin-desc": "You can’t change roles because there must be at least one admin.",
"leave-board": "Leave Board",
"leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.",
"leaveBoardPopup-title": "Leave Board ?",
"link-card": "Link to this card",
"list-archive-cards": "Archive all cards in this list",
"list-archive-cards-pop": "This will remove all the cards in this list from the board. To view archived cards and bring them back to the board, click “Menu” > “Archived Items”.",
"list-move-cards": "Move all cards in this list",
"list-select-cards": "Select all cards in this list",
"listActionPopup-title": "List Actions",
"swimlaneActionPopup-title": "Swimlane Actions",
"listImportCardPopup-title": "Import a Trello card",
"listMorePopup-title": "More",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
"list-delete-suggest-archive": "You can archive a list to remove it from the board and preserve the activity.",
"lists": "Lists",
"swimlanes": "Swimlanes",
"log-out": "Log Out",
"log-in": "Log In",
"loginPopup-title": "Log In",
@@ -271,6 +295,7 @@
"name": "Name",
"no-archived-cards": "No archived cards.",
"no-archived-lists": "No archived lists.",
"no-archived-swimlanes": "No archived swimlanes.",
"no-results": "No results",
"normal": "Normal",
"normal-desc": "Can view and edit cards. Can't change settings.",
@@ -307,6 +332,8 @@
"save": "Save",
"search": "Search",
"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",
"shortcut-assign-self": "Assign yourself to current card",
"shortcut-autocomplete-emoji": "Autocomplete emoji",
"shortcut-autocomplete-members": "Autocomplete members",
@@ -327,6 +354,11 @@
"team": "Team",
"this-board": "this board",
"this-card": "this card",
"spent-time-hours": "Spent time (hours)",
"overtime-hours": "Overtime (hours)",
"overtime": "Overtime",
"has-overtime-cards": "Has overtime cards",
"has-spenttime-cards": "Has spent time cards",
"time": "Time",
"title": "Title",
"tracking": "Tracking",
@@ -344,9 +376,13 @@
"watching": "Watching",
"watching-info": "You will be notified of any changes in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "What do you want to do?",
"wipLimitErrorPopup-title": "Invalid WIP Limit",
"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": "Admin Panel",
"settings": "Settings",
"people": "People",
@@ -365,9 +401,12 @@
"smtp-password": "Password",
"smtp-tls": "TLS support",
"send-from": "From",
"send-smtp-test": "Send a test email to yourself",
"invitation-code": "Invitation Code",
"email-invite-register-subject": "__inviter__ sent you an invitation",
"email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan for collaboration.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.",
"email-smtp-test-subject": "SMTP Test Email From Wekan",
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorised to view this page.",
"outgoing-webhooks": "Outgoing Webhooks",
@@ -391,5 +430,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}
+43 -1
View File
@@ -12,6 +12,7 @@
"act-archivedBoard": "archived __board__",
"act-archivedCard": "archived __card__",
"act-archivedList": "archived __list__",
"act-archivedSwimlane": "archived __swimlane__",
"act-importBoard": "imported __board__",
"act-importCard": "imported __card__",
"act-importList": "imported __list__",
@@ -44,6 +45,7 @@
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-card": "Add Card",
"add-swimlane": "Add Swimlane",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"add-cover": "Add Cover",
@@ -54,6 +56,9 @@
"addMemberPopup-title": "Members",
"admin": "Admin",
"admin-desc": "Can view and edit cards, remove members, and change settings for the board.",
"admin-announcement": "Announcement",
"admin-announcement-active": "Active System-Wide Announcement",
"admin-announcement-title": "Announcement from Administrator",
"all-boards": "All boards",
"and-n-other-card": "And __count__ other card",
"and-n-other-card_plural": "And __count__ other cards",
@@ -64,6 +69,7 @@
"archive-board": "Archive Board",
"archive-card": "Archive Card",
"archive-list": "Archive List",
"archive-swimlane": "Archive Swimlane",
"archive-selection": "Archive selection",
"archiveBoardPopup-title": "Archive Board?",
"archived-items": "Archived Items",
@@ -91,6 +97,9 @@
"boardChangeWatchPopup-title": "Change Watch",
"boardMenuPopup-title": "Board Menu",
"boards": "Boards",
"board-view": "Board View",
"board-view-swimlanes": "Swimlanes",
"board-view-lists": "Lists",
"bucket-example": "Like “Bucket List” for example",
"cancel": "Cancel",
"card-archived": "This card is archived.",
@@ -100,6 +109,7 @@
"card-delete-suggest-archive": "You can archive a card to remove it from the board and preserve the activity.",
"card-due": "Due",
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-labels": "Edit labels",
"card-edit-members": "Edit members",
@@ -149,6 +159,9 @@
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist",
"copy-card-link-to-clipboard": "Copy card link to clipboard",
"copyCardPopup-title": "Copy Card",
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
"create": "Create",
"createBoardPopup-title": "Create Board",
"chooseBoardSourcePopup-title": "Import board",
@@ -168,8 +181,11 @@
"edit": "Edit",
"edit-avatar": "Change Avatar",
"edit-profile": "Edit Profile",
"edit-wip-limit": "Edit WIP Limit",
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
"editProfilePopup-title": "Edit Profile",
@@ -177,6 +193,7 @@
"email-enrollAccount-subject": "An account created for you on __siteName__",
"email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.",
"email-fail": "Sending email failed",
"email-fail-text": "Error trying to send email",
"email-invalid": "Invalid email",
"email-invite": "Invite via Email",
"email-invite-subject": "__inviter__ sent you an invitation",
@@ -186,6 +203,7 @@
"email-sent": "Email sent",
"email-verifyEmail-subject": "Verify your email address on __siteName__",
"email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.",
"enable-wip-limit": "Enable WIP Limit",
"error-board-doesNotExist": "This board does not exist",
"error-board-notAdmin": "You need to be admin of this board to do that",
"error-board-notAMember": "You need to be a member of this board to do that",
@@ -230,6 +248,8 @@
"info": "Version",
"initials": "Initials",
"invalid-date": "Invalid date",
"invalid-time": "Invalid time",
"invalid-user": "Invalid user",
"joined": "joined",
"just-invited": "You are just invited to this board",
"keyboard-shortcuts": "Keyboard shortcuts",
@@ -240,18 +260,22 @@
"language": "Language",
"last-admin-desc": "You can’t change roles because there must be at least one admin.",
"leave-board": "Leave Board",
"leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.",
"leaveBoardPopup-title": "Leave Board ?",
"link-card": "Link to this card",
"list-archive-cards": "Archive all cards in this list",
"list-archive-cards-pop": "This will remove all the cards in this list from the board. To view archived cards and bring them back to the board, click “Menu” > “Archived Items”.",
"list-move-cards": "Move all cards in this list",
"list-select-cards": "Select all cards in this list",
"listActionPopup-title": "List Actions",
"swimlaneActionPopup-title": "Swimlane Actions",
"listImportCardPopup-title": "Import a Trello card",
"listMorePopup-title": "More",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
"list-delete-suggest-archive": "You can archive a list to remove it from the board and preserve the activity.",
"lists": "Lists",
"swimlanes": "Swimlanes",
"log-out": "Log Out",
"log-in": "Log In",
"loginPopup-title": "Log In",
@@ -271,6 +295,7 @@
"name": "Name",
"no-archived-cards": "No archived cards.",
"no-archived-lists": "No archived lists.",
"no-archived-swimlanes": "No archived swimlanes.",
"no-results": "No results",
"normal": "Normal",
"normal-desc": "Can view and edit cards. Can't change settings.",
@@ -307,6 +332,8 @@
"save": "Save",
"search": "Search",
"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",
"shortcut-assign-self": "Assign yourself to current card",
"shortcut-autocomplete-emoji": "Autocomplete emoji",
"shortcut-autocomplete-members": "Autocomplete members",
@@ -327,6 +354,11 @@
"team": "Team",
"this-board": "this board",
"this-card": "this card",
"spent-time-hours": "Spent time (hours)",
"overtime-hours": "Overtime (hours)",
"overtime": "Overtime",
"has-overtime-cards": "Has overtime cards",
"has-spenttime-cards": "Has spent time cards",
"time": "Time",
"title": "Title",
"tracking": "Tracking",
@@ -344,9 +376,13 @@
"watching": "Watching",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "What do you want to do?",
"wipLimitErrorPopup-title": "Invalid WIP Limit",
"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": "Admin Panel",
"settings": "Settings",
"people": "People",
@@ -365,9 +401,12 @@
"smtp-password": "Password",
"smtp-tls": "TLS support",
"send-from": "From",
"send-smtp-test": "Send a test email to yourself",
"invitation-code": "Invitation Code",
"email-invite-register-subject": "__inviter__ sent you an invitation",
"email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan 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 From Wekan",
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"outgoing-webhooks": "Outgoing Webhooks",
@@ -391,5 +430,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}
+62 -20
View File
@@ -5,17 +5,18 @@
"act-addChecklist": "added checklist __checklist__ to __card__",
"act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__",
"act-addComment": "commented on __card__: __comment__",
"act-createBoard": "kreiis __board__",
"act-createCard": "aldonis __card__ al __list__",
"act-createList": "aldonis __card__ al __board__",
"act-addBoardMember": "aldonis __member__ al __board__",
"act-createBoard": "Kreiis __board__",
"act-createCard": "Aldonis __card__ al __list__",
"act-createList": "Aldonis __card__ al __board__",
"act-addBoardMember": "Aldonis __member__ al __board__",
"act-archivedBoard": "archived __board__",
"act-archivedCard": "archived __card__",
"act-archivedList": "archived __list__",
"act-archivedSwimlane": "archived __swimlane__",
"act-importBoard": "imported __board__",
"act-importCard": "imported __card__",
"act-importList": "imported __list__",
"act-joinMember": "aldonis __member__ al __card__",
"act-joinMember": "Aldonis __member__ al __card__",
"act-moveCard": "moved __card__ from __oldList__ to __list__",
"act-removeBoardMember": "removed __member__ from __board__",
"act-restoredCard": "restored __card__ to __board__",
@@ -25,10 +26,10 @@
"actions": "Akcioj",
"activities": "Aktivaĵoj",
"activity": "Aktivaĵo",
"activity-added": "aldonis %s al %s",
"activity-added": "Aldonis %s al %s",
"activity-archived": "archived %s",
"activity-attached": "attached %s to %s",
"activity-created": "kreiis %s",
"activity-created": "Kreiis %s",
"activity-excluded": "excluded %s from %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -36,7 +37,7 @@
"activity-moved": "moved %s from %s to %s",
"activity-on": "on %s",
"activity-removed": "removed %s from %s",
"activity-sent": "sendis %s al %s",
"activity-sent": "Sendis %s al %s",
"activity-unjoined": "unjoined %s",
"activity-checklist-added": "added checklist to %s",
"activity-checklist-item-added": "added checklist item to '%s' in %s",
@@ -44,6 +45,7 @@
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-card": "Add Card",
"add-swimlane": "Add Swimlane",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"add-cover": "Add Cover",
@@ -54,6 +56,9 @@
"addMemberPopup-title": "Membroj",
"admin": "Admin",
"admin-desc": "Can view and edit cards, remove members, and change settings for the board.",
"admin-announcement": "Announcement",
"admin-announcement-active": "Active System-Wide Announcement",
"admin-announcement-title": "Announcement from Administrator",
"all-boards": "All boards",
"and-n-other-card": "And __count__ other card",
"and-n-other-card_plural": "And __count__ other cards",
@@ -64,6 +69,7 @@
"archive-board": "Archive Board",
"archive-card": "Arkivi karton",
"archive-list": "Archive List",
"archive-swimlane": "Archive Swimlane",
"archive-selection": "Arkivi elekton",
"archiveBoardPopup-title": "Archive Board?",
"archived-items": "Archived Items",
@@ -91,29 +97,33 @@
"boardChangeWatchPopup-title": "Change Watch",
"boardMenuPopup-title": "Board Menu",
"boards": "Boards",
"board-view": "Board View",
"board-view-swimlanes": "Swimlanes",
"board-view-lists": "Listoj",
"bucket-example": "Like “Bucket List” for example",
"cancel": "Cancel",
"card-archived": "Karto arkivita.",
"card-archived": "Karto arkivita",
"card-comments-title": "This card has %s comment.",
"card-delete-notice": "Deleting is permanent. You will lose all actions associated with this card.",
"card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.",
"card-delete-suggest-archive": "You can archive a card to remove it from the board and preserve the activity.",
"card-due": "Due",
"card-due-on": "Due on",
"card-spent": "Spent Time",
"card-edit-attachments": "Edit attachments",
"card-edit-labels": "Redakti etikedojn",
"card-edit-members": "Redakti membroj",
"card-edit-members": "Redakti membrojn",
"card-labels-title": "Change the labels for the card.",
"card-members-title": "Add or remove members of the board from the card.",
"card-start": "Komenco",
"card-start-on": "Komencas je ",
"card-start-on": "Komencas je la",
"cardAttachmentsPopup-title": "Attach From",
"cardDeletePopup-title": "Delete Card?",
"cardDetailsActionsPopup-title": "Card Actions",
"cardLabelsPopup-title": "Etikedoj",
"cardMembersPopup-title": "Membroj",
"cardMorePopup-title": "Pli",
"cards": "Karto",
"cards": "Kartoj",
"change": "Ŝanĝi",
"change-avatar": "Change Avatar",
"change-password": "Ŝangi pasvorton",
@@ -149,8 +159,11 @@
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist",
"copy-card-link-to-clipboard": "Copy card link to clipboard",
"copyCardPopup-title": "Copy Card",
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
"create": "Krei",
"createBoardPopup-title": "Krei ",
"createBoardPopup-title": "Krei tavolon",
"chooseBoardSourcePopup-title": "Import board",
"createLabelPopup-title": "Create Label",
"current": "current",
@@ -167,16 +180,20 @@
"download": "Elŝuti",
"edit": "Redakti",
"edit-avatar": "Change Avatar",
"edit-profile": "Redakti profilo",
"editCardStartDatePopup-title": "Redakti komencdato",
"edit-profile": "Redakti profilon",
"edit-wip-limit": "Edit WIP Limit",
"soft-wip-limit": "Soft WIP Limit",
"editCardStartDatePopup-title": "Redakti komencdaton",
"editCardDueDatePopup-title": "Change due date",
"editLabelPopup-title": "Ŝanĝi etikedo",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Ŝanĝi etikedon",
"editNotificationPopup-title": "Edit Notification",
"editProfilePopup-title": "Redakti profilo",
"editProfilePopup-title": "Redakti profilon",
"email": "Retpoŝtadreso",
"email-enrollAccount-subject": "An account created for you on __siteName__",
"email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.",
"email-fail": "Malsukcese sendis retpoŝton",
"email-fail": "Malsukcesis sendi retpoŝton",
"email-fail-text": "Error trying to send email",
"email-invalid": "Nevalida retpoŝtadreso",
"email-invite": "Inviti per retpoŝto",
"email-invite-subject": "__inviter__ sent you an invitation",
@@ -186,6 +203,7 @@
"email-sent": "Sendis retpoŝton",
"email-verifyEmail-subject": "Verify your email address on __siteName__",
"email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.",
"enable-wip-limit": "Enable WIP Limit",
"error-board-doesNotExist": "This board does not exist",
"error-board-notAdmin": "You need to be admin of this board to do that",
"error-board-notAMember": "You need to be a member of this board to do that",
@@ -209,7 +227,7 @@
"fullname": "Full Name",
"header-logo-title": "Go back to your boards page.",
"hide-system-messages": "Hide system messages",
"headerBarCreateBoardPopup-title": "Krei ",
"headerBarCreateBoardPopup-title": "Krei tavolon",
"home": "Hejmo",
"import": "Importi",
"import-board": "import board",
@@ -230,6 +248,8 @@
"info": "Version",
"initials": "Initials",
"invalid-date": "Invalid date",
"invalid-time": "Invalid time",
"invalid-user": "Invalid user",
"joined": "joined",
"just-invited": "You are just invited to this board",
"keyboard-shortcuts": "Keyboard shortcuts",
@@ -240,18 +260,22 @@
"language": "Lingvo",
"last-admin-desc": "You can’t change roles because there must be at least one admin.",
"leave-board": "Leave Board",
"leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.",
"leaveBoardPopup-title": "Leave Board ?",
"link-card": "Ligi al ĉitiu karto",
"list-archive-cards": "Archive all cards in this list",
"list-archive-cards-pop": "This will remove all the cards in this list from the board. To view archived cards and bring them back to the board, click “Menu” > “Archived Items”.",
"list-move-cards": "Movu ĉiujn kartojn en tiu listo.",
"list-select-cards": "Elektu ĉiujn kartojn en tiu listo.",
"listActionPopup-title": "List Actions",
"swimlaneActionPopup-title": "Swimlane Actions",
"listImportCardPopup-title": "Import a Trello card",
"listMorePopup-title": "Pli",
"link-list": "Link to this list",
"list-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the list. There is no undo.",
"list-delete-suggest-archive": "You can archive a list to remove it from the board and preserve the activity.",
"lists": "Listoj",
"swimlanes": "Swimlanes",
"log-out": "Elsaluti",
"log-in": "Ensaluti",
"loginPopup-title": "Ensaluti",
@@ -271,6 +295,7 @@
"name": "Nomo",
"no-archived-cards": "No archived cards.",
"no-archived-lists": "No archived lists.",
"no-archived-swimlanes": "No archived swimlanes.",
"no-results": "Neniaj rezultoj",
"normal": "Normala",
"normal-desc": "Can view and edit cards. Can't change settings.",
@@ -307,6 +332,8 @@
"save": "Savi",
"search": "Serĉi",
"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",
"shortcut-assign-self": "Assign yourself to current card",
"shortcut-autocomplete-emoji": "Autocomplete emoji",
"shortcut-autocomplete-members": "Autocomplete members",
@@ -327,6 +354,11 @@
"team": "Teamo",
"this-board": "this board",
"this-card": "this card",
"spent-time-hours": "Spent time (hours)",
"overtime-hours": "Overtime (hours)",
"overtime": "Overtime",
"has-overtime-cards": "Has overtime cards",
"has-spenttime-cards": "Has spent time cards",
"time": "Tempo",
"title": "Titolo",
"tracking": "Tracking",
@@ -344,9 +376,13 @@
"watching": "Rigardante",
"watching-info": "You will be notified of any change in this board",
"welcome-board": "Welcome Board",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Basics",
"welcome-list2": "Advanced",
"what-to-do": "Kion vi volas fari?",
"wipLimitErrorPopup-title": "Invalid WIP Limit",
"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": "Admin Panel",
"settings": "Settings",
"people": "People",
@@ -365,9 +401,12 @@
"smtp-password": "Pasvorto",
"smtp-tls": "TLS support",
"send-from": "From",
"send-smtp-test": "Send a test email to yourself",
"invitation-code": "Invitation Code",
"email-invite-register-subject": "__inviter__ sent you an invitation",
"email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan 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 From Wekan",
"email-smtp-test-text": "You have successfully sent an email",
"error-invitation-code-not-exist": "Invitation code doesn't exist",
"error-notAuthorized": "You are not authorized to view this page.",
"outgoing-webhooks": "Outgoing Webhooks",
@@ -391,5 +430,8 @@
"yes": "Yes",
"no": "No",
"accounts": "Accounts",
"accounts-allowEmailChange": "Allow Email Change"
"accounts-allowEmailChange": "Allow Email Change",
"createdAt": "Created at",
"verified": "Verified",
"active": "Active"
}
+437
View File
@@ -0,0 +1,437 @@
{
"accept": "Aceptar",
"act-activity-notify": "[Wekan] Notificación de Actividad",
"act-addAttachment": "adjunto __attachment__ a __card__",
"act-addChecklist": "lista de ítems __checklist__ agregada a __card__",
"act-addChecklistItem": " __checklistItem__ agregada a lista de ítems __checklist__ en __card__",
"act-addComment": "comentado en __card__: __comment__",
"act-createBoard": "__board__ creado",
"act-createCard": "agregada __card__ a __list__",
"act-createList": "agregada __list__ a __board__",
"act-addBoardMember": "agregado __member__ a __board__",
"act-archivedBoard": "__board__ archivado",
"act-archivedCard": "__card__ archivada",
"act-archivedList": "__list__ archivada",
"act-archivedSwimlane": "archived __swimlane__",
"act-importBoard": "__board__ importado",
"act-importCard": "__card__ importada",
"act-importList": "__list__ importada",
"act-joinMember": "__member__ agregado a __card__",
"act-moveCard": "__card__ movida de __oldList__ a __list__",
"act-removeBoardMember": "__member__ removido de __board__",
"act-restoredCard": "__card__ restaurada a __board__",
"act-unjoinMember": "__member__ removido de __card__",
"act-withBoardTitle": "__board__ [Wekan]",
"act-withCardTitle": "__card__ [__board__] ",
"actions": "Acciones",
"activities": "Actividades",
"activity": "Actividad",
"activity-added": "agregadas %s a %s",
"activity-archived": "archivadas %s",
"activity-attached": "adjuntadas %s a %s",
"activity-created": "creadas %s",
"activity-excluded": "excluidas %s de %s",
"activity-imported": "importadas %s en %s de %s",
"activity-imported-board": "importadas %s de %s",
"activity-joined": "unidas %s",
"activity-moved": "movidas %s de %s a %s",
"activity-on": "en %s",
"activity-removed": "eliminadas %s de %s",
"activity-sent": "enviadas %s a %s",
"activity-unjoined": "separadas %s",
"activity-checklist-added": "agregada lista de tareas a %s",
"activity-checklist-item-added": "agregado item de lista de tareas a '%s' en %s",
"add": "Agregar",
"add-attachment": "Agregar Adjunto",
"add-board": "Agregar Tablero",
"add-card": "Agregar Tarjeta",
"add-swimlane": "Add Swimlane",
"add-checklist": "Agregar Lista de Tareas",
"add-checklist-item": "Agregar ítem a lista de tareas",
"add-cover": "Agregar Portadas",
"add-label": "Agregar Etiqueta",
"add-list": "Agregar Lista",
"add-members": "Agregar Miembros",
"added": "Agregadas",
"addMemberPopup-title": "Miembros",
"admin": "Administrador",
"admin-desc": "Puede ver y editar tarjetas, eliminar miembros, y cambiar opciones para el tablero.",
"admin-announcement": "Anuncio",
"admin-announcement-active": "Anuncio del Sistema Activo",
"admin-announcement-title": "Anuncio del Administrador",
"all-boards": "Todos los tableros",
"and-n-other-card": "Y __count__ otra tarjeta",
"and-n-other-card_plural": "Y __count__ otras tarjetas",
"apply": "Aplicar",
"app-is-offline": "Wekan está cargándose, por favor espere. Refrescar la página va a causar pérdida de datos. Si Wekan no se carga, por favor revise que el servidor de Wekan no se haya detenido.",
"archive": "Archivar",
"archive-all": "Archivar Todo",
"archive-board": "Archivar Tablero",
"archive-card": "Archivar Tarjeta",
"archive-list": "Archivar Lista",
"archive-swimlane": "Archive Swimlane",
"archive-selection": "Archivar selección",
"archiveBoardPopup-title": "Archivar Tablero?",
"archived-items": "Items Archivados",
"archived-boards": "Tableros Archivados",
"restore-board": "Restaurar Tablero",
"no-archived-boards": "Tableros no archivados.",
"archives": "Archivos",
"assign-member": "Asignar miembro",
"attached": "adjunto(s)",
"attachment": "Adjunto",
"attachment-delete-pop": "Borrar un adjunto es permanente. No hay deshacer.",
"attachmentDeletePopup-title": "¿Borrar Adjunto?",
"attachments": "Adjuntos",
"auto-watch": "Seguir tableros automáticamente al crearlos",
"avatar-too-big": "El avatar es muy grande (70KB max)",
"back": "Atrás",
"board-change-color": "Cambiar color",
"board-nb-stars": "%s estrellas",
"board-not-found": "Tablero no encontrado",
"board-private-info": "Este tablero va a ser <strong>privado</strong>.",
"board-public-info": "Este tablero va a ser <strong>público</strong>.",
"boardChangeColorPopup-title": "Cambiar Fondo del Tablero",
"boardChangeTitlePopup-title": "Renombrar Tablero",
"boardChangeVisibilityPopup-title": "Cambiar Visibilidad",
"boardChangeWatchPopup-title": "Alternar Seguimiento",
"boardMenuPopup-title": "Menú del Tablero",
"boards": "Tableros",
"board-view": "Board View",
"board-view-swimlanes": "Swimlanes",
"board-view-lists": "Listas",
"bucket-example": "Como \"Lista de Contenedores\" por ejemplo",
"cancel": "Cancelar",
"card-archived": "Esta tarjeta está archivada",
"card-comments-title": "Esta tarjeta tiene %s comentario.",
"card-delete-notice": "Borrar es permanente. Perderás todas las acciones asociadas con esta tarjeta.",
"card-delete-pop": "Todas las acciones van a ser eliminadas del agregador de actividad y no podrás re-abrir la tarjeta. No hay deshacer.",
"card-delete-suggest-archive": "Tu puedes archivar una tarjeta para removerla del tablero y preservar la actividad.",
"card-due": "Vence",
"card-due-on": "Vence en",
"card-spent": "Tiempo Empleado",
"card-edit-attachments": "Editar adjuntos",
"card-edit-labels": "Editar etiquetas",
"card-edit-members": "Editar miembros",
"card-labels-title": "Cambiar las etiquetas de la tarjeta.",
"card-members-title": "Agregar o eliminar de la tarjeta miembros del tablero.",
"card-start": "Empieza",
"card-start-on": "Empieza el",
"cardAttachmentsPopup-title": "Adjuntar De",
"cardDeletePopup-title": "¿Borrar Tarjeta?",
"cardDetailsActionsPopup-title": "Acciones de la Tarjeta",
"cardLabelsPopup-title": "Etiquetas",
"cardMembersPopup-title": "Miembros",
"cardMorePopup-title": "Mas",
"cards": "Tarjetas",
"change": "Cambiar",
"change-avatar": "Cambiar Avatar",
"change-password": "Cambiar Contraseña",
"change-permissions": "Cambiar permisos",
"change-settings": "Cambiar Opciones",
"changeAvatarPopup-title": "Cambiar Avatar",
"changeLanguagePopup-title": "Cambiar Lenguaje",
"changePasswordPopup-title": "Cambiar Contraseña",
"changePermissionsPopup-title": "Cambiar Permisos",
"changeSettingsPopup-title": "Cambiar Opciones",
"checklists": "Listas de ítems",
"click-to-star": "Clickeá para darle una estrella a este tablero.",
"click-to-unstar": "Clickeá para sacarle la estrella al tablero.",
"clipboard": "Portapapeles o arrastrar y soltar",
"close": "Cerrar",
"close-board": "Cerrar Tablero",
"close-board-pop": "Podrás restaurar el tablero apretando el botón \"Archivos\" del encabezado en inicio.",
"color-black": "negro",
"color-blue": "azul",
"color-green": "verde",
"color-lime": "lima",
"color-orange": "naranja",
"color-pink": "rosa",
"color-purple": "púrpura",
"color-red": "rojo",
"color-sky": "cielo",
"color-yellow": "amarillo",
"comment": "Comentario",
"comment-placeholder": "Comentar",
"comment-only": "Comentar solamente",
"comment-only-desc": "Puede comentar en tarjetas solamente.",
"computer": "Computadora",
"confirm-checklist-delete-dialog": "¿Estás segur@ que querés borrar la lista de ítems?",
"copy-card-link-to-clipboard": "Copiar enlace a tarjeta en el portapapeles",
"copyCardPopup-title": "Copiar Tarjeta",
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
"create": "Crear",
"createBoardPopup-title": "Crear Tablero",
"chooseBoardSourcePopup-title": "Importar tablero",
"createLabelPopup-title": "Crear Etiqueta",
"current": "actual",
"date": "Fecha",
"decline": "Rechazar",
"default-avatar": "Avatar por defecto",
"delete": "Borrar",
"deleteLabelPopup-title": "¿Borrar Etiqueta?",
"description": "Descripción",
"disambiguateMultiLabelPopup-title": "Desambiguación de Acción de Etiqueta",
"disambiguateMultiMemberPopup-title": "Desambiguación de Acción de Miembro",
"discard": "Descartar",
"done": "Hecho",
"download": "Descargar",
"edit": "Editar",
"edit-avatar": "Cambiar Avatar",
"edit-profile": "Editar Perfil",
"edit-wip-limit": "Editar Lìmite de TEP",
"soft-wip-limit": "Límite TEP suave",
"editCardStartDatePopup-title": "Cambiar fecha de inicio",
"editCardDueDatePopup-title": "Cambiar fecha de vencimiento",
"editCardSpentTimePopup-title": "Cambiar tiempo empleado",
"editLabelPopup-title": "Cambiar Etiqueta",
"editNotificationPopup-title": "Editar Notificació",
"editProfilePopup-title": "Editar Perfil",
"email": "Email",
"email-enrollAccount-subject": "Una cuenta creada para vos en __siteName__",
"email-enrollAccount-text": "Hola __user__,\n\nPara empezar a usar el servicio, simplemente clickeá en el enlace de abajo.\n\n__url__\n\nGracias.",
"email-fail": "Fallo envío de email",
"email-fail-text": "Error intentando enviar email",
"email-invalid": "Email inválido",
"email-invite": "Invitar vía Email",
"email-invite-subject": "__inviter__ te envió una invitación",
"email-invite-text": "Querido __user__,\n\n__inviter__ te invita a unirte al tablero \"__board__\" para colaborar.\n\nPor favor sigue el enlace de abajo:\n\n__url__\n\nGracias.",
"email-resetPassword-subject": "Restaurá tu contraseña en __siteName__",
"email-resetPassword-text": "Hola __user__,\n\nPara restaurar tu contraseña, simplemente clickeá el enlace de abajo.\n\n__url__\n\nGracias.",
"email-sent": "Email enviado",
"email-verifyEmail-subject": "Verificá tu dirección de email en __siteName__",
"email-verifyEmail-text": "Hola __user__,\n\nPara verificar tu cuenta de email, simplemente clickeá el enlace de abajo.\n\n__url__\n\nGracias.",
"enable-wip-limit": "Activar Límite TEP",
"error-board-doesNotExist": "Este tablero no existe",
"error-board-notAdmin": "Necesitás ser administrador de este tablero para hacer eso",
"error-board-notAMember": "Necesitás ser miembro de este tablero para hacer eso",
"error-json-malformed": "Tu texto no es JSON válido",
"error-json-schema": "Tus datos JSON no incluyen la información correcta en el formato adecuado",
"error-list-doesNotExist": "Esta lista no existe",
"error-user-doesNotExist": "Este usuario no existe",
"error-user-notAllowSelf": "No podés invitarte a vos mismo",
"error-user-notCreated": " El usuario no se creó",
"error-username-taken": "El nombre de usuario ya existe",
"error-email-taken": "El email ya existe",
"export-board": "Exportar tablero",
"filter": "Filtrar",
"filter-cards": "Filtrar Tarjetas",
"filter-clear": "Sacar filtro",
"filter-no-label": "Sin etiqueta",
"filter-no-member": "No es miembro",
"filter-on": "El filtro está activado",
"filter-on-desc": "Estás filtrando cartas en este tablero. Clickeá acá para editar el filtro.",
"filter-to-selection": "Filtrar en la selección",
"fullname": "Nombre Completo",
"header-logo-title": "Retroceder a tu página de tableros.",
"hide-system-messages": "Esconder mensajes del sistema",
"headerBarCreateBoardPopup-title": "Crear Tablero",
"home": "Inicio",
"import": "Importar",
"import-board": "importar tablero",
"import-board-c": "Importar tablero",
"import-board-title-trello": "Importar tablero de Trello",
"import-board-title-wekan": "Importar tablero de Wekan",
"import-sandstorm-warning": "El tablero importado va a borrar todos los datos existentes en el tablero y reemplazarlos con los del tablero en cuestión.",
"from-trello": "De Trello",
"from-wekan": "De Wekan",
"import-board-instruction-trello": "En tu tablero de Trello, ve a 'Menú', luego a 'Más', 'Imprimir y Exportar', 'Exportar JSON', y copia el texto resultante.",
"import-board-instruction-wekan": "En tu tablero Wekan, ve a 'Menú', luego a 'Exportar tablero', y copia el texto en el archivo descargado.",
"import-json-placeholder": "Pegá tus datos JSON válidos acá",
"import-map-members": "Mapear Miembros",
"import-members-map": "Tu tablero importado tiene algunos miembros. Por favor mapeá los miembros que quieras importar/convertir a usuarios de Wekan.",
"import-show-user-mapping": "Revisar mapeo de miembros",
"import-user-select": "Elegí el usuario de Wekan que querés usar como éste miembro",
"importMapMembersAddPopup-title": "Elegí el miembro de Wekan.",
"info": "Versión",
"initials": "Iniciales",
"invalid-date": "Fecha inválida",
"invalid-time": "Tiempo inválido",
"invalid-user": "Usuario inválido",
"joined": "unido",
"just-invited": "Fuiste invitado a este tablero",
"keyboard-shortcuts": "Atajos de teclado",
"label-create": "Crear Etiqueta",
"label-default": "%s etiqueta (por defecto)",
"label-delete-pop": "No hay deshacer. Esto va a eliminar esta etiqueta de todas las tarjetas y destruir su historia.",
"labels": "Etiquetas",
"language": "Lenguaje",
"last-admin-desc": "No podés cambiar roles porque tiene que haber al menos un administrador.",
"leave-board": "Dejar Tablero",
"leave-board-pop": "¿Estás seguro que querés dejar __boardTitle__? Vas a salir de todas las tarjetas en este tablero.",
"leaveBoardPopup-title": "¿Dejar Tablero?",
"link-card": "Enlace a esta tarjeta",
"list-archive-cards": "Archivar todas las tarjetas en esta lista",
"list-archive-cards-pop": "Esto va a eliminar las tarjetas en esta lista del tablero. Para ver tarjetas archivadas y traerlas de vuelta al tablero, clickeá \"Menú\" > \"Items Archivados\".",
"list-move-cards": "Mueve todas las tarjetas en esta lista",
"list-select-cards": "Selecciona todas las tarjetas en esta lista",
"listActionPopup-title": "Listar Acciones",
"swimlaneActionPopup-title": "Swimlane Actions",
"listImportCardPopup-title": "Importar una tarjeta Trello",
"listMorePopup-title": "Mas",
"link-list": "Enlace a esta lista",
"list-delete-pop": "Todas las acciones van a ser eliminadas del agregador de actividad y no podás recuperar la lista. No se puede deshacer.",
"list-delete-suggest-archive": "Podés archivar la lista para eliminarla del tablero y preservar la actividad.",
"lists": "Listas",
"swimlanes": "Swimlanes",
"log-out": "Salir",
"log-in": "Entrar",
"loginPopup-title": "Entrar",
"memberMenuPopup-title": "Opciones de Miembros",
"members": "Miembros",
"menu": "Menú",
"move-selection": "Mover selección",
"moveCardPopup-title": "Mover Tarjeta",
"moveCardToBottom-title": "Mover al Final",
"moveCardToTop-title": "Mover al Tope",
"moveSelectionPopup-title": "Mover selección",
"multi-selection": "Multi-Selección",
"multi-selection-on": "Multi-selección está activo",
"muted": "Silenciado",
"muted-info": "No serás notificado de ningún cambio en este tablero",
"my-boards": "Mis Tableros",
"name": "Nombre",
"no-archived-cards": "No hay tarjetas archivadas.",
"no-archived-lists": "No hay listas archivadas.",
"no-archived-swimlanes": "No archived swimlanes.",
"no-results": "No hay resultados",
"normal": "Normal",
"normal-desc": "Puede ver y editar tarjetas. No puede cambiar opciones.",
"not-accepted-yet": "Invitación no aceptada todavía",
"notify-participate": "Recibí actualizaciones en cualquier tarjeta que participés como creador o miembro",
"notify-watch": "Recibí actualizaciones en cualquier tablero, lista, o tarjeta que estés siguiendo",
"optional": "opcional",
"or": "o",
"page-maybe-private": "Esta página puede ser privada. Vos podrás verla <a href='%s'>entrando</a>.",
"page-not-found": "Página no encontrada.",
"password": "Contraseña",
"paste-or-dragdrop": "pegar, arrastrar y soltar el archivo de imagen a esto (imagen sola)",
"participating": "Participando",
"preview": "Previsualización",
"previewAttachedImagePopup-title": "Previsualización",
"previewClipboardImagePopup-title": "Previsualización",
"private": "Privado",
"private-desc": "Este tablero es privado. Solo personas agregadas a este tablero pueden verlo y editarlo.",
"profile": "Perfil",
"public": "Público",
"public-desc": "Este tablero es público. Es visible para cualquiera con un enlace y se va a mostrar en los motores de búsqueda como Google. Solo personas agregadas a este tablero pueden editarlo.",
"quick-access-description": "Dale una estrella al tablero para agregar un acceso directo en esta barra.",
"remove-cover": "Remover Portada",
"remove-from-board": "Remover del Tablero",
"remove-label": "Remover Etiqueta",
"listDeletePopup-title": "¿Borrar Lista?",
"remove-member": "Remover Miembro",
"remove-member-from-card": "Remover de Tarjeta",
"remove-member-pop": "¿Remover __name__ (__username__) de __boardTitle__? Los miembros va a ser removido de todas las tarjetas en este tablero. Serán notificados.",
"removeMemberPopup-title": "¿Remover Miembro?",
"rename": "Renombrar",
"rename-board": "Renombrar Tablero",
"restore": "Restaurar",
"save": "Grabar",
"search": "Buscar",
"select-color": "Seleccionar Color",
"set-wip-limit-value": "Fijar un límite para el número máximo de tareas en esta lista",
"setWipLimitPopup-title": "Establecer Límite TEP",
"shortcut-assign-self": "Asignarte a vos mismo en la tarjeta actual",
"shortcut-autocomplete-emoji": "Autocompletar emonji",
"shortcut-autocomplete-members": "Autocompletar miembros",
"shortcut-clear-filters": "Limpiar todos los filtros",
"shortcut-close-dialog": "Cerrar Diálogo",
"shortcut-filter-my-cards": "Filtrar mis tarjetas",
"shortcut-show-shortcuts": "Traer esta lista de atajos",
"shortcut-toggle-filterbar": "Activar/Desactivar Barra Lateral de Filtros",
"shortcut-toggle-sidebar": "Activar/Desactivar Barra Lateral de Tableros",
"show-cards-minimum-count": "Mostrar cuenta de tarjetas si la lista contiene más que",
"sidebar-open": "Abrir Barra Lateral",
"sidebar-close": "Cerrar Barra Lateral",
"signupPopup-title": "Crear Cuenta",
"star-board-title": "Clickear para darle una estrella a este tablero. Se mostrará arriba en el tope de tu lista de tableros.",
"starred-boards": "Tableros con estrellas",
"starred-boards-description": "Tableros con estrellas se muestran en el tope de tu lista de tableros.",
"subscribe": "Suscribirse",
"team": "Equipo",
"this-board": "este tablero",
"this-card": "esta tarjeta",
"spent-time-hours": "Tiempo empleado (horas)",
"overtime-hours": "Sobretiempo (horas)",
"overtime": "Sobretiempo",
"has-overtime-cards": "Tiene tarjetas con sobretiempo",
"has-spenttime-cards": "Has spent time cards",
"time": "Hora",
"title": "Título",
"tracking": "Seguimiento",
"tracking-info": "Serás notificado de cualquier cambio a aquellas tarjetas en las que seas creador o miembro.",
"unassign-member": "Desasignar miembro",
"unsaved-description": "Tienes una descripción sin guardar.",
"unwatch": "Dejar de seguir",
"upload": "Cargar",
"upload-avatar": "Cargar un avatar",
"uploaded-avatar": "Cargado un avatar",
"username": "Nombre de usuario",
"view-it": "Verlo",
"warn-list-archived": "cuidado; esta tarjeta está en una lista archivada",
"watch": "Seguir",
"watching": "Siguiendo",
"watching-info": "Serás notificado de cualquier cambio en este tablero",
"welcome-board": "Tablero de Bienvenida",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Básicos",
"welcome-list2": "Avanzado",
"what-to-do": "¿Qué querés hacer?",
"wipLimitErrorPopup-title": "Límite TEP Inválido",
"wipLimitErrorPopup-dialog-pt1": " El número de tareas en esta lista es mayor que el límite TEP que definiste.",
"wipLimitErrorPopup-dialog-pt2": "Por favor mové algunas tareas fuera de esta lista, o seleccioná un límite TEP más alto.",
"admin-panel": "Panel de Administración",
"settings": "Opciones",
"people": "Gente",
"registration": "Registro",
"disable-self-registration": "Desactivar auto-registro",
"invite": "Invitar",
"invite-people": "Invitar Gente",
"to-boards": "A tarjeta(s)",
"email-addresses": "Dirección de Email",
"smtp-host-description": "La dirección del servidor SMTP que maneja tus emails",
"smtp-port-description": "El puerto que tu servidor SMTP usa para correos salientes",
"smtp-tls-description": "Activar soporte TLS para el servidor SMTP",
"smtp-host": "Servidor SMTP",
"smtp-port": "Puerto SMTP",
"smtp-username": "Usuario",
"smtp-password": "Contraseña",
"smtp-tls": "Soporte TLS",
"send-from": "De",
"send-smtp-test": "Enviarse un email de prueba",
"invitation-code": "Código de Invitación",
"email-invite-register-subject": "__inviter__ te envió una invitación",
"email-invite-register-text": "Querido __user__,\n\n__inviter__ te invita a Wekan para colaborar.\n\nPor favor sigue el enlace de abajo:\n__url__\n\nI tu código de invitación es: __icode__\n\nGracias.",
"email-smtp-test-subject": "Email de Prueba SMTP de Wekan",
"email-smtp-test-text": "Enviaste el correo correctamente",
"error-invitation-code-not-exist": "El código de invitación no existe",
"error-notAuthorized": "No estás autorizado para ver esta página.",
"outgoing-webhooks": "Ganchos Web Salientes",
"outgoingWebhooksPopup-title": "Ganchos Web Salientes",
"new-outgoing-webhook": "Nuevo Gancho Web",
"no-name": "(desconocido)",
"Wekan_version": "Versión de Wekan",
"Node_version": "Versión de Node",
"OS_Arch": "Arch del SO",
"OS_Cpus": "Cantidad de CPU del SO",
"OS_Freemem": "Memoria Libre del SO",
"OS_Loadavg": "Carga Promedio del SO",
"OS_Platform": "Plataforma del SO",
"OS_Release": "Revisión del SO",
"OS_Totalmem": "Memoria Total del SO",
"OS_Type": "Tipo de SO",
"OS_Uptime": "Tiempo encendido del SO",
"hours": "horas",
"minutes": "minutos",
"seconds": "segundos",
"yes": "Si",
"no": "No",
"accounts": "Cuentas",
"accounts-allowEmailChange": "Permitir Cambio de Email",
"createdAt": "Creado en",
"verified": "Verificado",
"active": "Activo"
}
+303 -261
View File
@@ -1,288 +1,313 @@
{
"accept": "Aceptar",
"act-activity-notify": "[Wekan] Notificación de Actividad",
"act-addAttachment": "adjuntado __attachment__ a __card__",
"act-addChecklist": "added checklist __checklist__ to __card__",
"act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__",
"act-addComment": "comentado en __card__: __comment__",
"act-createBoard": "creado __board__",
"act-createCard": "añadido __card__ a __list__",
"act-createList": "añadido __list__ a __board__",
"act-addBoardMember": "añadido __member__ a __board__",
"act-archivedBoard": "__board__ archivado",
"act-archivedCard": "__card__ archivada",
"act-archivedList": "__list__ archivada",
"act-importBoard": "__board__ importado",
"act-importCard": "__card__ importada",
"act-importList": "__list__ importada",
"act-joinMember": "añadido __member__ to __card__",
"act-moveCard": "movida __card__ desde __oldList__ a __list__",
"act-removeBoardMember": "borrado __member__ de __board__",
"act-restoredCard": "restaurada __card__ en __board__",
"act-unjoinMember": "borrado __member__ de __card__",
"act-activity-notify": "[Wekan] Notificación de actividad",
"act-addAttachment": "ha adjuntado __attachment__ a __card__",
"act-addChecklist": "ha añadido la lista de tareas __checklist__ a __card__",
"act-addChecklistItem": "ha añadido __checklistItem__ a la lista de tareas __checklist__ en __card__",
"act-addComment": "ha comentado en __card__: __comment__",
"act-createBoard": "ha creado __board__",
"act-createCard": "ha añadido __card__ a __list__",
"act-createList": "ha añadido __list__ a __board__",
"act-addBoardMember": "ha añadido a __member__ a __board__",
"act-archivedBoard": "ha archivado __board__",
"act-archivedCard": "ha archivado __card__",
"act-archivedList": "ha archivado __list__",
"act-archivedSwimlane": "ha archivado __swimlane__",
"act-importBoard": "ha importado __board__",
"act-importCard": "ha importado __card__",
"act-importList": "ha importado __list__",
"act-joinMember": "ha añadido a __member__ a __card__",
"act-moveCard": "ha movido __card__ desde __oldList__ a __list__",
"act-removeBoardMember": "ha desvinculado a __member__ de __board__",
"act-restoredCard": "ha restaurado __card__ en __board__",
"act-unjoinMember": "ha desvinculado a __member__ de __card__",
"act-withBoardTitle": "[Wekan] __board__",
"act-withCardTitle": "[__board__] __card__",
"actions": "Acciones",
"activities": "Activities",
"activities": "Actividades",
"activity": "Actividad",
"activity-added": "añadido %s a %s",
"activity-archived": "archivado %s",
"activity-attached": "adjuntado %s a %s",
"activity-created": "creado %s",
"activity-excluded": "excluido %s de %s",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
"activity-joined": "se ha unido %s",
"activity-moved": "movido %s de %s a %s",
"activity-added": "ha añadido %s a %s",
"activity-archived": "ha archivado %s",
"activity-attached": "ha adjuntado %s a %s",
"activity-created": "ha creado %s",
"activity-excluded": "ha excluido %s de %s",
"activity-imported": "ha importado %s a %s desde %s",
"activity-imported-board": "ha importado %s desde %s",
"activity-joined": "se ha unido a %s",
"activity-moved": "ha movido %s de %s a %s",
"activity-on": "en %s",
"activity-removed": "eliminado %s de %s",
"activity-sent": "enviado %s a %s",
"activity-unjoined": "unjoined %s",
"activity-checklist-added": "añadida lista de tareas a %s",
"activity-checklist-item-added": "added checklist item to '%s' in %s",
"activity-removed": "ha eliminado %s de %s",
"activity-sent": "ha enviado %s a %s",
"activity-unjoined": "se ha desvinculado de %s",
"activity-checklist-added": "ha añadido una lista de tareas a %s",
"activity-checklist-item-added": "ha añadido el elemento de la lista de tareas a '%s' en %s",
"add": "Añadir",
"add-attachment": "Agregar Adjunto",
"add-board": "Agregar Tablero",
"add-card": "Agregar Tarjeta",
"add-checklist": "Agregar Lista de Tareas",
"add-checklist-item": "Agregar un ítem a la lista de tareas",
"add-cover": "Añadir cubierta",
"add-label": "Agregar Etiqueta",
"add-list": "Agregar Lista",
"add-members": "Añadir Miembros",
"added": "Añadido",
"add-attachment": "Añadir adjunto",
"add-board": "Añadir tablero",
"add-card": "Añadir una tarjeta",
"add-swimlane": "Añadir un carril de flujo",
"add-checklist": "Añadir una lista de tareas",
"add-checklist-item": "Añadir un elemento a la lista de tareas",
"add-cover": "Añadir portada",
"add-label": "Añadir una etiqueta",
"add-list": "Añadir una lista",
"add-members": "Añadir miembros",
"added": "Añadida el",
"addMemberPopup-title": "Miembros",
"admin": "Administrador",
"admin-desc": "Puedes ver y editar fichas, eliminar miembros, y cambiar los ajustes del tablero",
"admin-desc": "Puedes ver y editar tarjetas, eliminar miembros, y cambiar los ajustes del tablero",
"admin-announcement": "Aviso",
"admin-announcement-active": "Activar el aviso para todo el sistema",
"admin-announcement-title": "Aviso del administrador",
"all-boards": "Tableros",
"and-n-other-card": "And __count__ other card",
"and-n-other-card_plural": "And __count__ other cards",
"and-n-other-card": "y __count__ tarjeta más",
"and-n-other-card_plural": "y otras __count__ tarjetas",
"apply": "Aplicar",
"app-is-offline": "Wekan está cargando, por favor espere. Actualizar la página generará pérdida de datos. Si Wekan no carga, por favor verifique que el servidor de Wekan no ha sido detenido.",
"archive": "Guardar",
"archive-all": "Guardar Todo",
"archive-board": "Archive Board",
"archive-card": "Archivo Tarjeta",
"archive-list": "Archivar Lista",
"archive-selection": "Archive selection",
"archiveBoardPopup-title": "Archive Board?",
"archived-items": "Items archivados",
"archived-boards": "Tableros Archivados",
"restore-board": "Restaurar Tablero",
"no-archived-boards": "No hay Tableros Archivados",
"archives": "Archives",
"app-is-offline": "Wekan se está cargando, por favor espere. Actualizar la página provocará la pérdida de datos. Si Wekan no se carga, por favor verifique que el servidor de Wekan no está detenido.",
"archive": "Archivar",
"archive-all": "Archivar todo",
"archive-board": "Archivar el tablero",
"archive-card": "Archivar la tarjeta",
"archive-list": "Archivar la lista",
"archive-swimlane": "Archivar el carril de flujo",
"archive-selection": "Archivar la selección",
"archiveBoardPopup-title": "¿Archivar el tablero?",
"archived-items": "Elementos archivados",
"archived-boards": "Tableros archivados",
"restore-board": "Restaurar el tablero",
"no-archived-boards": "No hay tableros archivados.",
"archives": "Archivos",
"assign-member": "Asignar miembros",
"attached": "adjuntado",
"attachment": "Adjunto",
"attachment-delete-pop": "El borrado de un archivo adjunto es permanente. No se puede deshacer.",
"attachmentDeletePopup-title": "¿Borrar adjunto?",
"attachment-delete-pop": "La eliminación de un fichero adjunto es permanente. Esta acción no puede deshacerse.",
"attachmentDeletePopup-title": "¿Eliminar el adjunto?",
"attachments": "Adjuntos",
"auto-watch": "Suscribirse automáticamente a los tableros cuando son creados",
"avatar-too-big": "El avatares muy grande (70KB máx.)",
"avatar-too-big": "El avatar es muy grande (70KB máx.)",
"back": "Atrás",
"board-change-color": "Cambiar color",
"board-nb-stars": "%s stars",
"board-change-color": "Cambiar el color",
"board-nb-stars": "%s destacados",
"board-not-found": "Tablero no encontrado",
"board-private-info": "This board will be <strong>private</strong>.",
"board-private-info": "Este tablero será <strong>privado</strong>.",
"board-public-info": "Este tablero será <strong>público</strong>.",
"boardChangeColorPopup-title": "Change Board Background",
"boardChangeTitlePopup-title": "Renombrar tablero",
"boardChangeColorPopup-title": "Cambiar el fondo del tablero",
"boardChangeTitlePopup-title": "Renombrar el tablero",
"boardChangeVisibilityPopup-title": "Cambiar visibilidad",
"boardChangeWatchPopup-title": "Cambiar Vigilancia",
"boardMenuPopup-title": "Board Menu",
"boardChangeWatchPopup-title": "Cambiar vigilancia",
"boardMenuPopup-title": "Menú del tablero",
"boards": "Tableros",
"bucket-example": "Like “Bucket List” for example",
"board-view": "Vista de tablero",
"board-view-swimlanes": "Carril de flujo",
"board-view-lists": "Listas",
"bucket-example": "Como “Cosas por hacer” por ejemplo",
"cancel": "Cancelar",
"card-archived": "Esta ficha está archivada.",
"card-comments-title": "Esta ficha tiene %s comentarios.",
"card-delete-notice": "El borrado es permanente. Perderás todas las acciones asociadas a esta ficha.",
"card-delete-pop": "All actions will be removed from the activity feed and you won't be able to re-open the card. There is no undo.",
"card-delete-suggest-archive": "You can archive a card to remove it from the board and preserve the activity.",
"card-due": "Motivo",
"card-due-on": "Debido a",
"card-edit-attachments": "Edit attachments",
"card-edit-labels": "Edit labels",
"card-edit-members": "Editar miembros",
"card-labels-title": "Cambia las etiquetas de la ficha",
"card-members-title": "Añadir o eliminar miembros del tablero desde la ficha.",
"card-archived": "Esta tarjeta está ahora archivada.",
"card-comments-title": "Esta tarjeta tiene %s comentarios.",
"card-delete-notice": "la eliminación es permanente. Perderás todas las acciones asociadas a esta tarjeta.",
"card-delete-pop": "Se eliminarán todas las acciones del historial de actividades y no se podrá volver a abrir la tarjeta. Esta acción no puede deshacerse.",
"card-delete-suggest-archive": "Puede archivar una tarjeta para eliminarla del tablero y conservar la actividad.",
"card-due": "Finalizar",
"card-due-on": "Vence el",
"card-spent": "Tiempo consumido",
"card-edit-attachments": "Editar los adjuntos",
"card-edit-labels": "Editar las etiquetas",
"card-edit-members": "Editar los miembros",
"card-labels-title": "Cambia las etiquetas de la tarjeta",
"card-members-title": "Añadir o eliminar miembros del tablero desde la tarjeta.",
"card-start": "Empezar",
"card-start-on": "Empieza",
"cardAttachmentsPopup-title": "Attach From",
"cardDeletePopup-title": "¿Borrar ficha?",
"cardDetailsActionsPopup-title": "Card Actions",
"card-start-on": "Empieza el",
"cardAttachmentsPopup-title": "Adjuntar desde",
"cardDeletePopup-title": "¿Eliminar la tarjeta?",
"cardDetailsActionsPopup-title": "Acciones de la tarjeta",
"cardLabelsPopup-title": "Etiquetas",
"cardMembersPopup-title": "Miembros",
"cardMorePopup-title": "Más",
"cards": "Tarjetas",
"change": "Change",
"change-avatar": "Cambiar Avatar",
"change-password": "Cambiar la clave",
"change-permissions": "Cambiar permisos",
"change-settings": "Cambiar Preferencias",
"changeAvatarPopup-title": "Cambiar Avatar",
"changeLanguagePopup-title": "Cambiar idioma",
"changePasswordPopup-title": "Cambiar la clave",
"changePermissionsPopup-title": "Cambiar permisos",
"changeSettingsPopup-title": "Cambiar Preferencias",
"checklists": "Lista de Tareas",
"change": "Cambiar",
"change-avatar": "Cambiar el avatar",
"change-password": "Cambiar la contraseña",
"change-permissions": "Cambiar los permisos",
"change-settings": "Cambiar las preferencias",
"changeAvatarPopup-title": "Cambiar el avatar",
"changeLanguagePopup-title": "Cambiar el idioma",
"changePasswordPopup-title": "Cambiar la contraseña",
"changePermissionsPopup-title": "Cambiar los permisos",
"changeSettingsPopup-title": "Cambiar las preferencias",
"checklists": "Lista de tareas",
"click-to-star": "Haz clic para destacar este tablero.",
"click-to-unstar": "Haz clic para dejar de destacar este tablero.",
"clipboard": "Clipboard or drag & drop",
"clipboard": "el portapapeles o con arrastrar y soltar",
"close": "Cerrar",
"close-board": "Cerrar el tablero",
"close-board-pop": "You will be able to restore the board by clicking the “Archives” button from the home header.",
"color-black": "black",
"color-blue": "blue",
"color-green": "green",
"color-lime": "lime",
"color-orange": "orange",
"color-pink": "pink",
"color-purple": "purple",
"color-red": "red",
"color-sky": "sky",
"color-yellow": "yellow",
"comment": "Comentario",
"comment-placeholder": "Escribir Comentario",
"comment-only": "Sólo comentario",
"comment-only-desc": "Solo se puede comentar en tarjetas.",
"computer": "Ordenador",
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist",
"copy-card-link-to-clipboard": "Copiar enlace a la tarjeta al portapapeles",
"copyCardPopup-title": "Copy Card",
"close-board-pop": "Podrá restaurar el tablero haciendo clic en el botón 'Archivos' en el encabezado al inicio.",
"color-black": "negra",
"color-blue": "azul",
"color-green": "verde",
"color-lime": "lima",
"color-orange": "naranja",
"color-pink": "rosa",
"color-purple": "violeta",
"color-red": "roja",
"color-sky": "celeste",
"color-yellow": "amarilla",
"comment": "Comentar",
"comment-placeholder": "Escribir comentario",
"comment-only": "Sólo comentarios",
"comment-only-desc": "Solo se puede comentar en las tarjetas.",
"computer": "el ordenador",
"confirm-checklist-delete-dialog": "¿Seguro que desea eliminar la lista de tareas",
"copy-card-link-to-clipboard": "Copiar el enlace de la tarjeta al portapapeles",
"copyCardPopup-title": "Copiar la tarjeta",
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
"create": "Crear",
"createBoardPopup-title": "Crear tablero",
"chooseBoardSourcePopup-title": "Importar tablero",
"chooseBoardSourcePopup-title": "Importar un tablero",
"createLabelPopup-title": "Crear etiqueta",
"current": "actual",
"date": "Fecha",
"decline": "Decline",
"decline": "Declinar",
"default-avatar": "Avatar por defecto",
"delete": "Borrar",
"deleteLabelPopup-title": "Borrar etiqueta",
"description": "Descripcion",
"disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
"disambiguateMultiMemberPopup-title": "Disambiguate Member Action",
"discard": "Discard",
"done": "Done",
"delete": "Eliminar",
"deleteLabelPopup-title": "¿Eliminar la etiqueta?",
"description": "Descripción",
"disambiguateMultiLabelPopup-title": "Desambiguar la acción de etiqueta",
"disambiguateMultiMemberPopup-title": "Desambiguar la acción de miembro",
"discard": "Descartar",
"done": "Hecho",
"download": "Descargar",
"edit": "Editar",
"edit-avatar": "Cambiar Avatar",
"edit-profile": "Edit Profile",
"editCardStartDatePopup-title": "Cambiar fecha de inicio",
"editCardDueDatePopup-title": "Cambiar fecha de motivo",
"editLabelPopup-title": "Cambiar etiqueta",
"editNotificationPopup-title": "Editar Notificación",
"editProfilePopup-title": "Edit Profile",
"edit-avatar": "Cambiar el avatar",
"edit-profile": "Editar el perfil",
"edit-wip-limit": "Cambiar el límite del TEP",
"soft-wip-limit": "Límite del TEP flexible",
"editCardStartDatePopup-title": "Cambiar la fecha de inicio",
"editCardDueDatePopup-title": "Cambiar la fecha de vencimiento",
"editCardSpentTimePopup-title": "Cambiar el tiempo consumido",
"editLabelPopup-title": "Cambiar la etiqueta",
"editNotificationPopup-title": "Editar las notificaciones",
"editProfilePopup-title": "Editar el perfil",
"email": "Correo electrónico",
"email-enrollAccount-subject": "An account created for you on __siteName__",
"email-enrollAccount-text": "Hello __user__,\n\nTo start using the service, simply click the link below.\n\n__url__\n\nThanks.",
"email-fail": "Sending email failed",
"email-invalid": "Invalid email",
"email-invite": "Invite via Email",
"email-invite-subject": "__inviter__ sent you an invitation",
"email-invite-text": "Dear __user__,\n\n__inviter__ invites you to join board \"__board__\" for collaborations.\n\nPlease follow the link below:\n\n__url__\n\nThanks.",
"email-resetPassword-subject": "Reset your password on __siteName__",
"email-resetPassword-text": "Hello __user__,\n\nTo reset your password, simply click the link below.\n\n__url__\n\nThanks.",
"email-sent": "Email sent",
"email-verifyEmail-subject": "Verify your email address on __siteName__",
"email-verifyEmail-text": "Hello __user__,\n\nTo verify your account email, simply click the link below.\n\n__url__\n\nThanks.",
"error-board-doesNotExist": "This board does not exist",
"error-board-notAdmin": "You need to be admin of this board to do that",
"error-board-notAMember": "You need to be a member of this board to do that",
"error-json-malformed": "Your text is not valid JSON",
"error-json-schema": "Your JSON data does not include the proper information in the correct format",
"error-list-doesNotExist": "This list does not exist",
"error-user-doesNotExist": "This user does not exist",
"email-enrollAccount-subject": "Cuenta creada en __siteName__",
"email-enrollAccount-text": "Hola __user__,\n\nPara empezar a utilizar el servicio, simplemente haz clic en el siguiente enlace.\n\n__url__\n\nGracias.",
"email-fail": "Error al enviar el correo",
"email-fail-text": "Error al intentar enviar el correo",
"email-invalid": "Correo no válido",
"email-invite": "Invitar vía correo electrónico",
"email-invite-subject": "__inviter__ ha enviado una invitación",
"email-invite-text": "Estimado __user__,\n\n__inviter__ te invita a unirte al tablero '__board__' para colaborar.\n\nPor favor, haz clic en el siguiente enlace:\n\n__url__\n\nGracias.",
"email-resetPassword-subject": "Restablecer tu contraseña en __siteName__",
"email-resetPassword-text": "Hola __user__,\n\nPara restablecer tu contraseña, haz clic en el siguiente enlace.\n\n__url__\n\nGracias.",
"email-sent": "Correo enviado",
"email-verifyEmail-subject": "Verifica tu dirección de correo en __siteName__",
"email-verifyEmail-text": "Hola __user__,\n\nPara verificar tu cuenta de correo electrónico, haz clic en el siguiente enlace.\n\n__url__\n\nGracias.",
"enable-wip-limit": "Activar el límite del TEP",
"error-board-doesNotExist": "El tablero no existe",
"error-board-notAdmin": "Es necesario ser administrador de este tablero para hacer eso",
"error-board-notAMember": "Es necesario ser miembro de este tablero para hacer eso",
"error-json-malformed": "El texto no es un JSON válido",
"error-json-schema": "Sus datos JSON no incluyen la información apropiada en el formato correcto",
"error-list-doesNotExist": "La lista no existe",
"error-user-doesNotExist": "El usuario no existe",
"error-user-notAllowSelf": "No puedes invitarte a ti mismo",
"error-user-notCreated": "This user is not created",
"error-user-notCreated": "El usuario no ha sido creado",
"error-username-taken": "Este nombre de usuario ya está en uso",
"error-email-taken": "Esta direccion de Email ya está en uso",
"export-board": "Export board",
"filter": "Filter",
"filter-cards": "Fichas de filtro",
"filter-clear": "Clear filter",
"error-email-taken": "Esta dirección de correo ya está en uso",
"export-board": "Exportar el tablero",
"filter": "Filtro",
"filter-cards": "Filtrar tarjetas",
"filter-clear": "Limpiar filtro",
"filter-no-label": "Sin etiqueta",
"filter-no-member": "Sin miembro",
"filter-on": "Filtro activo",
"filter-on-desc": "Estás filtrando fichas en este tablero. Haz clic aquí para editar el filtro.",
"filter-to-selection": "Filter to selection",
"fullname": "Nombre Completo",
"filter-on": "Filtro activado",
"filter-on-desc": "Estás filtrando tarjetas en este tablero. Haz clic aquí para editar el filtro.",
"filter-to-selection": "Filtrar la selección",
"fullname": "Nombre completo",
"header-logo-title": "Volver a tu página de tableros",
"hide-system-messages": "Ocultar los mensajes del sistema",
"hide-system-messages": "Ocultar las notificaciones de actividad",
"headerBarCreateBoardPopup-title": "Crear tablero",
"home": "Inicio",
"import": "Importar",
"import-board": "importar tablero",
"import-board-c": "Importar tablero",
"import-board-title-trello": "Importar tablero desde Trello",
"import-board-title-wekan": "Importar tablero desde Wekan",
"import-sandstorm-warning": "El tablero importado va a borrar todos los datos existentes en este tablero y reemplazarlos con los datos del tablero importado.",
"import-board": "importar un tablero",
"import-board-c": "Importar un tablero",
"import-board-title-trello": "Importar un tablero desde Trello",
"import-board-title-wekan": "Importar un tablero desde Wekan",
"import-sandstorm-warning": "El tablero importado eliminará todos los datos existentes en este tablero y los reemplazará con los datos del tablero importado.",
"from-trello": "Desde Trello",
"from-wekan": "Desde Wekan",
"import-board-instruction-trello": "In your Trello board, go to 'Menu', then 'More', 'Print and Export', 'Export JSON', and copy the resulting text",
"import-board-instruction-wekan": "En tu tablero Wekan, ve a 'Menu', luego 'Exportar tablero', y copia el texto en el archivo descargado.",
"import-json-placeholder": "Paste your valid JSON data here",
"import-board-instruction-trello": "En tu tablero de Trello, ve a 'Menú', luego 'Más' > 'Imprimir y exportar' > 'Exportar JSON', y copia el texto resultante.",
"import-board-instruction-wekan": "En tu tablero Wekan, ve a 'Menú', luego 'Exportar el tablero', y copia el texto del fichero descargado.",
"import-json-placeholder": "Pega tus datos JSON válidos aquí",
"import-map-members": "Mapa de miembros",
"import-members-map": "Your imported board has some members. Please map the members you want to import to Wekan users",
"import-show-user-mapping": "Review members mapping",
"import-user-select": "Pick the Wekan user you want to use as this member",
"importMapMembersAddPopup-title": "Seleccionar un miembro de Wekan",
"import-members-map": "El tablero importado tiene algunos miembros. Por favor mapea los miembros que deseas importar a los usuarios de Wekan",
"import-show-user-mapping": "Revisión de la asignación de miembros",
"import-user-select": "Escoge el usuario de Wekan que deseas utilizar como miembro",
"importMapMembersAddPopup-title": "Selecciona un miembro de Wekan",
"info": "Versión",
"initials": "Iniciales",
"invalid-date": "Fecha no Válida",
"invalid-date": "Fecha no válida",
"invalid-time": "Tiempo no válido",
"invalid-user": "Usuario no válido",
"joined": "se ha unido",
"just-invited": "You are just invited to this board",
"just-invited": "Has sido invitado a este tablero",
"keyboard-shortcuts": "Atajos de teclado",
"label-create": "Crear etiqueta",
"label-default": "%s etiqueta (por Defecto)",
"label-delete-pop": "No se puede deshacer. Esto eliminará esta etiqueta de todas las fichas y destruirá su historia.",
"label-create": "Crear una etiqueta",
"label-default": "etiqueta %s (por defecto)",
"label-delete-pop": "Esto eliminará esta etiqueta de todas las tarjetas y destruirá su historial. Esta acción no puede deshacerse.",
"labels": "Etiquetas",
"language": "Idioma",
"language": "Cambiar el idioma",
"last-admin-desc": "No puedes cambiar roles porque debe haber al menos un administrador.",
"leave-board": "Dejar el Tablero",
"link-card": "Enlace a esta ficha",
"list-archive-cards": "Archive all cards in this list",
"list-archive-cards-pop": "Esto eliminara todas las fichas de esta lista del tablero. Para ver fichas archivadas y recuperarlas en el tablero, haz clic en \"Menu\" / \"Artículos Archivados\".",
"list-move-cards": "Move all cards in this list",
"list-select-cards": "Select all cards in this list",
"leave-board": "Abandonar el tablero",
"leave-board-pop": "¿Seguro que quieres abandonar __boardTitle__? Serás desvinculado de todas las tarjetas en este tablero.",
"leaveBoardPopup-title": "¿Abandonar el tablero?",
"link-card": "Enlace a esta tarjeta",
"list-archive-cards": "Archivar todas las tarjetas de esta lista",
"list-archive-cards-pop": "Esto eliminara todas las tarjetas de esta lista del tablero. Para ver las tarjetas archivadas y recuperarlas en el tablero, haz clic en 'Menú' > 'Elementos archivados'.",
"list-move-cards": "Mover todas las tarjetas de esta lista",
"list-select-cards": "Seleccionar todas las tarjetas de esta lista",
"listActionPopup-title": "Acciones de la lista",
"swimlaneActionPopup-title": "Acciones del carril de flujo",
"listImportCardPopup-title": "Importar una tarjeta de Trello",
"listMorePopup-title": "Más",
"link-list": "Enlace a esta lista",
"list-delete-pop": "Todas las acciones serán borradas del feed de actividad y no podrá recuperar la lista. Esta acción no puede deshacerse.",
"list-delete-suggest-archive": "Puede archivar una lista para quitarla del tablero y preservar la actividad",
"list-delete-pop": "Todas las acciones serán eliminadas del historial de actividades y no se podrá recuperar la lista. Esta acción no puede deshacerse.",
"list-delete-suggest-archive": "Puede archivar una lista para quitarla del tablero y preservar así sus actividades.",
"lists": "Listas",
"log-out": "Finalizar la sesion",
"log-in": "Iniciar sesion",
"loginPopup-title": "Iniciar sesion",
"memberMenuPopup-title": "Preferencias de Miembro",
"swimlanes": "Carril de flujo",
"log-out": "Finalizar la sesión",
"log-in": "Iniciar sesión",
"loginPopup-title": "Iniciar sesión",
"memberMenuPopup-title": "Mis preferencias",
"members": "Miembros",
"menu": "Menu",
"move-selection": "Mover selección",
"moveCardPopup-title": "Move Card",
"moveCardToBottom-title": "Mover al Final",
"moveCardToTop-title": "Movel al Principio",
"moveSelectionPopup-title": "Mover selección",
"multi-selection": "Multi-Selección",
"multi-selection-on": "Multi-Selección activada",
"menu": "Menú",
"move-selection": "Mover la selección",
"moveCardPopup-title": "Mover la tarjeta",
"moveCardToBottom-title": "Mover al final",
"moveCardToTop-title": "Mover al principio",
"moveSelectionPopup-title": "Mover la selección",
"multi-selection": "Selección múltiple",
"multi-selection-on": "Selección múltiple activada",
"muted": "Silenciado",
"muted-info": "No serás notificado de ningún cambio en este tablero",
"my-boards": "Mis tableros",
"name": "Nombre",
"no-archived-cards": "No hay tarjetas archivadas.",
"no-archived-lists": "No hay listas archivadas.",
"no-archived-swimlanes": "No hay carriles de flujo archivados.",
"no-results": "Sin resultados",
"normal": "Normal",
"normal-desc": "Puedes ver y editar fichas. No puedes cambiar la configuración.",
"not-accepted-yet": "Invitation not accepted yet",
"normal-desc": "Puedes ver y editar tarjetas. No puedes cambiar la configuración.",
"not-accepted-yet": "La invitación no ha sido aceptada aún",
"notify-participate": "Recibir actualizaciones de cualquier tarjeta en la que participas como creador o miembro",
"notify-watch": "Recibir actuaizaciones de cualquier tablero, lista o tarjeta que estés vigilando",
"optional": "opcional",
"or": "o",
"page-maybe-private": "Esta página puede ser privada. Puedes verla por <a href='%s'>logging in</a>.",
"page-maybe-private": "Esta página puede ser privada. Es posible que puedas verla al <a href='%s'>iniciar sesión</a>.",
"page-not-found": "Página no encontrada.",
"password": "Clave",
"paste-or-dragdrop": "to paste, or drag & drop image file to it (image only)",
"password": "Contraseña",
"paste-or-dragdrop": "pegar o arrastrar y soltar un fichero de imagen (sólo imagen)",
"participating": "Participando",
"preview": "Previsualizar",
"previewAttachedImagePopup-title": "Previsualizar",
@@ -291,105 +316,122 @@
"private-desc": "Este tablero es privado. Sólo las personas añadidas al tablero pueden verlo y editarlo.",
"profile": "Perfil",
"public": "Público",
"public-desc": "Este tablero es público. Es visible para cualquier persona con el enlace y se mostrará en los motores de búsqueda como Google. Sólo personas añadidas al tablero pueden editarlo.",
"quick-access-description": "Star a board to add a shortcut in this bar.",
"remove-cover": "Eliminar cubierta",
"remove-from-board": "Borrar del Tablero",
"remove-label": "Eliminar Etiqueta",
"listDeletePopup-title": "Eliminar lista?",
"remove-member": "Eliminar Miembro",
"remove-member-from-card": "Eliminar de la Ficha",
"remove-member-pop": "Eliminar __nombre__ (__usuario__) de __Título del tablero__? El miembro será eliminado de todas las tarjetas de este tablero. Ellos recibirán una notificación.",
"public-desc": "Este tablero es público. Es visible para cualquiera a través del enlace, y se mostrará en los buscadores como Google. Sólo las personas añadidas al tablero pueden editarlo.",
"quick-access-description": "Destaca un tablero para añadir un acceso directo en esta barra.",
"remove-cover": "Eliminar portada",
"remove-from-board": "Desvincular del tablero",
"remove-label": "Eliminar la etiqueta",
"listDeletePopup-title": "¿Eliminar la lista?",
"remove-member": "Eliminar miembro",
"remove-member-from-card": "Eliminar de la tarjeta",
"remove-member-pop": "¿Eliminar __name__ (__username__) de __boardTitle__? El miembro será eliminado de todas las tarjetas de este tablero. En ellas se mostrará una notificación.",
"removeMemberPopup-title": "¿Eliminar miembro?",
"rename": "Renombrar",
"rename-board": "Renombrar tablero",
"rename-board": "Renombrar el tablero",
"restore": "Restaurar",
"save": "Guardar",
"search": "Buscar",
"select-color": "Selecciona un Color",
"select-color": "Selecciona un color",
"set-wip-limit-value": "Fija un límite para el número máximo de tareas en esta lista.",
"setWipLimitPopup-title": "Fijar el límite del TEP",
"shortcut-assign-self": "Asignarte a ti mismo a la tarjeta actual",
"shortcut-autocomplete-emoji": "Autocompletar emoji",
"shortcut-autocomplete-members": "Autocompletar miembros",
"shortcut-clear-filters": "Limpiar todos los filtros",
"shortcut-close-dialog": "Cerrar Diálogo",
"shortcut-close-dialog": "Cerrar el cuadro de diálogo",
"shortcut-filter-my-cards": "Filtrar mis tarjetas",
"shortcut-show-shortcuts": "Bring up this shortcuts list",
"shortcut-toggle-filterbar": "Toggle Filter Sidebar",
"shortcut-toggle-sidebar": "Toggle Board Sidebar",
"shortcut-show-shortcuts": "Mostrar esta lista de atajos",
"shortcut-toggle-filterbar": "Conmutar la barra lateral del filtro",
"shortcut-toggle-sidebar": "Conmutar la barra lateral del tablero",
"show-cards-minimum-count": "Mostrar recuento de tarjetas si la lista contiene más de",
"sidebar-open": "Abrir Barra Lateral",
"sidebar-close": "Cerrar Barra Lateral",
"signupPopup-title": "Crear una Cuenta",
"sidebar-open": "Abrir la barra lateral",
"sidebar-close": "Cerrar la barra lateral",
"signupPopup-title": "Crear una cuenta",
"star-board-title": "Haz clic para destacar este tablero. Se mostrará en la parte superior de tu lista de tableros.",
"starred-boards": "Tableros Destacados",
"starred-boards": "Tableros destacados",
"starred-boards-description": "Los tableros destacados se mostrarán en la parte superior de tu lista de tableros.",
"subscribe": "Suscribirse",
"team": "Equipo",
"this-board": "este tablero",
"this-card": "esta ficha",
"this-card": "esta tarjeta",
"spent-time-hours": "Tiempo consumido (horas)",
"overtime-hours": "Tiempo excesivo (horas)",
"overtime": "Tiempo excesivo",
"has-overtime-cards": "Hay tarjetas con el tiempo excedido",
"has-spenttime-cards": "Se ha excedido el tiempo de las tarjetas",
"time": "Hora",
"title": "Título",
"tracking": "Seguimiento",
"tracking-info": "Serás notificado de cualquier cambio en las tarjetas que estás envuelto como creador o miembro.",
"unassign-member": "Desasignar miembro",
"unsaved-description": "Tienes unas descripción no guardada.",
"tracking-info": "Serás notificado de cualquier cambio en las tarjetas en las que participas como creador o miembro.",
"unassign-member": "Desvincular al miembro",
"unsaved-description": "Tienes una descripción sin guardar.",
"unwatch": "Dejar de vigilar",
"upload": "Cargar",
"upload-avatar": "Cargar un avatar",
"uploaded-avatar": "Avatar cargado",
"username": "Nombre de Usuario",
"username": "Nombre de usuario",
"view-it": "Verlo",
"warn-list-archived": "warning: this card is in an archived list",
"warn-list-archived": "advertencia: esta tarjeta está en una lista archivada",
"watch": "Vigilar",
"watching": "Vigilando",
"watching-info": "Serás notificado de cualquier cambio en este tablero",
"welcome-board": "Tablero de Bienvenida",
"welcome-list1": "Basicos",
"welcome-board": "Tablero de bienvenida",
"welcome-swimlane": "Hito 1",
"welcome-list1": "Básicos",
"welcome-list2": "Avanzados",
"what-to-do": "What do you want to do?",
"admin-panel": "Panel de Administrador",
"what-to-do": "¿Qué deseas hacer?",
"wipLimitErrorPopup-title": "Límite del TEP no válido",
"wipLimitErrorPopup-dialog-pt1": "El número de tareas en esta lista es mayor que el límite del TEP que has definido.",
"wipLimitErrorPopup-dialog-pt2": "Por favor, mueve algunas tareas fuera de esta lista, o fija un límite del TEP más alto.",
"admin-panel": "Panel del administrador",
"settings": "Ajustes",
"people": "Personas",
"registration": "Registro",
"disable-self-registration": "Deshabilitar autoregistro",
"invite": "Invitar",
"invite-people": "Invitar Personas",
"invite-people": "Invitar a personas",
"to-boards": "A el(los) tablero(s)",
"email-addresses": "Direcciones de Correo Electrónico",
"smtp-host-description": "Dirección del servidor SMTP para gestionar tus emails",
"smtp-port-description": "Puerto usado por el servidor SMTP para mandar emails",
"smtp-tls-description": "Habilitar soporte TLS para el servidor SMTP",
"email-addresses": "Direcciones de correo electrónico",
"smtp-host-description": "Dirección del servidor SMTP para gestionar tus correos",
"smtp-port-description": "Puerto usado por el servidor SMTP para mandar correos",
"smtp-tls-description": "Habilitar el soporte TLS para el servidor SMTP",
"smtp-host": "Servidor SMTP",
"smtp-port": "Puerto SMTP",
"smtp-username": "Nombre de Usuario",
"smtp-password": "Clave",
"smtp-username": "Nombre de usuario",
"smtp-password": "Contraseña",
"smtp-tls": "Soporte TLS",
"send-from": "De",
"send-from": "Desde",
"send-smtp-test": "Enviarte un correo de prueba a ti mismo",
"invitation-code": "Código de Invitación",
"email-invite-register-subject": "__inviter__ sent you an invitation",
"email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to Wekan for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.",
"error-invitation-code-not-exist": "El Código de Invitación no existe",
"email-invite-register-subject": "__inviter__ te ha enviado una invitación",
"email-invite-register-text": "Estimado __user__,\n\n__inviter__ te invita a unirte a Wekan para colaborar.\n\nPor favor, haz clic en el siguiente enlace:\n__url__\n\nTu código de invitación es: __icode__\n\nGracias.",
"email-smtp-test-subject": "Prueba de correo SMTP desde Wekan",
"email-smtp-test-text": "El correo se ha enviado correctamente",
"error-invitation-code-not-exist": "El código de invitación no existe",
"error-notAuthorized": "No estás autorizado a ver esta página.",
"outgoing-webhooks": "Webhooks salientes",
"outgoingWebhooksPopup-title": "Webhooks salientes",
"new-outgoing-webhook": "New Outgoing Webhook",
"new-outgoing-webhook": "Nuevo webhook saliente",
"no-name": "(Desconocido)",
"Wekan_version": "Versión Wekan",
"Node_version": "Versión Node",
"OS_Arch": "Arquitectura SO",
"OS_Cpus": "Número CPUs SO",
"OS_Freemem": "Memoria libre SO",
"OS_Loadavg": "Carga Media SO",
"OS_Platform": "Plataforma SO",
"OS_Release": "Release SO",
"OS_Totalmem": "Memoria Total SO",
"OS_Type": "Tipo SO",
"OS_Uptime": "Tiempo activo SO",
"Wekan_version": "Versión de Wekan",
"Node_version": "Versión de Node",
"OS_Arch": "Arquitectura del sistema",
"OS_Cpus": "Número de CPUs del sistema",
"OS_Freemem": "Memoria libre del sistema",
"OS_Loadavg": "Carga media del sistema",
"OS_Platform": "Plataforma del sistema",
"OS_Release": "Publicación del sistema",
"OS_Totalmem": "Memoria Total del sistema",
"OS_Type": "Tipo de sistema",
"OS_Uptime": "Tiempo activo del sistema",
"hours": "horas",
"minutes": "minutos",
"seconds": "segundos",
"yes": "Sí",
"no": "No",
"accounts": "Cuentas",
"accounts-allowEmailChange": "Permitir cambiar email"
"accounts-allowEmailChange": "Permitir cambiar el correo electrónico",
"createdAt": "Creado en",
"verified": "Verificado",
"active": "Activo"
}
+48 -6
View File
@@ -2,8 +2,8 @@
"accept": "Onartu",
"act-activity-notify": "[Wekan] Jarduera-jakinarazpena",
"act-addAttachment": "__attachment__ __card__ txartelera erantsita",
"act-addChecklist": "added checklist __checklist__ to __card__",
"act-addChecklistItem": "added __checklistItem__ to checklist __checklist__ on __card__",
"act-addChecklist": "gehituta checklist __checklist__ __card__ -ri",
"act-addChecklistItem": "gehituta __checklistItem__ checklist __checklist__ on __card__ -ri",
"act-addComment": "__card__ txartelean iruzkina: __comment__",
"act-createBoard": "__board__ sortuta",
"act-createCard": "__card__ __list__ zerrrendara gehituta",
@@ -12,6 +12,7 @@
"act-archivedBoard": "__board__ artxibatuta",
"act-archivedCard": "__card__ artxibatuta",
"act-archivedList": "__list__ artxibatuta",
"act-archivedSwimlane": "archived __swimlane__",
"act-importBoard": "__board__ inportatuta",
"act-importCard": "__card__ inportatuta",
"act-importList": "__list__ inportatuta",
@@ -44,6 +45,7 @@
"add-attachment": "Gehitu eranskina",
"add-board": "Gehitu arbela",
"add-card": "Gehitu txartela",
"add-swimlane": "Add Swimlane",
"add-checklist": "Gehitu egiaztaketa zerrenda",
"add-checklist-item": "Gehitu elementu bat egiaztaketa zerrendara",
"add-cover": "Gehitu azala",
@@ -54,6 +56,9 @@
"addMemberPopup-title": "Kideak",
"admin": "Kudeatzailea",
"admin-desc": "Txartelak ikusi eta editatu ditzake, kideak kendu, eta arbelaren ezarpenak aldatu.",
"admin-announcement": "Jakinarazpena",
"admin-announcement-active": "Gaitu Sistema-eremuko Jakinarazpena",
"admin-announcement-title": "Administrariaren jakinarazpena",
"all-boards": "Arbel guztiak",
"and-n-other-card": "Eta beste txartel __count__",
"and-n-other-card_plural": "Eta beste __count__ txartel",
@@ -64,6 +69,7 @@
"archive-board": "Artxibatu arbela",
"archive-card": "Artxibatu txartela",
"archive-list": "Artxibatu zerrenda",
"archive-swimlane": "Archive Swimlane",
"archive-selection": "Artxibatu hautaketa",
"archiveBoardPopup-title": "Artxibatu arbela?",
"archived-items": "Artxibatutako elementuak",
@@ -91,6 +97,9 @@
"boardChangeWatchPopup-title": "Aldatu ikuskatzea",
"boardMenuPopup-title": "Arbelaren menua",
"boards": "Arbelak",
"board-view": "Board View",
"board-view-swimlanes": "Swimlanes",
"board-view-lists": "Zerrendak",
"bucket-example": "Esaterako \"Pertz zerrenda\"",
"cancel": "Utzi",
"card-archived": "Txartel hau artxibatuta dago.",
@@ -100,6 +109,7 @@
"card-delete-suggest-archive": "Txartel bat artxibatu dezakezu arbeletik kendu nahi baduzu bere jarduera gordez.",
"card-due": "Epemuga",
"card-due-on": "Epemuga",
"card-spent": "Erabilitako denbora",
"card-edit-attachments": "Editatu eranskinak",
"card-edit-labels": "Editatu etiketak",
"card-edit-members": "Editatu kideak",
@@ -146,9 +156,12 @@
"comment-only": "Iruzkinak besterik ez",
"comment-only-desc": "Iruzkinak txarteletan soilik egin ditzake",
"computer": "Ordenagailua",
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist",
"confirm-checklist-delete-dialog": "Ziur zaude kontrol-zerrenda ezabatu nahi duzula",
"copy-card-link-to-clipboard": "Kopiatu txartela arbelera",
"copyCardPopup-title": "Copy Card",
"copyCardPopup-title": "Kopiatu txartela",
"copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
"copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
"copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
"create": "Sortu",
"createBoardPopup-title": "Sortu arbela",
"chooseBoardSourcePopup-title": "Inportatu arbela",
@@ -168,8 +181,11 @@
"edit": "Editatu",
"edit-avatar": "Aldatu avatarra",
"edit-profile": "Editatu profila",
"edit-wip-limit": "WIP muga editatu",
"soft-wip-limit": "WIP muga malgua",
"editCardStartDatePopup-title": "Aldatu hasiera data",
"editCardDueDatePopup-title": "Aldatu epemuga data",
"editCardSpentTimePopup-title": "Aldatu erabilitako denbora",
"editLabelPopup-title": "Aldatu etiketa",
"editNotificationPopup-title": "Editatu jakinarazpena",
"editProfilePopup-title": "Editatu profila",
@@ -177,6 +193,7 @@
"email-enrollAccount-subject": "Kontu bat sortu zaizu __siteName__ gunean",
"email-enrollAccount-text": "Kaixo __user__,\n\nZerbitzua erabiltzen hasteko, egin klik beheko loturan.\n\n__url__\n\nEskerrik asko.",
"email-fail": "E-posta bidalketak huts egin du",
"email-fail-text": "Arazoa mezua bidaltzen saiatzen",
"email-invalid": "Baliogabeko e-posta",
"email-invite": "Gonbidatu e-posta bidez",
"email-invite-subject": "__inviter__ erabiltzaileak gonbidapen bat bidali dizu",
@@ -186,6 +203,7 @@
"email-sent": "E-posta bidali da",
"email-verifyEmail-subject": "Egiaztatu __siteName__ guneko zure e-posta helbidea.",
"email-verifyEmail-text": "Kaixo __user__,\n\nZure e-posta kontua egiaztatzeko, egin klik beheko loturan.\n\n__url__\n\nEskerrik asko.",
"enable-wip-limit": "WIP muga gaitu",
"error-board-doesNotExist": "Arbel hau ez da existitzen",
"error-board-notAdmin": "Arbel honetako kudeatzailea izan behar zara hori egin ahal izateko",
"error-board-notAMember": "Arbel honetako kidea izan behar zara hori egin ahal izateko",
@@ -230,6 +248,8 @@
"info": "Bertsioa",
"initials": "Inizialak",
"invalid-date": "Baliogabeko data",
"invalid-time": "Baliogabeko denbora",
"invalid-user": "Baliogabeko erabiltzailea",
"joined": "elkartu da",
"just-invited": "Arbel honetara gonbidatu berri zaituzte",
"keyboard-shortcuts": "Teklatu laster-bideak",
@@ -240,18 +260,22 @@
"language": "Hizkuntza",
"last-admin-desc": "Ezin duzu rola aldatu gutxienez kudeatzaile bat behar delako.",
"leave-board": "Utzi arbela",
"leave-board-pop": "Ziur zaude __boardTitle__ utzi nahi duzula? Arbel honetako txartel guztietatik ezabatua izango zara.",
"leaveBoardPopup-title": "Arbela utzi?",
"link-card": "Lotura txartel honetara",
"list-archive-cards": "Artxibatu zerrendako txartel guztiak",
"list-archive-cards-pop": "Honek zerrenda honetako txartel guztiak arbeletik ezabatuko ditu. Artxibatutako txartelak ikusteko eta arbelera berreskuratzeko, zoaz \"Menua > Artxibatutako elementuak\" atalera.",
"list-move-cards": "Lekuz aldatu zerrendako txartel guztiak",
"list-select-cards": "Aukeratu zerrenda honetako txartel guztiak",
"listActionPopup-title": "Zerrendaren ekintzak",
"swimlaneActionPopup-title": "Swimlane Actions",
"listImportCardPopup-title": "Inportatu Trello txartel bat",
"listMorePopup-title": "Gehiago",
"link-list": "Lotura zerrenda honetara",
"list-delete-pop": "Ekintza guztiak ekintza jariotik kenduko dira eta ezin izango duzu zerrenda berreskuratu. Ez dago desegiterik.",
"list-delete-suggest-archive": "Zerrenda bat artxibatu dezakezu arbeletik kendu nahi baduzu bere jarduera gordez.",
"lists": "Zerrendak",
"swimlanes": "Swimlanes",
"log-out": "Itxi saioa",
"log-in": "Hasi saioa",
"loginPopup-title": "Hasi saioa",
@@ -271,6 +295,7 @@
"name": "Izena",
"no-archived-cards": "Artxibatutako txartelik ez.",
"no-archived-lists": "Artxibatutako zerrendarik ez.",
"no-archived-swimlanes": "No archived swimlanes.",
"no-results": "Emaitzarik ez",
"normal": "Arrunta",
"normal-desc": "Txartelak ikusi eta editatu ditzake. Ezin ditu ezarpenak aldatu.",
@@ -307,6 +332,8 @@
"save": "Gorde",
"search": "Bilatu",
"select-color": "Aukeratu kolorea",
"set-wip-limit-value": "Zerrenda honetako atazen muga maximoa ezarri",
"setWipLimitPopup-title": "WIP muga ezarri",
"shortcut-assign-self": "Esleitu zure burua txartel honetara",
"shortcut-autocomplete-emoji": "Automatikoki osatu emojia",
"shortcut-autocomplete-members": "Automatikoki osatu kideak",
@@ -327,6 +354,11 @@
"team": "Taldea",
"this-board": "arbel hau",
"this-card": "txartel hau",
"spent-time-hours": "Erabilitako denbora (orduak)",
"overtime-hours": "Luzapena (orduak)",
"overtime": "Luzapena",
"has-overtime-cards": "Luzapen txartelak ditu",
"has-spenttime-cards": "Erabilitako denbora txartelak ditu",
"time": "Ordua",
"title": "Izenburua",
"tracking": "Jarraitzen",
@@ -344,9 +376,13 @@
"watching": "Ikuskatzen",
"watching-info": "Arbel honi egindako aldaketak jakinaraziko zaizkizu",
"welcome-board": "Ongi etorri arbela",
"welcome-swimlane": "Milestone 1",
"welcome-list1": "Oinarrizkoa",
"welcome-list2": "Aurreratua",
"what-to-do": "Zer egin nahi duzu?",
"wipLimitErrorPopup-title": "Baliogabeko WIP muga",
"wipLimitErrorPopup-dialog-pt1": "Zerrenda honetako atazen muga, WIP-en ezarritakoa baina handiagoa da",
"wipLimitErrorPopup-dialog-pt2": "Mugitu zenbait ataza zerrenda honetatik, edo WIP muga handiagoa ezarri.",
"admin-panel": "Kudeaketa panela",
"settings": "Ezarpenak",
"people": "Jendea",
@@ -365,14 +401,17 @@
"smtp-password": "Pasahitza",
"smtp-tls": "TLS euskarria",
"send-from": "Nork",
"send-smtp-test": "Bidali posta elektroniko mezu bat zure buruari",
"invitation-code": "Gonbidapen kodea",
"email-invite-register-subject": "__inviter__ erabiltzaileak gonbidapen bat bidali dizu",
"email-invite-register-text": "Kaixo __user__,\n\n__inviter__ erabiltzaileak Wekanera gonbidatu zaitu elkar-lanean aritzeko.\n\nJarraitu mesedez lotura hau:\n__url__\n\nZure gonbidapen kodea hau da: __icode__\n\nEskerrik asko.",
"email-smtp-test-subject": "Wekan-etik bidalitako test-mezua",
"email-smtp-test-text": "Arrakastaz bidali duzu posta elektroniko mezua",
"error-invitation-code-not-exist": "Gonbidapen kodea ez da existitzen",
"error-notAuthorized": "Ez duzu orri hau ikusteko baimenik.",
"outgoing-webhooks": "Irteerako Webhook-ak",
"outgoingWebhooksPopup-title": "Irteerako Webhook-ak",
"new-outgoing-webhook": "New Outgoing Webhook",
"new-outgoing-webhook": "Irteera-webhook berria",
"no-name": "(Ezezaguna)",
"Wekan_version": "Wekan bertsioa",
"Node_version": "Nodo bertsioa",
@@ -391,5 +430,8 @@
"yes": "Bai",
"no": "Ez",
"accounts": "Kontuak",
"accounts-allowEmailChange": "Baimendu e-mail aldaketa"
"accounts-allowEmailChange": "Baimendu e-mail aldaketa",
"createdAt": "Noiz sortua",
"verified": "Egiaztatuta",
"active": "Gaituta"
}
Loaded 100 of 162 files, more files were not shown because too many files have changed in this diff. Show more