Compare commits

...
208 Commits
Author SHA1 Message Date
Lauri Ojansivu 8e142dfdcf v5.52 2021-08-26 13:55:05 +03:00
Lauri Ojansivu 2a216d41f0 Updated ChangeLog. 2021-08-26 04:05:35 +03:00
Lauri Ojansivu 241eb9df0f Fixed New wide card edit view is all jumbled on mobile.
Thanks to jdaviescoates and xet7 !

Fixes #3890
2021-08-26 04:01:44 +03:00
Lauri Ojansivu 0bdd7c8973 Updated ChangeLog. 2021-08-26 03:41:10 +03:00
Lauri Ojansivu a59932af00 Fixed Save button not clickable in maximized card view.
Thanks to syndimann !

Fixes #3940
2021-08-26 03:38:31 +03:00
Lauri Ojansivu c2a073dec0 Updated ChangeLog. 2021-08-26 03:03:15 +03:00
Lauri Ojansivu 7808fdd22f Delete user is now possible at Admin Panel. But you should remove user first from all boards,
because otherwise there could be bug of empty avatars at boards, that need to be removed manually
from database.

Thanks to xet7 !

Fixes #3956
2021-08-26 02:57:49 +03:00
Lauri Ojansivu bf2f3ccec1 Updated ChangeLog. 2021-08-26 02:39:39 +03:00
Lauri Ojansivu 9c7c481f48 Initials not required for new user that is created at Admin Panel.
Thanks to xet7 !
2021-08-26 02:36:43 +03:00
Lauri Ojansivu df26bc9013 Updated ChangeLog. 2021-08-26 02:12:47 +03:00
Lauri Ojansivu b36a7621e0 Fixed translation of "Clear Filter" for "All boards page: Possibility of filtering board by team or organization".
Thanks to xet7 !
2021-08-26 02:10:44 +03:00
Lauri Ojansivu f2c242f49e Added Chinese (Simplified) (zh-Hans or zh-CN).
Thanks to translators!
2021-08-26 02:08:23 +03:00
Lauri Ojansivu 5175f13881 Updated ChangeLog. 2021-08-25 23:32:35 +03:00
Lauri Ojansivu 75a1854cc3 Merge pull request #3964 from Emile840/master
[All boards page] Possibility of filtering board by team or organization
2021-08-25 23:29:49 +03:00
Emile NDAGIJIMANA 48c3263e28 [all boards page] Possibility of filtering board by team or organization 2021-08-24 17:12:51 +02:00
Lauri Ojansivu f5e26fb2e6 Updated ChangeLog. 2021-08-21 17:55:49 +03:00
Lauri Ojansivu 1fadf204c2 Added MAIL_SERVICE settings. Part 2.
Thanks to xet7 !

Fixes #3702
2021-08-21 17:54:05 +03:00
Lauri Ojansivu f03b14a46b Updated ChangeLog. 2021-08-21 17:10:04 +03:00
Lauri Ojansivu ab8e56e16a Added MAIL_SERVICE settings for Well Known Email Services https://github.com/wekan/wekan/wiki/Troubleshooting-Mail . Please test.
Thanks to xet7 !

Fixes #3702
2021-08-21 16:32:07 +03:00
Lauri Ojansivu 2f33a1ecff v5.51 2021-08-17 22:04:39 +03:00
Lauri Ojansivu abadeb5e14 Updated ChangeLog. 2021-08-17 21:37:15 +03:00
Lauri Ojansivu 19c68895e9 Merge pull request #3949 from syndimann/fix/global-search
Fix: global search
2021-08-17 21:33:05 +03:00
Kai Lehmann bed6d6c591 fixes global search, remove unnecessary use of CardCommentReactions 2021-08-17 16:14:50 +02:00
Lauri Ojansivu b2652edf56 v5.50 2021-08-16 00:00:06 +03:00
Lauri Ojansivu 94bb3bee77 Updated translations. 2021-08-15 23:53:29 +03:00
Lauri Ojansivu e909ece2da Updated ChangeLog. 2021-08-15 23:48:16 +03:00
Lauri Ojansivu 7bc250ce84 Merge pull request #3946 from syndimann/fix/user-creation
Fix: Save user initials and fullname when a new user is created
2021-08-15 23:44:07 +03:00
Kai Lehmann 7706839fbe fix user creation to include fullname and initials 2021-08-15 22:33:31 +02:00
Lauri Ojansivu 68ad58431d Updated translations. 2021-08-15 00:02:02 +03:00
Lauri Ojansivu 2059752fc6 Updated translations. 2021-08-14 09:51:30 +03:00
Lauri Ojansivu 302afae0bb Updated dependencies. 2021-08-14 09:44:07 +03:00
Lauri Ojansivu 3d1d94d628 Updated ChangeLog. 2021-08-13 23:54:24 +03:00
Lauri Ojansivu d51fc2f12c v5.49 2021-08-13 23:36:36 +03:00
Lauri Ojansivu 2dee14b0d5 Updated translations. 2021-08-13 23:24:07 +03:00
Lauri Ojansivu e75849da98 Updated translations. 2021-08-13 22:49:46 +03:00
Lauri Ojansivu 508c7b7a90 Merge pull request #3945 from syndimann/master
Feature: Adds Card Comment Reactions
2021-08-13 22:27:10 +03:00
Lauri Ojansivu de67e051d7 Updated ChangeLog. 2021-08-13 22:26:36 +03:00
Lauri Ojansivu 9ce65c601a Text "Search" now translatable at Card Add Member/Assignee.
Thanks to xet7 !
2021-08-13 22:23:50 +03:00
Kai Lehmann 10d7eeb762 Merge branch 'wekan:master' into master 2021-08-13 21:03:55 +02:00
Kai Lehmann 104a6dd0b3 add comments for card comment reactions feature 2021-08-13 20:53:04 +02:00
Kai Lehmann 2977120129 adds card comment reactions feature 2021-08-13 20:47:55 +02:00
Kai Lehmann d8e8512d66 add i18n for add-reaction 2021-08-13 20:43:30 +02:00
Lauri Ojansivu 7bfbcf7e03 v5.48 2021-08-11 23:48:02 +03:00
Lauri Ojansivu 91cad7b49e Updated to Node.js v12.22.5. Thanks to Node.js developers. 2021-08-11 23:40:56 +03:00
Lauri Ojansivu 26f1defc56 Updated ChangeLog. 2021-08-11 23:16:27 +03:00
Lauri Ojansivu 9a03654062 Fixed: Can't save user without Initials.
Thanks to devagleo and xet7 !

