Compare commits

...
118 Commits
Author SHA1 Message Date
Lauri Ojansivu 08a3506f12 v6.99 2023-07-09 23:11:22 +03:00
Lauri Ojansivu 520f295733 Updated translations. 2023-07-09 23:01:44 +03:00
Lauri Ojansivu 7da5121ddd Updated translations. 2023-07-09 22:57:43 +03:00
Lauri Ojansivu 3222625286 Updated ChangeLog. 2023-07-08 21:05:32 +03:00
Lauri Ojansivu 05d952b864 Merge pull request #4997 from VidVidex/master
Fix attachment viewer not being hidden
2023-07-08 21:03:07 +03:00
Vid Smole a3837ccbc7 Fix attachment viewer not being hidden 2023-07-08 19:22:40 +02:00
Lauri Ojansivu ac8199177f Updated ChangeLog. 2023-07-08 04:00:27 +03:00
Lauri Ojansivu 140a134a11 Fixed maximum call stack exceeded by removing bootstrap 3, datepicker and summernote. Updated jquery. Disabled attachments viewer that opens empty when opening card. Fixes all npm audit errors.
Fixes #4994,
fixes #3614

Thanks to xet7 !
2023-07-08 03:52:42 +03:00
Lauri Ojansivu c1b3e5367c Updated ChangeLog. 2023-07-08 01:35:22 +03:00
Lauri Ojansivu b637a8e8ea Revert first list width change.
Related https://github.com/wekan/wekan/pull/4993

Thanks to xet7 !
2023-07-08 01:30:55 +03:00
Lauri Ojansivu 999323526c Merge pull request #4993 from VidVidex/master
Small UI improvements
2023-07-08 01:30:14 +03:00
Lauri Ojansivu 2e0168283e Updated translations. 2023-07-08 01:25:11 +03:00
Lauri Ojansivu 13039c895a Updated ChangeLog. 2023-07-08 01:23:39 +03:00
Lauri Ojansivu 4148238af3 Removed horka:swipebox.
Thanks to VidVidex and xet7 !
2023-07-08 01:20:35 +03:00
Vid Smole 7a98445370 Better attachment viewer 2023-07-06 20:35:49 +02:00
Vid Smole 7ef3bba9f7 Better attachment gallery 2023-07-06 20:29:36 +02:00
Vid Smole 492306453c Fix first list being narrower than others 2023-07-06 13:22:38 +02:00
Vid Smole e12353bd7e Merge branch 'wekan:master' into master 2023-07-06 12:57:29 +02:00
Vid Smole a3622ddc1d Display card title in bold 2023-07-06 12:57:06 +02:00
Lauri Ojansivu ac95be9e41 Updated ChangeLog. 2023-07-05 14:14:27 +03:00
Lauri Ojansivu 4a3fc42d1f Merge pull request #4992 from VidVidex/master
Fix attachment urls in PR #4991
2023-07-05 07:13:19 -04:00
Vid Smole 557f9709ac Fix attachment urls 2023-07-05 12:52:18 +02:00
Lauri Ojansivu 4468c71d98 Updated ChangeLog. 2023-07-05 12:14:49 +03:00
Lauri Ojansivu c8491749e0 Merge pull request #4991 from VidVidex/master
Fix /api/boards/{boardId}/attachments endpoint
2023-07-05 05:13:14 -04:00
Vid Smole e5123f2d81 Merge branch 'wekan:master' into master 2023-07-05 11:06:11 +02:00
Vid Smole 41664f16a3 Fix /api/board/{boardId}/attachments 2023-07-05 11:05:37 +02:00
Lauri Ojansivu 8c9c0e9316 Updated translations. 2023-07-04 22:09:29 +03:00
Lauri Ojansivu f21bd16cec Updated translations. 2023-07-03 10:27:21 +03:00
Lauri Ojansivu edc5a5b6a2 Updated translations. 2023-07-01 21:12:02 +03:00
Lauri Ojansivu 7d4de21be0 Updated ChangeLog. 2023-07-01 00:56:08 +03:00
Lauri Ojansivu 5babe0358d MongoDB 6.0.7 at Snap.
Thanks to MongoDB developers !
2023-07-01 00:54:05 +03:00
Lauri Ojansivu 62ef1fe7cc Updated ChangeLog. 2023-07-01 00:36:03 +03:00
Lauri Ojansivu 4be5727a18 Fix PDF preview to have full width, close at top, and improve viewing at mobile.
Thanks to xet7 !
2023-07-01 00:30:05 +03:00
Lauri Ojansivu e128a5775d Updated ChangeLog. 2023-06-30 18:08:26 +03:00
Lauri Ojansivu ba9f9705d4 Show Meteor dependency chain with rebuild-wekan.sh .
Thanks to xet7 !
2023-06-30 18:06:44 +03:00
Lauri Ojansivu 3aae07695c Updated translations. 2023-06-30 17:43:10 +03:00
Lauri Ojansivu 4393deb130 Updated ChangeLog. 2023-06-30 17:41:24 +03:00
Lauri Ojansivu 83ae1d4a19 Added translation to support viewing PDFs.
Thanks to xet7 !

Fixes https://github.com/wekan/wekan/pull/4989#pullrequestreview-1507053336
2023-06-30 17:31:17 +03:00
Lauri Ojansivu 94992fca44 Merge pull request #4989 from VidVidex/master
Add support for viewing pdfs
2023-06-30 10:03:20 -04:00
Vid Smole a8af5343a7 Fix typo 2023-06-30 12:48:23 +02:00
Vid Smole 070e8831b4 Add support for viewing pdfs 2023-06-30 12:48:18 +02:00
Lauri Ojansivu f177e416ee Updated ChangeLog. 2023-06-29 12:07:51 +03:00
Lauri Ojansivu ffea7aff99 If there is no Custom Field label at minicard, show value full width.
Thanks to koluka and xet7 !

