Compare commits

...
194 Commits
Author SHA1 Message Date
Lauri Ojansivu 8ea9780140 v7.09 2023-08-21 00:44:23 +03:00
Lauri Ojansivu 925099a1ee Merge pull request #5095 from mfilser/attachments-display_images_full_width
Attachments, big images are now fully displayed
2023-08-21 00:34:57 +03:00
Martin Filser 16a2cc6ba9 Attachments, big images are now fully displayed 2023-08-20 23:30:28 +02:00
Lauri Ojansivu 94bc6d8e45 Updated ChangeLog. 2023-08-20 23:58:47 +03:00
Lauri Ojansivu da28af516d Merge pull request #5094 from mfilser/reactiveCache-full_implementation_collection_translation
ReactiveCache, full implementation of the collection "Translation"
2023-08-20 23:01:09 +03:00
Martin Filser 73b5bbfc9e ReactiveCache, full implementation of the collection "Translation" 2023-08-20 21:37:25 +02:00
Lauri Ojansivu e2dde19db2 Merge pull request #5093 from mfilser/translation_client_side
Translations are working on the client side again
2023-08-20 22:20:48 +03:00
Martin Filser f421d135a6 Translations are working on the client side again 2023-08-20 19:31:48 +02:00
Lauri Ojansivu ae4232465b Updated ChangeLog. 2023-08-20 19:28:37 +03:00
Lauri Ojansivu 112b628a99 Merge pull request #5092 from mfilser/reactiveCache-use_ejson
ReactiveCache, serialize and parse json with EJSON
2023-08-20 19:24:39 +03:00
Martin Filser bf313ca842 ReactiveCache, serialize and parse json with EJSON
- date object wasn't serialized and parsed right
- fixes #5086
2023-08-20 18:21:18 +02:00
Lauri Ojansivu a0da05c660 Merge pull request #5091 from mfilser/reactiveCache-use_default_parameters
ReactiveCache, use default parameters
2023-08-20 18:48:46 +03:00
Martin Filser 394149b2e0 ReactiveCache, use default parameters
- it's not related to any known bug (as far as I know)
- it's only a good coding style to have default parameters
2023-08-20 16:21:04 +02:00
Lauri Ojansivu 9ce51d8db2 Updated translations. 2023-08-18 17:35:14 +03:00
Lauri Ojansivu 76591632c5 Updated ChangeLog. 2023-08-18 17:19:06 +03:00
Lauri Ojansivu b03ea37944 Merge pull request #5090 from DimDz/master
Move card to other boards API
2023-08-18 17:16:18 +03:00
Lauri Ojansivu 6e490b0f8d Updated translations. 2023-08-18 16:45:20 +03:00
DimDz 32e50b869d Added moveCard to editCard API 2023-08-18 15:48:49 +03:00
Lauri Ojansivu 6a38b9fb0f Updated translations. 2023-08-18 03:25:29 +03:00
Lauri Ojansivu 1f059898ca Updated translations. 2023-08-18 02:16:11 +03:00
Lauri Ojansivu cb4ce5cddf Updated ChangeLog. 2023-08-18 02:04:56 +03:00
Lauri Ojansivu 7dfb1eb6ce Fixed building s390x release. Part 2.
Thanks to xet7 !
2023-08-18 02:03:22 +03:00
Lauri Ojansivu 9857d4a5bf Updated ChangeLog. 2023-08-18 02:01:36 +03:00
Lauri Ojansivu 73f943f89a Fixed building s390x release.
Thanks to xet7 !
2023-08-18 02:00:12 +03:00
Lauri Ojansivu d5308d2d04 Updated translations. 2023-08-18 01:39:52 +03:00
Lauri Ojansivu b62221504d Updated ChangeLog. 2023-08-18 01:38:25 +03:00
Lauri Ojansivu 9d5af24e7b Upgraded Snap Candidate MongoDB to 6.0.9
Thanks to MongoDB developers !
2023-08-18 01:36:07 +03:00
Lauri Ojansivu fe20a5b54e Merge newest changes. 2023-08-18 01:08:36 +03:00
Lauri Ojansivu b068d07ce5 Updated release and startup scripts.
Thanks to xet7 !
2023-08-18 01:05:18 +03:00
Lauri Ojansivu a494c768f2 Merge newest changes. 2023-08-17 23:15:58 +03:00
Lauri Ojansivu 7b94188f64 Update release scripts. Part 5. 2023-08-17 23:14:23 +03:00
Lauri Ojansivu 249d3b0739 Merge branch 'master' of github.com:wekan/wekan 2023-08-17 23:09:27 +03:00
Lauri Ojansivu e181f3a385 v7.08 2023-08-17 23:08:48 +03:00
Lauri Ojansivu 90797066e7 Merge newest changes. 2023-08-17 23:07:33 +03:00
Lauri Ojansivu 13711f02b6 Updated translations. 2023-08-17 23:02:15 +03:00
Lauri Ojansivu f8adc3605a Updated ChangeLog. 2023-08-17 22:32:08 +03:00
Lauri Ojansivu f75fd82339 Merge pull request #5088 from VidVidex/master
Fix broken attachment preview in safari
2023-08-17 22:29:16 +03:00
Lauri Ojansivu 45edeccef9 Updated ChangeLog. 2023-08-17 22:24:19 +03:00
Vid Smole 6ffde36d84 Fix navigation between attachments 2023-08-17 21:21:56 +02:00
Vid Smole 17aa702860 Fix attachment viewer in safari 2023-08-17 21:21:31 +02:00
Lauri Ojansivu 4c7f1090fd v7.08 2023-08-17 21:48:00 +03:00
Lauri Ojansivu baf1ddc8e5 Merge pull request #5087 from ipyramiddev/master
Corrected source code so that it works correctly with reactiveCache
2023-08-17 21:24:32 +03:00
Yevhenii Pertiaka 38b1301258 Corrected source code so that it works correctly with reactiveCache #5000 2023-08-18 03:20:45 +09:00
Lauri Ojansivu f295f42363 Updated translations. 2023-08-17 21:02:50 +03:00
Lauri Ojansivu 0716eba84e Updated ChangeLog. 2023-08-17 20:25:12 +03:00
Lauri Ojansivu c47d5ca64e Update release scripts. Part 4. 2023-08-17 20:20:54 +03:00
Lauri Ojansivu 7d48fe4c23 Updated translations. 2023-08-17 20:15:59 +03:00
Lauri Ojansivu f4a6ce9f31 Updated ChangeLog. 2023-08-17 19:53:42 +03:00
Lauri Ojansivu c769bed7dd Added remaining translations to feature custom transaltion strings on Admin Panel.
Thanks to xet7 !
2023-08-17 19:49:29 +03:00
Yevhenii Pertiaka b1525d4221 Added new function to add cumstom translation strings on Admin panel 2023-08-17 21:54:14 +09:00
Lauri Ojansivu 4153fe7d0d Updated ChangeLog. 2023-08-17 00:23:16 +03:00
Lauri Ojansivu c570e426a1 Updated release scripts. Part 3. 2023-08-17 00:22:17 +03:00
Lauri Ojansivu 271877565b Updated ChangeLog. 2023-08-17 00:03:25 +03:00
Lauri Ojansivu d6b960f79a Updated release scripts. Part 2.
Thanks to xet7 !
2023-08-17 00:01:53 +03:00
Lauri Ojansivu be938ebd4b Updated ChangeLog. 2023-08-16 23:52:51 +03:00
Lauri Ojansivu 558d406148 Updated release scripts.
Thanks to xet7 !
2023-08-16 23:51:50 +03:00
Lauri Ojansivu f61b9239de v7.07 2023-08-16 22:51:44 +03:00
Lauri Ojansivu 409bd50d67 Updated ChangeLog. 2023-08-16 22:33:26 +03:00
Lauri Ojansivu 48dcd11af0 Add some filename, if there is no filename after sanitize.
Thanks to xet7 !

Related https://github.com/wekan/wekan/pull/5083
2023-08-16 22:32:40 +03:00
Lauri Ojansivu 08afc05c38 Updated ChangeLog. 2023-08-16 21:28:33 +03:00
Lauri Ojansivu 28e97808f5 Add warning to beginning of sanitized filename.
Thanks to xet7!

Related https://github.com/wekan/wekan/pull/5083
2023-08-16 21:28:03 +03:00
Lauri Ojansivu 8a1c2e8860 Merge pull request #5083 from VidVidex/master
Fix downloading attachments with unusual filenames [WIP]
2023-08-16 20:30:43 +03:00
Lauri Ojansivu 4b22174183 Updated ChangeLog. 2023-08-16 20:14:07 +03:00
Lauri Ojansivu 9bf3b960a1 s390x disabled, because there is problem adding fibers.
Thanks to xet7 !
2023-08-16 20:12:22 +03:00
Vid Smole fa58d0ec3b Rename files with possible XSS
Previously upload of such files would fail silently.
Now they are renamed to a sanitized version and a warning is printed in the console.
2023-08-16 18:51:40 +02:00
Lauri Ojansivu 03f7fd6340 Updated ChangeLog. 2023-08-16 19:44:06 +03:00
Lauri Ojansivu d48068f63c Update Windows bundle build script.
Thanks to xet7 !
2023-08-16 19:42:06 +03:00
Lauri Ojansivu 998f3fe8a7 v7.06 2023-08-15 14:46:59 +03:00
Lauri Ojansivu 81ece7cec2 Merge pull request #5080 from VidVidex/5074-swiping
Add attachment swiping
2023-08-14 16:46:42 +03:00
Vid Smole 30073ce1d6 Add attachment swiping 2023-08-14 15:38:13 +02:00
Lauri Ojansivu fc9fb9132c Updated translations. 2023-08-13 02:48:42 +03:00
Lauri Ojansivu 2f8c01eccf Updated ChangeLog. 2023-08-13 02:45:54 +03:00
Lauri Ojansivu 6d1705af34 Update building Windows bundle.
Thanks to xet7 !
2023-08-13 02:44:17 +03:00
Lauri Ojansivu fa6db6118d Updated translations. 2023-08-12 16:27:48 +03:00
Lauri Ojansivu f555acee6f Updated ChangeLog. 2023-08-09 22:24:08 +03:00
Lauri Ojansivu 4bc5799b4f Merge pull request #5075 from mfilser/label_drag_drop_and_reorder
label drag/drop (reorder labels) works now again
2023-08-09 21:26:49 +03:00
Martin Filser b2b8a99899 label drag/drop (reorder labels) works now again 2023-08-09 20:11:16 +02:00
Lauri Ojansivu 9641ac7ee8 Updated ChangeLog. 2023-08-09 16:56:35 +03:00
Lauri Ojansivu f9823f67bd Updated exceljs and jszip.
Thanks to developers of dependencies !
2023-08-09 16:54:27 +03:00
Lauri Ojansivu af14ff6e89 Updated translations. 2023-08-09 16:54:10 +03:00
Lauri Ojansivu 323f1b1d87 Updated ChangeLog. 2023-08-09 02:49:27 +03:00
Lauri Ojansivu 3e23a5ddce Merge pull request #5071 from chrisi51/alphabetic-order
Alphabetic ordered member lists on assigne and member lists
2023-08-09 02:40:45 +03:00
Christian 037bba83d6 Alphabetic ordered member lists on assigne and member lists 2023-08-08 23:24:35 +00:00
Lauri Ojansivu a60acac51a Updated ChangeLog. 2023-08-08 15:45:32 +03:00
Lauri Ojansivu eea0b1afc4 v7.05 2023-08-08 12:08:01 +03:00
Lauri Ojansivu 9a6d0c4aad Updated ChangeLog. 2023-08-08 11:58:39 +03:00
Lauri Ojansivu 1c530632ac Merge branch 'master' of https://github.com/chrisi51/wekan 2023-08-08 11:49:55 +03:00
Christian 18c49695b1 Optimize member list popups 2023-08-08 08:31:23 +00:00
Christian c8a743bb8e Fixing positioning of opened cards 2023-08-08 00:05:19 +00:00
Lauri Ojansivu 7e92068955 Updated dependencies. 2023-08-07 22:42:13 +03:00
Lauri Ojansivu 8c84254392 Updated ChangeLog. 2023-08-07 17:43:01 +03:00
Lauri Ojansivu 6b1403984f Fixed Normal (non-admin) board users cannot adjust swimlane height.
Thanks to mgdbbrt and xet7 !

Fixes #5063
2023-08-07 17:41:33 +03:00
Lauri Ojansivu c965cc9b76 Updated ChangeLog. 2023-08-07 17:15:28 +03:00
Lauri Ojansivu ab40737211 Show option b) -1 for disabling swimlane height at swimlane height popup.
Thanks to xet7 !
2023-08-07 17:12:49 +03:00
Lauri Ojansivu 950b477d9d Updated ChangeLog. 2023-08-07 17:02:13 +03:00
Lauri Ojansivu 529a43fa0e Updated dependencies. 2023-08-07 16:59:17 +03:00
Lauri Ojansivu eb16cd19bb Merge branch 'swimlane-default' of https://github.com/mark-i-m/wekan 2023-08-07 16:30:59 +03:00
Lauri Ojansivu fbd64a6a9e Updated translations. 2023-08-07 16:23:02 +03:00
mark 7536c7b532 allow -1 as 'auto' 2023-08-03 22:03:30 -05:00
mark 406766a82b make default swimlane auto-height 2023-08-03 22:03:30 -05:00
Lauri Ojansivu 5bb794e3bb v7.04 2023-08-03 22:21:18 +03:00
Lauri Ojansivu ee73e04004 Updated ChangeLog. 2023-08-03 22:18:37 +03:00
Lauri Ojansivu 672be413f7 Updated translations. 2023-08-03 22:17:03 +03:00
Lauri Ojansivu b0ba57a165 Updated ChangeLog. 2023-08-03 22:15:50 +03:00
Lauri Ojansivu 79c2301ad5 Updated dependencies. 2023-08-03 22:15:25 +03:00
Lauri Ojansivu b2c7be244e Updated translations. 2023-08-03 21:37:09 +03:00
Lauri Ojansivu 8f8c045930 Merge pull request #5058 from VidVidex/master
Do not open preview for attachments that cannot be previewed
2023-08-03 20:12:05 +03:00
Vid Smole 21ffff3977 Do not open preview for attachments that cannot be previewed 2023-08-03 18:57:12 +02:00
Lauri Ojansivu 7d1bca3702 Merge pull request #5056 from cloudron-io/login-layout-fixes-2
Login layout fixes 2
2023-08-03 18:38:29 +03:00
Johannes Zellner d93a58d892 Do not show OAuth2 in auth method dropdown as it has its own button 2023-08-03 17:17:08 +02:00
Johannes Zellner 99d9291a28 Never show the login form OR separator
So many states for with password enabled/disabled treated async
separately. Might be easier to bring back once password login is treated
like saml/ldap/... while still using the very same form elements
regardless
2023-08-03 17:00:34 +02:00
Johannes Zellner bda166ba50 Ensure we subscribe to currentSettings in login view 2023-08-03 16:53:23 +02:00
Johannes Zellner f190a102f9 formAuthenticationMethods is an array
part of #5051
2023-08-03 16:41:27 +02:00
Lauri Ojansivu d0ba89d913 Updated translations. 2023-08-03 12:53:38 +02:00
Lauri Ojansivu cb4f3c8895 Updated ChangeLog. 2023-08-03 12:50:44 +02:00
Lauri Ojansivu fd003f4402 Merge pull request #5055 from Pandetthe/master
Fix edit_swimlane
2023-08-03 13:46:27 +03:00
Jakub Jurczyk 3a22d4efdc Fix edit_swimlane 2023-08-03 12:44:22 +02:00
Lauri Ojansivu 48c763dbe3 v7.03 2023-08-02 20:27:39 +03:00
Lauri Ojansivu 10a9aef974 Updated translations. 2023-08-02 20:24:03 +03:00
Lauri Ojansivu eecb143977 Updated ChangeLog. 2023-08-02 20:22:33 +03:00
Lauri Ojansivu 767bbc5195 Merge pull request #5049 from cloudron-io/displayAuthenticationMethod-only-refers-to-select
Move authentication UI handling in correct place
2023-08-02 20:13:39 +03:00
Johannes Zellner b107fb0017 Move authentication UI handling in correct place
The connectionMethod component only deals with the authentication method
select input.

