mirror of
https://github.com/wekan/wekan.git
synced 2026-11-05 21:44:59 -05:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6507d2be71 | ||
|
|
21785a9322 | ||
|
|
fc387d0ddf | ||
|
|
27e749abb8 | ||
|
|
83143ee570 | ||
|
|
d4252f3056 | ||
|
|
1dd97ebd49 | ||
|
|
bfa15d4719 | ||
|
|
4b22f29826 | ||
|
|
0f14bd3358 | ||
|
|
f7d5d65c0c | ||
|
|
86fbfd3c50 | ||
|
|
cfde9d5a61 | ||
|
|
a9932823c4 | ||
|
|
67b99a88fc | ||
|
|
455ec8c3d8 | ||
|
|
42ece21fa1 | ||
|
|
663ecab51e | ||
|
|
dbae718f4d | ||
|
|
52e76c5496 | ||
|
|
71b6cd630a | ||
|
|
2c36fe3d45 | ||
|
|
28b14777c2 | ||
|
|
4e97a5351a | ||
|
|
2ab5009de7 | ||
|
|
65668e91fe | ||
|
|
d6098dbedf | ||
|
|
fe6b94e539 | ||
|
|
00e60ff855 | ||
|
|
c4882707e9 | ||
|
|
402528d97e | ||
|
|
4e25e335a9 | ||
|
|
972981a579 | ||
|
|
ce5abf8299 | ||
|
|
8bb31861a7 | ||
|
|
7d2e40ee47 | ||
|
|
f0de48a3c4 | ||
|
|
799e66c078 | ||
|
|
55903472aa | ||
|
|
22c7d3b07f | ||
|
|
485737f6b0 | ||
|
|
b756150f76 | ||
|
|
40108d63bb | ||
|
|
8f3103e329 | ||
|
|
9bf1478587 | ||
|
|
91cf377948 | ||
|
|
ff4c8a5d23 | ||
|
|
439f76e48a | ||
|
|
720d4223e2 | ||
|
|
4518e2d23c | ||
|
|
c9a24c38d4 | ||
|
|
b54d17467c | ||
|
|
5c93de8911 | ||
|
|
8323649cf0 | ||
|
|
75fbf00eb7 | ||
|
|
820908ab05 | ||
|
|
4fe168b03b | ||
|
|
4825bcec8d | ||
|
|
0f99f22fa5 | ||
|
|
051d1670b7 | ||
|
|
ef0e1f9089 | ||
|
|
974c177237 | ||
|
|
75de7b119d | ||
|
|
b088763272 | ||
|
|
c45bf4e368 | ||
|
|
af5054e7fb | ||
|
|
9529d71732 | ||
|
|
74ea237c2a | ||
|
|
c8f1d99fe6 | ||
|
|
a22631915b | ||
|
|
05df419a46 | ||
|
|
0f1b57fee4 | ||
|
|
e69a9f17b8 | ||
|
|
de3467a6d5 | ||
|
|
7214f6d49a | ||
|
|
c1bc6d4733 | ||
|
|
3d4f97364c | ||
|
|
2c74240bcb | ||
|
|
90da40fde0 | ||
|
|
fe985e219a | ||
|
|
f5355422ee | ||
|
|
aae7960f25 | ||
|
|
b99f878c98 | ||
|
|
4b61f38cba | ||
|
|
4085a98bcd | ||
|
|
524e3b098f | ||
|
|
dc8595ad68 | ||
|
|
a76067abfa | ||
|
|
6ef10a54bd | ||
|
|
c9e80eaa03 | ||
|
|
e47dcf734a | ||
|
|
4dfcc31506 | ||
|
|
14e5c96f73 | ||
|
|
53e569d285 | ||
|
|
71381dce95 | ||
|
|
0cc63b810c | ||
|
|
7724b0d5bb | ||
|
|
6206eca725 | ||
|
|
069e2c69b2 | ||
|
|
0e902d73a8 | ||
|
|
be72274ca5 | ||
|
|
ab0dacc65a | ||
|
|
cfa0a063ce |
No files matched your search
@@ -1,14 +1,14 @@
|
||||
## Issue
|
||||
<!--
|
||||
Please report these elsewhere:
|
||||
- SECURITY ISSUES, PGP EMAIL: https://github.com/wekan/wekan/blob/main/SECURITY.md
|
||||
- UCS: https://github.com/wekan/univention/issues
|
||||
|
||||
**[PLEASE UPGRADE](https://github.com/wekan/wekan/wiki/Backup)** to the newest WeKan ® before reporting an issue.
|
||||
Please search existing Open and Closed issues, most questions have already been answered.
|
||||
|
||||
If you can not login for any reason: https://github.com/wekan/wekan/wiki/Forgot-Password
|
||||
Email settings, only SMTP MAIL_URL and MAIL_FROM are in use: https://github.com/wekan/wekan/wiki/Troubleshooting-Mail
|
||||
|
||||
The following types of issues should be reported separately:
|
||||
- SECURITY ISSUES: https://github.com/wekan/wekan/blob/main/SECURITY.md
|
||||
- UCS: https://github.com/wekan/univention/issues
|
||||
-->
|
||||
|
||||
### Server Setup Information
|
||||
|
||||
@@ -25,6 +25,6 @@ jobs:
|
||||
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
||||
|
||||
- name: Run chart-releaser
|
||||
uses: helm/chart-releaser-action@v1.5.0
|
||||
uses: helm/chart-releaser-action@v1.6.0
|
||||
env:
|
||||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
|
||||
+4
-4
@@ -20,11 +20,11 @@ cottz:publish-relations
|
||||
dburles:collection-helpers
|
||||
idmontie:migrations
|
||||
easy:search
|
||||
mongo@1.16.7
|
||||
mongo@1.16.8-beta2140.0
|
||||
mquandalle:collection-mutations
|
||||
|
||||
# Account system
|
||||
accounts-password@2.3.4
|
||||
accounts-password@2.4.0-beta2140.0
|
||||
useraccounts:core
|
||||
useraccounts:flow-routing
|
||||
useraccounts:unstyled
|
||||
@@ -83,14 +83,14 @@ matb33:collection-hooks
|
||||
simple:json-routes
|
||||
kadira:flow-router
|
||||
spacebars
|
||||
service-configuration@1.3.1
|
||||
service-configuration@1.3.2-beta2140.0
|
||||
communitypackages:picker
|
||||
minifier-css@1.6.4
|
||||
blaze
|
||||
kadira:blaze-layout
|
||||
peerlibrary:blaze-components
|
||||
ejson@1.1.3
|
||||
logging@1.3.2
|
||||
logging@1.3.3-beta2140.0
|
||||
wekan-fullcalendar
|
||||
momentjs:moment@2.29.3
|
||||
wekan-fontawesome
|
||||
+1
-1
@@ -1 +1 @@
|
||||
METEOR@2.13.3
|
||||
METEOR@2.14-beta.0
|
||||
+15
-14
@@ -1,6 +1,6 @@
|
||||
accounts-base@2.2.8
|
||||
accounts-oauth@1.4.2
|
||||
accounts-password@2.3.4
|
||||
accounts-base@2.2.9-beta2140.0
|
||||
accounts-oauth@1.4.3-beta2140.0
|
||||
accounts-password@2.4.0-beta2140.0
|
||||
aldeed:collection2@2.10.0
|
||||
aldeed:collection2-core@1.2.0
|
||||
aldeed:schema-deny@1.1.0
|
||||
@@ -30,7 +30,7 @@ ddp@1.4.1
|
||||
ddp-client@2.6.1
|
||||
ddp-common@1.4.0
|
||||
ddp-rate-limiter@1.2.0
|
||||
ddp-server@2.6.2
|
||||
ddp-server@2.7.0-beta2140.0
|
||||
deps@1.0.12
|
||||
diff-sequence@1.1.2
|
||||
dynamic-import@0.7.3
|
||||
@@ -44,7 +44,7 @@ ecmascript-runtime-server@0.11.0
|
||||
ejson@1.1.3
|
||||
email@2.2.5
|
||||
es5-shim@4.8.0
|
||||
fetch@0.1.3
|
||||
fetch@0.1.4-beta2140.0
|
||||
geojson-utils@1.0.11
|
||||
hot-code-push@1.0.4
|
||||
html-tools@1.1.3
|
||||
@@ -60,10 +60,10 @@ kadira:flow-router@2.12.1
|
||||
konecty:mongo-counter@0.0.5_3
|
||||
lmieulet:meteor-coverage@1.1.4
|
||||
localstorage@1.2.0
|
||||
logging@1.3.2
|
||||
logging@1.3.3-beta2140.0
|
||||
matb33:collection-hooks@1.3.0
|
||||
mdg:validation-error@0.5.1
|
||||
meteor@1.11.3
|
||||
meteor@1.11.4-beta2140.0
|
||||
meteor-autosize@5.0.1
|
||||
meteor-base@1.5.1
|
||||
meteorhacks:aggregate@1.3.0
|
||||
@@ -77,11 +77,11 @@ minifier-css@1.6.4
|
||||
minifier-js@2.7.5
|
||||
minifiers@1.1.8-faster-rebuild.0
|
||||
minimongo@1.9.3
|
||||
modern-browsers@0.1.9
|
||||
modern-browsers@0.1.10-beta2140.0
|
||||
modules@0.19.0
|
||||
modules-runtime@0.13.1
|
||||
momentjs:moment@2.29.3
|
||||
mongo@1.16.7
|
||||
mongo@1.16.8-beta2140.0
|
||||
mongo-decimal@0.1.3
|
||||
mongo-dev-server@1.1.0
|
||||
mongo-id@1.0.8
|
||||
@@ -94,8 +94,8 @@ mquandalle:jade-compiler@0.4.5
|
||||
mquandalle:jquery-textcomplete@0.8.0_1
|
||||
mquandalle:mousetrap-bindglobal@0.0.1
|
||||
msavin:usercache@1.8.0
|
||||
npm-mongo@4.16.0
|
||||
oauth@2.2.0
|
||||
npm-mongo@4.17.0-beta2140.0
|
||||
oauth@2.2.1-beta2140.0
|
||||
oauth2@1.3.2
|
||||
observe-sequence@1.0.21
|
||||
ongoworks:speakingurl@1.1.0
|
||||
@@ -117,13 +117,13 @@ raix:eventemitter@0.1.3
|
||||
raix:handlebar-helpers@0.2.5
|
||||
random@1.2.1
|
||||
rate-limit@1.1.1
|
||||
react-fast-refresh@0.2.7
|
||||
react-fast-refresh@0.2.8-beta2140.0
|
||||
reactive-dict@1.3.1
|
||||
reactive-var@1.0.12
|
||||
reload@1.3.1
|
||||
retry@1.1.0
|
||||
routepolicy@1.1.1
|
||||
service-configuration@1.3.1
|
||||
service-configuration@1.3.2-beta2140.0
|
||||
session@1.2.1
|
||||
sha@1.0.9
|
||||
shell-server@0.5.0
|
||||
@@ -142,6 +142,7 @@ templating-compiler@1.4.1
|
||||
templating-runtime@1.5.0
|
||||
templating-tools@1.2.2
|
||||
tracker@1.3.2
|
||||
typescript@4.9.4
|
||||
ui@1.0.13
|
||||
underscore@1.0.13
|
||||
url@1.3.2
|
||||
@@ -162,4 +163,4 @@ wekan-markdown@1.0.9
|
||||
wekan-oidc@1.0.12
|
||||
yasaricli:slugify@0.0.7
|
||||
zimme:active-route@2.3.2
|
||||
zodern:types@1.0.9
|
||||
zodern:types@1.0.10
|
||||
+141
@@ -20,6 +20,147 @@ Note:
|
||||
|
||||
[How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585)
|
||||
|
||||
# v7.18 2023-11-14 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Added restore list and changing list title to outgoing webhooks](https://github.com/wekan/wekan/pull/5198).
|
||||
Thanks to gustavengstrom.
|
||||
|
||||
and adds the following updates:
|
||||
|
||||
- [Updated release scripts](https://github.com/wekan/wekan/commit/d4252f30567665897c6314b578dff1fe294265de).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Add Docker label org.opencontainers.image.source](https://github.com/wekan/wekan/pull/5196).
|
||||
Thanks to mueller-ma.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.17 2023-11-09 WeKan ® release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix move card rule on checklist complete doesn't work, with ReactiveMiniMongoIndex for Server-Side](https://github.com/wekan/wekan/pull/5194).
|
||||
Thanks to mfilser.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.16 2023-11-09 WeKan ® release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix users.save is not a function](https://github.com/wekan/wekan/commit/42ece21fa14113a28792bf97dfd899a064f0ea56).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.15 2023-11-09 WeKan ® release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fix missing profile/avatar pictures](https://github.com/wekan/wekan/commit/4e97a5351a4ac715d21503a129f12fe5bf3f4016).
|
||||
Thanks to kovacs-andras and xet7.
|
||||
- [Commented out links at My Cards Table, because they unexpectly caused to go elsewhere from current view](https://github.com/wekan/wekan/commit/2c36fe3d45a0f95f8ba18526ffd1dc230f6f46a8).
|
||||
Thanks to xet7.
|
||||
- [Add more Docker Labels to Dockerfile](https://github.com/wekan/wekan/commit/52e76c5496b6621916b61f35d5b68687685e0809).
|
||||
Thanks to mueller-ma and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.14 2023-11-09 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Upgraded to Meteor 2.14-beta.0](https://github.com/wekan/wekan/commit/55903472aae0032a49f03529cc9013007a20475e).
|
||||
Thanks to Meteor developers.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Removed double edit text from card description](https://github.com/wekan/wekan/commit/972981a57997fdaeb5202a3c588cd9eb83516360).
|
||||
Thanks to derbolle and xet7.
|
||||
- [Fix Notifications are identical until one is marked read](https://github.com/wekan/wekan/pull/5189).
|
||||
Thanks to mfilser.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.12 2023-11-02 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Updated Snap Candidate MongoDB to 6.0.11](https://github.com/wekan/wekan/commit/ff4c8a5d23d9315ad12970c35cf2928b204b073b).
|
||||
Thanks to MongoDB developers.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix Add List button too wide at themes: Clearblue, Modern, Exodark](https://github.com/wekan/wekan/commit/b756150f76c711cf93aa486a55d0e3340f558c01).
|
||||
Thanks to xet7.
|
||||
- [Fix Windows build bundle script](https://github.com/wekan/wekan/commit/720d4223e21da7fa6651dcb51def81a8e081750d).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.11 2023-11-02 WeKan ® release
|
||||
|
||||
Known issues: At some non-amd64 platforms, Node.js 14.x may show segmentation fault.
|
||||
This will be fixed when upgrading to Node.js 18.x or newer works.
|
||||
|
||||
This release fixes the following CRITICAL SECURITY ISSUES:
|
||||
|
||||
- [Fix Security issue: Hyperlink injection](https://github.com/wekan/wekan/commit/4fe168b03b1f4303c2b117d24ad63ca9f40a02d2).
|
||||
Thanks to mc-marcy and xet7.
|
||||
|
||||
and adds the following new features:
|
||||
|
||||
- [Feature: Convert to Markdown button at editor of Card Description and Comment. Useful when there is no WYSIWYG editor](https://github.com/wekan/wekan/commit/069e2c69b2e00e402628a3123164af257533ddc6).
|
||||
Thanks to BabyFnord and xet7.
|
||||
- [Feature: Copy Card Details code block to clipboard](https://github.com/wekan/wekan/commit/0cc63b810c5a9e23a8a3939a11176f25c1fa8dc7).
|
||||
Thanks to C0rn3j and xet7.
|
||||
|
||||
and adds the following updates:
|
||||
|
||||
- [docker-compose.yml back to latest docker image tag](https://github.com/wekan/wekan/commit/cfa0a063ce4ac5b2dcfa9952764cb15ce21bc263).
|
||||
Thanks to xet7.
|
||||
- [Updated year at license](https://github.com/wekan/wekan/commit/0e902d73a881e4f1a17ee7f2028e1b041872ab61).
|
||||
Thanks to xet7.
|
||||
- [Updated screenshot at readme](https://github.com/wekan/wekan/commit/be72274ca515dc7b652cb1b93361e97089186166).
|
||||
Thanks to xet7.
|
||||
- [Added info to docker-compose.yml about newest docker image of newest git commit automatic build](https://github.com/wekan/wekan/commit/c9e80eaa03e42d1976576ad6553c056840f3060c).
|
||||
Thanks to xet7.
|
||||
- Updated SECURITY.md.
|
||||
[Part 1](https://github.com/wekan/wekan/commit/aae7960f251fe626d8bb319643e4cd939a8fbfa9),
|
||||
[Part 2](https://github.com/wekan/wekan/commit/f5355422ee21d54e26785f483a7eaecade3d1b64),
|
||||
[Part 3](https://github.com/wekan/wekan/commit/fe985e219a9e467973e9449762fc17c6a94e9031),
|
||||
[Part 4](https://github.com/wekan/wekan/commit/90da40fde0b2c68d3f751fe8ff2a06f3180cf6d9),
|
||||
[Part 5](https://github.com/wekan/wekan/commit/2c74240bcb9d24e206ffe4e59bc8242a6abd07d9).
|
||||
- Updated dependencies.
|
||||
[Part 1](https://github.com/wekan/wekan/commit/c45bf4e36882c898055db248bf54a8e7e0add3c4),
|
||||
[Part 1](https://github.com/wekan/wekan/commit/b08876327237c549783a2ee7d07db7f2dd0904a7),
|
||||
[Part 1](https://github.com/wekan/wekan/commit/75de7b119d868e0e1ef650d7d795b7349b1c9281),
|
||||
[Part 1](https://github.com/wekan/wekan/commit/974c17723705d58b660154bb2fd8997c018ddddc).
|
||||
Thanks to developers of dependencies.
|
||||
- [Docker base image to Ubuntu 23.10](https://github.com/wekan/wekan/commit/0f99f22fa5bfc7d3764de2a7f34165f699571449).
|
||||
Thanks to Ubuntu developers.
|
||||
- [Updated dependencies](https://github.com/wekan/wekan/commit/8323649cf098388684ea5e690dcb233171440345).
|
||||
Thanks to zodern.
|
||||
- [Updated dependencies](https://github.com/wekan/wekan/commit/b54d17467cd2868091c52240594630923875946c).
|
||||
Thanks to exceljs developers.
|
||||
|
||||
and fixed the following bugs:
|
||||
|
||||
- [Fixed can not close sidebar at Modern theme](https://github.com/wekan/wekan/commit/53e569d28582a04d7bac49c23cd04ed8f546ed71).
|
||||
Thanks to xet7.
|
||||
- [Fix LDAP login](https://github.com/wekan/wekan/pull/5159).
|
||||
Thanks to faburem.
|
||||
- [Fix can't use card template](https://github.com/wekan/wekan/pull/5161).
|
||||
Thanks to faburem.
|
||||
- [Open card details always in the middle of the screen](https://github.com/wekan/wekan/pull/5168).
|
||||
Thanks to mfilser.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.10 2023-09-29 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
+5
-2
@@ -1,5 +1,8 @@
|
||||
FROM --platform=linux/amd64 ubuntu:23.04 as wekan
|
||||
LABEL maintainer="wekan"
|
||||
FROM --platform=linux/amd64 ubuntu:23.10 as wekan
|
||||
LABEL maintainer="wekan" \
|
||||
org.opencontainers.image.ref.name="ubuntu" \
|
||||
org.opencontainers.image.version="23.10" \
|
||||
org.opencontainers.image.source="https://github.com/wekan/wekan"
|
||||
|
||||
# 2022-09-04:
|
||||
# - above "--platform=linux/amd64 ubuntu:22.04 as wekan" is needed to build Dockerfile
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014-2019 The Wekan Team
|
||||
Copyright (c) 2014-2023 The Wekan Team
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -109,7 +109,7 @@ with [Meteor](https://www.meteor.com).
|
||||
|
||||
[platforms]: https://github.com/wekan/wekan/wiki/Platforms
|
||||
[dev_docs]: https://github.com/wekan/wekan/wiki/Developer-Documentation
|
||||
[screenshot_wekan]: https://wekan.github.io/wekan-markdown.png
|
||||
[screenshot_wekan]: https://wekan.github.io/wekan-dark-mode.png
|
||||
[features]: https://github.com/wekan/wekan/wiki/Features
|
||||
[roadmap_wekan]: https://boards.wekan.team/b/D2SzJKZDS4Z48yeQH/wekan-open-source-kanban-board-with-mit-license
|
||||
[wekan_issues]: https://github.com/wekan/wekan/issues
|
||||
|
||||
+123
-28
@@ -29,7 +29,7 @@ added to the Wekan Hall of Fame.
|
||||
## Which domains are in scope?
|
||||
|
||||
No public domains, because all those are donated to Wekan Open Source project,
|
||||
and we don't have any permissions to do security scans on those donated servers
|
||||
and we don't have any permissions to do security scans on those donated servers.
|
||||
|
||||
Please don't perform research that could impact other users. Secondly, please keep
|
||||
the reports short and succinct. If we fail to understand the logics of your bug, we will tell you.
|
||||
@@ -48,31 +48,132 @@ like Snap and Docker have their own specific sandboxing etc features.
|
||||
|
||||
Standalone Wekan by default does not load any files from Internet, like fonts, CSS, etc.
|
||||
This also means all Standalone Wekan functionality works in offline local networks.
|
||||
Wekan is used by companies that have [thousands of users](https://github.com/wekan/wekan/wiki/AWS) and at healthcare.
|
||||
WeKan is used at most countries of the world https://snapcraft.io/wekan
|
||||
and by by companies that have 30k users.
|
||||
|
||||
Wekan uses xss package for input fields like cards, as you can see from
|
||||
[package.json](https://github.com/wekan/wekan/blob/main/package.json). Other used versions can be seen from
|
||||
[Meteor versions file](https://github.com/wekan/wekan/blob/main/.meteor/versions).
|
||||
Forms can include markdown links, html, image tags etc like you see at https://wekan.github.io .
|
||||
It's possible to add attachments to cards, and markdown/html links to files.
|
||||
- Wekan private board attachments are not accessible without logging in.
|
||||
- There is feature to set board public, so that board is visible without logging in in readonly mode, with realtime updates.
|
||||
- Admin Panel has feature to disable all public boards, so all boards are private.
|
||||
|
||||
Wekan attachments are not accessible without logging in. Import from Trello works by copying
|
||||
Trello export JSON to Wekan Trello import page, and in Trello JSON file there is direct links to all publicly
|
||||
accessible Trello attachment files, that Standalone Wekan downloads directly to Wekan MongoDB database in
|
||||
[CollectionFS](https://github.com/wekan/wekan/pull/875) format. When Wekan board is exported in
|
||||
Wekan JSON format, all board attachments are included in Wekan JSON file as base64 encoded text.
|
||||
That Wekan JSON format file can be imported to Sandstorm Wekan with all the attachments, when we get
|
||||
latest Wekan version working on Sandstorm, only couple of bugs are left before that. In Sandstorm it's not
|
||||
possible yet to import from Trello with attachments, because Wekan does not implement Sandstorm-compatible
|
||||
access to outside of Wekan grain.
|
||||
## SSL/TLS
|
||||
|
||||
Standalone Wekan only has password auth currently, there is work in progress to add
|
||||
[oauth2](https://github.com/wekan/wekan/pull/1578), [Openid](https://github.com/wekan/wekan/issues/538),
|
||||
[LDAP](https://github.com/wekan/wekan/issues/119) etc. If you need more login security for Standalone Wekan now,
|
||||
it's possible add additional [Google Auth proxybouncer](https://github.com/wekan/wekan/wiki/Let's-Encrypt-and-Google-Auth) in front of password auth, and then use Google Authenticator for Google Auth. Standalone Wekan does have [brute force protection with eluck:accounts-lockout and browser-policy clickjacking protection](https://github.com/wekan/wekan/blob/main/CHANGELOG.md#v080-2018-04-04-wekan-release). You can also optionally use some [WAF](https://en.wikipedia.org/wiki/Web_application_firewall)
|
||||
like for example [AWS WAF](https://aws.amazon.com/waf/).
|
||||
- SSL/TLS encrypts traffic between webbrowser and webserver.
|
||||
- If you are thinking about TLS MITM, look at Caddy 2 webserver MITM detections.
|
||||
- Let's Encrypt TLS requires publicly accessible webserver, that Let's Encrypt TLS validation servers check.
|
||||
- If firewall limits to only allowed IP addresses, you may need non-Let's Encrypt TLS cert.
|
||||
- For On Premise:
|
||||
- https://caddyserver.com/docs/automatic-https#local-https
|
||||
- https://github.com/wekan/wekan/wiki/Caddy-Webserver-Config
|
||||
- https://github.com/wekan/wekan/wiki/Azure
|
||||
- https://github.com/wekan/wekan/wiki/Traefik-and-self-signed-SSL-certs
|
||||
|
||||
[All Wekan Platforms](https://github.com/wekan/wekan/wiki/Platforms)
|
||||
## XSS
|
||||
|
||||
- Dompurify https://www.npmjs.com/package/dompurify
|
||||
- WeKan uses dompurify npm package to filter for XSS at fields like cards, as you can see from
|
||||
[package.json](https://github.com/wekan/wekan/blob/main/package.json). Other used versions can be seen from
|
||||
[Meteor versions file](https://github.com/wekan/wekan/blob/main/.meteor/versions).
|
||||
- Forms can include markdown links, html, image tags etc like you see at https://wekan.github.io .
|
||||
- It's possible to add attachments to cards, and markdown/html links to files.
|
||||
- Dompurify cleans up viewed code, so Javascript in input fields does not execute
|
||||
- https://wekan.github.io/hall-of-fame/fieldbleed/
|
||||
- Reaction in comment is now checked, that it does not have extra added code
|
||||
- https://wekan.github.io/hall-of-fame/reactionbleed/
|
||||
- https://github.com/wekan/wekan/blob/main/packages/markdown/src/template-integration.js#L76
|
||||
|
||||
## QA about PubSub
|
||||
|
||||
Q:
|
||||
|
||||
Hello,
|
||||
I have just seen the Meteor DevTools Evolved extension and was wondering if anyone had asked themselves the question of security.
|
||||
Insofar as all data is shown in the minimongo tab in plain text.
|
||||
How can data be hidden from this extension?
|
||||
|
||||
A:
|
||||
|
||||
## PubSub
|
||||
|
||||
- It is not security issue to show some text or image, that user has permission to see. It is a security issue, if browserside is some text or image that user should not see.
|
||||
- Meteor has browserside minimongo database, made with Javascript, updated with Publish/Subscribe, PubSub.
|
||||
- Publish/Subscribe means, that realtime web framework reads database changes stream, and then immediately updates webpage,
|
||||
like like dashboards, chat, kanban. That is the point in any realtime web framework in any programming language.
|
||||
- Yes, you should check with Meteor DevTools Evolved Chromium/Firefox extension that at minimongo is only text that user has permission to see.
|
||||
- Do checking as logged in user, and logged out user.
|
||||
- Check permissions and sanitize before allowing some change, because someone could modify content of input field,
|
||||
PubSub/websocket data (for example with Burp Suite Community Edition), etc.
|
||||
- If you have REST API, also check that only those that have login token, and have permission, can view or edit text
|
||||
- You should not include any data user is not allowed to see. Not to webpage text, not to websockets/PubSub, etc.
|
||||
- Minimongo should not have password hashes PubSub https://wekan.github.io/hall-of-fame/userbleed/
|
||||
- PubSub uses Websockets, so you need those to be enabled at webserver like Caddy/Nginx/Apache etc, examples of settings
|
||||
at right menu of https://github.com/wekan/wekan/wiki
|
||||
- Clientside https://github.com/wekan/wekan/tree/main/client/components subscribes to
|
||||
PubSub https://github.com/wekan/wekan/tree/main/server/publications or calls meteor methods at https://github.com/wekan/wekan/tree/main/models
|
||||
- For Admin:
|
||||
- You can have input field for password https://github.com/wekan/wekan/blob/main/client/components/cards/attachments.js#L303-L312
|
||||
- You can save password to database https://github.com/wekan/wekan/blob/main/client/components/cards/attachments.js#L303-L312
|
||||
- Check that only current user or Admin can change password https://github.com/wekan/wekan/blob/main/client/components/cards/attachments.js#L303-L312
|
||||
- Note that currentUser uses code like Meteor.user() in .js file
|
||||
- Do not have password hashes in PubSub https://github.com/wekan/wekan/blob/main/server/publications/users.js
|
||||
- Only show Admin Panel to Admin https://github.com/wekan/wekan/blob/main/client/components/settings/settingBody.jade#L3
|
||||
- If there is a lot of data, use pagination https://github.com/wekan/wekan/blob/main/client/components/settings/peopleBody.js
|
||||
- Only have limited amount of data published in PubSub. Limit in MongoDB query in publications how much is published. Too much could make browser too slow.
|
||||
- Use Environment variables for any email etc passwords.
|
||||
- But what if you would like to remove minimongo? And only use Meteor methods for saving? In that case, you don't have realtime updates,
|
||||
and you need to write much more code to load and save data yourself, handle any multi user data saving conflicts yourself,
|
||||
and many Meteor Atmospherejs.com PubSub using packages would not work anymore https://github.com/wekan/we
|
||||
|
||||
## PubSub: Fix that user can not change to Admin
|
||||
|
||||
- With PubSub, there is checking, that someone modifying Websockets content, like permission isAdmin, can not change to Admin.
|
||||
- https://github.com/wekan/wekan/commit/cbad4cf5943d47b916f64b4582f8ca76a9dfd743
|
||||
- https://wekan.github.io/hall-of-fame/adminbleed/
|
||||
|
||||
## Permissions and Roles
|
||||
|
||||
- For any user permissions, it's best to use Meteor package package https://github.com/Meteor-Community-Packages/meteor-roles .
|
||||
- Currently WeKan has custom hardcoded permissions, WeKan does not yet use that meteor-roles package.
|
||||
- Using permissions at WeKan sidebar https://github.com/wekan/wekan/blob/main/client/components/sidebar/sidebar.js#L1854-L1875
|
||||
- List of roles https://github.com/wekan/wekan/wiki/REST-API-Role . Change at board or Admin Panel. Also Organizations/Teams.
|
||||
- Worker role: https://github.com/wekan/wekan/issues/2788
|
||||
- Not implemented yet: Granular Roles https://github.com/wekan/wekan/issues/3022
|
||||
- Check is user logged in, with `if (Meteor.user()) {`
|
||||
- Check is code running at server `if (Meteor.isServer()) {` or client `if Meteor.isClient()) {` .
|
||||
- Here is some authentication code https://github.com/wekan/wekan/blob/main/server/authentication.js
|
||||
|
||||
## Environment variables
|
||||
|
||||
- For any passwords, use environment variables, those are serverside
|
||||
- Do not copy environment variable to public variable that is visible browserside https://github.com/wekan/wekan/blob/main/server/max-size.js
|
||||
|
||||
```
|
||||
Meteor.startup(() => {
|
||||
if (process.env.HEADER_LOGIN_ID) {
|
||||
Meteor.settings.public.attachmentsUploadMaxSize = process.env.ATTACHMENTS_UPLOAD_MAX_SIZE;
|
||||
Meteor.settings.public.attachmentsUploadMimeTypes = process.env.ATTACHMENTS_UPLOAD_MIME_TYPES;
|
||||
Meteor.settings.public.avatarsUploadMaxSize = process.env.AVATARS_UPLOAD_MAX_SIZE;
|
||||
```
|
||||
|
||||
- For serverside, you can set Meteor.settings.variablename, without text public
|
||||
- For WeKan kanban, there is feature for setting board public, it can be viewed by anyone, there is realtime updates. But
|
||||
- Some of those permissions are checked at users.js models at https://github.com/wekan/wekan/tree/main/models
|
||||
- Environment variables are used for email server passwords, etc, at all platforms https://github.com/wekan/wekan/commit/a781c0e7dcfdbe34c1483ee83cec12455b7026f7
|
||||
|
||||
## Escape HTML comment tags so that HTML comments are visible
|
||||
|
||||
- Someone reported, that it is problem that content of HTML comments in edit mode, are not visible at at view mode, so this makes HTML comments visible.
|
||||
- https://github.com/wekan/wekan/commit/167863d95711249e69bb3511175d73b34acbbdb3
|
||||
- https://wekan.github.io/hall-of-fame/invisiblebleed/
|
||||
|
||||
## Attachments: XSS in filename is sanitized
|
||||
|
||||
- https://github.com/wekan/wekan/blob/main/client/components/cards/attachments.js#L303-L312
|
||||
- https://wekan.github.io/hall-of-fame/filebleed/
|
||||
|
||||
## Brute force login protection
|
||||
|
||||
- https://github.com/wekan/wekan/commit/23e5e1e3bd081699ce39ce5887db7e612616014d
|
||||
- https://github.com/wekan/wekan/tree/main/packages/wekan-accounts-lockout
|
||||
|
||||
### Sandstorm Wekan Security
|
||||
|
||||
@@ -105,12 +206,6 @@ a security issue, we'd like to know about it, and also how to fix it:
|
||||
|
||||
Typical already known or "no impact" bugs such as:
|
||||
|
||||
- Brute force password guessing. Currently there is
|
||||
[brute force protection with eluck:accounts-lockout](https://github.com/wekan/wekan/blob/main/CHANGELOG.md#v080-2018-04-04-wekan-release).
|
||||
- Security issues related to that Wekan uses Meteor 1.6.0.1 related packages, and upgrading to newer
|
||||
Meteor 1.6.1 is complicated process that requires lots of changes to many dependency packages.
|
||||
Upgrading [has been tried many times, spending a lot of time](https://github.com/meteor/meteor/issues/9609)
|
||||
but there still is issues. Helping with package upgrades is very welcome.
|
||||
- [Wekan API old tokens not replaced correctly](https://github.com/wekan/wekan/issues/1437)
|
||||
- Missing Cookie flags on non-session cookies or 3rd party cookies
|
||||
- Logout CSRF
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v7.10.0"
|
||||
appVersion: "v7.18.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
.board-wrapper .board-canvas.is-sibling-sidebar-open {
|
||||
margin-right: 248px;
|
||||
}
|
||||
.board-wrapper .board-canvas.overlayed {overflow:hidden}
|
||||
.board-wrapper .board-canvas .board-overlay {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
|
||||
@@ -21,8 +21,7 @@ template(name="boardBody")
|
||||
.board-canvas.js-swimlanes(
|
||||
class="{{#if Sidebar.isOpen}}is-sibling-sidebar-open{{/if}}"
|
||||
class="{{#if MultiSelection.isActive}}is-multiselection-active{{/if}}"
|
||||
class="{{#if draggingActive.get}}is-dragging-active{{/if}}"
|
||||
class="{{#if showOverlay.get}}overlayed{{/if}}")
|
||||
class="{{#if draggingActive.get}}is-dragging-active{{/if}}")
|
||||
if showOverlay.get
|
||||
.board-overlay
|
||||
if currentBoard.isTemplatesBoard
|
||||
|
||||
@@ -1060,8 +1060,13 @@
|
||||
.board-color-clearblue .swimlane {
|
||||
background: none;
|
||||
}
|
||||
.board-color-clearblue .list:first-child {
|
||||
margin-left: 15px;
|
||||
.board-color-clearblue .swimlane .list:first-child {
|
||||
min-width: 20px;
|
||||
margin-left: 0px;
|
||||
border-left: none;
|
||||
}
|
||||
.board-color-clearblue .swimlane .list:nth-child {
|
||||
flex: 0 0 265px;
|
||||
}
|
||||
.board-color-clearblue .list {
|
||||
background: rgba(255,255,255,0.35);
|
||||
@@ -1073,8 +1078,10 @@
|
||||
background: rgba(255,255,255,0.1);
|
||||
height: min-content;
|
||||
flex: unset;
|
||||
width: 270px;
|
||||
padding-bottom: 16px;
|
||||
min-width: 20px;
|
||||
margin-left: 0px;
|
||||
border-left: none;
|
||||
}
|
||||
.board-color-clearblue .list.list-composer .open-list-composer {
|
||||
border-radius: 7px;
|
||||
@@ -1082,6 +1089,7 @@
|
||||
padding: 7px 10px;
|
||||
display: block;
|
||||
}
|
||||
.board-color-clearblue .list.list-composer .open-list-composer:hover i,
|
||||
.board-color-clearblue .list.list-composer .open-list-composer:hover {
|
||||
box-shadow: 0 1px 2px rgba(0,0,0,0.2);
|
||||
background: rgba(255,255,255,0.7);
|
||||
@@ -1452,12 +1460,17 @@
|
||||
background: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
.board-color-modern .list:first-child {
|
||||
margin-left: 5px;
|
||||
.board-color-modern .swimlane .list:first-child {
|
||||
min-width: 20px;
|
||||
margin-left: 0px;
|
||||
border-left: none;
|
||||
}
|
||||
.board-color-modern .swimlane .list:nth-child {
|
||||
flex: 0 0 265px;
|
||||
}
|
||||
.board-color-modern .list.list-composer.js-list-composer {
|
||||
transition: all 0.3s ease;
|
||||
min-width: 80px;
|
||||
min-width: 20px;
|
||||
}
|
||||
.board-color-modern .open-list-composer.js-open-inlined-form:hover {
|
||||
color: #222;
|
||||
@@ -1536,9 +1549,6 @@
|
||||
.board-color-modern .sidebar .sidebar-shadow {
|
||||
box-shadow: 0 0 60px rgba(0,0,0,0.2);
|
||||
}
|
||||
.board-color-modern .sidebar .sidebar-content {
|
||||
padding: 30px;
|
||||
}
|
||||
.board-color-modern .board-color-modern section#notifications-drawer {
|
||||
border-radius: 5px;
|
||||
}
|
||||
@@ -2104,6 +2114,18 @@
|
||||
box-shadow: inset 15px 15px 37px #1c1c1c, inset -15px -15px 37px #282828;
|
||||
border: none;
|
||||
}
|
||||
.board-color-exodark .swimlane .list:first-child {
|
||||
min-width: 20px;
|
||||
margin-left: 0px;
|
||||
border-left: none;
|
||||
}
|
||||
.board-color-exodark .swimlane .list:nth-child {
|
||||
flex: 0 0 265px;
|
||||
}
|
||||
.board-color-exodark .list.list-composer.js-list-composer {
|
||||
transition: all 0.3s ease;
|
||||
min-width: 0;
|
||||
}
|
||||
.board-color-exodark .list-header {
|
||||
border-top-right-radius: 15px;
|
||||
border-top-left-radius: 15px;
|
||||
|
||||
@@ -196,6 +196,9 @@
|
||||
margin-right: 10px;
|
||||
padding: 10px;
|
||||
}
|
||||
.card-details .card-description i.fa.fa-pencil-square-o {
|
||||
float: right;
|
||||
}
|
||||
.card-details .card-description textarea {
|
||||
min-height: 100px;
|
||||
}
|
||||
@@ -245,10 +248,10 @@
|
||||
padding-top: 10px;
|
||||
}
|
||||
@media screen and (min-width: 801px) {
|
||||
.card-details-maximized {
|
||||
.card-details {
|
||||
top: 97px;
|
||||
left: 0;
|
||||
right:0;
|
||||
left: calc(50% - (600px / 2));
|
||||
width: 600px;
|
||||
bottom: 0;
|
||||
position: fixed;
|
||||
resize: both;
|
||||
@@ -267,6 +270,10 @@
|
||||
box-shadow: 0 0 7px 0 #b3b3b3;
|
||||
transition: flex-basis 0.1s;
|
||||
box-sizing: border-box;
|
||||
top: 97px;
|
||||
left: 0px;
|
||||
height: calc(100% - 20px);
|
||||
width: calc(100% - 20px);
|
||||
float: left;
|
||||
}
|
||||
.card-details-maximized .card-details-left {
|
||||
|
||||
@@ -524,12 +524,11 @@ template(name="cardDetails")
|
||||
a.fa.fa-times-thin.js-close-inlined-form
|
||||
else
|
||||
if currentBoard.allowsDescriptionText
|
||||
a.js-open-inlined-form
|
||||
if getDescription
|
||||
+viewer
|
||||
= getDescription
|
||||
else
|
||||
| {{_ 'edit'}}
|
||||
a.js-open-inlined-form.right(title="{{_ 'edit'}}" value=title)
|
||||
i.fa.fa-pencil-square-o
|
||||
if getDescription
|
||||
+viewer
|
||||
= getDescription
|
||||
if (hasUnsavedValue 'cardDescription' _id)
|
||||
p.quiet
|
||||
| {{_ 'unsaved-description'}}
|
||||
|
||||
@@ -76,66 +76,6 @@ BlazeComponent.extendComponent({
|
||||
return !Utils.getPopupCardId() && ReactiveCache.getCurrentUser().hasCardMaximized();
|
||||
},
|
||||
|
||||
scrollParentContainer() {
|
||||
const cardPanelWidth = 600;
|
||||
const parentComponent = this.parentComponent();
|
||||
/*
|
||||
// Incomplete fix about bug where opening card scrolls to wrong place
|
||||
// https://github.com/wekan/wekan/issues/4572#issuecomment-1184149395
|
||||
// TODO sometimes parentComponent is not available, maybe because it's not
|
||||
// yet created?!
|
||||
//
|
||||
// uncommented again by chrisi51
|
||||
// only with that, the autoscroll feature is working properly
|
||||
// after my fixes, all scrollings where correct
|
||||
*/
|
||||
if (!parentComponent) return;
|
||||
const bodyBoardComponent = parentComponent.parentComponent();
|
||||
|
||||
|
||||
//On Mobile View Parent is Board, Not Board Body. I cant see how this funciton should work then.
|
||||
if (bodyBoardComponent === null) return;
|
||||
const $cardView = this.$(this.firstNode());
|
||||
const $cardContainer = bodyBoardComponent.$('.js-swimlanes');
|
||||
|
||||
/*
|
||||
// Incomplete fix about bug where opening card scrolls to wrong place
|
||||
// https://github.com/wekan/wekan/issues/4572#issuecomment-1184149395
|
||||
// TODO sometimes cardContainer is not available, maybe because it's not yet
|
||||
// created?!
|
||||
if (!$cardContainer) return;
|
||||
*/
|
||||
|
||||
const cardContainerScroll = $cardContainer.scrollLeft();
|
||||
const cardContainerWidth = $cardContainer.width();
|
||||
|
||||
const cardViewStart = $cardView.offset().left;
|
||||
const cardViewEnd = cardViewStart + cardPanelWidth;
|
||||
|
||||
let offset = false;
|
||||
if (cardViewStart < 0) {
|
||||
offset = cardViewStart;
|
||||
} else if (cardViewEnd > cardContainerWidth) {
|
||||
offset = cardViewEnd - cardContainerWidth;
|
||||
}
|
||||
|
||||
if (offset) {
|
||||
bodyBoardComponent.scrollLeft(cardContainerScroll + offset);
|
||||
}
|
||||
|
||||
//Scroll top
|
||||
const cardViewStartTop = $cardView.offset().top;
|
||||
const cardContainerScrollTop = $cardContainer.scrollTop();
|
||||
|
||||
let topOffset = false;
|
||||
if (cardViewStartTop !== 100) {
|
||||
topOffset = cardViewStartTop - 100;
|
||||
}
|
||||
if (topOffset !== false) {
|
||||
bodyBoardComponent.scrollTop(cardContainerScrollTop + topOffset);
|
||||
}
|
||||
},
|
||||
|
||||
presentParentTask() {
|
||||
let result = this.currentBoard.presentParentTask;
|
||||
if (result === null || result === undefined) {
|
||||
@@ -221,12 +161,6 @@ BlazeComponent.extendComponent({
|
||||
//-------------
|
||||
}
|
||||
|
||||
if (!Utils.isMiniScreen()) {
|
||||
Meteor.setTimeout(() => {
|
||||
this.scrollParentContainer();
|
||||
}, 500);
|
||||
}
|
||||
|
||||
const $checklistsDom = this.$('.card-checklist-items');
|
||||
|
||||
$checklistsDom.sortable({
|
||||
@@ -452,20 +386,10 @@ BlazeComponent.extendComponent({
|
||||
'click .js-maximize-card-details'() {
|
||||
Meteor.call('toggleCardMaximized');
|
||||
autosize($('.card-details'));
|
||||
// if (!Utils.isMiniScreen()) {
|
||||
// Meteor.setTimeout(() => {
|
||||
// this.scrollParentContainer();
|
||||
// }, 500);
|
||||
// }
|
||||
},
|
||||
'click .js-minimize-card-details'() {
|
||||
Meteor.call('toggleCardMaximized');
|
||||
autosize($('.card-details'));
|
||||
if (!Utils.isMiniScreen()) {
|
||||
Meteor.setTimeout(() => {
|
||||
this.scrollParentContainer();
|
||||
}, 500);
|
||||
}
|
||||
},
|
||||
'click .js-vote'(e) {
|
||||
const forIt = $(e.target).hasClass('js-vote-positive');
|
||||
|
||||
@@ -646,6 +646,7 @@ BlazeComponent.extendComponent({
|
||||
if (this.isTemplateSearch) {
|
||||
const boardId = (ReactiveCache.getCurrentUser().profile || {}).templatesBoardId;
|
||||
if (boardId) {
|
||||
subManager.subscribe('board', boardId, false);
|
||||
this.board = ReactiveCache.getBoard(boardId);
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -1,3 +1,10 @@
|
||||
.new-comment a.fa.fa-brands.fa-markdown,
|
||||
.inlined-form a.fa.fa-brands.fa-markdown {
|
||||
float: right;
|
||||
position: relative;
|
||||
top: 20px;
|
||||
right: 56px;
|
||||
}
|
||||
.new-comment a.fa.fa-copy,
|
||||
.inlined-form a.fa.fa-copy {
|
||||
float: right;
|
||||
@@ -5,3 +12,8 @@
|
||||
top: 20px;
|
||||
right: 6px;
|
||||
}
|
||||
.js-inlined-form.viewer.btn-sm {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 6px;
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
template(name="editor")
|
||||
a.fa.fa-brands.fa-markdown(title="{{_ 'convert-to-markdown'}}")
|
||||
a.fa.fa-copy(title="{{_ 'copy-text-to-clipboard'}}")
|
||||
span.copied-tooltip {{_ 'copied'}}
|
||||
textarea.editor(
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
import { ReactiveCache } from '/imports/reactiveCache';
|
||||
import { TAPi18n } from '/imports/i18n';
|
||||
var converter = require('@wekanteam/html-to-markdown');
|
||||
|
||||
const specialHandles = [
|
||||
{userId: 'board_members', username: 'board_members'},
|
||||
@@ -9,6 +11,33 @@ const specialHandleNames = specialHandles.map(m => m.username);
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onRendered() {
|
||||
// Start: Copy <pre> code https://github.com/wekan/wekan/issues/5149
|
||||
// TODO: Try to make copyPre visible at Card Details after editing or closing editor or Card Details.
|
||||
// - Also this same TODO below at event, if someone gets it working.
|
||||
var copy = function(target) {
|
||||
var textArea = document.createElement('textarea');
|
||||
textArea.setAttribute('style','width:1px;border:0;opacity:0;');
|
||||
document.body.appendChild(textArea);
|
||||
textArea.value = target.innerHTML;
|
||||
textArea.select();
|
||||
document.execCommand('copy');
|
||||
document.body.removeChild(textArea);
|
||||
}
|
||||
var pres = document.querySelectorAll(".viewer > pre");
|
||||
pres.forEach(function(pre){
|
||||
var button = document.createElement("a");
|
||||
button.className = "fa fa-copy btn btn-sm right";
|
||||
// TODO: Translate text 'Copy text to clipboard'
|
||||
button.setAttribute('title','Copy text to clipboard');
|
||||
button.innerHTML = '';
|
||||
pre.parentNode.insertBefore(button, pre);
|
||||
button.addEventListener('click', function(e){
|
||||
e.preventDefault();
|
||||
copy(pre.childNodes[0]);
|
||||
})
|
||||
})
|
||||
// End: Copy <pre> code
|
||||
|
||||
const textareaSelector = 'textarea';
|
||||
const mentions = [
|
||||
// User mentions
|
||||
@@ -44,12 +73,14 @@ BlazeComponent.extendComponent({
|
||||
index: 1,
|
||||
},
|
||||
];
|
||||
|
||||
const enableTextarea = function() {
|
||||
const $textarea = this.$(textareaSelector);
|
||||
autosize($textarea);
|
||||
$textarea.escapeableTextComplete(mentions);
|
||||
};
|
||||
if (Meteor.settings.public.RICHER_CARD_COMMENT_EDITOR !== false) {
|
||||
/*
|
||||
if (Meteor.settings.public.RICHER_CARD_COMMENT_EDITOR === true || Meteor.settings.public.RICHER_CARD_COMMENT_EDITOR === 'true') {
|
||||
const isSmall = Utils.isMiniScreen();
|
||||
const toolbar = isSmall
|
||||
? [
|
||||
@@ -269,6 +300,8 @@ BlazeComponent.extendComponent({
|
||||
} else {
|
||||
enableTextarea();
|
||||
}
|
||||
*/
|
||||
enableTextarea();
|
||||
},
|
||||
events() {
|
||||
return [
|
||||
@@ -280,6 +313,14 @@ BlazeComponent.extendComponent({
|
||||
const $tooltip = this.$('.copied-tooltip');
|
||||
Utils.showCopied(promise, $tooltip);
|
||||
},
|
||||
'click a.fa.fa-brands.fa-markdown'(event) {
|
||||
const $editor = this.$('textarea.editor');
|
||||
$editor[0].value = converter.convert($editor[0].value);
|
||||
},
|
||||
// TODO: Try to make copyPre visible at Card Details after editing or closing editor or Card Details.
|
||||
//'click .js-close-inlined-form'(event) {
|
||||
// Utils.copyPre();
|
||||
//},
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -70,13 +70,14 @@ template(name="myCards")
|
||||
unless isMiniScreen
|
||||
.my-cards-board-badge(class=board.colorClass, id="header")
|
||||
.my-cards-card-title-table
|
||||
a.minicard-wrapper(href=card.originRelativeUrl)
|
||||
| {{card.title}}
|
||||
| {{card.title}}
|
||||
//a.minicard-wrapper(href=card.originRelativeUrl)
|
||||
// | {{card.title}}
|
||||
td
|
||||
| {{list.title}}
|
||||
td
|
||||
a(href=board.originRelativeUrl)
|
||||
| {{board.title}}
|
||||
//a(href=board.originRelativeUrl)
|
||||
td
|
||||
| {{swimlane.title}}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ template(name='notificationsDrawer')
|
||||
a.fa.fa-times-thin.close
|
||||
ul.notifications
|
||||
each transformedProfile.notifications
|
||||
+notification(activityData=activity index=dbIndex read=read)
|
||||
+notification(activityData=activityObj index=dbIndex read=read)
|
||||
if($gt unreadNotifications 0)
|
||||
a.all-read {{_ 'mark-all-as-read'}}
|
||||
if ($and ($.Session.get 'showReadNotifications') ($gt readNotifications 0))
|
||||
|
||||
+4
-1
@@ -120,7 +120,10 @@ services:
|
||||
# image: quay.io/wekan/wekan:v6.89
|
||||
# image: wekanteam/wekan:v6.89
|
||||
# b) GitHub Container registry.
|
||||
image: ghcr.io/wekan/wekan:main
|
||||
# b1) Latest release tag:
|
||||
image: ghcr.io/wekan/wekan:latest
|
||||
# b2) Newest git commit automatic build:
|
||||
#image: ghcr.io/wekan/wekan:main
|
||||
# c) Quay:
|
||||
#image: quay.io/wekan/wekan:latest
|
||||
# d) Docker Hub:
|
||||
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -143,7 +143,7 @@
|
||||
"attachmentDeletePopup-title": "Anhang löschen?",
|
||||
"attachments": "Anhänge",
|
||||
"auto-watch": "Neue Boards nach Erstellung automatisch beobachten",
|
||||
"avatar-too-big": "Das Profilbild ist zu groß (__Größe__ max)",
|
||||
"avatar-too-big": "Das Profilbild ist zu groß (__size__ max)",
|
||||
"back": "Zurück",
|
||||
"board-change-color": "Farbe ändern",
|
||||
"board-change-background-image": "Hintergrundbild ändern",
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Übersetzungstext",
|
||||
"show-at-minicard": "Zeige auf Minikarte",
|
||||
"show-checklist-at-minicard": "Checkliste auf Minikarte anzeigen",
|
||||
"show-subtasks-field": "Teilaufgaben Feld anzeigen"
|
||||
"show-subtasks-field": "Teilaufgaben Feld anzeigen",
|
||||
"convert-to-markdown": "Als Markdown konvertieren"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "itzulpenaren testua",
|
||||
"show-at-minicard": "Erakutsi minitxartelean",
|
||||
"show-checklist-at-minicard": "Erakutsi kontrol-zerrenda minitxartelean",
|
||||
"show-subtasks-field": "azpi-zereginen eremua bezala"
|
||||
"show-subtasks-field": "azpi-zereginen eremua bezala",
|
||||
"convert-to-markdown": "Bihurtu markdown-era"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Käännetty teksti",
|
||||
"show-at-minicard": "Näytä minikortilla",
|
||||
"show-checklist-at-minicard": "Näytä tarkistuslista minikortilla",
|
||||
"show-subtasks-field": "Näytä alitehtävät kenttä"
|
||||
"show-subtasks-field": "Näytä alitehtävät kenttä",
|
||||
"convert-to-markdown": "Muuta markdowniksi"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Texte traduit",
|
||||
"show-at-minicard": "Afficher sur la mini-carte",
|
||||
"show-checklist-at-minicard": "Afficher la check-list sur la mini-carte",
|
||||
"show-subtasks-field": "Afficher le champ des sous-tâches"
|
||||
"show-subtasks-field": "Afficher le champ des sous-tâches",
|
||||
"convert-to-markdown": "Convertir en markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Texte traduit",
|
||||
"show-at-minicard": "Afficher sur la mini-carte",
|
||||
"show-checklist-at-minicard": "Afficher la check-list sur la mini-carte",
|
||||
"show-subtasks-field": "Afficher le champ des sous-tâches"
|
||||
"show-subtasks-field": "Afficher le champ des sous-tâches",
|
||||
"convert-to-markdown": "Convertir en markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "טקסט תרגום",
|
||||
"show-at-minicard": "הצגה בכרטיסון",
|
||||
"show-checklist-at-minicard": "הצגת רשימת מטלות על הכרטיסון",
|
||||
"show-subtasks-field": "הצגת שדה תת־משימות"
|
||||
"show-subtasks-field": "הצגת שדה תת־משימות",
|
||||
"convert-to-markdown": "המרה ל־Markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"accept": "Terima",
|
||||
"accept": "Menerima",
|
||||
"act-activity-notify": "Pemberitahuan Aktifitas",
|
||||
"act-addAttachment": "menambahkan lampiran __attachment__ ke kartu __card__ pada daftar __list__ pada jalur __swimline__ dalam papan __board__",
|
||||
"act-deleteAttachment": "menghapus lampiran __attachment__ di kartu __card__ pada daftar __list__ pada jalur __swimlane__ dalam papan __board__",
|
||||
@@ -43,7 +43,7 @@
|
||||
"act-withBoardTitle": "__board__",
|
||||
"act-withCardTitle": "__kartu__[__Panel__]",
|
||||
"actions": "Daftar Tindakan",
|
||||
"activities": "Activities",
|
||||
"activities": "Aktifitas",
|
||||
"activity": "Kegiatan",
|
||||
"activity-added": "ditambahkan %s ke %s",
|
||||
"activity-archived": "%s dipindah ke arsip",
|
||||
@@ -85,14 +85,14 @@
|
||||
"add-card": "Tambah Kartu",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
"swimlane-height-error-message": "Swimlane height must be a positive integer",
|
||||
"setListWidthPopup-title": "Atur lebar daftar",
|
||||
"set-list-width": "Atur lebar daftar",
|
||||
"set-list-width-value": "Lebar daftar (pixel)",
|
||||
"list-width-error-message": "Lebar daftar harus dalam sebuah bilangan bulat posiif",
|
||||
"setSwimlaneHeightPopup-title": "Atur Tinggi Swimlane ",
|
||||
"set-swimlane-height": "Atur Tinggi Swimlane ",
|
||||
"set-swimlane-height-value": "Tinggi Swimlane (pixel)",
|
||||
"swimlane-height-error-message": "Tinggi Swimlane harus sebuah bilangan bulat positif",
|
||||
"add-swimlane": "Add Swimlane",
|
||||
"add-subtask": "Add Subtask",
|
||||
"add-checklist": "Add Checklist",
|
||||
@@ -100,11 +100,11 @@
|
||||
"close-add-checklist-item": "Close add an item to checklist form",
|
||||
"close-edit-checklist-item": "Close edit an item to checklist form",
|
||||
"convertChecklistItemToCardPopup-title": "Convert to Card",
|
||||
"add-cover": "Add cover image to minicard",
|
||||
"add-cover": "Tambahkan gambar sampul untuk kartu kecil",
|
||||
"add-label": "Tambah Label",
|
||||
"add-list": "Tambah Daftar",
|
||||
"add-after-list": "Add After List",
|
||||
"add-members": "Add Members",
|
||||
"add-after-list": "Tambah setelah daftar",
|
||||
"add-members": "Tambah anggota",
|
||||
"added": "Ditambahkan",
|
||||
"addMemberPopup-title": "Daftar Anggota",
|
||||
"memberPopup-title": "Setelan Anggota",
|
||||
@@ -143,13 +143,13 @@
|
||||
"attachmentDeletePopup-title": "Hapus Lampiran?",
|
||||
"attachments": "Daftar Lampiran",
|
||||
"auto-watch": "Otomatis diawasi saat membuat Panel",
|
||||
"avatar-too-big": "The avatar is too large (__size__ max)",
|
||||
"avatar-too-big": "Avatar terlalu besar (__ukuran__maksimal)",
|
||||
"back": "Kembali",
|
||||
"board-change-color": "Ubah warna",
|
||||
"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": "Ubah latar belakang gambar",
|
||||
"board-background-image-url": "Latar belakang gambar URL",
|
||||
"add-background-image": "Tambah latar belakang gambar",
|
||||
"remove-background-image": "Hapus latar belakang gambar",
|
||||
"show-at-all-boards-page" : "Show at All Boards page",
|
||||
"board-info-on-my-boards" : "All Boards Settings",
|
||||
"boardInfoOnMyBoardsPopup-title" : "All Boards Settings",
|
||||
@@ -162,9 +162,9 @@
|
||||
"board-public-info": "Panel ini akan jadi <strong>Publik<strong",
|
||||
"board-drag-drop-reorder-or-click-open": "Drag and drop to reorder board icons. Click board icon to open board.",
|
||||
"boardChangeColorPopup-title": "Ubah Warna Latar",
|
||||
"boardChangeBackgroundImagePopup-title": "Change Background Image",
|
||||
"boardChangeBackgroundImagePopup-title": "Ubah latar belakang gambar",
|
||||
"allBoardsChangeColorPopup-title": "Ubah warna",
|
||||
"allBoardsChangeBackgroundImagePopup-title": "Change Background Image",
|
||||
"allBoardsChangeBackgroundImagePopup-title": "Ubah latar belakang gambar",
|
||||
"boardChangeTitlePopup-title": "Ubah nama Panel",
|
||||
"boardChangeVisibilityPopup-title": "Ubah Penampakan",
|
||||
"boardChangeWatchPopup-title": "Ubah Pengamatan",
|
||||
@@ -382,7 +382,7 @@
|
||||
"error-board-notAMember": "Anda harus jadi member panel ini untuk melakukannya",
|
||||
"error-json-malformed": "Teks Anda bukan JSON yang sah",
|
||||
"error-json-schema": "Data JSON Anda tidak mengikutsertakan informasi yang sesuai format",
|
||||
"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 anda(Nilai yang dipisahkan koma)/TSV (Nilai yang dipisahkan tab) tidak termasuk informasi yang tepat dalam format yang benar",
|
||||
"error-list-doesNotExist": "Daftar ini tidak ada",
|
||||
"error-user-doesNotExist": "Nama pengguna ini tidak ada",
|
||||
"error-user-notAllowSelf": "Anda tidak bisa mengundang diri sendiri",
|
||||
@@ -421,7 +421,7 @@
|
||||
"filter-overdue": "Overdue",
|
||||
"filter-due-today": "Due today",
|
||||
"filter-due-this-week": "Due this week",
|
||||
"filter-due-next-week": "Due next week",
|
||||
"filter-due-next-week": "Berakhir minggu depan",
|
||||
"filter-due-tomorrow": "Due tomorrow",
|
||||
"list-filter-label": "Filter List by Title",
|
||||
"filter-clear": "Bersihkan penyaringan",
|
||||
@@ -550,7 +550,7 @@
|
||||
"public": "Umum",
|
||||
"public-desc": "Panel ini publik. Akan terlihat oleh siapapun dengan link terkait dan muncul di mesin pencari seperti Google. Hanya orang yang ditambahkan di panel yang bisa sunting",
|
||||
"quick-access-description": "Beri bintang panel untuk menambah shortcut di papan ini",
|
||||
"remove-cover": "Remove cover image from minicard",
|
||||
"remove-cover": "Hapus gambar sampul dari kartu mini",
|
||||
"remove-from-board": "Hapus dari panel",
|
||||
"remove-label": "Hapus Label",
|
||||
"listDeletePopup-title": "Hapus Daftar ?",
|
||||
@@ -739,9 +739,9 @@
|
||||
"deposit-subtasks-list": "Landing list for subtasks deposited here:",
|
||||
"show-parent-in-minicard": "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",
|
||||
"cover-attachment-on-minicard": "Gambar sampul untuk kartu kecil",
|
||||
"badge-attachment-on-minicard": "Menghitung lampiran pada kartu kecil",
|
||||
"card-sorting-by-number-on-minicard": "Kartu disaring dengan nomor pada kartu kecil",
|
||||
"prefix-with-full-path": "Prefix with full path",
|
||||
"prefix-with-parent": "Prefix with parent",
|
||||
"subtext-with-full-path": "Subtext with full path",
|
||||
@@ -854,7 +854,7 @@
|
||||
"r-items-list": "item1, item2, item3",
|
||||
"r-add-swimlane": "Add swimlane",
|
||||
"r-swimlane-name": "swimlane name",
|
||||
"r-board-note": "Note: leave a field empty to match every possible value. ",
|
||||
"r-board-note": "Catatan : tinggalkan setiap bidang yang kosong agar cocok untuk setiap nilai yang memungkinkan",
|
||||
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
|
||||
"r-when-a-card-is-moved": "When a card is moved to another list",
|
||||
"r-set": "Tetapkan",
|
||||
@@ -885,9 +885,9 @@
|
||||
"oidc-button-text": "Customize the OIDC button text",
|
||||
"default-authentication-method": "Default Authentication Method",
|
||||
"duplicate-board": "Duplikat Papan",
|
||||
"org-number": "The number of organizations is: ",
|
||||
"team-number": "The number of teams is: ",
|
||||
"people-number": "The number of people is: ",
|
||||
"org-number": "Nomor organisasi adalah",
|
||||
"team-number": "Nomor team adalah",
|
||||
"people-number": "Banyak orang adalah",
|
||||
"swimlaneDeletePopup-title": "Delete Swimlane ?",
|
||||
"swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.",
|
||||
"restore-all": "Pulihkan semua",
|
||||
@@ -1098,7 +1098,7 @@
|
||||
"label-names": "Label Names",
|
||||
"archived-at": "archived at",
|
||||
"sort-cards": "Sort Cards",
|
||||
"sort-is-on": "Sort is on",
|
||||
"sort-is-on": "Urutan aktif",
|
||||
"cardsSortPopup-title": "Sort Cards",
|
||||
"due-date": "Due Date",
|
||||
"server-error": "Server Error",
|
||||
@@ -1224,22 +1224,23 @@
|
||||
"minicardDetailsActionsPopup-title": "Card Details",
|
||||
"Mongo_sessions_count": "Mongo sessions count",
|
||||
"change-visibility": "Ubah Penampakan",
|
||||
"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.",
|
||||
"preview-pdf-not-supported": "Your device does not support previewing PDF. Try downloading instead.",
|
||||
"drag-board": "Drag board",
|
||||
"translation-number": "The number of custom translation strings is:",
|
||||
"delete-translation-confirm-popup": "Are you sure you want to delete this custom translation string? There is no undo.",
|
||||
"newTranslationPopup-title": "New custom translation string",
|
||||
"editTranslationPopup-title": "Edit custom translation string",
|
||||
"settingsTranslationPopup-title": "Delete this custom translation string?",
|
||||
"translation": "Translation",
|
||||
"max-upload-filesize": "Maksimal ukuran file unggahan dalam bytes",
|
||||
"allowed-upload-filetypes": "Dibolehkan mengunggah tipe file",
|
||||
"max-avatar-filesize": "Maksimal avatar ukuran berkas dalam byte",
|
||||
"allowed-avatar-filetypes": "Dibolehkan mengunggah tipe file",
|
||||
"invalid-file": "Jika nama berkas tidak sah, unggah atau ubah nama dibatalkan",
|
||||
"preview-pdf-not-supported": "Perangkat anda tidak mendukung untuk menampilkan PDF. Coba mengunduhnya sebagai gantinya",
|
||||
"drag-board": "Menarik papan",
|
||||
"translation-number": "Nomor dari teks terjemahan pesanan adalah:",
|
||||
"delete-translation-confirm-popup": "Apakah kamu yakin ingin menghapus teks terjemahan pesanan? Tidak akan pengembalian.",
|
||||
"newTranslationPopup-title": "Teks terjemahan pesanan baru",
|
||||
"editTranslationPopup-title": "Sunting teks terjemahan pesanan",
|
||||
"settingsTranslationPopup-title": "Hapus teks terjemahan pesanan ini?",
|
||||
"translation": "Terjemahan",
|
||||
"text": "Text",
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"translation-text": "Terjemahan teks",
|
||||
"show-at-minicard": "Tampilkan di kartu kecil",
|
||||
"show-checklist-at-minicard": "Tampilkan daftar periksa di kartu kecil",
|
||||
"show-subtasks-field": "Tampilkan bagian tugas bidang",
|
||||
"convert-to-markdown": "Mengubah ke markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Testo della traduzione",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "번역 문구",
|
||||
"show-at-minicard": "미니카드에 보이기",
|
||||
"show-checklist-at-minicard": "미니카드에 확인목록 보이기",
|
||||
"show-subtasks-field": "하위할일 항목 보이기"
|
||||
"show-subtasks-field": "하위할일 항목 보이기",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "번역 문구",
|
||||
"show-at-minicard": "미니카드에 보이기",
|
||||
"show-checklist-at-minicard": "미니카드에 확인목록 보이기",
|
||||
"show-subtasks-field": "하위할일 항목 보이기"
|
||||
"show-subtasks-field": "하위할일 항목 보이기",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
@@ -1241,5 +1241,6 @@
|
||||
"translation-text": "Translation text",
|
||||
"show-at-minicard": "Show at minicard",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field"
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown"
|
||||
}
|
||||
Loaded 100 of 167 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user