Fixes #4988
2023-06-29 12:05:25 +03:00
Lauri Ojansivu 01b16566c8 Updated ChangeLog. 2023-06-29 00:32:27 +03:00
Lauri Ojansivu 549b15000b Set background color only if it exists. Part 3.
Thanks to xet7 !
2023-06-29 00:31:44 +03:00
Lauri Ojansivu d05b84dff9 Updated ChangeLog. 2023-06-29 00:23:28 +03:00
Lauri Ojansivu c6cad13f1e Set background color only if it exists. Part 2.
Thanks to xet7 !
2023-06-29 00:22:25 +03:00
Lauri Ojansivu a8d1210655 Updated ChangeLog. 2023-06-29 00:04:12 +03:00
Lauri Ojansivu 45d33fa2e4 Set background color only if it exists.
Thanks to xet7 !
2023-06-29 00:03:00 +03:00
Lauri Ojansivu 81ceb1ca0f Updated ChangeLog. 2023-06-28 23:34:37 +03:00
Lauri Ojansivu 923d26ad81 Merge pull request #4987 from mfilser/move_canModifyCard_and_canModifyBoard_to_utils_class
Utils of canModifyCard and canModifyBoard + move this general functions to Utils class
2023-06-28 16:32:02 -04:00
Martin Filser 583f114c68 Utils of canModifyCard and canModifyBoard + move this general functions to Utils class 2023-06-28 22:21:36 +02:00
Lauri Ojansivu b29ec93c34 Updated ChangeLog. 2023-06-28 23:14:09 +03:00
Lauri Ojansivu c7ee585a62 Merge pull request #4986 from mfilser/global_search_found_cards_count_is_now_substituted_by_the_translation_function_itself
Global search, found cards count is now substituted by the translation function itself
2023-06-28 16:13:17 -04:00
Martin Filser a7721b9048 Global search, found cards count is now substituted by the translation function itself 2023-06-28 22:08:58 +02:00
Lauri Ojansivu 184fd3abdd Updated ChangeLog. 2023-06-28 23:08:27 +03:00
Lauri Ojansivu 5fd2f1ee8a Merge pull request #4985 from mfilser/admin_report_fixing_filesize_if_not_a_number
Admin Report, fixing filesize if not a number
2023-06-28 16:07:26 -04:00
Martin Filser 23218d3808 Admin Report, fixing filesize if not a number 2023-06-28 22:02:28 +02:00
Lauri Ojansivu 9b8de53bfe Updated ChangeLog. 2023-06-28 23:02:04 +03:00
Lauri Ojansivu 9130410f09 Merge pull request #4984 from mfilser/global_search_limit_0_is_no_limit
Global Search, limit 0 is no limit
2023-06-28 15:54:34 -04:00
Martin Filser 1f57a3f62e Global Search, limit 0 is no limit 2023-06-28 21:49:44 +02:00
Lauri Ojansivu 6938cec583 Updated ChangeLog. 2023-06-28 22:45:33 +03:00
Lauri Ojansivu 3c2cc351f4 Added Snap MONGO_URL to rebuild-wekan.sh dev options. Part 2.
Thanks to xet7 !
2023-06-28 22:44:26 +03:00
Lauri Ojansivu ebeadeef60 Updated ChangeLog. 2023-06-28 22:42:47 +03:00
Lauri Ojansivu 7d59ae93f9 Added Snap MONGO_URL to rebuild-wekan.sh dev options.
Thanks to xet7 !
2023-06-28 22:41:11 +03:00
Lauri Ojansivu 59e15d262f Updated ChangeLog. 2023-06-28 22:37:14 +03:00
Lauri Ojansivu 712417b379 Merge pull request #4983 from mfilser/admin_attachment_view_was_missing_the_column_header_S3FileId
Admin attachment view was missing the column header "S3FileId"
2023-06-28 15:35:57 -04:00
Martin Filser cad55d57d7 Admin attachment view was missing the column header "S3FileId" 2023-06-28 21:30:01 +02:00
Lauri Ojansivu cca7e59eb2 Updated ChangeLog. 2023-06-28 22:27:49 +03:00
Lauri Ojansivu 59a358903a Merge pull request #4982 from mfilser/attachment_copy_changes_now_boardId_listId_and_swimlaneId
attachment copy changes now the boardId, listId and swimlaneId in the collection data
2023-06-28 15:25:52 -04:00
Martin Filser 2eadd3eb8b attachment copy changes now the boardId, listId and swimlaneId in the collection data
- fixing admin attachment view, copied card attachments were wrong if copied to another board / list / swimlane
2023-06-28 21:21:09 +02:00
Lauri Ojansivu 0261bb592e Updated ChangeLog. 2023-06-28 22:12:43 +03:00
Lauri Ojansivu 7862e280ec Merge pull request #4981 from mfilser/copy_checklist_only_copied_the_checklist_items_the_first_time
Copy Checklist only copied the checklist items at the first time, now always
2023-06-28 15:11:40 -04:00
Martin Filser 13fecfae27 Copy Checklist only copied the checklist items at the first time, now always 2023-06-28 21:05:25 +02:00
Lauri Ojansivu b7819cad69 Updated ChangeLog. 2023-06-28 21:39:24 +03:00
Lauri Ojansivu 028fba9996 Merge pull request #4980 from mfilser/copy_checklist_dialog_set_last_selected_board
Copy Checklist dialog now set's the last selected board
2023-06-28 14:36:00 -04:00
Martin Filser ce94433c46 Copy Checklist dialog now set's the last selected board 2023-06-26 18:28:07 +02:00
Lauri Ojansivu 442eefbe6b Updated ChangeLog. 2023-06-26 16:44:44 +03:00
Lauri Ojansivu 84c3b38052 Updated ChangeLog. 2023-06-26 16:42:08 +03:00
Martin Filser 8557d91468 new popup scrolls to top and restore it's previous position after closing again works now at attachments too 2023-06-25 10:44:20 +02:00
Martin Filser 949a3a1337 new popup scrolls to top and restore it's previous position after closing again 2023-06-25 10:44:20 +02:00
Lauri Ojansivu 24288919e2 Merge pull request #4977 from wekan/dependabot/npm_and_yarn/fast-xml-parser-4.2.5
Bump fast-xml-parser from 4.2.4 to 4.2.5
2023-06-22 16:57:53 -04:00
dependabot[bot] 92c57fc91e Bump fast-xml-parser from 4.2.4 to 4.2.5
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.2.4 to 4.2.5.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v4.2.4...v4.2.5)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-22 19:32:48 +00:00
Lauri Ojansivu 9d1e7abd07 v6.98 2023-06-22 22:32:19 +03:00
Lauri Ojansivu 8dfdbe7a16 Updated ChangeLog. 2023-06-22 22:24:09 +03:00
Lauri Ojansivu 15fbe7ca50 Merge pull request #4976 from mfilser/drag_drop_reduce_list_scroll_speed
reduce list scroll speed while drag/drop the minicard
2023-06-22 12:30:04 -04:00
Martin Filser 9aa8bc8921 reduce list scroll speed while drag/drop the minicard 2023-06-22 17:17:40 +02:00
Lauri Ojansivu e90791fdbc Merge pull request #4975 from mfilser/rounding_sort_number_to_next_integer
Rounding sort number to next integer
2023-06-21 17:35:58 -04:00
Martin Filser b869e3efb6 after moving, e.g. minicards, to the list start / end the index is rounded to the next index 2023-06-21 23:16:55 +02:00
Martin Filser 7e8073d621 after moving, e.g. the minicard, round the index to the next integer
- before: at index -1           and -9 the new index was -5
- now   : at index -1 (or -1.1) and -9 the new index is  -2
2023-06-21 23:16:55 +02:00
Martin Filser c10f7b6134 Utils#calculateIndex re-uses the logic of Utils#calculateIndexData
- nearly the same implementation, so use common code base
2023-06-21 23:16:55 +02:00
Lauri Ojansivu 1a71abbc1d Updated ChangeLog. 2023-06-22 00:16:12 +03:00
Lauri Ojansivu 0a46d06c1f Merge pull request #4974 from mfilser/add_checklistitem_at_top
Add checklist-item at top
2023-06-21 17:13:17 -04:00
Martin Filser 23595674cf Add checklist-item at top 2023-06-21 23:09:29 +02:00
Lauri Ojansivu 6fead14c11 Updated ChangeLog. 2023-06-22 00:03:38 +03:00
Martin Filser 52d54f35a3 Add checklist at top 2023-06-21 21:59:48 +02:00
Lauri Ojansivu 3c1eff6241 Updated translations. 2023-06-20 00:26:44 +03:00
Lauri Ojansivu fb2972396a Updated ChangeLog. 2023-06-20 00:24:30 +03:00
Lauri Ojansivu 4d9f76cc68 Merge pull request #4969 from nebulade/favicon-fix
Always fetch favicons from / path
2023-06-19 17:16:51 -04:00
Lauri Ojansivu 924c579680 Merge pull request #4971 from wekan/dependabot/github_actions/docker/build-push-action-4.1.1
Bump docker/build-push-action from 4.1.0 to 4.1.1
2023-06-19 17:15:58 -04:00
Lauri Ojansivu ca2ea2c13e Merge pull request #4970 from wekan/dependabot/github_actions/docker/metadata-action-4.6.0
Bump docker/metadata-action from 4.5.0 to 4.6.0
2023-06-19 17:15:34 -04:00
dependabot[bot] b579dc598b Bump docker/build-push-action from 4.1.0 to 4.1.1
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/44ea916f6c540f9302d50c2b1e5a8dc071f15cdf...2eb1c1961a95fc15694676618e422e8ba1d63825)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 20:58:45 +00:00
dependabot[bot] 04c5f60287 Bump docker/metadata-action from 4.5.0 to 4.6.0
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/2c0bd771b40637d97bf205cbccdd294a32112176...818d4b7b91585d195f67373fd9cb0332e31a7175)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 20:58:41 +00:00
Johannes Zellner 123789aff0 Always fetch favicons from / path 2023-06-19 14:33:36 +02:00
Lauri Ojansivu 74b66fdcaf Updated translations. 2023-06-18 03:31:48 +03:00
Lauri Ojansivu 3f09b54e04 Merge pull request #4968 from simon816/fix-language-not-persisting
Wait until user has logged in before fetching language preference
2023-06-17 20:26:54 -04:00
simon816 c39403c307 Wait until user has logged in before fetching language preference. Fixes #4967 2023-06-18 00:58:16 +01:00
Lauri Ojansivu 13ea7bf3d7 Updated ChangeLog. 2023-06-17 21:01:11 +03:00
Lauri Ojansivu dc2835d341 Added translations: Cantonese (China) (yue_CN) and Chinese Traditional (zh-Hant).
Thanks to translators !
2023-06-17 20:58:21 +03:00
Lauri Ojansivu 94ff2d6a9e Updated ChangeLog. 2023-06-16 12:24:37 +03:00
Lauri Ojansivu 6479c6a5c5 Update rebuild-wekan.sh to use local network IP address.
Thanks to xet7 !
2023-06-16 12:22:18 +03:00
Lauri Ojansivu a1ddf8e6d2 Merge pull request #4961 from wekan/dependabot/github_actions/docker/login-action-2.2.0
Bump docker/login-action from 2.1.0 to 2.2.0
2023-06-13 00:24:50 +03:00
Lauri Ojansivu 102b39cd29 Merge pull request #4963 from wekan/dependabot/github_actions/docker/build-push-action-4.1.0
Bump docker/build-push-action from 4.0.0 to 4.1.0
2023-06-13 00:24:32 +03:00
Lauri Ojansivu b7373a27b8 Merge pull request #4962 from wekan/dependabot/github_actions/docker/metadata-action-4.5.0
Bump docker/metadata-action from 4.4.0 to 4.5.0
2023-06-13 00:24:16 +03:00
dependabot[bot] fb0b762293 Bump docker/build-push-action from 4.0.0 to 4.1.0
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/3b5e8027fcad23fda98b2e3ac259d8d67585f671...44ea916f6c540f9302d50c2b1e5a8dc071f15cdf)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 20:58:03 +00:00
dependabot[bot] 5b799b4536 Bump docker/metadata-action from 4.4.0 to 4.5.0
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4.4.0 to 4.5.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](https://github.com/docker/metadata-action/compare/c4ee3adeed93b1fa6a762f209fb01608c1a22f1e...2c0bd771b40637d97bf205cbccdd294a32112176)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 20:58:00 +00:00
dependabot[bot] 8050d7353d Bump docker/login-action from 2.1.0 to 2.2.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/f4ef78c080cd8ba55a85445d5b36e214a81df20a...465a07811f14bebb1938fbed4728c6a1ff8901fc)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 20:57:57 +00:00
Lauri Ojansivu 66b1736bb3 Updated translations. 2023-06-12 14:23:04 -04:00
177 changed files with 4111 additions and 1783 deletions

No files matched your search