Fixes #5048
2023-08-02 18:36:15 +02:00
Lauri Ojansivu a94cc5351f Merge pull request #5047 from Pandetthe/master
Fix return value of edit_custom_field_dropdown_item
2023-08-02 15:26:45 +03:00
Jakub Jurczyk 7865368153 Fix return value of edit_custom_field_dropdown_item 2023-08-02 14:11:47 +02:00
Lauri Ojansivu 1be3a5c918 v7.02 2023-08-02 07:35:51 +03:00
Lauri Ojansivu 10d90046b9 Updated dependencies. 2023-08-02 07:16:41 +03:00
Lauri Ojansivu 16eb499806 Updated translations. 2023-08-02 07:07:50 +03:00
Lauri Ojansivu ef39dfc051 Updated ChangeLog. 2023-08-02 07:04:25 +03:00
Lauri Ojansivu 9f6e6bdc81 Upgrade to Node.js 14.21.4 at build scripts and remaining Docker containers.
Thanks to Meteor and xet7 !
2023-08-02 06:58:45 +03:00
Lauri Ojansivu a60102f6c6 Updated ChangeLog. 2023-08-02 06:10:43 +03:00
Lauri Ojansivu f0620ce880 Upgrade WeKan StackSmith to Node.js 14.21.4 .
Thanks to Meteor and xet7 !
2023-08-02 06:09:24 +03:00
Lauri Ojansivu c40b27d9ad Updated ChangeLog. 2023-08-02 06:02:25 +03:00
Lauri Ojansivu 0161f19ba7 Upgrade WeKan Snap Candidate to Node.js 14.21.4 .
Thanks to Meteor and xet7 !
2023-08-02 06:01:00 +03:00
Lauri Ojansivu 4885934477 Updated translations. 2023-08-02 04:05:39 +03:00
Lauri Ojansivu f7b34bc85b Updated ChangeLog. 2023-08-02 04:04:01 +03:00
Lauri Ojansivu f9ed7e1baf Merge pull request #5043 from Pandetthe/master
Fix assignees description
2023-08-01 18:45:03 +03:00
Jakub Jurczyk aca6ba5270 Fix assignees description 2023-08-01 17:30:14 +02:00
Lauri Ojansivu 31636eb0c0 Updated ChangeLog. 2023-08-01 16:49:08 +03:00
Lauri Ojansivu a773abaf2f Upgrade to MongoDB 6.0.8 in Snap Candidate.
Thanks to MongoDB developers!
2023-08-01 16:47:17 +03:00
Lauri Ojansivu 7001f8edaf Updated ChangeLog. 2023-08-01 16:45:10 +03:00
Lauri Ojansivu 7b607b2aaf Fixed v7.01.0 fresh install in listview first column small.
Thanks to intellekta and xet7 !

Fixes #5034
2023-08-01 16:42:58 +03:00
Lauri Ojansivu f3845549fe Updated translations. 2023-08-01 16:38:16 +03:00
Lauri Ojansivu d3a87beef1 Updated ChangeLog. 2023-08-01 16:27:21 +03:00
Lauri Ojansivu 62c2d59f46 Drag board made translateable.
Thanks to xet7 !
2023-08-01 16:25:41 +03:00
Lauri Ojansivu b73e65d63e Updated translations. 2023-08-01 15:30:53 +03:00
Lauri Ojansivu 0b1f906576 Updated ChangeLog. 2023-08-01 15:28:15 +03:00
Lauri Ojansivu e5423989a1 Merge pull request #5041 from cloudron-io/login-layout-code-cleanup
Login layout code cleanup
2023-08-01 15:27:03 +03:00
Lauri Ojansivu a8197a990e Updated ChangeLog. 2023-08-01 15:25:53 +03:00
Lauri Ojansivu e4ae57bf7f Merge pull request #5040 from Pandetthe/master
Fix get_board_cards_count
2023-08-01 15:23:55 +03:00
Lauri Ojansivu 6ad5ede317 Updated ChangeLog. 2023-08-01 15:22:56 +03:00
Johannes Zellner 1271409989 Avoid further UI flickering on load and show/hide OR in login screen if more than one is active
Fixes #5028
2023-08-01 12:58:38 +02:00
Johannes Zellner d17d12e719 The oidc button text is actually set in the DOM tree change later in the file 2023-08-01 12:58:38 +02:00
Johannes Zellner a5f918c670 Remove unneccary and dead code to handle case where custom logo is not set 2023-08-01 12:58:38 +02:00
Jakub Jurczyk 5d6367f404 Fix get_board_cards_count 2023-08-01 12:32:04 +02:00
Lauri Ojansivu 8dc7aa490a Update WeKan Docker to Node.js 14.21.4. Thanks to Meteor and xet7! 2023-08-01 10:36:05 +03:00
Lauri Ojansivu bf0187f2c4 Updated translations. 2023-08-01 07:00:41 +03:00
Lauri Ojansivu 6c34b75061 Updated ChangeLog. 2023-07-31 23:52:08 +03:00
Lauri Ojansivu c4fdc5987b Merge pull request #5037 from mfilser/first_registration_must_be_an_admin_user
first registration after installation must be an admin account
2023-07-31 23:44:40 +03:00
Martin Filser 70c2f0f89f first registration after installation must be an admin account 2023-07-31 21:41:00 +02:00
Lauri Ojansivu bcdad79621 Updated translations. 2023-07-31 17:27:23 +03:00
Lauri Ojansivu d9a4d7a521 Updated ChangeLog. 2023-07-31 17:21:57 +03:00
Lauri Ojansivu a50cc9fb8c Merge pull request #5032 from cloudron-io/stable-login-form
Only selectively show login elements once settings is loaded
2023-07-31 17:16:48 +03:00
Johannes Zellner ab19bbce8e Only selectively show login elements once settings is loaded
Fixes #5029
2023-07-30 13:43:03 +02:00
Lauri Ojansivu 25c8f07c62 Updated ChangeLog. 2023-07-30 02:15:19 +03:00
Lauri Ojansivu db40c94f02 Updated ChangeLog. 2023-07-30 02:10:12 +03:00
Lauri Ojansivu 871f68058e Updated dependencies. 2023-07-30 02:08:05 +03:00
Lauri Ojansivu 3f91dd23bc Updated translations. 2023-07-30 02:07:46 +03:00
Lauri Ojansivu 7baf7d2256 Don't translate width and height minimum value.
Thanks to xet7 !
2023-07-30 01:55:40 +03:00
Lauri Ojansivu 76b9ce4fe3 Merge branch 'mark-i-m-master' 2023-07-30 01:42:52 +03:00
Lauri Ojansivu a2f479f4bd Merge branch 'master' of https://github.com/mark-i-m/wekan into mark-i-m-master 2023-07-30 01:41:45 +03:00
Lauri Ojansivu fafd8a077f Updated ChangeLog. 2023-07-30 01:38:57 +03:00
Lauri Ojansivu caa8d08738 Upgrade to Meteor 2.13 and Node.js 14.21.4 .
Thanks to Meteor developers !
2023-07-30 01:36:01 +03:00
Lauri Ojansivu 13979389ca v7.01 2023-07-21 02:00:24 +03:00
Lauri Ojansivu 350a52935a Updated translations. 2023-07-21 01:56:26 +03:00
Lauri Ojansivu 945e57bb43 Updated ChangeLog. 2023-07-21 01:06:11 +03:00
Lauri Ojansivu 3c374a2891 Merge pull request #5023 from mfilser/attachment_rename_and_delete_for_non_board_admins
Attachment rename and delete works now again for non board admins
2023-07-21 01:05:17 +03:00
Lauri Ojansivu c9074bd8d9 Updated ChangeLog. 2023-07-21 01:03:56 +03:00
Martin Filser bc685c59e0 Attachment rename and delete works now again for non board admins 2023-07-20 23:44:22 +02:00
Lauri Ojansivu aa53ad38fc Merge pull request #5022 from mfilser/removing_utils_getCurrentSetting
removing Utils.getCurrentSetting() and use ReactiveCache directly
2023-07-21 00:41:37 +03:00
Martin Filser 875442f1ce removing Utils.getCurrentSetting() and use ReactiveCache directly 2023-07-20 21:11:29 +02:00
Lauri Ojansivu a8c071f04c Updated translations. 2023-07-20 21:35:44 +03:00
Lauri Ojansivu ef6c9c66af Updated ChangeLog. 2023-07-20 20:00:07 +03:00
Lauri Ojansivu 3df38447e9 Updated ChangeLog. 2023-07-20 19:55:35 +03:00
Lauri Ojansivu 338aabc02f Merge pull request #5021 from mfilser/minicard_show_assignee
Minicard didn't show the assignee
2023-07-20 19:53:59 +03:00
Martin Filser 912717ebf9 Minicard didn't show the assignee 2023-07-20 17:16:47 +02:00
Lauri Ojansivu 9f1a2ec625 Updated dependencies. 2023-07-20 14:44:52 +03:00
Lauri Ojansivu 93f0a69c53 Updated ChangeLog. 2023-07-20 14:44:26 +03:00
Lauri Ojansivu 2846522450 Merge pull request #5019 from DimDz/master
Fix for Calendar View Create Card
2023-07-20 14:34:44 +03:00
DimDz be8374d100 Update boardBody.js 2023-07-20 14:30:42 +03:00
DimDz 399f63cef6 Update boardBody.css 2023-07-20 14:28:31 +03:00
mark 4b04af9a9c popup titles 2023-06-14 14:06:53 -05:00
mark 26d2efdedb make swimlane height adjustable 2023-06-13 13:43:09 -05:00
mark 0ec9c4c37b min working example with listWidth 2023-06-13 12:54:18 -05:00
mark f2e4a280d7 add listWidths to user profile 2023-06-12 22:14:06 -05:00
197 changed files with 4292 additions and 928 deletions

No files matched your search