Fixes #3928
2021-08-11 23:14:18 +03:00
Lauri Ojansivu 2576ef75bd Updated dependencies.
Thanks to developers of dependencies!
2021-08-11 23:11:50 +03:00
Lauri Ojansivu 752b45af42 Updated ChangeLog. 2021-08-11 23:11:34 +03:00
Lauri Ojansivu 23c70ac252 Added new translation: [French (Switzerland) (fr_CH).
Thanks to translators!
2021-08-11 23:10:20 +03:00
Lauri Ojansivu ad4de9e85d Updated dependencies. 2021-08-11 22:10:59 +03:00
Lauri Ojansivu 855d60f28e Merge branch 'master' of github.com:wekan/wekan 2021-08-11 22:07:23 +03:00
Lauri Ojansivu 781a94c05f Updated ChangeLog. 2021-08-11 22:06:56 +03:00
Lauri Ojansivu b3cc01b041 Updated dependencies.
Thanks to developers of dependencies!
2021-08-11 22:05:17 +03:00
Lauri Ojansivu e23ced47ae Merge pull request #3944 from wekan/dependabot/npm_and_yarn/jszip-3.7.0
Bump jszip from 3.6.0 to 3.7.0
2021-08-11 21:33:39 +03:00
dependabot[bot] f406b51a5f Bump jszip from 3.6.0 to 3.7.0
Bumps [jszip](https://github.com/Stuk/jszip) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/Stuk/jszip/releases)
- [Changelog](https://github.com/Stuk/jszip/blob/master/CHANGES.md)
- [Commits](https://github.com/Stuk/jszip/compare/v3.6.0...v3.7.0)

---
updated-dependencies:
- dependency-name: jszip
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-11 18:32:04 +00:00
Lauri Ojansivu c81cb786ed Updated version. 2021-08-11 21:28:18 +03:00
Lauri Ojansivu 846f1244c7 Updated ChangeLog. 2021-08-11 21:04:45 +03:00
Lauri Ojansivu 3ea723329a Merge pull request #3942 from syndimann/feature/searchable-members-in-card-popup
Feature: Searchfields for members and assignees card popups
2021-08-11 21:02:06 +03:00
Kai Lehmann 698c9ed1ea adds searchfields to members and assignees popup 2021-08-10 21:20:16 +02:00
Lauri Ojansivu 63044ac13a v5.47 2021-08-05 00:49:00 +03:00
Lauri Ojansivu 68d9de8946 Updated dependencies. 2021-08-05 00:42:50 +03:00
Lauri Ojansivu 92a7717e50 v5.46 2021-08-05 00:33:22 +03:00
Lauri Ojansivu d5c0a5d377 Updated dependencies. 2021-08-05 00:26:54 +03:00
Lauri Ojansivu c0b7fb0b84 v5.45 2021-08-05 00:24:29 +03:00
Lauri Ojansivu 9b4e556837 Updated ChangeLog. 2021-08-05 00:13:08 +03:00
Lauri Ojansivu 1aec0b5f0d Merge pull request #3939 from syndimann/bugfix/3866-mentions-in-maximized-card
Fix: Show missing user mentions popover when posting comments in maximized card layout
2021-08-05 00:10:56 +03:00
Lauri Ojansivu c5d4e06ea3 Updated ChangeLog. 2021-08-05 00:10:14 +03:00
Lauri Ojansivu 97bf907448 Merge pull request #3937 from syndimann/feature/card-and-board-mentions
Feature: Special handles to notify board or card members in a comment
2021-08-05 00:08:43 +03:00
Kai Lehmann 7ef2a2a9f4 fixes missing user mentions when in maximized card 2021-08-04 22:22:59 +02:00
Kai Lehmann 547d82fe57 adds handles to notifiy board or card members 2021-08-03 23:35:12 +02:00
Lauri Ojansivu 977821d293 v5.44 2021-08-03 17:42:26 +03:00
Lauri Ojansivu f4e5306181 Updated ChangeLog. 2021-08-03 16:14:15 +03:00
Lauri Ojansivu f01b440fb7 Merge pull request #3936 from syndimann/feature/boardwise-card-numbers
Fix: Consecutive Card numbering when a card is moved to another board or copied
2021-08-03 16:12:28 +03:00
Kai Lehmann 2fd741bf54 fix cardnumber assignment for moved or copied card 2021-08-03 14:03:05 +02:00
Kai Lehmann e8522c323f fixes retrieval of next board cardnumber 2021-08-03 14:02:22 +02:00
Lauri Ojansivu def2ec46e0 Updated ChangeLog. 2021-08-03 06:15:40 +03:00
Lauri Ojansivu 4e17d5a10f Wekan v5.43 for helm.
Thanks to xet7 !
2021-08-03 06:13:43 +03:00
Lauri Ojansivu dcba6909e2 v5.43 2021-08-03 05:56:55 +03:00
Lauri Ojansivu fc74324d1a Updated ChangeLog. 2021-08-03 05:51:56 +03:00
Lauri Ojansivu 8bb33c53f0 Merge pull request #3935 from syndimann/feature/boardwise-card-numbers
Feature: Consecutive boardwise card numbering
2021-08-03 05:44:39 +03:00
Kai Lehmann 236b6c3552 Fixes card-number migration
and further optimizes getNextCardNumber in board model
2021-08-02 22:41:46 +02:00
Kai Lehmann 28e9a6ac33 show cardNumber in minicard and cardDetails 2021-08-02 21:44:37 +02:00
Kai Lehmann f91cc25b11 assign next cardNumber to newly created card 2021-08-02 21:44:19 +02:00
Kai Lehmann 6fd45ce74b adds card number allowance to card settings 2021-08-02 21:41:58 +02:00
Kai Lehmann b57eae14d4 add cardNumber handling to card and board model 2021-08-02 21:41:30 +02:00
Lauri Ojansivu 12db3714f9 Updated ChangeLog. 2021-08-01 17:15:56 +03:00
Lauri Ojansivu 7a1f42fa4e v5.42 for helm 2021-08-01 17:10:10 +03:00
Lauri Ojansivu 74064324cf Merge pull request #3933 from varac/update_helmchart
Update helmchart, pin image version
2021-08-01 17:08:13 +03:00
Varac f3baa32d6c Update Chart apiVersion, pin image version
This makes this Chart compatible with [flux](https://fluxcd.io)
[helm-controller](https://fluxcd.io/docs/components/helm), which
requires v2 charts.
2021-08-01 15:54:17 +02:00
Lauri Ojansivu 33eed50290 v5.42 2021-08-01 15:46:03 +03:00
Lauri Ojansivu 11d9d1c889 Updated translations. 2021-08-01 15:41:57 +03:00
Lauri Ojansivu 5a7860ac8e Updated ChangeLog. 2021-08-01 15:31:58 +03:00
Lauri Ojansivu b13f691389 Updated to Node.js v12.22.4. Thanks to Node.js developers. 2021-08-01 15:30:08 +03:00
Varac d70e876388 Ignore downloaded chart dependencies 2021-07-27 22:06:26 +02:00
Lauri Ojansivu 36c2cb9573 v5.41 2021-07-26 19:59:42 +03:00
Lauri Ojansivu 88a47780a8 Updated translations. 2021-07-26 19:52:33 +03:00
Lauri Ojansivu d30ce3c5cf Updated ChangeLog. 2021-07-26 14:04:25 +03:00
Lauri Ojansivu 0fa8fc8b50 Fixed Wekan JSON import fails.
Thanks to BartoszBroda and xet7 !

Fixes #3918
2021-07-26 14:01:09 +03:00
Lauri Ojansivu 6d73618a48 v5.40 2021-07-25 15:48:10 +03:00
Lauri Ojansivu db493f1571 Updated translations.
Thanks to translators!
2021-07-25 15:44:54 +03:00
Lauri Ojansivu 2b51afaedf Updated ChangeLog. 2021-07-25 15:22:07 +03:00
Lauri Ojansivu 18b6381d79 Fixed Delete of Planning Poker doesn't work.
Thanks to xet7 !

Fixes #3915
2021-07-25 15:19:54 +03:00
Lauri Ojansivu c65d8ed6a9 Updated ChangeLog. 2021-07-25 00:00:55 +03:00
Lauri Ojansivu b3ba156d20 v5.39 2021-07-24 23:38:10 +03:00
Lauri Ojansivu e1de787f19 Updated translations.
Thanks to translators!
2021-07-24 23:27:34 +03:00
Lauri Ojansivu e1f08b157b Updated ChangeLog. 2021-07-24 21:18:06 +03:00
Lauri Ojansivu 508915462d Merge pull request #3912 from Emile840/master
Organizations and teams are taken into account when displaying board in « All boards page »
2021-07-24 21:15:24 +03:00
Lauri Ojansivu 7c2ef6fbd5 Updated ChangeLog. 2021-07-24 19:58:59 +03:00
Lauri Ojansivu ae73029dda Added translation: English (Italy).
Thanks to translators!
2021-07-24 19:57:07 +03:00
Lauri Ojansivu 542972fc5c Updated ChangeLog. 2021-07-24 19:37:18 +03:00
Lauri Ojansivu d7cb143b0a Fix typo. 2021-07-24 19:35:24 +03:00
Lauri Ojansivu d594555227 Merge pull request #3910 from helioguardabaxo/master
Add Convert checklist item to card feature
2021-07-24 19:33:17 +03:00
Lauri Ojansivu fe25ed5202 Updated ChangeLog. 2021-07-24 19:25:49 +03:00
Lauri Ojansivu f6c36d6edd Merge branch 'indika-dev-master' 2021-07-24 19:22:23 +03:00
Lauri Ojansivu fe40f35d6d LDAP AD Simple Auth: Added settings for all Wekan Standalone (non-Sandstorm) platforms.
Thanks to xet7 !
2021-07-24 19:20:47 +03:00
Emile NDAGIJIMANA 789d1d1d1c « All boards page » only displays tables to which the current user has access 2021-07-23 10:39:42 +02:00
helioguardabaxo 70265deb47 Add Convert checklist item to card feature 2021-07-22 22:44:40 -03:00
Stefan Maaßen c0d1ed714e added comment because of change in configuration dependencies 2021-07-22 10:46:35 +02:00
Stefan Maaßen 0555b7e34c added comment to clarify additional use case of LDAP_DEFAULT_DOMAIN 2021-07-22 10:35:12 +02:00
Stefan Maaßen c1c2eb22ba removed unnecessary changes 2021-07-22 10:28:37 +02:00
Stefan Maaßen 697d7613f2 Merge branch 'master' of https://github.com/wekan/wekan 2021-07-22 10:06:55 +02:00
Lauri Ojansivu 33836af1f9 Try to fix Snap.
Thanks to roadmr and xet7 !
2021-07-21 23:40:13 +03:00
Stefan Maaßen 4f0c2dafca removed unnecessary files 2021-07-21 10:13:39 +02:00
Stefan Maaßen 84801010d5 merged with wekan master @ v5.38 2021-07-20 13:34:22 +02:00
Stefan Maaßen cb418f5e23 merged with wekan master @ v5.38 2021-07-20 13:33:42 +02:00
Lauri Ojansivu f7d6ac9401 v5.38 2021-07-18 15:46:34 +03:00
Lauri Ojansivu d939ab0d76 Updated ChangeLog. 2021-07-18 15:39:51 +03:00
Lauri Ojansivu d538a01d19 Updated to Node.js v12.22.3. Thanks to Node.js developers. 2021-07-18 15:37:50 +03:00
Lauri Ojansivu 8770326ed3 Updated translations. 2021-07-18 15:32:00 +03:00
Lauri Ojansivu b2e96746db Updated translations. 2021-07-16 16:22:08 +03:00
Lauri Ojansivu 6ce0be635b Updated ChangeLog. 2021-07-13 20:46:39 +03:00
Lauri Ojansivu 1001e95a87 Updated ChangeLog. 2021-07-13 20:13:43 +03:00
Lauri Ojansivu 609adcdf10 Updated dependencies.
Thanks to developers of dependencies !
2021-07-13 20:12:08 +03:00
Lauri Ojansivu 9de2580e30 Updated ChangeLog. 2021-07-13 20:11:44 +03:00
Lauri Ojansivu 9eb9081c6d Merge pull request #3902 from jghaanstra/master
Small fixes for ModernDark theme
2021-07-13 20:09:54 +03:00
Jelger Haanstra f551b03dc7 Small fixes for ModernDark theme 2021-07-13 15:49:20 +02:00
Lauri Ojansivu 1d5dd5e60f Fixed rebuild-wekan.sh .
Thanks to xet7 !
2021-07-12 18:16:12 +03:00
Lauri Ojansivu 35a7036d4a Updated ChangeLog. 2021-07-06 22:41:59 +03:00
Lauri Ojansivu 7024929881 Updated dependencies.
Thanks to developers of dependencies!
2021-07-06 22:40:44 +03:00
Lauri Ojansivu 90058f25bf Updated ChangeLog. 2021-07-06 21:20:49 +03:00
Lauri Ojansivu 24ec9018fb Updated ChangeLog. 2021-07-06 21:16:11 +03:00
Lauri Ojansivu ec01e5182d Fixed Line break which is wrongly added in Cards description and Cards comments.
Added Code View `</>` button when RICHER_CARD_COMMENT_EDITOR=true and in desktop view
(=non-mobile, so there is enough screen space for buttons in desktop view).

Thanks to Emile840 and xet7 !

Fixes #3885
2021-07-06 20:59:47 +03:00
Lauri Ojansivu 06d2880a7e Fix typos. 2021-07-05 13:43:03 +03:00
Lauri Ojansivu 2a611a8935 Merge pull request #3895 from Emile840/master
Add or remove an organization and team from a board
2021-07-05 13:38:13 +03:00
Emile NDAGIJIMANA b236d95636 Add or remove organizations and teams from boards 2021-07-05 11:27:38 +02:00
Lauri Ojansivu b1abfc768a v5.37 2021-07-04 08:05:19 +03:00
Lauri Ojansivu 9b97810109 Updated ChangeLog. 2021-07-04 07:53:00 +03:00
Lauri Ojansivu 4feffd90e3 Updated to Node.js v12.22.2. Thanks to Node.js developers. 2021-07-04 07:50:50 +03:00
Lauri Ojansivu dd8d2ea276 Updated ChangeLog. 2021-07-01 14:10:19 +03:00
Lauri Ojansivu 4c29b72242 Merge pull request #3889 from bentiss/fix-openapi
openapi: actually catch the error when esprima fails at parsing the file
2021-07-01 14:07:11 +03:00
Benjamin Tissoires ebe39771a6 openapi: actually catch the error when esprima fails at parsing the file
39f8a138d7 added a try/except around esprima to catch any hard error
from the parsing, but the returned value was not checked.

We now have the file models/exportExcel.js which gives us an unexpected
symbol on line 3 (not sure why it is not happy), but that fails the
generation of the doc entirely.

Fixes #3884

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2021-07-01 10:23:29 +02:00
Lauri Ojansivu 63605ee42e v5.36 2021-06-29 14:36:04 +03:00
Lauri Ojansivu b7f047db88 Updated translations. 2021-06-29 14:18:33 +03:00
Lauri Ojansivu 96289210d7 Updated ChangeLog. 2021-06-29 14:08:34 +03:00
Lauri Ojansivu 3b4a44abb1 Shared Templates: In Progress. Hide this feature while it's not finished yet.
Thanks to xet7 !
2021-06-29 14:03:47 +03:00
Lauri Ojansivu e0797c83f8 Updated ChangeLog. 2021-06-29 13:45:52 +03:00
Lauri Ojansivu 30ffcc9246 Fixed "Search All Boards" instructions are gone.
Thanks to ClaudiaK21 and xet7 !

Fixes #3882
2021-06-29 13:38:57 +03:00
Lauri Ojansivu a0945d2a2e Updated ChangeLog. 2021-06-25 00:15:41 +03:00
Lauri Ojansivu c4cea9e71b Note: With Docker, please don't use latest tag. Only use release tags.
See https://github.com/wekan/wekan/issues/3874

Thanks to xet7 !
2021-06-25 00:13:07 +03:00
Lauri Ojansivu 35ec61726d Updated ChangeLog. 2021-06-25 00:08:28 +03:00
Lauri Ojansivu f18a57b059 Note: With Docker, please don't use latest tag. Only use release tags.
See https://github.com/wekan/wekan/issues/3874

Thanks to xet7 !
2021-06-25 00:07:27 +03:00
Lauri Ojansivu 4ba180fbc4 Updated ChangeLog. 2021-06-24 23:38:07 +03:00
Lauri Ojansivu 0f34d407a4 Try to fix tests. Part 3.
Thanks to xet7 !
2021-06-24 23:37:13 +03:00
Lauri Ojansivu 4b29e9fbcb Updated ChangeLog. 2021-06-24 23:09:34 +03:00
Lauri Ojansivu 7f648720af Try to fix tests. Part 2.
Thanks to xet7 !
2021-06-24 23:08:14 +03:00
Lauri Ojansivu 58081c13cf Updated ChangeLog. 2021-06-24 22:54:57 +03:00
Lauri Ojansivu 78555f57a7 Try to fix tests.
Thanks to xet7 !
2021-06-24 22:52:53 +03:00
Lauri Ojansivu 1ad40134dd Updated ChangeLog. 2021-06-24 22:35:58 +03:00
Lauri Ojansivu 9e16a405d8 Delete user at REST API and Admin Panel/People/People. There is still bug of
leaving empty user avatars to boards: boards members, card members and assignees have
empty users. So it would be better to delete user from all boards before deleting user.

Thanks to darren-teo and xet7 !

Fixes #2716
2021-06-24 22:29:03 +03:00
Lauri Ojansivu 9122a339cb Updated ChangeLog. 2021-06-24 22:23:26 +03:00
Lauri Ojansivu 56197274b6 Fixes tests, that need to be in tests directory to not get build errors.
Thanks to xet7 !
2021-06-24 22:21:29 +03:00
Lauri Ojansivu 6cf65ba82a Updated ChangeLog. 2021-06-23 13:44:06 +03:00
Lauri Ojansivu aa59007409 Merge branch 'jankapunkt-tests' 2021-06-23 13:40:54 +03:00
Lauri Ojansivu 66729e4c05 Merge branch 'tests' of https://github.com/jankapunkt/wekan into jankapunkt-tests 2021-06-23 13:29:51 +03:00
Jan Küster 6387d32c2f ci fix script name 2021-06-23 12:25:02 +02:00
Jan Küster 48dbeb1e14 initial tests added 2021-06-23 12:12:29 +02:00
Jan Küster 20452d7296 initial tests added 2021-06-23 12:08:14 +02:00
Jan Küster 7daa67c792 script added for running tests 2021-06-23 12:06:33 +02:00
Jan Küster 4d9ba8d73b tests ci added 2021-06-23 11:52:34 +02:00
Jan Küster 3650ef4805 testinfrastructure created 2021-06-23 11:51:58 +02:00
Lauri Ojansivu be9154a015 Updated ChangeLog. 2021-06-22 19:35:47 +03:00
Lauri Ojansivu 0e00ca2350 Updated translations. 2021-06-22 19:17:56 +03:00
Lauri Ojansivu 2c0549a67a Updated ChangeLog. 2021-06-22 19:14:14 +03:00
Lauri Ojansivu 59e23e4296 Merge pull request #3871 from jankapunkt/fix-exceljs-client-leakage
remove unused exceljs from client bundle
2021-06-22 19:09:56 +03:00
Jan Küster 3aa7a6e244 remove unused exceljs from client bundle 2021-06-22 17:53:14 +02:00
Lauri Ojansivu 838c74a83b Updated ChangeLog. 2021-06-16 20:03:32 +03:00
Lauri Ojansivu 7f17bc9fb0 Shared Templates. In Progress.
Part 3:
- Template container titles "Card/List/Board Templates" automatically
  translated.

Thanks to xet7 !

Related #3313
2021-06-16 19:59:59 +03:00
Lauri Ojansivu 2dca6e8e7c Updated translations. 2021-06-16 19:19:20 +03:00
Lauri Ojansivu a1bb3f9031 Updated ChangeLog. 2021-06-16 19:16:39 +03:00
Lauri Ojansivu d1d4453120 Shared Templates. In Progress.
Part 2:
- Ablity to Add Template Container, checkbox in Create Board popup.
- Do not create Template Container by default, when creating user.

Thanks to xet7 !

Related #3313
2021-06-16 19:06:10 +03:00
Lauri Ojansivu 48dcb02328 Updated translations. 2021-06-16 16:19:08 +03:00
Lauri Ojansivu 0a0cec6ef0 Shared Templates. In Progress.
Thanks to xet7 !

Related #3313
2021-06-16 16:10:34 +03:00
Lauri Ojansivu c3dd9f47fb Updated translations. 2021-06-15 22:24:52 +03:00
Lauri Ojansivu 5417f9b190 Updated translations. 2021-06-15 12:53:30 +03:00
Lauri Ojansivu f03c873815 Fix typos. 2021-06-15 12:48:08 +03:00
Lauri Ojansivu 80adca5134 Merge pull request #3865 from Emile840/master
Added some controls and warning messages when user try to delete an organization or team that has at least one user belongs to it
2021-06-15 12:43:06 +03:00
Emile840 6efcac2a0e Merge branch 'master' into master 2021-06-14 17:04:21 +02:00
Emile NDAGIJIMANA 5162317298 -warning messages when user try to delete an organization / remove user from organization or team 2021-06-14 16:43:07 +02:00
Emile NDAGIJIMANA 90139b978c merge of two branchs 2021-06-14 15:38:15 +02:00
Emile NDAGIJIMANA 080fcb9c62 -conflits resolve 2021-06-14 15:11:21 +02:00
Emile NDAGIJIMANA 250f95deb6 Added some controls and warning messages when user try to delete an organization or team that has at least one user belongs to it 2021-06-14 12:51:15 +02:00
Emile NDAGIJIMANA bc98d82acf Added some controls and warning messages when user try to delete an organization or team that has at least one user belongs to it 2021-06-14 12:46:00 +02:00
Emile NDAGIJIMANA ecd780962f Added some controls and warning messages when user try to delete an organization or team that has at least one user belongs to it 2021-06-14 11:32:06 +02:00
Emile NDAGIJIMANA ab06597b7c Added some controls and warning messages when user try to delete an organization or team that has at least one user belongs to it 2021-06-14 11:29:51 +02:00
Emile NDAGIJIMANA 220c52373a Added some controls and warning messages when user try to delete an organization or team that has at least one user belongs to it 2021-06-14 10:03:48 +02:00
Emile NDAGIJIMANA 688ef08cd5 confilcts resolved for Addressed one of the point cited in issue #802 'Assigning a user to a team or organization 2021-06-10 18:27:27 +02:00
Emile NDAGIJIMANA 8607a18a26 Addressed one of the point cited in issue #802 'Assigning a user to a team or an organization' 2021-06-10 17:20:07 +02:00
Stefan Maaßen fe7962e10a AD Simple Auth is working 2020-04-07 14:03:16 +02:00
167 changed files with 8870 additions and 8419 deletions

No files matched your search

+8 -1
View File
@@ -1,5 +1,12 @@
{
"presets": [
"@babel/preset-stage-3"
]
],
"env": {
"COVERAGE": {
"plugins": [
"istanbul"
]
}
}
}
+1 -1
View File
@@ -6,7 +6,7 @@ ENV DEBIAN_FRONTEND=noninteractive
ENV \
DEBUG=false \
NODE_VERSION=v12.22.1 \
NODE_VERSION=v12.22.5 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
+1
View File
@@ -122,6 +122,7 @@
"Activities": true,
"Attachments": true,
"Boards": true,
"CardCommentReactions": true,
"CardComments": true,
"DatePicker": true,
"Cards": true,
+1 -1
View File
@@ -81,7 +81,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 12.22.1
node-engine: 12.22.5
node-packages:
- node-gyp
- node-pre-gyp
+1 -1
View File
@@ -83,7 +83,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 12.22.1
node-engine: 12.22.5
node-packages:
- node-gyp
- node-pre-gyp
+3
View File
@@ -1,5 +1,8 @@
## Issue
Note: With Docker, please don't use latest tag. Only use release tags.
See https://github.com/wekan/wekan/issues/3874
If you can not login for any reason:
- https://github.com/wekan/wekan/wiki/Forgot-Password
+160
View File
@@ -0,0 +1,160 @@
name: Test suite
on:
push:
branches:
- master
pull_request:
jobs:
# the following are optional jobs and need to be configured according
# to this project's settings:
#
# lintcode:
# name: Javascript lint
# runs-on: ubuntu-latest
# steps:
# - name: checkout
# uses: actions/checkout@v2
#
# - name: setup node
# uses: actions/setup-node@v1
# with:
# node-version: '12.x'
#
# - name: cache dependencies
# uses: actions/cache@v1
# with:
# path: ~/.npm
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
# restore-keys: |
# ${{ runner.os }}-node-
#
# - run: npm install
# - run: npm run lint:code
#
# lintstyle:
# name: SCSS lint
# runs-on: ubuntu-latest
# needs: [lintcode]
# steps:
# - name: checkout
# uses: actions/checkout@v2
#
# - name: setup node
# uses: actions/setup-node@v1
# with:
# node-version: '12.x'
#
# - name: cache dependencies
# uses: actions/cache@v1
# with:
# path: ~/.npm
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
# restore-keys: |
# ${{ runner.os }}-node-
# - run: npm install
# - run: npm run lint:style
#
# lintdocs:
# name: documentation lint
# runs-on: ubuntu-latest
# needs: [lintcode,lintstyle]
# steps:
# - name: checkout
# uses: actions/checkout@v2
#
# - name: setup node
# uses: actions/setup-node@v1
# with:
# node-version: '12.x'
#
# - name: cache dependencies
# uses: actions/cache@v1
# with:
# path: ~/.npm
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
# restore-keys: |
# ${{ runner.os }}-node-
#
# - run: npm install
# - run: npm run lint:markdown
tests:
name: Meteor ${{ matrix.meteor }} tests
runs-on: ubuntu-latest
steps:
# CHECKOUTS
- name: Checkout
uses: actions/checkout@v2
# CACHING
- name: Install Meteor
id: cache-meteor-install
uses: actions/cache@v2
with:
path: ~/.meteor
key: v1-meteor-${{ hashFiles('.meteor/versions') }}
restore-keys: |
v1-meteor-
- name: Cache NPM dependencies
id: cache-meteor-npm
uses: actions/cache@v2
with:
path: ~/.npm
key: v1-npm-${{ hashFiles('package-lock.json') }}
restore-keys: |
v1-npm-
- name: Cache Meteor build
id: cache-meteor-build
uses: actions/cache@v2
with:
path: |
.meteor/local/resolver-result-cache.json
.meteor/local/plugin-cache
.meteor/local/isopacks
.meteor/local/bundler-cache/scanner
key: v1-meteor_build_cache-${{ github.ref }}-${{ github.sha }}
restore-key: |
v1-meteor_build_cache-
- name: Setup meteor
uses: meteorengineer/setup-meteor@v1
with:
meteor-release: '2.2'
- name: Install NPM Dependencies
run: meteor npm ci
- name: Run Tests
run: sh ./test-wekan.sh -cv
- name: Upload coverage
uses: actions/upload-artifact@v2
with:
name: coverage-folder
path: .coverage/
coverage:
name: Coverage report
runs-on: ubuntu-latest
needs: [tests]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download coverage
uses: actions/download-artifact@v2
with:
name: coverage-folder
path: .coverage/
- name: Coverage Report
uses: VeryGoodOpenSource/very_good_coverage@v1.1.1
with:
path: ".coverage/lcov.info"
min_coverage: 1 # TODO add tests and increase to 95!
+5
View File
@@ -33,3 +33,8 @@ ehthumbs.db
.meteor/local
.devcontainer/docker-compose.extend.yml
.devcontainer/volumes*/
.coverage
# Helm chart
# Chart dependencies
/helm/wekan/**/*.tgz
+2
View File
@@ -145,3 +145,5 @@ spacebars
easylogic:summernote
pascoual:pdfkit
wekan-accounts-lockout
lmieulet:meteor-coverage
meteortesting:mocha
+4
View File
@@ -69,6 +69,7 @@ lamhieu:meteorx@2.1.1
lamhieu:unblock@1.0.0
launch-screen@1.2.1
livedata@1.0.18
lmieulet:meteor-coverage@3.2.0
localstorage@1.2.0
logging@1.2.0
matb33:collection-hooks@0.9.1
@@ -82,6 +83,9 @@ meteorhacks:collection-utils@1.2.0
meteorhacks:picker@1.0.3
meteorhacks:subs-manager@1.6.4
meteorspark:util@0.2.0
meteortesting:browser-tests@1.3.4
meteortesting:mocha@2.0.1
meteortesting:mocha-core@8.0.1
minifier-css@1.5.4
minifier-js@2.6.0
minifiers@1.1.8-faster-rebuild.0
+1 -1
View File
@@ -3,7 +3,7 @@ sudo: required
env:
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
TRAVIS_NODE_VERSION: 12.22.1
TRAVIS_NODE_VERSION: 12.22.5
TRAVIS_NPM_VERSION: latest
before_install:
+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 = ar_EG:ar-EG, bg_BG:bg, de_CH:de-CH, en_GB:en-GB, es_AR:es-AR, es_CL:es-CL, es_419:es-LA, es_PE:es-PE, es_MX:es-MX, es_TX:es-TX, es_PY:es-PY, el_GR:el, fa_IR:fa-IR, fi_FI:fi, hu_HU:hu, id_ID:id, mn_MN:mn, lv_LV:lv, pt_BR:pt-BR, ro_RO:ro, sl_SI:sl, zh_CN:zh-CN, zh_TW:zh-TW, zh_HK:zh-HK
lang_map = ar_EG:ar-EG, bg_BG:bg, de_CH:de-CH, en_IT:en-IT, en_GB:en-GB, es_AR:es-AR, es_CL:es-CL, es_419:es-LA, es_PE:es-PE, es_MX:es-MX, es_TX:es-TX, es_PY:es-PY, el_GR:el, fa_IR:fa-IR, fi_FI:fi, fr_CH:fr-CH, hu_HU:hu, id_ID:id, mn_MN:mn, lv_LV:lv, pt_BR:pt-BR, ro_RO:ro, sl_SI:sl, zh_CN:zh-CN, zh_TW:zh-TW, zh_Hans:zh-Hans, zh_HK:zh-HK
[wekan.application]
file_filter = i18n/<lang>.i18n.json
+307
View File
@@ -1,5 +1,312 @@
[Mac ChangeLog](https://github.com/wekan/wekan/wiki/Mac)
Note: With Docker, please don't use latest tag. Only use release tags.
See https://github.com/wekan/wekan/issues/3874
# v5.52 2021-08-26 Wekan release
This release adds the following new features:
- Added MAIL_SERVICE settings for Well Known Email Services
[Part 1](https://github.com/wekan/wekan/commit/ab8e56e16a02ef0afb7b4023a43b4adf2558a8ff),
[Part 2](https://github.com/wekan/wekan/commit/1fadf204c2d5fa96ea41b9cb39f003cc05e2fe46).
https://github.com/wekan/wekan/wiki/Troubleshooting-Mail . Please test.
Thanks to xet7.
- [All Boards page: Possibility of filtering board by team or organization](https://github.com/wekan/wekan/pull/3964).
Thanks to Emile840.
- [Fixed translation of "Clear Filter" for "All boards page: Possibility of filtering board by team or organization"](https://github.com/wekan/wekan/commit/b36a7621e0feca5c22fc4a24eceba1a9fc584ab0).
Thanks to xet7.
and adds the following new translations:
- [Added Chinese (Simplified) (zh-Hans or zh-CN)](https://github.com/wekan/wekan/commit/f2c242f49e18e2197f1f90c9b2dac5934a08325d).
Thanks to translators.
and fixes the following bugs:
- [Initials not required for new user that is created at Admin Panel](https://github.com/wekan/wekan/commit/9c7c481f48cb66406715f7571439f9d7fa332b87).
Thanks to xet7.
- [Delete user is now possible at Admin Panel](https://github.com/wekan/wekan/commit/7808fdd22f04cc482b7df21187aaf3e9623f19e6).
But you should remove user first from all boards, because otherwise there could be
bug of empty avatars at boards, that need to be removed manually from database.
Thanks to xet7.
- [Fixed Save button not clickable in maximized card view](https://github.com/wekan/wekan/commit/a59932af00c066871102970d252b78d262d06fa0).
Thanks to hatl, urmel1960 and syndimann.
- [Fixed New wide card edit view is all jumbled on mobile](https://github.com/wekan/wekan/commit/241eb9df0fb446b3775704848281b0cc032c4921).
Thanks to jdaviescoates and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.51 2021-08-17 Wekan release
This release fixes the following bugs:
- [Fixed exception in global search](https://github.com/wekan/wekan/pull/3949).
Thanks to syndimann.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.50 2021-08-15 Wekan release
This release fixes the following bugs:
- [Fix: Save user initials and fullname when a new user is created](https://github.com/wekan/wekan/pull/3946).
Thanks to syndimann.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.49 2021-08-14 Wekan release
This release adds the following new features:
- [Text "Search" now translatable at Card Add Member/Assignee](https://github.com/wekan/wekan/commit/9ce65c601a875a4259fb69fdda45124b8412ae6f).
Thanks to xet7.
- [Add Card Comment Reactions](https://github.com/wekan/wekan/pull/3945).
Thanks to syndimann.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.48 2021-08-11 Wekan release
This release adds the following CRITICAL SECURITY UPDATES:
- [Updated to Node.js v12.22.5](https://github.com/wekan/wekan/commit/91cad7b49e25cecdf417321dadcdd9ea5cd8b020).
Thanks to Node.js developers.
- Also jszip update in some of included update commits.
and adds the following new features:
- [Searchfields for members and assignees card popups](https://github.com/wekan/wekan/pull/3942).
Thanks to syndimann.
and adds the following updates:
- [Updated dependencies](https://github.com/wekan/wekan/commit/b3cc01b04167bd67dde02c6c899baf8917ae09c1).
Thanks to developers of dependencies.
and adds the following new translations:
- [French (Switzerland) (fr_CH)](https://github.com/wekan/wekan/commit/23c70ac252494b464cd2a268d7e680370775ddc4).
Thanks to translators.
and fixes the following bugs:
- [Fixed: Can't save user without Initials](https://github.com/wekan/wekan/commit/9a03654062f9c8ac7aac257f11b386a054cd39e7).
Thanks to devagleo and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.47 2021-08-05 Wekan release
This release adds the following updates:
- [Updated dependencies](https://github.com/wekan/wekan/commit/68d9de89466611521db7d942dcf8daf58ba15a3e).
Thanks to developers of dependencies.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.46 2021-08-05 Wekan release
This release adds the following updates:
- [Updated dependencies](https://github.com/wekan/wekan/commit/d5c0a5d377d31bedadf3730756406355a17a563a).
Thanks to developers of dependencies.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.45 2021-08-05 Wekan release
This release adds the following new features:
- [Special handles to notify board or card members in a comment](https://github.com/wekan/wekan/pull/3937).
Thanks to syndimann.
and fixes the following bugs:
- [Fix: Show missing user mentions popover when posting comments in maximized card layout](https://github.com/wekan/wekan/pull/3939).
Thanks to syndimann.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.44 2021-08-03 Wekan release
This release adds the following updates:
- [Wekan v5.43](https://github.com/wekan/wekan/commit/4e17d5a10f95fcea420c794ed8b30ea18dc2a725) and v5.44 for helm.
Thanks to xet7.
and fixes the following bugs:
- [Fix: Consecutive Card numbering when a card is moved to another board or copied](https://github.com/wekan/wekan/pull/3936).
Thanks to syndimann.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.43 2021-08-03 Wekan release
This release adds the following new features:
- [Consecutive boardwise card numbering](https://github.com/wekan/wekan/pull/3935).
Thanks to syndimann.
and adds the following updates:
- [Update Helm Chart apiVersion, pin image version](https://github.com/wekan/wekan/pulls/3933).
This makes this Chart compatible with [flux](https://fluxcd.io)
[helm-controller](https://fluxcd.io/docs/components/helm), which requires v2 charts.
Thanks to varac.
- [Wekan v5.42 for helm](https://github.com/wekan/wekan/commit/7a1f42fa4e153ff4a0fb481ca5a363ac62033b7f).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.42 2021-08-01 Wekan release
This release adds the following CRITICAL SECURITY UPDATES:
- [Updated to Node.js v12.22.4](https://github.com/wekan/wekan/commit/b13f6913896f787e1cae485381d98345d9f8b830).
Thanks to Node.js developers.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.41 2021-07-26 Wekan release
This release fixes the following bugs:
- [Fixed Wekan JSON import fails](https://github.com/wekan/wekan/commit/0fa8fc8b506831a60649d100ce93c96f8f7b76f5).
Thanks to BartoszBroda and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.40 2021-07-25 Wekan release
This release fixes the following bugs:
- [Fixed Delete of Planning Poker doesn't work](https://github.com/wekan/wekan/commit/18b6381d790848062752b211d48c84a2de268bd0).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.39 2021-07-24 Wekan release
This release adds the following new features:
- [LDAP AD Simple Auth](https://github.com/wekan/wekan/pull/3909).
Thanks to indika-dev.
- [LDAP AD Simple Auth: Added settings for all remaining Wekan Standalone (non-Sandstorm)
platforms](https://github.com/wekan/wekan/commit/fe40f35d6d9b6293f3bdbf5bc0f3e8e708c59518)
and Docs to https://github.com/wekan/wekan/wiki/LDAP-AD-Simple-Auth .
Thanks to xet7.
- [Convert Checklist Item to Card](https://github.com/wekan/wekan/pull/3910).
Thanks to helioguardabaxo.
- [Organizations and Teams are taken into account when displaying board at
`All Boards` page](https://github.com/wekan/wekan/pull/3912).
Thanks to Emile840.
and adds the following new translations:
- [English (Italy)](https://github.com/wekan/wekan/commit/ae73029dda63db361925e378202e6f8c137cf5bd).
Thanks to translators.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.38 2021-07-18 Wekan release
This release adds the following new features:
- [Added Code View `</>` button when `RICHER_CARD_COMMENT_EDITOR=true` and in desktop view
where is enough screen space for buttons (not added to mobile
view)](https://github.com/wekan/wekan/commit/ec01e5182d6b8c848d752540887a8113472b0226).
Thanks to xet7.
and adds the following updates:
- Updated dependencies
[Part 1](https://github.com/wekan/wekan/commit/7024929881c05cad472de74c86517cf80c8e240c),
[Part 2](https://github.com/wekan/wekan/commit/609adcdf100db226c5f310577195afa4b1a4aead).
Thanks to developers of dependencies.
- [Updated to Node.js v12.22.3](https://github.com/wekan/wekan/commit/d538a01d1962464cf4cb001462669150eeafaa99).
Thanks to Node.js developers.
and fixes the following bugs:
- [Fixed Line break which is wrongly added in Cards description and Cards
comments](https://github.com/wekan/wekan/commit/ec01e5182d6b8c848d752540887a8113472b0226).
Thanks to Emile840 and xet7.
- [Fixed rebuild-wekan.sh](https://github.com/wekan/wekan/commit/1d5dd5e60fec151de6c7dce7ef4e758b562923b9).
Thanks to xet7.
- [Small fixes for ModernDark theme](https://github.com/wekan/wekan/pull/3902).
Thanks to jghaanstra.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.37 2021-07-04 Wekan release
This release adds the following CRITICAL SECURITY UPDATES:
- [Updated to Node.js v12.22.2](https://github.com/wekan/wekan/commit/4feffd90e3f466609e09524e0ddccdafa2faef32).
Thanks to Node.js developers.
and fixes the following bugs:
- [Building OpenAPI docs is broken in Wekan v3.56](https://github.com/wekan/wekan/pull/3889).
Thanks to bentiss.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.36 2021-06-29 Wekan release
This release adds the following new features:
- [Added some controls and warning messages when user try to delete an organization or team that has
at least one user belongs to it](https://github.com/wekan/wekan/pull/3865).
Thanks to Emile840.
- Shared Templates. In Progress.
[Part 1](https://github.com/wekan/wekan/commit/0a0cec6ef0eb55391608aade897004db430ba10a).
Template Containers visible at All Boards page, with white border around board icon.
[Part 2](https://github.com/wekan/wekan/commit/d1d4453120005de61eaf2cbadc6a7b9d80e75fc1).
Ablity to Add Template Container, checkbox in Create Board popup.
Do not create Template Container by default, when creating user.
[Part 3](https://github.com/wekan/wekan/commit/7f17bc9fb03d6f4b43a2cd71ecc372e0f1b0f491).
Template container titles "Card/List/Board Templates" automatically translated.
Thanks to xet7.
[Part 4](https://github.com/wekan/wekan/commit/3b4a44abb1c1c4339c3d1b00dfac1c69ec3684cd).
Hide this Shared Templates feature while it's not finished yet.
Added back creating Template Container by default, when creating user.
Thanks to xet7.
- [Added testsuite](https://github.com/wekan/wekan/pull/3872).
Thanks to jankapunkt.
- [Delete user at REST API and `Admin Panel/People/People`](https://github.com/wekan/wekan/commit/9e16a405d8ca32a4e1be9cf89f8f978a2985593c).
There is still bug of leaving empty user avatars to boards: boards members, card members and assignees have
empty users. So it would be better to delete user from all boards before deleting user.
Thanks to darren-teo and xet7.
and adds the following improvements:
- [Removed unused exceljs from client bundle](https://github.com/wekan/wekan/pull/3871).
This decreased Wekan browserside frontend amount of Javascript from 5.4 MB to 4.3 MB.
Thanks to jankapunkt.
- Added note: With Docker, please don't use latest tag. Only use release tags.
See https://github.com/wekan/wekan/issues/3874 .
[Part 1](https://github.com/wekan/wekan/commit/f18a57b059994b8a6a3588a69cf095fe599b3a90),
[Part 2](https://github.com/wekan/wekan/commit/c4cea9e71b467731fd8290538dd039b7691097af).
Thanks to xet7.
and fixes the following bugs:
- [Fixed tests, that need to be in tests directory to not get build
errors](https://github.com/wekan/wekan/commit/56197274b6c4782fa20c7d9b5b9d58255d1f830a).
Thanks to xet7.
- Try to fix tests.
[Part 1](https://github.com/wekan/wekan/commit/78555f57a7c2ba0fb3e3986608bcf11509af9a21),
[Part 2](https://github.com/wekan/wekan/commit/7f648720afa42a2b53bfdee7e709fd891eb33373),
[Part 3](https://github.com/wekan/wekan/commit/0f34d407a43c8a63d882e69ea64ea17fc4b22c7b).
Thanks to xet7.
- [Fixed "Search All Boards" instructions are gone](https://github.com/wekan/wekan/commit/30ffcc924663f39406b250d93b14384a2f38ab6a).
Thanks to ClaudiaK21 and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.35 2021-06-14 Wekan release
This release adds the following new features:
+9 -3
View File
@@ -12,7 +12,7 @@ ARG DEBIAN_FRONTEND=noninteractive
ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \
DEBUG=false \
NODE_VERSION=v12.22.1 \
NODE_VERSION=v12.22.5 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
@@ -21,6 +21,11 @@ ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-
ARCHITECTURE=linux-x64 \
SRC_PATH=./ \
WITH_API=true \
MAIL_URL="" \
MAIL_FROM="" \
MAIL_SERVICE="" \
MAIL_SERVICE_USER="" \
MAIL_SERVICE_PASSWORD="" \
RESULTS_PER_PAGE="" \
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3 \
ACCOUNTS_LOCKOUT_KNOWN_USERS_PERIOD=60 \
@@ -64,6 +69,9 @@ ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-
LDAP_ENABLE=false \
LDAP_PORT=389 \
LDAP_HOST="" \
LDAP_AD_SIMPLE_AUTH="" \
LDAP_USER_AUTHENTICATION=false \
LDAP_USER_AUTHENTICATION_FIELD=uid \
LDAP_BASEDN="" \
LDAP_LOGIN_FALLBACK=false \
LDAP_RECONNECT=true \
@@ -81,8 +89,6 @@ ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-
LDAP_ENCRYPTION=false \
LDAP_CA_CERT="" \
LDAP_REJECT_UNAUTHORIZED=false \
LDAP_USER_AUTHENTICATION=false \
LDAP_USER_AUTHENTICATION_FIELD=uid \
LDAP_USER_SEARCH_FILTER="" \
LDAP_USER_SEARCH_SCOPE="" \
LDAP_USER_SEARCH_FIELD="" \
+2 -2
View File
@@ -4,7 +4,7 @@ FROM amd64/alpine:3.7 AS builder
ENV QEMU_VERSION=v4.2.0-6 \
QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v12.22.1 \
NODE_VERSION=v12.22.5 \
WEKAN_VERSION=latest \
WEKAN_ARCHITECTURE=arm64
@@ -40,7 +40,7 @@ LABEL maintainer="wekan"
# Set the environment variables (defaults where required)
ENV QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v12.22.1 \
NODE_VERSION=v12.22.5 \
NODE_ENV=production \
NPM_VERSION=latest \
WITH_API=true \
+5
View File
@@ -30,6 +30,11 @@ It's better than at chat where details get lost when chat scrolls up.
[Wekan IRC FAQ](https://github.com/wekan/wekan/wiki/IRC-FAQ)
## Docker: Please only use Docker release tags
Note: With Docker, please don't use latest tag. Only use release tags.
See https://github.com/wekan/wekan/issues/3874
## FAQ
**NOTE**:
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v5.35.0"
appVersion: "v5.52.0"
files:
userUploads:
- README.md
+20 -3
View File
@@ -21,6 +21,22 @@ template(name="editOrDeleteComment")
= ' - '
a.js-delete-comment {{_ "delete"}}
template(name="commentReactions")
.reactions
each reaction in reactions
span.reaction(class="{{#if isSelected reaction.userIds}}selected{{/if}}" data-codepoint="#{reaction.reactionCodepoint}" title="{{userNames reaction.userIds}}")
span.reaction-codepoint !{reaction.reactionCodepoint}
span.reaction-count #{reaction.userIds.length}
if (currentUser.isBoardMember)
a.open-comment-reaction-popup(title="{{_ 'addReactionPopup-title'}}")
i.fa.fa-smile-o
i.fa.fa-plus
template(name="addReactionPopup")
.reactions-popup
each codepoint in codepoints
span.add-comment-reaction(data-codepoint="#{codepoint}") !{codepoint}
template(name="activity")
.activity
+userAvatar(userId=activity.user._id)
@@ -124,6 +140,7 @@ template(name="activity")
.activity-comment
+viewer
= activity.comment.text
+commentReactions(reactions=activity.comment.reactions commentId=activity.comment._id)
span(title=activity.createdAt).activity-meta {{ moment activity.createdAt }}
if($eq currentUser._id activity.comment.userId)
+editOrDeleteComment
@@ -150,20 +167,20 @@ template(name="activity")
if($eq activity.activityType 'a-startAt')
| {{{_ 'activity-startDate' (sanitize startDate) cardLink}}}.
if($eq activity.activityType 'a-dueAt')
| {{{_ 'activity-dueDate' (sanitize dueDate) cardLink}}}.
if($eq activity.activityType 'a-endAt')
| {{{_ 'activity-endDate' (sanitize endDate) cardLink}}}.
if($eq mode 'board')
if($eq activity.activityType 'a-receivedAt')
| {{{_ 'activity-receivedDate' (sanitize receivedDate) cardLink}}}.
if($eq activity.activityType 'a-startAt')
| {{{_ 'activity-startDate' (sanitize startDate) cardLink}}}.
if($eq activity.activityType 'a-dueAt')
| {{{_ 'activity-dueDate' (sanitize dueDate) cardLink}}}.
@@ -240,6 +240,60 @@ Template.activity.helpers({
},
});
Template.commentReactions.events({
'click .reaction'(event) {
if (Meteor.user().isBoardMember()) {
const codepoint = event.currentTarget.dataset['codepoint'];
const commentId = Template.instance().data.commentId;
const cardComment = CardComments.findOne({_id: commentId});
cardComment.toggleReaction(codepoint);
}
},
'click .open-comment-reaction-popup': Popup.open('addReaction'),
})
Template.addReactionPopup.events({
'click .add-comment-reaction'(event) {
if (Meteor.user().isBoardMember()) {
const codepoint = event.currentTarget.dataset['codepoint'];
const commentId = Template.instance().data.commentId;
const cardComment = CardComments.findOne({_id: commentId});
cardComment.toggleReaction(codepoint);
}
Popup.close();
},
})
Template.addReactionPopup.helpers({
codepoints() {
// Starting set of unicode codepoints as comment reactions
return [
'&#128077;',
'&#128078;',
'&#128064;',
'&#9989;',
'&#10060;',
'&#128591;',
'&#128079;',
'&#127881;',
'&#128640;',
'&#128522;',
'&#129300;',
'&#128532;'];
}
})
Template.commentReactions.helpers({
isSelected(userIds) {
return userIds.includes(Meteor.user()._id);
},
userNames(userIds) {
return Users.find({_id: {$in: userIds}})
.map(user => user.profile.fullname)
.join(', ');
}
})
function createCardLink(card) {
if (!card) return '';
return (
+54 -1
View File
@@ -5,6 +5,20 @@
display: flex
justify-content:space-between
.reactions-popup
.add-comment-reaction
display: inline-block
cursor: pointer
border-radius: 5px
font-size: 22px
text-align: center
line-height: 30px
width: 40px
&:hover {
background-color: #b0c4de
}
.activities
clear: both
@@ -18,7 +32,7 @@
height: @width
.activity-member
font-weight: 700
font-weight: 700
.activity-desc
word-wrap: break-word
@@ -39,6 +53,45 @@
margin-top: 5px
padding: 5px
.reactions
display: flex
margin-top: 5px
gap: 5px
.open-comment-reaction-popup
display: flex
align-items: center
text-decoration: none
height: 24px;
i.fa.fa-smile-o
font-size: 17px
font-weight: 500
margin-left: 2px
i.fa.fa-plus
font-size: 8px;
margin-top: -7px;
margin-left: 1px;
.reaction
cursor: pointer
border: 1px solid grey
border-radius: 15px
display: flex
padding: 2px 5px
&.selected {
background-color: #b0c4de
}
&:hover {
background-color: #b0c4de
}
.reaction-count
font-size: 12px
.activity-checklist
display: block
border-radius: 3px
+57 -18
View File
@@ -766,7 +766,15 @@ setBoardClear(color1,color2)
.toggle-label:after, .board-color-modern .toggle-switch:checked~.toggle-label:after
background-color: #819C5D !important
button, input:not([type=file]), select, textarea
border-radius: 2px
/* Headers */
&#header
background-color: #262626
border-bottom: 1px solid #555555;
border-top: 1px solid #555555;
&#header-quick-access, .background-box, #header
background-color: #333333
@@ -774,14 +782,16 @@ setBoardClear(color1,color2)
padding: 4px
font-size: 14px
&#header-quick-access .allBoards
padding: 5px 10px 0 10px;
&#header-quick-access ul.header-quick-access-list
margin: -5px 0 -5px 0
&#header #header-main-bar
height: 30px
padding-top: 3px
padding-bottom: 3px
&#header
box-shadow: 0 6px 6px -6px rgba(0,0,0,0.8)
&#header-quick-access ul
overflow: visible
@@ -812,18 +822,23 @@ setBoardClear(color1,color2)
/* Content */
.board-canvas
background: #2a2a2a
padding: 10px 10px 0
/* Swimlanes */
.swimlane .swimlane-header-wrap
background-color: #666666
background-color: #494949
color: #cccccc
padding: 4px 0
margin-bottom: 10px
.swimlane .swimlane-header-wrap .swimlane-header
font-family: Poppins
.swimlane .swimlane-header-wrap .swimlane-header-menu
padding: 6px
font-size: 16px
.swimlane .swimlane-header-wrap .swimlane-header-plus-icon
font-size: 16px
.swimlane
background: #2a2a2a
line-height: 15px
@@ -836,13 +851,19 @@ setBoardClear(color1,color2)
border: 0px solid #666666
flex: 0 0 265px;
.swimlane .list:first-child
margin-left: 0
.swimlane .list:nth-child(even)
background: #5f5f5f
.swimlane .list:nth-child(odd) .list-header
background: #3b3b3b
.list-header
background: #333333
padding-top: 10px
border-bottom: 6px solid #333333
padding: 10px
border-bottom: 0
.list-header .viewer
padding-left: 10px
@@ -852,7 +873,11 @@ setBoardClear(color1,color2)
color: #eeeeee
.list-header .list-header-menu
padding-top: 17px
padding: 10px
top: 0
.list-header .list-header-plus-icon
color: #a6a6a6
.list-body
scrollbar-width: thin
@@ -883,35 +908,43 @@ setBoardClear(color1,color2)
color: #ffffff
/* Mini Card */
.minicard-wrapper
margin-bottom: 12px
.minicard
background-color: #444444
color: #cccccc
border-radius: 2px
font-size: 0.9em
font-size: 0.95em
padding: 10px
box-shadow: 0 4px 3px -3px rgba(0,0,0,0.8)
border-bottom: 1px solid #666666
.minicard:hover
background-color: #555555 !important
background-color: #494949 !important
.minicard .minicard-labels
margin-bottom: 4px
.minicard .card-label
font-size: 11px
font-weight: 400
padding: 2px 6px 0
padding: 1px 6px 0
border-radius: 2px
.minicard .badges
color: #bbbbbb
.minicard .date
margin-top: 7px
margin-top: 10px
font-size: 11px
.card-date
color: #555555
color: #444444
border-radius: 2px
.card-date.almost-due
color: #666666
color: #444444
.minicard.minicard-composer textarea.minicard-composer-textarea:focus
background-color: #eeeeee
@@ -970,11 +1003,17 @@ setBoardClear(color1,color2)
.card-details .checklist-item
background-color: rgba(255,255,255,0.1)
padding: 2px 8px
border-radius: 3px
padding: 4px 8px
border-radius: 2px
font-size: 13px
margin-top: 5px
.card-details .checklist-item:hover
background-color: rgba(255,255,255,0.2)
.card-details .checklist-item .item-title .viewer p
max-width: auto
.card-details .check-box.materialCheckBox
border-color: #ffffff
+8 -2
View File
@@ -1,8 +1,11 @@
template(name="boardHeaderBar")
h1.header-board-menu
with currentBoard
+viewer
= title
if $eq title 'Templates'
| {{_ 'templates'}}
else
+viewer
= title
.board-header-btns.left
unless isMiniScreen
@@ -225,6 +228,9 @@ template(name="createBoard")
= " "
| {{{_ 'board-private-info'}}}
a.js-change-visibility {{_ 'change'}}.
//a.flex.js-toggle-add-template-container
// .materialCheckBox#add-template-container
// span {{_ 'add-template-container'}}
input.primary.wide(type="submit" value="{{_ 'create'}}")
span.quiet
| {{_ 'or'}}
+68 -12
View File
@@ -209,24 +209,79 @@ const CreateBoard = BlazeComponent.extendComponent({
this.visibilityMenuIsOpen.set(!this.visibilityMenuIsOpen.get());
},
toggleAddTemplateContainer() {
$('#add-template-container').toggleClass('is-checked');
},
onSubmit(event) {
event.preventDefault();
const title = this.find('.js-new-board-title').value;
const visibility = this.visibility.get();
this.boardId.set(
Boards.insert({
title,
permission: visibility,
}),
);
const addTemplateContainer = $('#add-template-container.is-checked').length > 0;
if (addTemplateContainer) {
//const templateContainerId = Meteor.call('setCreateTemplateContainer');
//Utils.goBoardId(templateContainerId);
//alert('niinku template ' + Meteor.call('setCreateTemplateContainer'));
Swimlanes.insert({
title: 'Default',
boardId: this.boardId.get(),
});
this.boardId.set(
Boards.insert({
// title: TAPi18n.__('templates'),
title: title,
permission: 'private',
type: 'template-container',
}),
);
Utils.goBoardId(this.boardId.get());
// Insert the card templates swimlane
Swimlanes.insert({
// title: TAPi18n.__('card-templates-swimlane'),
title: 'Card Templates',
boardId: this.boardId.get(),
sort: 1,
type: 'template-container',
}),
// Insert the list templates swimlane
Swimlanes.insert(
{
// title: TAPi18n.__('list-templates-swimlane'),
title: 'List Templates',
boardId: this.boardId.get(),
sort: 2,
type: 'template-container',
},
);
// Insert the board templates swimlane
Swimlanes.insert(
{
//title: TAPi18n.__('board-templates-swimlane'),
title: 'Board Templates',
boardId: this.boardId.get(),
sort: 3,
type: 'template-container',
},
);
Utils.goBoardId(this.boardId.get());
} else {
const visibility = this.visibility.get();
this.boardId.set(
Boards.insert({
title,
permission: visibility,
}),
);
Swimlanes.insert({
title: 'Default',
boardId: this.boardId.get(),
});
Utils.goBoardId(this.boardId.get());
}
},
events() {
@@ -240,6 +295,7 @@ const CreateBoard = BlazeComponent.extendComponent({
submit: this.onSubmit,
'click .js-import-board': Popup.open('chooseBoardSource'),
'click .js-board-template': Popup.open('searchElement'),
'click .js-toggle-add-template-container': this.toggleAddTemplateContainer,
},
];
},
+106 -42
View File
@@ -1,11 +1,32 @@
template(name="boardList")
.wrapper
ul.AllBoardTeamsOrgs
li.AllBoardTeams
if userHasTeams
select.js-AllBoardTeams#jsAllBoardTeams("multiple")
option(value="-1") {{_ 'teams'}} :
each teamsDatas
option(value="{{teamId}}") {{_ teamDisplayName}}
li.AllBoardOrgs
if userHasOrgs
select.js-AllBoardOrgs#jsAllBoardOrgs("multiple")
option(value="-1") {{_ 'organizations'}} :
each orgsDatas
option(value="{{orgId}}") {{_ orgDisplayName}}
li.AllBoardBtns
div.AllBoardButtonsContainer
if userHasOrgsOrTeams
i.fa.fa-filter
input#filterBtn(type="button" value="{{_ 'filter'}}")
input#resetBtn(type="button" value="{{_ 'filter-clear'}}")
ul.board-list.clearfix.js-boards
li.js-add-board
a.board-list-item.label(title="{{_ 'add-board'}}")
| {{_ 'add-board'}}
each boards
li(class="{{#if isStarred}}starred{{/if}}" class=colorClass).js-board
li(class="{{_id}}" class="{{#if isStarred}}starred{{/if}}" class=colorClass).js-board
if isInvited
.board-list-item
span.details
@@ -17,47 +38,90 @@ template(name="boardList")
button.js-accept-invite.primary {{_ 'accept'}}
button.js-decline-invite {{_ 'decline'}}
else
a.js-open-board.board-list-item(href="{{pathFor 'board' id=_id slug=slug}}")
span.details
span.board-list-item-name(title="{{_ 'board-drag-drop-reorder-or-click-open'}}")
+viewer
= title
i.fa.js-star-board(
class="fa-star{{#if isStarred}} is-star-active{{else}}-o{{/if}}"
title="{{_ 'star-board-title'}}")
p.board-list-item-desc
+viewer
= description
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}}")
if isMiniScreen
i.fa.board-handle(
class="fa-arrows"
title="{{_ 'Drag board'}}")
unless isMiniScreen
if isSandstorm
i.fa.js-clone-board(
class="fa-clone"
title="{{_ 'duplicate-board'}}")
i.fa.js-archive-board(
class="fa-archive"
title="{{_ 'archive-board'}}")
else if isAdministrable
i.fa.js-clone-board(
class="fa-clone"
title="{{_ 'duplicate-board'}}")
i.fa.js-archive-board(
class="fa-archive"
title="{{_ 'archive-board'}}")
else if currentUser.isAdmin
i.fa.js-clone-board(
class="fa-clone"
title="{{_ 'duplicate-board'}}")
i.fa.js-archive-board(
class="fa-archive"
title="{{_ 'archive-board'}}")
if $eq type "template-container"
a.js-open-board.template-container.board-list-item(href="{{pathFor 'board' id=_id slug=slug}}")
span.details
span.board-list-item-name(title="{{_ 'template-container'}}")
+viewer
= title
i.fa.js-star-board(
class="fa-star{{#if isStarred}} is-star-active{{else}}-o{{/if}}"
title="{{_ 'star-board-title'}}")
p.board-list-item-desc
+viewer
= description
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}}")
if isMiniScreen
i.fa.board-handle(
class="fa-arrows"
title="{{_ 'Drag board'}}")
unless isMiniScreen
if isSandstorm
i.fa.js-clone-board(
class="fa-clone"
title="{{_ 'duplicate-board'}}")
i.fa.js-archive-board(
class="fa-archive"
title="{{_ 'archive-board'}}")
else if isAdministrable
i.fa.js-clone-board(
class="fa-clone"
title="{{_ 'duplicate-board'}}")
i.fa.js-archive-board(
class="fa-archive"
title="{{_ 'archive-board'}}")
else if currentUser.isAdmin
i.fa.js-clone-board(
class="fa-clone"
title="{{_ 'duplicate-board'}}")
i.fa.js-archive-board(
class="fa-archive"
title="{{_ 'archive-board'}}")
else
a.js-open-board.board-list-item(href="{{pathFor 'board' id=_id slug=slug}}")
span.details
span.board-list-item-name(title="{{_ 'board-drag-drop-reorder-or-click-open'}}")
+viewer
= title
i.fa.js-star-board(
class="fa-star{{#if isStarred}} is-star-active{{else}}-o{{/if}}"
title="{{_ 'star-board-title'}}")
p.board-list-item-desc
+viewer
= description
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}}")
if isMiniScreen
i.fa.board-handle(
class="fa-arrows"
title="{{_ 'Drag board'}}")
unless isMiniScreen
if isSandstorm
i.fa.js-clone-board(
class="fa-clone"
title="{{_ 'duplicate-board'}}")
i.fa.js-archive-board(
class="fa-archive"
title="{{_ 'archive-board'}}")
else if isAdministrable
i.fa.js-clone-board(
class="fa-clone"
title="{{_ 'duplicate-board'}}")
i.fa.js-archive-board(
class="fa-archive"
title="{{_ 'archive-board'}}")
else if currentUser.isAdmin
i.fa.js-clone-board(
class="fa-clone"
title="{{_ 'duplicate-board'}}")
i.fa.js-archive-board(
class="fa-archive"
title="{{_ 'archive-board'}}")
template(name="boardListHeaderBar")
h1 {{_ title }}
+164 -5
View File
@@ -84,14 +84,105 @@ BlazeComponent.extendComponent({
}
});
},
userHasTeams(){
if(Meteor.user().teams)
{
return true;
}
else{
return false;
}
},
teamsDatas() {
if(Meteor.user().teams)
{
return Meteor.user().teams;
}
else{
return [];
}
},
userHasOrgs(){
if(Meteor.user().orgs)
{
return true;
}
else{
return false;
}
},
orgsDatas() {
if(Meteor.user().orgs)
{
return Meteor.user().orgs;
}
else{
return [];
}
},
userHasOrgsOrTeams(){
let boolUserHasOrgs;
if(Meteor.user().orgs)
{
boolUserHasOrgs = true;
}
else{
boolUserHasOrgs = false;
}
let boolUserHasTeams;
if(Meteor.user().teams)
{
boolUserHasTeams = true;
}
else{
boolUserHasTeams = false;
}
return (boolUserHasOrgs || boolUserHasTeams);
},
boards() {
const query = {
archived: false,
type: 'board',
//archived: false,
////type: { $in: ['board','template-container'] },
//type: 'board',
$and: [
{ archived: false },
{ type: 'board' },
{ $or:[] }
]
};
if (FlowRouter.getRouteName() === 'home')
query['members.userId'] = Meteor.userId();
if (FlowRouter.getRouteName() === 'home'){
query.$and[2].$or.push({'members.userId': Meteor.userId()});
const currUser = Users.findOne(Meteor.userId());
// const currUser = Users.findOne(Meteor.userId(), {
// fields: {
// orgs: 1,
// teams: 1,
// },
// });
let orgIdsUserBelongs = currUser.teams !== 'undefined' ? currUser.orgIdsUserBelongs() : '';
if(orgIdsUserBelongs && orgIdsUserBelongs != ''){
let orgsIds = orgIdsUserBelongs.split(',');
// for(let i = 0; i < orgsIds.length; i++){
// query.$and[2].$or.push({'orgs.orgId': orgsIds[i]});
// }
//query.$and[2].$or.push({'orgs': {$elemMatch : {orgId: orgsIds[0]}}});
query.$and[2].$or.push({'orgs.orgId': {$in : orgsIds}});
}
let teamIdsUserBelongs = currUser.teams !== 'undefined' ? currUser.teamIdsUserBelongs() : '';
if(teamIdsUserBelongs && teamIdsUserBelongs != ''){
let teamsIds = teamIdsUserBelongs.split(',');
// for(let i = 0; i < teamsIds.length; i++){
// query.$or[2].$or.push({'teams.teamId': teamsIds[i]});
// }
//query.$and[2].$or.push({'teams': { $elemMatch : {teamId: teamsIds[0]}}});
query.$and[2].$or.push({'teams.teamId': {$in : teamsIds}});
}
}
else query.permission = 'public';
return Boards.find(query, {
@@ -169,6 +260,74 @@ BlazeComponent.extendComponent({
}
});
},
'click #resetBtn'(event){
let allBoards = document.getElementsByClassName("js-board");
let currBoard;
for(let i=0; i < allBoards.length; i++){
currBoard = allBoards[i];
currBoard.style.display = "block";
}
},
'click #filterBtn'(event) {
event.preventDefault();
let selectedTeams = document.querySelectorAll('#jsAllBoardTeams option:checked');
let selectedTeamsValues = Array.from(selectedTeams).map(function(elt){return elt.value});
let index = selectedTeamsValues.indexOf("-1");
if (index > -1) {
selectedTeamsValues.splice(index, 1);
}
let selectedOrgs = document.querySelectorAll('#jsAllBoardOrgs option:checked');
let selectedOrgsValues = Array.from(selectedOrgs).map(function(elt){return elt.value});
index = selectedOrgsValues.indexOf("-1");
if (index > -1) {
selectedOrgsValues.splice(index, 1);
}
if(selectedTeamsValues.length > 0 || selectedOrgsValues.length > 0){
const query = {
$and: [
{ archived: false },
{ type: 'board' },
{ $or:[] }
]
};
if(selectedTeamsValues.length > 0)
{
query.$and[2].$or.push({'teams.teamId': {$in : selectedTeamsValues}});
}
if(selectedOrgsValues.length > 0)
{
query.$and[2].$or.push({'orgs.orgId': {$in : selectedOrgsValues}});
}
let filteredBoards = Boards.find(query, {}).fetch();
let allBoards = document.getElementsByClassName("js-board");
let currBoard;
if(filteredBoards.length > 0){
let currBoardId;
let found;
for(let i=0; i < allBoards.length; i++){
currBoard = allBoards[i];
currBoardId = currBoard.classList[0];
found = filteredBoards.find(function(board){
return board._id == currBoardId;
});
if(found !== undefined)
currBoard.style.display = "block";
else
currBoard.style.display = "none";
}
}
else{
for(let i=0; i < allBoards.length; i++){
currBoard = allBoards[i];
currBoard.style.display = "none";
}
}
}
},
},
];
},
+25
View File
@@ -45,6 +45,9 @@ $spaceBetweenTiles = 16px
text-decoration: none
word-wrap: break-word
&.template-container
border: 4px solid #fff
&.tile
background-size: auto
background-repeat: repeat
@@ -226,3 +229,25 @@ $spaceBetweenTiles = 16px
transform: translateY(-50%)
right: 10px
font-size: 24px
.AllBoardTeamsOrgs
list-style-type: none;
overflow: hidden;
.AllBoardTeams,.AllBoardOrgs,.AllBoardBtns
float: left;
.js-AllBoardOrgs
margin-left: 16px;
.AllBoardTeams
margin-left : 16px;
.AllBoardButtonsContainer
margin: 16px;
#filterBtn,#resetBtn
display: inline;
.js-board
display: block;
+7 -2
View File
@@ -25,6 +25,9 @@ template(name="cardDetails")
h2.card-details-title.js-card-title(
class="{{#if canModifyCard}}js-open-inlined-form is-editable{{/if}}")
+viewer
if currentBoard.allowsCardNumber
span.card-number
| ##{getCardNumber}
= getTitle
if isWatching
i.card-details-watch.fa.fa-eye
@@ -705,8 +708,9 @@ template(name="boardsAndLists")
button.primary.confirm.js-done {{_ 'done'}}
template(name="cardMembersPopup")
input.card-members-filter(type="text" placeholder="{{_ 'search'}}")
ul.pop-over-list.js-card-member-list
each board.activeMembers
each members
li.item(class="{{#if isCardMember}}active{{/if}}")
a.name.js-select-member(href="#")
+userAvatar(userId=user._id)
@@ -717,9 +721,10 @@ template(name="cardMembersPopup")
i.fa.fa-check
template(name="cardAssigneesPopup")
input.card-assignees-filter(type="text" placeholder="{{_ 'search'}}")
unless currentUser.isWorker
ul.pop-over-list.js-card-assignee-list
each board.activeMembers
each members
li.item(class="{{#if isCardAssignee}}active{{/if}}")
a.name.js-select-assignee(href="#")
+userAvatar(userId=user._id)
+81 -7
View File
@@ -180,7 +180,7 @@ BlazeComponent.extendComponent({
integration,
'CardSelected',
params,
() => {},
() => { },
);
});
}
@@ -541,8 +541,8 @@ BlazeComponent.extendComponent({
}).register('exportCardPopup');
// only allow number input
Template.editCardSortOrderForm.onRendered(function() {
this.$('input').on("keypress paste", function(event) {
Template.editCardSortOrderForm.onRendered(function () {
this.$('input').on("keypress paste", function (event) {
let keyCode = event.keyCode;
let charCode = String.fromCharCode(keyCode);
let regex = new RegExp('[-0-9.]');
@@ -627,6 +627,7 @@ Template.cardDetailsActionsPopup.events({
'click .js-spent-time': Popup.open('editCardSpentTime'),
'click .js-move-card': Popup.open('moveCard'),
'click .js-copy-card': Popup.open('copyCard'),
'click .js-convert-checklist-item-to-card': Popup.open('convertChecklistItemToCard'),
'click .js-copy-checklist-cards': Popup.open('copyChecklistToManyCards'),
'click .js-set-card-color': Popup.open('setCardColor'),
'click .js-move-card-to-top'(event) {
@@ -666,6 +667,40 @@ Template.editCardTitleForm.onRendered(function () {
autosize(this.$('.js-edit-card-title'));
});
Template.cardMembersPopup.onCreated(function () {
const members = Boards.findOne(Session.get('currentBoard')).activeMembers();
this.members = new ReactiveVar(members);
});
Template.cardMembersPopup.events({
'keyup .card-members-filter'(event) {
const members = filterMembers(event.target.value);
Template.instance().members.set(members);
}
});
Template.cardMembersPopup.helpers({
members() {
return Template.instance().members.get();
},
});
const filterMembers = (filterTerm) => {
let members = Boards.findOne(Session.get('currentBoard')).activeMembers();
if (filterTerm) {
members = members
.map(member => ({
member,
user: Users.findOne(member.userId)
}))
.filter(({ user }) =>
user.profile.fullname.toLowerCase().indexOf(filterTerm.toLowerCase()) !== -1)
.map(({ member }) => member);
}
return members;
}
Template.editCardTitleForm.events({
'keydown .js-edit-card-title'(event) {
// If enter key was pressed, submit the data
@@ -791,6 +826,34 @@ Template.copyCardPopup.events({
},
});
Template.convertChecklistItemToCardPopup.events({
'click .js-done'() {
const card = Cards.findOne(Session.get('currentCard'));
const lSelect = $('.js-select-lists')[0];
const listId = lSelect.options[lSelect.selectedIndex].value;
const slSelect = $('.js-select-swimlanes')[0];
const swimlaneId = slSelect.options[slSelect.selectedIndex].value;
const bSelect = $('.js-select-boards')[0];
const boardId = bSelect.options[bSelect.selectedIndex].value;
const textarea = $('#copy-card-title');
const title = textarea.val().trim();
if (title) {
const _id = Cards.insert({
title: title,
listId: listId,
boardId: boardId,
swimlaneId: swimlaneId,
sort: 0,
});
Filter.addException(_id);
Popup.close();
}
},
});
Template.copyChecklistToManyCardsPopup.events({
'click .js-done'() {
const card = Cards.findOne(Session.get('currentCard'));
@@ -990,9 +1053,8 @@ BlazeComponent.extendComponent({
// https://github.com/wekan/wekan/issues/2785
const message = `${TAPi18n.__(
'delete-linked-card-before-this-card',
)} linkedId: ${
this._id
} at client/components/cards/cardDetails.js and https://github.com/wekan/wekan/issues/2785`;
)} linkedId: ${this._id
} at client/components/cards/cardDetails.js and https://github.com/wekan/wekan/issues/2785`;
alert(message);
}
Utils.goBoardId(this.boardId);
@@ -1297,7 +1359,6 @@ BlazeComponent.extendComponent({
Popup.close();
},
'click .js-remove-poker': Popup.afterConfirm('deletePoker', (event) => {
event.preventDefault();
this.currentCard.unsetPoker();
Popup.close();
}),
@@ -1561,6 +1622,11 @@ EscapeActions.register(
},
);
Template.cardAssigneesPopup.onCreated(function () {
const members = Boards.findOne(Session.get('currentBoard')).activeMembers();
this.members = new ReactiveVar(members);
});
Template.cardAssigneesPopup.events({
'click .js-select-assignee'(event) {
const card = Cards.findOne(Session.get('currentCard'));
@@ -1568,6 +1634,10 @@ Template.cardAssigneesPopup.events({
card.toggleAssignee(assigneeId);
event.preventDefault();
},
'keyup .card-assignees-filter'(event) {
const members = filterMembers(event.target.value);
Template.instance().members.set(members);
},
});
Template.cardAssigneesPopup.helpers({
@@ -1578,6 +1648,10 @@ Template.cardAssigneesPopup.helpers({
return _.contains(cardAssignees, this.userId);
},
members() {
return Template.instance().members.get();
},
user() {
return Users.findOne(this.userId);
},
+38 -32
View File
@@ -114,6 +114,12 @@ avatar-radius = 50%
background: darken(white, 7%)
border-bottom: 1px solid darken(white, 14%)
.card-number {
color: darken(white, 30%);
display: inline-block;
margin-right: 5px;
}
.close-card-details,
.maximize-card-details,
.minimize-card-details,
@@ -237,42 +243,42 @@ avatar-radius = 50%
.activities
padding-top: 10px
.card-details-maximized
padding: 0
flex-shrink: 0
flex-basis: calc(100% - 20px)
will-change: flex-basis
overflow-y: scroll
overflow-x: scroll
background: darken(white, 3%)
border-radius: bottom 3px
z-index: 1000 !important
animation: flexGrowIn 0.1s
box-shadow: 0 0 7px 0 darken(white, 30%)
transition: flex-basis 0.1s
box-sizing: border-box
position: absolute
top: 0
left: 0
height: calc(100% - 20px)
width: calc(100% - 20px)
float: left
.card-details-left
@media screen and (min-width: 801px)
.card-details-maximized
padding: 0
flex-shrink: 0
flex-basis: calc(100% - 20px)
will-change: flex-basis
overflow-y: scroll
overflow-x: scroll
background: darken(white, 3%)
border-radius: bottom 3px
z-index: 1000 !important
animation: flexGrowIn 0.1s
box-shadow: 0 0 7px 0 darken(white, 30%)
transition: flex-basis 0.1s
box-sizing: border-box
position: absolute
top: 0
left: 0
height: calc(100% - 20px)
width: calc(100% - 20px)
float: left
top: 60px
left: 20px
width: 47%
.card-details-right
position: absolute
float: right
top: 20px
left: 50%
.card-details-left
float: left
top: 60px
left: 20px
width: 47%
.card-details-header
width: 47%
.card-details-right
position: absolute
float: right
top: 20px
left: 50%
.card-details-header
width: 47%
input[type="text"].attachment-add-link-input
float: left
+32
View File
@@ -80,6 +80,9 @@ template(name="editChecklistItemForm")
span(title=createdAt) {{ moment createdAt }}
if canModifyCard
a.js-delete-checklist-item {{_ "delete"}}...
a.js-convert-checklist-item-to-card
i.fa.fa-copy
| {{_ 'convertChecklistItemToCardPopup-title'}}
template(name="checklistItems")
.checklist-items.js-checklist-items
@@ -110,3 +113,32 @@ template(name='checklistItemDetail')
.item-title(class="{{#if item.isFinished }}is-checked{{/if}}")
+viewer
= item.title
template(name="convertChecklistItemToCardPopup")
label(for='convert-checklist-item-to-card-title') {{_ 'title'}}:
textarea#copy-card-title.minicard-composer-textarea.js-card-title(autofocus)
= item.title
+boardsSwimlanesAndLists
template(name="boardsSwimlanesAndLists")
unless currentUser.isWorker
label {{_ 'boards'}}:
select.js-select-boards(autofocus)
each boards
if $eq _id currentBoard._id
option(value="{{_id}}" selected) {{_ 'current'}}
else
option(value="{{_id}}") {{title}}
label {{_ 'swimlanes'}}:
select.js-select-swimlanes
each swimlanes
option(value="{{_id}}") {{title}}
label {{_ 'lists'}}:
select.js-select-lists
each aBoardLists
option(value="{{_id}}") {{title}}
.edit-controls.clearfix
button.primary.confirm.js-done {{_ 'done'}}
+46
View File
@@ -1,3 +1,7 @@
import Cards from '/models/cards';
import Boards from '/models/boards';
const subManager = new SubsManager();
const { calculateIndexData, capitalize } = Utils;
function initSorting(items) {
@@ -206,6 +210,7 @@ BlazeComponent.extendComponent({
'submit .js-edit-checklist-title': this.editChecklist,
'submit .js-add-checklist-item': this.addChecklistItem,
'submit .js-edit-checklist-item': this.editChecklistItem,
'click .js-convert-checklist-item-to-card': Popup.open('convertChecklistItemToCard'),
'click .js-delete-checklist-item': this.deleteItem,
'click .confirm-checklist-delete': this.deleteChecklist,
'focus .js-add-checklist-item': this.focusChecklistItem,
@@ -215,6 +220,47 @@ BlazeComponent.extendComponent({
},
}).register('checklists');
BlazeComponent.extendComponent({
onCreated() {
subManager.subscribe('board', Session.get('currentBoard'), false);
this.selectedBoardId = new ReactiveVar(Session.get('currentBoard'));
},
boards() {
return Boards.find(
{
archived: false,
'members.userId': Meteor.userId(),
_id: { $ne: Meteor.user().getTemplatesBoardId() },
},
{
sort: { sort: 1 /* boards default sorting */ },
},
);
},
swimlanes() {
const board = Boards.findOne(this.selectedBoardId.get());
return board.swimlanes();
},
aBoardLists() {
const board = Boards.findOne(this.selectedBoardId.get());
return board.lists();
},
events() {
return [
{
'change .js-select-boards'(event) {
this.selectedBoardId.set($(event.currentTarget).val());
subManager.subscribe('board', this.selectedBoardId.get(), false);
},
},
];
},
}).register('boardsSwimlanesAndLists');
Template.checklists.helpers({
hideCheckedItems() {
const currentUser = Meteor.user();
+2 -1
View File
@@ -159,7 +159,8 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
padding-top: 2px
padding-right: 10px;
.js-delete-checklist-item
.js-delete-checklist-item,
.js-convert-checklist-item-to-card
margin: 0 0 0.5em 1.33em
@extends .delete-text
padding: 12px 0 0 0
+3
View File
@@ -37,6 +37,9 @@ template(name="minicard")
if getArchived
span.linked-icon.linked-archived.fa.fa-archive
+viewer
if currentBoard.allowsCardNumber
span.card-number
| ##{getCardNumber}
= getTitle
if $eq 'subtext-with-full-path' currentBoard.presentParentTask
.parent-subtext
+4
View File
@@ -114,6 +114,10 @@
font-size:20px;
color: #ccc;
.minicard-title
.card-number
color: darken(white, 30%);
display: inline-block;
margin-right: 5px;
p:last-child
margin-bottom: 0
.viewer
+17 -14
View File
@@ -81,7 +81,9 @@ BlazeComponent.extendComponent({
Utils.boardView() === 'board-view-cal' ||
!Utils.boardView()
)
swimlaneId = board.getDefaultSwimline()._id;
swimlaneId = board.getDefaultSwimline()._id;
const nextCardNumber = board.getNextCardNumber();
const _id = Cards.insert({
title,
@@ -93,6 +95,7 @@ BlazeComponent.extendComponent({
sort: sortIndex,
swimlaneId,
type: cardType,
cardNumber: nextCardNumber,
linkedId,
});
@@ -241,7 +244,7 @@ BlazeComponent.extendComponent({
Boards.findOne(currentBoardId)
.customFields()
.fetch(),
function(field) {
function (field) {
if (field.automaticallyOnCard || field.alwaysOnCard)
arr.push({ _id: field._id, value: null });
},
@@ -552,7 +555,7 @@ BlazeComponent.extendComponent({
board = Boards.findOne((Meteor.user().profile || {}).templatesBoardId);
} else {
// Prefetch first non-current board id
board = Boards.findOne({
board = Boards.find({
archived: false,
'members.userId': Meteor.userId(),
_id: {
@@ -750,17 +753,17 @@ BlazeComponent.extendComponent({
checkIdleTime() {
return window.requestIdleCallback ||
function(handler) {
const startTime = Date.now();
return setTimeout(function() {
handler({
didTimeout: false,
timeRemaining() {
return Math.max(0, 50.0 - (Date.now() - startTime));
},
});
}, 1);
};
function (handler) {
const startTime = Date.now();
return setTimeout(function () {
handler({
didTimeout: false,
timeRemaining() {
return Math.max(0, 50.0 - (Date.now() - startTime));
},
});
}, 1);
};
}
updateList() {
+12 -5
View File
@@ -1,3 +1,9 @@
const specialHandles = [
{userId: 'board_members', username: 'board_members'},
{userId: 'card_members', username: 'card_members'}
];
const specialHandleNames = specialHandles.map(m => m.username);
Template.editor.onRendered(() => {
const textareaSelector = 'textarea';
const mentions = [
@@ -7,13 +13,14 @@ Template.editor.onRendered(() => {
search(term, callback) {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
callback(
_.union(
currentBoard
.activeMembers()
.map(member => {
const username = Users.findOne(member.userId).username;
return username.includes(term) ? username : null;
})
.filter(Boolean),
.filter(Boolean), [...specialHandleNames])
);
},
template(value) {
@@ -50,7 +57,7 @@ Template.editor.onRendered(() => {
['table', ['table']],
//['insert', ['link', 'picture', 'video']], // iframe tag will be sanitized TODO if iframe[class=note-video-clip] can be added into safe list, insert video can be enabled
['insert', ['link']], //, 'picture']], // modal popup has issue somehow :(
['view', ['fullscreen', 'help']],
['view', ['fullscreen', 'codeview', 'help']],
];
const cleanPastedHTML = function(input) {
const badTags = [
@@ -229,7 +236,7 @@ Template.editor.onRendered(() => {
// (and multiplies by pasting more) by changing paste "p" to "br".
// Fixes https://github.com/wekan/wekan/2890 .
// == Fix Start ==
//someNote.execCommand('defaultParagraphSeparator', false, 'br');
someNote.execCommand('defaultParagraphSeparator', false, 'br');
// == Fix End ==
const original = someNote.summernote('code');
const cleaned = cleanPastedHTML(original); //this is where to call whatever clean function you want. I have mine in a different file, called CleanPastedHTML.
@@ -323,13 +330,13 @@ Blaze.Template.registerHelper(
return HTML.Raw(
DOMPurify.sanitize(content, { ALLOW_UNKNOWN_PROTOCOLS: true }),
);
const knowedUsers = currentBoard.members.map(member => {
const knowedUsers = _.union(currentBoard.members.map(member => {
const u = Users.findOne(member.userId);
if (u) {
member.username = u.username;
}
return member;
});
}), [...specialHandles]);
const mentionRegex = /\B@([\w.]*)/gi;
let currentMention;
+33 -31
View File
@@ -158,40 +158,42 @@ class GlobalSearchComponent extends CardSearchPagedComponent {
['# ', 'globalSearch-instructions-heading'],
['\n', 'globalSearch-instructions-description'],
['\n\n', 'globalSearch-instructions-operators'],
['\n* ', 'globalSearch-instructions-operator-board'],
['\n* ', 'globalSearch-instructions-operator-list'],
['\n* ', 'globalSearch-instructions-operator-swimlane'],
['\n* ', 'globalSearch-instructions-operator-comment'],
['\n* ', 'globalSearch-instructions-operator-label'],
['\n* ', 'globalSearch-instructions-operator-hash'],
['\n* ', 'globalSearch-instructions-operator-user'],
['\n* ', 'globalSearch-instructions-operator-at'],
['\n* ', 'globalSearch-instructions-operator-member'],
['\n* ', 'globalSearch-instructions-operator-assignee'],
['\n* ', 'globalSearch-instructions-operator-creator'],
['\n* ', 'globalSearch-instructions-operator-due'],
['\n* ', 'globalSearch-instructions-operator-created'],
['\n* ', 'globalSearch-instructions-operator-modified'],
['\n* ', 'globalSearch-instructions-operator-status'],
['\n * ', 'globalSearch-instructions-status-archived'],
['\n * ', 'globalSearch-instructions-status-public'],
['\n * ', 'globalSearch-instructions-status-private'],
['\n * ', 'globalSearch-instructions-status-all'],
['\n * ', 'globalSearch-instructions-status-ended'],
['\n* ', 'globalSearch-instructions-operator-has'],
['\n* ', 'globalSearch-instructions-operator-sort'],
['\n* ', 'globalSearch-instructions-operator-limit'],
['\n- ', 'globalSearch-instructions-operator-board'],
['\n- ', 'globalSearch-instructions-operator-list'],
['\n- ', 'globalSearch-instructions-operator-swimlane'],
['\n- ', 'globalSearch-instructions-operator-comment'],
['\n- ', 'globalSearch-instructions-operator-label'],
['\n- ', 'globalSearch-instructions-operator-hash'],
['\n- ', 'globalSearch-instructions-operator-user'],
['\n- ', 'globalSearch-instructions-operator-at'],
['\n- ', 'globalSearch-instructions-operator-member'],
['\n- ', 'globalSearch-instructions-operator-assignee'],
['\n- ', 'globalSearch-instructions-operator-creator'],
['\n- ', 'globalSearch-instructions-operator-due'],
['\n- ', 'globalSearch-instructions-operator-created'],
['\n- ', 'globalSearch-instructions-operator-modified'],
['\n- ', 'globalSearch-instructions-operator-status'],
['\n - ', 'globalSearch-instructions-status-archived'],
['\n - ', 'globalSearch-instructions-status-public'],
['\n - ', 'globalSearch-instructions-status-private'],
['\n - ', 'globalSearch-instructions-status-all'],
['\n - ', 'globalSearch-instructions-status-ended'],
['\n- ', 'globalSearch-instructions-operator-has'],
['\n- ', 'globalSearch-instructions-operator-sort'],
['\n- ', 'globalSearch-instructions-operator-limit'],
['\n## ', 'heading-notes'],
['\n* ', 'globalSearch-instructions-notes-1'],
['\n* ', 'globalSearch-instructions-notes-2'],
['\n* ', 'globalSearch-instructions-notes-3'],
['\n* ', 'globalSearch-instructions-notes-3-2'],
['\n* ', 'globalSearch-instructions-notes-4'],
['\n* ', 'globalSearch-instructions-notes-5'],
['\n- ', 'globalSearch-instructions-notes-1'],
['\n- ', 'globalSearch-instructions-notes-2'],
['\n- ', 'globalSearch-instructions-notes-3'],
['\n- ', 'globalSearch-instructions-notes-3-2'],
['\n- ', 'globalSearch-instructions-notes-4'],
['\n- ', 'globalSearch-instructions-notes-5'],
].forEach(([prefix, instruction]) => {
text += `${prefix}${TAPi18n.__(instruction, tags)}`;
text += `${prefix}${TAPi18n.__(instruction, tags)}`
// Replace *<text>* with `<text>` so markdown shows correctly
.replace(/\*\</, '`<')
.replace(/\>\*/, '\>\`')
});
return text;
}
+4
View File
@@ -86,12 +86,16 @@ Template.userFormsLayout.helpers({
name = 'Français (Belgique)';
} else if (lang.name === 'fr-CA') {
name = 'Français (Canada)';
} else if (lang.name === 'fr-CH') {
name = 'Français (Schweiz)';
} else if (lang.name === 'ig') {
name = 'Igbo';
} else if (lang.name === 'lv') {
name = 'Latviešu';
} else if (lang.name === 'latviešu valoda') {
name = 'Latviešu';
} else if (lang.name === 'en-IT') {
name = 'English (Italy)';
} else if (lang.name === 'Español') {
name = 'español';
} else if (lang.name === 'es_419') {
+3
View File
@@ -317,6 +317,9 @@ kbd
.grabbing
cursor: grabbing
.textcomplete-dropdown
z-index: 2000 !important;
// Implement a thiner close icon as suggested in
// https://github.com/FortAwesome/Font-Awesome/issues/1540#issuecomment-68689950
.fa.fa-times-thin:before
+21 -10
View File
@@ -342,7 +342,7 @@ template(name="editUserPopup")
input.js-profile-fullname(type="text" value=user.profile.fullname required)
label
| {{_ 'initials'}}
input.js-profile-initials(type="text" value=user.profile.initials required)
input.js-profile-initials(type="text" value=user.profile.initials)
label
| {{_ 'admin'}}
select.select-role.js-profile-isadmin
@@ -469,7 +469,7 @@ template(name="newUserPopup")
input.js-profile-username(type="text" value="" required)
label
| {{_ 'initials'}}
input.js-profile-initials(type="text" value="" required)
input.js-profile-initials(type="text" value="")
label
| {{_ 'email'}}
span.error.hide.email-taken
@@ -531,6 +531,9 @@ template(name="settingsOrgPopup")
ul.pop-over-list
li
form
label#deleteOrgWarningMessage.hide
| {{_ 'delete-org-warning-message'}}
br
label
| {{_ 'delete-org-confirm-popup'}}
br
@@ -552,6 +555,9 @@ template(name="settingsTeamPopup")
ul.pop-over-list
li
form
label#deleteTeamWarningMessage.hide
| {{_ 'delete-team-warning-message'}}
br
label
| {{_ 'delete-team-confirm-popup'}}
br
@@ -565,15 +571,20 @@ template(name="settingsUserPopup")
a.impersonate-user
i.fa.fa-user
| {{_ 'impersonate-user'}}
//hr
//li
// form
// label.hide.userId(type="text" value=user._id)
// div.buttonsContainer
// input#deleteButton.card-details-red.right.wide(type="button" value="{{_ 'delete'}}")
// Delete is not enabled yet, because it does leave empty user avatars
br
hr
li
form
label.hide.userId(type="text" value=user._id)
label
| {{_ 'delete-user-confirm-popup' }}
br
div.buttonsContainer
input#deleteButton.card-details-red.right.wide(type="button" value="{{_ 'delete'}}")
// Delete is enabled, but there is still bug of leaving empty user avatars
// to boards: boards members, card members and assignees have
// empty users. See:
// empty users. So it is better to remove user from all boards before removing user.
// See:
// - wekan/client/components/settings/peopleBody.jade deleteButton
// - wekan/client/components/settings/peopleBody.js deleteButton
// - wekan/client/components/sidebar/sidebar.js Popup.afterConfirm('removeMember'
+56 -23
View File
@@ -551,12 +551,15 @@ Template.editUserPopup.events({
let userTeamsList = userTeams.split(",");
let userTeamsIdsList = userTeamsIds.split(",");
let userTms = [];
for(let i = 0; i < userTeamsList.length; i++){
userTms.push({
"teamId": userTeamsIdsList[i],
"teamDisplayName": userTeamsList[i],
})
if(userTeams != ''){
for(let i = 0; i < userTeamsList.length; i++){
userTms.push({
"teamId": userTeamsIdsList[i],
"teamDisplayName": userTeamsList[i],
})
}
}
Users.update(this.userId, {
$set:{
teams: userTms
@@ -566,12 +569,15 @@ Template.editUserPopup.events({
let userOrgsList = userOrgs.split(",");
let userOrgsIdsList = userOrgsIds.split(",");
let userOrganizations = [];
for(let i = 0; i < userOrgsList.length; i++){
userOrganizations.push({
"orgId": userOrgsIdsList[i],
"orgDisplayName": userOrgsList[i],
})
if(userOrgs != ''){
for(let i = 0; i < userOrgsList.length; i++){
userOrganizations.push({
"orgId": userOrgsIdsList[i],
"orgDisplayName": userOrgsList[i],
})
}
}
Users.update(this.userId, {
$set:{
orgs: userOrganizations
@@ -724,7 +730,7 @@ UpdateUserOrgsOrTeamsElement = function(isNewUser = false){
lstInputValuesIds = [];
}
index = lstInputValues.indexOf(selectedEltValue);
indexId = lstInputValuesIds.indexOf(selectedEltValue);
indexId = lstInputValuesIds.indexOf(selectedEltValueId);
if(userOrgsTeamsAction == "addOrg" || userOrgsTeamsAction == "addTeam"){
if(index <= -1 && selectedEltValueId != "-1"){
lstInputValues.push(selectedEltValue);
@@ -833,20 +839,24 @@ Template.newUserPopup.events({
let userTeamsIdsList = userTeamsIds.split(",");
let userTms = [];
for(let i = 0; i < userTeamsList.length; i++){
userTms.push({
"teamId": userTeamsIdsList[i],
"teamDisplayName": userTeamsList[i],
})
if(!!userTeamsIdsList[i] && !!userTeamsList[i]) {
userTms.push({
"teamId": userTeamsIdsList[i],
"teamDisplayName": userTeamsList[i],
})
}
}
let userOrgsList = userOrgs.split(",");
let userOrgsIdsList = userOrgsIds.split(",");
let userOrganizations = [];
for(let i = 0; i < userOrgsList.length; i++){
userOrganizations.push({
"orgId": userOrgsIdsList[i],
"orgDisplayName": userOrgsList[i],
})
if(!!userOrgsIdsList[i] && !!userOrgsList[i]) {
userOrganizations.push({
"orgId": userOrgsIdsList[i],
"orgDisplayName": userOrgsList[i],
})
}
}
Meteor.call(
@@ -923,6 +933,16 @@ Template.newUserPopup.events({
Template.settingsOrgPopup.events({
'click #deleteButton'(event) {
event.preventDefault();
if(Users.find({"orgs.orgId": this.orgId}).count() > 0)
{
let orgClassList = document.getElementById("deleteOrgWarningMessage").classList;
if(orgClassList.contains('hide'))
{
orgClassList.remove('hide');
document.getElementById("deleteOrgWarningMessage").style.color = "red";
}
return;
}
Org.remove(this.orgId);
Popup.close();
}
@@ -931,6 +951,16 @@ Template.settingsOrgPopup.events({
Template.settingsTeamPopup.events({
'click #deleteButton'(event) {
event.preventDefault();
if(Users.find({"teams.teamId": this.teamId}).count() > 0)
{
let teamClassList = document.getElementById("deleteTeamWarningMessage").classList;
if(teamClassList.contains('hide'))
{
teamClassList.remove('hide');
document.getElementById("deleteTeamWarningMessage").style.color = "red";
}
return;
}
Team.remove(this.teamId);
Popup.close();
}
@@ -949,10 +979,13 @@ Template.settingsUserPopup.events({
},
'click #deleteButton'(event) {
event.preventDefault();
Users.remove(this.userId);
/*
// Delete is not enabled yet, because it does leave empty user avatars
// to boards: boards members, card members and assignees have
// empty users. See:
// Delete user is enabled, but you should remove user from all boards
// before deleting user, because there is possibility of leaving empty user avatars
// to boards. You can remove non-existing user ids manually from database,
// if that happens.
//. See:
// - wekan/client/components/settings/peopleBody.jade deleteButton
// - wekan/client/components/settings/peopleBody.js deleteButton
// - wekan/client/components/sidebar/sidebar.js Popup.afterConfirm('removeMember'
@@ -960,7 +993,7 @@ Template.settingsUserPopup.events({
// but that should be used to remove user from all boards similarly
// - wekan/models/users.js Delete is not enabled
//
//Users.remove(this.userId);
//
*/
Popup.close();
},
+85
View File
@@ -31,6 +31,26 @@ template(name='homeSidebar')
+activities(mode="board")
template(name="membersWidget")
.board-widget.board-widget-members
h3
i.fa.fa-users
| {{_ 'organizations'}}
.board-widget-content
+boardOrgGeneral
.clearfix
br
hr
.board-widget.board-widget-members
h3
i.fa.fa-users
| {{_ 'teams'}}
.board-widget-content
+boardTeamGeneral
.clearfix
br
hr
.board-widget.board-widget-members
h3
i.fa.fa-users
@@ -65,6 +85,30 @@ template(name="membersWidget")
button.js-member-invite-accept.primary {{_ 'accept'}}
button.js-member-invite-decline {{_ 'decline'}}
template(name="boardOrgGeneral")
table
tbody
tr
th {{_ 'displayName'}}
th
if currentUser.isBoardAdmin
a.member.orgOrTeamMember.add-member.js-manage-board-addOrg(title="{{_ 'add-members'}}")
i.fa.fa-plus
each org in currentBoard.activeOrgs
+boardOrgRow(orgId=org.orgId)
template(name="boardTeamGeneral")
table
tbody
tr
th {{_ 'displayName'}}
th
if currentUser.isBoardAdmin
a.member.orgOrTeamMember.add-member.js-manage-board-addTeam(title="{{_ 'add-members'}}")
i.fa.fa-plus
each currentBoard.activeTeams
+boardTeamRow(teamId=this.teamId)
template(name="boardChangeColorPopup")
.board-backgrounds-list.clearfix
each backgroundColors
@@ -145,6 +189,13 @@ template(name="boardCardSettingsPopup")
span
i.fa.fa-tags
| {{_ 'labels'}}
div.check-div
a.flex.js-field-has-card-number(class="{{#if allowsCardNumber}}is-checked{{/if}}")
.materialCheckBox(class="{{#if allowsCardNumber}}is-checked{{/if}}")
span
i.fa.fa-hashtag
| {{_ 'card'}}
| {{_ 'number'}}
div.check-div
a.flex.js-field-has-description-title(class="{{#if allowsDescriptionTitle}}is-checked{{/if}}")
.materialCheckBox(class="{{#if allowsDescriptionTitle}}is-checked{{/if}}")
@@ -409,6 +460,40 @@ template(name="leaveBoardPopup")
p {{_ 'leave-board-pop' boardTitle=board.title}}
button.js-confirm.negate.full(type="submit") {{_ 'leave-board'}}
template(name="addBoardOrgPopup")
select.js-boardOrgs#jsBoardOrgs
option(value="-1") {{_ 'organizations'}} :
each value in orgsDatas
option(value="{{value._id}}") {{_ value.orgDisplayName}}
template(name="removeBoardOrgPopup")
form
input.hide#hideOrgId(type="text" value=org._id)
label
| {{_ 'leave-board'}} ?
br
hr
div.buttonsContainer
input.primary.wide.leaveBoardBtn#leaveBoardBtn(type="submit" value="{{_ 'leave-board'}}")
input.primary.wide.cancelLeaveBoardBtn#cancelLeaveBoardBtn(type="submit" value="{{_ 'Cancel'}}")
template(name="addBoardTeamPopup")
select.js-boardTeams#jsBoardTeams
option(value="-1") {{_ 'teams'}} :
each value in teamsDatas
option(value="{{value._id}}") {{_ value.teamDisplayName}}
template(name="removeBoardTeamPopup")
form
input.hide#hideTeamId(type="text" value=team._id)
label
| {{_ 'leave-board'}} ?
br
hr
div.buttonsContainer
input.primary.wide.leaveBoardBtn#leaveBoardTeamBtn(type="submit" value="{{_ 'leave-board'}}")
input.primary.wide.cancelLeaveBoardBtn#cancelLeaveBoardTeamBtn(type="submit" value="{{_ 'Cancel'}}")
template(name="addMemberPopup")
.js-search-member
+esInput(index="users")
+299
View File
@@ -313,6 +313,8 @@ Template.membersWidget.events({
'click .js-member': Popup.open('member'),
'click .js-open-board-menu': Popup.open('boardMenu'),
'click .js-manage-board-members': Popup.open('addMember'),
'click .js-manage-board-addOrg': Popup.open('addBoardOrg'),
'click .js-manage-board-addTeam': Popup.open('addBoardTeam'),
'click .js-import': Popup.open('boardImportBoard'),
submit: this.onSubmit,
'click .js-import-board': Popup.open('chooseBoardSource'),
@@ -774,6 +776,10 @@ BlazeComponent.extendComponent({
return this.currentBoard.allowsComments;
},
allowsCardNumber() {
return this.currentBoard.allowsCardNumber;
},
allowsDescriptionTitle() {
return this.currentBoard.allowsDescriptionTitle;
},
@@ -1017,6 +1023,22 @@ BlazeComponent.extendComponent({
this.currentBoard.allowsDescriptionTitle,
);
},
'click .js-field-has-card-number'(evt) {
evt.preventDefault();
this.currentBoard.allowsCardNumber = !this.currentBoard
.allowsCardNumber;
this.currentBoard.setAllowsCardNumber(
this.currentBoard.allowsCardNumber,
);
$(`.js-field-has-card-number ${MCB}`).toggleClass(
CKCLS,
this.currentBoard.allowsCardNumber,
);
$('.js-field-has-card-number').toggleClass(
CKCLS,
this.currentBoard.allowsCardNumber,
);
},
'click .js-field-has-description-text'(evt) {
evt.preventDefault();
this.currentBoard.allowsDescriptionText = !this.currentBoard
@@ -1168,6 +1190,283 @@ BlazeComponent.extendComponent({
},
}).register('addMemberPopup');
BlazeComponent.extendComponent({
onCreated() {
this.error = new ReactiveVar('');
this.loading = new ReactiveVar(false);
this.findOrgsOptions = new ReactiveVar({});
this.page = new ReactiveVar(1);
this.autorun(() => {
const limitOrgs = this.page.get() * Number.MAX_SAFE_INTEGER;
this.subscribe('org', this.findOrgsOptions.get(), limitOrgs, () => {});
});
},
onRendered() {
this.setLoading(false);
},
setError(error) {
this.error.set(error);
},
setLoading(w) {
this.loading.set(w);
},
isLoading() {
return this.loading.get();
},
events() {
return [
{
'keyup input'() {
this.setError('');
},
'change #jsBoardOrgs'() {
let currentBoard = Boards.findOne(Session.get('currentBoard'));
let selectElt = document.getElementById("jsBoardOrgs");
let selectedOrgId = selectElt.options[selectElt.selectedIndex].value;
let selectedOrgDisplayName = selectElt.options[selectElt.selectedIndex].text;
let boardOrganizations = [];
if(currentBoard.orgs !== undefined){
for(let i = 0; i < currentBoard.orgs.length; i++){
boardOrganizations.push(currentBoard.orgs[i]);
}
}
if(!boardOrganizations.some((org) => org.orgDisplayName == selectedOrgDisplayName)){
boardOrganizations.push({
"orgId": selectedOrgId,
"orgDisplayName": selectedOrgDisplayName,
"isActive" : true,
})
if (selectedOrgId != "-1") {
Meteor.call('setBoardOrgs', boardOrganizations, currentBoard._id);
}
}
Popup.close();
},
},
];
},
}).register('addBoardOrgPopup');
Template.addBoardOrgPopup.helpers({
orgsDatas() {
// return Org.find({}, {sort: { createdAt: -1 }});
let orgs = Org.find({}, {sort: { createdAt: -1 }});
return orgs;
},
});
BlazeComponent.extendComponent({
onCreated() {
this.error = new ReactiveVar('');
this.loading = new ReactiveVar(false);
this.findOrgsOptions = new ReactiveVar({});
this.page = new ReactiveVar(1);
this.autorun(() => {
const limitOrgs = this.page.get() * Number.MAX_SAFE_INTEGER;
this.subscribe('org', this.findOrgsOptions.get(), limitOrgs, () => {});
});
},
onRendered() {
this.setLoading(false);
},
setError(error) {
this.error.set(error);
},
setLoading(w) {
this.loading.set(w);
},
isLoading() {
return this.loading.get();
},
events() {
return [
{
'keyup input'() {
this.setError('');
},
'click #leaveBoardBtn'(){
let stringOrgId = document.getElementById('hideOrgId').value;
let currentBoard = Boards.findOne(Session.get('currentBoard'));
let boardOrganizations = [];
if(currentBoard.orgs !== undefined){
for(let i = 0; i < currentBoard.orgs.length; i++){
if(currentBoard.orgs[i].orgId != stringOrgId){
boardOrganizations.push(currentBoard.orgs[i]);
}
}
}
Meteor.call('setBoardOrgs', boardOrganizations, currentBoard._id);
Popup.close();
},
'click #cancelLeaveBoardBtn'(){
Popup.close();
},
},
];
},
}).register('removeBoardOrgPopup');
Template.removeBoardOrgPopup.helpers({
org() {
return Org.findOne(this.orgId);
},
});
BlazeComponent.extendComponent({
onCreated() {
this.error = new ReactiveVar('');
this.loading = new ReactiveVar(false);
this.findOrgsOptions = new ReactiveVar({});
this.page = new ReactiveVar(1);
this.autorun(() => {
const limitTeams = this.page.get() * Number.MAX_SAFE_INTEGER;
this.subscribe('team', this.findOrgsOptions.get(), limitTeams, () => {});
});
},
onRendered() {
this.setLoading(false);
},
setError(error) {
this.error.set(error);
},
setLoading(w) {
this.loading.set(w);
},
isLoading() {
return this.loading.get();
},
events() {
return [
{
'keyup input'() {
this.setError('');
},
'change #jsBoardTeams'() {
let currentBoard = Boards.findOne(Session.get('currentBoard'));
let selectElt = document.getElementById("jsBoardTeams");
let selectedTeamId = selectElt.options[selectElt.selectedIndex].value;
let selectedTeamDisplayName = selectElt.options[selectElt.selectedIndex].text;
let boardTeams = [];
if(currentBoard.teams !== undefined){
for(let i = 0; i < currentBoard.teams.length; i++){
boardTeams.push(currentBoard.teams[i]);
}
}
if(!boardTeams.some((team) => team.teamDisplayName == selectedTeamDisplayName)){
boardTeams.push({
"teamId": selectedTeamId,
"teamDisplayName": selectedTeamDisplayName,
"isActive" : true,
})
if (selectedTeamId != "-1") {
Meteor.call('setBoardTeams', boardTeams, currentBoard._id);
}
}
Popup.close();
},
},
];
},
}).register('addBoardTeamPopup');
Template.addBoardTeamPopup.helpers({
teamsDatas() {
let teams = Team.find({}, {sort: { createdAt: -1 }});
return teams;
},
});
BlazeComponent.extendComponent({
onCreated() {
this.error = new ReactiveVar('');
this.loading = new ReactiveVar(false);
this.findOrgsOptions = new ReactiveVar({});
this.page = new ReactiveVar(1);
this.autorun(() => {
const limitTeams = this.page.get() * Number.MAX_SAFE_INTEGER;
this.subscribe('team', this.findOrgsOptions.get(), limitTeams, () => {});
});
},
onRendered() {
this.setLoading(false);
},
setError(error) {
this.error.set(error);
},
setLoading(w) {
this.loading.set(w);
},
isLoading() {
return this.loading.get();
},
events() {
return [
{
'keyup input'() {
this.setError('');
},
'click #leaveBoardTeamBtn'(){
let stringTeamId = document.getElementById('hideTeamId').value;
let currentBoard = Boards.findOne(Session.get('currentBoard'));
let boardTeams = [];
if(currentBoard.teams !== undefined){
for(let i = 0; i < currentBoard.teams.length; i++){
if(currentBoard.teams[i].teamId != stringTeamId){
boardTeams.push(currentBoard.teams[i]);
}
}
}
Meteor.call('setBoardTeams', boardTeams, currentBoard._id);
Popup.close();
},
'click #cancelLeaveBoardTeamBtn'(){
Popup.close();
},
},
];
},
}).register('removeBoardTeamPopup');
Template.removeBoardTeamPopup.helpers({
team() {
return Team.findOne(this.teamId);
},
});
Template.changePermissionsPopup.events({
'click .js-set-admin, click .js-set-normal, click .js-set-no-comments, click .js-set-comment-only, click .js-set-worker'(
event,
+10
View File
@@ -214,3 +214,13 @@
i.fa
padding: 8px 0px 8px 16px
font-weight: bold
#jsBoardOrgs, #jsBoardTeams
width: 90%
.leaveBoardBtn
background-color: green !important
.cancelLeaveBoardBtn
margin-left: 5% !important
background-color: red !important
@@ -11,8 +11,15 @@ template(name="swimlaneHeader")
template(name="swimlaneFixedHeader")
.swimlane-header(
class="{{#if currentUser.isBoardMember}}js-open-inlined-form is-editable{{/if}}")
+viewer
= title
if $eq title 'Card Templates'
| {{_ 'card-templates-swimlane'}}
else if $eq title 'List Templates'
| {{_ 'list-templates-swimlane'}}
else if $eq title 'Board Templates'
| {{_ 'board-templates-swimlane'}}
else
+viewer
= title
.swimlane-header-menu
unless currentUser.isCommentOnly
if currentUser.isBoardAdmin
+38
View File
@@ -19,6 +19,44 @@ template(name="userAvatarInitials")
svg.avatar.avatar-initials(viewBox="0 0 {{viewPortWidth}} 15")
text(x="50%" y="13" text-anchor="middle")= initials
template(name="orgAvatar")
a.member.orgOrTeamMember(class="js-member" title="{{orgData.orgDisplayName}}")
+boardOrgName(orgId=orgData._id)
template(name="boardOrgRow")
tr
if orgData.orgIsActive
td <s>{{ orgData.orgDisplayName }}</s>
else
td {{ orgData.orgDisplayName }}
td
if currentUser.isBoardAdmin
a.member.orgOrTeamMember.add-member.js-manage-board-removeOrg(title="{{_ 'remove-from-board'}}")
i.fa.fa-minus
template(name="boardTeamRow")
tr
if teamData.teamIsActive
td <s>{{ teamData.teamDisplayName }}</s>
else
td {{ teamData.teamDisplayName }}
td
if currentUser.isBoardAdmin
a.member.orgOrTeamMember.add-member.js-manage-board-removeTeam(title="{{_ 'remove-from-board'}}")
i.fa.fa-minus
template(name="boardOrgName")
svg.avatar.avatar-initials(viewBox="0 0 {{orgViewPortWidth}} 15")
text(x="50%" y="13" text-anchor="middle")= orgName
template(name="teamAvatar")
a.member.orgOrTeamMember(class="js-member" title="{{teamData.teamDisplayName}}")
+boardTeamName(orgId=orgData._id)
template(name="boardTeamName")
svg.avatar.avatar-initials(viewBox="0 0 {{teamViewPortWidth}} 15")
text(x="50%" y="13" text-anchor="middle")= teamName
template(name="userPopup")
.board-member-menu
.mini-profile-info
+128
View File
@@ -1,6 +1,8 @@
import Cards from '/models/cards';
import Avatars from '/models/avatars';
import Users from '/models/users';
import Org from '/models/org';
import Team from '/models/team';
Template.userAvatar.helpers({
userData() {
@@ -46,6 +48,132 @@ Template.userAvatarInitials.helpers({
},
});
BlazeComponent.extendComponent({
onCreated() {
this.error = new ReactiveVar('');
this.loading = new ReactiveVar(false);
this.findOrgsOptions = new ReactiveVar({});
this.page = new ReactiveVar(1);
this.autorun(() => {
const limitOrgs = this.page.get() * Number.MAX_SAFE_INTEGER;
this.subscribe('org', this.findOrgsOptions.get(), limitOrgs, () => {});
});
},
onRendered() {
this.setLoading(false);
},
setError(error) {
this.error.set(error);
},
setLoading(w) {
this.loading.set(w);
},
isLoading() {
return this.loading.get();
},
events() {
return [
{
'keyup input'() {
this.setError('');
},
'click .js-manage-board-removeOrg': Popup.open('removeBoardOrg'),
},
];
},
}).register('boardOrgRow');
Template.boardOrgRow.helpers({
orgData() {
const orgCollection = this.esSearch ? ESSearchResults : Org;
return orgCollection.findOne(this.orgId);
},
currentUser(){
return Meteor.user();
},
});
Template.boardOrgName.helpers({
orgName() {
const org = Org.findOne(this.orgId);
return org && org.orgDisplayName;
},
orgViewPortWidth() {
const org = Org.findOne(this.orgId);
return ((org && org.orgDisplayName.length) || 1) * 12;
},
});
BlazeComponent.extendComponent({
onCreated() {
this.error = new ReactiveVar('');
this.loading = new ReactiveVar(false);
this.findOrgsOptions = new ReactiveVar({});
this.page = new ReactiveVar(1);
this.autorun(() => {
const limitTeams = this.page.get() * Number.MAX_SAFE_INTEGER;
this.subscribe('team', this.findOrgsOptions.get(), limitTeams, () => {});
});
},
onRendered() {
this.setLoading(false);
},
setError(error) {
this.error.set(error);
},
setLoading(w) {
this.loading.set(w);
},
isLoading() {
return this.loading.get();
},
events() {
return [
{
'keyup input'() {
this.setError('');
},
'click .js-manage-board-removeTeam': Popup.open('removeBoardTeam'),
},
];
},
}).register('boardTeamRow');
Template.boardTeamRow.helpers({
teamData() {
const teamCollection = this.esSearch ? ESSearchResults : Team;
return teamCollection.findOne(this.teamId);
},
currentUser(){
return Meteor.user();
},
});
Template.boardTeamName.helpers({
teamName() {
const team = Team.findOne(this.teamId);
return team && team.teamDisplayName;
},
teamViewPortWidth() {
const team = Team.findOne(this.teamId);
return ((team && team.teamDisplayName.length) || 1) * 12;
},
});
BlazeComponent.extendComponent({
onCreated() {
this.error = new ReactiveVar('');
+4
View File
@@ -180,12 +180,16 @@ Template.changeLanguagePopup.helpers({
name = 'Français (Belgique)';
} else if (lang.name === 'fr-CA') {
name = 'Français (Canada)';
} else if (lang.name === 'fr-CH') {
name = 'Français (Schweiz)';
} else if (lang.name === 'ig') {
name = 'Igbo';
} else if (lang.name === 'lv') {
name = 'Latviešu';
} else if (lang.name === 'latviešu valoda') {
name = 'Latviešu';
} else if (lang.name === 'en-IT') {
name = 'English (Italy)';
} else if (lang.name === 'Español') {
name = 'español';
} else if (lang.name === 'es_419') {
Executable → Regular
View File
File mode changed.
+197
View File
@@ -0,0 +1,197 @@
/* eslint-env mocha */
import sinon from 'sinon';
import { expect } from 'chai';
import { Random } from 'meteor/random';
import '../utils';
describe('Utils', function() {
beforeEach(function() {
sinon.stub(Utils, 'reload').callsFake(() => {});
});
afterEach(function() {
window.localStorage.removeItem(boardView);
sinon.restore();
});
const boardView = 'boardView';
describe(Utils.setBoardView.name, function() {
it('sets the board view if the user exists', function(done) {
const viewId = Random.id();
const user = {
setBoardView: (view) => {
expect(view).to.equal(viewId);
done();
},
};
sinon.stub(Meteor, 'user').callsFake(() => user);
Utils.setBoardView(viewId);
expect(window.localStorage.getItem(boardView)).to.equal(viewId);
});
it('sets a specific view if no user exists but a view is defined', function() {
const views = [
'board-view-swimlanes',
'board-view-lists',
'board-view-cal'
];
sinon.stub(Meteor, 'user').callsFake(() => {});
views.forEach(viewName => {
Utils.setBoardView(viewName);
expect(window.localStorage.getItem(boardView)).to.equal(viewName);
});
});
it('sets a default view if no user and no view are given', function() {
sinon.stub(Meteor, 'user').callsFake(() => {});
Utils.setBoardView();
expect(window.localStorage.getItem(boardView)).to.equal('board-view-swimlanes');
});
});
describe(Utils.unsetBoardView.name, function() {
it('removes the boardview from localStoage', function() {
window.localStorage.setItem(boardView, Random.id());
window.localStorage.setItem('collapseSwimlane', Random.id());
Utils.unsetBoardView();
expect(window.localStorage.getItem(boardView)).to.equal(null);
expect(window.localStorage.getItem('collapseSwimlane')).to.equal(null);
});
});
describe(Utils.boardView.name, function() {
it('returns the user\'s board view if a user exists', function() {
const viewId = Random.id();
const user = {};
sinon.stub(Meteor, 'user').callsFake(() => user);
expect(Utils.boardView()).to.equal(undefined);
const boardView = Random.id();
user.profile = { boardView };
expect(Utils.boardView()).to.equal(boardView);
});
it('returns the current defined view', function() {
const views = [
'board-view-swimlanes',
'board-view-lists',
'board-view-cal'
];
sinon.stub(Meteor, 'user').callsFake(() => {});
views.forEach(viewName => {
window.localStorage.setItem(boardView, viewName);
expect(Utils.boardView()).to.equal(viewName);
});
});
it('returns a default if nothing is set', function() {
sinon.stub(Meteor, 'user').callsFake(() => {});
expect(Utils.boardView()).to.equal('board-view-swimlanes');
expect(window.localStorage.getItem(boardView)).to.equal('board-view-swimlanes');
});
});
describe(Utils.myCardsSort.name, function() {
it('has no tests yet');
});
describe(Utils.myCardsSortToggle.name, function() {
it('has no tests yet');
});
describe(Utils.setMyCardsSort.name, function() {
it('has no tests yet');
});
describe(Utils.archivedBoardIds.name, function() {
it('has no tests yet');
});
describe(Utils.dueCardsView.name, function() {
it('has no tests yet');
});
describe(Utils.setDueCardsView.name, function() {
it('has no tests yet');
});
describe(Utils.goBoardId.name, function() {
it('has no tests yet');
});
describe(Utils.goCardId.name, function() {
it('has no tests yet');
});
describe(Utils.processUploadedAttachment.name, function() {
it('has no tests yet');
});
describe(Utils.shrinkImage.name, function() {
it('has no tests yet');
});
describe(Utils.capitalize.name, function() {
it('has no tests yet');
});
describe(Utils.isMiniScreen.name, function() {
it('has no tests yet');
});
describe(Utils.isShowDesktopDragHandles.name, function() {
it('has no tests yet');
});
describe(Utils.isMiniScreenOrShowDesktopDragHandles.name, function() {
it('has no tests yet');
});
describe(Utils.calculateIndexData.name, function() {
it('has no tests yet');
});
describe(Utils.calculateIndex.name, function() {
it('has no tests yet');
});
describe(Utils.isTouchDevice.name, function() {
it('has no tests yet');
});
describe(Utils.calculateTouchDistance.name, function() {
it('has no tests yet');
});
describe(Utils.enableClickOnTouch.name, function() {
it('has no tests yet');
});
describe(Utils.manageCustomUI.name, function() {
it('has no tests yet');
});
describe(Utils.setCustomUI.name, function() {
it('has no tests yet');
});
describe(Utils.setMatomo.name, function() {
it('has no tests yet');
});
describe(Utils.manageMatomo.name, function() {
it('has no tests yet');
});
describe(Utils.getTriggerActionDesc.name, function() {
it('has no tests yet');
});
});
+1
View File
@@ -0,0 +1 @@
import './Utils.tests';
+14 -7
View File
@@ -1,20 +1,27 @@
Utils = {
reload () {
// we move all window.location.reload calls into this function
// so we can disable it when running tests.
// This is because we are not allowed to override location.reload but
// we can override Utils.reload to prevent reload during tests.
window.location.reload();
},
setBoardView(view) {
currentUser = Meteor.user();
if (currentUser) {
Meteor.user().setBoardView(view);
} else if (view === 'board-view-swimlanes') {
window.localStorage.setItem('boardView', 'board-view-swimlanes'); //true
location.reload();
Utils.reload();
} else if (view === 'board-view-lists') {
window.localStorage.setItem('boardView', 'board-view-lists'); //true
location.reload();
Utils.reload();
} else if (view === 'board-view-cal') {
window.localStorage.setItem('boardView', 'board-view-cal'); //true
location.reload();
Utils.reload();
} else {
window.localStorage.setItem('boardView', 'board-view-swimlanes'); //true
location.reload();
Utils.reload();
}
},
@@ -39,7 +46,7 @@ Utils = {
return 'board-view-cal';
} else {
window.localStorage.setItem('boardView', 'board-view-swimlanes'); //true
location.reload();
Utils.reload();
return 'board-view-swimlanes';
}
},
@@ -64,7 +71,7 @@ Utils = {
setMyCardsSort(sort) {
window.localStorage.setItem('myCardsSort', sort);
location.reload();
Utils.reload();
},
archivedBoardIds() {
@@ -87,7 +94,7 @@ Utils = {
setDueCardsView(view) {
window.localStorage.setItem('dueCardsView', view);
location.reload();
Utils.reload();
},
// XXX We should remove these two methods
+43 -9
View File
@@ -166,6 +166,9 @@ services:
#- MAIL_URL=smtp://user:pass@mailserver.example.com:25/
- MAIL_URL=smtp://<mail_url>:25/?ignoreTLS=true&tls={rejectUnauthorized:false}
- MAIL_FROM=Wekan Notifications <noreply.wekan@mydomain.com>
#- MAIL_SERVICE=Outlook365
#- MAIL_SERVICE_USER=firstname.lastname@hotmail.com
#- MAIL_SERVICE_PASSWORD=SecretPassword
#---------------------------------------------------------------
# ==== OPTIONAL: MONGO OPLOG SETTINGS =====
# https://github.com/wekan/wekan-mongodb/issues/2#issuecomment-378343587
@@ -440,9 +443,47 @@ services:
# The host server for the LDAP server
#- LDAP_HOST=localhost
#
#-----------------------------------------------------------------
# ==== LDAP AD Simple Auth ====
#
# Set to true, if you want to connect with Active Directory by Simple Authentication.
# When using AD Simple Auth, LDAP_BASEDN is not needed.
#
# Example:
#- LDAP_AD_SIMPLE_AUTH=true
#
# === LDAP User Authentication ===
#
# a) Option to login to the LDAP server with the user's own username and password, instead of
# an administrator key. Default: false (use administrator key).
#
# b) When using AD Simple Auth, set to true, when login user is used for binding,
# and LDAP_BASEDN is not needed.
#
# Example:
#- LDAP_USER_AUTHENTICATION=true
#
# Which field is used to find the user for the user authentication. Default: uid.
#- LDAP_USER_AUTHENTICATION_FIELD=uid
#
# === LDAP Default Domain ===
#
# a) In case AD SimpleAuth is configured, the default domain is appended to the given
# loginname for creating the correct username for the bind request to AD.
#
# b) The default domain of the ldap it is used to create email if the field is not map
# correctly with the LDAP_SYNC_USER_DATA_FIELDMAP
#
# Example :
#- LDAP_DEFAULT_DOMAIN=mydomain.com
#
#-----------------------------------------------------------------
# ==== LDAP BASEDN Auth ====
#
# The base DN for the LDAP Tree
#- LDAP_BASEDN=ou=user,dc=example,dc=org
#
#-----------------------------------------------------------------
# Fallback on the default authentication method
#- LDAP_LOGIN_FALLBACK=false
#
@@ -493,12 +534,6 @@ services:
# Reject Unauthorized Certificate
#- LDAP_REJECT_UNAUTHORIZED=false
#
# Option to login to the LDAP server with the user's own username and password, instead of an administrator key. Default: false (use administrator key).
#- LDAP_USER_AUTHENTICATION=true
#
# Which field is used to find the user for the user authentication. Default: uid.
#- LDAP_USER_AUTHENTICATION_FIELD=uid
#
# Optional extra LDAP filters. Don't forget the outmost enclosing parentheses if needed
#- LDAP_USER_SEARCH_FILTER=
#
@@ -564,9 +599,8 @@ services:
#
#- LDAP_SYNC_GROUP_ROLES=
#
# The default domain of the ldap it is used to create email if the field is not map correctly with the LDAP_SYNC_USER_DATA_FIELDMAP
# example :
#- LDAP_DEFAULT_DOMAIN=mydomain.com
# The default domain of the ldap it is used to create email if the field is not map correctly
# with the LDAP_SYNC_USER_DATA_FIELDMAP is defined in setting LDAP_DEFAULT_DOMAIN above.
#
# Enable/Disable syncing of admin status based on ldap groups:
#- LDAP_SYNC_ADMIN_STATUS=true
+6
View File
@@ -0,0 +1,6 @@
dependencies:
- name: mongodb
repository: https://charts.bitnami.com/bitnami
version: 10.0.5
digest: sha256:f6520f39b687cb52574ec2fda514662ce913665c0fd2391b68fdb4d2eb059497
generated: "2021-07-27T22:16:39.945592552+02:00"
+20 -10
View File
@@ -1,14 +1,24 @@
name: wekan
version: 1.0.3
apiVersion: v1
apiVersion: v2
appVersion: "5.52"
dependencies:
- condition: mongodb.enabled
name: mongodb
repository: https://charts.bitnami.com/bitnami
version: 10.0.x
description: Open Source kanban
home: https://wekan.github.io/
home: https://wekan.github.io
icon: https://wekan.github.io/wekan-logo.svg
keywords:
- kanban
maintainers:
- email: github@randall.cc
name: technotaff
- email: jiangyt.cn@gmail.com
name: jiangytcn
- email: varac@varac.net
name: varac
name: wekan
sources:
- https://github.com/wekan/wekan
maintainers:
- name: technotaff
email: github@randall.cc
- name: jiangytcn
email: jiangyt.cn@gmail.com
engine: gotpl
type: application
version: 1.1.0
-5
View File
@@ -1,5 +0,0 @@
dependencies:
- name: mongodb
version: 10.0.x
repository: "https://charts.bitnami.com/bitnami"
condition: mongodb.enabled
+1 -1
View File
@@ -14,7 +14,7 @@ serviceAccounts:
##
image:
repository: quay.io/wekan/wekan
tag: latest
tag: v5.52
pullPolicy: IfNotPresent
## Configuration for wekan component
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-template": "Add Template",
"add-card": "Add Card",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Add Cover",
"add-label": "Add Label",
"add-list": "Add List",
@@ -119,6 +121,8 @@
"archives": "Archive",
"template": "Template",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Assign member",
"attached": "attached",
"attachment": "Attachment",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "إضافة مرفق",
"add-board": "إضافة لوحة",
"add-template": "Add Template",
"add-card": "إضافة بطاقة",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "إضافة مهمة فرعية",
"add-checklist": "إضافة قائمة تدقيق",
"add-checklist-item": "إضافة عنصر إلى قائمة التحقق",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "إضافة غلاف",
"add-label": "إضافة ملصق",
"add-list": "إضافة قائمة",
@@ -119,6 +121,8 @@
"archives": "أرشيف",
"template": "نموذج",
"templates": "نماذج",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "تعيين عضو",
"attached": "أُرفق)",
"attachment": "مرفق",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "تغيير تاريخ البدء",
"editCardDueDatePopup-title": "تغيير تاريخ الاستحقاق",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "تعديل العلامة",
"editNotificationPopup-title": "تصحيح الإشعار",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Добави прикачен файл",
"add-board": "Добави Табло",
"add-template": "Add Template",
"add-card": "Добави карта",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Добави подзадача",
"add-checklist": "Добави списък със задачи",
"add-checklist-item": "Добави точка към списъка със задачи",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Добави корица",
"add-label": "Добави етикет",
"add-list": "Добави списък",
@@ -119,6 +121,8 @@
"archives": "Архив",
"template": "Шаблон",
"templates": "Шаблони",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Възложи на член от екипа",
"attached": "прикачен",
"attachment": "Прикаченн файл",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Промени началната дата",
"editCardDueDatePopup-title": "Промени датата за готовност",
"editCustomFieldPopup-title": "Промени Полето",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Промени изработеното време",
"editLabelPopup-title": "Промяна на Етикета",
"editNotificationPopup-title": "Промени известията",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-template": "Add Template",
"add-card": "Add Card",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Ouzphenn ur golo",
"add-label": "Add Label",
"add-list": "Add List",
@@ -119,6 +121,8 @@
"archives": "Archive",
"template": "Template",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Assign member",
"attached": "attached",
"attachment": "Attachment",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Afegeix adjunt",
"add-board": "Afegeix Tauler",
"add-template": "Add Template",
"add-card": "Afegeix Fitxa",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Afegir Subtasca",
"add-checklist": "Afegeix checklist",
"add-checklist-item": "Afegeix un ítem al checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Afegeix coberta",
"add-label": "Afegeix etiqueta",
"add-list": "Afegeix llista",
@@ -119,6 +121,8 @@
"archives": "Desa",
"template": "Plantilla",
"templates": "Plantilles",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Assignar membre",
"attached": "adjuntat",
"attachment": "Adjunt",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Canvia data d'inici",
"editCardDueDatePopup-title": "Canvia data de finalització",
"editCustomFieldPopup-title": "Modificar camp",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Canvia temps dedicat",
"editLabelPopup-title": "Canvia etiqueta",
"editNotificationPopup-title": "Edita la notificació",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "editoval(a) datum ukončení na %s z %s",
"add-attachment": "Přidat přílohu",
"add-board": "Přidat tablo",
"add-template": "Přidat šablonu",
"add-card": "Přidat kartu",
"add-card-to-top-of-list": "Přidat kartu na začátek seznamu",
"add-card-to-bottom-of-list": "Přidat kartu na konec seznamu",
@@ -88,6 +89,7 @@
"add-subtask": "Přidat Podúkol",
"add-checklist": "Přidat zaškrtávací seznam",
"add-checklist-item": "Přidat položku do zaškrtávacího seznamu",
"convertChecklistItemToCardPopup-title": "Převést na kartu",
"add-cover": "Přidat obal",
"add-label": "Přidat štítek",
"add-list": "Přidat sloupec",
@@ -119,6 +121,8 @@
"archives": "Archiv",
"template": "Šablona",
"templates": "Šablony",
"template-container": "Kontejner šablony",
"add-template-container": "Přidat kontejner šablony",
"assign-member": "Přiřadit člena",
"attached": "přiloženo",
"attachment": "Příloha",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Změnit datum startu úkolu",
"editCardDueDatePopup-title": "Změnit datum dokončení úkolu",
"editCustomFieldPopup-title": "Upravit pole",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Změnit strávený čas",
"editLabelPopup-title": "Změnit štítek",
"editNotificationPopup-title": "Změnit notifikace",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximalizovat kartu",
"minimize-card": "Minimalizovat kartu"
"minimize-card": "Minimalizovat kartu",
"delete-org-warning-message": "Tuto organizaci není možné smazat, protože do ní patří uživatel(é)",
"delete-team-warning-message": "Tento tým není možné smazat, protože do nej patří uživatel(é)"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Tilføj vedhæftning",
"add-board": "Tilføj tavle",
"add-template": "Add Template",
"add-card": "Tilføj kort",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Tilføj delopgave",
"add-checklist": "Tilføj tjekliste",
"add-checklist-item": "Tilføj et element til tjeklisten",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Tilføj omslag",
"add-label": "Tilføj etikette",
"add-list": "Tilføj liste",
@@ -119,6 +121,8 @@
"archives": "Arkiv",
"template": "Skabelon",
"templates": "Skabeloner",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Tilknyt medlem",
"attached": "vedhæftet",
"attachment": "Vedhæftning",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Skift startdato",
"editCardDueDatePopup-title": "Skift forfaldsdato",
"editCustomFieldPopup-title": "Redigér felt",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Tilpas forbrugt tid",
"editLabelPopup-title": "Skift etikette",
"editNotificationPopup-title": "Redigér notifikation",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+10 -3
View File
@@ -81,6 +81,7 @@
"activity-endDate": "hat Enddatum zu %s geändert auf %s",
"add-attachment": "Datei anhängen",
"add-board": "Board hinzufügen",
"add-template": "Vorlage hinzufügen",
"add-card": "Karte hinzufügen",
"add-card-to-top-of-list": "Karte am Anfang der Liste hinzufügen",
"add-card-to-bottom-of-list": "Karte am Ende der Liste hinzufügen",
@@ -88,6 +89,7 @@
"add-subtask": "Teilaufgabe hinzufügen",
"add-checklist": "Checkliste hinzufügen",
"add-checklist-item": "Element zu Checkliste hinzufügen",
"convertChecklistItemToCardPopup-title": "in Karte konvertieren",
"add-cover": "Cover hinzufügen",
"add-label": "Label hinzufügen",
"add-list": "Liste hinzufügen",
@@ -119,6 +121,8 @@
"archives": "Archiv",
"template": "Vorlage",
"templates": "Vorlagen",
"template-container": "Vorlagen-Container",
"add-template-container": "Vorlagen-Container hinzufügen",
"assign-member": "Mitglied zuweisen",
"attached": "angehängt",
"attachment": "Anhang",
@@ -260,7 +264,7 @@
"color-white": "Weiss",
"color-yellow": "gelb",
"unset-color": "Nicht festgelegt",
"comment": "Kommentar",
"comment": "Kommentar speichern",
"comment-placeholder": "Kommentar schreiben",
"comment-only": "Nur Kommentare",
"comment-only-desc": "Kann Karten nur kommentieren.",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Startdatum ändern",
"editCardDueDatePopup-title": "Fälligkeitsdatum ändern",
"editCustomFieldPopup-title": "Feld bearbeiten",
"addReactionPopup-title": "Bewertung hinzufügen",
"editCardSpentTimePopup-title": "Aufgewendete Zeit ändern",
"editLabelPopup-title": "Label ändern",
"editNotificationPopup-title": "Benachrichtigung ändern",
@@ -947,7 +952,7 @@
"operator-created": "erstellt",
"operator-modified": "geändert",
"operator-sort": "sortieren",
"operator-comment": "Kommentar",
"operator-comment": "kommentieren",
"operator-has": "hat",
"operator-limit": "Begrenzung",
"predicate-archived": "archiviert",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Karte maximieren",
"minimize-card": "Karte minimieren"
"minimize-card": "Karte minimieren",
"delete-org-warning-message": "Diese Organisation kann nicht gelöscht werden. Zumindest ein Benutzer ist ihr noch zugehörig.",
"delete-team-warning-message": "Dieses Team kann nicht gelöscht werden. Zumindest ein Benutzer ist ihm noch zugehörig."
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "hat Enddatum zu %s geändert auf %s",
"add-attachment": "Datei anhängen",
"add-board": "neues Board",
"add-template": "Vorlage hinzufügen",
"add-card": "Karte hinzufügen",
"add-card-to-top-of-list": "Karte am Anfang der Liste hinzufügen",
"add-card-to-bottom-of-list": "Karte am Ende der Liste hinzufügen",
@@ -88,6 +89,7 @@
"add-subtask": "Teilaufgabe hinzufügen",
"add-checklist": "Checkliste hinzufügen",
"add-checklist-item": "Element zu Checkliste hinzufügen",
"convertChecklistItemToCardPopup-title": "Zu Karte umwandeln",
"add-cover": "Cover hinzufügen",
"add-label": "Label hinzufügen",
"add-list": "Liste hinzufügen",
@@ -119,6 +121,8 @@
"archives": "Archiv",
"template": "Vorlage",
"templates": "Vorlagen",
"template-container": "Vorlagen-Container",
"add-template-container": "Vorlagen-Container hinzufügen",
"assign-member": "Mitglied zuweisen",
"attached": "angehängt",
"attachment": "Anhang",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Startdatum ändern",
"editCardDueDatePopup-title": "Fälligkeitsdatum ändern",
"editCustomFieldPopup-title": "Feld bearbeiten",
"addReactionPopup-title": "Reaktion hinzufügen",
"editCardSpentTimePopup-title": "Aufgewendete Zeit ändern",
"editLabelPopup-title": "Label ändern",
"editNotificationPopup-title": "Benachrichtigung ändern",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout-Warte-Symbol",
"Wave": "Wellen-Warte-Symbol",
"maximize-card": "Karte maximieren",
"minimize-card": "Karte minimieren"
"minimize-card": "Karte minimieren",
"delete-org-warning-message": "Diese Organisation kann nicht gelöscht werden, da wenigstens ein Nutzer dazu gehört.",
"delete-team-warning-message": "Dieses Team kann nicht gelöscht werden, da wenigstens ein Nutzer dazu gehört."
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "η ημερομηνία λήξης άλλαξε σε %s από %s",
"add-attachment": "Προσθήκη Συνημμένου",
"add-board": "Προσθήκη Πίνακα",
"add-template": "Add Template",
"add-card": "Προσθήκη Κάρτας",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Προσθήκη Υποεργασίας",
"add-checklist": "Προσθήκη Λίστας ελέγχου",
"add-checklist-item": "Προσθήκη ενός στοιχείου στη λίστα ελέγχου - checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Add Cover",
"add-label": "Προσθήκη Ετικέτας",
"add-list": "Προσθήκη Λίστας",
@@ -119,6 +121,8 @@
"archives": "Αρχείο",
"template": "Πρότυπο",
"templates": "Πρότυπα",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Ανάθεση μέλους",
"attached": "επισυνάφθηκε",
"attachment": "Συνημμένο",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Αλλαγή ημερομηνίας έναρξης",
"editCardDueDatePopup-title": "Αλλαγή ημερομηνίας λήξης προθεσμίας",
"editCustomFieldPopup-title": "Επεξεργασία Πεδίου",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Αλλαγή δαπανηθέντος χρόνου",
"editLabelPopup-title": "Αλλαγή Ετικέτας",
"editNotificationPopup-title": "Επεξεργασία Ειδοποίησης",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-template": "Add Template",
"add-card": "Add Card",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Add Cover",
"add-label": "Add Label",
"add-list": "Add List",
@@ -119,6 +121,8 @@
"archives": "Archive",
"template": "Template",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Assign member",
"attached": "attached",
"attachment": "Attachment",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+1064
View File
File diff suppressed because it is too large. Load diff
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-template": "Add Template",
"add-card": "Add Card",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Add Cover",
"add-label": "Add Label",
"add-list": "Add List",
@@ -119,6 +121,8 @@
"archives": "Archive",
"template": "Template",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Assign member",
"attached": "attached",
"attachment": "Attachment",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -1054,5 +1059,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-template": "Add Template",
"add-card": "Add Card",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Add Cover",
"add-label": "Add Label",
"add-list": "Add List",
@@ -119,6 +121,8 @@
"archives": "Arkivi",
"template": "Template",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Assign member",
"attached": "attached",
"attachment": "Attachment",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Redakti komencdaton",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Ŝanĝi etikedon",
"editNotificationPopup-title": "Edit Notification",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Agregar Adjunto",
"add-board": "Agregar Tablero",
"add-template": "Add Template",
"add-card": "Agregar Tarjeta",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Agregar Subtarea",
"add-checklist": "Agregar Lista de Tareas",
"add-checklist-item": "Agregar ítem a lista de tareas",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Agregar Portadas",
"add-label": "Agregar Etiqueta",
"add-list": "Agregar Lista",
@@ -119,6 +121,8 @@
"archives": "Archivar",
"template": "Plantilla",
"templates": "Plantillas",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Asignar miembro",
"attached": "adjunto(s)",
"attachment": "Adjunto",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Cambiar fecha de inicio",
"editCardDueDatePopup-title": "Cambiar fecha de vencimiento",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Cambiar tiempo empleado",
"editLabelPopup-title": "Cambiar Etiqueta",
"editNotificationPopup-title": "Editar Notificación",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Añadir adjunto",
"add-board": "Añadir tablero",
"add-template": "Add Template",
"add-card": "Añadir una tarjeta",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Añadir subtarea",
"add-checklist": "Añadir una lista de verificación",
"add-checklist-item": "Añadir un elemento a la lista de verificación",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Añadir portada",
"add-label": "Añadir una etiqueta",
"add-list": "Añadir una lista",
@@ -119,6 +121,8 @@
"archives": "Archivo",
"template": "Plantilla",
"templates": "Plantillas",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Asignar miembros",
"attached": "adjuntado",
"attachment": "Adjunto",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Cambiar la fecha de comienzo",
"editCardDueDatePopup-title": "Cambiar la fecha de vencimiento",
"editCustomFieldPopup-title": "Editar el campo",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Cambiar el tiempo consumido",
"editLabelPopup-title": "Cambiar la etiqueta",
"editNotificationPopup-title": "Editar las notificaciones",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-template": "Add Template",
"add-card": "Add Card",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Add Cover",
"add-label": "Add Label",
"add-list": "Add List",
@@ -119,6 +121,8 @@
"archives": "Archive",
"template": "Template",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Assign member",
"attached": "attached",
"attachment": "Attachment",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-template": "Add Template",
"add-card": "Add Card",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Add Cover",
"add-label": "Add Label",
"add-list": "Add List",
@@ -119,6 +121,8 @@
"archives": "Archive",
"template": "Template",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Assign member",
"attached": "attached",
"attachment": "Attachment",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "editada la fecha de finalización a %s de %s",
"add-attachment": "Agregar adjunto",
"add-board": "Agregar tablero",
"add-template": "Add Template",
"add-card": "Agregar una tarjeta",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Agregar subtarea",
"add-checklist": "Agregar lista de comprobación",
"add-checklist-item": "Agregar un elemento a la lista de comprobación",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Agregar portada",
"add-label": "Agregar una etiqueta",
"add-list": "Agregar una lista",
@@ -119,6 +121,8 @@
"archives": "Archivo",
"template": "Plantilla",
"templates": "Plantillas",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Asignar miembros",
"attached": "adjuntado",
"attachment": "Adjunto",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Cambiar la fecha de inicio",
"editCardDueDatePopup-title": "Cambiar la fecha de vencimiento",
"editCustomFieldPopup-title": "Editar el campo",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Cambiar el tiempo consumido",
"editLabelPopup-title": "Cambiar la etiqueta",
"editNotificationPopup-title": "Editar las notificaciones",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-template": "Add Template",
"add-card": "Add Card",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Add Cover",
"add-label": "Add Label",
"add-list": "Add List",
@@ -119,6 +121,8 @@
"archives": "Archive",
"template": "Template",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Assign member",
"attached": "attached",
"attachment": "Attachment",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+14 -7
View File
@@ -81,13 +81,15 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Añadir adjunto",
"add-board": "Añadir tablero",
"add-template": "Añadir plantilla",
"add-card": "Añadir una tarjeta",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
"add-card-to-top-of-list": "Subir la tarjeta al principio de la lista",
"add-card-to-bottom-of-list": "Bajar la tarjeta al final de la lista",
"add-swimlane": "Añadir un carril de flujo",
"add-subtask": "Añadir subtarea",
"add-checklist": "Añadir una lista de verificación",
"add-checklist-item": "Añadir un elemento a la lista de verificación",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Añadir portada",
"add-label": "Añadir una etiqueta",
"add-list": "Añadir una lista",
@@ -119,6 +121,8 @@
"archives": "Archivo",
"template": "Plantilla",
"templates": "Plantillas",
"template-container": "Plantilla de contenedor",
"add-template-container": "añadir plantilla de contenedor",
"assign-member": "Asignar miembros",
"attached": "adjuntado",
"attachment": "Adjunto",
@@ -133,7 +137,7 @@
"board-not-found": "Tablero no encontrado",
"board-private-info": "Este tablero será <strong>privado</strong>.",
"board-public-info": "Este tablero será <strong>público</strong>.",
"board-drag-drop-reorder-or-click-open": "Drag and drop to reorder board icons. Click board icon to open board.",
"board-drag-drop-reorder-or-click-open": "Mueve y posiciona para reordenar los iconos de los tableros. Click en el icono del tablero para abrirlo",
"boardChangeColorPopup-title": "Cambiar el fondo del tablero",
"boardChangeTitlePopup-title": "Renombrar el tablero",
"boardChangeVisibilityPopup-title": "Cambiar visibilidad",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Cambiar la fecha de comienzo",
"editCardDueDatePopup-title": "Cambiar la fecha de vencimiento",
"editCustomFieldPopup-title": "Editar el campo",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Cambiar el tiempo consumido",
"editLabelPopup-title": "Cambiar la etiqueta",
"editNotificationPopup-title": "Editar las notificaciones",
@@ -1015,9 +1020,9 @@
"link-to-search": "Enlazar a esta búsqueda",
"excel-font": "Arial",
"number": "Número",
"label-colors": "Label Colors",
"label-names": "Label Names",
"archived-at": "archived at",
"label-colors": "Colores de las etiquetas",
"label-names": "Nombres de las etiquetas",
"archived-at": "archivado el",
"sort-cards": "Sort Cards",
"cardsSortPopup-title": "Sort Cards",
"due-date": "Due Date",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Gehitu eranskina",
"add-board": "Gehitu arbela",
"add-template": "Add Template",
"add-card": "Gehitu txartela",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Add Subtask",
"add-checklist": "Gehitu egiaztaketa zerrenda",
"add-checklist-item": "Gehitu elementu bat egiaztaketa zerrendara",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Gehitu azala",
"add-label": "Gehitu etiketa",
"add-list": "Gehitu zerrenda",
@@ -119,6 +121,8 @@
"archives": "Artxibatu",
"template": "Template",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Esleitu kidea",
"attached": "erantsita",
"attachment": "Eranskina",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Aldatu hasiera data",
"editCardDueDatePopup-title": "Aldatu epemuga data",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Aldatu erabilitako denbora",
"editLabelPopup-title": "Aldatu etiketa",
"editNotificationPopup-title": "Editatu jakinarazpena",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-template": "Add Template",
"add-card": "Add Card",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Add Cover",
"add-label": "Add Label",
"add-list": "Add List",
@@ -119,6 +121,8 @@
"archives": "Archive",
"template": "Template",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Assign member",
"attached": "attached",
"attachment": "Attachment",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "افزودن ضمیمه",
"add-board": "افزودن برد",
"add-template": "Add Template",
"add-card": "افزودن کارت",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "افزودن زیر وظیفه",
"add-checklist": "افزودن چک‌لیست",
"add-checklist-item": "افزودن مورد به چک‌لیست",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "افزودن کاور",
"add-label": "افزودن لیبل",
"add-list": "افزودن لیست",
@@ -119,6 +121,8 @@
"archives": "آرشیو",
"template": "قالب",
"templates": "قالب‌ها",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "انتصاب عضو",
"attached": "ضمیمه شده",
"attachment": "ضمیمه",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "تغییر تاریخ آغاز",
"editCardDueDatePopup-title": "تغییر تاریخ پایان",
"editCustomFieldPopup-title": "ویرایش فیلد",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "تغییر زمان صرف شده",
"editLabelPopup-title": "تغیر لیبل",
"editNotificationPopup-title": "اصلاح اعلان",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "muokkasi loppumispäiväksi %s / %s",
"add-attachment": "Lisää liite",
"add-board": "Lisää taulu",
"add-template": "Lisää malli",
"add-card": "Lisää kortti",
"add-card-to-top-of-list": "Lisää kortti listan alkuun",
"add-card-to-bottom-of-list": "Lisää kortti listan loppuun",
@@ -88,6 +89,7 @@
"add-subtask": "Lisää alitehtävä",
"add-checklist": "Lisää tarkistuslista",
"add-checklist-item": "Lisää kohta tarkistuslistaan",
"convertChecklistItemToCardPopup-title": "Muuta kortiksi",
"add-cover": "Lisää kansi",
"add-label": "Lisää nimilappu",
"add-list": "Lisää lista",
@@ -119,6 +121,8 @@
"archives": "Arkisto",
"template": "Malli",
"templates": "Mallit",
"template-container": "Mallikontti",
"add-template-container": "Lisää mallikontti",
"assign-member": "Valitse jäsen",
"attached": "liitetty",
"attachment": "Liitetiedosto",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Muokkaa aloituspäivää",
"editCardDueDatePopup-title": "Muokkaa eräpäivää",
"editCustomFieldPopup-title": "Muokkaa kenttää",
"addReactionPopup-title": "Lisää reaktio",
"editCardSpentTimePopup-title": "Muuta käytettyä aikaa",
"editLabelPopup-title": "Muokkaa nimilappua",
"editNotificationPopup-title": "Muokkaa ilmoituksia",
@@ -1053,5 +1058,7 @@
"Scaleout": "Skaalaus ulos odotus pyörijä",
"Wave": "Aalto odotus pyörijä",
"maximize-card": "Suurenna kortti",
"minimize-card": "Pienennä kortti"
"minimize-card": "Pienennä kortti",
"delete-org-warning-message": "Ei voi poistaa tätä organisaatiota, ainakin yksi käyttäjä kuuluu siihen",
"delete-team-warning-message": "Ei voi poistaa tätä tiimiä, ainakin yksi käyttäjä kuuluu siihen"
}
+1064
View File
File diff suppressed because it is too large. Load diff
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "date de fin éditée de %s à %s",
"add-attachment": "Ajouter une pièce jointe",
"add-board": "Ajouter un tableau",
"add-template": "Ajouter un modèle",
"add-card": "Ajouter une carte",
"add-card-to-top-of-list": "Ajouter la carte en haut de la liste",
"add-card-to-bottom-of-list": "Ajouter la carte en bas de la liste",
@@ -88,6 +89,7 @@
"add-subtask": "Ajouter une sous-tâche",
"add-checklist": "Ajouter une checklist",
"add-checklist-item": "Ajouter un élément à la checklist",
"convertChecklistItemToCardPopup-title": "Convertir en carte",
"add-cover": "Ajouter la couverture",
"add-label": "Ajouter une étiquette",
"add-list": "Ajouter une liste",
@@ -119,6 +121,8 @@
"archives": "Archives",
"template": "Modèle",
"templates": "Modèles",
"template-container": "Conteneur de modèles",
"add-template-container": "Ajouter un conteneur de modèles",
"assign-member": "Affecter un participant",
"attached": "joint",
"attachment": "Pièce jointe",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Modifier la date de début",
"editCardDueDatePopup-title": "Modifier la date d'échéance",
"editCustomFieldPopup-title": "Éditer le champ personnalisé",
"addReactionPopup-title": "Ajouter une réaction",
"editCardSpentTimePopup-title": "Modifier le temps passé",
"editLabelPopup-title": "Modifier l'étiquette",
"editNotificationPopup-title": "Modifier la notification",
@@ -1053,5 +1058,7 @@
"Scaleout": "Icône d'attente mise à l'échelle",
"Wave": "Icône d'attente onde",
"maximize-card": "Maximiser la carte",
"minimize-card": "Minimiser la carte"
"minimize-card": "Minimiser la carte",
"delete-org-warning-message": "Impossible de supprimer cette organisation, au moins un utilisateur lui appartient",
"delete-team-warning-message": "Impossible de supprimer cette équipe, au moins un utilisateur lui appartient"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Engadir anexo",
"add-board": "Engadir taboleiro",
"add-template": "Add Template",
"add-card": "Engadir tarxeta",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Add Cover",
"add-label": "Engadir etiqueta",
"add-list": "Engadir lista",
@@ -119,6 +121,8 @@
"archives": "Arquivar",
"template": "Template",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Assign member",
"attached": "attached",
"attachment": "Anexo",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Cambiar a data de inicio",
"editCardDueDatePopup-title": "Cambiar a data límite",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Cambiar a etiqueta",
"editNotificationPopup-title": "Editar a notificación",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "תאריך הסיום השתנה מ־%s ל־%s",
"add-attachment": "הוספת קובץ מצורף",
"add-board": "הוספת לוח",
"add-template": "הוספת תבנית",
"add-card": "הוספת כרטיס",
"add-card-to-top-of-list": "הוספת כרטיס לראש הרשימה",
"add-card-to-bottom-of-list": "הוספת כרטיס לתחתית הרשימה",
@@ -88,6 +89,7 @@
"add-subtask": "הוסף תת משימה",
"add-checklist": "הוספת רשימת מטלות",
"add-checklist-item": "הוספת פריט לרשימת משימות",
"convertChecklistItemToCardPopup-title": "המרה לכרטיס",
"add-cover": "הוספת כיסוי",
"add-label": "הוספת תווית",
"add-list": "הוספת רשימה",
@@ -119,6 +121,8 @@
"archives": "להעביר לארכיון",
"template": "תבנית",
"templates": "תבניות",
"template-container": "מכולה לתבנית",
"add-template-container": "הוספת מכולה לתבנית",
"assign-member": "הקצאת חבר",
"attached": "מצורף",
"attachment": "קובץ מצורף",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "שינוי מועד התחלה",
"editCardDueDatePopup-title": "שינוי מועד סיום",
"editCustomFieldPopup-title": "עריכת שדה",
"addReactionPopup-title": "הוספת סימון כתגובה",
"editCardSpentTimePopup-title": "שינוי הזמן שהושקע",
"editLabelPopup-title": "שינוי תווית",
"editNotificationPopup-title": "שינוי דיווח",
@@ -1053,5 +1058,7 @@
"Scaleout": "שבשבת המתנה התרחקות",
"Wave": "שבשבת המתנה גל",
"maximize-card": "הגדלת כרטיס",
"minimize-card": "מזעור כרטיס"
"minimize-card": "מזעור כרטיס",
"delete-org-warning-message": "לא ניתן למחוק את הארגון הזה, יש לפחות משתמש אחד ששייך אליו",
"delete-team-warning-message": "לא ניתן למחוק את הצוות הזה, יש לפחות משתמש אחד ששייך אליו"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "संलग्न करें",
"add-board": "बोर्ड जोड़ें",
"add-template": "Add Template",
"add-card": "कार्ड जोड़ें",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "उप कार्य जोड़ें",
"add-checklist": "चिह्नांकन-सूची जोड़ें",
"add-checklist-item": "चिह्नांकन-सूची विषय कोई तक जोड़ें",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "आवरण जोड़ें",
"add-label": "नामपत्र जोड़ें",
"add-list": "सूची जोड़ें",
@@ -119,6 +121,8 @@
"archives": "पुरालेख",
"template": "खाका",
"templates": "खाका",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "आवंटित सदस्य",
"attached": "संलग्न",
"attachment": "संलग्नक",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "संपादित करें Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "संपादित करें Notification",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Dodaj privitak",
"add-board": "Dodaj ploču",
"add-template": "Add Template",
"add-card": "Dodaj karticu",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Dodaj podzadatak",
"add-checklist": "Dodaj listu provjere",
"add-checklist-item": "Dodaj stavku listi provjere",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Dodaj naslovnicu",
"add-label": "Dodaj oznaku",
"add-list": "Dodaj listu",
@@ -119,6 +121,8 @@
"archives": "Arhiva",
"template": "Predložak",
"templates": "Predlošci",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Dodijeli člana",
"attached": "u prilogu",
"attachment": "Privitak",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Promijeni datum početka",
"editCardDueDatePopup-title": "Promijeni datum dospijeća",
"editCustomFieldPopup-title": "Uredi polje",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Promijeni oznaku",
"editNotificationPopup-title": "Edit Notification",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "átírta a \"befejezés\" dátumát erről: %s erre: %s",
"add-attachment": "Melléklet hozzáadása",
"add-board": "Tábla hozzáadása",
"add-template": "Add Template",
"add-card": "Kártya hozzáadása",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Alfeladat hozzáadása",
"add-checklist": "Ellenőrzőlista hozzáadása",
"add-checklist-item": "Elem hozzáadása az ellenőrzőlistához",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Borító hozzáadása",
"add-label": "Címke hozzáadása",
"add-list": "Lista hozzáadása",
@@ -119,6 +121,8 @@
"archives": "Archiválás",
"template": "Sablon",
"templates": "Sablonok",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Tag hozzárendelése",
"attached": "csatolva",
"attachment": "Melléklet",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Kezdődátum megváltoztatása",
"editCardDueDatePopup-title": "Határidő dátumának megváltoztatása",
"editCustomFieldPopup-title": "Mező szerkesztése",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Eltöltött idő megváltoztatása",
"editLabelPopup-title": "Címke megváltoztatása",
"editNotificationPopup-title": "Értesítés szerkesztése",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-template": "Add Template",
"add-card": "Add Card",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Add Cover",
"add-label": "Add Label",
"add-list": "Add List",
@@ -119,6 +121,8 @@
"archives": "Archive",
"template": "Template",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Assign member",
"attached": "attached",
"attachment": "Attachment",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-template": "Add Template",
"add-card": "Add Card",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
"add-checklist-item": "Tambahkan hal ke daftar periksa",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Tambahkan Sampul",
"add-label": "Add Label",
"add-list": "Add List",
@@ -119,6 +121,8 @@
"archives": "Arsip",
"template": "Klise",
"templates": "Klise",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Tugaskan anggota",
"attached": "terlampir",
"attachment": "Lampiran",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Ubah tanggal mulai",
"editCardDueDatePopup-title": "Ubah tanggal selesai",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Ubah Label",
"editNotificationPopup-title": "Sunting Pemberitahuan",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-template": "Add Template",
"add-card": "Add Card",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Add Cover",
"add-label": "Add Label",
"add-list": "Add List",
@@ -119,6 +121,8 @@
"archives": "Archive",
"template": "Template",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Assign member",
"attached": "attached",
"attachment": "Attachment",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "ha modificato la data di fine a %s di %s ",
"add-attachment": "Aggiungi allegato",
"add-board": "Aggiungi bacheca",
"add-template": "Aggiungi Template",
"add-card": "Aggiungi scheda",
"add-card-to-top-of-list": "Aggiungi Scheda in cima alla Lista",
"add-card-to-bottom-of-list": "Aggiungi Scheda in fondo alla Lista",
@@ -88,6 +89,7 @@
"add-subtask": "Aggiungi sotto-compito",
"add-checklist": "Aggiungi Checklist",
"add-checklist-item": "Aggiungi un elemento alla checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Aggiungi copertina",
"add-label": "Aggiungi etichetta",
"add-list": "Aggiungi lista",
@@ -119,6 +121,8 @@
"archives": "Archivio",
"template": "Template",
"templates": "Template",
"template-container": "Contenitore dei Template",
"add-template-container": "Aggiungi contenitore di Template",
"assign-member": "Assegna a un membro",
"attached": "allegato",
"attachment": "Allegato",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Cambia data di inizio",
"editCardDueDatePopup-title": "Cambia data di scadenza",
"editCustomFieldPopup-title": "Modifica campo",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Cambia tempo trascorso",
"editLabelPopup-title": "Modifica etichetta",
"editNotificationPopup-title": "Modifica notifiche",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+9 -2
View File
@@ -81,13 +81,15 @@
"activity-endDate": "終了日を %s に変更しました / %s",
"add-attachment": "添付ファイルを追加",
"add-board": "ボードを追加",
"add-template": "Add Template",
"add-card": "カードを追加",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-top-of-list": "カードをリストの先頭に追加",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
"add-swimlane": "スイムレーンを追加",
"add-subtask": "サブタスクを追加",
"add-checklist": "チェックリストを追加",
"add-checklist-item": "チェックリストに項目を追加",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "カバーの追加",
"add-label": "ラベルを追加",
"add-list": "リストを追加",
@@ -119,6 +121,8 @@
"archives": "アーカイブ",
"template": "テンプレート",
"templates": "テンプレート",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "メンバーの割当",
"attached": "添付されました",
"attachment": "添付ファイル",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "開始日の変更",
"editCardDueDatePopup-title": "期限の変更",
"editCustomFieldPopup-title": "フィールドを編集",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "作業時間の変更",
"editLabelPopup-title": "ラベルの変更",
"editNotificationPopup-title": "通知の変更",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "მიბმული ფაილის დამატება",
"add-board": "დაფის დამატება",
"add-template": "Add Template",
"add-card": "ბარათის დამატება",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "ქვესაქმიანობის დამატება",
"add-checklist": "კატალოგის დამატება",
"add-checklist-item": "დაამატეთ საგანი ჩამონათვალს",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "გარეკანის დამატება",
"add-label": "ნიშნის დამატება",
"add-list": "ჩამონათვალის დამატება",
@@ -119,6 +121,8 @@
"archives": "Archive",
"template": "Template",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "უფლებამოსილი წევრი",
"attached": "მიბმული",
"attachment": "მიბმული ფიალი",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "დაწყების დროის შეცვლა",
"editCardDueDatePopup-title": "შეცვალეთ დედლაინი",
"editCustomFieldPopup-title": "ველების შესწორება",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "დახარჯული დროის შეცვლა",
"editLabelPopup-title": "ნიშნის შეცვლა",
"editNotificationPopup-title": "შეტყობინებების შესწორება",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-template": "Add Template",
"add-card": "Add Card",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Add Cover",
"add-label": "Add Label",
"add-list": "Add List",
@@ -119,6 +121,8 @@
"archives": "Archive",
"template": "Template",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Assign member",
"attached": "attached",
"attachment": "Attachment",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "첨부파일 추가",
"add-board": "보드 추가",
"add-template": "Add Template",
"add-card": "카드 추가",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Add Subtask",
"add-checklist": "체크리스트 추가",
"add-checklist-item": "체크리스트에 항목 추가",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "커버 추가",
"add-label": "라벨 추가",
"add-list": "리스트 추가",
@@ -119,6 +121,8 @@
"archives": "보관",
"template": "템플릿",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "멤버 지정",
"attached": "첨부됨",
"attachment": "첨부 파일",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "시작일 변경",
"editCardDueDatePopup-title": "종료일 변경",
"editCustomFieldPopup-title": "필드 수정",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "라벨 변경",
"editNotificationPopup-title": "알림 수정",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-template": "Add Template",
"add-card": "Add Card",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
"add-checklist-item": "Add an item to checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Add Cover",
"add-label": "Add Label",
"add-list": "Add List",
@@ -119,6 +121,8 @@
"archives": "Archive",
"template": "Template",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Assign member",
"attached": "attached",
"attachment": "Attachment",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Pievienot failu",
"add-board": "Pievienot dēli",
"add-template": "Add Template",
"add-card": "Pievienot kartiņu",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Pievienot apakšuzdevumu",
"add-checklist": "Pievienot kontrolsarakstu",
"add-checklist-item": "Pievienot elementu",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Pievienot vāku",
"add-label": "Pievienot birku",
"add-list": "Pievienot sarakstu",
@@ -119,6 +121,8 @@
"archives": "Arhīvs",
"template": "Sagatave",
"templates": "Sagataves",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Iecelt dalībnieku",
"attached": "pievienots fails",
"attachment": "Fails",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Mainīt sākuma datumu",
"editCardDueDatePopup-title": "Mainīt termiņu",
"editCustomFieldPopup-title": "Labot lauku",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Mainīt patērēto laiku",
"editLabelPopup-title": "Mainīt birku",
"editNotificationPopup-title": "Labot ziņojumu",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
+8 -1
View File
@@ -81,6 +81,7 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Додај прилог",
"add-board": "Додади Табла",
"add-template": "Add Template",
"add-card": "Додади Картичка",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
@@ -88,6 +89,7 @@
"add-subtask": "Додади подзадача",
"add-checklist": "Додади список на задачи",
"add-checklist-item": "Додади точка во списокот со задачи",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Додади корица",
"add-label": "Додади етикета",
"add-list": "Додади листа",
@@ -119,6 +121,8 @@
"archives": "Архива",
"template": "Template",
"templates": "Templates",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"assign-member": "Възложи на член от екипа",
"attached": "прикачен",
"attachment": "Прикаченн датотека",
@@ -318,6 +322,7 @@
"editCardStartDatePopup-title": "Промени началната дата",
"editCardDueDatePopup-title": "Промени датата за готовност",
"editCustomFieldPopup-title": "Промени Полето",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Промени изработеното време",
"editLabelPopup-title": "Промяна на Етикета",
"editNotificationPopup-title": "Промени известията",
@@ -1053,5 +1058,7 @@
"Scaleout": "Scaleout Wait Spinner",
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card"
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
Loaded 100 of 167 files, more files were not shown because too many files have changed in this diff. Show more