+3 -3
View File
@@ -38,7 +38,7 @@ jobs:
# https://github.com/docker/login-action
- name: Log into registry ${{ env.REGISTRY }}
if: github.event_name != 'pull_request'
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
@@ -48,14 +48,14 @@ jobs:
# https://github.com/docker/metadata-action
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@c4ee3adeed93b1fa6a762f209fb01608c1a22f1e
uses: docker/metadata-action@818d4b7b91585d195f67373fd9cb0332e31a7175
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
# Build and push Docker image with Buildx (don't push on PR)
# https://github.com/docker/build-push-action
- name: Build and push Docker image
uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671
uses: docker/build-push-action@2eb1c1961a95fc15694676618e422e8ba1d63825
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
+3 -54
View File
@@ -47,7 +47,6 @@ tracker@1.3.2
underscore@1.0.13
arillo:flow-router-helpers
audit-argument-checks@1.0.7
kadira:blaze-layout
kadira:dochead
mquandalle:autofocus
ongoworks:speakingurl
@@ -55,20 +54,16 @@ raix:handlebar-helpers
http@2.0.0! # force new http package
# UI components
blaze
ostrio:i18n
reactive-var@1.0.12
fortawesome:fontawesome
mousetrap:mousetrap
mquandalle:jquery-textcomplete
mquandalle:mousetrap-bindglobal
peerlibrary:blaze-components
templates:tabs
meteor-autosize
rajit:bootstrap3-datepicker
shell-server@0.5.0
email@2.2.5
horka:swipebox
dynamic-import@0.7.3
cfs:gridfs
rzymek:fullcalendar
@@ -82,55 +77,6 @@ percolate:synced-cron
cfs:filesystem
ostrio:cookies
ostrio:files@2.3.0
rajit:bootstrap3-datepicker-fi
rajit:bootstrap3-datepicker-ar
rajit:bootstrap3-datepicker-bg
rajit:bootstrap3-datepicker-br
rajit:bootstrap3-datepicker-ca
rajit:bootstrap3-datepicker-cs
rajit:bootstrap3-datepicker-da
rajit:bootstrap3-datepicker-de
rajit:bootstrap3-datepicker-el
rajit:bootstrap3-datepicker-en-gb
rajit:bootstrap3-datepicker-eo
rajit:bootstrap3-datepicker-es
rajit:bootstrap3-datepicker-eu
rajit:bootstrap3-datepicker-fa
rajit:bootstrap3-datepicker-fr
rajit:bootstrap3-datepicker-gl
rajit:bootstrap3-datepicker-he
rajit:bootstrap3-datepicker-hi
rajit:bootstrap3-datepicker-hu
rajit:bootstrap3-datepicker-hy
rajit:bootstrap3-datepicker-id
rajit:bootstrap3-datepicker-it
rajit:bootstrap3-datepicker-ja
rajit:bootstrap3-datepicker-ka
rajit:bootstrap3-datepicker-km
rajit:bootstrap3-datepicker-ko
rajit:bootstrap3-datepicker-lv
rajit:bootstrap3-datepicker-mk
rajit:bootstrap3-datepicker-mn
rajit:bootstrap3-datepicker-nb
rajit:bootstrap3-datepicker-nl
rajit:bootstrap3-datepicker-oc
rajit:bootstrap3-datepicker-pl
rajit:bootstrap3-datepicker-pt-br
rajit:bootstrap3-datepicker-pt
rajit:bootstrap3-datepicker-ro
rajit:bootstrap3-datepicker-ru
rajit:bootstrap3-datepicker-sl
rajit:bootstrap3-datepicker-sr
rajit:bootstrap3-datepicker-sv
rajit:bootstrap3-datepicker-sw
rajit:bootstrap3-datepicker-ta
rajit:bootstrap3-datepicker-th
rajit:bootstrap3-datepicker-tr
rajit:bootstrap3-datepicker-uk
rajit:bootstrap3-datepicker-vi
rajit:bootstrap3-datepicker-zh-cn
rajit:bootstrap3-datepicker-zh-tw
easylogic:summernote
pascoual:pdfkit
lmieulet:meteor-coverage
meteortesting:mocha@2.0.3
@@ -142,3 +88,6 @@ spacebars
service-configuration@1.3.1
communitypackages:picker
minifier-css@1.6.4
blaze
kadira:blaze-layout
peerlibrary:blaze-components
-52
View File
@@ -53,7 +53,6 @@ deps@1.0.12
diff-sequence@1.1.2
dynamic-import@0.7.3
easy:search@2.2.1
easylogic:summernote@0.8.8
easysearch:components@2.2.2
easysearch:core@2.2.2
ecmascript@0.16.7
@@ -66,7 +65,6 @@ es5-shim@4.8.0
fetch@0.1.3
fortawesome:fontawesome@4.7.0
geojson-utils@1.0.11
horka:swipebox@1.0.2
hot-code-push@1.0.4
html-tools@1.1.3
htmljs@1.1.1
@@ -137,55 +135,6 @@ percolate:synced-cron@1.3.2
promise@0.12.2
raix:eventemitter@0.1.3
raix:handlebar-helpers@0.2.5
rajit:bootstrap3-datepicker@1.7.1_1
rajit:bootstrap3-datepicker-ar@1.7.1
rajit:bootstrap3-datepicker-bg@1.7.1
rajit:bootstrap3-datepicker-br@1.7.1
rajit:bootstrap3-datepicker-ca@1.7.1
rajit:bootstrap3-datepicker-cs@1.7.1
rajit:bootstrap3-datepicker-da@1.7.1
rajit:bootstrap3-datepicker-de@1.7.1
rajit:bootstrap3-datepicker-el@1.7.1
rajit:bootstrap3-datepicker-en-gb@1.7.1
rajit:bootstrap3-datepicker-eo@1.7.1
rajit:bootstrap3-datepicker-es@1.7.1
rajit:bootstrap3-datepicker-eu@1.7.1
rajit:bootstrap3-datepicker-fa@1.7.1
rajit:bootstrap3-datepicker-fi@1.7.1
rajit:bootstrap3-datepicker-fr@1.7.1
rajit:bootstrap3-datepicker-gl@1.7.1
rajit:bootstrap3-datepicker-he@1.7.1
rajit:bootstrap3-datepicker-hi@1.7.1
rajit:bootstrap3-datepicker-hu@1.7.1
rajit:bootstrap3-datepicker-hy@1.7.1
rajit:bootstrap3-datepicker-id@1.7.1
rajit:bootstrap3-datepicker-it@1.7.1
rajit:bootstrap3-datepicker-ja@1.7.1
rajit:bootstrap3-datepicker-ka@1.7.1
rajit:bootstrap3-datepicker-km@1.7.1
rajit:bootstrap3-datepicker-ko@1.7.1
rajit:bootstrap3-datepicker-lv@1.7.1
rajit:bootstrap3-datepicker-mk@1.7.1
rajit:bootstrap3-datepicker-mn@1.7.1
rajit:bootstrap3-datepicker-nb@1.7.1
rajit:bootstrap3-datepicker-nl@1.7.1
rajit:bootstrap3-datepicker-oc@1.7.1
rajit:bootstrap3-datepicker-pl@1.7.1
rajit:bootstrap3-datepicker-pt@1.7.1
rajit:bootstrap3-datepicker-pt-br@1.7.1
rajit:bootstrap3-datepicker-ro@1.7.1
rajit:bootstrap3-datepicker-ru@1.7.1
rajit:bootstrap3-datepicker-sl@1.7.1
rajit:bootstrap3-datepicker-sr@1.7.1
rajit:bootstrap3-datepicker-sv@1.7.1
rajit:bootstrap3-datepicker-sw@1.7.1
rajit:bootstrap3-datepicker-ta@1.7.1
rajit:bootstrap3-datepicker-th@1.7.1
rajit:bootstrap3-datepicker-tr@1.7.1
rajit:bootstrap3-datepicker-uk@1.7.1
rajit:bootstrap3-datepicker-vi@1.7.1
rajit:bootstrap3-datepicker-zh-cn@1.7.1
rajit:bootstrap3-datepicker-zh-tw@1.7.1
random@1.2.1
rate-limit@1.1.1
react-fast-refresh@0.2.7
@@ -214,7 +163,6 @@ templating-compiler@1.4.1
templating-runtime@1.5.0
templating-tools@1.2.2
tracker@1.3.2
twbs:bootstrap@3.3.6
ui@1.0.13
underscore@1.0.13
url@1.3.2
+106
View File
@@ -29,6 +29,112 @@ This release adds the following new features:
Thanks to above GitHub users for their contributions and translators for their translations.
# v6.99 2023-07-09 WeKan ® release
This release adds the following new features:
- [Preview PDF](https://github.com/wekan/wekan/pull/4989).
Thanks to VidVidex.
- [Preview PDF translations](https://github.com/wekan/wekan/commit/83ae1d4a19925363d8f176553fb10a98a77420be).
Thanks xet7.
- [Preview PDF to have full width, close at top, and improve viewing at mobile](https://github.com/wekan/wekan/commit/4be5727a18472920ed775b8a2024b9c8ca2fdf0a).
Thanks to xet7.
- [Show Meteor dependency chain with rebuild-wekan.sh](https://github.com/wekan/wekan/commit/ba9f9705d43189d2491266af1fd4817ff34a3b59).
Thanks to xet7.
and adds the following updates:
- [Updated dependencies](https://github.com/wekan/wekan/commit/92c57fc91ea063914730647d0add8dae77187424).
Thanks to developers of dependencies.
- Added Snap MONGO_URL to rebuild-wekan.sh dev options.
[Part 1](https://github.com/wekan/wekan/commit/7d59ae93f9263c383a1c8c8605490d54b1e09ed7),
[Part 2](https://github.com/wekan/wekan/commit/3c2cc351f4bbe82b6870bab0e1891823c359e789).
Thanks to xet7.
- [MongoDB 6.0.7 at Snap](https://github.com/wekan/wekan/commit/5babe0358deae4b01261ee8655ec0e5a38f0344d).
Thanks to MongoDB developers.
and fixes the following bugs:
- [New popup scrolls to top and restore previous position after closing again](https://github.com/wekan/wekan/pull/4979).
Thanks to mfilser.
- [Copy Checklist dialog now set's the last selected board](https://github.com/wekan/wekan/pull/4980).
Thanks to mfilser.
- [Copy Checklist only copied the checklist items at the first time, now always](https://github.com/wekan/wekan/pull/4981).
Thanks to mfilser.
- [Attachment copy changes now the boardId, listId and swimlaneId in the collection data](https://github.com/wekan/wekan/pull/4982).
Thanks to mfilser.
- [Admin attachment view was missing the column header "S3FileId"](https://github.com/wekan/wekan/pull/4983).
Thanks to mfilser.
- [Global Search, limit 0 is no limit](https://github.com/wekan/wekan/pull/4984).
Thanks to mfilser.
- [Admin Report, fixing filesize if not a number](https://github.com/wekan/wekan/pull/4985).
Thanks to mfilser.
- [Global search, found cards count is now substituted by the translation function itself](https://github.com/wekan/wekan/pull/4986).
Thanks to mfilser.
- [Utils of canModifyCard and canModifyBoard + move this general functions to Utils class](https://github.com/wekan/wekan/pull/4987).
Thanks to mfilser.
- Set background color only if it exists.
[Part 1](https://github.com/wekan/wekan/commit/45d33fa2e459717064969a1729e016d4004e5435),
[Part 2](https://github.com/wekan/wekan/commit/c6cad13f1e86fea44c7c16e1a194c6d7164e824a),
[Part 3](https://github.com/wekan/wekan/commit/549b15000b538d6e5013cc978c0f49e753fd903a).
Thanks to xet7.
- [If there is no Custom Field label at minicard, show value full width](https://github.com/wekan/wekan/commit/ffea7aff99db555d357876e1415f9015154782cc).
Thanks to koluka and xet7.
- API: Fix /api/boards/{boardId}/attachments endpoint.
[Part 1](https://github.com/wekan/wekan/pull/4991),
[Part 2](https://github.com/wekan/wekan/pull/4992).
Thanks to VidVidex.
- [Improved attachment gallery and attachment viewer](https://github.com/wekan/wekan/pull/4995).
Thanks to VidVidex.
- [Removed horka:swipebox](https://github.com/wekan/wekan/commit/4148238af31ad31b6190221ad69db865f9ed5ccc).
Thanks to VidVidex and xet7.
- [Bold minicard custom field title](https://github.com/wekan/wekan/pull/4993).
Thanks to VidVidex.
- [Revert first list width change](https://github.com/wekan/wekan/pull/4993).
Thanks to xet7.
- [Fixed maximum call stack exceeded by removing bootstrap 3, datepicker and summernote. Updated jquery. Disabled attachments viewer that opens empty when opening card. Fixes all npm audit errors](https://github.com/wekan/wekan/commit/140a134a11d0b262f69e4f343dddddb87c978748).
Thanks to xet7.
- [Fix attachment viewer not being hidden](https://github.com/wekan/wekan/pull/4997).
Thanks to VidVidex.
Thanks to above GitHub users for their contributions and translators for their translations.
# v6.98 2023-06-22 WeKan ® release
This release adds the following new features:
- Add checklist at top.
[Part 1](https://github.com/wekan/wekan/pull/4973),
[Part 2](https://github.com/wekan/wekan/pull/4974).
Thanks to mfilser.
and adds the following updates:
- [Update rebuild-wekan.sh to use local network IP address](https://github.com/wekan/wekan/commit/6479c6a5c516ade68d50849115367be90d3199a2).
Thanks to xet7.
- Update GitHub Actions.
[Part 1](https://github.com/wekan/wekan/pull/4970),
[Part 2](https://github.com/wekan/wekan/pull/4971).
Thanks to dependabot.
and adds the following upcoming translations:
- [Added translations: Cantonese (China) (yue_CN) and Chinese Traditional (zh-Hant)](https://github.com/wekan/wekan/commit/dc2835d3410fcd7fd376a2be765c63236696605e).
Thanks to translators.
and fixes the following bugs:
- [Wait until user has logged in before fetching language preference](https://github.com/wekan/wekan/pull/4968).
Thanks to simon816.
- [Always fetch favicons from / path](https://github.com/wekan/wekan/commit/4d9f76cc68f435b1bbeeb51833dbce931f626b6d).
Thanks to nebulade.
- [Rounding sort number to next integer](https://github.com/wekan/wekan/pull/4975).
Thanks to mfilser.
- [Reduce list scroll speed while drag/drop the minicard](https://github.com/wekan/wekan/pull/4976).
Thanks to mfilser.
Thanks to above GitHub users for their contributions and translators for their translations.
# v6.97 2023-06-10 WeKan ® release
This release adds the following updates:
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v6.97.0"
appVersion: "v6.99.0"
files:
userUploads:
- README.md
+1 -9
View File
@@ -212,18 +212,10 @@ BlazeComponent.extendComponent({
);
});
function userIsMember() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly()
);
}
// If there is no data in the board (ie, no lists) we autofocus the list
// creation form by clicking on the corresponding element.
const currentBoard = Boards.findOne(Session.get('currentBoard'));
if (userIsMember() && currentBoard.lists().count() === 0) {
if (Utils.canModifyBoard() && currentBoard.lists().count() === 0) {
boardComponent.openNewListForm();
}
},
+3 -3
View File
@@ -1976,7 +1976,7 @@
background-color: #ccc;
color: #222;
}
.board-color-moderndark .attachments-galery .attachment-item {
.board-color-moderndark .attachments-gallery .attachment-item {
color: #222;
}
.board-color-moderndark .minicard-description {
@@ -2148,10 +2148,10 @@
.board-color-exodark .sidebar-content {
box-shadow: 0 0 7px 0 #00897b;
}
.board-color-exodark .attachments-galery .attachment-item {
.board-color-exodark .attachments-gallery .attachment-item {
background: #2b2b2b;
}
.board-color-exodark .attachments-galery .attachment-item:hover {
.board-color-exodark .attachments-gallery .attachment-item:hover {
border: 1px solid #00897b;
background: #2b2b2b;
}
-7
View File
@@ -158,13 +158,6 @@ BlazeComponent.extendComponent({
}).register('boardHeaderBar');
Template.boardHeaderBar.helpers({
canModifyBoard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly()
);
},
boardView() {
return Utils.boardView();
},
+159 -59
View File
@@ -1,90 +1,190 @@
.slide {
/* swipebox slide background gradient of black to blue, so that back SVG images are visible */
background: rgb(2,0,36);
background: linear-gradient(90deg, rgba(2,0,36,1) 0%, rgba(9,9,121,1) 14%, rgba(0,212,255,1) 100%);
.hidden {
display: none;
}
.attachment-upload {
text-align: center;
font-weight: bold;
}
.attachments-galery {
.attachment-gallery {
display: flex;
flex-wrap: wrap;
flex-direction: column;
}
.attachments-galery .attachment-item {
width: 31.33%;
margin: 10px 1% 0;
text-align: center;
border-radius: 3px;
overflow: auto;
background: #ededed;
min-height: 120px;
.attachment-item {
display: flex;
flex-direction: row;
align-items: center;
margin-top: 16px;
}
.attachments-galery .attachment-item:hover {
.attachment-item:hover {
background: #e0e0e0;
}
.attachments-galery .attachment-item.add-attachment {
display: flex;
align-items: center;
}
.attachments-galery .attachment-item.add-attachment a {
.attachment-thumbnail-container {
display: block;
margin: auto;
width: 150px;
min-width: 150px;
max-height: 150px;
padding-right: 16px;
}
.attachments-galery .attachment-item .attachment-thumbnail {
height: 80px;
.attachment-thumbnail {
max-width: 150px;
max-height: 150px;
min-height: 2em;
cursor: pointer;
}
.attachment-thumbnail-text {
min-height: 2em;
display: flex;
align-items: center;
justify-content: center;
position: relative;
font-size: 2em;
cursor: pointer;
border: 1px solid #ccc;
border-radius: 5px;
}
.attachments-galery .attachment-item .attachment-thumbnail .attachment-thumbnail-img {
max-height: 100%;
.attachment-details-container {
display: block;
flex-grow: 1;
}
.attachment-details {
display: flex;
justify-content: space-between;
margin-right: 25px; /* Make sure the icons are not to far to the right */
}
.attachment-actions {
display: flex;
flex-direction: row;
align-items: center;
}
.add-attachment {
display: flex;
align-items: center;
justify-content: center;
border: 1px dashed #555;
border-radius: 5px;
padding: 10px;
cursor: pointer;
margin-top: 16px;
}
.icon {
font-size: 1.5em;
cursor: pointer;
margin-left: 10px;
}
.icon:hover {
color: #666;
}
#viewer-overlay {
width: 100%;
height: 100vh;
position: fixed;
top: 48px; /* height of the navbar */
left: 0;
z-index: 9999 !important;
background: rgba(13,13,13,0.95);
}
#viewer-container {
display: flex;
flex-direction: row;
justify-content: space-between;
height: 100%;
}
#viewer-top-bar {
display: flex;
flex-direction: row;
justify-content: space-between;
width: 100%;
padding: 16px;
}
#attachment-name {
color: white;
font-size: 1.5em;
max-width: calc(100% - 50px); /* Make sure the name does not overlap the close button */
}
#viewer-close {
color:white;
cursor: pointer;
font-size: 4em;
top: 0;
right: 8px;
position: absolute;
}
.attachment-arrow {
font-size: 4em;
color:white;
cursor: pointer;
align-self: center;
margin: 0 20px;
}
#image-viewer {
background:
repeating-conic-gradient(#808080 0% 25%, transparent 0% 50%)
50% / 20px 20px; /* Checkerboard background for transparent images */
max-width: 100%;
}
.attachments-galery .attachment-item .attachment-thumbnail .attachment-thumbnail-ext {
text-transform: uppercase;
font-size: 1.6em;
#pdf-viewer {
width: 40vw;
height: 100vh;
}
.attachments-galery .attachment-item .attachment-details {
font-size: 0.75em;
margin: 3px;
#txt-viewer{
background-color: white;
width: 40vw;
height: 100vh;
}
.attachments-galery .attachment-item .attachment-details .attachment-details-actions a {
.pdf-preview-error {
margin-top: 20vh;
display: block;
font-size: 2em;
color: white;
}
.attachments-galery .attachment-item .attachment-details .attachment-details-actions a.attachment-details-menu {
padding-top: 10px;
}
.attachment-image-preview {
max-width: 100px;
display: block;
box-shadow: 0 1px 2px rgba(0,0,0,0.2);
}
.preview-clipboard-image {
width: 280px;
max-width: 100%;
height: 200px;
display: block;
border: 1px solid #000;
box-shadow: 0 1px 2px rgba(0,0,0,0.2);
@media screen and (max-width: 1600px) {
#pdf-viewer {
width: 60vw;
}
}
@media screen and (max-width: 800px) {
.attachments-galery .attachment-item {
width: 48%;
#viewer-container {
display: block;
}
.attachments-galery .attachment-item .attachment-thumbnail {
height: 130px;
.attachment-arrow{
position: absolute;
bottom: 2.2em;
font-size: 1.6em;
padding: 16px;
}
.attachments-galery .attachment-item .attachment-details {
font-size: 1.1em;
#prev-attachment{
left: 0;
}
}
@media screen and (max-width: 360px) {
.attachments-galery .attachment-item {
#next-attachment{
right: 0;
}
#pdf-viewer {
width: 100%;
height: calc(100vh - 155px); /* Full height - height of top and bottom bars */
}
#txt-viewer {
width: 100%;
height: calc(100vh - 155px); /* Full height - height of top and bottom bars */
}
#audio-viewer {
margin-top: 20%;
width: 100%;
}
.attachments-galery .attachment-item .attachment-thumbnail {
height: 200px;
.attachment-thumbnail-container {
width: 100px;
min-width: 100px;
}
.attachment-thumbnail {
max-width: 100px;
}
.attachment-details {
flex-direction: column;
margin-right: 0px;
}
.attachment-actions {
flex-direction: row;
margin-top: 10px;
}
}
+55 -35
View File
@@ -30,47 +30,73 @@ template(name="attachmentDeletePopup")
p {{_ "attachment-delete-pop"}}
button.js-confirm.negate.full(type="submit") {{_ 'delete'}}
template(name="attachmentsGalery")
.attachments-galery
if currentUser.isBoardMember
unless currentUser.isCommentOnly
unless currentUser.isWorker
//li.attachment-item.add-attachment
a.js-add-attachment(title="{{_ 'add-attachment' }}")
i.fa.fa-plus
template(name="attachmentViewer")
#viewer-overlay.hidden
#viewer-top-bar
span#attachment-name
a#viewer-close.fa.fa-times-thin
#viewer-container
i.fa.fa-chevron-left.attachment-arrow#prev-attachment
#viewer-content
img#image-viewer.hidden
video#video-viewer.hidden(controls="true")
audio#audio-viewer.hidden(controls="true")
object#pdf-viewer.hidden(type="application/pdf")
span.pdf-preview-error {{_ 'preview-pdf-not-supported' }}
object#txt-viewer.hidden(type="text/plain")
i.fa.fa-chevron-right.attachment-arrow#next-attachment
template(name="attachmentGallery")
.attachment-gallery
a.attachment-item.add-attachment.js-add-attachment
i.fa.fa-plus.icon
each attachments
.attachment-item
a.attachment-thumbnail.swipebox(href="{{link}}" title="{{sanitize name}}")
.attachment-thumbnail-container.open-preview(data-attachment-id="{{_id}}" data-card-id="{{ meta.cardId }}")
if link
if($eq extension 'svg')
img.attachment-thumbnail-img(src="{{link}}" title="{{sanitize name}}" type="image/svg+xml")
else if isImage
img.attachment-thumbnail-img(src="{{link}}" title="{{sanitize name}}")
if(isImage)
img.attachment-thumbnail(src="{{link}}" title="{{sanitize name}}")
else if($eq extension 'svg')
img.attachment-thumbnail(src="{{link}}" title="{{sanitize name}}" type="image/svg+xml")
else if($eq extension 'mp3')
video(width="100%" height="100%" title="{{sanitize name}}" controls="true")
video.attachment-thumbnail(title="{{sanitize name}}")
source(src="{{link}}" type="audio/mpeg")
else if($eq extension 'ogg')
video(width="100%" height="100%" title="{{sanitize name}}" controls="true")
video.attachment-thumbnail(title="{{sanitize name}}")
source(src="{{link}}" type="video/ogg")
else if($eq extension 'webm')
video(width="100%" height="100%" title="{{sanitize name}}" controls="true")
video.attachment-thumbnail(title="{{sanitize name}}")
source(src="{{link}}" type="video/webm")
else if($eq extension 'mp4')
video(width="100%" height="100%" title="{{sanitize name}}" controls="true")
video.attachment-thumbnail(title="{{sanitize name}}")
source(src="{{link}}" type="video/mp4")
else
span.attachment-thumbnail-ext= extension
p.attachment-details
= name
span.file-size ({{fileSize size}})
span.attachment-details-actions
a.js-download(href="{{link}}?download=true", download="{{name}}")
i.fa.fa-download
| {{_ 'download'}}
if currentUser.isBoardMember
unless currentUser.isCommentOnly
unless currentUser.isWorker
a.fa.fa-navicon.attachment-details-menu.js-open-attachment-menu(title="{{_ 'attachmentActionsPopup-title'}}")
span.attachment-thumbnail-text= extension
.attachment-details-container
.attachment-details
div
b
= name
span.file-size ({{fileSize size}})
.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.fa.fa-navicon.icon.js-open-attachment-menu(title="{{_ 'attachmentActionsPopup-title'}}")
template(name="attachmentActionsPopup")
ul.pop-over-list
@@ -91,12 +117,6 @@ template(name="attachmentActionsPopup")
| {{_ 'remove-background-image'}}
else
| {{_ 'add-background-image'}}
a.js-rename
i.fa.fa-pencil-square-o
| {{_ 'rename'}}
a.js-confirm-delete
i.fa.fa-close
| {{_ 'delete'}}
p.attachment-storage
| {{versions.original.storage}}
+145 -7
View File
@@ -4,7 +4,20 @@ import DOMPurify from 'dompurify';
const filesize = require('filesize');
const prettyMilliseconds = require('pretty-ms');
Template.attachmentsGalery.events({
// We store current card ID and the ID of currently opened attachment in a
// global var. This is used so that we know what's the next attachment to open
// when the user clicks on the prev/next button in the attachment viewer.
let cardId = null;
let openAttachmentId = null;
Template.attachmentGallery.events({
'click .open-preview'(event) {
openAttachmentId = $(event.currentTarget).attr("data-attachment-id");
cardId = $(event.currentTarget).attr("data-card-id");
openAttachmentViewer(openAttachmentId);
},
'click .js-add-attachment': Popup.open('cardAttachments'),
// If we let this event bubble, FlowRouter will handle it and empty the page
// content, see #101.
@@ -12,9 +25,139 @@ Template.attachmentsGalery.events({
event.stopPropagation();
},
'click .js-open-attachment-menu': Popup.open('attachmentActions'),
'click .js-rename': Popup.open('attachmentRename'),
'click .js-confirm-delete': Popup.afterConfirm('attachmentDelete', function() {
Attachments.remove(this._id);
Popup.back(2);
}),
});
Template.attachmentsGalery.helpers({
function getNextAttachmentId(currentAttachmentId) {
const attachments = Attachments.find({'meta.cardId': cardId}).get();
let i = 0;
for (; i < attachments.length; i++) {
if (attachments[i]._id === currentAttachmentId) {
break;
}
}
return attachments[(i + 1 + attachments.length) % attachments.length]._id;
}
function getPrevAttachmentId(currentAttachmentId) {
const attachments = Attachments.find({'meta.cardId': cardId}).get();
let i = 0;
for (; i < attachments.length; i++) {
if (attachments[i]._id === currentAttachmentId) {
break;
}
}
return attachments[(i - 1 + attachments.length) % attachments.length]._id;
}
function openAttachmentViewer(attachmentId){
const attachment = Attachments.findOne({_id: attachmentId});
$("#attachment-name").text(attachment.name);
// 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);
$("#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;
}
$("#viewer-overlay").removeClass("hidden");
}
function closeAttachmentViewer() {
$("#viewer-overlay").addClass("hidden");
// We need to reset the viewers to avoid showing previous attachments
$("#image-viewer").attr("src", "");
$("#image-viewer").addClass("hidden");
$("#pdf-viewer").attr("data", "");
$("#pdf-viewer").addClass("hidden");
$("#txt-viewer").attr("data", "");
$("#txt-viewer").addClass("hidden");
$("#video-viewer").get(0).pause(); // Stop playback
$("#video-viewer").get(0).currentTime = 0;
$("#video-viewer").empty();
$("#video-viewer").addClass("hidden");
$("#audio-viewer").get(0).pause(); // Stop playback
$("#audio-viewer").get(0).currentTime = 0;
$("#audio-viewer").empty();
$("#audio-viewer").addClass("hidden");
}
Template.attachmentViewer.events({
'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;
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;
closeAttachmentViewer();
},
'click #viewer-close'() {
closeAttachmentViewer();
},
'click #next-attachment'(event) {
closeAttachmentViewer()
const id = getNextAttachmentId(openAttachmentId);
openAttachmentId = id;
openAttachmentViewer(id);
},
'click #prev-attachment'(event) {
closeAttachmentViewer()
const id = getPrevAttachmentId(openAttachmentId);
openAttachmentId = id;
openAttachmentViewer(id);
}
});
Template.attachmentGallery.helpers({
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
},
@@ -183,11 +326,6 @@ BlazeComponent.extendComponent({
events() {
return [
{
'click .js-rename': Popup.open('attachmentRename'),
'click .js-confirm-delete': Popup.afterConfirm('attachmentDelete', function() {
Attachments.remove(this._id);
Popup.back(2);
}),
'click .js-add-cover'() {
Cards.findOne(this.data().meta.cardId).setCover(this.data()._id);
Popup.back();
@@ -37,14 +37,6 @@ const CardCustomField = BlazeComponent.extendComponent({
self.card = Utils.getCurrentCard();
self.customFieldId = this.data()._id;
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly()
);
},
});
CardCustomField.register('cardCustomField');
-11
View File
@@ -2,17 +2,6 @@ import moment from 'moment/min/moment-with-locales';
import { TAPi18n } from '/imports/i18n';
import { DatePicker } from '/client/lib/datepicker';
Template.dateBadge.helpers({
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
});
// editCardReceivedDatePopup
(class extends DatePicker {
onCreated() {
+6 -5
View File
@@ -541,8 +541,8 @@ template(name="cardDetails")
+viewer
= getDescription
.card-checklist-attachmentGalerys
.card-checklist-attachmentGalery.card-checklists
.card-checklist-attachmentGalleries
.card-checklist-attachmentGallery.card-checklists
if currentBoard.allowsChecklists
hr
+checklists(cardId = _id)
@@ -555,14 +555,15 @@ template(name="cardDetails")
i.fa.fa-paperclip
| {{_ 'attachments'}}
if Meteor.settings.public.attachmentsUploadMaxSize
| {{_ 'max-upload-filesize'}} {{Meteor.settings.public.attachmentsUploadMaxSize}}
| {{_ 'max-upload-filesize'}} {{Meteor.settings.public.attachmentsUploadMaxSize}}
br
if Meteor.settings.public.attachmentsUploadMimeTypes
| {{_ 'allowed-upload-filetypes'}} {{Meteor.settings.public.attachmentsUploadMimeTypes}}
br
| {{_ 'invalid-file'}}
.card-checklist-attachmentGalery.card-attachmentGalery
+attachmentsGalery
.card-checklist-attachmentGallery.card-attachmentGallery
+attachmentViewer
+attachmentGallery
hr
.card-details-right
-17
View File
@@ -75,15 +75,6 @@ BlazeComponent.extendComponent({
return !Utils.getPopupCardId() && Meteor.user().hasCardMaximized();
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
scrollParentContainer() {
const cardPanelWidth = 600;
const parentComponent = this.parentComponent();
@@ -662,14 +653,6 @@ Template.cardDetailsActionsPopup.helpers({
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly()
);
},
});
Template.cardDetailsActionsPopup.events({
-10
View File
@@ -83,13 +83,3 @@ BlazeComponent.extendComponent({
];
},
}).register('cardSpentTime');
Template.timeBadge.helpers({
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly()
);
},
});
+15
View File
@@ -164,6 +164,21 @@ textarea.js-edit-checklist-item {
color: #222;
box-shadow: 0 1px 2px rgba(0,0,0,0.2);
}
.add-checklist-top {
/* more space to checklists title */
padding-left: 20px;
/* + is easier clickable */
padding-right: 20px;
}
.add-checklist-top.js-open-inlined-form:hover {
background: #dbdbdb;
color: #222;
box-shadow: 0 1px 2px rgba(0,0,0,.2);
}
.card-details-item-title {
/* max width for adding checklist at top */
width: 100%;
}
.checklist-details-menu {
float: right;
padding: 6px 10px 6px 10px;
+14 -4
View File
@@ -3,6 +3,12 @@ template(name="checklists")
h3.card-details-item-title
i.fa.fa-check
| {{_ 'checklists'}}
if canModifyCard
+inlinedForm(autoclose=false classNames="js-add-checklist" cardId = cardId position="top")
+addChecklistItemForm
else
a.add-checklist-top.js-open-inlined-form(title="{{_ 'add-checklist'}}")
i.fa.fa-plus
if currentUser.isBoardMember
.material-toggle-switch(title="{{_ 'hide-checked-items'}}")
//span.toggle-switch-title
@@ -86,6 +92,13 @@ template(name="editChecklistItemForm")
| {{_ 'convertChecklistItemToCardPopup-title'}}
template(name="checklistItems")
if checklist.items.count
if canModifyCard
+inlinedForm(autoclose=false classNames="js-add-checklist-item" checklist = checklist position="top")
+addChecklistItemForm(checklist=checklist showNewlineBecomesNewChecklistItem=true)
else
a.add-checklist-item.js-open-inlined-form(title="{{_ 'add-checklist-item'}}")
i.fa.fa-plus
.checklist-items.js-checklist-items
each item in checklist.items
+inlinedForm(classNames="js-edit-checklist-item" item = item checklist = checklist)
@@ -140,10 +153,7 @@ template(name="copyAndMoveChecklist")
label {{_ 'boards'}}:
select.js-select-boards(autofocus)
each boards
if $eq _id currentBoard._id
option(value="{{_id}}" selected) {{_ 'current'}}
else
option(value="{{_id}}" selected="{{#if isDialogOptionBoardId _id}}selected{{/if}}") {{title}}
option(value="{{_id}}" selected="{{#if isDialogOptionBoardId _id}}selected{{/if}}") {{title}}
label {{_ 'swimlanes'}}:
select.js-select-swimlanes
+22 -45
View File
@@ -71,15 +71,6 @@ BlazeComponent.extendComponent({
});
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
/** returns the finished percent of the checklist */
finishedPercent() {
const ret = this.data().checklist.finishedPercent();
@@ -97,16 +88,26 @@ BlazeComponent.extendComponent({
//if (card.isLinked()) cardId = card.linkedId;
if (card.isLinkedCard()) cardId = card.linkedId;
let sortIndex;
let checklistItemIndex;
if (this.currentData().position === 'top') {
sortIndex = Utils.calculateIndexData(null, card.firstChecklist()).base;
checklistItemIndex = 0;
} else {
sortIndex = Utils.calculateIndexData(card.lastChecklist(), null).base;
checklistItemIndex = -1;
}
if (title) {
Checklists.insert({
cardId,
title,
sort: card.checklists().count(),
sort: sortIndex,
});
this.closeAllInlinedForms();
setTimeout(() => {
this.$('.add-checklist-item')
.last()
.eq(checklistItemIndex)
.click();
}, 100);
}
@@ -122,13 +123,22 @@ BlazeComponent.extendComponent({
let checklistItems = [title];
if (newlineBecomesNewChecklistItem.checked) {
checklistItems = title.split('\n').map(_value => _value.trim());
if (this.currentData().position === 'top') {
checklistItems = checklistItems.reverse();
}
}
for (let checklistItem of checklistItems) {
let sortIndex;
if (this.currentData().position === 'top') {
sortIndex = Utils.calculateIndexData(null, checklist.firstItem()).base;
} else {
sortIndex = Utils.calculateIndexData(checklist.lastItem(), null).base;
}
ChecklistItems.insert({
title: checklistItem,
checklistId: checklist._id,
cardId: checklist.cardId,
sort: Utils.calculateIndexData(checklist.lastItem()).base,
sort: sortIndex,
});
}
}
@@ -137,15 +147,6 @@ BlazeComponent.extendComponent({
textarea.focus();
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
deleteItem() {
const checklist = this.currentData().checklist;
const item = this.currentData().item;
@@ -280,14 +281,6 @@ BlazeComponent.extendComponent({
onRendered() {
autosize(this.$('textarea.js-add-checklist-item'));
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
events() {
return [
{
@@ -325,14 +318,6 @@ BlazeComponent.extendComponent({
onRendered() {
autosize(this.$('textarea.js-edit-checklist-item'));
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
events() {
return [
{
@@ -349,14 +334,6 @@ BlazeComponent.extendComponent({
}).register('editChecklistItemForm');
Template.checklistItemDetail.helpers({
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
hideCheckedItems() {
const user = Meteor.user();
if (user) return user.hasHideCheckedItems();
+7
View File
@@ -120,6 +120,13 @@
max-width: 100px;
margin-right: 4px;
}
.minicard .minicard-custom-field-item-fullwidth {
flex-grow: 1;
display: block;
word-wrap: break-word;
max-width: 100%;
margin-right: 4px;
}
.minicard .handle {
width: 20px;
height: 20px;
+37 -16
View File
@@ -49,7 +49,8 @@ template(name="minicard")
if currentBoard.allowsCardNumber
span.card-number
| ##{getCardNumber}
= getTitle
b
= getTitle
if $eq 'subtext-with-full-path' currentBoard.presentParentTask
.parent-subtext
| {{ parentString ' > ' }}
@@ -71,25 +72,45 @@ template(name="minicard")
if definition.showOnCard
if trueValue
.minicard-custom-field
// If there is custom field label, show label at left,
// and value at right
if definition.showLabelOnMiniCard
.minicard-custom-field-item
+viewer
= definition.name
.minicard-custom-field-item
if $eq definition.type "currency"
+viewer
= formattedCurrencyCustomFieldValue(definition)
else if $eq definition.type "date"
.date
+minicardCustomFieldDate
else if $eq definition.type "checkbox"
.materialCheckBox(class="{{#if value }}is-checked{{/if}}")
else if $eq definition.type "stringtemplate"
+viewer
= formattedStringtemplateCustomFieldValue(definition)
else
+viewer
= trueValue
.minicard-custom-field-item
if $eq definition.type "currency"
+viewer
= formattedCurrencyCustomFieldValue(definition)
else if $eq definition.type "date"
.date
+minicardCustomFieldDate
else if $eq definition.type "checkbox"
.materialCheckBox(class="{{#if value }}is-checked{{/if}}")
else if $eq definition.type "stringtemplate"
+viewer
= formattedStringtemplateCustomFieldValue(definition)
else
+viewer
= trueValue
else
// If there is no custom field label,
// show value full width
.minicard-custom-field-item-fullwidth
if $eq definition.type "currency"
+viewer
= formattedCurrencyCustomFieldValue(definition)
else if $eq definition.type "date"
.date
+minicardCustomFieldDate
else if $eq definition.type "checkbox"
.materialCheckBox(class="{{#if value }}is-checked{{/if}}")
else if $eq definition.type "stringtemplate"
+viewer
= formattedStringtemplateCustomFieldValue(definition)
else
+viewer
= trueValue
if showAssignee
if getAssignees
-31
View File
@@ -1,14 +1,3 @@
BlazeComponent.extendComponent({
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
}).register('subtaskDetail');
BlazeComponent.extendComponent({
addSubtask(event) {
event.preventDefault();
@@ -70,15 +59,6 @@ BlazeComponent.extendComponent({
textarea.focus();
},
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
deleteSubtask() {
const subtask = this.currentData().subtask;
if (subtask && subtask._id) {
@@ -117,17 +97,6 @@ BlazeComponent.extendComponent({
},
}).register('subtasks');
Template.subtaskItemDetail.helpers({
canModifyCard() {
return (
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
},
});
BlazeComponent.extendComponent({
// ...
}).register('subtaskItemDetail');
+1
View File
@@ -60,6 +60,7 @@ BlazeComponent.extendComponent({
distance: 7,
items: itemsSelector,
placeholder: 'minicard-wrapper placeholder',
scrollSpeed: 10,
start(evt, ui) {
ui.helper.css('z-index', 1000);
ui.placeholder.height(ui.helper.height());
+5 -5
View File
@@ -6,12 +6,12 @@ head
where the application is deployed with a path prefix, but it seems to be
difficult to do that cleanly with Blaze -- at least without adding extra
packages.
link(rel="shortcut icon" type="image/x-icon" href="favicon.ico")
link(rel="apple-touch-icon" sizes="180x180" href="apple-touch-icon.png")
link(rel="icon" type="image/png" sizes="32x32" href="favicon-32x32.png")
link(rel="icon" type="image/png" sizes="16x16" href="favicon-16x16.png")
link(rel="shortcut icon" type="image/x-icon" href="/favicon.ico")
link(rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png")
link(rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png")
link(rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png")
link(rel="manifest" crossOrigin="use-credentials" href="/site.webmanifest")
link(rel="mask-icon" href="safari-pinned-tab.svg" color="#5bbad5")
link(rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5")
meta(name="apple-mobile-web-app-title" content="Wekan")
meta(name="application-name" content="Wekan")
meta(name="msapplication-TileColor" content="#00aba9")
+4 -1
View File
@@ -115,7 +115,10 @@ class AdminReport extends BlazeComponent {
}
fileSize(size) {
const ret = filesize(size);
let ret = "";
if (_.isNumber(size)) {
ret = filesize(size);
}
return ret;
}
@@ -58,6 +58,7 @@ template(name="moveBoardAttachments")
th {{_ 'version-name'}}
th {{_ 'size'}}
th GridFsFileId
th S3FileId
th {{_ 'storage'}}
th {{_ 'action'}}
@@ -41,7 +41,10 @@ BlazeComponent.extendComponent({
},
fileSize(size) {
const ret = filesize(size);
let ret = "";
if (_.isNumber(size)) {
ret = filesize(size);
}
return ret;
},
}).register('statistics');
+8
View File
@@ -42,3 +42,11 @@ Blaze.registerHelper('moment', (...args) => {
const [date, format] = args;
return moment(date).format(format);
});
Blaze.registerHelper('canModifyCard', () =>
Utils.canModifyCard(),
);
Blaze.registerHelper('canModifyBoard', () =>
Utils.canModifyBoard(),
);
+1 -1
View File
@@ -168,7 +168,7 @@ export class CardSearchPagedComponent extends BlazeComponent {
} else if (this.resultsCount === 1) {
return TAPi18n.__('one-card-found');
} else if (this.resultsCount === this.totalHits) {
return TAPi18n.__('n-cards-found').replace('%s', this.resultsCount);
return TAPi18n.__('n-cards-found', {sprintf: [this.resultsCount]});
}
return TAPi18n.__('n-n-of-n-cards-found', {
+13 -2
View File
@@ -4,8 +4,19 @@ import { TAPi18n } from '/imports/i18n';
// the language reactively. If the user is not connected we use the language
// information provided by the browser, and default to english.
Meteor.startup(() => {
const currentUser = Meteor.user();
Meteor.startup(async () => {
let currentUser = Meteor.user();
// If we're still logging in, wait (#4967)
if (!currentUser && Meteor.loggingIn()) {
await new Promise((resolve) => {
Tracker.autorun(() => {
if (!Meteor.loggingIn()) {
resolve();
}
});
});
currentUser = Meteor.user();
}
// Select first available language
const [language] = [
// User profile
+23
View File
@@ -76,6 +76,14 @@ window.Popup = new (class {
dataContext: (this && this.currentData && this.currentData()) || (options && options.dataContextIfCurrentDataIsUndefined) || this,
});
const $contentWrapper = $('.content-wrapper')
if ($contentWrapper.length > 0) {
const contentWrapper = $contentWrapper[0];
self._getTopStack().scrollTop = contentWrapper.scrollTop;
// scroll from e.g. delete comment to the top (where the confirm button is)
$contentWrapper.scrollTop(0);
}
// If there are no popup currently opened we use the Blaze API to render
// one into the DOM. We use a reactive function as the data parameter that
// return the complete along with its top element and depends on our
@@ -129,6 +137,21 @@ window.Popup = new (class {
/// steps back is greater than the popup stack size, the popup will be closed.
back(n = 1) {
if (this._stack.length > n) {
const $contentWrapper = $('.content-wrapper')
if ($contentWrapper.length > 0) {
const contentWrapper = $contentWrapper[0];
const stack = this._stack[this._stack.length - n];
// scrollTopMax and scrollLeftMax only available at Firefox (https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollTopMax)
const scrollTopMax = contentWrapper.scrollTopMax || contentWrapper.scrollHeight - contentWrapper.clientHeight;
if (scrollTopMax && stack.scrollTop > scrollTopMax) {
// sometimes scrollTopMax is lower than scrollTop, so i need this dirty hack
setTimeout(() => {
$contentWrapper.scrollTop(stack.scrollTop);
}, 6);
}
// restore the old popup scroll position
$contentWrapper.scrollTop(stack.scrollTop);
}
_.times(n, () => this._stack.pop());
this._dep.changed();
} else {
+67 -44
View File
@@ -1,20 +1,11 @@
Utils = {
setBackgroundImage(url) {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
/*
if(url) {
if (url !== currentBoard.backgroundImageURL) {
currentBoard.setBackgroundImageURL(url);
} else {
currentBoard.setBackgroundImageURL("");
}
}
*/
if (currentBoard.backgroundImageURL) {
if (currentBoard.backgroundImageURL !== undefined) {
$(".board-wrapper,.board-wrapper .board-canvas").css({"background":"url(" + currentBoard.backgroundImageURL + ")","background-size":"cover"});
$(".swimlane,.swimlane .list,.swimlane .list .list-body,.swimlane .list:first-child .list-body").css({"background-color":"transparent"});
} else {
$(".board-wrapper,.board-wrapper .board-canvas").css({"background": currentBoard.background-color});
} else if (currentBoard.color !== undefined) {
currentBoard.setColor(currentBoard.color);
}
},
/** returns the current board id
@@ -58,6 +49,25 @@ Utils = {
const ret = Cards.findOne(cardId);
return ret;
},
canModifyCard() {
const currentUser = Meteor.user();
const ret = (
currentUser &&
currentUser.isBoardMember() &&
!currentUser.isCommentOnly() &&
!currentUser.isWorker()
);
return ret;
},
canModifyBoard() {
const currentUser = Meteor.user();
const ret = (
currentUser &&
currentUser.isBoardMember() &&
!currentUser.isCommentOnly()
);
return ret;
},
reload() {
// we move all window.location.reload calls into this function
// so we can disable it when running tests.
@@ -331,20 +341,51 @@ Utils = {
increment = 1;
// If we drop the card in the first position
} else if (!prevData) {
base = nextData.sort - 1;
increment = -1;
const nextSortIndex = nextData.sort;
const ceil = Math.ceil(nextSortIndex - 1);
if (ceil < nextSortIndex) {
increment = nextSortIndex - ceil;
base = nextSortIndex - increment;
} else {
base = nextData.sort - 1;
increment = -1;
}
// If we drop the card in the last position
} else if (!nextData) {
base = prevData.sort + 1;
increment = 1;
const prevSortIndex = prevData.sort;
const floor = Math.floor(prevSortIndex + 1);
if (floor > prevSortIndex) {
increment = prevSortIndex - floor;
base = prevSortIndex - increment;
} else {
base = prevData.sort + 1;
increment = 1;
}
}
// In the general case take the average of the previous and next element
// sort indexes.
else {
const prevSortIndex = prevData.sort;
const nextSortIndex = nextData.sort;
increment = (nextSortIndex - prevSortIndex) / (nItems + 1);
base = prevSortIndex + increment;
if (nItems == 1 ) {
if (prevSortIndex < 0 ) {
const ceil = Math.ceil(nextSortIndex - 1);
if (ceil < nextSortIndex && ceil > prevSortIndex) {
increment = ceil - prevSortIndex;
}
} else {
const floor = Math.floor(nextSortIndex - 1);
if (floor < nextSortIndex && floor > prevSortIndex) {
increment = floor - prevSortIndex;
}
}
}
if (!increment) {
increment = (nextSortIndex - prevSortIndex) / (nItems + 1);
}
if (!base) {
base = prevSortIndex + increment;
}
}
// XXX Return a generator that yield values instead of a base with a
// increment number.
@@ -356,34 +397,16 @@ Utils = {
// Determine the new sort index
calculateIndex(prevCardDomElement, nextCardDomElement, nCards = 1) {
let base, increment;
// If we drop the card to an empty column
if (!prevCardDomElement && !nextCardDomElement) {
base = 0;
increment = 1;
// If we drop the card in the first position
} else if (!prevCardDomElement) {
base = Blaze.getData(nextCardDomElement).sort - 1;
increment = -1;
// If we drop the card in the last position
} else if (!nextCardDomElement) {
base = Blaze.getData(prevCardDomElement).sort + 1;
increment = 1;
let prevData = null;
let nextData = null;
if (prevCardDomElement) {
prevData = Blaze.getData(prevCardDomElement)
}
// In the general case take the average of the previous and next element
// sort indexes.
else {
const prevSortIndex = Blaze.getData(prevCardDomElement).sort;
const nextSortIndex = Blaze.getData(nextCardDomElement).sort;
increment = (nextSortIndex - prevSortIndex) / (nCards + 1);
base = prevSortIndex + increment;
if (nextCardDomElement) {
nextData = Blaze.getData(nextCardDomElement);
}
// XXX Return a generator that yield values instead of a base with a
// increment number.
return {
base,
increment,
};
const ret = Utils.calculateIndexData(prevData, nextData, nCards);
return ret;
},
manageCustomUI() {
+4 -1
View File
@@ -540,12 +540,15 @@ export class Query {
}
} else if (operator === OPERATOR_LIMIT) {
const limit = parseInt(value, 10);
if (isNaN(limit) || limit < 1) {
if (isNaN(limit) || limit < 0) {
this.addError(OPERATOR_LIMIT, {
tag: 'operator-limit-invalid',
value,
});
continue;
} else if (limit == 0) {
// no limit
continue;
} else {
value = limit;
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Tipus de fitxers permesos:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Erlaubte Dateitypen zum Hochladen:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Tipos de archivo permitidos para la carga:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+5 -4
View File
@@ -95,7 +95,7 @@
"add-cover": "Gehitu azaleko irudia minitxartelera",
"add-label": "Gehitu etiketa",
"add-list": "Gehitu zerrenda",
"add-after-list": "Add After List",
"add-after-list": "Gehitu zerrendaren ondoren",
"add-members": "Gehitu kideak",
"added": "Gehituta",
"addMemberPopup-title": "Kideak",
@@ -732,7 +732,7 @@
"description-on-minicard": "Description on minicard",
"cover-attachment-on-minicard": "minitxartelaren azalaren irudia",
"badge-attachment-on-minicard": "Eranskinen kopurua minitxartelean",
"card-sorting-by-number-on-minicard": "Card sorting by number on minicard",
"card-sorting-by-number-on-minicard": "Txartelak zenbakien arabera ordenatzea minitxartelean",
"prefix-with-full-path": "Prefix with full path",
"prefix-with-parent": "Prefix with parent",
"subtext-with-full-path": "Subtext with full path",
@@ -1089,7 +1089,7 @@
"label-names": "Label Names",
"archived-at": "hemen gordeta:",
"sort-cards": "Ordenatu txartelak",
"sort-is-on": "Sort is on",
"sort-is-on": "Ordenatzea aktibatuta dago",
"cardsSortPopup-title": "Ordenatu txartelak",
"due-date": "Due Date",
"server-error": "Server Error",
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Kargatzeko baimendutako fitxategi motak:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Sallitut tiedostotyypit:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Types de fichier autorisés pour l'upload :",
"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é."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Types de fichier autorisés pour l'upload :",
"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é."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "סוגי קבצים שמותר להעלות:",
"max-avatar-filesize": "גודל ההעלאה המרבי לתמונת משתמש בבתים:",
"allowed-avatar-filetypes": "סוגי תמונות משתמשים מותרים:",
"invalid-file": "אם שם הקובץ שגוי, העלאה או שינוי שם מושבתים."
"invalid-file": "אם שם הקובץ שגוי, העלאה או שינוי שם מושבתים.",
"preview-pdf-not-supported": "המכשיר שלך לא תומך בהצגה מקדימה של PDF. כדאי לנסות להוריד במקום."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+63 -62
View File
@@ -49,7 +49,7 @@
"activity-archived": "%sをアーカイブしました",
"activity-attached": "%s を %s に添付しました",
"activity-created": "%s を作成しました",
"activity-customfield-created": "created custom field %s",
"activity-customfield-created": "カスタムフィールド %s を作成しました",
"activity-excluded": "%s を %s から除外しました",
"activity-imported": "imported %s into %s from %s",
"activity-imported-board": "imported %s from %s",
@@ -89,13 +89,13 @@
"add-subtask": "サブタスクを追加",
"add-checklist": "チェックリストを追加",
"add-checklist-item": "チェックリストに項目を追加",
"close-add-checklist-item": "Close add an item to checklist form",
"close-edit-checklist-item": "Close edit an item to checklist form",
"close-add-checklist-item": "チェックリストフォームの項目の追加を終了する",
"close-edit-checklist-item": "チェックリストフォームの項目の編集を終了する",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"add-cover": "Add cover image to minicard",
"add-cover": "ミニカードに表紙画像を追加する",
"add-label": "ラベルを追加",
"add-list": "リストを追加",
"add-after-list": "Add After List",
"add-after-list": "リストの最後に追加",
"add-members": "メンバーの追加",
"added": "追加しました",
"addMemberPopup-title": "メンバー",
@@ -135,13 +135,13 @@
"attachmentDeletePopup-title": "添付ファイルを削除しますか?",
"attachments": "添付ファイル",
"auto-watch": "作成されたボードを自動的にウォッチする",
"avatar-too-big": "The avatar is too large (__size__ max)",
"avatar-too-big": "アバターが大きすぎます(最大520KB)",
"back": "戻る",
"board-change-color": "色の変更",
"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": "背景画像を変更",
"board-background-image-url": "背景画像のURL",
"add-background-image": "背景画像を追加",
"remove-background-image": "背景画像を削除",
"show-at-all-boards-page" : "Show at All Boards page",
"board-info-on-my-boards" : "All Boards Settings",
"boardInfoOnMyBoardsPopup-title" : "All Boards Settings",
@@ -154,9 +154,9 @@
"board-public-info": "ボードは公開されます。",
"board-drag-drop-reorder-or-click-open": "Drag and drop to reorder board icons. Click board icon to open board.",
"boardChangeColorPopup-title": "ボードの背景を変更",
"boardChangeBackgroundImagePopup-title": "Change Background Image",
"boardChangeBackgroundImagePopup-title": "背景画像を変更",
"allBoardsChangeColorPopup-title": "色の変更",
"allBoardsChangeBackgroundImagePopup-title": "Change Background Image",
"allBoardsChangeBackgroundImagePopup-title": "背景画像を変更",
"boardChangeTitlePopup-title": "ボード名の変更",
"boardChangeVisibilityPopup-title": "公開範囲の変更",
"boardChangeWatchPopup-title": "ウォッチの変更",
@@ -306,7 +306,7 @@
"linkCardPopup-title": "カードをリンク",
"searchElementPopup-title": "検索",
"copyCardPopup-title": "カードをコピー",
"copyManyCardsPopup-title": "Copy Template to Many Cards",
"copyManyCardsPopup-title": "テンプレートから複数カードにコピー",
"copyManyCardsPopup-instructions": "作成されるカードのタイトルと説明をJSON形式で指定",
"copyManyCardsPopup-format": "[ {\"title\": \"1つ目のカードタイトル\", \"description\":\"1つ目のカードの説明\"}, {\"title\":\"2つ目のカードタイトル\",\"description\":\"2つ目のカードの説明\"},{\"title\":\"最後のカードタイトル\",\"description\":\"最後のカードの説明\"} ]",
"create": "作成",
@@ -374,7 +374,7 @@
"error-board-notAMember": "操作にはボードメンバーである必要があります",
"error-json-malformed": "このテキストは、有効なJSON形式ではありません",
"error-json-schema": "JSONデータが不正な値を含んでいます",
"error-csv-schema": "Your CSV(Comma Separated Values)/TSV (Tab Separated Values) does not include the proper information in the correct format ",
"error-csv-schema": "CSV(カンマ区切り)/TSV(タブ区切り)の書式が不正です",
"error-list-doesNotExist": "このリストは存在しません",
"error-user-doesNotExist": "ユーザーが存在しません",
"error-user-notAllowSelf": "自分を招待することはできません。",
@@ -388,7 +388,7 @@
"export-board-csv": "ボードをCSVにエクスポート",
"export-board-tsv": "ボードをTSVにエクスポート",
"export-board-excel": "ボードをExcelにエクスポート",
"user-can-not-export-excel": "ユーザーはExcelにエクスポートできません ",
"user-can-not-export-excel": "ユーザーはExcelにエクスポートできません",
"export-board-html": "ボードをHTMLにエクスポート",
"export-card": "Export card",
"export-card-pdf": "Export card to PDF",
@@ -413,7 +413,7 @@
"filter-overdue": "期限切れ",
"filter-due-today": "本日期限",
"filter-due-this-week": "今週期限",
"filter-due-next-week": "Due next week",
"filter-due-next-week": "来週期限",
"filter-due-tomorrow": "明日期限",
"list-filter-label": "タイトルでリストをフィルタ",
"filter-clear": "フィルターの解除",
@@ -432,7 +432,7 @@
"filter-to-selection": "フィルターした項目を全選択",
"other-filters-label": "その他のフィルタ",
"advanced-filter-label": "高度なフィルター",
"advanced-filter-description": "高度なフィルタでは次のような演算子を使用できます:== != <= >= && || ( )\n半角スペースは演算子の区切り文字として使用します。\n\nフィールド名や値を使用したフィルタが可能です。\n例:Field1 == Value1\n\n注意:フィールド名や値にスペースが含まれる場合、それらをシングルクォーテーションで囲む必要があります。\n例:'Field 1' == 'Value 1'\n\n単体の制御文字 (' /) は無視されますので、\\\\を使用することができます。\n例:Field1 == I\\\\'m\n\n複数の条件を組み合わせることもできます。\n例:F1 == V1 || F1 == V2\n\n基本的にすべての演算子は左から右に評価されます。\n丸カッコを使用することで順序を変更できます。\n例:F1 == V1 && ( F2 == V2 || F2 == V3 )\n\nテキストフィールドでは正規表現を使用した検索もできます。\n例:F1 == /Tes.*/i",
"advanced-filter-description": "高度なフィルタでは次のような演算子を使用できます:== != <= >= && || ( )\n半角スペースは演算子の区切り文字として使用します。\n\nフィールド名や値を使用したフィルタが可能です。\n例:Field1 == Value1\n\n注意:フィールド名や値にスペースが含まれる場合、それらをシングルクォーテーションで囲む必要があります。\n例:'Field 1' == 'Value 1'\n\n単体の制御文字 (' \\\\/) は無視されますので、\\\\を使用することができます。\n例:Field1 == I\\\\'m\n\n複数の条件を組み合わせることもできます。\n例:F1 == V1 || F1 == V2\n\n基本的にすべての演算子は左から右に評価されます。\n丸カッコを使用することで順序を変更できます。\n例:F1 == V1 && ( F2 == V2 || F2 == V3 )\n\nテキストフィールドでは正規表現を使用した検索もできます。\n例:F1 == /Tes.*/i",
"fullname": "フルネーム",
"header-logo-title": "自分のボードページに戻る。",
"hide-system-messages": "システムメッセージを隠す",
@@ -524,7 +524,7 @@
"normal": "通常",
"normal-desc": "カードの閲覧と編集が可能。設定変更不可。",
"not-accepted-yet": "招待はアクセプトされていません",
"notify-participate": "Receive updates to any cards you participate as creator or member",
"notify-participate": "作成した、またはメンバーとなったカードの更新情報を受け取る",
"notify-watch": "ウォッチしているすべてのボード、リスト、カードの更新情報を受け取る",
"optional": "任意",
"or": "or",
@@ -542,7 +542,7 @@
"public": "公開",
"public-desc": "このボードはパブリックです。リンクを知っていれば誰でもアクセス可能でGoogleのような検索エンジンの結果に表示されます。このボードに追加されている人だけがカード追加が可能です。",
"quick-access-description": "ボードにスターをつけると、ここににショートカットができます。",
"remove-cover": "Remove cover image from minicard",
"remove-cover": "ミニカードから表紙画像を削除する",
"remove-from-board": "ボードから外す",
"remove-label": "ラベルの削除",
"listDeletePopup-title": "リストを削除しますか?",
@@ -553,8 +553,8 @@
"rename": "名前変更",
"rename-board": "ボード名の変更",
"restore": "リストア",
"rescue-card-description": "Show rescue dialogue before closing for unsaved card descriptions",
"rescue-card-description-dialogue": "Overwrite current card description with your changes?",
"rescue-card-description": "未保存のカードの説明を閉じる前に確認ダイアログを表示する",
"rescue-card-description-dialogue": "カードの説明を変更内容で上書きしますか?",
"save": "保存",
"search": "検索",
"rules": "ルール",
@@ -608,7 +608,7 @@
"custom-top-left-corner-logo-height": "カスタムの左上ロゴイメージの高さ。デフォルト:27",
"custom-login-logo-image-url": "カスタムのログインロゴイメージのURL",
"custom-login-logo-link-url": "カスタムのログインロゴイメージのリンクURL",
"custom-help-link-url": "Custom Help Link URL",
"custom-help-link-url": "ヘルプのリンクURLを変更する",
"text-below-custom-login-logo": "カスタムログインロゴイメージの下のテキスト",
"automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
"username": "ユーザー名",
@@ -656,15 +656,15 @@
"email-smtp-test-text": "メールを送信しました",
"error-invitation-code-not-exist": "招待コードが存在しません",
"error-notAuthorized": "このページを参照する権限がありません。",
"webhook-title": "Webhook Name",
"webhook-title": "Webフック名",
"webhook-token": "トークン(認証用オプション)",
"outgoing-webhooks": "Outgoing Webhooks",
"outgoing-webhooks": "発信Webフック",
"bidirectional-webhooks": "双方向Webフック",
"outgoingWebhooksPopup-title": "Outgoing Webhooks",
"outgoingWebhooksPopup-title": "発信Webフック",
"boardCardTitlePopup-title": "カード名フィルタ",
"disable-webhook": "このWebフックを無効化",
"global-webhook": "グローバルWebフック",
"new-outgoing-webhook": "New Outgoing Webhook",
"new-outgoing-webhook": "発信Webフックの作成",
"no-name": "(名前なし)",
"Node_version": "Nodeバージョン",
"Meteor_version": "Meteor バージョン",
@@ -722,17 +722,17 @@
"queue": "キュー",
"subtask-settings": "サブタスク設定",
"card-settings": "カード設定",
"minicard-settings": "Minicard Settings",
"minicard-settings": "ミニカード設定",
"boardSubtaskSettingsPopup-title": "ボードのサブタスク設定",
"boardCardSettingsPopup-title": "カード設定",
"boardMinicardSettingsPopup-title": "Minicard Settings",
"boardMinicardSettingsPopup-title": "ミニカード設定",
"deposit-subtasks-board": "サブタスクの作成先ボード:",
"deposit-subtasks-list": "サブタスクの作成先リスト:",
"show-parent-in-minicard": "ミニカード上の親表示",
"description-on-minicard": "Description on minicard",
"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",
"description-on-minicard": "ミニカードの説明",
"cover-attachment-on-minicard": "ミニカードの表紙画像",
"badge-attachment-on-minicard": "ミニカードの添付ファイル数",
"card-sorting-by-number-on-minicard": "ミニカードの番号順でソートする",
"prefix-with-full-path": "タイトルの前に親をフル表示",
"prefix-with-parent": "タイトルの前に親を表示",
"subtext-with-full-path": "タイトルの後ろに親をフル表示",
@@ -845,7 +845,7 @@
"r-items-list": "アイテム1、アイテム2、アイテム3",
"r-add-swimlane": "スイムレーンを追加",
"r-swimlane-name": "スイムレーン名",
"r-board-note": "Note: leave a field empty to match every possible value. ",
"r-board-note": "注意:フィールドを空にすると全ての値に一致します",
"r-checklist-note": "注意:チェックリスト項目はカンマ区切りで記述する必要があります。",
"r-when-a-card-is-moved": "カードが別のリストに移動したとき",
"r-set": "設定する",
@@ -857,7 +857,7 @@
"r-df-received-at": "受付",
"r-to-current-datetime": "現在日時に",
"r-remove-value-from": "次の値を削除:",
"r-link-card": "Link card to",
"r-link-card": "カードをリンクする",
"ldap": "LDAP",
"oauth2": "OAuth2",
"cas": "CAS",
@@ -866,8 +866,8 @@
"custom-product-name": "カスタム製品名",
"layout": "レイアウト",
"hide-logo": "ロゴを隠す",
"hide-card-counter-list": "Hide card counter list on All Boards",
"hide-board-member-list": "Hide board member list on All Boards",
"hide-card-counter-list": "すべてのボードからカードカウンタリストを非表示にする。",
"hide-board-member-list": "すべてのボードからボードメンバリストを非表示にする。",
"add-custom-html-after-body-start": "<body> の開始直後にカスタムHTMLを追加する",
"add-custom-html-before-body-end": "</body> の終了直前にカスタムHTMLを追加する",
"error-undefined": "何らかの問題が発生しています",
@@ -876,9 +876,9 @@
"oidc-button-text": "Customize the OIDC button text",
"default-authentication-method": "デフォルトの認証方式",
"duplicate-board": "ボードの複製",
"org-number": "The number of organizations is: ",
"team-number": "The number of teams is: ",
"people-number": "The number of people is: ",
"org-number": "組織数:",
"team-number": "チーム数: ",
"people-number": "人数:",
"swimlaneDeletePopup-title": "スイムレーンを削除しますか?",
"swimlane-delete-pop": "すべての内容がアクティビティから削除されます。この削除は元に戻すことができません。",
"restore-all": "全てをリストアする",
@@ -896,7 +896,7 @@
"almostdue": "期限 %s が近づいています",
"pastdue": "期限 %s が過ぎています",
"duenow": "期限 %s は本日です",
"act-newDue": "__list__/__card__ has 1st due reminder [__board__]",
"act-newDue": "__list __ / __ card__に1回目の有効期限アラートがあります [__board__]",
"act-withDue": "__list __ / __ card__ の有効期限のアラート [__board__]",
"act-almostdue": "__card__ の期限日時 (__timeValue__) が近づいています",
"act-pastdue": "__card__ の期限日時 (__timeValue__) が過ぎています",
@@ -921,7 +921,7 @@
"editUserPopup-title": "ユーザーを編集",
"newUserPopup-title": "新規ユーザー",
"notifications": "通知",
"help": "Help",
"help": "ヘルプ",
"view-all": "全てを表示",
"filter-by-unread": "未読でフィルタ",
"mark-all-as-read": "全て既読にする",
@@ -1047,7 +1047,7 @@
"operator-debug-invalid": "%s is not a valid debug predicate",
"next-page": "次のページ",
"previous-page": "前のページ",
"heading-notes": "注意\n ",
"heading-notes": "注意",
"globalSearch-instructions-heading": "検索手順",
"globalSearch-instructions-description": "検索は演算子を含めた絞り込みが可能です。演算子は、演算子の名前と値を半角コロンで区切った記述で指定します。例えば、`リスト:対応不可`と指定すると、*対応不可*という名前のリストに含まれるカードという制約で検索します。値にスペースや特殊文字が含まれる場合は引用符で囲む必要があります(例:`__operator_list__:\"レビュー 本日中\"`)。",
"globalSearch-instructions-operators": "有効な演算子:",
@@ -1075,13 +1075,13 @@
"globalSearch-instructions-status-private": "`__predicate_private__` - 非公開のボードにあるカード",
"globalSearch-instructions-operator-has": "`__operator_has__:<field>` - *<field>* は`__predicate_attachment__`、`__predicate_checklist__`、`__predicate_description__`、`__predicate_start__`、`__predicate_due__`、`__predicate_end__`、`__predicate_assignee__`、`__predicate_member__` のいずれかを指定します。*<field>* の前に「`-`」を記述すると、そのフィールドに値がないものを検索します(例:「`所有:-期限日`」は期限日がないカードを検索します)。",
"globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - *<sort-name>* は `__predicate_due__`、`__predicate_created__`、`__predicate_modified__` のいずれかを指定します。降順にする場合は、並べ替え名の前に「`-`」を記述します。",
"globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - 「*<n>*」には、ページごとに表示されるカードの数を表す正の整数を指定します。 ",
"globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - 「*<n>*」には、ページごとに表示されるカードの数を表す正の整数を指定します。",
"globalSearch-instructions-notes-1": "複数の演算子を指定できます。",
"globalSearch-instructions-notes-2": "同じ演算子はOR条件になります。複数の条件のいずれかに一致したカードが検索されます。`__operator_list__:有効 __operator_list__:対応不要` の場合、リスト名が *有効* または *対応不要* のカードが検索されます。",
"globalSearch-instructions-notes-3": "異なる演算子はAND条件になります。異なる演算子すべてに一致したカードのみが検索されます。`__operator_list__:有効 __operator_label__:赤` は、*有効* のリストの中の *赤* のラベルのカードのみが検索されます。",
"globalSearch-instructions-notes-3-2": "日付には正負の整数や、現在からの期間として `__predicate_week__`、`__predicate_month__`、`__predicate_quarter__`、`__predicate_year__` を指定できます。",
"globalSearch-instructions-notes-4": "テキスト検索では大文字と小文字は区別されません。",
"globalSearch-instructions-notes-5": "デフォルトではアーカイブされたカードは検索されません。 ",
"globalSearch-instructions-notes-5": "デフォルトではアーカイブされたカードは検索されません。",
"link-to-search": "この検索へのリンク",
"excel-font": "Arial",
"number": "数値",
@@ -1089,7 +1089,7 @@
"label-names": "ラベル名",
"archived-at": "アーカイブされた:",
"sort-cards": "カードの並び替え",
"sort-is-on": "Sort is on",
"sort-is-on": "ソートが有効",
"cardsSortPopup-title": "カードの並び替え",
"due-date": "期限日",
"server-error": "サーバーエラー",
@@ -1189,14 +1189,14 @@
"attachmentActionsPopup-title": "Attachment Actions",
"attachment-move-storage-fs": "Move attachment to filesystem",
"attachment-move-storage-gridfs": "Move attachment to GridFS",
"attachment-move-storage-s3": "Move attachment to S3",
"attachment-move-storage-s3": "添付ファイルを S3 に移動する",
"attachment-move": "Move Attachment",
"move-all-attachments-to-fs": "Move all attachments to filesystem",
"move-all-attachments-to-gridfs": "Move all attachments to GridFS",
"move-all-attachments-to-s3": "Move all attachments to S3",
"move-all-attachments-to-s3": "複数の添付ファイルを S3 に移動する",
"move-all-attachments-of-board-to-fs": "Move all attachments of board to filesystem",
"move-all-attachments-of-board-to-gridfs": "Move all attachments of board to GridFS",
"move-all-attachments-of-board-to-s3": "Move all attachments of board to S3",
"move-all-attachments-of-board-to-s3": "ボードのすべての添付ファイルを S3 に移動する",
"path": "Path",
"version-name": "Version-Name",
"size": "Size",
@@ -1204,20 +1204,21 @@
"action": "操作",
"board-title": "Board Title",
"attachmentRenamePopup-title": "名前変更",
"uploading": "Uploading",
"remaining_time": "Remaining time",
"speed": "Speed",
"progress": "Progress",
"password-again": "Password (again)",
"if-you-already-have-an-account": "If you already have an account",
"register": "Register",
"forgot-password": "Forgot password",
"uploading": "アップグレード中",
"remaining_time": "残り時間",
"speed": "速度",
"progress": "進捗",
"password-again": "パスワード(再入力)",
"if-you-already-have-an-account": "すでにアカウントを持っている場合",
"register": "登録",
"forgot-password": "パスワードを忘れた",
"minicardDetailsActionsPopup-title": "Card Details",
"Mongo_sessions_count": "Mongo sessions count",
"Mongo_sessions_count": "Mongo セッション数",
"change-visibility": "公開範囲の変更",
"max-upload-filesize": "Max upload filesize in bytes:",
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"max-upload-filesize": "バイト単位の最大アップロードサイズ: ",
"allowed-upload-filetypes": "アップロードできるファイルタイプ",
"max-avatar-filesize": "バイト単位の最大アバターファイルサイズ:",
"allowed-avatar-filetypes": "アバターに使用できるファイルタイプ",
"invalid-file": "無効なファイル名の場合アップロードまたは名前の変更は取り消されます。",
"preview-pdf-not-supported": "この端末はPDFのプレビューに対応していません。他の端末でダウンロードしてください。"
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
+2 -1
View File
@@ -1219,5 +1219,6 @@
"allowed-upload-filetypes": "Allowed upload filetypes:",
"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."
"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."
}
Loaded 100 of 177 files, more files were not shown because too many files have changed in this diff. Show more