+10 -6
View File
@@ -10,8 +10,8 @@ ENV DEBIAN_FRONTEND=noninteractive
ENV \
DEBUG=false \
NODE_VERSION=v14.21.3 \
METEOR_RELEASE=1.10.2 \
NODE_VERSION=v14.21.4 \
METEOR_RELEASE=METEOR@2.13 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
NPM_VERSION=latest \
@@ -162,14 +162,18 @@ RUN set -o xtrace \
&& apt-get install --assume-yes --no-install-recommends apt-utils apt-transport-https ca-certificates 2>&1 \
&& apt-get install --assume-yes --no-install-recommends ${BUILD_DEPS}
# OLD:
# && curl -fsSLO --compressed "https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION-$ARCHITECTURE.tar.xz" \
# && curl -fsSLO --compressed "https://nodejs.org/dist/$NODE_VERSION/SHASUMS256.txt.asc" \
# Install NodeJS
RUN set -o xtrace \
&& cd /tmp \
&& curl -fsSLO --compressed "https://nodejs.org/dist/$NODE_VERSION/node-$NODE_VERSION-$ARCHITECTURE.tar.xz" \
&& curl -fsSLO --compressed "https://nodejs.org/dist/$NODE_VERSION/SHASUMS256.txt.asc" \
&& grep " node-$NODE_VERSION-$ARCHITECTURE.tar.xz\$" SHASUMS256.txt.asc | sha256sum -c - \
&& curl -fsSLO --compressed "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.xz" \
&& curl -fsSLO --compressed "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/SHASUMS256.txt" \
&& grep " node-$NODE_VERSION-$ARCHITECTURE.tar.xz\$" SHASUMS256.txt | sha256sum -c - \
&& tar -xJf "node-$NODE_VERSION-$ARCHITECTURE.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
&& rm "node-$NODE_VERSION-$ARCHITECTURE.tar.xz" SHASUMS256.txt.asc \
&& rm "node-$NODE_VERSION-$ARCHITECTURE.tar.xz" SHASUMS256.txt \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs \
&& mkdir -p /usr/local/lib/node_modules/fibers/.node-gyp /root/.node-gyp/${NODE_VERSION} /home/wekan/.config \
&& npm install -g npm@${NPM_VERSION} \
+2 -1
View File
@@ -21,7 +21,7 @@ cottz:publish-relations
dburles:collection-helpers
idmontie:migrations
easy:search
mongo@1.16.6
mongo@1.16.7
mquandalle:collection-mutations
# Account system
@@ -173,3 +173,4 @@ minifier-css@1.6.4
blaze
kadira:blaze-layout
peerlibrary:blaze-components
ejson
+1 -1
View File
@@ -1 +1 @@
METEOR@2.12
METEOR@2.13
+3 -3
View File
@@ -48,7 +48,7 @@ ddp@1.4.1
ddp-client@2.6.1
ddp-common@1.4.0
ddp-rate-limiter@1.2.0
ddp-server@2.6.1
ddp-server@2.6.2
deps@1.0.12
diff-sequence@1.1.2
dynamic-import@0.7.3
@@ -83,7 +83,7 @@ localstorage@1.2.0
logging@1.3.2
matb33:collection-hooks@1.2.2
mdg:validation-error@0.5.1
meteor@1.11.2
meteor@1.11.3
meteor-autosize@5.0.1
meteor-base@1.5.1
meteorhacks:aggregate@1.3.0
@@ -101,7 +101,7 @@ modern-browsers@0.1.9
modules@0.19.0
modules-runtime@0.13.1
momentjs:moment@2.29.3
mongo@1.16.6
mongo@1.16.7
mongo-decimal@0.1.3
mongo-dev-server@1.1.0
mongo-id@1.0.8
+205
View File
@@ -1,5 +1,7 @@
[Mac ChangeLog](https://github.com/wekan/wekan/wiki/Mac)
Newest Node.js is at https://github.com/wekan/node-v14-esm/releases/tag/v14.21.4
Required versions of Node.js, MongoDB etc are listed at https://wekan.github.io
Download section.
@@ -18,6 +20,207 @@ Note:
[How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585)
# v7.09 2023-08-21 WeKan ® release
This release adds the following new features:
- [Move card to other boards API](https://github.com/wekan/wekan/pull/5090).
Thanks to DimDz.
and adds the following updates:
- [Upgraded Snap Candidate MongoDB to 6.0.9](https://github.com/wekan/wekan/commit/9d5af24e7b656c2bf6ad32bc8360bb80374408d6).
Thanks to MongoDB developers.
- Fixed building s390x release.
[Part 1](https://github.com/wekan/wekan/commit/73f943f89a89374a83cdfb31f0bfbfdfe4d6f52e),
[Part 2](https://github.com/wekan/wekan/commit/7dfb1eb6ce00166a6263f98b9bf975b8a84d1143).
Thanks to xet7.
- [ReactiveCache, use default parameters](https://github.com/wekan/wekan/pull/5091).
Thanks to mfilser.
- [ReactiveCache, serialize and parse json with EJSON](https://github.com/wekan/wekan/pull/5092).
Thanks to mfilser.
- [Translations are working on the client side again](https://github.com/wekan/wekan/pull/5093).
Thanks to mfilser.
- [ReactiveCache, full implementation of the collection "Translation"](https://github.com/wekan/wekan/pull/5094).
Thanks to mfilser.
- [Attachments, big images are now fully displayed](https://github.com/wekan/wekan/pull/5095).
Thanks to mfilser.
Thanks to above GitHub users for their contributions and translators for their translations.
# v7.08 2023-08-17 WeKan ® release
This release adds the following new features:
- [Custom translation strings at Admin Panel](https://github.com/wekan/wekan/pull/5085).
Thanks to ipyramiddev.
- [Added remaining translations to feature custom translation strings at Admin Panel](https://github.com/wekan/wekan/commit/c769bed7dd6d61b5f56e0ec5d43c9f2662a156d2).
Thanks to xet7.
- [Corrected source code so that it works correctly with reactiveCache](https://github.com/wekan/wekan/pull/5087).
Thanks to ipyramiddev.
and adds the following updates:
- Updated release scripts.
[Part 1](https://github.com/wekan/wekan/commit/558d406148eb47c27de9828b541f6081ceac224a),
[Part 2](https://github.com/wekan/wekan/commit/d6b960f79a5cb9db83587fae7d9c83d2ee63d90c),
[Part 3](https://github.com/wekan/wekan/commit/c570e426a1e6c4055a72a8ae6febce016c3eef5a),
[Part 4](https://github.com/wekan/wekan/commit/c47d5ca64e8c9c8a977d7dca5aeb92afb2e62fe5),
[Part 5](https://github.com/wekan/wekan/commit/7b94188f64e554be11bee244892a0cd9fefd0a9a),
[Part 6](https://github.com/wekan/wekan/commit/b068d07ce56add0fbd02a4a23fcb14d77bd9fcfd).
Thanks to xet7.
and fixes the following bugs:
- [Fix broken attachment preview in Safari](https://github.com/wekan/wekan/pull/5088).
Thanks to VidVidex.
Thanks to above GitHub users for their contributions and translators for their translations.
# v7.07 2023-08-16 WeKan ® release
This release adds the following updates:
- [Update Windows bundle build script](https://github.com/wekan/wekan/commit/d48068f63c93fc5a9f8041acb220d6491b5e22ae).
Thanks to xet7.
and fixes the following bugs:
- [Fix downloading attachments with unusual filenames](https://github.com/wekan/wekan/pull/5083).
Thanks to VidVidex.
- [Add some filename, if there is no filename after sanitize](https://github.com/wekan/wekan/commit/3d1a161c59a0cb4eafb50ab2fdb04443d54b2086).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v7.06 2023-08-15 WeKan ® release
This release adds the following updates:
- [Updated exceljs and jszip](https://github.com/wekan/wekan/commit/f9823f67bd7ded44982298b15487f945e8216b60).
Thanks to developers of dependencies.
- [Update building Windows bundle](https://github.com/wekan/wekan/commit/6d1705af344a36e1cd7846c3d41e486ae0200e2e).
Thanks to xet7.
- [s390x disabled, because there is problem adding fibers](https://github.com/wekan/wekan/commit/9bf3b960a199ec8d65faab3061947d809144ebdc).
Thanks to xet7.
and fixes the following bugs:
- [Alphabetic ordered member lists on assigne and member lists](https://github.com/wekan/wekan/pull/5071).
Thanks to chrisi51.
- [Label drag/drop (reorder labels) works now again](https://github.com/wekan/wekan/pull/5075).
Thanks to mfilser.
- [Add attachment swiping](https://github.com/wekan/wekan/pull/5080).
Thanks to VidVidex.
Thanks to above GitHub users for their contributions and translators for their translations.
# v7.05 2023-08-08 WeKan ® release
This release adds the following updates:
- [Updated dependencies](https://github.com/wekan/wekan/commit/529a43fa0e47ff478dd6b2e6f1c7b4513fe0bbbb).
Thanks to developers of dependencies.
and fixes the following bugs:
- [Make default swimlane auto-height](https://github.com/wekan/wekan/pull/5059).
Thanks to mark-i-m.
- [Show option b) -1 for disabling swimlane height at swimlane height popup](https://github.com/wekan/wekan/commit/ab4073721151e1308b2e9ffd32a1ee765c7b7668).
Thanks to xet7.
- [Fixed Normal (non-admin) board users cannot adjust swimlane height](https://github.com/wekan/wekan/commit/6b1403984f3b11700f6b06b4eff64a062916381a).
Thanks to mgdbbrt and xet7.
- [Fixing positioning of opened cards](https://github.com/wekan/wekan/pull/5066).
Thanks to chrisi51.
- [Cleaner memberlist popups](https://github.com/wekan/wekan/issues/5068).
Thanks to chrisi51.
Thanks to above GitHub users for their contributions and translators for their translations.
# v7.04 2023-08-03 WeKan ® release
This release fixes the following bugs:
- [Fix edit_swimlane](https://github.com/wekan/wekan/pull/5055).
Thanks to Pandetthe.
. [Login layout fixes 2](https://github.com/wekan/wekan/pull/5056).
Thanks to nebulade.
- [Do not open preview for attachments that cannot be previewed](https://github.com/wekan/wekan/pull/5058).
Thanks to VidVidex.
Thanks to above GitHub users for their contributions and translators for their translations.
# v7.03 2023-08-02 WeKan ® release
This release fixes the following bugs:
- [Fix return value of edit_custom_field_dropdown_item](https://github.com/wekan/wekan/pull/5047).
Thanks to Pandetthe.
- [Move authentication UI handling in correct place](https://github.com/wekan/wekan/pull/5049).
Thanks to nebulade.
Thanks to above GitHub users for their contributions and translators for their translations.
# v7.02 2023-08-02 WeKan ® release
This release adds the following new features:
- [Make swimlane height and list width adjustable](https://github.com/wekan/wekan/pull/4964).
Thanks to mark-i-m.
- [Don't translate swimlane height and list width minimum value](https://github.com/wekan/wekan/commit/7baf7d2256b87f66aa31ee282e08ebbd4564202d).
Thanks to xet7.
and adds the following updates:
- [Upgrade to Meteor 2.13 and Node.js 14.21.4](https://github.com/wekan/wekan/commit/caa8d087389b3f212c5eb4b7f538f3ad7c8c1227).
Thanks to Meteor developers.
- [Upgrade WeKan Docker to Node.js 14.21.4](https://github.com/wekan/wekan/commit/8dc7aa490a456cbf3207d266470febe69c0d5b6a).
Thanks to Meteor and xet7.
- [Upgrade to MongoDB 6.0.8 in Snap Candidate](https://github.com/wekan/wekan/commit/a773abaf2f4c77cbf586e2b0cba7b9ce412527ef).
Thanks to MongoDB developers.
- [Upgrade WeKan Snap Candidate to Node.js 14.21.4](https://github.com/wekan/wekan/commit/0161f19ba7ac63c40933bb4550f5397ddecd3452).
Thanks to Meteor and xet7.
- [Upgrade WeKan StackSmith to Node.js 14.21.4](https://github.com/wekan/wekan/commit/f0620ce8800eccff4da822048f90ee4812560937).
Thanks to Meteor and xet7.
- [Upgrade to Node.js 14.21.4 at build scripts and remaining Docker containers](https://github.com/wekan/wekan/commit/9f6e6bdc8193d86387166468578a6a24811ca9ec).
Thanks to Meteor and xet7.
and fixes the following bugs:
- [Only selectively show login elements once settings is loaded](https://github.com/wekan/wekan/pull/5032).
Thanks to nebulade.
- [First registration after installation must be an admin account](https://github.com/wekan/wekan/pull/5037).
Thanks to mfilser.
- [Fix get_board_cards_count](https://github.com/wekan/wekan/pull/5040).
Thanks to Pandetthe.
- [Login layout code cleanup](https://github.com/wekan/wekan/pull/5041).
Thanks to nebulade.
- [Drag board made translateable](https://github.com/wekan/wekan/commit/62c2d59f469a3e4d11df010ed65561defdda991f).
Thanks to xet7.
- [Fixed v7.01.0 fresh install in listview first column small](https://github.com/wekan/wekan/commit/7b607b2aaf852b550d968c2f1ec17f53fb5d686e).
Thanks to intellekta and xet7.
- [Fix assignees description](https://github.com/wekan/wekan/pull/5043).
Thanks to Pandetthe.
Thanks to above GitHub users for their contributions and translators for their translations.
# v7.01 2023-07-21 WeKan ® release
This release fixes the following bugs:
- [Fix for Calendar View Create Card](https://github.com/wekan/wekan/pull/5019).
Thanks to DimDz.
- [Minicard didn't show the assignee](https://github.com/wekan/wekan/pull/5021).
Thanks to mfilser.
- [Helm Chart: Add imagePullPolicy to initContainer. Needed for running wekan when restarting while offline](https://github.com/wekan/charts/pull/21).
Thanks to jadams.
- [Removing Utils.getCurrentSetting() and use ReactiveCache directly](https://github.com/wekan/wekan/pull/5022).
Thanks to mfilser.
- [Attachment rename and delete works now again for non board admins](https://github.com/wekan/wekan/pull/5023).
Thanks to mfilser.
Thanks to above GitHub users for their contributions and translators for their translations.
# v7.00 2023-07-19 WeKan ® release
This release adds the following new features:
@@ -52,6 +255,8 @@ This release fixes the following bugs:
- [Fix card creation. Now date fields are checked if they are empty](https://github.com/wekan/wekan/pull/5009).
Thanks to helioguardabaxo.
- [Helm Chart: Changes for Openshift](https://github.com/wekan/charts/pull/20).
Thanks to salleman33.
Thanks to above GitHub users for their contributions and translators for their translations.
+10 -6
View File
@@ -21,8 +21,8 @@ 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=v14.21.3 \
METEOR_RELEASE=METEOR@2.12-beta.2 \
NODE_VERSION=v14.21.4 \
METEOR_RELEASE=METEOR@2.13 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
NPM_VERSION=latest \
@@ -185,13 +185,17 @@ RUN \
ln -sf $(which bsdtar) $(which tar) && \
\
# Download nodejs
wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
wget https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt.asc && \
wget https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
wget https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/SHASUMS256.txt && \
#wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
#wget https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt.asc && \
#---------------------------------------------------------------------------------------------
\
# Verify nodejs authenticity
grep ${NODE_VERSION}-${ARCHITECTURE}.tar.gz SHASUMS256.txt.asc | shasum -a 256 -c - && \
rm -f SHASUMS256.txt.asc && \
grep node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz SHASUMS256.txt | shasum -a 256 -c - && \
rm -f SHASUMS256.txt && \
#grep ${NODE_VERSION}-${ARCHITECTURE}.tar.gz SHASUMS256.txt.asc | shasum -a 256 -c - && \
#rm -f SHASUMS256.txt.asc && \
\
# Install Node
tar xvzf node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz && \
+5 -3
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=v14.21.3 \
NODE_VERSION=v14.21.4 \
WEKAN_VERSION=latest \
WEKAN_ARCHITECTURE=arm64 \
NODE_OPTIONS="--max_old_space_size=4096"
@@ -33,8 +33,10 @@ RUN apk update && apk add ca-certificates outils-sha1 && \
unzip wekan-${WEKAN_VERSION}-${WEKAN_ARCHITECTURE}.zip && \
\
# Download node and shasums
wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz && \
wget https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt.asc && \
#wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz && \
#wget https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt.asc && \
#wget https://nodejs.org/dist/${NODE_VERSION}/node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz && \
#wget https://nodejs.org/dist/${NODE_VERSION}/SHASUMS256.txt.asc && \
\
# Verify nodejs authenticity
grep node-${NODE_VERSION}-${NODE_ARCHITECTURE}.tar.gz SHASUMS256.txt.asc | sha256sum -c - && \
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v7.00.0"
appVersion: "v7.09.0"
files:
userUploads:
- README.md
+20 -1
View File
@@ -19,6 +19,7 @@
.board-wrapper .board-canvas.is-sibling-sidebar-open {
margin-right: 248px;
}
.board-wrapper .board-canvas.overlayed {overflow:hidden}
.board-wrapper .board-canvas .board-overlay {
position: fixed;
left: 0;
@@ -168,11 +169,28 @@
color: #fff !important;
}
/* Modal Styles */
.modal {
display: none;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 9999;
background-color: rgba(0, 0, 0, 0.5);
width: 100%;
height: 100%;
}
.modal-dialog {
display: flex;
justify-content: center;
align-items: center;
height: 70%;
height: 25%; /* Adjust the height to make it smaller */
position: relative;
margin: 10% auto; /* This margin will help center the modal vertically */
max-width: 400px; /* Adjust the max-width to make it smaller */
background-color: #fff;
border-radius: 5px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}
.modal-header {
display: flex;
@@ -203,4 +221,5 @@
top: 5px;
right: 5px;
font-size: 25px;
cursor: pointer;
}
+2 -1
View File
@@ -21,7 +21,8 @@ template(name="boardBody")
.board-canvas.js-swimlanes(
class="{{#if Sidebar.isOpen}}is-sibling-sidebar-open{{/if}}"
class="{{#if MultiSelection.isActive}}is-multiselection-active{{/if}}"
class="{{#if draggingActive.get}}is-dragging-active{{/if}}")
class="{{#if draggingActive.get}}is-dragging-active{{/if}}"
class="{{#if showOverlay.get}}overlayed{{/if}}")
if showOverlay.get
.board-overlay
if currentBoard.isTemplatesBoard
+38 -26
View File
@@ -417,35 +417,37 @@ BlazeComponent.extendComponent({
revertFunc();
}
},
select: function(startDate) {
select: function (startDate) {
const currentBoard = Utils.getCurrentBoard();
const currentUser = ReactiveCache.getCurrentUser();
const $modal = $(`
<div class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog justify-content-center align-items-center" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">${TAPi18n.__('r-create-card')}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body text-center">
<input type="text" class="form-control" id="card-title-input" placeholder="">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="create-card-button">${TAPi18n.__('add-card')}</button>
</div>
</div>
const modalElement = document.createElement('div');
modalElement.classList.add('modal', 'fade');
modalElement.setAttribute('tabindex', '-1');
modalElement.setAttribute('role', 'dialog');
modalElement.innerHTML = `
<div class="modal-dialog justify-content-center align-items-center" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">${TAPi18n.__('r-create-card')}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body text-center">
<input type="text" class="form-control" id="card-title-input" placeholder="">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="create-card-button">${TAPi18n.__('add-card')}</button>
</div>
</div>
`);
$modal.modal('show');
$modal.find('#create-card-button').click(function() {
const myTitle = $modal.find('#card-title-input').val();
</div>
`;
const createCardButton = modalElement.querySelector('#create-card-button');
createCardButton.addEventListener('click', function () {
const myTitle = modalElement.querySelector('#card-title-input').value;
if (myTitle) {
const firstList = currentBoard.draggableLists().fetch()[0];
const firstSwimlane = currentBoard.swimlanes().fetch()[0];
const firstList = currentBoard.draggableLists()[0];
const firstSwimlane = currentBoard.swimlanes()[0];
Meteor.call('createCardWithDueDate', currentBoard._id, firstList._id, myTitle, startDate.toDate(), firstSwimlane._id, function(error, result) {
if (error) {
console.log(error);
@@ -453,10 +455,20 @@ BlazeComponent.extendComponent({
console.log("Card Created", result);
}
});
$modal.modal('hide');
closeModal();
}
});
},
document.body.appendChild(modalElement);
const openModal = function() {
modalElement.style.display = 'flex';
};
const closeModal = function() {
modalElement.style.display = 'none';
};
const closeButton = modalElement.querySelector('[data-dismiss="modal"]');
closeButton.addEventListener('click', closeModal);
openModal();
}
};
},
isViewCalendar() {
+2 -2
View File
@@ -65,7 +65,7 @@ template(name="boardList")
if isTouchScreenOrShowDesktopDragHandles
i.fa.board-handle(
class="fa-arrows"
title="{{_ 'Drag board'}}")
title="{{_ 'drag-board'}}")
else
if isSandstorm
i.fa.js-clone-board(
@@ -119,7 +119,7 @@ template(name="boardList")
if isTouchScreenOrShowDesktopDragHandles
i.fa.board-handle(
class="fa-arrows"
title="{{_ 'Drag board'}}")
title="{{_ 'drag-board'}}")
else
if isSandstorm
i.fa.js-clone-board(
+1
View File
@@ -121,6 +121,7 @@
repeating-conic-gradient(#808080 0% 25%, transparent 0% 50%)
50% / 20px 20px; /* Checkerboard background for transparent images */
max-width: 100%;
max-height: 100%;
}
#pdf-viewer {
width: 40vw;
+4 -5
View File
@@ -87,14 +87,13 @@ template(name="attachmentGallery")
.attachment-actions
a.js-download(href="{{link}}?download=true", download="{{name}}")
i.fa.fa-download.icon(title="{{_ 'download'}}")
if currentUser.isBoardAdmin
a.js-rename
i.fa.fa-pencil-square-o.icon(title="{{_ 'rename'}}")
a.js-confirm-delete
i.fa.fa-trash.icon(title="{{_ 'delete'}}")
if currentUser.isBoardMember
unless currentUser.isCommentOnly
unless currentUser.isWorker
a.js-rename
i.fa.fa-pencil-square-o.icon(title="{{_ 'rename'}}")
a.js-confirm-delete
i.fa.fa-trash.icon(title="{{_ 'delete'}}")
a.fa.fa-navicon.icon.js-open-attachment-menu(data-attachment-link="{{link}}" title="{{_ 'attachmentActionsPopup-title'}}")
+168 -64
View File
@@ -11,6 +11,9 @@ const prettyMilliseconds = require('pretty-ms');
let cardId = null;
let openAttachmentId = null;
// Used to store the start and end coordinates of a touch event for attachment swiping
let touchStartCoords = null;
let touchEndCoords = null;
// Stores link to the attachment for which attachment actions popup was opened
attachmentActionsLink = null;
@@ -35,24 +38,24 @@ Template.attachmentGallery.events({
},
'click .js-rename': Popup.open('attachmentRename'),
'click .js-confirm-delete': Popup.afterConfirm('attachmentDelete', function() {
Attachments.remove(this._id);
Popup.back(2);
Attachments.remove(this._id);
Popup.back(2);
}),
});
function getNextAttachmentId(currentAttachmentId) {
function getNextAttachmentId(currentAttachmentId, offset = 0) {
const attachments = ReactiveCache.getAttachments({'meta.cardId': cardId});
let i = 0;
for (; i < attachments.length; i++) {
if (attachments[i]._id === currentAttachmentId) {
break;
}
let i = 0;
for (; i < attachments.length; i++) {
if (attachments[i]._id === currentAttachmentId) {
break;
}
return attachments[(i + 1 + attachments.length) % attachments.length]._id;
}
return attachments[(i + offset + 1 + attachments.length) % attachments.length]._id;
}
function getPrevAttachmentId(currentAttachmentId) {
function getPrevAttachmentId(currentAttachmentId, offset = 0) {
const attachments = ReactiveCache.getAttachments({'meta.cardId': cardId});
let i = 0;
@@ -61,52 +64,70 @@ function getPrevAttachmentId(currentAttachmentId) {
break;
}
}
return attachments[(i - 1 + attachments.length) % attachments.length]._id;
return attachments[(i + offset - 1 + attachments.length) % attachments.length]._id;
}
function openAttachmentViewer(attachmentId){
function attachmentCanBeOpened(attachment) {
return (
attachment.isImage ||
attachment.isPDF ||
attachment.isText ||
attachment.isJSON ||
attachment.isVideo ||
attachment.isAudio
);
}
const attachment = ReactiveCache.getAttachment(attachmentId);
function openAttachmentViewer(attachmentId) {
const attachment = ReactiveCache.getAttachment(attachmentId);
$("#attachment-name").text(attachment.name);
// Check if we can open the attachment (if we have a viewer for it) and exit if not
if (!attachmentCanBeOpened(attachment)) {
return;
}
// IMPORTANT: if you ever add a new viewer, make sure you also implement
// cleanup in the closeAttachmentViewer() function
switch(true){
case (attachment.isImage):
$("#image-viewer").attr("src", attachment.link());
$("#image-viewer").removeClass("hidden");
break;
case (attachment.isPDF):
$("#pdf-viewer").attr("data", attachment.link());
$("#pdf-viewer").removeClass("hidden");
break;
case (attachment.isVideo):
// We have to create a new <source> DOM element and append it to the video
// element, otherwise the video won't load
let videoSource = document.createElement('source');
videoSource.setAttribute('src', attachment.link());
$("#video-viewer").append(videoSource);
/*
Instructions for adding a new viewer:
- add a new case to the switch statement below
- implement cleanup in the closeAttachmentViewer() function, if necessary
- mark attachment type as openable by adding a new condition to the attachmentCanBeOpened function
*/
switch(true){
case (attachment.isImage):
$("#image-viewer").attr("src", attachment.link());
$("#image-viewer").removeClass("hidden");
break;
case (attachment.isPDF):
$("#pdf-viewer").attr("data", attachment.link());
$("#pdf-viewer").removeClass("hidden");
break;
case (attachment.isVideo):
// We have to create a new <source> DOM element and append it to the video
// element, otherwise the video won't load
let videoSource = document.createElement('source');
videoSource.setAttribute('src', attachment.link());
$("#video-viewer").append(videoSource);
$("#video-viewer").removeClass("hidden");
break;
case (attachment.isAudio):
// We have to create a new <source> DOM element and append it to the audio
// element, otherwise the audio won't load
let audioSource = document.createElement('source');
audioSource.setAttribute('src', attachment.link());
$("#audio-viewer").append(audioSource);
$("#video-viewer").removeClass("hidden");
break;
case (attachment.isAudio):
// We have to create a new <source> DOM element and append it to the audio
// element, otherwise the audio won't load
let audioSource = document.createElement('source');
audioSource.setAttribute('src', attachment.link());
$("#audio-viewer").append(audioSource);
$("#audio-viewer").removeClass("hidden");
break;
case (attachment.isText):
case (attachment.isJSON):
$("#txt-viewer").attr("data", attachment.link());
$("#txt-viewer").removeClass("hidden");
break;
}
$("#audio-viewer").removeClass("hidden");
break;
case (attachment.isText):
case (attachment.isJSON):
$("#txt-viewer").attr("data", attachment.link());
$("#txt-viewer").removeClass("hidden");
break;
}
$("#viewer-overlay").removeClass("hidden");
$('#attachment-name').text(attachment.name);
$('#viewer-overlay').removeClass('hidden');
}
function closeAttachmentViewer() {
@@ -133,36 +154,109 @@ function closeAttachmentViewer() {
$("#audio-viewer").addClass("hidden");
}
function openNextAttachment() {
closeAttachmentViewer();
let i = 0;
// Find an attachment that can be opened
while (true) {
const id = getNextAttachmentId(openAttachmentId, i);
const attachment = ReactiveCache.getAttachment(id);
if (attachmentCanBeOpened(attachment)) {
openAttachmentId = id;
openAttachmentViewer(id);
break;
}
i++;
}
}
function openPrevAttachment() {
closeAttachmentViewer();
let i = 0;
// Find an attachment that can be opened
while (true) {
const id = getPrevAttachmentId(openAttachmentId, i);
const attachment = ReactiveCache.getAttachment(id);
if (attachmentCanBeOpened(attachment)) {
openAttachmentId = id;
openAttachmentViewer(id);
break;
}
i--;
}
}
function processTouch(){
xDist = touchEndCoords.x - touchStartCoords.x;
yDist = touchEndCoords.y - touchStartCoords.y;
console.log("xDist: " + xDist);
// Left swipe
if (Math.abs(xDist) > Math.abs(yDist) && xDist < 0) {
openNextAttachment();
}
// Right swipe
if (Math.abs(xDist) > Math.abs(yDist) && xDist > 0) {
openPrevAttachment();
}
// Up swipe
if (Math.abs(yDist) > Math.abs(xDist) && yDist < 0) {
closeAttachmentViewer();
}
}
Template.attachmentViewer.events({
'touchstart #viewer-container'(event) {
console.log("touchstart")
touchStartCoords = {
x: event.changedTouches[0].screenX,
y: event.changedTouches[0].screenY
}
},
'touchend #viewer-container'(event) {
console.log("touchend")
touchEndCoords = {
x: event.changedTouches[0].screenX,
y: event.changedTouches[0].screenY
}
processTouch();
},
'click #viewer-container'(event) {
// Make sure the click was on #viewer-container and not on any of its children
if(event.target !== event.currentTarget) return;
if(event.target !== event.currentTarget) {
event.stopPropagation();
return;
}
closeAttachmentViewer();
},
'click #viewer-content'(event) {
// Make sure the click was on #viewer-content and not on any of its children
if(event.target !== event.currentTarget) return;
if(event.target !== event.currentTarget) {
event.stopPropagation();
return;
}
closeAttachmentViewer();
},
'click #viewer-close'() {
closeAttachmentViewer();
},
'click #next-attachment'(event) {
closeAttachmentViewer()
const id = getNextAttachmentId(openAttachmentId);
openAttachmentId = id;
openAttachmentViewer(id);
'click #next-attachment'() {
openNextAttachment();
},
'click #prev-attachment'() {
openPrevAttachment();
},
'click #prev-attachment'(event) {
closeAttachmentViewer()
const id = getPrevAttachmentId(openAttachmentId);
openAttachmentId = id;
openAttachmentViewer(id);
}
});
Template.attachmentGallery.helpers({
@@ -204,13 +298,23 @@ Template.cardAttachmentsPopup.events({
let uploads = [];
for (const file of files) {
const fileId = new ObjectID().toString();
// If filename is not same as sanitized filename, has XSS, then cancel upload
if (file.name !== DOMPurify.sanitize(file.name)) {
return false;
let fileName = DOMPurify.sanitize(file.name);
// If sanitized filename is not same as original filename,
// it could be XSS that is already fixed with sanitize,
// or just normal mistake, so it is not a problem.
// That is why here is no warning.
if (fileName !== file.name) {
// If filename is empty, only in that case add some filename
if (fileName.length === 0) {
fileName = 'Empty-filename-after-sanitize.txt';
}
}
const config = {
file: file,
fileId: fileId,
fileName: fileName,
meta: Utils.getCommonAttachmentMetaFrom(card),
chunkSize: 'dynamic',
};
+2 -7
View File
@@ -245,10 +245,10 @@
padding-top: 10px;
}
@media screen and (min-width: 801px) {
.card-details {
.card-details-maximized {
top: 97px;
left: 0;
width: 600px;
right:0;
bottom: 0;
position: fixed;
resize: both;
@@ -267,11 +267,6 @@
box-shadow: 0 0 7px 0 #b3b3b3;
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-maximized .card-details-left {
+3 -1
View File
@@ -2,6 +2,9 @@ template(name="cardDetailsPopup")
+cardDetails(popupCard)
template(name="cardDetails")
+attachmentViewer
section.card-details.js-card-details(class='{{#if cardMaximized}}card-details-maximized{{/if}}' class='{{#if isPopup}}card-details-popup{{/if}}'): .card-details-canvas
.card-details-header(class='{{#if colorClass}}card-details-{{colorClass}}{{/if}}')
+inlinedForm(classNames="js-card-details-title")
@@ -562,7 +565,6 @@ template(name="cardDetails")
br
| {{_ 'invalid-file'}}
.card-checklist-attachmentGallery.card-attachmentGallery
+attachmentViewer
+attachmentGallery
hr
+20 -10
View File
@@ -79,15 +79,19 @@ BlazeComponent.extendComponent({
scrollParentContainer() {
const cardPanelWidth = 600;
const parentComponent = this.parentComponent();
/*
// Incomplete fix about bug where opening card scrolls to wrong place
// https://github.com/wekan/wekan/issues/4572#issuecomment-1184149395
// TODO sometimes parentComponent is not available, maybe because it's not
// yet created?!
if (!parentComponent) return;
const bodyBoardComponent = parentComponent.parentComponent();
//
// uncommented again by chrisi51
// only with that, the autoscroll feature is working properly
// after my fixes, all scrollings where correct
*/
if (!parentComponent) return;
const bodyBoardComponent = parentComponent.parentComponent();
//On Mobile View Parent is Board, Not Board Body. I cant see how this funciton should work then.
if (bodyBoardComponent === null) return;
@@ -217,6 +221,12 @@ BlazeComponent.extendComponent({
//-------------
}
if (!Utils.isMiniScreen()) {
Meteor.setTimeout(() => {
this.scrollParentContainer();
}, 500);
}
const $checklistsDom = this.$('.card-checklist-items');
$checklistsDom.sortable({
@@ -442,11 +452,11 @@ BlazeComponent.extendComponent({
'click .js-maximize-card-details'() {
Meteor.call('toggleCardMaximized');
autosize($('.card-details'));
if (!Utils.isMiniScreen()) {
Meteor.setTimeout(() => {
this.scrollParentContainer();
}, 500);
}
// if (!Utils.isMiniScreen()) {
// Meteor.setTimeout(() => {
// this.scrollParentContainer();
// }, 500);
// }
},
'click .js-minimize-card-details'() {
Meteor.call('toggleCardMaximized');
@@ -742,7 +752,7 @@ Template.cardMembersPopup.events({
Template.cardMembersPopup.helpers({
members() {
return Template.instance().members.get();
return _.sortBy(Template.instance().members.get(),'fullname');
},
});
@@ -1604,7 +1614,7 @@ Template.cardAssigneesPopup.helpers({
},
members() {
return Template.instance().members.get();
return _.sortBy(Template.instance().members.get(),'fullname');
},
user() {
+2 -1
View File
@@ -52,7 +52,8 @@ BlazeComponent.extendComponent({
appendTo: '.edit-labels-pop-over',
helper(element, currentItem) {
let ret = currentItem.clone();
if (currentItem.closest('.popup-container-depth-0').size() == 0) { // only set css transform at every sub-popup, not at the main popup
if (currentItem.closest('.popup-container-depth-0').length == 0)
{ // only set css transform at every sub-popup, not at the main popup
const content = currentItem.closest('.content')[0]
const offsetLeft = content.offsetLeft;
const offsetTop = $('.pop-over > .header').height() * -1;
+1 -1
View File
@@ -73,7 +73,7 @@ BlazeComponent.extendComponent({
ret =
board.allowsAssignee === null ||
board.allowsAssignee === undefined ||
board.allowsAssigne
board.allowsAssignee
;
}
return ret;
+5 -2
View File
@@ -7,8 +7,8 @@
border-left: 1px solid #ccc;
padding: 0;
float: left;
min-width: 270px;
max-width: 270px;
min-width: 100px; /* TODO(mark-i-m): hardcoded? */
/*max-width: 270px;*/
/* Reverted incomplete change list width: */
/* https://github.com/wekan/wekan/issues/4558 */
/* Orinal width: 270px. Changes not saved yet: */
@@ -179,6 +179,9 @@
#js-wip-limit-edit div {
float: left;
}
#js-list-width-edit .list-width-error {
display: none;
}
@media screen and (max-width: 800px) {
.mini-list {
flex: 0 0 60px;
+2 -1
View File
@@ -1,5 +1,6 @@
template(name='list')
.list.js-list(id="js-list-{{_id}}")
.list.js-list(id="js-list-{{_id}}"
style="width:{{listWidth}}px;")
+listHeader
+listBody
+6
View File
@@ -194,6 +194,12 @@ BlazeComponent.extendComponent({
});
});
},
listWidth() {
const user = Meteor.user();
const list = Template.currentData();
return user.getListWidth(list.boardId, list._id);
},
}).register('list');
Template.miniList.events({
+18
View File
@@ -62,6 +62,11 @@ template(name="listActionPopup")
i.fa.fa-arrow-down
| {{_ 'add-card-to-bottom-of-list'}}
hr
ul.pop-over-list
li
a.js-set-list-width
i.fa.fa-arrows-h
| {{_ 'set-list-width'}}
ul.pop-over-list
li
a.js-toggle-watch-list
@@ -156,6 +161,19 @@ template(name="wipLimitErrorPopup")
p {{_ 'wipLimitErrorPopup-dialog-pt2'}}
button.full.js-back-view(type="submit") {{_ 'cancel'}}
template(name="setListWidthPopup")
#js-list-width-edit
label {{_ 'set-list-width-value'}}
p
input.list-width-value(type="number" value="{{ listWidthValue }}" min="100")
input.list-width-apply(type="submit" value="{{_ 'apply'}}")
input.list-width-error
template(name="listWidthErrorPopup")
.list-width-invalid
p {{_ 'list-width-error-message'}} '&gt;=100'
button.full.js-back-view(type="submit") {{_ 'cancel'}}
template(name="setListColorPopup")
form.edit-label
.palette-colors: each colors
+39
View File
@@ -153,6 +153,7 @@ Template.listActionPopup.events({
});
Popup.back();
},
'click .js-set-list-width': Popup.open('setListWidth'),
'click .js-set-color-list': Popup.open('setListColor'),
'click .js-select-cards'() {
const cardIds = this.allCards().map(card => card._id);
@@ -320,3 +321,41 @@ BlazeComponent.extendComponent({
];
},
}).register('setListColorPopup');
BlazeComponent.extendComponent({
applyListWidth() {
const list = Template.currentData();
const board = list.boardId;
const width = parseInt(
Template.instance()
.$('.list-width-value')
.val(),
10,
);
// FIXME(mark-i-m): where do we put constants?
if (width < 100 || !width) {
Template.instance()
.$('.list-width-error')
.click();
} else {
Meteor.call('applyListWidth', board, list._id, width);
Popup.back();
}
},
listWidthValue() {
const list = Template.currentData();
const board = list.boardId;
return Meteor.user().getListWidth(board, list._id);
},
events() {
return [
{
'click .list-width-apply': this.applyListWidth,
'click .list-width-error': Popup.open('listWidthError'),
},
];
},
}).register('setListWidthPopup');
+3 -3
View File
@@ -559,14 +559,14 @@ a:not(.disabled).is-active i.fa {
top: 45px;
left: 10px;
}
#isSettingDatabaseCallDone {
display: none;
}
.at-link {
color: #17683a;
text-decoration: underline;
text-decoration-color: #17683a;
}
.at-pwd-form, .at-sep, .at-oauth {
display: none;
}
@-moz-keyframes fadeIn {
from {
opacity: 0;
+3 -4
View File
@@ -34,10 +34,9 @@ template(name="userFormsLayout")
unless currentSetting.customLoginLogoLinkUrl
img(src="{{currentSetting.customLoginLogoImageUrl}}" width="300" height="auto")
br
unless currentSetting.customLoginLogoImageUrl
div#isSettingDatabaseCallDone
img(src="{{pathFor '/wekan-logo.svg'}}" alt="" width="300" height="auto")
br
else
img(src="{{pathFor '/wekan-logo.svg'}}" alt="" width="300" height="auto")
br
if currentSetting.textBelowCustomLoginLogo
+viewer
| {{currentSetting.textBelowCustomLoginLogo}}
+59 -59
View File
@@ -20,76 +20,76 @@ const validator = {
},
};
// let isSettingDatabaseFctCallDone = false;
Template.userFormsLayout.onCreated(function () {
const templateInstance = this;
templateInstance.currentSetting = new ReactiveVar();
templateInstance.isLoading = new ReactiveVar(false);
Meteor.subscribe('setting', {
onReady() {
templateInstance.currentSetting.set(ReactiveCache.getCurrentSetting());
let currSetting = templateInstance.currentSetting.curValue;
let oidcBtnElt = $("#at-oidc");
if(currSetting && currSetting !== undefined && currSetting.oidcBtnText !== undefined && oidcBtnElt != null && oidcBtnElt != undefined){
let htmlvalue = "<i class='fa fa-oidc'></i>" + currSetting.oidcBtnText;
oidcBtnElt.html(htmlvalue);
}
// isSettingDatabaseFctCallDone = true;
if (currSetting && currSetting !== undefined && currSetting.customLoginLogoImageUrl !== undefined)
document.getElementById("isSettingDatabaseCallDone").style.display = 'none';
else
document.getElementById("isSettingDatabaseCallDone").style.display = 'block';
return this.stop();
},
});
Meteor.call('isPasswordLoginDisabled', (_, result) => {
if (result) {
$('.at-pwd-form').hide();
}
});
if (!ReactiveCache.getCurrentUser()?.profile) {
Meteor.call('isOidcRedirectionEnabled', (_, result) => {
if (result) {
AccountsTemplates.options.socialLoginStyle = 'redirect';
options = {
loginStyle: AccountsTemplates.options.socialLoginStyle,
};
Meteor.loginWithOidc(options);
}
//else console.log("oidc redirect not set");
});
Meteor.call('isOidcRedirectionEnabled', (_, result) => {
if (result) {
AccountsTemplates.options.socialLoginStyle = 'redirect';
options = {
loginStyle: AccountsTemplates.options.socialLoginStyle,
};
Meteor.loginWithOidc(options);
}
});
Meteor.subscribe('setting', {
onReady() {
templateInstance.currentSetting.set(ReactiveCache.getCurrentSetting());
return this.stop();
},
});
}
Meteor.call('isDisableRegistration', (_, result) => {
if (result) {
$('.at-signup-link').hide();
}
});
Meteor.call('isDisableForgotPassword', (_, result) => {
if (result) {
$('.at-pwd-link').hide();
}
});
});
Template.userFormsLayout.onRendered(() => {
AccountsTemplates.state.form.keys = new Proxy(
AccountsTemplates.state.form.keys,
validator,
);
EscapeActions.executeAll();
Meteor.call('getAuthenticationsEnabled', (_, result) => {
let enabledAuthenticationMethods = [ 'password' ]; // we show/hide this based on isPasswordLoginEnabled
if (result) {
Object.keys(result).forEach((m) => {
if (result[m]) enabledAuthenticationMethods.push(m);
});
}
Meteor.call('isPasswordLoginEnabled', (_, result) => {
if (result) {
$('.at-pwd-form').show();
}
});
Meteor.call('isDisableRegistration', (_, result) => {
if (result) {
$('.at-signup-link').hide();
}
});
Meteor.call('isDisableForgotPassword', (_, result) => {
if (result) {
$('.at-pwd-link').hide();
}
});
if (enabledAuthenticationMethods.indexOf('oauth2') !== -1) {
// TODO find better way to run this code once the oauth2 UI is injected in the DOM
(function waitForElementAndShow() {
if (!$('.at-oauth')[0]) return setTimeout(waitForElementAndShow, 100);
$('.at-oauth').show();
})();
}
AccountsTemplates.state.form.keys = new Proxy(
AccountsTemplates.state.form.keys,
validator,
);
EscapeActions.executeAll();
});
});
Template.userFormsLayout.helpers({
// isSettingDatabaseCallDone(){
// return isSettingDatabaseFctCallDone;
// },
isLegalNoticeLinkExist() {
const currSet = Template.instance().currentSetting.get();
if (currSet && currSet !== undefined && currSet != null) {
@@ -161,7 +161,7 @@ Template.userFormsLayout.events({
},
'DOMSubtreeModified #at-oidc'(event) {
if (alreadyCheck <= 2) {
let currSetting = Utils.getCurrentSetting();
let currSetting = ReactiveCache.getCurrentSetting();
let oidcBtnElt = $("#at-oidc");
if (currSetting && currSetting !== undefined && currSetting.oidcBtnText !== undefined && oidcBtnElt != null && oidcBtnElt != undefined) {
let htmlvalue = "<i class='fa fa-oidc'></i>" + currSetting.oidcBtnText;
@@ -182,7 +182,7 @@ Template.userFormsLayout.events({
'DOMSubtreeModified .at-form'(event) {
if (alreadyCheck <= 2 && !isCheckDone) {
if (document.getElementById("at-oidc") != null) {
let currSetting = Utils.getCurrentSetting();
let currSetting = ReactiveCache.getCurrentSetting();
let oidcBtnElt = $("#at-oidc");
if (currSetting && currSetting !== undefined && currSetting.oidcBtnText !== undefined && oidcBtnElt != null && oidcBtnElt != undefined) {
let htmlvalue = "<i class='fa fa-oidc'></i>" + currSetting.oidcBtnText;
+9 -1
View File
@@ -88,7 +88,7 @@
height: 20px;
}
.pop-over .quiet {
padding: 6px 6px 4px;
/* padding: 6px 6px 4px;*/
}
.pop-over.search-over {
background: #f0f0f0;
@@ -152,6 +152,14 @@
text-decoration: none;
overflow: hidden;
line-height: 33px;
display:flex;
/* flex-wrap:wrap;*/
gap:5px;
align-items: center;
}
.pop-over-list li > a > .member{
align-self: flex-start;
flex:0 0 auto;
}
.pop-over-list li > a .item-name {
display: block;
+8 -10
View File
@@ -3,23 +3,21 @@ Template.connectionMethod.onCreated(function() {
Meteor.call('getAuthenticationsEnabled', (_, result) => {
if (result) {
// Only enabled auth methods without OAuth2/OpenID which is a separate button
const tmp = Object.keys(result).filter((k) => result[k]).filter((k) => k !== 'oauth2');
// TODO : add a management of different languages
// (ex {value: ldap, text: TAPi18n.__('ldap', {}, T9n.getLanguage() || 'en')})
this.authenticationMethods.set([
{ value: 'password' },
// Gets only the authentication methods availables
...Object.entries(result)
.filter(e => e[1])
.map(e => ({ value: e[0] })),
]);
this.authenticationMethods.set([{ value: 'password' }].concat(tmp.map((k) => { return { value: k }; })));
}
// If only the default authentication available, hides the select boxe
const content = $('.at-form-authentication');
if (!(this.authenticationMethods.get().length > 1)) {
content.hide();
} else {
if (this.authenticationMethods.get().length > 1) {
content.show();
} else {
content.hide();
}
});
});
+3 -1
View File
@@ -1,7 +1,9 @@
import { ReactiveCache } from '/imports/reactiveCache';
Template.invitationCode.onRendered(function() {
Meteor.subscribe('setting', {
onReady() {
const setting = Utils.getCurrentSetting();
const setting = ReactiveCache.getCurrentSetting();
if (!setting || !setting.disableRegistration) {
$('#invitationcode').hide();
+6 -6
View File
@@ -58,16 +58,16 @@ BlazeComponent.extendComponent({
},
toggleForgotPassword() {
this.setLoading(true);
const forgotPasswordClosed = Utils.getCurrentSetting().disableForgotPassword;
Settings.update(Utils.getCurrentSetting()._id, {
const forgotPasswordClosed = ReactiveCache.getCurrentSetting().disableForgotPassword;
Settings.update(ReactiveCache.getCurrentSetting()._id, {
$set: { disableForgotPassword: !forgotPasswordClosed },
});
this.setLoading(false);
},
toggleRegistration() {
this.setLoading(true);
const registrationClosed = Utils.getCurrentSetting().disableRegistration;
Settings.update(Utils.getCurrentSetting()._id, {
const registrationClosed = ReactiveCache.getCurrentSetting().disableRegistration;
Settings.update(ReactiveCache.getCurrentSetting()._id, {
$set: { disableRegistration: !registrationClosed },
});
this.setLoading(false);
@@ -163,7 +163,7 @@ BlazeComponent.extendComponent({
.trim();
const from = this.checkField('#mail-server-from');
const tls = $('#mail-server-tls.is-checked').length > 0;
Settings.update(Utils.getCurrentSetting()._id, {
Settings.update(ReactiveCache.getCurrentSetting()._id, {
$set: {
'mailServer.host': host,
'mailServer.port': port,
@@ -243,7 +243,7 @@ BlazeComponent.extendComponent({
const spinnerName = $('#spinnerName').val();
try {
Settings.update(Utils.getCurrentSetting()._id, {
Settings.update(ReactiveCache.getCurrentSetting()._id, {
$set: {
productName,
hideLogo: hideLogoChange,
@@ -20,6 +20,10 @@ template(name="settingHeaderBar")
i.fa(class="fa-paperclip")
span {{_ 'attachments'}}
a.setting-header-btn.informations(href="{{pathFor 'translation'}}")
i.fa(class="fa-font")
span {{_ 'translation'}}
a.setting-header-btn.informations(href="{{pathFor 'information'}}")
i.fa(class="fa-info-circle")
span {{_ 'info'}}
@@ -0,0 +1,67 @@
.main-body {
overflow: scroll;
}
table {
color: #000;
}
table td,
table th {
border: 1px solid #d2d0d0;
text-align: left;
padding: 8px;
}
table tr:nth-child(even) {
background-color: #ddd;
}
.ext-box {
display: flex;
flex-direction: row;
height: 34px;
}
.ext-box .ext-box-left {
display: flex;
width: 100%;
gap: 10px;
}
.ext-box span {
vertical-align: center;
line-height: 34px;
}
.ext-box input,
.ext-box button {
padding: 0;
}
.ext-box button {
min-width: 90px;
}
.content-wrapper {
margin-top: 10px;
}
.buttonsContainer {
display: flex;
}
.buttonsContainer input {
margin: 0;
}
.buttonsContainer div {
margin: auto;
}
.more-settings-translation {
margin-left: 10px;
}
#cancelBtn {
margin-left: 5% !important;
background: #ffa500;
color: #fff;
}
#deleteAction {
margin-left: 5% !important;
}
p.js-translation-language {
font-weight: bold;
color: #000;
}
p.js-translation-text {
font-weight: bold;
color: #000;
}
@@ -0,0 +1,105 @@
template(name="translation")
.setting-content
unless currentUser.isAdmin
| {{_ 'error-notAuthorized'}}
else
.content-title.ext-box
.ext-box-left
if loading.get
+spinner
else if translationSetting.get
span
i.fa.fa-font
unless isMiniScreen
| {{_ 'translation'}}
input#searchTranslationInput(placeholder="{{_ 'search'}}")
button#searchTranslationButton
i.fa.fa-search
| {{_ 'search'}}
.ext-box-right
span {{#unless isMiniScreen}}{{_ 'translation-number'}}{{/unless}} #{translationNumber}
.content-body
.side-menu
ul
li.active
a.js-translation-menu(data-id="translation-setting")
i.fa.fa-font
| {{_ 'translation'}}
.main-body
if loading.get
+spinner
else if translationSetting.get
+translationGeneral
template(name="translationGeneral")
table
tbody
tr
th {{_ 'language'}}
th {{_ 'text'}}
th {{_ 'translation-text'}}
th
+newTranslationRow
each translation in translationList
+translationRow(translationId=translation._id)
template(name="newTranslationRow")
a.new-translation
i.fa.fa-plus-square
| {{_ 'new'}}
template(name="translationRow")
tr
td {{translationData.language}}
td {{translationData.text}}
td {{translationData.translationText}}
td
a.edit-translation
i.fa.fa-edit
| {{_ 'edit'}}
a.more-settings-translation
i.fa.fa-ellipsis-h
template(name="editTranslationPopup")
form
label
| {{_ 'language'}}
input.js-translation-language(type="text" value=translation.language required readonly)
label
| {{_ 'text'}}
input.js-translation-text(type="text" value=translation.text required readonly)
label
| {{_ 'translation-text'}}
input.js-translation-translation-text(type="text" value=translation.translationText)
hr
div.buttonsContainer
input.primary.wide(type="submit" value="{{_ 'save'}}")
template(name="newTranslationPopup")
form
label
| {{_ 'language'}}
input.js-translation-language(type="text" value="en" required)
label
| {{_ 'text'}}
span.error.hide.text-taken
| {{_ 'error-text-taken'}}
input.js-translation-text(type="text" value="" required)
label
| {{_ 'translation-text'}}
input.js-translation-translation-text(type="text" value="")
hr
div.buttonsContainer
input.primary.wide(type="submit" value="{{_ 'save'}}")
template(name="settingsTranslationPopup")
ul.pop-over-list
li
form
label
| {{_ 'delete-translation-confirm-popup'}}
br
label.hide.orgId(type="text" value=org._id)
div.buttonsContainer
input#deleteButton.card-details-red.right.wide(type="button" value="{{_ 'delete'}}")
@@ -0,0 +1,214 @@
import { ReactiveCache } from '/imports/reactiveCache';
const translationsPerPage = 25;
BlazeComponent.extendComponent({
mixins() {
return [Mixins.InfiniteScrolling];
},
onCreated() {
this.error = new ReactiveVar('');
this.loading = new ReactiveVar(false);
this.translationSetting = new ReactiveVar(true);
this.findTranslationsOptions = new ReactiveVar({});
this.numberTranslations = new ReactiveVar(0);
this.page = new ReactiveVar(1);
this.loadNextPageLocked = false;
this.callFirstWith(null, 'resetNextPeak');
this.autorun(() => {
const limitTranslations = this.page.get() * translationsPerPage;
this.subscribe('translation', this.findTranslationsOptions.get(), 0, () => {
this.loadNextPageLocked = false;
const nextPeakBefore = this.callFirstWith(null, 'getNextPeak');
this.calculateNextPeak();
const nextPeakAfter = this.callFirstWith(null, 'getNextPeak');
if (nextPeakBefore === nextPeakAfter) {
this.callFirstWith(null, 'resetNextPeak');
}
});
});
},
events() {
return [
{
'click #searchTranslationButton'() {
this.filterTranslation();
},
'keydown #searchTranslationInput'(event) {
if (event.keyCode === 13 && !event.shiftKey) {
this.filterTranslation();
}
},
'click #newTranslationButton'() {
Popup.open('newTranslation');
},
'click a.js-translation-menu': this.switchMenu,
},
];
},
filterTranslation() {
const value = $('#searchTranslationInput').first().val();
if (value === '') {
this.findTranslationsOptions.set({});
} else {
const regex = new RegExp(value, 'i');
this.findTranslationsOptions.set({
$or: [
{ language: regex },
{ text: regex },
{ translationText: regex },
],
});
}
},
loadNextPage() {
if (this.loadNextPageLocked === false) {
this.page.set(this.page.get() + 1);
this.loadNextPageLocked = true;
}
},
calculateNextPeak() {
const element = this.find('.main-body');
if (element) {
const altitude = element.scrollHeight;
this.callFirstWith(this, 'setNextPeak', altitude);
}
},
reachNextPeak() {
this.loadNextPage();
},
setError(error) {
this.error.set(error);
},
setLoading(w) {
this.loading.set(w);
},
translationList() {
const translations = ReactiveCache.getTranslations(this.findTranslationsOptions.get(), {
sort: { modifiedAt: 1 },
fields: { _id: true },
});
this.numberTranslations.set(translations.length);
return translations;
},
translationNumber() {
return this.numberTranslations.get();
},
switchMenu(event) {
const target = $(event.target);
if (!target.hasClass('active')) {
$('.side-menu li.active').removeClass('active');
target.parent().addClass('active');
const targetID = target.data('id');
this.translationSetting.set('translation-setting' === targetID);
}
},
}).register('translation');
Template.translationRow.helpers({
translationData() {
return ReactiveCache.getTranslation(this.translationId);
},
});
Template.editTranslationPopup.helpers({
translation() {
return ReactiveCache.getTranslation(this.translationId);
},
errorMessage() {
return Template.instance().errorMessage.get();
},
});
Template.newTranslationPopup.onCreated(function () {
this.errorMessage = new ReactiveVar('');
});
Template.newTranslationPopup.helpers({
translation() {
return ReactiveCache.getTranslation(this.translationId);
},
errorMessage() {
return Template.instance().errorMessage.get();
},
});
BlazeComponent.extendComponent({
onCreated() {},
translation() {
return ReactiveCache.getTranslation(this.translationId);
},
events() {
return [
{
'click a.edit-translation': Popup.open('editTranslation'),
'click a.more-settings-translation': Popup.open('settingsTranslation'),
},
];
},
}).register('translationRow');
BlazeComponent.extendComponent({
events() {
return [
{
'click a.new-translation': Popup.open('newTranslation'),
},
];
},
}).register('newTranslationRow');
Template.editTranslationPopup.events({
submit(event, templateInstance) {
event.preventDefault();
const translation = ReactiveCache.getTranslation(this.translationId);
const translationText = templateInstance.find('.js-translation-translation-text').value.trim();
Meteor.call(
'setTranslationText',
translation,
translationText
);
Popup.back();
},
});
Template.newTranslationPopup.events({
submit(event, templateInstance) {
event.preventDefault();
const language = templateInstance.find('.js-translation-language').value.trim();
const text = templateInstance.find('.js-translation-text').value.trim();
const translationText = templateInstance.find('.js-translation-translation-text').value.trim();
Meteor.call(
'setCreateTranslation',
language,
text,
translationText,
function(error) {
const textMessageElement = templateInstance.$('.text-taken');
if (error) {
const errorElement = error.error;
if (errorElement === 'text-already-taken') {
textMessageElement.show();
}
} else {
textMessageElement.hide();
Popup.back();
}
},
);
Popup.back();
},
});
Template.settingsTranslationPopup.events({
'click #deleteButton'(event) {
event.preventDefault();
Translation.remove(this.translationId);
Popup.back();
}
});
+38 -19
View File
@@ -24,7 +24,7 @@ template(name="swimlaneFixedHeader")
unless currentUser.isCommentOnly
if currentUser.isBoardAdmin
a.fa.fa-plus.js-open-add-swimlane-menu.swimlane-header-plus-icon(title="{{_ 'add-swimlane'}}")
a.fa.fa-navicon.js-open-swimlane-menu(title="{{_ 'swimlaneActionPopup-title'}}")
a.fa.fa-navicon.js-open-swimlane-menu(title="{{_ 'swimlaneActionPopup-title'}}")
unless isTouchScreen
if isShowDesktopDragHandles
a.swimlane-header-handle.handle.fa.fa-arrows.js-swimlane-header-handle
@@ -41,24 +41,29 @@ template(name="editSwimlaneTitleForm")
template(name="swimlaneActionPopup")
unless currentUser.isCommentOnly
ul.pop-over-list
li: a.js-set-swimlane-color
i.fa.fa-paint-brush
| {{_ 'select-color'}}
unless this.isTemplateContainer
hr
ul.pop-over-list
li: a.js-close-swimlane
i.fa.fa-arrow-right
i.fa.fa-archive
| {{_ 'archive-swimlane'}}
ul.pop-over-list
li: a.js-copy-swimlane
i.fa.fa-copy
| {{_ 'copy-swimlane'}}
ul.pop-over-list
li: a.js-move-swimlane
i.fa.fa-arrow-up
| {{_ 'move-swimlane'}}
if currentUser.isBoardAdmin
li: a.js-set-swimlane-color
i.fa.fa-paint-brush
| {{_ 'select-color'}}
li: a.js-set-swimlane-height
i.fa.fa-arrows-v
| {{_ 'set-swimlane-height'}}
if currentUser.isBoardAdmin
unless this.isTemplateContainer
hr
ul.pop-over-list
li: a.js-close-swimlane
i.fa.fa-arrow-right
i.fa.fa-archive
| {{_ 'archive-swimlane'}}
ul.pop-over-list
li: a.js-copy-swimlane
i.fa.fa-copy
| {{_ 'copy-swimlane'}}
ul.pop-over-list
li: a.js-move-swimlane
i.fa.fa-arrow-up
| {{_ 'move-swimlane'}}
template(name="swimlaneAddPopup")
unless currentUser.isCommentOnly
@@ -82,6 +87,20 @@ template(name="setSwimlaneColorPopup")
button.primary.confirm.js-submit {{_ 'save'}}
button.js-remove-color.negate.wide.right {{_ 'unset-color'}}
template(name="setSwimlaneHeightPopup")
#js-swimlane-height-edit
label a) {{_ 'set-swimlane-height-value'}}
label b) -1
p
input.swimlane-height-value(type="number" value="{{ swimlaneHeightValue }}" min="100")
input.swimlane-height-apply(type="submit" value="{{_ 'apply'}}")
input.swimlane-height-error
template(name="swimlaneHeightErrorPopup")
.swimlane-height-invalid
p {{_ 'swimlane-height-error-message'}} '&gt;=100'
button.full.js-back-view(type="submit") {{_ 'cancel'}}
template(name="swimlaneDeletePopup")
p {{_ "swimlane-delete-pop"}}
button.js-confirm.negate.full(type="submit") {{_ 'delete'}}
@@ -37,6 +37,7 @@ Template.swimlaneFixedHeader.helpers({
Template.swimlaneActionPopup.events({
'click .js-set-swimlane-color': Popup.open('setSwimlaneColor'),
'click .js-set-swimlane-height': Popup.open('setSwimlaneHeight'),
'click .js-close-swimlane'(event) {
event.preventDefault();
this.archive();
@@ -129,3 +130,46 @@ BlazeComponent.extendComponent({
];
},
}).register('setSwimlaneColorPopup');
BlazeComponent.extendComponent({
onCreated() {
this.currentSwimlane = this.currentData();
},
applySwimlaneHeight() {
const swimlane = this.currentData();
const board = swimlane.boardId;
const height = parseInt(
Template.instance()
.$('.swimlane-height-value')
.val(),
10,
);
// FIXME(mark-i-m): where do we put constants?
// also in imports/i18n/data/en.i18n.json
if (height != -1 && (height < 100 || !height)) {
Template.instance()
.$('.swimlane-height-error')
.click();
} else {
Meteor.call('applySwimlaneHeight', board, swimlane._id, height);
Popup.back();
}
},
swimlaneHeightValue() {
const swimlane = this.currentData();
const board = swimlane.boardId;
return Meteor.user().getSwimlaneHeight(board, swimlane._id);
},
events() {
return [
{
'click .swimlane-height-apply': this.applySwimlaneHeight,
'click .swimlane-height-error': Popup.open('swimlaneHeightError'),
},
];
},
}).register('setSwimlaneHeightPopup');
@@ -116,6 +116,9 @@
left: 87vw;
font-size: 24px;
}
#js-swimlane-height-edit .swimlane-height-error {
display: none;
}
.list-group {
height: 100%;
}
+7 -6
View File
@@ -2,7 +2,8 @@ template(name="swimlane")
.swimlane
+swimlaneHeader
unless collapseSwimlane
.swimlane.js-lists.js-swimlane(id="swimlane-{{_id}}")
.swimlane.js-lists.js-swimlane(id="swimlane-{{_id}}"
style="height:{{swimlaneHeight}};")
if isMiniScreen
if currentListIsInThisSwimlane _id
+list(currentList)
@@ -28,20 +29,20 @@ template(name="listsGroup")
if currentList
+list(currentList)
else
each lists
+miniList(this)
if currentUser.isBoardMember
unless currentUser.isCommentOnly
+addListForm
each lists
+miniList(this)
else
if currentUser.isBoardMember
unless currentUser.isCommentOnly
+addListForm
each lists
if visible this
+list(this)
if currentCardIsInThisList _id null
+cardDetails(currentCard)
if currentUser.isBoardMember
unless currentUser.isCommentOnly
+addListForm
template(name="addListForm")
unless currentUser.isWorker
+7
View File
@@ -223,6 +223,13 @@ BlazeComponent.extendComponent({
},
];
},
swimlaneHeight() {
const user = Meteor.user();
const swimlane = Template.currentData();
const height = user.getSwimlaneHeight(swimlane.boardId, swimlane._id);
return height == -1 ? "auto" : (height + "px");
},
}).register('swimlane');
BlazeComponent.extendComponent({
+1 -1
View File
@@ -32,7 +32,7 @@ Template.memberMenuPopup.helpers({
}
},
isSameDomainNameSettingValue(){
const currSett = Utils.getCurrentSetting();
const currSett = ReactiveCache.getCurrentSetting();
if(currSett && currSett != undefined && currSett.disableRegistration && currSett.mailDomainName !== undefined && currSett.mailDomainName != ""){
currentUser = ReactiveCache.getCurrentUser();
if (currentUser) {
+1 -1
View File
@@ -19,7 +19,7 @@ Blaze.registerHelper('currentList', () => {
});
Blaze.registerHelper('currentSetting', () => {
const ret = Utils.getCurrentSetting();
const ret = ReactiveCache.getCurrentSetting();
return ret;
});
+3 -1
View File
@@ -1,3 +1,5 @@
import { ReactiveCache } from '/imports/reactiveCache';
Meteor.subscribe('setting');
import { ALLOWED_WAIT_SPINNERS } from '/config/const';
@@ -9,7 +11,7 @@ export class Spinner extends BlazeComponent {
if (defaultWaitSpinner && ALLOWED_WAIT_SPINNERS.includes(defaultWaitSpinner)) {
ret = defaultWaitSpinner;
}
let settings = Utils.getCurrentSetting();
let settings = ReactiveCache.getCurrentSetting();
if (settings && settings.spinnerName) {
ret = settings.spinnerName;
-4
View File
@@ -58,10 +58,6 @@ Utils = {
}
return ret;
},
getCurrentSetting() {
const ret = ReactiveCache.getCurrentSetting();
return ret;
},
getPopupCard() {
const cardId = Utils.getPopupCardId();
const ret = ReactiveCache.getCard(cardId);
+3 -5
View File
@@ -4,7 +4,7 @@ const passwordField = AccountsTemplates.removeField('password');
const emailField = AccountsTemplates.removeField('email');
let disableRegistration = false;
let disableForgotPassword = false;
let passwordLoginDisabled = false;
let passwordLoginEnabled = false;
let oidcRedirectionEnabled = false;
let oauthServerUrl = "home";
let oauthDashboardUrl = "";
@@ -16,11 +16,9 @@ Meteor.call('isOidcRedirectionEnabled', (_, result) => {
}
});
Meteor.call('isPasswordLoginDisabled', (_, result) => {
Meteor.call('isPasswordLoginEnabled', (_, result) => {
if (result) {
passwordLoginDisabled = true;
//console.log('passwordLoginDisabled');
//console.log(result);
passwordLoginEnabled = true;
}
});
+24
View File
@@ -381,6 +381,30 @@ FlowRouter.route('/attachments', {
},
});
FlowRouter.route('/translation', {
name: 'translation',
triggersEnter: [
AccountsTemplates.ensureSignedIn,
() => {
Session.set('currentBoard', null);
Session.set('currentList', null);
Session.set('currentCard', null);
Session.set('popupCardId', null);
Session.set('popupCardBoardId', null);
Filter.reset();
Session.set('sortBy', '');
EscapeActions.executeAll();
},
],
action() {
BlazeLayout.render('defaultLayout', {
headerBar: 'settingHeaderBar',
content: 'translation',
});
},
});
FlowRouter.notFound = {
action() {
BlazeLayout.render('defaultLayout', { content: 'notFound' });
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "إضافة مهمة فرعية",
"add-checklist": "إضافة قائمة تدقيق",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "نص",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Добави коридор",
"add-subtask": "Добави подзадача",
"add-checklist": "Добави списък със задачи",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Текст",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"add-card": "Afegeix Fitxa",
"add-card-to-top-of-list": "Afegeix una fitxa al principi de la llista",
"add-card-to-bottom-of-list": "Afegeix una fitxa al final de la llista",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Afegeix carril",
"add-subtask": "Afegir Subtasca",
"add-checklist": "Llista de verificació d'Afegeix",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Tamany màxim del fitxer d'avatar en bytes:",
"allowed-avatar-filetypes": "Tipus de fitxer permesos per a l'avatar:",
"invalid-file": "Si el nom de fitxer és invàlid, actualitzar o renombrar es cancel·la.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Přidat Swimlane",
"add-subtask": "Přidat Podúkol",
"add-checklist": "Přidat zaškrtávací seznam",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Přidat Swimlane",
"add-subtask": "Přidat Podúkol",
"add-checklist": "Přidat zaškrtávací seznam",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Tilføj svømmebane",
"add-subtask": "Tilføj delopgave",
"add-checklist": "Tilføj tjekliste",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Tekst",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Swimlane hinzufügen",
"add-subtask": "Teilaufgabe hinzufügen",
"add-checklist": "Checkliste hinzufügen",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Swimlane hinzufügen",
"add-subtask": "Teilaufgabe hinzufügen",
"add-checklist": "Checkliste hinzufügen",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Stelle die Breite der Liste ein",
"set-list-width": "Stelle die Breite der Liste ein",
"set-list-width-value": "Breite der Liste (Pixel)",
"list-width-error-message": "Die Breite der Liste muss eine positive ganze Zahl sein",
"setSwimlaneHeightPopup-title": "Stelle die Höhe der Swimlane ein",
"set-swimlane-height": "Stelle die Höhe der Swimlane ein",
"set-swimlane-height-value": "Höhe der Swimlane (Pixel)",
"swimlane-height-error-message": "Die Höhe der Swimlane muss eine positive ganze Zahl sein",
"add-swimlane": "Swimlane hinzufügen",
"add-subtask": "Teilaufgabe hinzufügen",
"add-checklist": "Checkliste hinzufügen",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Maximale Profilbild Größe in Bytes:",
"allowed-avatar-filetypes": "Erlaubte Profilbild Dateitypen:",
"invalid-file": "Wenn der Dateiname ungültig ist, wird das Hochladen oder Umbenennen abgebrochen.",
"preview-pdf-not-supported": "Dein Gerät unterstützt keine PDF Vorschau. Versuche sie stattdessen herunterzuladen."
"preview-pdf-not-supported": "Dein Gerät unterstützt keine PDF Vorschau. Versuche sie stattdessen herunterzuladen.",
"drag-board": "Das Board ziehen nach",
"translation-number": "Die Anzahl benutzerdefinierter String-Übersetzungen ist:",
"delete-translation-confirm-popup": "Möchten Sie diese benutzerdefinierte String-Übersetzung wirklich löschen? Die Aktion kann nicht rückgängig gemacht werden.",
"newTranslationPopup-title": "Neue benutzerdefinierte String-Übersetzung",
"editTranslationPopup-title": "Bearbeite die benutzerdefinierte String-Übersetzung",
"settingsTranslationPopup-title": "Soll die benutzerdefinierte String-Übersetzung gelöscht werden?",
"translation": "Übersetzung",
"text": "Text",
"translation-text": "Übersetzungstext"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Προσθήκη Λωρίδας",
"add-subtask": "Προσθήκη Υποεργασίας",
"add-checklist": "Προσθήκη Λίστας ελέγχου",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Κείμενο",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Προσθήκη Λωρίδας",
"add-subtask": "Προσθήκη Υποεργασίας",
"add-checklist": "Προσθήκη Λίστας ελέγχου",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Κείμενο",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Teksto",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Agregar Calle",
"add-subtask": "Agregar Subtarea",
"add-checklist": "Agregar Lista de Tareas",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Texto",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Añadir un carril de flujo",
"add-subtask": "Añadir subtarea",
"add-checklist": "Añadir una lista de verificación",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Texto",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"add-card": "Agregar Tarjeta",
"add-card-to-top-of-list": "Agregar tarjeta al inicio de la lista",
"add-card-to-bottom-of-list": "Agregar tarjeta al final de la lista",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Agregar un a colmuna «swimlane»",
"add-subtask": "Agregar subtarea",
"add-checklist": "Agregar lista de comprobación",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Agregar un carril «swimlane»",
"add-subtask": "Agregar subtarea",
"add-checklist": "Agregar lista de comprobación",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Texto",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"add-card": "Añadir una tarjeta",
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Añadir un carril de flujo",
"add-subtask": "Añadir subtarea",
"add-checklist": "Añadir una lista de verificación",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Máximo tamaño de archivo de avatar en bytes:",
"allowed-avatar-filetypes": "Tipos de archivo permitidos para el avatar:",
"invalid-file": "Si el nombre de archivo no es válido, la carga o el cambio de nombre es cancelado.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Texto",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"add-card": "Lisa kaart",
"add-card-to-top-of-list": "Kaardi lisamine nimekirja tippu",
"add-card-to-bottom-of-list": "Lisa kaart nimekirja lõppu",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Lisage Swimlane",
"add-subtask": "Lisa alamülesanne",
"add-checklist": "Lisa kontrollnimekiri",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Tekst",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"add-card": "Gehitu txartela",
"add-card-to-top-of-list": "Gehitu txartela zerrendaren goiko aldean",
"add-card-to-bottom-of-list": "Gehitu txartela zerrendaren beheko aldean",
"setListWidthPopup-title": "Ezarri zerrendaren zabalera",
"set-list-width": "Ezarri zerrendaren zabalera",
"set-list-width-value": "Zerrendaren zabalera (pixelak)",
"list-width-error-message": "Zerrendaren zabalerak zenbaki oso positiboa izan behar du",
"setSwimlaneHeightPopup-title": "Errailaren altuera ezarri",
"set-swimlane-height": "Errailaren altuera ezarri",
"set-swimlane-height-value": "Errailaren altuera (pixelak)",
"swimlane-height-error-message": "Errailaren altuerak zenbaki oso positiboa izan behar du",
"add-swimlane": "Gehitu erraila",
"add-subtask": "Gehitu azpiataza",
"add-checklist": "Gehitu kontrol-zerrenda",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Avatar fitxategien gehienezko tamaina bytetan:",
"allowed-avatar-filetypes": "Baimendutako avatar fitxategi motak:",
"invalid-file": "Fitxategi-izena baliogabea bada, karga edo izena aldaketa bertan behera geratuko da.",
"preview-pdf-not-supported": "Zure gailuak ez du onartzen PDF aurrebistarik. Saiatu deskargatzen."
"preview-pdf-not-supported": "Zure gailuak ez du onartzen PDF aurrebistarik. Saiatu deskargatzen.",
"drag-board": "Arrastatu taula",
"translation-number": "Itzulpen-kate pertsonalizatuen kopurua hau da:",
"delete-translation-confirm-popup": "Ziur itzulpen-kate pertsonalizatu hau ezabatu nahi duzula? Ezin da desegin.",
"newTranslationPopup-title": "Itzulpen-kate pertsonalizatu berria",
"editTranslationPopup-title": "Editatu itzulpen-kate pertsonalizatua",
"settingsTranslationPopup-title": "Itzulpen-kate pertsonalizatu hau ezabatu nahi duzu?",
"translation": "Itzulpena",
"text": "Testua",
"translation-text": "itzulpenaren testua"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"add-card": "Add Card",
"add-card-to-top-of-list": "اضافه کردن کارت به بالای لیست",
"add-card-to-bottom-of-list": "اضافه کردن کارت به پایین لیست",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "افزودن مسیر شنا",
"add-subtask": "افزودن زیر وظیفه",
"add-checklist": "افزودن چک‌لیست",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "متن",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"add-card": "Lisää kortti",
"add-card-to-top-of-list": "Lisää kortti listan alkuun",
"add-card-to-bottom-of-list": "Lisää kortti listan loppuun",
"setListWidthPopup-title": "Aseta listan leveys",
"set-list-width": "Aseta listan leveys",
"set-list-width-value": "Listan leveys (pikseliä)",
"list-width-error-message": "Listan leveyden täytyy olla positiivinen kokonaisluku",
"setSwimlaneHeightPopup-title": "Aseta uimaradan korkeus",
"set-swimlane-height": "Aseta uimaradan korkeus",
"set-swimlane-height-value": "Uimaradan korkeus (pikseliä)",
"swimlane-height-error-message": "Uimaradan korkeuden täytyy olla positiivinen kokonaisluku",
"add-swimlane": "Lisää uimarata",
"add-subtask": "Lisää alitehtävä",
"add-checklist": "Lisää tarkistuslista",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Maksimi profiilikuvan tiedostokoko bytes:",
"allowed-avatar-filetypes": "Sallitut profiilikuva tiedostotyypit:",
"invalid-file": "Jos tiedostonimi ei kelpaa, liittäminen tai uudelleennimeäminen perutaan.",
"preview-pdf-not-supported": "Laitteesi ei tue PDF-esikatselua. Yritä sen sijaan ladata."
"preview-pdf-not-supported": "Laitteesi ei tue PDF-esikatselua. Yritä sen sijaan ladata.",
"drag-board": "Vedä taulua",
"translation-number": "Mukautettujen käännösten määrä on:",
"delete-translation-confirm-popup": "Haluatko varmasti poistaa tämän mukautetun käännöksen? Tätä ei voi peruuttaa.",
"newTranslationPopup-title": "Uusi mukautettu käännös",
"editTranslationPopup-title": "Muokkaa mukautettua käännöstä",
"settingsTranslationPopup-title": "Poista tämä mukautettu käännös?",
"translation": "Käännös",
"text": "Teksti",
"translation-text": "Käännetty teksti"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+32 -15
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Définir la largeur de la liste",
"set-list-width": "Définir la largeur de la liste",
"set-list-width-value": "Largeur de la liste (pixels)",
"list-width-error-message": "La largeur de la liste doit être un entier positif",
"setSwimlaneHeightPopup-title": "Définir la hauteur du couloir",
"set-swimlane-height": "Définir la hauteur du couloir",
"set-swimlane-height-value": "Hauteur du couloir (pixels)",
"swimlane-height-error-message": "La hauteur du couloir doit être un entier positif",
"add-swimlane": "Ajouter un couloir",
"add-subtask": "Ajouter une sous-tâche",
"add-checklist": "Ajouter une checklist",
@@ -92,10 +100,10 @@
"close-add-checklist-item": "Fermer ajouter un élément du formulaire checklist",
"close-edit-checklist-item": "Fermer éditer un élément du formulaire checklist",
"convertChecklistItemToCardPopup-title": "Convertir en carte",
"add-cover": "Add cover image to minicard",
"add-cover": "Ajouter la vignette sur la mini-carte",
"add-label": "Ajouter une étiquette",
"add-list": "Ajouter une liste",
"add-after-list": "Add After List",
"add-after-list": "Ajouter après la liste",
"add-members": "Assigner des participants",
"added": "Ajouté le",
"addMemberPopup-title": "Participants",
@@ -138,10 +146,10 @@
"avatar-too-big": "La taille du fichier de l'avatar est trop importante (__size__ au maximum)",
"back": "Retour",
"board-change-color": "Changer la couleur",
"board-change-background-image": "Change Background Image",
"board-background-image-url": "Background Image URL",
"add-background-image": "Add Background Image",
"remove-background-image": "Remove Background Image",
"board-change-background-image": "Changer l'image de fond",
"board-background-image-url": "URL de l'image de fond",
"add-background-image": "Ajouter une image de fond",
"remove-background-image": "Supprimer l'image de fond",
"show-at-all-boards-page" : "Afficher sur la page de tous les tableaux",
"board-info-on-my-boards" : "Paramètres de tous les tableaux",
"boardInfoOnMyBoardsPopup-title" : "Paramètres de tous les tableaux",
@@ -154,9 +162,9 @@
"board-public-info": "Ce tableau sera <strong>public</strong>.",
"board-drag-drop-reorder-or-click-open": "Glisser-déposer les icônes de tableau pour les réordonner. Cliquer sur l'icône du tableau pour l'ouvrir.",
"boardChangeColorPopup-title": "Change la couleur de fond du tableau",
"boardChangeBackgroundImagePopup-title": "Change Background Image",
"boardChangeBackgroundImagePopup-title": "Changer l'image de fond",
"allBoardsChangeColorPopup-title": "Changer la couleur",
"allBoardsChangeBackgroundImagePopup-title": "Change Background Image",
"allBoardsChangeBackgroundImagePopup-title": "Changer l'image de fond",
"boardChangeTitlePopup-title": "Renommer le tableau",
"boardChangeVisibilityPopup-title": "Changer la visibilité",
"boardChangeWatchPopup-title": "Modifier le suivi",
@@ -432,7 +440,7 @@
"filter-to-selection": "Filtre vers la sélection",
"other-filters-label": "Autres filtres",
"advanced-filter-label": "Filtre avancé",
"advanced-filter-description": "Le filtre avancé permet d'écrire une chaîne contenant les opérateur suivants : == != <= >= && || ( ). Les opérateurs doivent être séparés par des espaces. Vous pouvez filtrer tous les champs personnalisés en saisissant leur nom et leur valeur. Par exemple : champ1 == valeur1. Remarque : si des champs ou valeurs contiennent des espaces, vous devez les mettre entre apostrophes. Par exemple : 'champ 1' = 'valeur 1'. Pour échapper un caractère de contrôle (' \\\\/), vous pouvez utiliser \\\\. Par exemple : champ1 = I\\\\'m. Il est également possible de combiner plusieurs conditions. Par exemple : f1 == v1 || f2 == v2. Normalement, tous les opérateurs sont interprétés de gauche à droite. Vous pouvez changer l'ordre à l'aide de parenthèses. Par exemple : f1 == v1 and (f2 == v2 || f2 == v3). Vous pouvez également chercher parmi les champs texte en utilisant des expressions régulières : f1 == /Test.*/i",
"advanced-filter-description": "Le filtre avancé permet d'écrire une chaîne contenant les opérateur suivants : == != <= >= && || ( ). Les opérateurs doivent être séparés par des espaces. Vous pouvez filtrer tous les champs personnalisés en saisissant leur nom et leur valeur. Par exemple : champ1 == valeur1. Remarque : si des champs ou valeurs contiennent des espaces, vous devez les mettre entre apostrophes. Par exemple : 'champ 1' == 'valeur 1'. Pour échapper un caractère de contrôle (' \\/), vous pouvez utiliser \\. Par exemple : champ1 == I\\'m. Il est également possible de combiner plusieurs conditions. Par exemple : f1 == v1 || f2 == v2. Normalement, tous les opérateurs sont interprétés de gauche à droite. Vous pouvez changer l'ordre à l'aide de parenthèses. Par exemple : F1 == V1 && ( F2 == V2 || F2 == V3 ). Vous pouvez également chercher parmi les champs texte en utilisant des expressions régulières : f1 == /Test.*/i",
"fullname": "Nom complet",
"header-logo-title": "Retourner à la page des tableaux",
"hide-system-messages": "Masquer les messages système",
@@ -542,7 +550,7 @@
"public": "Public",
"public-desc": "Ce tableau est public. Il est accessible par toutes les personnes disposant du lien et apparaîtra dans les résultats des moteurs de recherche tels que Google. Seuls les membres peuvent le modifier.",
"quick-access-description": "Ajouter un tableau à vos favoris pour créer un raccourci dans cette barre.",
"remove-cover": "Remove cover image from minicard",
"remove-cover": "Supprimer la vignette de la mini-carte",
"remove-from-board": "Retirer du tableau",
"remove-label": "Retirer l'étiquette",
"listDeletePopup-title": "Supprimer la liste ?",
@@ -730,9 +738,9 @@
"deposit-subtasks-list": "Liste de destination pour les sous-tâches déposées ici :",
"show-parent-in-minicard": "Voir la carte parente dans la mini-carte :",
"description-on-minicard": "Description sur la mini-carte",
"cover-attachment-on-minicard": "Cover image on minicard",
"badge-attachment-on-minicard": "Count of attachments on minicard",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"cover-attachment-on-minicard": "Vignette sur la mini-carte",
"badge-attachment-on-minicard": "Compteur de pièces jointes sur la mini-carte",
"card-sorting-by-number-on-minicard": "Tri numérique des cartes sur la mini-carte",
"prefix-with-full-path": "Préfixer avec le chemin complet",
"prefix-with-parent": "Préfixer avec le parent",
"subtext-with-full-path": "Sous-titre avec le chemin complet",
@@ -1089,7 +1097,7 @@
"label-names": "Noms d'étiquette",
"archived-at": "archivée le",
"sort-cards": "Trier les cartes",
"sort-is-on": "Sort is on",
"sort-is-on": "Le tri est activé",
"cardsSortPopup-title": "Trier les cartes",
"due-date": "Date d'échéance",
"server-error": "Erreur serveur",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Taille maximum du fichier de l'avatar en octets :",
"allowed-avatar-filetypes": "Types de fichier autorisés pour l'avatar :",
"invalid-file": "Si le nom de fichier est invalide, le téléchargement ou le renommage sera annulé.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Votre périphérique ne supporte pas la prévisualisation de PDF. Essayer plutôt le téléchargement.",
"drag-board": "Glisser le tableau",
"translation-number": "Le nombre de traductions personnalisées est de :",
"delete-translation-confirm-popup": "Êtes-vous sûr de vouloir supprimer cette traduction personnalisée ? Cela est irréversible.",
"newTranslationPopup-title": "Nouvelle traduction personnalisée",
"editTranslationPopup-title": "Éditer la traduction personnalisée",
"settingsTranslationPopup-title": "Supprimer cette traduction personnalisée ?",
"translation": "Traduction",
"text": "Texte",
"translation-text": "Texte traduit"
}
+19 -2
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Définir la largeur de la liste",
"set-list-width": "Définir la largeur de la liste",
"set-list-width-value": "Largeur de la liste (pixels)",
"list-width-error-message": "La largeur de la liste doit être un entier positif",
"setSwimlaneHeightPopup-title": "Définir la hauteur du couloir",
"set-swimlane-height": "Définir la hauteur du couloir",
"set-swimlane-height-value": "Hauteur du couloir (pixels)",
"swimlane-height-error-message": "La hauteur du couloir doit être un entier positif",
"add-swimlane": "Ajouter un couloir",
"add-subtask": "Ajouter une sous-tâche",
"add-checklist": "Ajouter une checklist",
@@ -432,7 +440,7 @@
"filter-to-selection": "Filtre vers la sélection",
"other-filters-label": "Autres filtres",
"advanced-filter-label": "Filtre avancé",
"advanced-filter-description": "Le filtre avancé permet d'écrire une chaîne contenant les opérateur suivants : == != <= >= && || ( ). Les opérateurs doivent être séparés par des espaces. Vous pouvez filtrer tous les champs personnalisés en saisissant leur nom et leur valeur. Par exemple : champ1 == valeur1. Remarque : si des champs ou valeurs contiennent des espaces, vous devez les mettre entre apostrophes. Par exemple : 'champ 1' = 'valeur 1'. Pour échapper un caractère de contrôle (' \\\\/), vous pouvez utiliser \\\\. Par exemple : champ1 = I\\\\'m. Il est également possible de combiner plusieurs conditions. Par exemple : f1 == v1 || f2 == v2. Normalement, tous les opérateurs sont interprétés de gauche à droite. Vous pouvez changer l'ordre à l'aide de parenthèses. Par exemple : f1 == v1 and (f2 == v2 || f2 == v3). Vous pouvez également chercher parmi les champs texte en utilisant des expressions régulières : f1 == /Test.*/i",
"advanced-filter-description": "Le filtre avancé permet d'écrire une chaîne contenant les opérateur suivants : == != <= >= && || ( ). Les opérateurs doivent être séparés par des espaces. Vous pouvez filtrer tous les champs personnalisés en saisissant leur nom et leur valeur. Par exemple : champ1 == valeur1. Remarque : si des champs ou valeurs contiennent des espaces, vous devez les mettre entre apostrophes. Par exemple : 'champ 1' == 'valeur 1'. Pour échapper un caractère de contrôle (' \\/), vous pouvez utiliser \\. Par exemple : champ1 == I\\'m. Il est également possible de combiner plusieurs conditions. Par exemple : f1 == v1 || f2 == v2. Normalement, tous les opérateurs sont interprétés de gauche à droite. Vous pouvez changer l'ordre à l'aide de parenthèses. Par exemple : F1 == V1 && ( F2 == V2 || F2 == V3 ). Vous pouvez également chercher parmi les champs texte en utilisant des expressions régulières : f1 == /Test.*/i",
"fullname": "Nom complet",
"header-logo-title": "Retourner à la page des tableaux",
"hide-system-messages": "Masquer les messages système",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Taille maximum du fichier de l'avatar en octets :",
"allowed-avatar-filetypes": "Types de fichier autorisés pour l'avatar :",
"invalid-file": "Si le nom de fichier est invalide, le téléchargement ou le renommage sera annulé.",
"preview-pdf-not-supported": "Votre périphérique ne supporte pas la prévisualisation de PDF. Essayer plutôt le téléchargement."
"preview-pdf-not-supported": "Votre périphérique ne supporte pas la prévisualisation de PDF. Essayer plutôt le téléchargement.",
"drag-board": "Glisser le tableau",
"translation-number": "Le nombre de traductions personnalisées est de :",
"delete-translation-confirm-popup": "Êtes-vous sûr de vouloir supprimer cette traduction personnalisée ? Cela est irréversible.",
"newTranslationPopup-title": "Nouvelle traduction personnalisée",
"editTranslationPopup-title": "Éditer la traduction personnalisée",
"settingsTranslationPopup-title": "Supprimer cette traduction personnalisée ?",
"translation": "Traduction",
"text": "Texte",
"translation-text": "Texte traduit"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
+18 -1
View File
@@ -85,6 +85,14 @@
"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",
"setListWidthPopup-title": "Set List Width",
"set-list-width": "Set List Width",
"set-list-width-value": "List Width (pixels)",
"list-width-error-message": "List width must be a positive integer",
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
"set-swimlane-height": "Set Swimlane Height",
"set-swimlane-height-value": "Swimlane Height (pixels)",
"swimlane-height-error-message": "Swimlane height must be a positive integer",
"add-swimlane": "Add Swimlane",
"add-subtask": "Add Subtask",
"add-checklist": "Add Checklist",
@@ -1220,5 +1228,14 @@
"max-avatar-filesize": "Max avatar filesize in bytes:",
"allowed-avatar-filetypes": "Allowed avatar filetypes:",
"invalid-file": "If filename is invalid, upload or rename is cancelled.",
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead."
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
"drag-board": "Drag board",
"translation-number": "The number of custom translation strings is:",
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
"newTranslationPopup-title": "New custom translation string",
"editTranslationPopup-title": "Edit custom translation string",
"settingsTranslationPopup-title": "Delete this custom translation string?",
"translation": "Translation",
"text": "Text",
"translation-text": "Translation text"
}
Loaded 100 of 197 files, more files were not shown because too many files have changed in this diff. Show more