Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f1810e47e0 | ||
|
|
37f7924524 | ||
|
|
6427a5e5f1 | ||
|
|
96e11cb727 | ||
|
|
a5f9157217 | ||
|
|
133066c900 | ||
|
|
cf75623184 | ||
|
|
fecae8d0a3 | ||
|
|
f1d8220ab7 | ||
|
|
d51e8d1d1d | ||
|
|
9a761d2a77 | ||
|
|
407d018067 | ||
|
|
028b8b606a | ||
|
|
ad0e86d725 | ||
|
|
8aeed8b033 | ||
|
|
989c73f1f1 | ||
|
|
f6a3a04dba | ||
|
|
8ff11ccc88 | ||
|
|
5d145d0dd1 | ||
|
|
275ac445d0 | ||
|
|
7fc364cb63 | ||
|
|
93868fd905 | ||
|
|
a862486ec3 | ||
|
|
14c9b70149 | ||
|
|
b60c655b98 | ||
|
|
fe5475d5ec | ||
|
|
955a46ca60 | ||
|
|
0d0c88ceaa | ||
|
|
fb008569ab | ||
|
|
295c9c8617 | ||
|
|
658e43ab54 | ||
|
|
41b1227b17 | ||
|
|
68c7a41906 | ||
|
|
18f6d4cb16 | ||
|
|
7c60d7932a | ||
|
|
b9182a1fc7 | ||
|
|
e45d35ba60 | ||
|
|
8b73c702c3 | ||
|
|
8e744e860d | ||
|
|
94391d4cde | ||
|
|
4e73c56afe | ||
|
|
5606414f89 | ||
|
|
8ebb1a7d7f | ||
|
|
586043e00b | ||
|
|
e70c51a1f0 | ||
|
|
ea8f8de391 | ||
|
|
0332ef3298 | ||
|
|
751b0aa073 | ||
|
|
965db42170 | ||
|
|
73f16692da | ||
|
|
aab80e67bd | ||
|
|
3e3b629aa2 | ||
|
|
adeec24252 | ||
|
|
ba0fdaef72 | ||
|
|
c357c77e7e | ||
|
|
702375856d | ||
|
|
c936d83b38 | ||
|
|
83d22c9ebf | ||
|
|
02f45f4e65 | ||
|
|
da2ba45456 | ||
|
|
0566f7c89b | ||
|
|
30a2e8b990 | ||
|
|
81b2bce385 | ||
|
|
a5347cfcac | ||
|
|
3422db31ee | ||
|
|
755880ec90 | ||
|
|
30273709ae | ||
|
|
17f4bbde20 | ||
|
|
575e3750f1 | ||
|
|
d7c8eced81 | ||
|
|
86fda62a48 | ||
|
|
a4ec20a7c8 | ||
|
|
90653c1472 | ||
|
|
30ec59140c | ||
|
|
f689d1688a | ||
|
|
57e545e7c4 | ||
|
|
d0ea8e3a81 | ||
|
|
c188d2bf65 | ||
|
|
75b3421222 | ||
|
|
c062bd63bb | ||
|
|
0c753e85a8 | ||
|
|
32770c02ad | ||
|
|
133dd55f4c | ||
|
|
d1e2db9cb8 | ||
|
|
52a02409f0 | ||
|
|
eb3377deb8 | ||
|
|
c06bcac9f3 | ||
|
|
f9f0523112 | ||
|
|
f7aa5d0871 | ||
|
|
9576f6807b | ||
|
|
efe50a65ee | ||
|
|
fb34dd6114 | ||
|
|
2ebff3a864 | ||
|
|
a3f70735ac | ||
|
|
e1fd915ecd | ||
|
|
0097674fc0 | ||
|
|
f6341de610 | ||
|
|
17d5fae7bb | ||
|
|
05eca83b15 | ||
|
|
6d004b2095 | ||
|
|
46327f19a1 | ||
|
|
d4c8ea9361 | ||
|
|
7af0ddc226 | ||
|
|
80ea1782f9 | ||
|
|
aa46b42356 | ||
|
|
3cd069ffb9 | ||
|
|
e621ad6d7c | ||
|
|
729d8fb435 | ||
|
|
de2ddbe8b5 | ||
|
|
57ddd82ef1 | ||
|
|
79f7ec2715 | ||
|
|
ab4c3bd2fc | ||
|
|
bd3a7e1068 | ||
|
|
aa33ead7b2 | ||
|
|
94cf2a80a5 | ||
|
|
2ee959a08e | ||
|
|
54b7591ca0 | ||
|
|
b3f0392e7d | ||
|
|
77e7350e96 | ||
|
|
9c87572f90 | ||
|
|
65765f6c2f | ||
|
|
785b312009 | ||
|
|
1d9a710e3b | ||
|
|
909bf811d1 | ||
|
|
90abe01286 | ||
|
|
2c13d74c5f | ||
|
|
5d975c5da4 | ||
|
|
35c1057527 | ||
|
|
3912181857 | ||
|
|
b9a01eb5d6 | ||
|
|
3027f0acb0 | ||
|
|
609c2a5ddb | ||
|
|
f76d648012 | ||
|
|
203bf92a0a | ||
|
|
3e8cc9e905 | ||
|
|
b9f32c1739 | ||
|
|
7e1c65f616 | ||
|
|
447ae93476 | ||
|
|
6df40f41ac | ||
|
|
3e0ef3d070 | ||
|
|
33a17a9a1b | ||
|
|
aed4bfb7f4 | ||
|
|
78f7c3e5bd | ||
|
|
d764047c1f | ||
|
|
65015ea7c7 | ||
|
|
6ef2d9cb9d | ||
|
|
c39fdab11d | ||
|
|
547261abb6 | ||
|
|
7696b7b769 | ||
|
|
585635494a | ||
|
|
a36e80099a | ||
|
|
f5f8a4f6fb | ||
|
|
e207bff91f | ||
|
|
a2c7c230ef | ||
|
|
83a12a9a26 | ||
|
|
096fe130f6 | ||
|
|
12d22f92b2 | ||
|
|
017628e2a6 | ||
|
|
332b9f5816 | ||
|
|
09a96c1118 | ||
|
|
82750ee8a2 | ||
|
|
4e89f27768 | ||
|
|
6f60235a3f | ||
|
|
42be851d64 | ||
|
|
6c32c210f8 | ||
|
|
aca665ae4e | ||
|
|
09bee30610 | ||
|
|
87d53f6f93 | ||
|
|
98cf7ec715 | ||
|
|
12e50d93df | ||
|
|
dfcdb1994b | ||
|
|
30a5b87370 | ||
|
|
465e2b1b6a | ||
|
|
1ae52bbdb1 | ||
|
|
d0024d397a | ||
|
|
0b2cdc4d56 | ||
|
|
92af6f71d9 | ||
|
|
8879b8498f | ||
|
|
ad7e0e0bf9 | ||
|
|
edb7398295 | ||
|
|
cfca28e25a | ||
|
|
a811e22f95 | ||
|
|
fbb2e6e261 | ||
|
|
c44b99d515 | ||
|
|
0f283e6cdf | ||
|
|
b7e8f796a3 | ||
|
|
d63507dd97 | ||
|
|
e1168b5107 | ||
|
|
cecb4b8336 | ||
|
|
5bbbf9d0e6 | ||
|
|
29775eef9a | ||
|
|
3f3e645c96 | ||
|
|
ebece3f961 | ||
|
|
4951d409db | ||
|
|
cf90511f3c | ||
|
|
4ec0e63d99 | ||
|
|
08843a9dd6 | ||
|
|
b3f229dc86 | ||
|
|
18b74e7a61 | ||
|
|
c60961cbb1 | ||
|
|
3338fc366d | ||
|
|
79cbf25b73 | ||
|
|
7963118032 | ||
|
|
35e6c938dc | ||
|
|
c632bc4555 | ||
|
|
7a34bc3eb0 | ||
|
|
6e0d41834c | ||
|
|
4bcbaf9113 | ||
|
|
5448a15691 | ||
|
|
c63feb3ff3 | ||
|
|
fb4d95672e | ||
|
|
bfb1658abe | ||
|
|
79e2c9175f | ||
|
|
b9c2d49a1c | ||
|
|
a25eb4ded6 | ||
|
|
3851de2774 | ||
|
|
0783b733b0 | ||
|
|
bb17feaa17 | ||
|
|
7623c8dcb7 | ||
|
|
1d7eb8a03b | ||
|
|
c5712f5ae0 | ||
|
|
00e5808a4c | ||
|
|
0a591564fd | ||
|
|
8448068d22 | ||
|
|
9fa36c3991 | ||
|
|
d949753d54 | ||
|
|
f6d2b08025 | ||
|
|
8a446de3e9 | ||
|
|
0196f46094 | ||
|
|
bd83b3bc8e | ||
|
|
89347abf53 | ||
|
|
a27f8ecfa9 | ||
|
|
75ca4920c5 | ||
|
|
324be07b85 | ||
|
|
282a5b30f9 | ||
|
|
b24acefa6f | ||
|
|
751b519167 | ||
|
|
330aec2bdd | ||
|
|
d5635c3a89 | ||
|
|
1e86d67bfe | ||
|
|
8ac9353c53 | ||
|
|
1557970170 | ||
|
|
508bbb37ce | ||
|
|
a90fc396a9 | ||
|
|
96627540da | ||
|
|
db6ebe0470 | ||
|
|
559251eb0d | ||
|
|
23396d1bd6 | ||
|
|
9d92a79a28 | ||
|
|
90a64a7403 | ||
|
|
f709cc332c | ||
|
|
c925a27870 | ||
|
|
d31403a918 | ||
|
|
f9051d768c | ||
|
|
06eb2adeaa | ||
|
|
12af3a5d10 | ||
|
|
8bf94d6ac6 | ||
|
|
15af5d2c2e | ||
|
|
60c5c5c723 | ||
|
|
f972da7442 | ||
|
|
948537cb75 | ||
|
|
ec5d0d00f5 | ||
|
|
0e7c454013 | ||
|
|
6e8e581ceb | ||
|
|
2ec435af41 | ||
|
|
5aa38c2e40 | ||
|
|
0ff3952a8b | ||
|
|
e32d2daa45 | ||
|
|
57780801aa | ||
|
|
ecdfc68170 | ||
|
|
3b29678ef1 | ||
|
|
6c54b38cdf | ||
|
|
dfcabc5a36 | ||
|
|
5c8cf2ebbd | ||
|
|
a9d41217bd | ||
|
|
75f44a821c | ||
|
|
0ab16764d1 | ||
|
|
b6e7e03c95 | ||
|
|
718c1a393d | ||
|
|
50f3316088 | ||
|
|
2727651897 | ||
|
|
e72646a4d4 | ||
|
|
8ef8d546c5 | ||
|
|
a8b2d7a6bd | ||
|
|
0a1074ca6e | ||
|
|
019d7c92c3 | ||
|
|
cb653e03f2 | ||
|
|
a6c8833f65 |
No files matched your search
@@ -5,6 +5,8 @@ Please report these issues elsewhere:
|
||||
- SECURITY ISSUES, PGP EMAIL: https://github.com/wekan/wekan/blob/main/SECURITY.md
|
||||
- UCS: https://github.com/wekan/univention/issues
|
||||
|
||||
If WeKan Snap is slow, try this: https://github.com/wekan/wekan/wiki/Cron
|
||||
|
||||
**[PLEASE UPGRADE](https://github.com/wekan/wekan/wiki/Backup)** to the newest
|
||||
WeKan ® before reporting an issue, if possible.
|
||||
|
||||
|
||||
@@ -48,14 +48,14 @@ jobs:
|
||||
# https://github.com/docker/metadata-action
|
||||
- name: Extract Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81
|
||||
uses: docker/metadata-action@369eb591f429131d6889c46b94e711f089e6ca96
|
||||
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@5cd11c3a4ced054e52742c5fd54dca954e0edd85
|
||||
uses: docker/build-push-action@48aba3b46d1b1fec4febb7c5d0c644b249a11355
|
||||
with:
|
||||
context: .
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
|
||||
Vendored
+48
-36
@@ -1,45 +1,57 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"type": "chrome",
|
||||
"request": "launch",
|
||||
"name": "Meteor: Chrome",
|
||||
"url": "http://localhost:3000",
|
||||
"webRoot": "${workspaceFolder}"
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "Meteor: Node",
|
||||
"runtimeExecutable": "meteor",
|
||||
"runtimeArgs": [
|
||||
"--port=4000",
|
||||
"--exclude-archs=web.browser.legacy,web.cordova",
|
||||
"--raw-logs"
|
||||
],
|
||||
"env": {
|
||||
"WRITABLE_PATH": "/tmp/uploads",
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "Meteor: Node",
|
||||
"runtimeExecutable": "/home/wekan/.meteor/meteor",
|
||||
"runtimeArgs": ["run", "--inspect-brk=9229"],
|
||||
"outputCapture": "std",
|
||||
"port": 9229,
|
||||
"timeout": 60000
|
||||
"outputCapture": "std",
|
||||
"restart": true,
|
||||
"timeout": 60000
|
||||
},
|
||||
{
|
||||
"type": "chrome",
|
||||
"request": "launch",
|
||||
"name": "Meteor: Chrome",
|
||||
"url": "http://localhost:4000",
|
||||
"sourceMapPathOverrides": {
|
||||
"meteor://💻app/*": "${workspaceFolder}/*"
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "Test: Node",
|
||||
"runtimeExecutable": "meteor",
|
||||
"runtimeArgs": [
|
||||
"test",
|
||||
"--inspect-brk=9229",
|
||||
"--port=4040",
|
||||
"--exclude-archs=web.browser.legacy,web.cordova",
|
||||
"--driver-package=meteortesting:mocha",
|
||||
"--settings=settings.json"
|
||||
],
|
||||
"outputCapture": "std",
|
||||
"port": 9229,
|
||||
"timeout": 60000
|
||||
}
|
||||
"userDataDir": "${env:HOME}/.vscode/chrome"
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "Test: Node",
|
||||
"runtimeExecutable": "meteor",
|
||||
"runtimeArgs": [
|
||||
"test",
|
||||
"--port=4040",
|
||||
"--exclude-archs=web.browser.legacy,web.cordova",
|
||||
"--driver-package=meteortesting:mocha",
|
||||
"--settings=settings.json",
|
||||
"--raw-logs"
|
||||
],
|
||||
"env": {
|
||||
"TEST_WATCH": "1"
|
||||
},
|
||||
"outputCapture": "std",
|
||||
"timeout": 60000
|
||||
}
|
||||
],
|
||||
"compounds": [
|
||||
{
|
||||
"name": "Meteor: All",
|
||||
"configurations": ["Meteor: Node", "Meteor: Chrome"]
|
||||
}
|
||||
{
|
||||
"name": "Meteor: All",
|
||||
"configurations": ["Meteor: Node", "Meteor: Chrome"]
|
||||
}
|
||||
]
|
||||
}
|
||||
+312
@@ -15,6 +15,318 @@ Fixing other platforms In Progress.
|
||||
|
||||
[How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585)
|
||||
|
||||
# v7.76 2024-12-30 WeKan ® release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Always handle the escape key when shortcuts are enabled](https://github.com/wekan/wekan/pull/5636).
|
||||
Thanks to NadavTasher.
|
||||
- [New Swimlane button visible, when there are no swimlanes at all](https://github.com/wekan/wekan/pull/5635).
|
||||
Thanks to NadavTasher.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.75 2024-12-29 WeKan ® release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Change margins around keyboard shortcuts toggle to make it clearer, remove old toggle from mobile view](https://github.com/wekan/wekan/pull/5634).
|
||||
Thanks to NadavTasher.
|
||||
- [Fix Cannot save Layout settings](https://github.com/wekan/wekan/commit/407d018067a5398f0c8d50519096b921d744be68).
|
||||
Thanks to tensor5g and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.74 2024-12-25 WeKan ® release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Restore keyboard shortcuts, enable per-user toggle, fix Ctrl + C bug by checking the text selection range](https://github.com/wekan/wekan/pull/5628).
|
||||
Thanks to NadavTasher.
|
||||
- [Fixed keyboard shortcuts defaults, icons and texts to be more understandable](https://github.com/wekan/wekan/commit/955a46ca6016e75c0ac1b01e25f96f47c2844559).
|
||||
Thanks to xet7.
|
||||
- ["Auto List Width" is now at "List ☰ Set Width" popup](https://github.com/wekan/wekan/commit/a862486ec37fcd022619c7e45ad9ca615aa444ed).
|
||||
Thanks to xet7.
|
||||
- [Keyboard Shortcuts Enable/Disable is now at Right Sidebar, where already was list of Keyboard Shortcuts](https://github.com/wekan/wekan/commit/275ac445d0cd6f817dd2281aacc27ca7d30b17eb).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.73 2024-12-24 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Changed the default maximum list width](https://github.com/wekan/wekan/pull/5614).
|
||||
Thanks to NadavTasher.
|
||||
- [Updated Developer Docs about docker compose](https://github.com/wekan/wekan/commit/3e3b629aa2a9efb43b1be8f57009c1d384b66ed8).
|
||||
Thanks to sridharin2020 and xet7.
|
||||
- [Hide support popup. It will be made editable later](https://github.com/wekan/wekan/commit/0332ef32980b24a0c4e108436eec5b112287c14b).
|
||||
Thanks to xet7.
|
||||
- [Hide Accessibility Settings at Admin Panel. It will be continued and added back later](https://github.com/wekan/wekan/commit/e70c51a1f033c8712771238e408cbf52487f07f5).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix buggy behaviours in board dragscrolling](https://github.com/wekan/wekan/pull/5618).
|
||||
Thanks to NadavTasher.
|
||||
- [Revert back to have shortcut "c to archive" back for non-Persian keyboards](https://github.com/wekan/wekan/commit/ba0fdaef72393632ca80b42a3c5d2ee5f5e0c76e).
|
||||
Thanks to hatl and xet7.
|
||||
- Hide and disable Keyboard Shortcuts, because they make using Ctrl-C to copy etc impossible.
|
||||
[Part 1](https://github.com/wekan/wekan/commit/5606414f8975fa0f75642d2e3a6b48c7559186f9),
|
||||
[Part 2](https://github.com/wekan/wekan/commit/94391d4cde7aed6e37efc6a9127b23ef0c2bd323),
|
||||
[Part 3](https://github.com/wekan/wekan/commit/8b73c702c39a1fd546e591a096d703a53577ffec).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.72 2024-12-08 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Optional board list auto-width, Support for min & max width for lists](https://github.com/wekan/wekan/pull/5607).
|
||||
Thanks to NadavTasher.
|
||||
|
||||
and adds the following updates:
|
||||
|
||||
- [Disabled syncing of old and unrelated docker containers between docker registries](https://github.com/wekan/wekan/commit/17d5fae7bbd96eb6721ad869802cc980c9791c7f).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix in API user role is not considered](https://github.com/wekan/wekan/commit/c062bd63bbfceb3a96f23ea3e8696534694db54e).
|
||||
Thanks to mohammadZahedian and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.71 2024-12-05 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [To menu right top username, added Support, to have info about from where to get support](https://github.com/wekan/wekan/commit/46327f19a1c6d37f2e5591aa0cc2a882e4c56ee5).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.70 2024-12-04 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Helm Chart: Allow to define securityContext for pod and containers](https://github.com/wekan/charts/pull/37).
|
||||
Thanks to maitredede.
|
||||
- [Move card to archive, add shortcut key ÷ for Persian keyboard](https://github.com/wekan/wekan/commit/80ea1782f935c74f1b7b1fd0fb7700ef9a39dc64).
|
||||
Thanks to mohammadZahedian and xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Helm Chart: Service account token does not need to be mounted in op](https://github.com/wekan/charts/pull/38).
|
||||
Thanks to maitredede.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.69 2024-12-02 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Bump docker/metadata-action from 5.5.1 to 5.6.1](https://github.com/wekan/wekan/pull/5590).
|
||||
Thanks to dependabot.
|
||||
- [Updated dependencies](https://github.com/wekan/wekan/commit/9c87572f90f16fbdddb6a4dff3984e64acac20cc).
|
||||
Thanks to developers of dependencies.
|
||||
- [Updated Windows docs](https://github.com/wekan/wekan/commit/aa33ead7b2efd11bfd9e3f1fb94b564b6bdce119).
|
||||
Thanks to xet7.
|
||||
- [Update docker-compose.yml Keycloak part](https://github.com/wekan/wekan/pull/5597).
|
||||
Thanks to NadavTasher.
|
||||
- [Updated Keycloak etc login settings at start-wekan.bat and start-wekan.sh](https://github.com/wekan/wekan/commit/ab4c3bd2fc49e6fa82ec47dccdf9670110cddf98).
|
||||
Thanks to xet7.
|
||||
- [Updated release scripts](https://github.com/wekan/wekan/commit/79f7ec27159825db9206f385d9281fd68a2aacf5).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix issue with comments not showing when using Exodark Theme](https://github.com/wekan/wekan/pull/5595).
|
||||
Thanks to walster001.
|
||||
- [Change archive-card shortcut to backtick for better ergonomics](https://github.com/wekan/wekan/pull/5589).
|
||||
Thanks to malteprang.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.68 2024-11-24 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Speed improvements to building WeKan x86_64 Dockerfile. Reduced Docker image size from 1 GB to 0.5 GB. Using Ubuntu 24.04 Docker base image](https://github.com/wekan/wekan/pull/5588).
|
||||
Thanks to NadavTasher.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.67 2024-11-21 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Re-introduce list auto-width feature, Reverted scrollbar hiding, Fixed transparent sidebar bug](https://github.com/wekan/wekan/pull/5586).
|
||||
Thanks to NadavTasher.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.65 2024-11-20 WeKan ® release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Revert some scrollbar, sidebar and list width changes](https://github.com/wekan/wekan/commit/096fe130f68e0d8d082d309901c75ed04285b7e2).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.64 2024-11-20 WeKan ® release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Add missing semicolon in keyboard.js](https://github.com/wekan/wekan/pull/5580).
|
||||
Thanks to NadavTasher.
|
||||
- [Make lists fill up space evenly, change listWidth to max-width](https://github.com/wekan/wekan/pull/5581).
|
||||
Thanks to NadavTasher.
|
||||
- [Change way of disabling scrollbars, disable swimlane scrollbars](https://github.com/wekan/wekan/pull/5583).
|
||||
Thanks to NadavTasher.
|
||||
- [Improve list auto-width, fix regressions](https://github.com/wekan/wekan/pull/5584).
|
||||
Thanks to NadavTasher.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.63 2024-11-16 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Always close sidebar when user clicks ESC](https://github.com/wekan/wekan/pull/5571).
|
||||
Thanks to NadavTasher.
|
||||
- [Added 'n' shortcut for adding new minicards to current list](https://github.com/wekan/wekan/pull/5570).
|
||||
Thanks to NadavTasher.
|
||||
- [Patch to allow shortcuts to work when another keyboard layout is used](https://github.com/wekan/wekan/pull/5574).
|
||||
Thanks to NadavTasher.
|
||||
|
||||
and adds the following updates:
|
||||
|
||||
- [Updated scaling docs](https://github.com/wekan/wekan/commit/92af6f71d9c60acbca8f65c7ec1822818186639c).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix some text alignment issues when using RTL languages](https://github.com/wekan/wekan/pull/5572).
|
||||
Thanks to NadavTasher.
|
||||
- [Hide scrollbars where they interrupt](https://github.com/wekan/wekan/pull/5573).
|
||||
Thanks to NadavTasher.
|
||||
- [Disable sidebar showing when filtering using keyboard shortcut](https://github.com/wekan/wekan/pull/5575).
|
||||
Thanks to NadavTasher.
|
||||
- [Change move-to-archive keyboard shortcut to '-', because of Ctrl + C shortcut](https://github.com/wekan/wekan/pull/5576).
|
||||
Thanks to NadavTasher.
|
||||
- [Potential bug(fix?) - Add assign-self keyboard shortcut (old shortcut actually adds)](https://github.com/wekan/wekan/pull/5577).
|
||||
Thanks to NadavTasher.
|
||||
- [Sidebar style overhaul - absolute positioning, weird style fixes, disable sidebar scrollbar](https://github.com/wekan/wekan/pull/5578).
|
||||
Thanks to NadavTasher.
|
||||
- [Revert adding more stack size](https://github.com/wekan/wekan/commit/edb73982953d63066494dbc096bdeb62f7fe730b).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.62 2024-11-15 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Added comment section on card details to avoid loading the card comment activities from the server](https://github.com/wekan/wekan/pull/5566).
|
||||
Thanks to mfilser.
|
||||
- [Checklist items hide per card](https://github.com/wekan/wekan/pull/5567).
|
||||
Thanks to mfilser.
|
||||
- [Checklist multiline insert (many checklist items at once)](https://github.com/wekan/wekan/pull/5568).
|
||||
Thanks to mfilser.
|
||||
- [Each checklist can now be configured to hide checked checklist items](https://github.com/wekan/wekan/pull/5569).
|
||||
Thanks to mfilser.
|
||||
|
||||
and adds the following updates:
|
||||
|
||||
- [Copied updated Docs from wiki to WeKan repo](https://github.com/wekan/wekan/commit/559251eb0d8aea6a714f14224497d0a25c7a3864).
|
||||
Thanks to xet7.
|
||||
- [Updated docs about Linked Cards](https://github.com/wekan/wekan/commit/96627540da0b6e12890ee1660f4ff0f469bb0e25).
|
||||
Thanks to xet7.
|
||||
- [Add docs about how at LXC/LXD Fix: System does not fully support snapd](https://github.com/wekan/wekan/commit/508bbb37ce960c88c2a7d0b2cb35e5d8790df19f).
|
||||
Thanks to xet7.
|
||||
- [Copied from Sandstorm developer discussions to docs fix for running Sandstorm at Ubuntu 24.04](https://github.com/wekan/wekan/commit/8ac9353c5313402e00160843ca57405ebeb128cb).
|
||||
Thanks to xet7.
|
||||
- [Update ldap-sync.py reference](https://github.com/wekan/wekan/pull/5555).
|
||||
Thanks to emmanuel-ferdman.
|
||||
- [Updated dependencies](https://github.com/wekan/wekan/commit/b24acefa6f6696b702f2c3ceb28d6d6290017bb2).
|
||||
Thanks to developers of dependencies.
|
||||
- [Update Snap Candidate to MongoDB 6.0.19. Updated WeKan Windows version numbers. Added Cron docs](https://github.com/wekan/wekan/commit/fb4d95672e37d849ff52954c79eede2af7d2a509).
|
||||
Thanks to xet7.
|
||||
- [Updated docs sidebar](https://github.com/wekan/wekan/commit/5448a1569113142ab5b2440763c9642c88e86ba4)-
|
||||
Thanks to xet7.
|
||||
- [Updated Docker base image to Ubuntu 24.10](https://github.com/wekan/wekan/commit/7a34bc3eb03943506abe5e54501d1906fc16540b).
|
||||
Thanks to Ubuntu developers.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Add more stack size](https://github.com/wekan/wekan/commit/324be07b859937966f98feb2aeea8f344c689bb0).
|
||||
Thanks to xet7.
|
||||
- [Fix Warning: missing space before text for line 210 of jade file client/components/activities/activities.jade](https://github.com/wekan/wekan/commit/a27f8ecfa9971740a019a955d3f8d0e5a5dd8dab).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.61 2024-10-23 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Testing packages without versions from, for upcoming upgrades](https://github.com/wekan/wekan/commit/6e8e581ceb330a7756403efa1f8bbe5a198ff111).
|
||||
Thanks to xet7.
|
||||
- [Updated to MongoDB 6.0.18 at Snap Candidate](https://github.com/wekan/wekan/commit/9d92a79a284147380eb08a0c011a8815dae5209b).
|
||||
Thanks to MongoDB developers.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Try 3 to fix apparmor denied in syslog at Snap Candidate. Changed MongoDB --host back to --bind_ip](https://github.com/wekan/wekan/commit/6c54b38cdfd14959f4449cea0c3150bf86708ecd).
|
||||
Thanks to webenefits and xet7.
|
||||
- [Try 4 to fix apparmor denied in syslog at Snap Candidate](https://github.com/wekan/wekan/commit/ecdfc681700633d8688ca709f36924ceced96af8).
|
||||
Thanks to webenefits and xet7.
|
||||
- [Try 5 to fix apparmor denied in syslog at Snap Candidate](https://github.com/wekan/wekan/commit/e32d2daa4567728e4dd5048c9c575edcac1372da).
|
||||
Thanks to webenefits and xet7.
|
||||
- [Try 6 to fix apparmor denied in syslog at Snap Candidate](https://github.com/wekan/wekan/commit/5aa38c2e40429f06aac8bc1bc0b5ac30c5344c6f).
|
||||
Thanks to webenefits and xet7.
|
||||
- [Renaming list shows in activities](https://github.com/wekan/wekan/pull/5549).
|
||||
Thanks to AdenKoziol.
|
||||
- [Fixing opening cards and slow performance of closing cards by reverting switching kadira:flow-router to ostrio:flow-router-extra](https://github.com/wekan/wekan/pull/5552).
|
||||
Thanks to mfilser.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.60 2024-09-23 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Added to Docs CNAME DNS info about CloudFlare and Sandstorm](https://github.com/wekan/wekan/commit/b6e7e03c95dfa68c8de6922ffb7663631e476d91).
|
||||
Thanks to xet7.
|
||||
- [Switch from kadira:flow-router to ostrio:flow-router-extra](https://github.com/wekan/wekan/pull/5530).
|
||||
Thanks to imajus.
|
||||
- [Removed outdated dependency page. To be seen, does anything break](https://github.com/wekan/wekan/commit/a9d41217bd8c797b28510efec3e21a92d7ec4bba).
|
||||
Thanks to xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.59 2024-09-04 WeKan ® release
|
||||
|
||||
This release tries to fix the following bugs:
|
||||
|
||||
- [Try 2 to fix apparmor denied in syslog at Snap Candidate](https://github.com/wekan/wekan/commit/0a1074ca6e95728b0da30bd701ba783f2a4bdd98).
|
||||
Newest MongoDB uses --host, not anymore --bind_ip.
|
||||
Thanks to webenefits and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.58 2024-09-04 WeKan ® release
|
||||
|
||||
This release tries to fix the following bugs:
|
||||
|
||||
- [Try to fix apparrmor denied in syslog at Snap Candidate](https://github.com/wekan/wekan/commit/a6c8833f652ee84284da2195bf79fb8edaa818b7).
|
||||
Thanks to webenefits and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.57 2024-09-04 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
+95
-132
@@ -1,31 +1,76 @@
|
||||
FROM ubuntu:24.04
|
||||
FROM scratch AS downloads
|
||||
|
||||
# Download NodeJS bundle
|
||||
ADD https://static.meteor.com/dev-bundle-node-os/v14.21.4/node-v14.21.4-linux-x64.tar.gz node.tar.gz
|
||||
|
||||
# Download Meteor bundle
|
||||
ADD https://static.meteor.com/packages-bootstrap/2.16/meteor-bootstrap-os.linux.x86_64.tar.gz meteor.tar.gz
|
||||
|
||||
FROM ubuntu:24.04 AS build
|
||||
|
||||
# Install node from official archive
|
||||
RUN --mount=type=bind,from=downloads,source=node.tar.gz,target=node.tar.gz \
|
||||
tar xzf node.tar.gz --strip-components=1 --keep-old-files --no-same-owner
|
||||
|
||||
# Install meteor from official archive
|
||||
RUN --mount=type=bind,from=downloads,source=meteor.tar.gz,target=meteor.tar.gz \
|
||||
tar xzf meteor.tar.gz -C $HOME --no-same-owner
|
||||
|
||||
# Update the npm version
|
||||
RUN npm install -g npm@6.14.17
|
||||
|
||||
# Install several build dependencies
|
||||
RUN apt update && \
|
||||
apt install --yes --no-install-suggests --no-install-recommends ssh git g++ curl ca-certificates && \
|
||||
rm -r /var/lib/apt/lists
|
||||
|
||||
# Change to temporary working directory
|
||||
WORKDIR /workdir
|
||||
|
||||
# Copy package.json and package-lock.json to install application dependencies
|
||||
COPY package.json .
|
||||
COPY package-lock.json .
|
||||
|
||||
# Install build dependencies
|
||||
RUN $HOME/.meteor/meteor npm install --production
|
||||
|
||||
# Copy meteor application configurations
|
||||
COPY .meteor .meteor
|
||||
|
||||
# Copy application sources
|
||||
COPY packages packages
|
||||
COPY imports imports
|
||||
COPY config config
|
||||
COPY models models
|
||||
COPY public public
|
||||
COPY server server
|
||||
COPY client client
|
||||
|
||||
# Build the application
|
||||
RUN $HOME/.meteor/meteor build --directory /build --allow-superuser
|
||||
|
||||
# Enter server bundle directory
|
||||
WORKDIR /build/bundle/programs/server
|
||||
|
||||
# Install server dependencies
|
||||
RUN $HOME/.meteor/meteor npm install --production
|
||||
|
||||
# Enter installation directory of fibers
|
||||
WORKDIR /build/bundle/programs/server/node_modules/fibers
|
||||
|
||||
# Build fibers integrations
|
||||
RUN node build.js
|
||||
|
||||
FROM ubuntu:24.04 AS wekan
|
||||
|
||||
# Add metadata to image
|
||||
LABEL maintainer="wekan"
|
||||
LABEL org.opencontainers.image.ref.name="ubuntu"
|
||||
LABEL org.opencontainers.image.version="24.04"
|
||||
LABEL org.opencontainers.image.source="https://github.com/wekan/wekan"
|
||||
|
||||
# 2022-04-25:
|
||||
# - gyp does not yet work with Ubuntu 22.04 ubuntu:rolling,
|
||||
# so changing to 21.10. https://github.com/wekan/wekan/issues/4488
|
||||
|
||||
# 2021-09-18:
|
||||
# - Above Ubuntu base image copied from Docker Hub ubuntu:hirsute-20210825
|
||||
# to Quay to avoid Docker Hub rate limits.
|
||||
ARG DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
ENV BUILD_DEPS="apt-utils gnupg gosu wget bzip2 g++ curl libarchive-tools build-essential git ca-certificates python3"
|
||||
|
||||
ENV \
|
||||
DEBUG=false \
|
||||
NODE_VERSION=v14.21.4 \
|
||||
METEOR_RELEASE=METEOR@2.14 \
|
||||
USE_EDGE=false \
|
||||
METEOR_EDGE=1.5-beta.17 \
|
||||
NPM_VERSION=6.14.17 \
|
||||
FIBERS_VERSION=4.0.1 \
|
||||
ARCHITECTURE=linux-x64 \
|
||||
SRC_PATH=./ \
|
||||
WITH_API=true \
|
||||
# Set default environment variables
|
||||
ENV WITH_API=true \
|
||||
RESULTS_PER_PAGE="" \
|
||||
DEFAULT_BOARD_ID="" \
|
||||
ACCOUNTS_LOCKOUT_KNOWN_USERS_FAILURES_BEFORE=3 \
|
||||
@@ -158,118 +203,36 @@ ENV \
|
||||
WRITABLE_PATH=/data \
|
||||
S3=""
|
||||
|
||||
# NODE_OPTIONS="--max_old_space_size=4096"
|
||||
|
||||
#---------------------------------------------
|
||||
# == at docker-compose.yml: AUTOLOGIN WITH OIDC/OAUTH2 ====
|
||||
# https://github.com/wekan/wekan/wiki/autologin
|
||||
#- OIDC_REDIRECTION_ENABLED=true
|
||||
#---------------------------------------------------------------------
|
||||
|
||||
# Copy the app to the image
|
||||
COPY ${SRC_PATH} /home/wekan/app
|
||||
|
||||
# Install OS
|
||||
RUN <<EOR
|
||||
set -o xtrace
|
||||
|
||||
# Add non-root user wekan
|
||||
useradd --user-group --system --home-dir /home/wekan wekan
|
||||
# OS dependencies
|
||||
apt-get update --assume-yes
|
||||
apt-get install --assume-yes --no-install-recommends ${BUILD_DEPS}
|
||||
|
||||
# Meteor installer doesn't work with the default tar binary, so using bsdtar while installing.
|
||||
# https://github.com/coreos/bugs/issues/1095#issuecomment-350574389
|
||||
cp $(which tar) $(which tar)~
|
||||
ln -sf $(which bsdtar) $(which tar)
|
||||
|
||||
# Install NodeJS
|
||||
cd /tmp
|
||||
|
||||
# Download nodejs
|
||||
wget "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz"
|
||||
wget "https://github.com/wekan/node-v14-esm/releases/download/${NODE_VERSION}/SHASUMS256.txt"
|
||||
|
||||
# Verify nodejs authenticity
|
||||
grep "node-${NODE_VERSION}-${ARCHITECTURE}.tar.gz" "SHASUMS256.txt" | shasum -a 256 -c -
|
||||
rm -f "SHASUMS256.txt"
|
||||
|
||||
# Install Node
|
||||
tar xzf "node-$NODE_VERSION-$ARCHITECTURE.tar.gz" -C /usr/local --strip-components=1 --no-same-owner
|
||||
rm "node-$NODE_VERSION-$ARCHITECTURE.tar.gz" "SHASUMS256.txt"
|
||||
ln -s "/usr/local/bin/node" "/usr/local/bin/nodejs"
|
||||
mkdir -p "/opt/nodejs/lib/node_modules/fibers/.node-gyp" "/root/.node-gyp/${NODE_VERSION} /home/wekan/.config"
|
||||
|
||||
# Install node dependencies
|
||||
npm install -g npm@${NPM_VERSION} --production
|
||||
chown --recursive wekan:wekan /home/wekan/.config
|
||||
|
||||
# Install Meteor
|
||||
cd /home/wekan
|
||||
chown --recursive wekan:wekan /home/wekan
|
||||
echo "Starting meteor ${METEOR_RELEASE} installation... \n"
|
||||
gosu wekan:wekan curl https://install.meteor.com/ | /bin/sh
|
||||
mv /root/.meteor /home/wekan/
|
||||
chown --recursive wekan:wekan /home/wekan/.meteor
|
||||
|
||||
sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' /home/wekan/app/packages/meteor-useraccounts-core/package.js
|
||||
cd /home/wekan/.meteor
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor -- help
|
||||
|
||||
# Build app (Production)
|
||||
cd /home/wekan/app
|
||||
mkdir -p /home/wekan/.npm
|
||||
chown --recursive wekan:wekan /home/wekan/.npm
|
||||
chmod u+w *.json
|
||||
gosu wekan:wekan meteor npm install --production
|
||||
gosu wekan:wekan /home/wekan/.meteor/meteor build --directory /home/wekan/app_build
|
||||
cd /home/wekan/app_build/bundle/programs/server/
|
||||
chmod u+w *.json
|
||||
gosu wekan:wekan meteor npm install --production
|
||||
cd node_modules/fibers
|
||||
node build.js
|
||||
cd ../..
|
||||
# Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc.
|
||||
rm -rf /home/wekan/app_build/bundle/programs/web.browser.legacy
|
||||
mv /home/wekan/app_build/bundle /build
|
||||
|
||||
# Put back the original tar
|
||||
mv $(which tar)~ $(which tar)
|
||||
|
||||
# Cleanup
|
||||
apt-get remove --purge --assume-yes ${BUILD_DEPS}
|
||||
npm uninstall -g api2html
|
||||
apt-get autoremove --assume-yes
|
||||
apt-get clean --assume-yes
|
||||
rm -Rf /tmp/*
|
||||
rm -Rf /var/lib/apt/lists/*
|
||||
rm -Rf /var/cache/apt
|
||||
rm -Rf /var/lib/apt/lists
|
||||
rm -Rf /home/wekan/app_build
|
||||
rm -Rf /home/wekan/app
|
||||
rm -Rf /home/wekan/.meteor
|
||||
|
||||
mkdir /data
|
||||
chown wekan --recursive /data
|
||||
EOR
|
||||
# Install node and application sources from build stage
|
||||
RUN --mount=type=bind,from=downloads,source=node.tar.gz,target=node.tar.gz \
|
||||
--mount=type=bind,from=build,source=/build,target=/build \
|
||||
# Install NodeJS
|
||||
tar xzf node.tar.gz --strip-components=1 --keep-old-files --no-same-owner && \
|
||||
# Add the wekan user
|
||||
useradd --uid 999 --user-group --system wekan && \
|
||||
# Copy wekan bundle
|
||||
cp -r /build/bundle /wekan && \
|
||||
# Remove the web.browser.legacy platform
|
||||
rm -r /wekan/programs/web.browser.legacy && \
|
||||
# Change ownership of wekan directory
|
||||
chown wekan:wekan -R /wekan && \
|
||||
# Create the data directory
|
||||
mkdir /data && \
|
||||
# Change ownership of data directory
|
||||
chown wekan:root -R /data
|
||||
|
||||
# Change to the wekan user
|
||||
USER wekan
|
||||
|
||||
# Set the port to listen on
|
||||
ENV PORT=8080
|
||||
EXPOSE $PORT
|
||||
EXPOSE ${PORT}
|
||||
|
||||
STOPSIGNAL SIGKILL
|
||||
WORKDIR /home/wekan/app
|
||||
# Define the stop signal for node
|
||||
STOPSIGNAL SIGINT
|
||||
|
||||
#---------------------------------------------------------------------
|
||||
# https://github.com/wekan/wekan/issues/3585#issuecomment-1021522132
|
||||
# Add more Node heap:
|
||||
# NODE_OPTIONS="--max_old_space_size=4096"
|
||||
# Add more stack:
|
||||
# bash -c "ulimit -s 65500; exec node --stack-size=65500 main.js"
|
||||
#---------------------------------------------------------------------
|
||||
#
|
||||
# CMD ["node", "/build/main.js"]
|
||||
# CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 /build/main.js"]
|
||||
CMD ["bash", "-c", "ulimit -s 65500; exec node /build/main.js"]
|
||||
# Declare a volume on /data
|
||||
VOLUME /data
|
||||
|
||||
# Set startup command
|
||||
CMD ["node", "/wekan/main.js"]
|
||||
@@ -88,5 +88,6 @@ RUN \
|
||||
EXPOSE $PORT
|
||||
USER wekan
|
||||
|
||||
# CMD ["bash", "-c", "ulimit -s 65500; exec node --stack-size=65500 --max-old-space-size=8192 /home/wekan/bundle/main.js"]
|
||||
CMD ["bash", "-c", "ulimit -s 65500; exec node /home/wekan/bundle/main.js"]
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
About money, see [CONTRIBUTING.md](CONTRIBUTING.md)
|
||||
|
||||
Security is very important to us. If you discover any issue regarding security, please disclose
|
||||
the information responsibly by sending an email to support@wekan.team and not by
|
||||
the information responsibly by sending an email to security@wekan.team and not by
|
||||
creating a GitHub issue. We will respond swiftly to fix verifiable security issues.
|
||||
|
||||
We thank you with a place at our hall of fame page, that is
|
||||
@@ -217,7 +217,7 @@ Typical already known or "no impact" bugs such as:
|
||||
- Email spoofing, SPF, DMARC & DKIM. Wekan does not include email server.
|
||||
|
||||
Wekan is Open Source with MIT license, and free to use also for commercial use.
|
||||
We welcome all fixes to improve security by email to security (at) wekan.team .
|
||||
We welcome all fixes to improve security by email to security@wekan.team
|
||||
|
||||
## Bonus Points
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v7.57.0"
|
||||
appVersion: "v7.76.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
||||
@@ -49,43 +49,6 @@
|
||||
margin-top: 5px;
|
||||
padding: 5px;
|
||||
}
|
||||
.activities .activity .activity-desc .reactions {
|
||||
display: flex;
|
||||
margin-top: 5px;
|
||||
gap: 5px;
|
||||
}
|
||||
.activities .activity .activity-desc .reactions .open-comment-reaction-popup {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
height: 24px;
|
||||
}
|
||||
.activities .activity .activity-desc .reactions .open-comment-reaction-popup i.fa.fa-smile-o {
|
||||
font-size: 17px;
|
||||
font-weight: 500;
|
||||
margin-left: 2px;
|
||||
}
|
||||
.activities .activity .activity-desc .reactions .open-comment-reaction-popup i.fa.fa-plus {
|
||||
font-size: 8px;
|
||||
margin-top: -7px;
|
||||
margin-left: 1px;
|
||||
}
|
||||
.activities .activity .activity-desc .reactions .reaction {
|
||||
cursor: pointer;
|
||||
border: 1px solid #808080;
|
||||
border-radius: 15px;
|
||||
display: flex;
|
||||
padding: 2px 5px;
|
||||
}
|
||||
.activities .activity .activity-desc .reactions .reaction.selected {
|
||||
background-color: #b0c4de;
|
||||
}
|
||||
.activities .activity .activity-desc .reactions .reaction:hover {
|
||||
background-color: #b0c4de;
|
||||
}
|
||||
.activities .activity .activity-desc .reactions .reaction .reaction-count {
|
||||
font-size: 12px;
|
||||
}
|
||||
.activities .activity .activity-desc .activity-checklist {
|
||||
display: block;
|
||||
border-radius: 3px;
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
template(name="activities")
|
||||
.activities.js-sidebar-activities
|
||||
//- We should use Template.dynamic here but there is a bug with
|
||||
//- blaze-components: https://github.com/peerlibrary/meteor-blaze-components/issues/30
|
||||
if $eq mode "board"
|
||||
+boardActivities
|
||||
else
|
||||
+cardActivities
|
||||
if showActivities
|
||||
.activities.js-sidebar-activities
|
||||
//- We should use Template.dynamic here but there is a bug with
|
||||
//- blaze-components: https://github.com/peerlibrary/meteor-blaze-components/issues/30
|
||||
if $eq mode "board"
|
||||
+boardActivities
|
||||
else
|
||||
+cardActivities
|
||||
|
||||
template(name="boardActivities")
|
||||
each activityData in currentBoard.activities
|
||||
@@ -15,31 +16,6 @@ template(name="cardActivities")
|
||||
each activityData in activities
|
||||
+activity(activity=activityData card=card mode=mode)
|
||||
|
||||
template(name="editOrDeleteComment")
|
||||
a.js-open-inlined-form {{_ "edit"}}
|
||||
= ' - '
|
||||
a.js-delete-comment {{_ "delete"}}
|
||||
|
||||
template(name="deleteCommentPopup")
|
||||
p {{_ "comment-delete"}}
|
||||
button.js-confirm.negate.full(type="submit") {{_ 'delete'}}
|
||||
|
||||
template(name="commentReactions")
|
||||
.reactions
|
||||
each reaction in reactions
|
||||
span.reaction(class="{{#if isSelected reaction.userIds}}selected{{/if}}" data-codepoint="#{reaction.reactionCodepoint}" title="{{userNames reaction.userIds}}")
|
||||
span.reaction-codepoint !{reaction.reactionCodepoint}
|
||||
span.reaction-count #{reaction.userIds.length}
|
||||
if (currentUser.isBoardMember)
|
||||
a.open-comment-reaction-popup(title="{{_ 'addReactionPopup-title'}}")
|
||||
i.fa.fa-smile-o
|
||||
i.fa.fa-plus
|
||||
|
||||
template(name="addReactionPopup")
|
||||
.reactions-popup
|
||||
each codepoint in codepoints
|
||||
span.add-comment-reaction(data-codepoint="#{codepoint}") !{codepoint}
|
||||
|
||||
template(name="activity")
|
||||
.activity(data-id=activity._id)
|
||||
+userAvatar(userId=activity.user._id)
|
||||
@@ -129,38 +105,17 @@ template(name="activity")
|
||||
| {{{_ 'activity-checklist-item-removed' (sanitize activity.checklist.title) cardLink}}}.
|
||||
|
||||
//- comment activity ----------------------------------------------------
|
||||
if($eq mode 'card')
|
||||
//- if we are in card mode we display the comment in a way that it
|
||||
//- can be edited by the owner
|
||||
if($eq activity.activityType 'addComment')
|
||||
+inlinedForm(classNames='js-edit-comment')
|
||||
+editor(autofocus=true)
|
||||
= activity.comment.text
|
||||
.edit-controls
|
||||
button.primary(type="submit") {{_ 'edit'}}
|
||||
.fa.fa-times-thin.js-close-inlined-form
|
||||
else
|
||||
.activity-comment
|
||||
+viewer
|
||||
= activity.comment.text
|
||||
+commentReactions(reactions=activity.comment.reactions commentId=activity.comment._id)
|
||||
if($eq currentUser._id activity.comment.userId)
|
||||
+editOrDeleteComment
|
||||
else if currentUser.isBoardAdmin
|
||||
+editOrDeleteComment
|
||||
if($eq activity.activityType 'deleteComment')
|
||||
| {{{_ 'activity-deleteComment' activity.commentId}}}.
|
||||
|
||||
if($eq activity.activityType 'deleteComment')
|
||||
| {{{_ 'activity-deleteComment' activity.commentId}}}.
|
||||
if($eq activity.activityType 'editComment')
|
||||
| {{{_ 'activity-editComment' activity.commentId}}}.
|
||||
|
||||
if($eq activity.activityType 'editComment')
|
||||
| {{{_ 'activity-editComment' activity.commentId}}}.
|
||||
else
|
||||
//- if we are not in card mode we only display a summary of the comment
|
||||
if($eq activity.activityType 'addComment')
|
||||
| {{{_ 'activity-on' cardLink}}}
|
||||
a.activity-comment(href="{{ activity.card.originRelativeUrl }}")
|
||||
+viewer
|
||||
= activity.comment.text
|
||||
if($eq activity.activityType 'addComment')
|
||||
| {{{_ 'activity-on' cardLink}}}
|
||||
a.activity-comment(href="{{ activity.card.originRelativeUrl }}")
|
||||
+viewer
|
||||
= activity.comment.text
|
||||
|
||||
//- date activity ------------------------------------------------
|
||||
if($eq activity.activityType 'a-receivedAt')
|
||||
@@ -206,6 +161,9 @@ template(name="activity")
|
||||
if($eq activity.activityType 'archivedList')
|
||||
| {{_ 'activity-archived' (sanitize listLabel)}}.
|
||||
|
||||
if($eq activity.activityType 'changedListTitle')
|
||||
| {{_ 'activity-changedListTitle' (sanitize listLabel) boardLabelLink}}
|
||||
|
||||
//- member activity ----------------------------------------------------
|
||||
if($eq activity.activityType 'joinMember')
|
||||
if($eq user._id activity.member._id)
|
||||
|
||||
@@ -17,8 +17,10 @@ BlazeComponent.extendComponent({
|
||||
if (mode) {
|
||||
const capitalizedMode = Utils.capitalize(mode);
|
||||
let searchId;
|
||||
const showActivities = this.showActivities();
|
||||
if (mode === 'linkedcard' || mode === 'linkedboard') {
|
||||
searchId = Utils.getCurrentCard().linkedId;
|
||||
const currentCard = Utils.getCurrentCard();
|
||||
searchId = currentCard.linkedId;
|
||||
mode = mode.replace('linked', '');
|
||||
} else if (mode === 'card') {
|
||||
searchId = Utils.getCurrentCardId();
|
||||
@@ -26,11 +28,9 @@ BlazeComponent.extendComponent({
|
||||
searchId = Session.get(`current${capitalizedMode}`);
|
||||
}
|
||||
const limit = this.page.get() * activitiesPerPage;
|
||||
const user = ReactiveCache.getCurrentUser();
|
||||
const hideSystem = user ? user.hasHiddenSystemMessages() : false;
|
||||
if (searchId === null) return;
|
||||
|
||||
this.subscribe('activities', mode, searchId, limit, hideSystem, () => {
|
||||
this.subscribe('activities', mode, searchId, limit, showActivities, () => {
|
||||
this.loadNextPageLocked = false;
|
||||
|
||||
// TODO the guard can be removed as soon as the TODO above is resolved
|
||||
@@ -56,14 +56,26 @@ BlazeComponent.extendComponent({
|
||||
this.loadNextPageLocked = true;
|
||||
}
|
||||
},
|
||||
}).register('activities');
|
||||
|
||||
Template.activities.helpers({
|
||||
activities() {
|
||||
const ret = this.card.activities();
|
||||
showActivities() {
|
||||
let ret = false;
|
||||
let mode = this.data()?.mode;
|
||||
if (mode) {
|
||||
if (mode === 'linkedcard' || mode === 'linkedboard') {
|
||||
const currentCard = Utils.getCurrentCard();
|
||||
ret = currentCard.showActivities ?? false;
|
||||
} else if (mode === 'card') {
|
||||
ret = this.data()?.card?.showActivities ?? false;
|
||||
} else {
|
||||
ret = Utils.getCurrentBoard().showActivities ?? false;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
},
|
||||
});
|
||||
activities() {
|
||||
const ret = this.data().card.activities();
|
||||
return ret;
|
||||
},
|
||||
}).register('activities');
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
checkItem() {
|
||||
@@ -249,32 +261,6 @@ BlazeComponent.extendComponent({
|
||||
return customField.name;
|
||||
},
|
||||
|
||||
events() {
|
||||
return [
|
||||
{
|
||||
// XXX We should use Popup.afterConfirmation here
|
||||
'click .js-delete-comment': Popup.afterConfirm('deleteComment', () => {
|
||||
const commentId = this.data().activity.commentId;
|
||||
CardComments.remove(commentId);
|
||||
Popup.back();
|
||||
}),
|
||||
'submit .js-edit-comment'(evt) {
|
||||
evt.preventDefault();
|
||||
const commentText = this.currentComponent()
|
||||
.getValue()
|
||||
.trim();
|
||||
const commentId = Template.parentData().activity.commentId;
|
||||
if (commentText) {
|
||||
CardComments.update(commentId, {
|
||||
$set: {
|
||||
text: commentText,
|
||||
},
|
||||
});
|
||||
}
|
||||
},
|
||||
},
|
||||
];
|
||||
},
|
||||
}).register('activity');
|
||||
|
||||
Template.activity.helpers({
|
||||
|
||||
@@ -63,3 +63,78 @@
|
||||
display: block;
|
||||
margin: auto;
|
||||
}
|
||||
.comments {
|
||||
clear: both;
|
||||
}
|
||||
.comments .comment {
|
||||
margin: 0.5px 0;
|
||||
padding: 6px 0;
|
||||
display: flex;
|
||||
}
|
||||
.comments .comment .member {
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
}
|
||||
.comments .comment .comment-member {
|
||||
font-weight: 700;
|
||||
}
|
||||
.comments .comment .comment-desc {
|
||||
word-wrap: break-word;
|
||||
overflow: hidden;
|
||||
flex: 1;
|
||||
align-self: center;
|
||||
margin: 0;
|
||||
margin-left: 3px;
|
||||
overflow: hidden;
|
||||
word-break: break-word;
|
||||
}
|
||||
.comments .comment .comment-desc .comment-text {
|
||||
display: block;
|
||||
border-radius: 3px;
|
||||
background: #fff;
|
||||
text-decoration: none;
|
||||
box-shadow: 0 1px 2px rgba(0,0,0,0.2);
|
||||
margin-top: 5px;
|
||||
padding: 5px;
|
||||
}
|
||||
.comments .comment .comment-desc .reactions {
|
||||
display: flex;
|
||||
margin-top: 5px;
|
||||
gap: 5px;
|
||||
}
|
||||
.comments .comment .comment-desc .reactions .open-comment-reaction-popup {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
height: 24px;
|
||||
}
|
||||
.comments .comment .comment-desc .reactions .open-comment-reaction-popup i.fa.fa-smile-o {
|
||||
font-size: 17px;
|
||||
font-weight: 500;
|
||||
margin-left: 2px;
|
||||
}
|
||||
.comments .comment .comment-desc .reactions .open-comment-reaction-popup i.fa.fa-plus {
|
||||
font-size: 8px;
|
||||
margin-top: -7px;
|
||||
margin-left: 1px;
|
||||
}
|
||||
.comments .comment .comment-desc .reactions .reaction {
|
||||
cursor: pointer;
|
||||
border: 1px solid #808080;
|
||||
border-radius: 15px;
|
||||
display: flex;
|
||||
padding: 2px 5px;
|
||||
}
|
||||
.comments .comment .comment-desc .reactions .reaction.selected {
|
||||
background-color: #b0c4de;
|
||||
}
|
||||
.comments .comment .comment-desc .reactions .reaction:hover {
|
||||
background-color: #b0c4de;
|
||||
}
|
||||
.comments .comment .comment-desc .reactions .reaction .reaction-count {
|
||||
font-size: 12px;
|
||||
}
|
||||
.comments .comment .comment-desc .comment-meta {
|
||||
font-size: 0.8em;
|
||||
color: #999;
|
||||
}
|
||||
@@ -7,3 +7,59 @@ template(name="commentForm")
|
||||
| {{getUnsavedValue 'cardComment' currentCard._id}}
|
||||
.add-controls
|
||||
button.primary.confirm.clear.js-add-comment(type="submit") {{_ 'comment'}}
|
||||
|
||||
template(name="comments")
|
||||
.comments
|
||||
each commentData in getComments
|
||||
+comment(commentData)
|
||||
|
||||
template(name="comment")
|
||||
.comment
|
||||
+userAvatar(userId=userId)
|
||||
p.comment-desc
|
||||
span.comment-member
|
||||
+memberName(user=user)
|
||||
|
||||
+inlinedForm(classNames='js-edit-comment')
|
||||
+editor(autofocus=true)
|
||||
= text
|
||||
.edit-controls
|
||||
button.primary(type="submit") {{_ 'edit'}}
|
||||
.fa.fa-times-thin.js-close-inlined-form
|
||||
else
|
||||
.comment-text
|
||||
+viewer
|
||||
= text
|
||||
+commentReactions(reactions=reactions commentId=_id)
|
||||
span(title=createdAt).comment-meta {{ moment createdAt }}
|
||||
if($eq currentUser._id userId)
|
||||
+editOrDeleteComment
|
||||
else if currentUser.isBoardAdmin
|
||||
+editOrDeleteComment
|
||||
|
||||
template(name="editOrDeleteComment")
|
||||
= ' - '
|
||||
a.js-open-inlined-form {{_ "edit"}}
|
||||
= ' - '
|
||||
a.js-delete-comment {{_ "delete"}}
|
||||
|
||||
template(name="deleteCommentPopup")
|
||||
p {{_ "comment-delete"}}
|
||||
button.js-confirm.negate.full(type="submit") {{_ 'delete'}}
|
||||
|
||||
template(name="commentReactions")
|
||||
.reactions
|
||||
each reaction in reactions
|
||||
span.reaction(class="{{#if isSelected reaction.userIds}}selected{{/if}}" data-codepoint="#{reaction.reactionCodepoint}" title="{{userNames reaction.userIds}}")
|
||||
span.reaction-codepoint !{reaction.reactionCodepoint}
|
||||
span.reaction-count #{reaction.userIds.length}
|
||||
if (currentUser.isBoardMember)
|
||||
a.open-comment-reaction-popup(title="{{_ 'addReactionPopup-title'}}")
|
||||
i.fa.fa-smile-o
|
||||
i.fa.fa-plus
|
||||
|
||||
template(name="addReactionPopup")
|
||||
.reactions-popup
|
||||
each codepoint in codepoints
|
||||
span.add-comment-reaction(data-codepoint="#{codepoint}") !{codepoint}
|
||||
|
||||
@@ -55,6 +55,41 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
}).register('commentForm');
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
getComments() {
|
||||
const ret = this.data().comments();
|
||||
return ret;
|
||||
},
|
||||
}).register("comments");
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
events() {
|
||||
return [
|
||||
{
|
||||
'click .js-delete-comment': Popup.afterConfirm('deleteComment', () => {
|
||||
const commentId = this.data()._id;
|
||||
CardComments.remove(commentId);
|
||||
Popup.back();
|
||||
}),
|
||||
'submit .js-edit-comment'(evt) {
|
||||
evt.preventDefault();
|
||||
const commentText = this.currentComponent()
|
||||
.getValue()
|
||||
.trim();
|
||||
const commentId = this.data()._id;
|
||||
if (commentText) {
|
||||
CardComments.update(commentId, {
|
||||
$set: {
|
||||
text: commentText,
|
||||
},
|
||||
});
|
||||
}
|
||||
},
|
||||
},
|
||||
];
|
||||
},
|
||||
}).register("comment");
|
||||
|
||||
// XXX This should be a static method of the `commentForm` component
|
||||
function resetCommentInput(input) {
|
||||
input.val(''); // without manually trigger, input event won't be fired
|
||||
|
||||
@@ -16,9 +16,6 @@
|
||||
transition: margin 0.1s;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.board-wrapper .board-canvas.is-sibling-sidebar-open {
|
||||
margin-right: 248px;
|
||||
}
|
||||
.board-wrapper .board-canvas .board-overlay {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
|
||||
@@ -17,8 +17,8 @@ template(name="boardBody")
|
||||
| {{_ 'tableVisibilityMode-allowPrivateOnly'}}
|
||||
else
|
||||
.board-wrapper(class=currentBoard.colorClass)
|
||||
+sidebar
|
||||
.board-canvas.js-swimlanes.dragscroll(
|
||||
.board-canvas.js-swimlanes(
|
||||
class="{{#if hasSwimlanes}}dragscroll{{/if}}"
|
||||
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}}")
|
||||
@@ -28,14 +28,20 @@ template(name="boardBody")
|
||||
each currentBoard.swimlanes
|
||||
+swimlane(this)
|
||||
else if isViewSwimlanes
|
||||
each currentBoard.swimlanes
|
||||
+swimlane(this)
|
||||
if hasSwimlanes
|
||||
each currentBoard.swimlanes
|
||||
+swimlane(this)
|
||||
else
|
||||
a.js-empty-board-add-swimlane(title="{{_ 'add-swimlane'}}")
|
||||
h1.big-message.quiet
|
||||
| {{_ 'add-swimlane'}} +
|
||||
else if isViewLists
|
||||
+listsGroup(currentBoard)
|
||||
else if isViewCalendar
|
||||
+calendarView
|
||||
else
|
||||
+listsGroup(currentBoard)
|
||||
+sidebar
|
||||
|
||||
template(name="calendarView")
|
||||
if isViewCalendar
|
||||
|
||||
@@ -195,6 +195,9 @@ BlazeComponent.extendComponent({
|
||||
});
|
||||
|
||||
this.autorun(() => {
|
||||
// Always reset dragscroll on view switch
|
||||
dragscroll.reset();
|
||||
|
||||
if (Utils.isTouchScreenOrShowDesktopDragHandles()) {
|
||||
$swimlanesDom.sortable({
|
||||
handle: '.js-swimlane-header-handle',
|
||||
@@ -245,6 +248,10 @@ BlazeComponent.extendComponent({
|
||||
}
|
||||
},
|
||||
|
||||
hasSwimlanes() {
|
||||
return Utils.getCurrentBoard().swimlanes().length > 0;
|
||||
},
|
||||
|
||||
isViewLists() {
|
||||
const currentUser = ReactiveCache.getCurrentUser();
|
||||
if (currentUser) {
|
||||
@@ -285,6 +292,7 @@ BlazeComponent.extendComponent({
|
||||
this._isDragging = false;
|
||||
}
|
||||
},
|
||||
'click .js-empty-board-add-swimlane': Popup.open('swimlaneAdd'),
|
||||
},
|
||||
];
|
||||
},
|
||||
|
||||
@@ -1958,7 +1958,7 @@ THEME - Modern
|
||||
.board-color-modern .pop-over-list li>a .sub-name {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.board-color-modern .sidebar .sidebar-shadow {
|
||||
.board-color-modern .sidebar {
|
||||
box-shadow: 0 0 60px rgba(0,0,0,0.2);
|
||||
}
|
||||
.board-color-modern .board-color-modern section#notifications-drawer {
|
||||
@@ -2431,7 +2431,7 @@ THEME - Modern Dark
|
||||
background-color: #ccc;
|
||||
color: #222;
|
||||
}
|
||||
.board-color-moderndark .sidebar .sidebar-shadow {
|
||||
.board-color-moderndark .sidebar {
|
||||
background-color: #222;
|
||||
box-shadow: -10px 0 5px -10px #444;
|
||||
border-left: 1px solid #333;
|
||||
@@ -2648,6 +2648,9 @@ THEME - Exodark
|
||||
background: #2b2b2b !important;
|
||||
color: #fff;
|
||||
}
|
||||
.board-color-exodark .card-details .comment-text {
|
||||
color:#2b2b2b
|
||||
} /*Fixes issue with comment text colour blending into background*/
|
||||
.board-color-exodark .card-details .card-details-header {
|
||||
background: #2b2b2b;
|
||||
color: #fff;
|
||||
@@ -2751,14 +2754,12 @@ THEME - Clean Dark
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.board-color-cleandark#header-main-bar h1 {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
line-height: 24px !important;
|
||||
text-align: left;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
}
|
||||
|
||||
@@ -2771,7 +2772,6 @@ THEME - Clean Dark
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
}
|
||||
|
||||
@@ -2779,34 +2779,33 @@ THEME - Clean Dark
|
||||
background: #0A0A14;
|
||||
}
|
||||
|
||||
.board-color-cleandark .sidebar .sidebar-shadow {
|
||||
.board-color-cleandark .sidebar {
|
||||
background: rgba(35, 35, 43, 1) !important;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.board-color-cleandark .sidebar .sidebar-shadow hr {
|
||||
.board-color-cleandark .sidebar hr {
|
||||
background:rgba(255, 255, 255, 0.05);
|
||||
}
|
||||
|
||||
.board-color-cleandark .sidebar .sidebar-shadow .tab-item {
|
||||
.board-color-cleandark .sidebar .tab-item {
|
||||
border-radius: 16px;
|
||||
padding: 4px 12px 4px 12px;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(255, 255, 255, 0.85);
|
||||
background: rgba(57, 57, 71, 1);
|
||||
}
|
||||
|
||||
.board-color-cleandark .sidebar .sidebar-shadow .tab-item.active {
|
||||
.board-color-cleandark .sidebar .tab-item.active {
|
||||
background: rgba(255, 255, 255, 1);
|
||||
color: rgba(10, 10, 20, 1);
|
||||
border: none;
|
||||
padding: 4px 12px 4px 12px !important;
|
||||
}
|
||||
|
||||
.board-color-cleandark .sidebar .sidebar-shadow .tabs-content-container {
|
||||
.board-color-cleandark .sidebar .tabs-content-container {
|
||||
border: none;
|
||||
}
|
||||
|
||||
@@ -2820,7 +2819,6 @@ THEME - Clean Dark
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
@@ -2873,7 +2871,6 @@ THEME - Clean Dark
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(255, 255, 255, 0.85);
|
||||
}
|
||||
|
||||
@@ -2888,7 +2885,6 @@ THEME - Clean Dark
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
}
|
||||
|
||||
@@ -2930,7 +2926,6 @@ THEME - Clean Dark
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
|
||||
color: rgba(255, 255, 255, 0.85);
|
||||
}
|
||||
@@ -2939,7 +2934,6 @@ THEME - Clean Dark
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
|
||||
color: rgba(255, 255, 255, 0.7);
|
||||
}
|
||||
@@ -2992,7 +2986,6 @@ THEME - Clean Dark
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
|
||||
@@ -3013,7 +3006,6 @@ THEME - Clean Dark
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
border-radius: 12px;
|
||||
padding: 6px 12px 6px 12px;
|
||||
background: #FFFFFF;
|
||||
@@ -3024,7 +3016,6 @@ THEME - Clean Dark
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
background: rgba(57, 57, 71, 1) !important;
|
||||
border: none !important;
|
||||
@@ -3039,7 +3030,6 @@ THEME - Clean Dark
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(255, 255, 255, 0.85) !important;
|
||||
background: rgba(57, 57, 71, 1) !important;
|
||||
border-radius: 12px !important;
|
||||
@@ -3054,7 +3044,6 @@ THEME - Clean Dark
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(255, 255, 255, 0.85);
|
||||
background: rgba(57, 57, 71, 1);
|
||||
border-radius: 12px;
|
||||
@@ -3069,7 +3058,6 @@ THEME - Clean Dark
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(10, 10, 20, 0.85);
|
||||
}
|
||||
|
||||
@@ -3085,7 +3073,6 @@ THEME - Clean Dark
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
@@ -3219,7 +3206,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.board-color-cleanlight#header ul li:hover,
|
||||
@@ -3233,7 +3219,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
line-height: 24px !important;
|
||||
text-align: left;
|
||||
color: rgba(10, 10, 20, 1) !important;
|
||||
}
|
||||
|
||||
@@ -3246,7 +3231,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(10, 10, 20, 1);
|
||||
}
|
||||
|
||||
@@ -3288,11 +3272,6 @@ THEME - Clean Light
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.board-color-cleanlight .list:first-child,
|
||||
.board-color-cleandark .list:first-child {
|
||||
margin-right: -32px;
|
||||
}
|
||||
|
||||
.board-color-cleanlight .list .list-header .list-header-menu,
|
||||
.board-color-cleandark .list .list-header .list-header-menu {
|
||||
display: flex;
|
||||
@@ -3376,7 +3355,6 @@ THEME - Clean Light
|
||||
.board-color-cleanlight .swimlane,
|
||||
.board-color-cleandark .swimlane {
|
||||
background: none;
|
||||
gap: 32px;
|
||||
}
|
||||
|
||||
.board-color-cleanlight .swimlane-height-apply,
|
||||
@@ -3439,34 +3417,33 @@ THEME - Clean Light
|
||||
display: none;
|
||||
}
|
||||
|
||||
.board-color-cleanlight .sidebar .sidebar-shadow {
|
||||
.board-color-cleanlight .sidebar {
|
||||
background: rgba(248, 248, 249, 1) !important;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.board-color-cleanlight .sidebar .sidebar-shadow hr {
|
||||
.board-color-cleanlight .sidebar hr {
|
||||
background: rgba(23, 23, 28, 0.05);
|
||||
}
|
||||
|
||||
.board-color-cleanlight .sidebar .sidebar-shadow .tab-item {
|
||||
.board-color-cleanlight .sidebar .tab-item {
|
||||
border-radius: 16px;
|
||||
padding: 4px 12px 4px 12px;
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(10, 10, 20, 0.85);
|
||||
background: rgba(234, 234, 237, 1);
|
||||
}
|
||||
|
||||
.board-color-cleanlight .sidebar .sidebar-shadow .tab-item.active {
|
||||
.board-color-cleanlight .sidebar .tab-item.active {
|
||||
background: rgba(23, 23, 28, 1);
|
||||
color: rgba(255, 255, 255, 1);
|
||||
border: none;
|
||||
padding: 4px 12px 4px 12px !important;
|
||||
}
|
||||
|
||||
.board-color-cleanlight .sidebar .sidebar-shadow .tabs-content-container {
|
||||
.board-color-cleanlight .sidebar .tabs-content-container {
|
||||
border: none;
|
||||
}
|
||||
|
||||
@@ -3480,7 +3457,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(10, 10, 20, 0.5);
|
||||
}
|
||||
|
||||
@@ -3489,7 +3465,6 @@ THEME - Clean Light
|
||||
font-size: 24px !important;
|
||||
font-weight: 600;
|
||||
line-height: 28px;
|
||||
text-align: left;
|
||||
border-bottom: none !important;
|
||||
padding: 12px 20px !important;
|
||||
}
|
||||
@@ -3518,7 +3493,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.board-color-cleanlight .card-details .card-details-item-title {
|
||||
@@ -3578,7 +3552,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(10, 10, 20, 0.5);
|
||||
}
|
||||
|
||||
@@ -3597,7 +3570,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.board-color-cleanlight.pop-over .header {
|
||||
@@ -3614,7 +3586,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(10, 10, 20, 0.8);
|
||||
}
|
||||
|
||||
@@ -3657,7 +3628,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
|
||||
color: rgba(10, 10, 20, 0.85) !important;
|
||||
}
|
||||
@@ -3666,7 +3636,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
|
||||
color: rgba(10, 10, 20, 0.5) !important;
|
||||
}
|
||||
@@ -3725,7 +3694,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(10, 10, 20, 0.5);
|
||||
}
|
||||
|
||||
@@ -3746,7 +3714,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
border-radius: 12px;
|
||||
padding: 6px 12px 6px 12px;
|
||||
background: rgba(23, 23, 28, 1);
|
||||
@@ -3757,7 +3724,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
border-radius: 12px;
|
||||
padding: 6px 12px 6px 12px;
|
||||
background: rgba(23, 23, 28, 1) !important;
|
||||
@@ -3772,7 +3738,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(10, 10, 20, 0.85);
|
||||
background: rgba(234, 234, 237, 1);
|
||||
border: none !important;
|
||||
@@ -3793,7 +3758,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(10, 10, 20, 0.85) !important;
|
||||
background: rgba(234, 234, 237, 1) !important;
|
||||
border-radius: 12px !important;
|
||||
@@ -3814,7 +3778,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(10, 10, 20, 0.85);
|
||||
background: rgba(234, 234, 237, 1);
|
||||
border-radius: 12px;
|
||||
@@ -3829,7 +3792,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(255, 255, 255, 0.85);
|
||||
}
|
||||
|
||||
@@ -3845,7 +3807,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
@@ -3981,7 +3942,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
@@ -4007,7 +3967,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
@@ -4021,7 +3980,6 @@ THEME - Clean Light
|
||||
font-size: 16px;
|
||||
font-weight: 400;
|
||||
line-height: 24px;
|
||||
text-align: left;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { ReactiveCache } from '/imports/reactiveCache';
|
||||
import { TAPi18n } from '/imports/i18n';
|
||||
import dragscroll from '@wekanteam/dragscroll';
|
||||
|
||||
/*
|
||||
const DOWNCLS = 'fa-sort-down';
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
float: left;
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
margin: 0 4px 4px 0;
|
||||
margin: .3vh;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
z-index: 1;
|
||||
|
||||
@@ -549,7 +549,7 @@ template(name="cardDetails")
|
||||
.card-checklist-attachmentGallery.card-checklists
|
||||
if currentBoard.allowsChecklists
|
||||
hr
|
||||
+checklists(cardId = _id)
|
||||
+checklists(cardId = _id card = this)
|
||||
if currentBoard.allowsSubtasks
|
||||
hr
|
||||
+subtasks(cardId = _id)
|
||||
@@ -569,25 +569,34 @@ template(name="cardDetails")
|
||||
+attachmentGallery
|
||||
hr
|
||||
|
||||
unless currentUser.isNoComments
|
||||
.comment-title
|
||||
h3.card-details-item-title
|
||||
i.fa.fa-comment-o
|
||||
| {{_ 'comments'}}
|
||||
|
||||
if currentBoard.allowsComments
|
||||
if currentUser.isBoardMember
|
||||
unless currentUser.isNoComments
|
||||
+commentForm
|
||||
+comments
|
||||
hr
|
||||
|
||||
.card-details-right
|
||||
|
||||
unless currentUser.isNoComments
|
||||
.activity-title
|
||||
h3.card-details-item-title
|
||||
i.fa.fa-history
|
||||
| {{ _ 'activity'}}
|
||||
| {{ _ 'activities'}}
|
||||
if currentUser.isBoardMember
|
||||
.material-toggle-switch(title="{{_ 'hide-system-messages'}}")
|
||||
//span.toggle-switch-title
|
||||
if hiddenSystemMessages
|
||||
input.toggle-switch(type="checkbox" id="toggleButton" checked="checked")
|
||||
.material-toggle-switch(title="{{_ 'show-activities'}}")
|
||||
if showActivities
|
||||
input.toggle-switch(type="checkbox" id="toggleShowActivitiesCard" checked="checked")
|
||||
else
|
||||
input.toggle-switch(type="checkbox" id="toggleButton")
|
||||
label.toggle-label(for="toggleButton")
|
||||
if currentBoard.allowsComments
|
||||
if currentUser.isBoardMember
|
||||
unless currentUser.isNoComments
|
||||
+commentForm
|
||||
input.toggle-switch(type="checkbox" id="toggleShowActivitiesCard")
|
||||
label.toggle-label(for="toggleShowActivitiesCard")
|
||||
|
||||
unless currentUser.isNoComments
|
||||
if isLoaded.get
|
||||
if isLinkedCard
|
||||
|
||||
@@ -63,10 +63,6 @@ BlazeComponent.extendComponent({
|
||||
return card.findWatcher(Meteor.userId());
|
||||
},
|
||||
|
||||
hiddenSystemMessages() {
|
||||
return ReactiveCache.getCurrentUser().hasHiddenSystemMessages();
|
||||
},
|
||||
|
||||
customFieldsGrid() {
|
||||
return ReactiveCache.getCurrentUser().hasCustomFieldsGrid();
|
||||
},
|
||||
@@ -377,8 +373,11 @@ BlazeComponent.extendComponent({
|
||||
Session.set('cardDetailsIsDragging', false);
|
||||
Session.set('cardDetailsIsMouseDown', false);
|
||||
},
|
||||
'click #toggleButton'() {
|
||||
Meteor.call('toggleSystemMessages');
|
||||
'click #toggleShowActivitiesCard'() {
|
||||
this.data().toggleShowActivities();
|
||||
},
|
||||
'click #toggleHideCheckedChecklistItems'() {
|
||||
this.data().toggleHideCheckedChecklistItems();
|
||||
},
|
||||
'click #toggleCustomFieldsGridButton'() {
|
||||
Meteor.call('toggleCustomFieldsGrid');
|
||||
|
||||
@@ -8,20 +8,6 @@ textarea.js-edit-checklist-item {
|
||||
resize: none;
|
||||
height: 34px;
|
||||
}
|
||||
.card-details .text-show-at-minicard {
|
||||
width: 350px;
|
||||
text-align: left;
|
||||
}
|
||||
.minicard .text-show-at-minicard {
|
||||
display: none;
|
||||
}
|
||||
.text-some-space {
|
||||
width: 20px;
|
||||
}
|
||||
.text-hide-checked-items {
|
||||
width: 400px;
|
||||
text-align: left;
|
||||
}
|
||||
.delete-text,
|
||||
.js-delete-checklist-item,
|
||||
.js-convert-checklist-item-to-card {
|
||||
@@ -40,8 +26,6 @@ textarea.js-edit-checklist-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
|
||||
.checklist-progress-bar-container {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
@@ -9,10 +9,19 @@ template(name="checklists")
|
||||
else
|
||||
a.add-checklist-top.js-open-inlined-form(title="{{_ 'add-checklist'}}")
|
||||
i.fa.fa-plus
|
||||
if currentUser.isBoardMember
|
||||
.material-toggle-switch(title="{{_ 'hide-finished-checklist'}}")
|
||||
//span.toggle-switch-title
|
||||
if card.hideFinishedChecklistIfItemsAreHidden
|
||||
input.toggle-switch(type="checkbox" id="toggleHideFinishedChecklist" checked="checked")
|
||||
else
|
||||
input.toggle-switch(type="checkbox" id="toggleHideFinishedChecklist")
|
||||
label.toggle-label(for="toggleHideFinishedChecklist")
|
||||
|
||||
.card-checklist-items
|
||||
each checklist in checklists
|
||||
+checklistDetail(checklist=checklist)
|
||||
if checklist.showChecklist card.hideFinishedChecklistIfItemsAreHidden
|
||||
+checklistDetail(checklist = checklist card = card)
|
||||
|
||||
if canModifyCard
|
||||
+inlinedForm(autoclose=false classNames="js-add-checklist" cardId = cardId)
|
||||
@@ -47,7 +56,7 @@ template(name="checklistDetail")
|
||||
.checklist-progress-text {{finishedPercent}}%
|
||||
.checklist-progress-bar
|
||||
.checklist-progress(style="width:{{finishedPercent}}%")
|
||||
+checklistItems(checklist = checklist)
|
||||
+checklistItems(checklist = checklist card = card)
|
||||
|
||||
template(name="checklistDeletePopup")
|
||||
p {{_ 'confirm-checklist-delete-popup'}}
|
||||
@@ -64,6 +73,12 @@ template(name="addChecklistItemForm")
|
||||
.material-toggle-switch(title="{{_ 'newlineBecomesNewChecklistItem'}}")
|
||||
input.toggle-switch(type="checkbox" id="toggleNewlineBecomesNewChecklistItem")
|
||||
label.toggle-label(for="toggleNewlineBecomesNewChecklistItem")
|
||||
| {{_ 'newLineNewItem'}}
|
||||
if $eq position 'top'
|
||||
.material-toggle-switch(title="{{_ 'newlineBecomesNewChecklistItemOriginOrder'}}")
|
||||
input.toggle-switch(type="checkbox" id="toggleNewlineBecomesNewChecklistItemOriginOrder")
|
||||
label.toggle-label(for="toggleNewlineBecomesNewChecklistItemOriginOrder")
|
||||
| {{_ 'originOrder'}}
|
||||
|
||||
template(name="editChecklistItemForm")
|
||||
a.fa.fa-copy(title="{{_ 'copy-text-to-clipboard'}}")
|
||||
@@ -87,7 +102,7 @@ template(name="checklistItems")
|
||||
if checklist.items.length
|
||||
if canModifyCard
|
||||
+inlinedForm(autoclose=false classNames="js-add-checklist-item" checklist = checklist position="top")
|
||||
+addChecklistItemForm(checklist=checklist showNewlineBecomesNewChecklistItem=true)
|
||||
+addChecklistItemForm(checklist=checklist showNewlineBecomesNewChecklistItem=true position="top")
|
||||
else
|
||||
a.add-checklist-item.js-open-inlined-form(title="{{_ 'add-checklist-item'}}")
|
||||
i.fa.fa-plus
|
||||
@@ -96,7 +111,7 @@ template(name="checklistItems")
|
||||
+inlinedForm(classNames="js-edit-checklist-item" item = item checklist = checklist)
|
||||
+editChecklistItemForm(type = 'item' item = item checklist = checklist)
|
||||
else
|
||||
+checklistItemDetail(item = item checklist = checklist)
|
||||
+checklistItemDetail(item = item checklist = checklist card = card)
|
||||
if canModifyCard
|
||||
+inlinedForm(autoclose=false classNames="js-add-checklist-item" checklist = checklist)
|
||||
+addChecklistItemForm(checklist=checklist showNewlineBecomesNewChecklistItem=true)
|
||||
@@ -105,7 +120,7 @@ template(name="checklistItems")
|
||||
i.fa.fa-plus
|
||||
|
||||
template(name='checklistItemDetail')
|
||||
.js-checklist-item.checklist-item(class="{{#if item.isFinished }}is-checked{{#if hideCheckedItems}} invisible{{/if}}{{/if}}"
|
||||
.js-checklist-item.checklist-item(class="{{#if item.isFinished }}is-checked{{#if checklist.hideCheckedChecklistItems}} invisible{{/if}}{{/if}}{{#if checklist.hideAllChecklistItems}} is-checked invisible{{/if}}"
|
||||
role="checkbox" aria-checked="{{#if item.isFinished }}true{{else}}false{{/if}}" tabindex="0")
|
||||
if canModifyCard
|
||||
.check-box-container
|
||||
@@ -122,27 +137,6 @@ template(name='checklistItemDetail')
|
||||
= item.title
|
||||
|
||||
template(name="checklistActionsPopup")
|
||||
if currentUser.isBoardMember
|
||||
span.text-show-at-minicard
|
||||
| {{_ 'show-at-minicard'}}
|
||||
.material-toggle-switch(title="{{_ 'show-checklist-at-minicard'}}")
|
||||
if showAtMinicard
|
||||
input.toggle-switch(type="checkbox" id="toggleShowChecklistAtMinicardButton" checked="checked")
|
||||
else
|
||||
input.toggle-switch(type="checkbox" id="toggleShowChecklistAtMinicardButton")
|
||||
label.toggle-label(for="toggleShowChecklistAtMinicardButton")
|
||||
hr
|
||||
span.text-hide-checked-items
|
||||
| {{_ 'hide-checked-items'}}
|
||||
.material-toggle-switch(title="{{_ 'hide-checked-items'}}")
|
||||
//span.toggle-switch-title
|
||||
//.check-square-icon.i.fa.fa-check-square-o
|
||||
if hideCheckedItems
|
||||
input.toggle-switch(type="checkbox" id="toggleHideCheckedItemsButton" checked="checked")
|
||||
else
|
||||
input.toggle-switch(type="checkbox" id="toggleHideCheckedItemsButton")
|
||||
label.toggle-label(for="toggleHideCheckedItemsButton")
|
||||
hr
|
||||
ul.pop-over-list
|
||||
li
|
||||
a.js-delete-checklist.delete-checklist
|
||||
@@ -154,6 +148,24 @@ template(name="checklistActionsPopup")
|
||||
a.js-copy-checklist.copy-checklist
|
||||
i.fa.fa-copy
|
||||
| {{_ "copyChecklist"}} ...
|
||||
a.js-hide-checked-checklist-items
|
||||
i.fa.fa-eye-slash
|
||||
| {{_ "hideCheckedChecklistItems"}} ...
|
||||
.material-toggle-switch(title="{{_ 'hide-checked-items'}}")
|
||||
if checklist.hideCheckedChecklistItems
|
||||
input.toggle-switch(type="checkbox" id="toggleHideCheckedChecklistItems_{{checklist._id}}" checked="checked")
|
||||
else
|
||||
input.toggle-switch(type="checkbox" id="toggleHideCheckedChecklistItems_{{checklist._id}}")
|
||||
label.toggle-label(for="toggleHideCheckedChecklistItems_{{checklist._id}}")
|
||||
a.js-hide-all-checklist-items
|
||||
i.fa.fa-ban
|
||||
| {{_ "hideAllChecklistItems"}} ...
|
||||
.material-toggle-switch(title="{{_ 'hideAllChecklistItems'}}")
|
||||
if checklist.hideAllChecklistItems
|
||||
input.toggle-switch(type="checkbox" id="toggleHideAllChecklistItems_{{checklist._id}}" checked="checked")
|
||||
else
|
||||
input.toggle-switch(type="checkbox" id="toggleHideAllChecklistItems_{{checklist._id}}")
|
||||
label.toggle-label(for="toggleHideAllChecklistItems_{{checklist._id}}")
|
||||
|
||||
template(name="copyChecklistPopup")
|
||||
+copyAndMoveChecklist
|
||||
|
||||
@@ -119,6 +119,7 @@ BlazeComponent.extendComponent({
|
||||
event.preventDefault();
|
||||
const textarea = this.find('textarea.js-add-checklist-item');
|
||||
const newlineBecomesNewChecklistItem = this.find('input#toggleNewlineBecomesNewChecklistItem');
|
||||
const newlineBecomesNewChecklistItemOriginOrder = this.find('input#toggleNewlineBecomesNewChecklistItemOriginOrder');
|
||||
const title = textarea.value.trim();
|
||||
const checklist = this.currentData().checklist;
|
||||
|
||||
@@ -127,22 +128,28 @@ BlazeComponent.extendComponent({
|
||||
if (newlineBecomesNewChecklistItem.checked) {
|
||||
checklistItems = title.split('\n').map(_value => _value.trim());
|
||||
if (this.currentData().position === 'top') {
|
||||
checklistItems = checklistItems.reverse();
|
||||
if (newlineBecomesNewChecklistItemOriginOrder.checked === false) {
|
||||
checklistItems = checklistItems.reverse();
|
||||
}
|
||||
}
|
||||
}
|
||||
let addIndex;
|
||||
let sortIndex;
|
||||
if (this.currentData().position === 'top') {
|
||||
sortIndex = Utils.calculateIndexData(null, checklist.firstItem()).base;
|
||||
addIndex = -1;
|
||||
} else {
|
||||
sortIndex = Utils.calculateIndexData(checklist.lastItem(), null).base;
|
||||
addIndex = 1;
|
||||
}
|
||||
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: sortIndex,
|
||||
});
|
||||
sortIndex += addIndex;
|
||||
}
|
||||
}
|
||||
// We keep the form opened, empty it.
|
||||
@@ -201,12 +208,8 @@ BlazeComponent.extendComponent({
|
||||
},
|
||||
|
||||
events() {
|
||||
const events = {
|
||||
};
|
||||
|
||||
return [
|
||||
{
|
||||
...events,
|
||||
'click .js-open-checklist-details-menu': Popup.open('checklistActions'),
|
||||
'submit .js-add-checklist': this.addChecklist,
|
||||
'submit .js-edit-checklist-title': this.editChecklist,
|
||||
@@ -217,6 +220,10 @@ BlazeComponent.extendComponent({
|
||||
'focus .js-add-checklist-item': this.focusChecklistItem,
|
||||
// add and delete checklist / checklist-item
|
||||
'click .js-open-inlined-form': this.closeAllInlinedForms,
|
||||
'click #toggleHideFinishedChecklist'(event) {
|
||||
event.preventDefault();
|
||||
this.data().card.toggleHideFinishedChecklist();
|
||||
},
|
||||
keydown: this.pressKey,
|
||||
},
|
||||
];
|
||||
@@ -271,16 +278,6 @@ Template.checklists.helpers({
|
||||
const ret = card.checklists();
|
||||
return ret;
|
||||
},
|
||||
showAtMinicard() {
|
||||
const card = ReactiveCache.getCard(this.cardId);
|
||||
const ret = card.checklists({'showAtMinicard':1});
|
||||
return ret;
|
||||
},
|
||||
hideCheckedItems() {
|
||||
const currentUser = ReactiveCache.getCurrentUser();
|
||||
if (currentUser) return currentUser.hasHideCheckedItems();
|
||||
return false;
|
||||
},
|
||||
});
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
@@ -303,26 +300,9 @@ BlazeComponent.extendComponent({
|
||||
}).register('addChecklistItemForm');
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
toggleItem() {
|
||||
const checklist = this.currentData().checklist;
|
||||
const item = this.currentData().item;
|
||||
if (checklist && item && item._id) {
|
||||
item.toggleItem();
|
||||
}
|
||||
},
|
||||
events() {
|
||||
return [
|
||||
{
|
||||
'click .js-checklist-item .check-box-container': this.toggleItem,
|
||||
'click #toggleShowChecklistAtMinicardButton'() {
|
||||
const checklist = this.checklist;
|
||||
if (checklist && checklist._id) {
|
||||
Meteor.call('toggleShowChecklistAtMinicard', checklist._id);
|
||||
}
|
||||
},
|
||||
'click #toggleHideCheckedItemsButton'() {
|
||||
Meteor.call('toggleHideCheckedItems');
|
||||
},
|
||||
'click .js-delete-checklist': Popup.afterConfirm('checklistDelete', function () {
|
||||
Popup.back(2);
|
||||
const checklist = this.checklist;
|
||||
@@ -332,6 +312,16 @@ BlazeComponent.extendComponent({
|
||||
}),
|
||||
'click .js-move-checklist': Popup.open('moveChecklist'),
|
||||
'click .js-copy-checklist': Popup.open('copyChecklist'),
|
||||
'click .js-hide-checked-checklist-items'(event) {
|
||||
event.preventDefault();
|
||||
this.data().checklist.toggleHideCheckedChecklistItems();
|
||||
Popup.back();
|
||||
},
|
||||
'click .js-hide-all-checklist-items'(event) {
|
||||
event.preventDefault();
|
||||
this.data().checklist.toggleHideAllChecklistItems();
|
||||
Popup.back();
|
||||
},
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -357,11 +347,6 @@ BlazeComponent.extendComponent({
|
||||
}).register('editChecklistItemForm');
|
||||
|
||||
Template.checklistItemDetail.helpers({
|
||||
hideCheckedItems() {
|
||||
const user = ReactiveCache.getCurrentUser();
|
||||
if (user) return user.hasHideCheckedItems();
|
||||
return false;
|
||||
},
|
||||
});
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
|
||||
@@ -1,12 +1,3 @@
|
||||
.minicard .checklists-title,
|
||||
.minicard .add-checklist,
|
||||
.minicard .add-checklist-item,
|
||||
.minicard .checklist-details-menu {
|
||||
display: none;
|
||||
}
|
||||
.minicard .checklist-progress-bar-container {
|
||||
width: 190px; /* TODO: Add adjustable width https://github.com/wekan/wekan/pull/4964 */
|
||||
}
|
||||
.minicard-wrapper {
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
@@ -138,14 +129,6 @@
|
||||
max-width: 100%;
|
||||
margin-right: 4px;
|
||||
}
|
||||
/*
|
||||
.minicard .checklists-title,
|
||||
.minicard .add-checklist,
|
||||
.minicard .add-checklist-item,
|
||||
.minicard .checklist-details-menu {
|
||||
display: none;
|
||||
}
|
||||
*/
|
||||
.minicard .handle {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
|
||||
@@ -112,12 +112,6 @@ template(name="minicard")
|
||||
+viewer
|
||||
= trueValue
|
||||
|
||||
.card-checklist-attachmentGalleries
|
||||
.card-checklist-attachmentGallery.card-checklists
|
||||
if currentBoard.allowsChecklists
|
||||
//hr
|
||||
//+checklists(cardId=_id showAtMinicard=true)
|
||||
|
||||
if showAssignee
|
||||
if getAssignees
|
||||
.minicard-assignees.js-minicard-assignees
|
||||
|
||||
@@ -88,11 +88,6 @@ BlazeComponent.extendComponent({
|
||||
events() {
|
||||
return [
|
||||
{
|
||||
'click .minicard-checklists'() {
|
||||
// Prevents clicking checklist at minicard from opening card details,
|
||||
// while still allowing checking checlist items.
|
||||
event.preventDefault();
|
||||
},
|
||||
'click .js-linked-link'() {
|
||||
if (this.data().isLinkedCard()) Utils.goCardId(this.data().linkedId);
|
||||
else if (this.data().isLinkedBoard())
|
||||
|
||||
@@ -11,8 +11,12 @@
|
||||
[id^="swimlane-"] .list:first-child {
|
||||
min-width: 20px;
|
||||
}
|
||||
.list.list-auto-width {
|
||||
flex: 1;
|
||||
}
|
||||
.list:first-child {
|
||||
border-left: none;
|
||||
flex: none;
|
||||
}
|
||||
.card-details + .list {
|
||||
border-left: none;
|
||||
@@ -31,6 +35,9 @@
|
||||
box-shadow: none;
|
||||
height: 100px;
|
||||
}
|
||||
.list.list-collapsed {
|
||||
flex: none;
|
||||
}
|
||||
.list.list-composer .open-list-composer,
|
||||
.list .list-composer .open-list-composer {
|
||||
color: #8c8c8c;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
template(name='list')
|
||||
.list.js-list(id="js-list-{{_id}}"
|
||||
style="{{#unless collapsed}}width:{{listWidth}}px;{{/unless}}"
|
||||
class="{{#if collapsed}}list-collapsed{{/if}}")
|
||||
style="{{#unless collapsed}}min-width:{{listWidth}}px;max-width:{{listConstraint}}px;{{/unless}}"
|
||||
class="{{#if collapsed}}list-collapsed{{/if}} {{#if autoWidth}}list-auto-width{{/if}}")
|
||||
+listHeader
|
||||
+listBody
|
||||
|
||||
|
||||
@@ -200,6 +200,18 @@ BlazeComponent.extendComponent({
|
||||
const list = Template.currentData();
|
||||
return user.getListWidth(list.boardId, list._id);
|
||||
},
|
||||
|
||||
listConstraint() {
|
||||
const user = ReactiveCache.getCurrentUser();
|
||||
const list = Template.currentData();
|
||||
return user.getListConstraint(list.boardId, list._id);
|
||||
},
|
||||
|
||||
autoWidth() {
|
||||
const user = ReactiveCache.getCurrentUser();
|
||||
const list = Template.currentData();
|
||||
return user.isAutoWidth(list.boardId);
|
||||
},
|
||||
}).register('list');
|
||||
|
||||
Template.miniList.events({
|
||||
|
||||
@@ -191,8 +191,14 @@ template(name="setListWidthPopup")
|
||||
label {{_ 'set-list-width-value'}}
|
||||
p
|
||||
input.list-width-value(type="number" value="{{ listWidthValue }}" min="100")
|
||||
input.list-constraint-value(type="number" value="{{ listConstraintValue }}" min="100")
|
||||
input.list-width-apply(type="submit" value="{{_ 'apply'}}")
|
||||
input.list-width-error
|
||||
br
|
||||
a.js-auto-width-board(
|
||||
title="{{#if isAutoWidth}}{{_ 'click-to-disable-auto-width'}}{{else}}{{_ 'click-to-enable-auto-width'}}{{/if}}")
|
||||
i.fa(class="fa-solid fa-{{#if isAutoWidth}}compress{{else}}expand{{/if}}")
|
||||
span {{_ 'auto-list-width'}}
|
||||
|
||||
template(name="listWidthErrorPopup")
|
||||
.list-width-invalid
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { ReactiveCache } from '/imports/reactiveCache';
|
||||
import { TAPi18n } from '/imports/i18n';
|
||||
import dragscroll from '@wekanteam/dragscroll';
|
||||
|
||||
let listsColors;
|
||||
Meteor.startup(() => {
|
||||
@@ -155,7 +156,7 @@ Template.listActionPopup.helpers({
|
||||
|
||||
isWatching() {
|
||||
return this.findWatcher(Meteor.userId());
|
||||
},
|
||||
}
|
||||
});
|
||||
|
||||
Template.listActionPopup.events({
|
||||
@@ -347,14 +348,20 @@ BlazeComponent.extendComponent({
|
||||
.val(),
|
||||
10,
|
||||
);
|
||||
const constraint = parseInt(
|
||||
Template.instance()
|
||||
.$('.list-constraint-value')
|
||||
.val(),
|
||||
10,
|
||||
);
|
||||
|
||||
// FIXME(mark-i-m): where do we put constants?
|
||||
if (width < 100 || !width) {
|
||||
if (width < 100 || !width || constraint < 100 || !constraint) {
|
||||
Template.instance()
|
||||
.$('.list-width-error')
|
||||
.click();
|
||||
} else {
|
||||
Meteor.call('applyListWidth', board, list._id, width);
|
||||
Meteor.call('applyListWidth', board, list._id, width, constraint);
|
||||
Popup.back();
|
||||
}
|
||||
},
|
||||
@@ -365,9 +372,25 @@ BlazeComponent.extendComponent({
|
||||
return ReactiveCache.getCurrentUser().getListWidth(board, list._id);
|
||||
},
|
||||
|
||||
listConstraintValue() {
|
||||
const list = Template.currentData();
|
||||
const board = list.boardId;
|
||||
return ReactiveCache.getCurrentUser().getListConstraint(board, list._id);
|
||||
},
|
||||
|
||||
isAutoWidth() {
|
||||
const boardId = Utils.getCurrentBoardId();
|
||||
const user = ReactiveCache.getCurrentUser();
|
||||
return user && user.isAutoWidth(boardId);
|
||||
},
|
||||
|
||||
events() {
|
||||
return [
|
||||
{
|
||||
'click .js-auto-width-board'() {
|
||||
dragscroll.reset();
|
||||
ReactiveCache.getCurrentUser().toggleAutoWidth(Utils.getCurrentBoardId());
|
||||
},
|
||||
'click .list-width-apply': this.applyListWidth,
|
||||
'click .list-width-error': Popup.open('listWidthError'),
|
||||
},
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
.my-cards-board-wrapper {
|
||||
border-radius: 0 0 4px 4px;
|
||||
min-width: 400px;
|
||||
margin-bottom: 2rem;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
border-width: 2px;
|
||||
border-style: solid;
|
||||
border-color: #a2a2a2;
|
||||
}
|
||||
.my-cards-board-title {
|
||||
font-size: 1.4rem;
|
||||
font-weight: bold;
|
||||
padding: 0.5rem;
|
||||
background-color: #808080;
|
||||
color: #fff;
|
||||
}
|
||||
.my-cards-swimlane-title {
|
||||
font-size: 1.1rem;
|
||||
font-weight: bold;
|
||||
padding: 0.5rem;
|
||||
padding-bottom: 0.4rem;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.5rem;
|
||||
text-align: center;
|
||||
}
|
||||
.swimlane-default-color {
|
||||
background-color: #d3d3d3;
|
||||
}
|
||||
.my-cards-list-title {
|
||||
font-weight: bold;
|
||||
font-size: 1.1rem;
|
||||
text-align: center;
|
||||
margin-bottom: 0.7rem;
|
||||
}
|
||||
.my-cards-list-wrapper {
|
||||
margin: 1rem;
|
||||
border-radius: 5px;
|
||||
display: inline-grid;
|
||||
min-width: 250px;
|
||||
max-width: 350px;
|
||||
}
|
||||
.my-cards-card-wrapper {
|
||||
margin-top: 0;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.my-cards-dueat-list-wrapper {
|
||||
max-width: 500px;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
}
|
||||
.my-cards-board-table thead {
|
||||
border-bottom: 3px solid #4d4d4d;
|
||||
background-color: transparent;
|
||||
}
|
||||
.my-cards-board-table th,
|
||||
.my-cards-board-table td {
|
||||
border: 0;
|
||||
}
|
||||
.my-cards-board-table tr {
|
||||
border-bottom: 2px solid #a2a2a2;
|
||||
}
|
||||
.my-cards-card-title-table {
|
||||
font-weight: bold;
|
||||
padding-left: 2px;
|
||||
max-width: 243px;
|
||||
}
|
||||
.my-cards-board-badge {
|
||||
width: 36px;
|
||||
height: 24px;
|
||||
float: left;
|
||||
border-radius: 5px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
template(name="accessibilityHeaderBar")
|
||||
if currentUser
|
||||
h1
|
||||
| {{_ 'accessibility-title'}}
|
||||
|
||||
template(name="accessibility")
|
||||
if currentUser
|
||||
| {{_ 'accessibility-content'}}
|
||||
@@ -0,0 +1,11 @@
|
||||
import { ReactiveCache } from '/imports/reactiveCache';
|
||||
import { TAPi18n } from '/imports/i18n';
|
||||
|
||||
BlazeComponent.extendComponent({
|
||||
onCreated() {
|
||||
this.error = new ReactiveVar('');
|
||||
this.loading = new ReactiveVar(false);
|
||||
|
||||
Meteor.subscribe('setting');
|
||||
},
|
||||
}).register('accessibility');
|
||||
@@ -72,26 +72,31 @@
|
||||
padding: 0 0.5rem;
|
||||
}
|
||||
.setting-content .content-body .main-body ul li .admin-announcement,
|
||||
.setting-content .content-body .main-body ul li .admin-accessibility,
|
||||
.setting-content .content-body .main-body ul li .invite-people,
|
||||
.setting-content .content-body .main-body ul li .layout {
|
||||
padding-left: 20px;
|
||||
}
|
||||
.setting-content .content-body .main-body ul li .admin-announcement li,
|
||||
.setting-content .content-body .main-body ul li .admin-accessibility li,
|
||||
.setting-content .content-body .main-body ul li .invite-people li,
|
||||
.setting-content .content-body .main-body ul li .layout li {
|
||||
min-width: 500px;
|
||||
}
|
||||
.setting-content .content-body .main-body ul li .admin-announcement li ul.no-margin-bottom,
|
||||
.setting-content .content-body .main-body ul li .admin-accessibility li ul.no-margin-bottom,
|
||||
.setting-content .content-body .main-body ul li .invite-people li ul.no-margin-bottom,
|
||||
.setting-content .content-body .main-body ul li .layout li ul.no-margin-bottom {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.setting-content .content-body .main-body ul li .admin-announcement li .bg-white a,
|
||||
.setting-content .content-body .main-body ul li .admin-accessibility li .bg-white a,
|
||||
.setting-content .content-body .main-body ul li .invite-people li .bg-white a,
|
||||
.setting-content .content-body .main-body ul li .layout li .bg-white a {
|
||||
background: #f7f7f7;
|
||||
}
|
||||
.setting-content .content-body .main-body ul li .admin-announcement li .bg-white a.is-checked,
|
||||
.setting-content .content-body .main-body ul li .admin-accessibility li .bg-white a.is-checked,
|
||||
.setting-content .content-body .main-body ul li .invite-people li .bg-white a.is-checked,
|
||||
.setting-content .content-body .main-body ul li .layout li .bg-white a.is-checked {
|
||||
background: #fff;
|
||||
|
||||
@@ -30,6 +30,10 @@ template(name="setting")
|
||||
a.js-setting-menu(data-id="announcement-setting")
|
||||
i.fa.fa-bullhorn
|
||||
| {{_ 'admin-announcement'}}
|
||||
//li
|
||||
// a.js-setting-menu(data-id="accessibility-setting")
|
||||
// i.fa.fa-universal-access
|
||||
// | {{_ 'accessibility'}}
|
||||
li
|
||||
a.js-setting-menu(data-id="layout-setting")
|
||||
i.fa.fa-object-group
|
||||
@@ -52,6 +56,8 @@ template(name="setting")
|
||||
+tableVisibilityModeSettings
|
||||
else if announcementSetting.get
|
||||
+announcementSettings
|
||||
else if accessibilitySetting.get
|
||||
+accessibilitySettings
|
||||
else if layoutSetting.get
|
||||
+layoutSettings
|
||||
else if webhookSetting.get
|
||||
@@ -144,8 +150,6 @@ template(name='tableVisibilityModeSettings')
|
||||
|
||||
template(name='accountSettings')
|
||||
ul#account-setting.setting-detail
|
||||
li
|
||||
button.js-all-hide-system-messages.primary {{_ 'hide-system-messages-of-all-users'}}
|
||||
li.accounts-form
|
||||
.title {{_ 'accounts-allowEmailChange'}}
|
||||
.form-group.flex
|
||||
@@ -183,8 +187,33 @@ template(name='announcementSettings')
|
||||
li
|
||||
button.js-announcement-save.primary {{_ 'save'}}
|
||||
|
||||
template(name='accessibilitySettings')
|
||||
ul#accessibility-setting.setting-detail
|
||||
li
|
||||
a.flex.js-toggle-accessibility
|
||||
.materialCheckBox(class="{{#if currentAccessibility.enabled}}is-checked{{/if}}")
|
||||
|
||||
span {{_ 'admin-accessibility-active'}}
|
||||
li
|
||||
.title {{_ 'accessibility-title'}}
|
||||
.form-group
|
||||
input.wekan-form-control#accessibility-title(type="text", placeholder="" value="{{currentSetting.accessibilityTitle}}")
|
||||
li
|
||||
.accessibility-content(class="{{#if currentAccessibility.enabled}}{{else}}hide{{/if}}")
|
||||
ul
|
||||
li
|
||||
.title {{_ 'admin-accessibility-title'}}
|
||||
textarea#admin-accessibility.wekan-form-control= currentAccessibility.accessibilityTitle
|
||||
li
|
||||
.title {{_ 'admin-accessibility-content'}}
|
||||
textarea#admin-accessibility.wekan-form-control= currentAccessibility.accessibilityContent
|
||||
li
|
||||
button.js-accessibility-save.primary {{_ 'save'}}
|
||||
|
||||
template(name='layoutSettings')
|
||||
ul#layout-setting.setting-detail
|
||||
li
|
||||
button.js-all-boards-hide-activities.primary {{_ 'hide-activities-of-all-boards'}}
|
||||
li.layout-form
|
||||
.title {{_ 'oidc-button-text'}}
|
||||
.form-group
|
||||
|
||||
@@ -89,6 +89,9 @@ BlazeComponent.extendComponent({
|
||||
toggleHideBoardMemberList() {
|
||||
$('#hide-board-member-list').toggleClass('is-checked');
|
||||
},
|
||||
toggleAccessibilityPageEnabled() {
|
||||
$('#accessibility-page-enabled').toggleClass('is-checked');
|
||||
},
|
||||
toggleDisplayAuthenticationMethod() {
|
||||
$('#display-authentication-method').toggleClass('is-checked');
|
||||
},
|
||||
@@ -239,7 +242,15 @@ BlazeComponent.extendComponent({
|
||||
const displayAuthenticationMethod =
|
||||
$('input[name=displayAuthenticationMethod]:checked').val() === 'true';
|
||||
const defaultAuthenticationMethod = $('#defaultAuthenticationMethod').val();
|
||||
|
||||
/*
|
||||
const accessibilityPageEnabled = $('input[name=accessibilityPageEnabled]:checked').val() === 'true';
|
||||
const accessibilityTitle = $('#accessibility-title')
|
||||
.val()
|
||||
.trim();
|
||||
const accessibilityContent = $('#accessibility-content')
|
||||
.val()
|
||||
.trim();
|
||||
*/
|
||||
const spinnerName = $('#spinnerName').val();
|
||||
|
||||
try {
|
||||
@@ -265,6 +276,11 @@ BlazeComponent.extendComponent({
|
||||
legalNotice,
|
||||
},
|
||||
});
|
||||
/*
|
||||
accessibilityPageEnabled,
|
||||
accessibilityTitle,
|
||||
accessibilityContent,
|
||||
*/
|
||||
} catch (e) {
|
||||
return;
|
||||
} finally {
|
||||
@@ -301,6 +317,7 @@ BlazeComponent.extendComponent({
|
||||
'click a.js-toggle-hide-logo': this.toggleHideLogo,
|
||||
'click a.js-toggle-hide-card-counter-list': this.toggleHideCardCounterList,
|
||||
'click a.js-toggle-hide-board-member-list': this.toggleHideBoardMemberList,
|
||||
'click a.js-toggle-accessibility-page-enabled': this.toggleAccessibilityPageEnabled,
|
||||
'click button.js-save-layout': this.saveLayout,
|
||||
'click a.js-toggle-display-authentication-method': this
|
||||
.toggleDisplayAuthenticationMethod,
|
||||
@@ -336,12 +353,12 @@ BlazeComponent.extendComponent({
|
||||
allowUserDelete() {
|
||||
return AccountSettings.findOne('accounts-allowUserDelete').booleanValue;
|
||||
},
|
||||
allHideSystemMessages() {
|
||||
Meteor.call('setAllUsersHideSystemMessages', (err, ret) => {
|
||||
allBoardsHideActivities() {
|
||||
Meteor.call('setAllBoardsHideActivities', (err, ret) => {
|
||||
if (!err && ret) {
|
||||
if (ret === true) {
|
||||
const message = `${TAPi18n.__(
|
||||
'now-system-messages-of-all-users-are-hidden',
|
||||
'now-activities-of-all-boards-are-hidden',
|
||||
)}`;
|
||||
alert(message);
|
||||
}
|
||||
@@ -359,7 +376,7 @@ BlazeComponent.extendComponent({
|
||||
'click button.js-accounts-save': this.saveAccountsChange,
|
||||
},
|
||||
{
|
||||
'click button.js-all-hide-system-messages': this.allHideSystemMessages,
|
||||
'click button.js-all-boards-hide-activities': this.allBoardsHideActivities,
|
||||
},
|
||||
];
|
||||
},
|
||||
@@ -376,12 +393,12 @@ BlazeComponent.extendComponent({
|
||||
allowPrivateOnly() {
|
||||
return TableVisibilityModeSettings.findOne('tableVisibilityMode-allowPrivateOnly').booleanValue;
|
||||
},
|
||||
allHideSystemMessages() {
|
||||
Meteor.call('setAllUsersHideSystemMessages', (err, ret) => {
|
||||
allBoardsHideActivities() {
|
||||
Meteor.call('setAllBoardsHideActivities', (err, ret) => {
|
||||
if (!err && ret) {
|
||||
if (ret === true) {
|
||||
const message = `${TAPi18n.__(
|
||||
'now-system-messages-of-all-users-are-hidden',
|
||||
'now-activities-of-all-boards-are-hidden',
|
||||
)}`;
|
||||
alert(message);
|
||||
}
|
||||
@@ -399,7 +416,7 @@ BlazeComponent.extendComponent({
|
||||
'click button.js-tableVisibilityMode-save': this.saveTableVisibilityChange,
|
||||
},
|
||||
{
|
||||
'click button.js-all-hide-system-messages': this.allHideSystemMessages,
|
||||
'click button.js-all-boards-hide-activities': this.allBoardsHideActivities,
|
||||
},
|
||||
];
|
||||
},
|
||||
|
||||
@@ -3,16 +3,11 @@
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.sidebar .sidebar-shadow {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
.sidebar {
|
||||
background: #f7f7f7;
|
||||
box-shadow: -10px 0px 5px -10px #b3b3b3;
|
||||
z-index: 10;
|
||||
}
|
||||
.sidebar-xmark {
|
||||
position: absolute;
|
||||
@@ -24,17 +19,15 @@
|
||||
.sidebar-xmark:hover {
|
||||
background: rgba(0,0,0,0.15);
|
||||
}
|
||||
.sidebar-actions {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 10px 10px 0px 10px;
|
||||
}
|
||||
.sidebar .sidebar-content {
|
||||
padding: 12px;
|
||||
margin-bottom: 1.6em;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
width: 90%;
|
||||
padding: 0 12px;
|
||||
}
|
||||
.sidebar .sidebar-content .hide-btn {
|
||||
display: none;
|
||||
@@ -110,21 +103,23 @@
|
||||
margin-right: 10px;
|
||||
}
|
||||
.sidebar .sidebar-shortcuts {
|
||||
position: absolute;
|
||||
margin-left: 40%;
|
||||
padding: 0;
|
||||
top: 7px;
|
||||
font-size: 0.8em;
|
||||
font-size: 1em;
|
||||
line-height: 1.6em;
|
||||
color: #999;
|
||||
}
|
||||
.sidebar .sidebar-shortcuts .sidebar-btn {
|
||||
margin-left: 3px;
|
||||
margin-right: 3px;
|
||||
}
|
||||
.board-sidebar {
|
||||
width: 548px;
|
||||
right: -548px;
|
||||
display: none;
|
||||
width: 30vw;
|
||||
z-index: 100;
|
||||
transition: top 0.1s, right 0.1s, width 0.1s;
|
||||
}
|
||||
.board-sidebar.is-open {
|
||||
right: 0;
|
||||
display: block;
|
||||
}
|
||||
.board-widget h4 {
|
||||
margin: 5px 0;
|
||||
|
||||
@@ -4,17 +4,24 @@ template(name="sidebar")
|
||||
// class="{{#if isTongueHidden}}is-hidden{{/if}}",
|
||||
// title="{{showTongueTitle}}")
|
||||
// i.fa.fa-navicon
|
||||
.sidebar-shadow
|
||||
.sidebar-actions
|
||||
.sidebar-shortcuts
|
||||
a.sidebar-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}")
|
||||
i.fa.fa-keyboard-o
|
||||
span {{_ 'keyboard-shortcuts' }}
|
||||
a.sidebar-btn.js-keyboard-shortcuts-toggle(
|
||||
title="{{#if isKeyboardShortcuts}}{{_ 'keyboard-shortcuts-enabled'}}{{else}}{{_ 'keyboard-shortcuts-disabled'}}{{/if}}")
|
||||
i.fa(class="fa-solid fa-{{#if isKeyboardShortcuts}}check-square-o{{else}}ban{{/if}}")
|
||||
a.sidebar-xmark.js-close-sidebar ✕
|
||||
.sidebar-content.js-board-sidebar-content
|
||||
//a.hide-btn.js-hide-sidebar
|
||||
// i.fa.fa-navicon
|
||||
unless isDefaultView
|
||||
h2
|
||||
a.fa.fa-chevron-left.js-back-home
|
||||
= getViewTitle
|
||||
if isOpen
|
||||
+Template.dynamic(template=getViewTemplate)
|
||||
.sidebar-content.js-board-sidebar-content
|
||||
//a.hide-btn.js-hide-sidebar
|
||||
// i.fa.fa-navicon
|
||||
unless isDefaultView
|
||||
h2
|
||||
a.fa.fa-chevron-left.js-back-home
|
||||
= getViewTitle
|
||||
if isOpen
|
||||
+Template.dynamic(template=getViewTemplate)
|
||||
|
||||
template(name='homeSidebar')
|
||||
hr
|
||||
@@ -28,9 +35,16 @@ template(name='homeSidebar')
|
||||
.materialCheckBox(class="{{#if hiddenMinicardLabelText}}is-checked{{/if}}")
|
||||
hr
|
||||
unless currentUser.isNoComments
|
||||
h3
|
||||
h3.activity-title
|
||||
i.fa.fa-comments-o
|
||||
| {{_ 'activities'}}
|
||||
|
||||
.material-toggle-switch(title="{{_ 'show-activities'}}")
|
||||
if showActivities
|
||||
input.toggle-switch(type="checkbox" id="toggleShowActivitiesBoard" checked="checked")
|
||||
else
|
||||
input.toggle-switch(type="checkbox" id="toggleShowActivitiesBoard")
|
||||
label.toggle-label(for="toggleShowActivitiesBoard")
|
||||
+activities(mode="board")
|
||||
|
||||
template(name="membersWidget")
|
||||
@@ -40,11 +54,6 @@ template(name="membersWidget")
|
||||
a.board-header-btn.js-open-board-menu(title="{{_ 'boardMenuPopup-title'}}")
|
||||
i.board-header-btn-icon.fa.fa-cog
|
||||
| {{_ 'boardMenuPopup-title'}}
|
||||
.board-widget.board-widget-members
|
||||
.sidebar-shortcuts
|
||||
a.board-header-btn.js-shortcuts(title="{{_ 'keyboard-shortcuts' }}")
|
||||
i.fa.fa-keyboard-o
|
||||
span {{_ 'keyboard-shortcuts' }}
|
||||
hr
|
||||
h3
|
||||
i.fa.fa-users
|
||||
|
||||
@@ -105,6 +105,11 @@ BlazeComponent.extendComponent({
|
||||
else return `${TAPi18n.__('sidebar-open')}`;
|
||||
},
|
||||
|
||||
isKeyboardShortcuts() {
|
||||
const user = ReactiveCache.getCurrentUser();
|
||||
return user && user.isKeyboardShortcuts();
|
||||
},
|
||||
|
||||
events() {
|
||||
return [
|
||||
{
|
||||
@@ -126,6 +131,9 @@ BlazeComponent.extendComponent({
|
||||
'click .js-shortcuts'() {
|
||||
FlowRouter.go('shortcuts');
|
||||
},
|
||||
'click .js-keyboard-shortcuts-toggle'() {
|
||||
ReactiveCache.getCurrentUser().toggleKeyboardShortcuts();
|
||||
},
|
||||
'click .js-close-sidebar'() {
|
||||
Sidebar.toggle()
|
||||
},
|
||||
@@ -136,7 +144,7 @@ BlazeComponent.extendComponent({
|
||||
|
||||
Blaze.registerHelper('Sidebar', () => Sidebar);
|
||||
|
||||
Template.homeSidebar.helpers({
|
||||
BlazeComponent.extendComponent({
|
||||
hiddenMinicardLabelText() {
|
||||
currentUser = ReactiveCache.getCurrentUser();
|
||||
if (currentUser) {
|
||||
@@ -147,7 +155,20 @@ Template.homeSidebar.helpers({
|
||||
return false;
|
||||
}
|
||||
},
|
||||
});
|
||||
showActivities() {
|
||||
let ret = Utils.getCurrentBoard().showActivities ?? false;
|
||||
return ret;
|
||||
},
|
||||
events() {
|
||||
return [
|
||||
{
|
||||
'click #toggleShowActivitiesBoard'() {
|
||||
Utils.getCurrentBoard().toggleShowActivities();
|
||||
},
|
||||
},
|
||||
];
|
||||
},
|
||||
}).register('homeSidebar');
|
||||
|
||||
Template.boardInfoOnMyBoardsPopup.helpers({
|
||||
hideCardCounterList() {
|
||||
|
||||
@@ -143,7 +143,7 @@ BlazeComponent.extendComponent({
|
||||
Swimlanes.insert({
|
||||
title,
|
||||
boardId: Session.get('currentBoard'),
|
||||
sort: sortValue.base,
|
||||
sort: sortValue.base || 0,
|
||||
type: swimlaneType,
|
||||
});
|
||||
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
@media screen and (min-width: 801px) {
|
||||
.swimlane.ui-sortable {
|
||||
width: max-content;
|
||||
}
|
||||
}
|
||||
[class=swimlane] {
|
||||
position: sticky;
|
||||
left: 0;
|
||||
|
||||
@@ -2,7 +2,7 @@ template(name="swimlane")
|
||||
.swimlane.nodragscroll
|
||||
+swimlaneHeader
|
||||
unless collapseSwimlane
|
||||
.swimlane.js-lists.js-swimlane(id="swimlane-{{_id}}"
|
||||
.swimlane.js-lists.js-swimlane.dragscroll(id="swimlane-{{_id}}"
|
||||
style="height:{{swimlaneHeight}};")
|
||||
if isMiniScreen
|
||||
if currentListIsInThisSwimlane _id
|
||||
@@ -24,7 +24,7 @@ template(name="swimlane")
|
||||
+cardDetails(currentCard)
|
||||
|
||||
template(name="listsGroup")
|
||||
.swimlane.list-group.js-lists
|
||||
.swimlane.list-group.js-lists.dragscroll
|
||||
if isMiniScreen
|
||||
if currentList
|
||||
+list(currentList)
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
float: left;
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
margin: .3vh;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
z-index: 1;
|
||||
|
||||
@@ -77,6 +77,10 @@ template(name="memberMenuPopup")
|
||||
a.js-change-language
|
||||
i.fa.fa-flag
|
||||
| {{_ 'changeLanguagePopup-title'}}
|
||||
//li
|
||||
// a.js-support
|
||||
// i.fa.fa-question-circle
|
||||
// | {{_ 'support'}}
|
||||
unless isSandstorm
|
||||
hr
|
||||
ul.pop-over-list
|
||||
@@ -139,6 +143,12 @@ template(name="editProfilePopup")
|
||||
div
|
||||
input#deleteButton.primary.wide(type="button" value="{{_ 'delete'}}")
|
||||
|
||||
|
||||
template(name="supportPopup")
|
||||
ul.pop-over-list
|
||||
li
|
||||
| Support popup text will be editable later.
|
||||
|
||||
template(name="changePasswordPopup")
|
||||
+atForm(state='changePwd')
|
||||
|
||||
@@ -153,12 +163,6 @@ template(name="changeLanguagePopup")
|
||||
|
||||
template(name="changeSettingsPopup")
|
||||
ul.pop-over-list
|
||||
//li
|
||||
// a.js-toggle-system-messages
|
||||
// i.fa.fa-comments-o
|
||||
// | {{_ 'hide-system-messages'}}
|
||||
// if hiddenSystemMessages
|
||||
// i.fa.fa-check
|
||||
//li
|
||||
// a.js-toggle-desktop-drag-handles
|
||||
// i.fa.fa-arrows
|
||||
|
||||
@@ -77,6 +77,7 @@ Template.memberMenuPopup.events({
|
||||
'click .js-change-avatar': Popup.open('changeAvatar'),
|
||||
'click .js-change-password': Popup.open('changePassword'),
|
||||
'click .js-change-language': Popup.open('changeLanguage'),
|
||||
'click .js-support': Popup.open('support'),
|
||||
'click .js-logout'(event) {
|
||||
event.preventDefault();
|
||||
|
||||
@@ -283,16 +284,6 @@ Template.changeLanguagePopup.events({
|
||||
});
|
||||
|
||||
Template.changeSettingsPopup.helpers({
|
||||
hiddenSystemMessages() {
|
||||
const currentUser = ReactiveCache.getCurrentUser();
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).hasHiddenSystemMessages;
|
||||
} else if (window.localStorage.getItem('hasHiddenSystemMessages')) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
rescueCardDescription() {
|
||||
const currentUser = ReactiveCache.getCurrentUser();
|
||||
if (currentUser) {
|
||||
@@ -352,16 +343,6 @@ Template.changeSettingsPopup.events({
|
||||
window.localStorage.setItem('showDesktopDragHandles', 'true');
|
||||
}
|
||||
},
|
||||
'click .js-toggle-system-messages'() {
|
||||
currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
Meteor.call('toggleSystemMessages');
|
||||
} else if (window.localStorage.getItem('hasHiddenSystemMessages')) {
|
||||
window.localStorage.removeItem('hasHiddenSystemMessages');
|
||||
} else {
|
||||
window.localStorage.setItem('hasHiddenSystemMessages', 'true');
|
||||
}
|
||||
},
|
||||
'click .js-rescue-card-description'() {
|
||||
Meteor.call('toggleRescueCardDescription')
|
||||
},
|
||||
|
||||
@@ -123,6 +123,7 @@ EscapeActions = {
|
||||
// the shortcut sould work on textarea and inputs as well.
|
||||
Mousetrap.bindGlobal('esc', () => {
|
||||
EscapeActions.executeLowest();
|
||||
Sidebar.hide();
|
||||
});
|
||||
|
||||
// On a left click on the document, we try to exectute one escape action (eg,
|
||||
|
||||
@@ -237,7 +237,6 @@ class SetFilter {
|
||||
if (this._indexOfVal(val) === -1) {
|
||||
this._selectedElements.push(val);
|
||||
this._dep.changed();
|
||||
showFilterSidebar();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+106
-1
@@ -3,6 +3,37 @@ import { ReactiveCache } from '/imports/reactiveCache';
|
||||
// XXX There is no reason to define these shortcuts globally, they should be
|
||||
// attached to a template (most of them will go in the `board` template).
|
||||
|
||||
window.addEventListener('keydown', (e) => {
|
||||
// Only handle event if coming from body
|
||||
if (e.target !== document.body) return;
|
||||
|
||||
// Only handle event if it's in another language
|
||||
if (String.fromCharCode(e.which).toLowerCase() === e.key) return;
|
||||
|
||||
// Trigger the corresponding action
|
||||
Mousetrap.trigger(String.fromCharCode(e.which).toLowerCase());
|
||||
});
|
||||
|
||||
// Store the original stopCallback in a global
|
||||
const originalStopCallback = Mousetrap.stopCallback;
|
||||
|
||||
// Overwrite the stopCallback to allow for more keyboard shortcut customizations
|
||||
Mousetrap.stopCallback = (e, element) => {
|
||||
// Are shortcuts enabled for the user?
|
||||
if (!ReactiveCache.getCurrentUser().isKeyboardShortcuts())
|
||||
return true;
|
||||
|
||||
// Always handle escape
|
||||
if (e.keyCode === 27)
|
||||
return false;
|
||||
|
||||
// Make sure there are no selected characters
|
||||
if (window.getSelection().type === "Range")
|
||||
return true;
|
||||
|
||||
return originalStopCallback(e, element);
|
||||
}
|
||||
|
||||
function getHoveredCardId() {
|
||||
const card = $('.js-minicard:hover').get(0);
|
||||
if (!card) return null;
|
||||
@@ -139,6 +170,26 @@ Mousetrap.bind(numArray, (evt, key) => {
|
||||
}
|
||||
});
|
||||
|
||||
Mousetrap.bind('m', evt => {
|
||||
const cardId = getSelectedCardId();
|
||||
if (!cardId) {
|
||||
return;
|
||||
}
|
||||
|
||||
const currentUserId = Meteor.userId();
|
||||
if (currentUserId === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (ReactiveCache.getCurrentUser().isBoardMember()) {
|
||||
const card = ReactiveCache.getCard(cardId);
|
||||
card.toggleAssignee(currentUserId);
|
||||
// We should prevent scrolling in card when spacebar is clicked
|
||||
// This should do it according to Mousetrap docs, but it doesn't
|
||||
evt.preventDefault();
|
||||
}
|
||||
});
|
||||
|
||||
Mousetrap.bind('space', evt => {
|
||||
const cardId = getSelectedCardId();
|
||||
if (!cardId) {
|
||||
@@ -179,6 +230,52 @@ Mousetrap.bind('c', evt => {
|
||||
}
|
||||
});
|
||||
|
||||
// Same as above, this time for Persian keyboard.
|
||||
// https://github.com/wekan/wekan/pull/5589#issuecomment-2516776519
|
||||
Mousetrap.bind('÷', evt => {
|
||||
const cardId = getSelectedCardId();
|
||||
if (!cardId) {
|
||||
return;
|
||||
}
|
||||
|
||||
const currentUserId = Meteor.userId();
|
||||
if (currentUserId === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (Utils.canModifyBoard()) {
|
||||
const card = ReactiveCache.getCard(cardId);
|
||||
card.archive();
|
||||
// We should prevent scrolling in card when spacebar is clicked
|
||||
// This should do it according to Mousetrap docs, but it doesn't
|
||||
evt.preventDefault();
|
||||
}
|
||||
});
|
||||
|
||||
Mousetrap.bind('n', evt => {
|
||||
const cardId = getSelectedCardId();
|
||||
if (!cardId) {
|
||||
return;
|
||||
}
|
||||
|
||||
const currentUserId = Meteor.userId();
|
||||
if (currentUserId === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (Utils.canModifyBoard()) {
|
||||
// Find the current hovered card
|
||||
const card = ReactiveCache.getCard(cardId);
|
||||
|
||||
// Find the button and click it
|
||||
$(`#js-list-${card.listId} .list-body .minicards .open-minicard-composer`).click();
|
||||
|
||||
// We should prevent scrolling in card when spacebar is clicked
|
||||
// This should do it according to Mousetrap docs, but it doesn't
|
||||
evt.preventDefault();
|
||||
}
|
||||
});
|
||||
|
||||
Template.keyboardShortcuts.helpers({
|
||||
mapping: [
|
||||
{
|
||||
@@ -193,6 +290,10 @@ Template.keyboardShortcuts.helpers({
|
||||
keys: ['a'],
|
||||
action: 'shortcut-filter-my-assigned-cards',
|
||||
},
|
||||
{
|
||||
keys: ['n'],
|
||||
action: 'add-card-to-bottom-of-list',
|
||||
},
|
||||
{
|
||||
keys: ['f'],
|
||||
action: 'shortcut-toggle-filterbar',
|
||||
@@ -219,10 +320,14 @@ Template.keyboardShortcuts.helpers({
|
||||
},
|
||||
{
|
||||
keys: ['SPACE'],
|
||||
action: 'shortcut-add-self',
|
||||
},
|
||||
{
|
||||
keys: ['n'],
|
||||
action: 'shortcut-assign-self',
|
||||
},
|
||||
{
|
||||
keys: ['c'],
|
||||
keys: ['c', '÷'],
|
||||
action: 'archive-card',
|
||||
},
|
||||
{
|
||||
|
||||
@@ -55,6 +55,30 @@ FlowRouter.route('/public', {
|
||||
},
|
||||
});
|
||||
|
||||
FlowRouter.route('/accessibility', {
|
||||
name: 'accessibility',
|
||||
triggersEnter: [AccountsTemplates.ensureSignedIn],
|
||||
action() {
|
||||
Session.set('currentBoard', null);
|
||||
Session.set('currentList', null);
|
||||
Session.set('currentCard', null);
|
||||
Session.set('popupCardId', null);
|
||||
Session.set('popupCardBoardId', null);
|
||||
|
||||
Filter.reset();
|
||||
Session.set('sortBy', '');
|
||||
EscapeActions.executeAll();
|
||||
|
||||
Utils.manageCustomUI();
|
||||
Utils.manageMatomo();
|
||||
|
||||
BlazeLayout.render('defaultLayout', {
|
||||
headerBar: 'accessibilityHeaderBar',
|
||||
content: 'accessibility',
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
FlowRouter.route('/b/:id/:slug', {
|
||||
name: 'board',
|
||||
action(params) {
|
||||
|
||||
+5
-1
@@ -442,11 +442,15 @@ services:
|
||||
# OAuth2 login style: popup or redirect.
|
||||
#- OAUTH2_LOGIN_STYLE=redirect
|
||||
#- OAUTH2_CLIENT_ID=<Keycloak create Client ID>
|
||||
#- OAUTH2_SERVER_URL=<Keycloak server name>/auth
|
||||
#- OAUTH2_SERVER_URL=<Keycloak server url - https://keycloak.example.com>
|
||||
#- OAUTH2_AUTH_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/auth
|
||||
#- OAUTH2_USERINFO_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/userinfo
|
||||
#- OAUTH2_TOKEN_ENDPOINT=/realms/<keycloak realm>/protocol/openid-connect/token
|
||||
#- OAUTH2_SECRET=<keycloak client secret>
|
||||
#- OAUTH2_ID_MAP=sub
|
||||
#- OAUTH2_USERNAME_MAP=preferred_username
|
||||
#- OAUTH2_EMAIL_MAP=email
|
||||
#- OAUTH2_FULLNAME_MAP=name
|
||||
#-----------------------------------------------------------------
|
||||
# ==== OAUTH2 DOORKEEPER ====
|
||||
# https://github.com/wekan/wekan/issues/1874
|
||||
|
||||
@@ -1,23 +1,36 @@
|
||||
## WeKan Design Principles
|
||||
|
||||
- Prevent messing up something https://github.com/wekan/wekan/wiki/Monkey-Proof-Software
|
||||
- Original WeKan Design, that WeKan currently has: Intuitive, easy to figure out, polished UI/UX, menu options are there where you would expect then to be. Try to fix anything unexpected. New features added there where it makes most sense. And not so many duplicate menus and texts like Trello.
|
||||
- Not the exact design of Trello https://github.com/wekan/wekan/wiki/FAQ#why-does-wekan-look-so-different-now-compared-to--v09 . Also not the exact design of any other software. But note that design of all software changes often, when they are in active development.
|
||||
- Some features like Trello:
|
||||
- 2024-08 Design discussion here: https://github.com/wekan/wekan/discussions/5507
|
||||
- Original WeKan Design:
|
||||
- Kanban, the good parts. Like was done when figuring out best design for Swimlanes https://github.com/wekan/wekan/issues/955
|
||||
- Intuitive, easy to figure out, prevent messing up something https://github.com/wekan/wekan/wiki/Monkey-Proof-Software
|
||||
- Polished UI/UX
|
||||
- Menu options are there where you would expect then to be.
|
||||
- Try to fix anything unexpected.
|
||||
- New features added there where it makes most sense.
|
||||
- Not too many toggles and settings, because that is worse. For example, Discord settings has too many toggles and settings. Just select some default.
|
||||
- FOSS with MIT license
|
||||
- Swimlanes
|
||||
- All the use cases of WeKan feature/fix contributors
|
||||
- Cross-platform. Support many CPU/OS/Browsers for Desktop and Mobile.
|
||||
- Support many browsers https://github.com/wekan/wekan/wiki/Browser-compatibility-matrix . Add support for more.
|
||||
- PWA https://github.com/wekan/wekan/wiki/PWA
|
||||
- On-Premise:
|
||||
- Linux amd64/arm64/s390x
|
||||
- https://wekan.github.io/install/
|
||||
- https://github.com/wekan/wekan/wiki/Raspberry-Pi
|
||||
- Windows https://github.com/wekan/wekan/wiki/Offline
|
||||
- Mac https://github.com/wekan/wekan/wiki/Mac
|
||||
- Not like other software:
|
||||
- But note that design of all software changes often, when they are in active development.
|
||||
- Not bad parts of Trello:
|
||||
- Not the exact design of Trello https://github.com/wekan/wekan/wiki/FAQ#why-does-wekan-look-so-different-now-compared-to--v09
|
||||
- Not so many duplicate menus and texts like Trello
|
||||
- Not so much empty space
|
||||
- Some good parts of Trello:
|
||||
- Import from Trello
|
||||
- Shortcuts https://github.com/wekan/wekan/issues/1878
|
||||
- IFTTT Rules like Trello Butler https://github.com/wekan/wekan/wiki/IFTTT
|
||||
- Progress bar of checklist
|
||||
- Some features like Jira:
|
||||
- Multiple assignees
|
||||
- Some features not in Trello, like:
|
||||
- FOSS with MIT license
|
||||
- Self-hosting
|
||||
- Swimlanes
|
||||
- All the use cases of WeKan feature/fix contributors
|
||||
- Cross-platform. Support many CPU/OS/Browsers for Desktop and Mobile. Add support for more.
|
||||
- https://github.com/wekan/wekan/wiki/Browser-compatibility-matrix
|
||||
- https://github.com/wekan/wekan/wiki/PWA
|
||||
- https://github.com/wekan/wekan/wiki/Offline
|
||||
- https://github.com/wekan/wekan/wiki/Mac
|
||||
- https://github.com/wekan/wekan/wiki/Raspberry-Pi
|
||||
- Some good parts of Jira:
|
||||
- Multiple assignees
|
||||
@@ -46,7 +46,7 @@ When you run this, you see .jade template files where is search input box, and .
|
||||
- Look through old [pull requests](https://github.com/wekan/wekan/pulls)
|
||||
- Read Wekan source code, you can use some git history viewer GUI like gitk
|
||||
- Read [Meteor documentation](https://docs.meteor.com/) for [Meteor version](https://github.com/wekan/wekan/blob/main/.meteor/release) in use, other versions mentioned at [Dockerfile](https://github.com/wekan/wekan/blob/main/Dockerfile)
|
||||
- Docker up-to-date way: You can clone wekan/wekan repo and update docker-compose.yml file ROOT_URL etc as documented at https://github.com/wekan/wekan-mongodb commented docker-compose.yml file, install docker, and build from source with docker with "docker-compose up -d --build"
|
||||
- Docker up-to-date way: You can clone wekan/wekan repo and update docker-compose.yml file ROOT_URL etc as documented at https://github.com/wekan/wekan commented `docker-compose.yml` file, install docker, and build from source with docker with `docker compose up -d --build`
|
||||
- Docker not up-to-date way: [Docker environment for Wekan development](https://github.com/wekan/wekan-dev).
|
||||
|
||||
## Pull Request Workflow (Please read before submitting PR's)
|
||||
|
||||
@@ -1,11 +1,49 @@
|
||||
## Meteor 3 Example Code
|
||||
|
||||
- https://github.com/fredmaiaarantes/simpletasks
|
||||
- MIT License
|
||||
- https://github.com/xet7/simpletasks
|
||||
- https://github.com/henriquealbert/meteor-with-prisma
|
||||
- MIT License
|
||||
- https://github.com/xet7/meteor-with-prisma
|
||||
- https://github.com/henriquealbert/meteor-pnpm
|
||||
- MIT License
|
||||
- https://github.com/xet7/meteor-pnpm
|
||||
|
||||
## Building Multi Platform Mobile Apps
|
||||
|
||||
- TWIM 058: Building Multi Platform Mobile Apps https://www.youtube.com/watch?v=ZTtXRJTUCIU
|
||||
- https://www.youtube.com/watch?v=ZTtXRJTUCIU
|
||||
- https://github.com/jamauro/pwa-kit
|
||||
- https://wekan.team/app/
|
||||
- https://github.com/wekan/wekan/wiki/PWA
|
||||
- Over 100 icons for different platforms https://github.com/wekan/wekan/blob/main/public/site.webmanifest
|
||||
|
||||
## Tip to any programmers
|
||||
|
||||
- Try to understand any error messages, and what to do to those errors
|
||||
|
||||
## Videos about upgrading to Meteor 3
|
||||
|
||||
- Storyteller
|
||||
- Upcoming:
|
||||
- 2024-09-02: Meteor.js generators https://www.youtube.com/watch?v=Z6nY2wqPgSE
|
||||
- 2024-09-09: Can we build static web pages with Meteor.js? https://www.youtube.com/watch?v=cr-Nm0YFb1w
|
||||
- 2024-09-16: Revisiting Mantra application architecture for today's Meteor.js https://www.youtube.com/watch?v=YyzY7ySqBAg
|
||||
- 2024-08-23: TWIM 052: Year of TWIM in review. Trying to of sometime have xet7 at TWIM show again. They recommended people to help xet7 when possible, xet7 is hitting some walls developing WeKan. https://www.youtube.com/watch?v=c5E3uZST4Vs
|
||||
- 2024-08-20:
|
||||
- Vazco interviewing Storyteller: How to approach building Open Source products? https://www.youtube.com/watch?v=j5BrTYcJDVc
|
||||
- Meteor inteviewing Storyteller: Programmer, open source contributor, entrepreneur https://www.youtube.com/watch?v=dsp0_r8uJx8
|
||||
- Meteor Roles:
|
||||
- 2024-07-33: Meteor Roles the full checkpoint https://www.youtube.com/watch?v=ow1i4UXdbbI
|
||||
- 2024-08-12: Meteor Roles building up teams https://www.youtube.com/watch?v=ZAuSYKfV114
|
||||
- 2024-07-15: WeKan Upgrades https://www.youtube.com/watch?v=Zjb3m9JsAD0
|
||||
- 2024-07-08: Upgrading Meteor examples https://www.youtube.com/watch?v=jzWXxOe93t4
|
||||
- Upcoming and past: https://www.youtube.com/@storytellercz/streams
|
||||
- React.js
|
||||
- WeKan uses Blaze and Jade, not React.
|
||||
- 2024-09-25:
|
||||
- Meteor 3 React Compiler: https://x.com/FilipeNevola/status/1838911432282583432
|
||||
- 2024-08-02:
|
||||
- https://www.youtube.com/watch?v=NnT7AbVMnj4
|
||||
- https://thenewstack.io/after-a-decade-of-react-is-frontend-a-post-react-world-now/
|
||||
|
||||
@@ -1,3 +1,19 @@
|
||||
## What is not Cross-Platform
|
||||
|
||||
- Requires CPU to support AVX
|
||||
- Bun Javascript Engine https://bun.sh
|
||||
- MongoDB 5.x and newer https://github.com/turnkeylinux/tracker/issues/1724#issuecomment-2351544191
|
||||
- Does not work at s390x
|
||||
- V programming language https://github.com/vlang/v/issues/18737
|
||||
- Bun Javascript Engine https://github.com/oven-sh/bun/issues/2632
|
||||
- Deno Javascript Engine https://github.com/denoland/deno/issues/20212#issuecomment-1756663943
|
||||
- Lazarus IDE https://www.lazarus-ide.org
|
||||
- FreePascal programming language https://www.freepascal.org
|
||||
- TigerBeetle database https://github.com/tigerbeetle/tigerbeetle/issues/2241
|
||||
- GUI requires porting to other OS
|
||||
- BBC Basic https://www.bbcbasic.net/wiki/doku.php?id=converting_20programs_20from_20risc_20os_20to_20windows
|
||||
- Tcl/Tk GUI does works at most OS
|
||||
|
||||
## Prototype Strategy
|
||||
|
||||
- Try building many prototypes, see what works
|
||||
@@ -265,8 +281,11 @@ https://github.com/wekan/php/blob/main/page/allboardschar.php
|
||||
|
||||
### FreePascal
|
||||
|
||||
- Repo https://github.com/wekan/hx/tree/main/prototypes/code/webserver/works/freepascal-router
|
||||
- Router and some webpage
|
||||
- Repo https://github.com/wekan/wami
|
||||
- Some static pages
|
||||
- Previous:
|
||||
- Repo https://github.com/wekan/hx/tree/main/prototypes/code/webserver/works/freepascal-router
|
||||
- Router and some webpage
|
||||
- Works at many retro and modern OS, but not at s390x that FreePascal does not support yet https://wiki.freepascal.org/ZSeries
|
||||
|
||||
### FreeDOS and Bash
|
||||
|
||||
@@ -38,4 +38,9 @@ Reorder with drag drop:
|
||||
- Draggable objects
|
||||
- https://www.redblobgames.com/making-of/draggable/
|
||||
- https://news.ycombinator.com/item?id=37703291
|
||||
- Fixed Drag at Ubuntu Touch Morph browser https://github.com/wekan/wekan/commit/af63259f091cb2ade84493a288ea37c53cd37321
|
||||
- Fixed Drag at Ubuntu Touch Morph browser https://github.com/wekan/wekan/commit/af63259f091cb2ade84493a288ea37c53cd37321
|
||||
|
||||
## Touch UI ideas
|
||||
|
||||
- https://blog.la-terminal.net/godot-on-ipad-summer-update/
|
||||
- https://news.ycombinator.com/item?id=41415077
|
||||
@@ -141,6 +141,8 @@ sudo snap set wekan mail-from='Wekan Team Boards <info@example.com>'
|
||||
```
|
||||
## Example: AWS SES
|
||||
|
||||
Related https://github.com/wekan/wekan/discussions/5518
|
||||
|
||||
NOTE: At AWS SES settings, you don't need to convert special characters.
|
||||
|
||||
1) At AWS SES, add verified sender email address, verified domain, verified DKIM etc.
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
Linked Card feature was added at https://github.com/wekan/wekan/pull/1592
|
||||
|
||||
With Linked Card feature, it's possible to create new board as dashboard. At dashboard board, you add new card Link, and there link to some card at other board, so you see realtimes changes from all those cards at dashboard board.
|
||||
|
||||
Search is for searching card, to be as linked card, I presume.
|
||||
|
||||
There is also Linked Board, but I'm not sure is it useful.
|
||||
|
||||
Related PRs at https://github.com/wekan/wekan/pulls?q=is%3Apr+is%3Aclosed+linked+card+
|
||||
|
||||
Related issue https://github.com/wekan/wekan/issues/5550
|
||||
@@ -48,7 +48,7 @@ db.users.find()
|
||||
```
|
||||
Set some user as admin:
|
||||
```
|
||||
db.users.update({username:'admin-username-here'},{$set:{isAdmin:true}})
|
||||
db.users.updateOne({username:'admin-username-here'},{$set:{isAdmin:true}})
|
||||
```
|
||||
Check are there any failed logins with wrong password, that brute force login prevention has denied login:
|
||||
```
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
## LDAP info
|
||||
|
||||
- [LDAP sync script, that also correctly removes users](https://github.com/wekan/wekan/blob/main/ldap-sync/ldap-sync.py)
|
||||
- [LDAP sync script, that also correctly removes users](https://github.com/wekan/wekan/blob/main/docs/Login/ldap-sync/ldap-sync.py)
|
||||
- [LDAP AD Simple Auth](LDAP-AD-Simple-Auth) 2021-07-24 and related [Search Filter Settings](https://github.com/wekan/wekan/issues/3908#issuecomment-887545168):
|
||||
|
||||
```
|
||||
|
||||
+10
-6
@@ -9,20 +9,24 @@ Sandstorm has SAML login, and old WeKan that will be updated someday:
|
||||
|
||||
How SAML works:
|
||||
|
||||
- https://ssoready.com/blog/engineering/a-gentle-intro-to-saml/
|
||||
- https://ssoready.com
|
||||
- https://github.com/ssoready/ssoready
|
||||
- https://news.ycombinator.com/item?id=41110850
|
||||
- https://ssoready.com/blog/from-the-founders/an-unpopular-perspective-on-the-sso-tax/
|
||||
- https://news.ycombinator.com/item?id=41303844/blog/engineering/a-gentle-intro-to-saml/
|
||||
- https://news.ycombinator.com/item?id=41036982
|
||||
- https://www.sheshbabu.com/posts/visual-explanation-of-saml-authentication/
|
||||
- https://news.ycombinator.com/item?id=41057814
|
||||
- https://github.com/ssoready/ssoready
|
||||
- https://news.ycombinator.com/item?id=41110850
|
||||
- https://ssoready.com/blog/from-the-founders/an-unpopular-perspective-on-the-sso-tax/
|
||||
- https://news.ycombinator.com/item?id=41303844
|
||||
|
||||
Ruby on Rails OmniAuth, that has Shibboleth and SAML:
|
||||
|
||||
- https://github.com/omniauth/omniauth/wiki/List-of-Strategies
|
||||
- https://github.com/omniauth/omniauth
|
||||
|
||||
SAML at SSOReady:
|
||||
|
||||
- https://github.com/ssoready/ssoready
|
||||
- https://news.ycombinator.com/item?id=41110850
|
||||
- Recent SAML issue https://news.ycombinator.com/item?id=41586031
|
||||
|
||||
The SSO Wall of Shame:
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
CNAME to CNAME does not work well. Last one should be A IPv4 (and AAAA IPv6).
|
||||
|
||||
To get Let's Encrypt SSL/TLS cert for custom subdomain, for example with Caddy, you subdomain should have grey cloud icon. Not orange cloud icon CloudFlare proxy. Also turn off any SSL/TLS of CloudFlare. This is so that Let's Encrypt verifying servers can see hosting server actual IP address and validate cert.
|
||||
|
||||
If needing wildcard SSL/TLS cert, for example for Sandstorm, create CloudFlare Origin Certificate, add it to Caddy or Nginx certs .pem file (private key above, other key below, at same textfile). Set CloudFlare SSL/TLS as Strict for using Origin Certificate. Set DNS to orange cloud icon proxy. Add DNS records for example.com , *.example.com , www.example.com .
|
||||
@@ -283,4 +283,4 @@ sudo docker compose up -d --build
|
||||
|
||||
* [Caddy Webserver Config](Caddy-Webserver-Config)
|
||||
* [Nginx Webserver Config](Nginx-Webserver-Config)
|
||||
* [Apache Webserver Config](Apache)
|
||||
* [Apache Webserver Config](Apache)
|
||||
@@ -1,6 +1,64 @@
|
||||
# Sandstorm at Debian and Ubuntu
|
||||
|
||||
### Sandstorm CloudFlare DNS settings
|
||||
|
||||
Source: https://github.com/sandstorm-io/sandstorm/issues/3714#issuecomment-2366866243
|
||||
|
||||
For me, it works at CloudFlare DNS using TLS Strict checking and DNS setting clicking to orange cloud icon to make TLS proxy with Origin certificate, that is at /etc/caddy/certs/example.com.pem with above private key and below cert.
|
||||
|
||||
DNS records:
|
||||
```
|
||||
* A example.com ip-address
|
||||
@ A example.com ip-address
|
||||
```
|
||||
Caddyfile, proxy to KVM VM that is running Debian and Sandstorm:
|
||||
```
|
||||
*.example.com example.com {
|
||||
tls {
|
||||
load /etc/caddy/certs
|
||||
alpn http/1.1
|
||||
}
|
||||
|
||||
reverse_proxy 123.123.123.123:80
|
||||
}
|
||||
```
|
||||
At /opt/sandstorm/sandstorm.conf is domain, http port etc.
|
||||
|
||||
Some related info at:
|
||||
|
||||
https://github.com/wekan/wekan/wiki/Caddy-Webserver-Config
|
||||
|
||||
I also had to wait that Origin certificate becomes active.
|
||||
|
||||
But this worked for me only at CloudFlare. It did not work at FreeDNS of Namecheap.
|
||||
|
||||
Also, I still need to write script to fix IP address if Dynamic DNS IP address changes, using CloudFlare API, because my cable modem does not have DDNS option for CloudFlare.
|
||||
|
||||
Now that there is also a way to run Sandstorm at Ubuntu, it would be possible for me to move Sandstorm from KVM VM to run directly at host, without VM, and proxy from Caddy to localhost port of Sandstorm.
|
||||
|
||||
https://groups.google.com/g/sandstorm-dev/c/4JFhr7B7QZU?pli=1
|
||||
|
||||
### Debian amd64
|
||||
|
||||
Installing Sandstorm works normally
|
||||
|
||||
### Ubuntu 24.04 amd64
|
||||
|
||||
At startup was a lot of errors and saw "Permission denied; name = /proc/self/setgroups"
|
||||
|
||||
I found this (run as root):
|
||||
```
|
||||
echo "kernel.apparmor_restrict_unprivileged_userns = 0" >/etc/sysctl.d/99-userns.conf
|
||||
sysctl --system
|
||||
```
|
||||
And I ran it and restarted the Sandstorm service, everything seemed to work fine.
|
||||
I hope this might be useful to someone.
|
||||
|
||||
Source: https://groups.google.com/g/sandstorm-dev/c/4JFhr7B7QZU
|
||||
|
||||
## Sandstorm Website
|
||||
|
||||
[Sandstorm Website](https://sandstorm.io)
|
||||
[Sandstorm Website](https://sandstorm.org)
|
||||
|
||||
If you have any grains at Sandstorm's **Oasis montly paid service**, please move those to self-hosted, because [only **Oasis grain hosting** part is shutting down](https://sandstorm.io/news/2019-09-15-shutting-down-oasis) - [HN](https://news.ycombinator.com/item?id=20979428). This does not affect any other parts like self-hosting at sandcats.io, App Market, updates, etc.
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ ssh wekanserver
|
||||
```
|
||||
#### 5. Save snap settings and set it as executeable
|
||||
```
|
||||
sudo snap get wekan > snap-settings.sh
|
||||
sudo snap get wekan | awk '{if(NR>1) print "sudo snap set wekan " $1 "=" "\"" $2 "\""}' > snap-settings.sh
|
||||
|
||||
chmod +x snap-settings.sh
|
||||
```
|
||||
@@ -273,4 +273,4 @@ If you have problems, add comment to issue https://github.com/wekan/wekan/issues
|
||||
|
||||
- This is discontinued, Gantt features will be later added to WeKan MIT version.
|
||||
- Gantt version files are instead at `/var/snap/wekan-gantt-gpl/`
|
||||
- Gantt snap name is wekan-gantt-gpl
|
||||
- Gantt snap name is wekan-gantt-gpl
|
||||
@@ -329,6 +329,16 @@ files.company.com {
|
||||
|
||||
# OLD WAY: Many Snaps on LXC
|
||||
|
||||
## Fix: System does not fully support snapd
|
||||
|
||||
To server and LXC/LXD containers, install these packages:
|
||||
|
||||
```
|
||||
sudo apt install libsquashfuse0 squashfuse fuse
|
||||
```
|
||||
|
||||
Source: https://forum.snapcraft.io/t/system-does-not-fully-support-snapd/14767/11
|
||||
|
||||
## LXD init CIDR
|
||||
|
||||
IPv4 CIDR: 10.1.1.1/24
|
||||
@@ -463,4 +473,4 @@ Result:
|
||||
```
|
||||
lxc stop mycontainer
|
||||
lxc delete mycontainer
|
||||
```
|
||||
```
|
||||
@@ -10,6 +10,9 @@
|
||||
- https://arstechnica.com/information-technology/2023/07/the-ibm-mainframe-how-it-runs-and-why-it-survives/
|
||||
- https://sdl-hercules-390.github.io/html/
|
||||
- Big-endian s390x https://community.ibm.com/community/user/ibmz-and-linuxone/blogs/javier-perez1/2021/01/19/endianness-guidance-for-open-source-projects
|
||||
- The Future of Big Iron: An Interview with IBM’s Christian Jacobi
|
||||
- https://morethanmoore.substack.com/p/the-future-of-big-iron-telum-ii-and
|
||||
- https://news.ycombinator.com/item?id=41846592
|
||||
|
||||
***
|
||||
|
||||
|
||||
@@ -4,23 +4,25 @@ Also see: [Windows](Windows)
|
||||
|
||||
## Wekan Windows 64bit version On-Premise
|
||||
|
||||
INFO ABOUT SETTINGS: https://github.com/wekan/wekan/issues/5591#issuecomment-2503681293
|
||||
|
||||
This is without container (without Docker or Snap).
|
||||
|
||||
Right click and download files 1-4:
|
||||
|
||||
1. [wekan-7.55-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.55/wekan-7.55-amd64-windows.zip)
|
||||
1. [wekan-7.76-amd64-windows.zip](https://github.com/wekan/wekan/releases/download/v7.76/wekan-7.76-amd64-windows.zip)
|
||||
|
||||
2. [node.exe](https://nodejs.org/dist/latest-v14.x/win-x64/node.exe)
|
||||
|
||||
3. [mongodb-windows-x86_64-6.0.16-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.16-signed.msi)
|
||||
3. [mongodb-windows-x86_64-6.0.19-signed.msi](https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-6.0.19-signed.msi)
|
||||
|
||||
4. [start-wekan.bat](https://raw.githubusercontent.com/wekan/wekan/main/start-wekan.bat)
|
||||
|
||||
5. Copy files from steps 1-4 with USB stick or DVD to offline Windows computer
|
||||
|
||||
6. Double click `mongodb-windows-x86_64-6.0.16-signed.msi` . In installer, uncheck downloading MongoDB compass.
|
||||
6. Double click `mongodb-windows-x86_64-6.0.19-signed.msi` . In installer, uncheck downloading MongoDB compass.
|
||||
|
||||
7. Unzip `wekan-7.55-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files:
|
||||
7. Unzip `wekan-7.76-amd64-windows.zip` , inside it is directory `bundle`, to it copy other files:
|
||||
|
||||
```
|
||||
bundle (directory)
|
||||
|
||||
@@ -128,7 +128,7 @@ Other:
|
||||
.card-details .card-details-header { background-color:#ccc; }
|
||||
|
||||
/* sidebar */
|
||||
.sidebar-tongue, .sidebar-shadow { background-color:#666 !important; }
|
||||
.sidebar-tongue, .sidebar { background-color:#666 !important; }
|
||||
.sidebar-content h3, .sidebar-content .activity-desc { color:rgba(255,255,255,.7) !important; }
|
||||
```
|
||||
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
[Caddy 2 .well-known/assetlinks.json config for WeKan Android Play Store app](../PWA#fullscreen-android-app-with-caddy-and-wekan-server)
|
||||
|
||||
# CloudFlare DNS
|
||||
|
||||
CNAME:
|
||||
|
||||
If some customer has CNAME to hosting platform subdomain,
|
||||
hosting platform subdomain needs to be A record IP address to
|
||||
hosting server Caddy webserver, because only that way
|
||||
it can get Let's Encrypt TLS cert. It can not be nested like
|
||||
customer CNAME to hosting CNAME to hosting A record,
|
||||
because then getting Let's Encrypt TLS cert does not work.
|
||||
|
||||
Wildcard:
|
||||
|
||||
Wildcard DNS for Sandstorm only works with CloudFlare DNS.
|
||||
It does not work with FreeDNS of Namecheap. More info at
|
||||
https://github.com/wekan/wekan/wiki/Sandstorm
|
||||
|
||||
## Caddy 2
|
||||
|
||||
WeKan Snap Candidate for any Snap distros: https://github.com/wekan/wekan/wiki/OpenSuse , disable internal old Caddy 1, when using Caddy 2:
|
||||
@@ -718,4 +735,4 @@ Start caddy and enable service:
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl start caddy@username
|
||||
sudo systemctl enable caddy@username
|
||||
```
|
||||
```
|
||||
@@ -0,0 +1,57 @@
|
||||
(TODO: Try to integrate this inside WeKan Snap Candidate, or change code so that these would not be needed.)
|
||||
|
||||
WeKan has some memory leaks. To prevent WeKan becoming slow, this Cron script restarts WeKan Snap once every hour.
|
||||
|
||||
1) Edit /root/hourly.sh
|
||||
|
||||
```
|
||||
sudo su
|
||||
|
||||
apt -y install nano cron
|
||||
|
||||
nano /root/hourly.sh
|
||||
```
|
||||
2) There add this text:
|
||||
```
|
||||
snap stop wekan.wekan
|
||||
|
||||
snap start wekan.wekan
|
||||
|
||||
# Wait 10 seconds
|
||||
sleep 10
|
||||
|
||||
# Disable telemetry
|
||||
/snap/wekan/current/usr/bin/mongosh wekan --eval 'disableTelemetry();' --port 27019
|
||||
|
||||
# Snap: Disable apparmor="DENIED" at syslog
|
||||
# https://github.com/wekan/wekan/issues/4855
|
||||
/snap/wekan/current/usr/bin/mongosh wekan \
|
||||
--eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' \
|
||||
--port 27019
|
||||
|
||||
# Delete incomplete uploads so that they would not prevent starting WeKan
|
||||
/snap/wekan/current/usr/bin/mongosh wekan \
|
||||
--eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' \
|
||||
--port 27019
|
||||
```
|
||||
3) Save and exit nano: Ctrl-o Enter Ctrl-x Enter
|
||||
|
||||
4) Make hourly.sh script executeable, and edit cron:
|
||||
```
|
||||
chmod +x /root/hourly.sh
|
||||
|
||||
export EDITOR=nano
|
||||
|
||||
crontab -e
|
||||
```
|
||||
There at bottom, add this line, that will restart WeKan hourly, and log to textfile:
|
||||
```
|
||||
0 * * * * /root/hourly.sh >> /root/hourly-log.txt 2>&1
|
||||
```
|
||||
5) Save and exit nano: Ctrl-o Enter Ctrl-x Enter
|
||||
|
||||
6) You can also list content of cron:
|
||||
|
||||
```
|
||||
crontab -l
|
||||
```
|
||||
@@ -1,6 +1,12 @@
|
||||
https://galaxy-guide.meteor.com/scaling
|
||||
## How We Scaled Meteor JS to Handle 30,000 Concurrent Users at Propiedata
|
||||
|
||||
***
|
||||
- https://forums.meteor.com/t/first-steps-on-scaling-meteor-js/62570
|
||||
|
||||
## Meteor Galaxy Guide
|
||||
|
||||
- https://galaxy-guide.meteor.com/scaling
|
||||
|
||||
## Pods
|
||||
|
||||
Reply from customer at 2023-09-29 about WeKan v7.08:
|
||||
|
||||
|
||||
+3
-1
@@ -33,7 +33,8 @@
|
||||
|
||||
# <a name="Scaling"></a>Scaling
|
||||
|
||||
* [Add more RAM to Node.js to prevent crash](https://github.com/wekan/wekan/issues/3585)
|
||||
* [Cron: Hourly restart WeKan, because of memory leaks](Cron)
|
||||
* [Maybe: Add more RAM to Node.js to prevent crash](https://github.com/wekan/wekan/issues/3585)
|
||||
* [Clustering AWS etc](AWS)
|
||||
* [Scaling](Scaling)
|
||||
* [Kubernetes](https://github.com/wekan/wekan/tree/main/helm/wekan)
|
||||
@@ -128,6 +129,7 @@
|
||||
|
||||
# <a name="Features"></a>Features
|
||||
|
||||
* [Linked Cards](Linked-Cards)
|
||||
* [Drag Drop](https://github.com/wekan/wekan/wiki/Drag-Drop) on Mobile and Desktop
|
||||
* [Rclone: Store attachments to cloud storage like S3, MinIO, etc](Rclone)
|
||||
* [Python based features](Python)
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s moved to Archive",
|
||||
"activity-attached": "attached %s to %s",
|
||||
"activity-created": "created %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "created custom field %s",
|
||||
"activity-excluded": "excluded %s from %s",
|
||||
"activity-imported": "imported %s into %s from %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Add Card",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklists",
|
||||
"click-to-star": "Click to star this board.",
|
||||
"click-to-unstar": "Click to unstar this board.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Clipboard or drag & drop",
|
||||
"close": "Close",
|
||||
"close-board": "Close Board",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comments": "Comments",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
|
||||
"fullname": "Full Name",
|
||||
"header-logo-title": "Go back to your boards page.",
|
||||
"hide-system-messages": "Hide system messages",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Create Board",
|
||||
"home": "Home",
|
||||
"import": "Import",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Select Board",
|
||||
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
|
||||
"setWipLimitPopup-title": "Set WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Assign yourself to current card",
|
||||
"shortcut-autocomplete-emoji": "Autocomplete emoji",
|
||||
"shortcut-autocomplete-members": "Autocomplete members",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "geskuif na Argief",
|
||||
"activity-attached": "aangeheg",
|
||||
"activity-created": "geskep",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "pasgemaakte veld geskep",
|
||||
"activity-excluded": "uitgesluit",
|
||||
"activity-imported": "ingevoer in van",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Add Card",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklists",
|
||||
"click-to-star": "Click to star this board.",
|
||||
"click-to-unstar": "Click to unstar this board.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Clipboard or drag & drop",
|
||||
"close": "Close",
|
||||
"close-board": "Close Board",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comments": "Comments",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
|
||||
"fullname": "Full Name",
|
||||
"header-logo-title": "Go back to your boards page.",
|
||||
"hide-system-messages": "Hide system messages",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Create Board",
|
||||
"home": "Home",
|
||||
"import": "Import",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Select Board",
|
||||
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
|
||||
"setWipLimitPopup-title": "Set WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Assign yourself to current card",
|
||||
"shortcut-autocomplete-emoji": "Autocomplete emoji",
|
||||
"shortcut-autocomplete-members": "Autocomplete members",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s moved to Archive",
|
||||
"activity-attached": "attached %s to %s",
|
||||
"activity-created": "created %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "created custom field %s",
|
||||
"activity-excluded": "excluded %s from %s",
|
||||
"activity-imported": "imported %s into %s from %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Add Card",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklists",
|
||||
"click-to-star": "Click to star this board.",
|
||||
"click-to-unstar": "Click to unstar this board.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Clipboard or drag & drop",
|
||||
"close": "Close",
|
||||
"close-board": "Close Board",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comments": "Comments",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
|
||||
"fullname": "Full Name",
|
||||
"header-logo-title": "Go back to your boards page.",
|
||||
"hide-system-messages": "Hide system messages",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Create Board",
|
||||
"home": "Home",
|
||||
"import": "Import",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Select Board",
|
||||
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
|
||||
"setWipLimitPopup-title": "Set WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Assign yourself to current card",
|
||||
"shortcut-autocomplete-emoji": "Autocomplete emoji",
|
||||
"shortcut-autocomplete-members": "Autocomplete members",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s moved to Archive",
|
||||
"activity-attached": "attached %s to %s",
|
||||
"activity-created": "created %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "created custom field %s",
|
||||
"activity-excluded": "excluded %s from %s",
|
||||
"activity-imported": "imported %s into %s from %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Add Card",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklists",
|
||||
"click-to-star": "Click to star this board.",
|
||||
"click-to-unstar": "Click to unstar this board.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Clipboard or drag & drop",
|
||||
"close": "Close",
|
||||
"close-board": "Close Board",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comments": "Comments",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
|
||||
"fullname": "Full Name",
|
||||
"header-logo-title": "Go back to your boards page.",
|
||||
"hide-system-messages": "Hide system messages",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Create Board",
|
||||
"home": "Home",
|
||||
"import": "Import",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Select Board",
|
||||
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
|
||||
"setWipLimitPopup-title": "Set WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Assign yourself to current card",
|
||||
"shortcut-autocomplete-emoji": "Autocomplete emoji",
|
||||
"shortcut-autocomplete-members": "Autocomplete members",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s انتقل الى الارشيف",
|
||||
"activity-attached": "إرفاق %s ل %s",
|
||||
"activity-created": "أنشأ %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "%s احدت حقل مخصص",
|
||||
"activity-excluded": "استبعاد %s عن %s",
|
||||
"activity-imported": "imported %s into %s from %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "إضافة بطاقة",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "قوائم التّدقيق",
|
||||
"click-to-star": "اضغط لإضافة اللوحة للمفضلة.",
|
||||
"click-to-unstar": "اضغط لحذف اللوحة من المفضلة.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Clipboard or drag & drop",
|
||||
"close": "غلق",
|
||||
"close-board": "غلق اللوحة",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "أبيض",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "غير محدد",
|
||||
"comments": "Comments",
|
||||
"comment": "تعليق",
|
||||
"comment-placeholder": "أكتب تعليق",
|
||||
"comment-only": "التعليق فقط",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
|
||||
"fullname": "الإسم الكامل",
|
||||
"header-logo-title": "الرجوع إلى صفحة اللوحات",
|
||||
"hide-system-messages": "إخفاء رسائل النظام",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "إنشاء لوحة",
|
||||
"home": "الرئيسية",
|
||||
"import": "Import",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Select Board",
|
||||
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
|
||||
"setWipLimitPopup-title": "Set WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Assign yourself to current card",
|
||||
"shortcut-autocomplete-emoji": "الإكمال التلقائي للرموز التعبيرية",
|
||||
"shortcut-autocomplete-members": "الإكمال التلقائي لأسماء الأعضاء",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "روابط",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "انهيار",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s moved to Archive",
|
||||
"activity-attached": "attached %s to %s",
|
||||
"activity-created": "created %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "created custom field %s",
|
||||
"activity-excluded": "excluded %s from %s",
|
||||
"activity-imported": "imported %s into %s from %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Add Card",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklists",
|
||||
"click-to-star": "Click to star this board.",
|
||||
"click-to-unstar": "Click to unstar this board.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Clipboard or drag & drop",
|
||||
"close": "Close",
|
||||
"close-board": "Close Board",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comments": "Comments",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
|
||||
"fullname": "Full Name",
|
||||
"header-logo-title": "Go back to your boards page.",
|
||||
"hide-system-messages": "Hide system messages",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Create Board",
|
||||
"home": "Home",
|
||||
"import": "Import",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Select Board",
|
||||
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
|
||||
"setWipLimitPopup-title": "Set WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Assign yourself to current card",
|
||||
"shortcut-autocomplete-emoji": "Autocomplete emoji",
|
||||
"shortcut-autocomplete-members": "Autocomplete members",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s moved to Archive",
|
||||
"activity-attached": "attached %s to %s",
|
||||
"activity-created": "created %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "created custom field %s",
|
||||
"activity-excluded": "excluded %s from %s",
|
||||
"activity-imported": "imported %s into %s from %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Add Card",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklists",
|
||||
"click-to-star": "Click to star this board.",
|
||||
"click-to-unstar": "Click to unstar this board.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Clipboard or drag & drop",
|
||||
"close": "Close",
|
||||
"close-board": "Close Board",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comments": "Comments",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
|
||||
"fullname": "Full Name",
|
||||
"header-logo-title": "Go back to your boards page.",
|
||||
"hide-system-messages": "Hide system messages",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Create Board",
|
||||
"home": "Home",
|
||||
"import": "Import",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Select Board",
|
||||
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
|
||||
"setWipLimitPopup-title": "Set WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Assign yourself to current card",
|
||||
"shortcut-autocomplete-emoji": "Autocomplete emoji",
|
||||
"shortcut-autocomplete-members": "Autocomplete members",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s moved to Archive",
|
||||
"activity-attached": "attached %s to %s",
|
||||
"activity-created": "created %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "created custom field %s",
|
||||
"activity-excluded": "excluded %s from %s",
|
||||
"activity-imported": "imported %s into %s from %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Add Card",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklists",
|
||||
"click-to-star": "Click to star this board.",
|
||||
"click-to-unstar": "Click to unstar this board.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Clipboard or drag & drop",
|
||||
"close": "Close",
|
||||
"close-board": "Close Board",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comments": "Comments",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
|
||||
"fullname": "Full Name",
|
||||
"header-logo-title": "Go back to your boards page.",
|
||||
"hide-system-messages": "Hide system messages",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Create Board",
|
||||
"home": "Home",
|
||||
"import": "Import",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Select Board",
|
||||
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
|
||||
"setWipLimitPopup-title": "Set WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Assign yourself to current card",
|
||||
"shortcut-autocomplete-emoji": "Autocomplete emoji",
|
||||
"shortcut-autocomplete-members": "Autocomplete members",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s moved to Archive",
|
||||
"activity-attached": "attached %s to %s",
|
||||
"activity-created": "created %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "created custom field %s",
|
||||
"activity-excluded": "excluded %s from %s",
|
||||
"activity-imported": "imported %s into %s from %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Add Card",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklists",
|
||||
"click-to-star": "Click to star this board.",
|
||||
"click-to-unstar": "Click to unstar this board.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Clipboard or drag & drop",
|
||||
"close": "Close",
|
||||
"close-board": "Close Board",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comments": "Comments",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
|
||||
"fullname": "Full Name",
|
||||
"header-logo-title": "Go back to your boards page.",
|
||||
"hide-system-messages": "Hide system messages",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Create Board",
|
||||
"home": "Home",
|
||||
"import": "Import",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Select Board",
|
||||
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
|
||||
"setWipLimitPopup-title": "Set WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Assign yourself to current card",
|
||||
"shortcut-autocomplete-emoji": "Autocomplete emoji",
|
||||
"shortcut-autocomplete-members": "Autocomplete members",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s moved to Archive",
|
||||
"activity-attached": "attached %s to %s",
|
||||
"activity-created": "created %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "created custom field %s",
|
||||
"activity-excluded": "excluded %s from %s",
|
||||
"activity-imported": "imported %s into %s from %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Add Card",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklists",
|
||||
"click-to-star": "Click to star this board.",
|
||||
"click-to-unstar": "Click to unstar this board.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Clipboard or drag & drop",
|
||||
"close": "Close",
|
||||
"close-board": "Close Board",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comments": "Comments",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
|
||||
"fullname": "Full Name",
|
||||
"header-logo-title": "Go back to your boards page.",
|
||||
"hide-system-messages": "Hide system messages",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Create Board",
|
||||
"home": "Home",
|
||||
"import": "Import",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Select Board",
|
||||
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
|
||||
"setWipLimitPopup-title": "Set WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Assign yourself to current card",
|
||||
"shortcut-autocomplete-emoji": "Autocomplete emoji",
|
||||
"shortcut-autocomplete-members": "Autocomplete members",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s е преместена в Архива",
|
||||
"activity-attached": "прикачи %s към %s",
|
||||
"activity-created": "създаде %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "създаде собствено поле %s",
|
||||
"activity-excluded": "изключи %s от %s",
|
||||
"activity-imported": "импортира %s в/във %s от %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Добави карта",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Списъци със задачи",
|
||||
"click-to-star": "Click to star this board.",
|
||||
"click-to-unstar": "Натиснете, за да премахнете това табло от любими.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Клипборда или с драг & дроп",
|
||||
"close": "Затвори",
|
||||
"close-board": "Затвори Таблото",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "бяло",
|
||||
"color-yellow": "жълто",
|
||||
"unset-color": "Премахни",
|
||||
"comments": "Comments",
|
||||
"comment": "Коментирай",
|
||||
"comment-placeholder": "Напиши коментар",
|
||||
"comment-only": "Само коментар",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
|
||||
"fullname": "Име",
|
||||
"header-logo-title": "Назад към страницата с Вашите табла.",
|
||||
"hide-system-messages": "Скриване на системните съобщения",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Създай Табло",
|
||||
"home": "Начало",
|
||||
"import": "Импорт",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Изберете табло",
|
||||
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
|
||||
"setWipLimitPopup-title": "Въведи WIP лимит",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Добави себе си към тази карта",
|
||||
"shortcut-autocomplete-emoji": "Autocomplete emoji",
|
||||
"shortcut-autocomplete-members": "Autocomplete members",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Задача",
|
||||
"create-task": "Добави задача",
|
||||
"ok": "Окей",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Събери",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s moved to Archive",
|
||||
"activity-attached": "%s liammet ouzh %s",
|
||||
"activity-created": "%s krouet",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "created custom field %s",
|
||||
"activity-excluded": "excluded %s from %s",
|
||||
"activity-imported": "%s enporzhiet eus %s da %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Add Card",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklists",
|
||||
"click-to-star": "Click to star this board.",
|
||||
"click-to-unstar": "Click to unstar this board.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Clipboard or drag & drop",
|
||||
"close": "Close",
|
||||
"close-board": "Close Board",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "white",
|
||||
"color-yellow": "melen",
|
||||
"unset-color": "Unset",
|
||||
"comments": "Comments",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
|
||||
"fullname": "Full Name",
|
||||
"header-logo-title": "Go back to your boards page.",
|
||||
"hide-system-messages": "Hide system messages",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Create Board",
|
||||
"home": "Home",
|
||||
"import": "Import",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Select Board",
|
||||
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
|
||||
"setWipLimitPopup-title": "Set WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Assign yourself to current card",
|
||||
"shortcut-autocomplete-emoji": "Autocomplete emoji",
|
||||
"shortcut-autocomplete-members": "Autocomplete members",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s mogut al Arxiu",
|
||||
"activity-attached": "ha adjuntat %s a %s",
|
||||
"activity-created": "ha creat %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "camp personalitzat creat %s",
|
||||
"activity-excluded": "ha exclòs %s de %s",
|
||||
"activity-imported": "important %s troba %s des de %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Afegeix Fitxa",
|
||||
"add-card-to-top-of-list": "Afegeix una fitxa al principi de la llista",
|
||||
"add-card-to-bottom-of-list": "Afegeix una fitxa al final de la llista",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Llistes de verificació",
|
||||
"click-to-star": "Fes clic per destacar aquest tauler.",
|
||||
"click-to-unstar": "Fes clic per deixar de destacar aquest tauler.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Portaretalls o estirar i amollar",
|
||||
"close": "Tanca",
|
||||
"close-board": "Tanca tauler",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "blanc",
|
||||
"color-yellow": "groc",
|
||||
"unset-color": "Desactivat",
|
||||
"comments": "Comments",
|
||||
"comment": "Comentari",
|
||||
"comment-placeholder": "Escriu un comentari",
|
||||
"comment-only": "Només comentaris",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "El filtre avançat permet escriure una cadena que contingui els operadors següents: == != <= >= && || ( ) S'utilitza un espai com a separador entre els operadors. Podeu filtrar tots els camps personalitzats escrivint els seus noms i valors. Per exemple: Camp1 == Valor1. Nota: si els camps o els valors contenen espais, cal que els encapsuleu en cometes simples. Per exemple: \"Camp 1\" == \"Valor 1\". Per ometre caràcters de control únics (' \\\\/), podeu utilitzar \\\\. Per exemple: Camp1 == I\\\\'m. També podeu combinar diverses condicions. Per exemple: F1 == V1 || F1 == V2. Normalment, tots els operadors s'interpreten d'esquerra a dreta. Podeu canviar l'ordre posant parèntesis. Per exemple: F1 == V1 && ( F2 == V2 || F2 == V3 ). També podeu cercar camps de text amb regex: F1 == /Tes.*/i",
|
||||
"fullname": "Nom complet",
|
||||
"header-logo-title": "Torna a la teva pàgina de taulers",
|
||||
"hide-system-messages": "Oculta missatges del sistema",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Crea tauler",
|
||||
"home": "Inici",
|
||||
"import": "importa",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Selecciona tauler",
|
||||
"set-wip-limit-value": "Limita el nombre màxim de tasques en aquesta llista",
|
||||
"setWipLimitPopup-title": "Configura el Límit de Treball en Progrés",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Assigna't la ftixa actual",
|
||||
"shortcut-autocomplete-emoji": "Emoji autocompletat",
|
||||
"shortcut-autocomplete-members": "Autocompleta membres",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "No podeu suprimir aquesta fitxa abans de suprimir per primera vegada la fitxa enllaçada que té",
|
||||
"delete-linked-cards-before-this-list": "No podeu suprimir aquesta llista abans de suprimir primer les fitxes enllaçades que apunten a fitxes d'aquesta llista",
|
||||
"hide-checked-items": "Amaga els elements marcats",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Tasca",
|
||||
"create-task": "Crea una tasca",
|
||||
"ok": "D'acord",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Creat a (el més nou primer)",
|
||||
"created-at-oldest-first": "Creat a (el més antic primer)",
|
||||
"links-heading": "Enllaços",
|
||||
"hide-system-messages-of-all-users": "Amaga els missatges del sistema de tots els usuaris",
|
||||
"now-system-messages-of-all-users-are-hidden": "Ara els missatges del sistema de tots els usuaris estan ocults",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Mou el carril",
|
||||
"moveSwimlanePopup-title": "Mou el carril",
|
||||
"custom-field-stringtemplate": "Plantilla de cadena",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Accions de checklist",
|
||||
"moveChecklist": "Mou el checklist",
|
||||
"moveChecklistPopup-title": "Mou el checklist",
|
||||
"newlineBecomesNewChecklistItem": "La nova línia es converteix en un nou element del checklist",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copia el checklist",
|
||||
"copyChecklistPopup-title": "Copia el checklist",
|
||||
"card-show-lists": "Llistes de mostres de fitxes",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Contraure",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s moved to Archive",
|
||||
"activity-attached": "attached %s to %s",
|
||||
"activity-created": "created %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "created custom field %s",
|
||||
"activity-excluded": "excluded %s from %s",
|
||||
"activity-imported": "imported %s into %s from %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Add Card",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklists",
|
||||
"click-to-star": "Click to star this board.",
|
||||
"click-to-unstar": "Click to unstar this board.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Clipboard or drag & drop",
|
||||
"close": "Close",
|
||||
"close-board": "Close Board",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comments": "Comments",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "El filtre avançat permet escriure una cadena que contingui els operadors següents: == != <= >= && || ( ) S'utilitza un espai com a separador entre els operadors. Podeu filtrar tots els camps personalitzats escrivint els seus noms i valors. Per exemple: Camp1 == Valor1. Nota: si els camps o els valors contenen espais, cal que els encapsuleu en cometes simples. Per exemple: \"Camp 1\" == \"Valor 1\". Per ometre caràcters de control únics (' \\\\/), podeu utilitzar \\\\. Per exemple: Camp1 == I\\\\'m. També podeu combinar diverses condicions. Per exemple: F1 == V1 || F1 == V2. Normalment, tots els operadors s'interpreten d'esquerra a dreta. Podeu canviar l'ordre posant parèntesis. Per exemple: F1 == V1 && ( F2 == V2 || F2 == V3 ). També podeu cercar camps de text amb regex: F1 == /Tes.*/i",
|
||||
"fullname": "Full Name",
|
||||
"header-logo-title": "Go back to your boards page.",
|
||||
"hide-system-messages": "Hide system messages",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Create Board",
|
||||
"home": "Home",
|
||||
"import": "Import",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Select Board",
|
||||
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
|
||||
"setWipLimitPopup-title": "Set WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Assign yourself to current card",
|
||||
"shortcut-autocomplete-emoji": "Autocomplete emoji",
|
||||
"shortcut-autocomplete-members": "Autocomplete members",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s moved to Archive",
|
||||
"activity-attached": "attached %s to %s",
|
||||
"activity-created": "created %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "created custom field %s",
|
||||
"activity-excluded": "excluded %s from %s",
|
||||
"activity-imported": "imported %s into %s from %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Add Card",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklists",
|
||||
"click-to-star": "Click to star this board.",
|
||||
"click-to-unstar": "Click to unstar this board.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Clipboard or drag & drop",
|
||||
"close": "Close",
|
||||
"close-board": "Close Board",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comments": "Comments",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "高级过滤器可以使用包含如下操作符的字符串进行过滤:== != <= >= && || ( ) 。操作符之间用空格隔开。输入字段名和数值就可以过滤所有自定义字段。例如:Field1 == Value1。注意如果字段名或数值包含空格,需要用单引号。例如: 'Field 1' == 'Value 1'。要跳过单个控制字符(' \\\\/),请使用 \\\\ 转义字符。例如: Field1 = I\\\\'m。支持组合使用多个条件,例如: F1 == V1 || F1 == V2。通常以从左到右的顺序进行判断。可以通过括号修改顺序,例如:F1 == V1 && ( F2 == V2 || F2 == V3 )。也支持使用正则表达式搜索文本字段。",
|
||||
"fullname": "Full Name",
|
||||
"header-logo-title": "Go back to your boards page.",
|
||||
"hide-system-messages": "Hide system messages",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Create Board",
|
||||
"home": "Home",
|
||||
"import": "Import",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Select Board",
|
||||
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
|
||||
"setWipLimitPopup-title": "Set WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Assign yourself to current card",
|
||||
"shortcut-autocomplete-emoji": "Autocomplete emoji",
|
||||
"shortcut-autocomplete-members": "Autocomplete members",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s bylo přesunuto do archivu",
|
||||
"activity-attached": "přiloženo %s k %s",
|
||||
"activity-created": "%s vytvořeno",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "vytvořeno vlastní pole %s",
|
||||
"activity-excluded": "%s vyjmuto z %s",
|
||||
"activity-imported": "importován %s do %s z %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Přidat kartu",
|
||||
"add-card-to-top-of-list": "Přidat kartu na začátek seznamu",
|
||||
"add-card-to-bottom-of-list": "Přidat kartu na konec seznamu",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklisty",
|
||||
"click-to-star": "Kliknutím přidat hvězdičku tomuto tablu.",
|
||||
"click-to-unstar": "Kliknutím odebrat hvězdičku tomuto tablu.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Schránka nebo potáhnout a pustit",
|
||||
"close": "Zavřít",
|
||||
"close-board": "Zavřít tablo",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "bílá",
|
||||
"color-yellow": "žlutá",
|
||||
"unset-color": "Nenastaveno",
|
||||
"comments": "Comments",
|
||||
"comment": "Komentář",
|
||||
"comment-placeholder": "Text komentáře",
|
||||
"comment-only": "Pouze komentáře",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Pokročilý filtr dovoluje zapsat řetězec následujících operátorů: == != <= >= && || () Operátory jsou odděleny mezerou. Můžete filtrovat všechny vlastní pole zadáním jejich názvů nebo hodnot. Například: Pole1 == Hodnota1. Poznámka: Pokud pole nebo hodnoty obsahují mezery, je potřeba je obalit v jednoduchých uvozovkách. Například: 'Pole 1' == 'Hodnota 1'. Pro ignorovaní kontrolních znaků (' \\\\/) je možné použít \\\\. Například Pole1 == I\\\\'m. Můžete také kombinovat více podmínek. Například P1 == H1 || P1 == H2. Obvykle jsou operátory interpretovány zleva doprava. Jejich pořadí můžete měnit pomocí závorek. Například: P1 == H1 && ( P2 == H2 || P2 == H3 )",
|
||||
"fullname": "Celé jméno",
|
||||
"header-logo-title": "Jit zpět na stránku s tably.",
|
||||
"hide-system-messages": "Skrýt systémové zprávy",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Vytvořit tablo",
|
||||
"home": "Domů",
|
||||
"import": "Import",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Vybrat tablo",
|
||||
"set-wip-limit-value": "Nastaví limit pro maximální počet úkolů ve sloupci.",
|
||||
"setWipLimitPopup-title": "Nastavit WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Přiřadit sebe k aktuální kartě",
|
||||
"shortcut-autocomplete-emoji": "Automatické dokončování emoji",
|
||||
"shortcut-autocomplete-members": "Automatický výběr uživatel",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "Tuto kratu nemůžete odstranit dokud nesmažete přiřazené karty",
|
||||
"delete-linked-cards-before-this-list": "Tento sloupec nemůžete smazat dokud nesmažete propojené karty, které jsou navázány na karty v tomto sloupci",
|
||||
"hide-checked-items": "Skrýt zvolené položky",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Úkol",
|
||||
"create-task": "Vytvořit úkol",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Vyvtořeno (Od nejnovějších)",
|
||||
"created-at-oldest-first": "Vytvořeno (Od nejstarších)",
|
||||
"links-heading": "Odkazy",
|
||||
"hide-system-messages-of-all-users": "Skrýt systémové zprávy všech uživatelů",
|
||||
"now-system-messages-of-all-users-are-hidden": "Systémové zprávy všech uživatelů jsou nyní skryté",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Přesunout dráhu",
|
||||
"moveSwimlanePopup-title": "Přesunout dráhu",
|
||||
"custom-field-stringtemplate": "Šablona řetězce",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Sbalit",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s bylo přesunuto do archivu",
|
||||
"activity-attached": "přiloženo %s k %s",
|
||||
"activity-created": "%s vytvořeno",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "vytvořeno vlastní pole %s",
|
||||
"activity-excluded": "%s vyjmuto z %s",
|
||||
"activity-imported": "importován %s do %s z %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Přidat kartu",
|
||||
"add-card-to-top-of-list": "Přidat kartu na začátek seznamu",
|
||||
"add-card-to-bottom-of-list": "Přidat kartu na konec seznamu",
|
||||
"setListWidthPopup-title": "Nastavit šířku seznamu",
|
||||
"set-list-width": "Nastavit šířku seznamu",
|
||||
"set-list-width-value": "Šířka seznamu (pixely)",
|
||||
"list-width-error-message": "Šířka seznamu musí být kladné celé číslo",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Nastavit výšku swimlane",
|
||||
"set-swimlane-height": "Nastavit výšku swimlane",
|
||||
"set-swimlane-height-value": "Výška swimlane (pixely)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklisty",
|
||||
"click-to-star": "Kliknutím přidat hvězdičku tomuto tablu.",
|
||||
"click-to-unstar": "Kliknutím odebrat hvězdičku tomuto tablu.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Schránka nebo potáhnout a pustit",
|
||||
"close": "Zavřít",
|
||||
"close-board": "Zavřít tablo",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "bílá",
|
||||
"color-yellow": "žlutá",
|
||||
"unset-color": "Nenastaveno",
|
||||
"comments": "Comments",
|
||||
"comment": "Komentář",
|
||||
"comment-placeholder": "Text komentáře",
|
||||
"comment-only": "Pouze komentáře",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Pokročilý filtr dovoluje zapsat řetězec následujících operátorů: == != <= >= && || () Operátory jsou odděleny mezerou. Můžete filtrovat všechny vlastní pole zadáním jejich názvů nebo hodnot. Například: Pole1 == Hodnota1. Poznámka: Pokud pole nebo hodnoty obsahují mezery, je potřeba je obalit v jednoduchých uvozovkách. Například: 'Pole 1' == 'Hodnota 1'. Pro ignorovaní kontrolních znaků (' \\\\/) je možné použít \\\\. Například Pole1 == I\\\\'m. Můžete také kombinovat více podmínek. Například P1 == H1 || P1 == H2. Obvykle jsou operátory interpretovány zleva doprava. Jejich pořadí můžete měnit pomocí závorek. Například: P1 == H1 && ( P2 == H2 || P2 == H3 )",
|
||||
"fullname": "Celé jméno",
|
||||
"header-logo-title": "Jit zpět na stránku s tably.",
|
||||
"hide-system-messages": "Skrýt systémové zprávy",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Vytvořit tablo",
|
||||
"home": "Domů",
|
||||
"import": "Import",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Vybrat tablo",
|
||||
"set-wip-limit-value": "Nastaví limit pro maximální počet úkolů ve sloupci.",
|
||||
"setWipLimitPopup-title": "Nastavit WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Přiřadit sebe k aktuální kartě",
|
||||
"shortcut-autocomplete-emoji": "Automatické dokončování emoji",
|
||||
"shortcut-autocomplete-members": "Automatický výběr uživatel",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "Tuto kratu nemůžete odstranit dokud nesmažete přiřazené karty",
|
||||
"delete-linked-cards-before-this-list": "Tento sloupec nemůžete smazat dokud nesmažete propojené karty, které jsou navázány na karty v tomto sloupci",
|
||||
"hide-checked-items": "Skrýt zvolené položky",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Úkol",
|
||||
"create-task": "Vytvořit úkol",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Vytvořeno (Od nejnovějších)",
|
||||
"created-at-oldest-first": "Vytvořeno (Od nejstarších)",
|
||||
"links-heading": "Odkazy",
|
||||
"hide-system-messages-of-all-users": "Skrýt systémové zprávy všech uživatelů",
|
||||
"now-system-messages-of-all-users-are-hidden": "Systémové zprávy všech uživatelů jsou nyní skryté",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Přesunout dráhu",
|
||||
"moveSwimlanePopup-title": "Přesunout dráhu",
|
||||
"custom-field-stringtemplate": "Šablona řetězce",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Překlad",
|
||||
"text": "Text",
|
||||
"translation-text": "Text překladu",
|
||||
"show-at-minicard": "Zobrazit na minikartě",
|
||||
"show-checklist-at-minicard": "Show checklist at minicard",
|
||||
"show-subtasks-field": "Show subtasks field",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Sbalit",
|
||||
"uncollapse": "Rozbalit"
|
||||
"uncollapse": "Rozbalit",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s moved to Archive",
|
||||
"activity-attached": "attached %s to %s",
|
||||
"activity-created": "created %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "created custom field %s",
|
||||
"activity-excluded": "excluded %s from %s",
|
||||
"activity-imported": "imported %s into %s from %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Add Card",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklists",
|
||||
"click-to-star": "Click to star this board.",
|
||||
"click-to-unstar": "Click to unstar this board.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Clipboard or drag & drop",
|
||||
"close": "Close",
|
||||
"close-board": "Close Board",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comments": "Comments",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
|
||||
"fullname": "Full Name",
|
||||
"header-logo-title": "Go back to your boards page.",
|
||||
"hide-system-messages": "Hide system messages",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Create Board",
|
||||
"home": "Home",
|
||||
"import": "Import",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Select Board",
|
||||
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
|
||||
"setWipLimitPopup-title": "Set WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Assign yourself to current card",
|
||||
"shortcut-autocomplete-emoji": "Autocomplete emoji",
|
||||
"shortcut-autocomplete-members": "Autocomplete members",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s moved to Archive",
|
||||
"activity-attached": "attached %s to %s",
|
||||
"activity-created": "created %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "created custom field %s",
|
||||
"activity-excluded": "excluded %s from %s",
|
||||
"activity-imported": "imported %s into %s from %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Add Card",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklists",
|
||||
"click-to-star": "Click to star this board.",
|
||||
"click-to-unstar": "Click to unstar this board.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Clipboard or drag & drop",
|
||||
"close": "Close",
|
||||
"close-board": "Close Board",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "white",
|
||||
"color-yellow": "yellow",
|
||||
"unset-color": "Unset",
|
||||
"comments": "Comments",
|
||||
"comment": "Comment",
|
||||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
|
||||
"fullname": "Full Name",
|
||||
"header-logo-title": "Go back to your boards page.",
|
||||
"hide-system-messages": "Hide system messages",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Create Board",
|
||||
"home": "Home",
|
||||
"import": "Import",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Select Board",
|
||||
"set-wip-limit-value": "Set a limit for the maximum number of tasks in this list",
|
||||
"setWipLimitPopup-title": "Set WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Assign yourself to current card",
|
||||
"shortcut-autocomplete-emoji": "Autocomplete emoji",
|
||||
"shortcut-autocomplete-members": "Autocomplete members",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Collapse",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s flyttet til Arkiv",
|
||||
"activity-attached": "vedhæftede %s til %s",
|
||||
"activity-created": "oprettede %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "oprettede brugerdefineret felt %s",
|
||||
"activity-excluded": "ekskluderet %s fra %s",
|
||||
"activity-imported": "importerede %s ind i %s fra %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Tilføj kort",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Angiv bredde på lister",
|
||||
"set-list-width": "Angiv bredde på lister",
|
||||
"set-list-width-value": "Bredde på lister (pixels)",
|
||||
"list-width-error-message": "Listens bredde skal være et positivt heltal",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Angiv højde på svømmebane",
|
||||
"set-swimlane-height": "Angiv højde på svømmebane",
|
||||
"set-swimlane-height-value": "Svømmebanes bredde (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Tjeklister",
|
||||
"click-to-star": "Klik for at tilføje stjerne til tavlen.",
|
||||
"click-to-unstar": "Klik for at fjerne stjerne fra tavlen.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Udklipsholder eller træk-og-slip",
|
||||
"close": "Luk",
|
||||
"close-board": "Luk tavle",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "hvid",
|
||||
"color-yellow": "gul",
|
||||
"unset-color": "Nulstil",
|
||||
"comments": "Comments",
|
||||
"comment": "Kommentér",
|
||||
"comment-placeholder": "Skriv kommentar",
|
||||
"comment-only": "Kun kommentarer",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Avanceret filter gør det muligt at skrive en tekststreng indeholdende følgende operatører: == != <= >= && || ( ) Mellemrum anvendes som adskillelsestegn mellem operatørerne. Du kan filtrere alle Brugerdefinerede felter ved at taste deres navne og værdier. Som eksempel: Felt1 == Værdi1. Bemærk: Hvis felter eller værdier indeholder mellemrum, så skal du indkapsle dem i enkeltcitationstegn. Som eksempel: 'Felt 1' == 'Værdi1'. For at springe over enkelte kontroltegn (' \\\\/), så kan \\\\ benyttes. Som eksempel: Felt1 == Så\\\\'n. Du kan også kombinere flere betingelser. Som eksempel: F1 == V1 || F1 == V2. Normalt vil alle operatører blive fortolket fra venstre mod højre. Du kan ændre rækkefølgen ved brug af parenteser. Som eksempel: F1 == V1 && (F2 == V2 || F2 == V3). Du kan også søge i tekstfelter med brug af regulære udtryk: F1 == /Tes.*/i",
|
||||
"fullname": "Fuldt navn",
|
||||
"header-logo-title": "Gå tilbage til siden med dine tavler",
|
||||
"hide-system-messages": "Skjul systembeskeder",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Opret tavle",
|
||||
"home": "Hjem",
|
||||
"import": "Importér",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Select Board",
|
||||
"set-wip-limit-value": "Angiv en grænse for det maksimale antal opgaver i denne liste",
|
||||
"setWipLimitPopup-title": "Angiv WIP-begrænsning",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Tilknyt dig selv til nuværende kort?",
|
||||
"shortcut-autocomplete-emoji": "Auto-fuldfør emoji",
|
||||
"shortcut-autocomplete-members": "Auto-fuldfør medlemmer",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "Du kan ikke slette dette kort før der slettes sammenkædede kort som har",
|
||||
"delete-linked-cards-before-this-list": "Du kan ikke slette denne liste før der slettes sammenkædede kort, der peger til kort i denne liste",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Oversæt",
|
||||
"text": "Tekst",
|
||||
"translation-text": "Oversættelsestekst",
|
||||
"show-at-minicard": "Vis et minikort",
|
||||
"show-checklist-at-minicard": "Vis tjekliste på minikort",
|
||||
"show-subtasks-field": "Vis felt med underopgaver",
|
||||
"convert-to-markdown": "Konvertér til markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Sammenfold",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "hat %s ins Archiv verschoben",
|
||||
"activity-attached": "hat %s an %s angehängt",
|
||||
"activity-created": "hat %s erstellt",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "hat das benutzerdefinierte Feld %s erstellt",
|
||||
"activity-excluded": "hat %s von %s ausgeschlossen",
|
||||
"activity-imported": "hat %s in %s von %s importiert",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Karte hinzufügen",
|
||||
"add-card-to-top-of-list": "Karte am Anfang der Liste hinzufügen",
|
||||
"add-card-to-bottom-of-list": "Karte am Ende der Liste hinzufügen",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklisten",
|
||||
"click-to-star": "Klicken Sie, um das Board mit einem Stern zu markieren.",
|
||||
"click-to-unstar": "Klicken Sie, um den Stern vom Board zu entfernen.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Zwischenablage oder Drag & Drop",
|
||||
"close": "Schließen",
|
||||
"close-board": "Board schließen",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "Weiß",
|
||||
"color-yellow": "gelb",
|
||||
"unset-color": "Nicht festgelegt",
|
||||
"comments": "Comments",
|
||||
"comment": "Kommentar",
|
||||
"comment-placeholder": "Kommentar schreiben",
|
||||
"comment-only": "Nur Kommentare",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Der erweiterte Filter erlaubt die Eingabe von Zeichenfolgen, die folgende Operatoren enthalten: == != <= >= && || ( ). Ein Leerzeichen wird als Trennzeichen zwischen den Operatoren verwendet. Sie können nach allen benutzerdefinierten Feldern filtern, indem Sie deren Namen und Werte eingeben. Zum Beispiel: Feld1 == Wert1. Hinweis: Wenn Felder oder Werte Leerzeichen enthalten, müssen Sie sie in einfache Anführungszeichen setzen. Zum Beispiel: 'Feld 1' == 'Wert 1'. Um einzelne Steuerzeichen (' \\\\/) zu überspringen, können Sie \\\\ verwenden. Zum Beispiel: Feld1 == Ich bin\\\\'s. Sie können außerdem mehrere Bedingungen kombinieren. Zum Beispiel: F1 == W1 || F1 == W2. Normalerweise werden alle Operatoren von links nach rechts interpretiert. Sie können die Reihenfolge ändern, indem Sie Klammern setzen. Zum Beispiel: F1 == W1 && ( F2 == W2 || F2 == W3 ). Sie können Textfelder auch mithilfe regulärer Ausdrücke durchsuchen: F1 == /Tes.*/i",
|
||||
"fullname": "Vollständiger Name",
|
||||
"header-logo-title": "Zurück zur Board Seite.",
|
||||
"hide-system-messages": "Systemmeldungen ausblenden",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Board erstellen",
|
||||
"home": "Home",
|
||||
"import": "Importieren",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Board auswählen",
|
||||
"set-wip-limit-value": "Setzen Sie ein Limit für die maximale Anzahl von Aufgaben in dieser Liste",
|
||||
"setWipLimitPopup-title": "WIP-Limit setzen",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Fügen Sie sich zur aktuellen Karte hinzu",
|
||||
"shortcut-autocomplete-emoji": "Emojis vervollständigen",
|
||||
"shortcut-autocomplete-members": "Mitglieder vervollständigen",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "Sie können diese Karte nicht löschen, bevor verbundene Karten nicht gelöscht wurden.",
|
||||
"delete-linked-cards-before-this-list": "Sie können diese Liste erst löschen, wenn Sie alle Karten gelöscht haben, die auf Karten in dieser Liste verweisen.",
|
||||
"hide-checked-items": "Erledigte ausblenden",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Aufgabe",
|
||||
"create-task": "Aufgabe erstellen",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Erstelldatum (neueste zuerst)",
|
||||
"created-at-oldest-first": "Erstelldatum (älteste zuerst)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Alle System-Nachrichten aller Nutzer verbergen",
|
||||
"now-system-messages-of-all-users-are-hidden": "Alle System-Nachrichten aller Nutzer sind nun verborgen",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Swimlane verschieben",
|
||||
"moveSwimlanePopup-title": "Swimlane verschieben",
|
||||
"custom-field-stringtemplate": "String-Vorlage",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklistenaktionen",
|
||||
"moveChecklist": "Checkliste verschieben",
|
||||
"moveChecklistPopup-title": "Checkliste verschieben",
|
||||
"newlineBecomesNewChecklistItem": "Neue Zeile wird neuer Checklisteneintrag",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Einklappen",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "hat %s ins Archiv verschoben",
|
||||
"activity-attached": "hat %s an %s angehängt",
|
||||
"activity-created": "hat %s erstellt",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "hat das benutzerdefinierte Feld %s erstellt",
|
||||
"activity-excluded": "hat %s von %s ausgeschlossen",
|
||||
"activity-imported": "hat %s in %s von %s importiert",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Karte hinzufügen",
|
||||
"add-card-to-top-of-list": "Karte am Anfang der Liste hinzufügen",
|
||||
"add-card-to-bottom-of-list": "Karte am Ende der Liste hinzufügen",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklisten",
|
||||
"click-to-star": "Klicken Sie, um das Board mit einem Stern zu markieren.",
|
||||
"click-to-unstar": "Klicken Sie, um den Stern vom Board zu entfernen.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Zwischenablage oder Drag & Drop",
|
||||
"close": "Schliessen",
|
||||
"close-board": "Board schliessen",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "Weiss",
|
||||
"color-yellow": "gelb",
|
||||
"unset-color": "Nicht festgelegt",
|
||||
"comments": "Comments",
|
||||
"comment": "Kommentar speichern",
|
||||
"comment-placeholder": "Kommentar schreiben",
|
||||
"comment-only": "Nur Kommentare",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Der erweiterte Filter erlaubt die Eingabe von Zeichenfolgen, die folgende Operatoren enthalten: == != <= >= && || ( ). Ein Leerzeichen wird als Trennzeichen zwischen den Operatoren verwendet. Sie können nach allen benutzerdefinierten Feldern filtern, indem Sie deren Namen und Werte eingeben. Zum Beispiel: Feld1 == Wert1. Hinweis: Wenn Felder oder Werte Leerzeichen enthalten, müssen Sie sie in einfache Anführungszeichen setzen. Zum Beispiel: 'Feld 1' == 'Wert 1'. Um einzelne Steuerzeichen (' \\\\/) zu überspringen, können Sie \\\\ verwenden. Zum Beispiel: Feld1 == Ich bin\\\\'s. Sie können ausserdem mehrere Bedingungen kombinieren. Zum Beispiel: F1 == W1 || F1 == W2. Normalerweise werden alle Operatoren von links nach rechts interpretiert. Sie können die Reihenfolge ändern, indem Sie Klammern setzen. Zum Beispiel: F1 == W1 && ( F2 == W2 || F2 == W3 ). Sie können Textfelder auch mithilfe regulärer Ausdrücke durchsuchen: F1 == /Tes.*/i",
|
||||
"fullname": "Vollständiger Name",
|
||||
"header-logo-title": "Zurück zur Board Seite.",
|
||||
"hide-system-messages": "Systemmeldungen ausblenden",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Board erstellen",
|
||||
"home": "Home",
|
||||
"import": "Importieren",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Board auswählen",
|
||||
"set-wip-limit-value": "Setzen Sie ein Limit für die maximale Anzahl von Aufgaben in dieser Liste",
|
||||
"setWipLimitPopup-title": "WIP-Limit setzen",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Fügen Sie sich zur aktuellen Karte hinzu",
|
||||
"shortcut-autocomplete-emoji": "Emojis vervollständigen",
|
||||
"shortcut-autocomplete-members": "Mitglieder vervollständigen",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "Sie können diese Karte nicht löschen, bevor verbundene Karten nicht gelöscht wurden.",
|
||||
"delete-linked-cards-before-this-list": "Sie können diese Liste erst löschen, wenn Sie alle Karten gelöscht haben, die auf Karten in dieser Liste verweisen.",
|
||||
"hide-checked-items": "Erledigte ausblenden",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Aufgabe",
|
||||
"create-task": "Aufgabe erstellen",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Erstelldatum (neueste zuerst)",
|
||||
"created-at-oldest-first": "Erstelldatum (älteste zuerst)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Alle System-Nachrichten aller Nutzer verbergen",
|
||||
"now-system-messages-of-all-users-are-hidden": "Alle System-Nachrichten aller Nutzer sind nun verborgen",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Swimlane verschieben",
|
||||
"moveSwimlanePopup-title": "Swimlane verschieben",
|
||||
"custom-field-stringtemplate": "String-Vorlage",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Listenaktionen",
|
||||
"moveChecklist": "Checkliste bewegen",
|
||||
"moveChecklistPopup-title": "Checkliste bewegen",
|
||||
"newlineBecomesNewChecklistItem": "Neue Zeile wird neuer Checklisteneintrag",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Checkliste kopieren",
|
||||
"copyChecklistPopup-title": "Checkliste kopieren",
|
||||
"card-show-lists": "Listen anzeigen",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Einklappen",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -12,7 +12,7 @@
|
||||
"act-addChecklistItem": "hat Checklistenelement __checklistItem__ zu Checkliste __checkList__ auf der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt",
|
||||
"act-removeChecklist": "hat Checkliste __checklist__ von Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt",
|
||||
"act-removeChecklistItem": "hat Checklistenposition __checklistItem__ von Checkliste __checkList__ auf der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt",
|
||||
"act-checkedItem": "hat __checklistItem__ der Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ abgehakt",
|
||||
"act-checkedItem": "hat __checklistItem__ der Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ erledigt",
|
||||
"act-uncheckedItem": "hat Haken von __checklistItem__ der Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt",
|
||||
"act-completeChecklist": "hat Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ vervollständigt",
|
||||
"act-uncompleteChecklist": "hat Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ unvervollständigt",
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "hat %s ins Archiv verschoben",
|
||||
"activity-attached": "hat %s an %s angehängt",
|
||||
"activity-created": "hat %s erstellt",
|
||||
"activity-changedListTitle": "Die Liste wurde umbenannt zu",
|
||||
"activity-customfield-created": "hat das benutzerdefinierte Feld %s erstellt",
|
||||
"activity-excluded": "hat %s von %s ausgeschlossen",
|
||||
"activity-imported": "hat %s in %s von %s importiert",
|
||||
@@ -60,16 +61,16 @@
|
||||
"activity-sent": "hat %s an %s gesendet",
|
||||
"activity-unjoined": "hat %s verlassen",
|
||||
"activity-subtask-added": "Teilaufgabe zu %s hinzugefügt",
|
||||
"activity-checked-item": "markierte %s in Checkliste %s von %s",
|
||||
"activity-checked-item": "erledigt %s in Checkliste %s von %s",
|
||||
"activity-unchecked-item": "hat %s in Checkliste %s von %s abgewählt",
|
||||
"activity-checklist-added": "hat eine Checkliste zu %s hinzugefügt",
|
||||
"activity-checklist-removed": "entfernte eine Checkliste von %s",
|
||||
"activity-checklist-completed": "Abgeschlossene Checkliste",
|
||||
"activity-checklist-uncompleted": "unvervollständigte die Checkliste %s von %s",
|
||||
"activity-checklist-item-added": "hat ein Checklistenelement zu '%s' in %s hinzugefügt",
|
||||
"activity-checklist-item-removed": "hat ein Checklistenelement von '%s' in %s entfernt",
|
||||
"activity-checklist-item-added": "hat einen Checklisteneintrag zu '%s' in %s hinzugefügt",
|
||||
"activity-checklist-item-removed": "hat einen Checklisteneintrag von '%s' in %s entfernt",
|
||||
"add": "Hinzufügen",
|
||||
"activity-checked-item-card": "markiere %s in Checkliste %s",
|
||||
"activity-checked-item-card": "erledigt %s in Checkliste %s",
|
||||
"activity-unchecked-item-card": "hat %s in Checkliste %s abgewählt",
|
||||
"activity-checklist-completed-card": "hat Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ vervollständigt",
|
||||
"activity-checklist-uncompleted-card": "unvervollständigte die Checkliste %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Karte hinzufügen",
|
||||
"add-card-to-top-of-list": "Karte am Anfang der Liste hinzufügen",
|
||||
"add-card-to-bottom-of-list": "Karte am Ende der Liste hinzufügen",
|
||||
"setListWidthPopup-title": "Stelle die Breite der Liste ein",
|
||||
"set-list-width": "Stelle die Breite der Liste ein",
|
||||
"set-list-width-value": "Breite der Liste (Pixel)",
|
||||
"list-width-error-message": "Die Breite der Liste muss eine positive ganze Zahl sein",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Stelle die Höhe der Swimlane ein",
|
||||
"set-swimlane-height": "Stelle die Höhe der Swimlane ein",
|
||||
"set-swimlane-height-value": "Höhe der Swimlane (Pixel)",
|
||||
@@ -96,9 +99,9 @@
|
||||
"add-swimlane": "Swimlane hinzufügen",
|
||||
"add-subtask": "Teilaufgabe hinzufügen",
|
||||
"add-checklist": "Checkliste hinzufügen",
|
||||
"add-checklist-item": "Element zu Checkliste hinzufügen",
|
||||
"close-add-checklist-item": "Schließe Element zu Checkliste hinzufügen",
|
||||
"close-edit-checklist-item": "Schließe Bearbeitung des Checklisten Elements",
|
||||
"add-checklist-item": "Einen Eintrag zur Checkliste hinzufügen",
|
||||
"close-add-checklist-item": "Schließe Einen Eintrag zur Checkliste hinzufügen",
|
||||
"close-edit-checklist-item": "Schließe Bearbeitung eines Checklisteneintrags",
|
||||
"convertChecklistItemToCardPopup-title": "Zu Karte umwandeln",
|
||||
"add-cover": "Cover Bild zu Minikarte hinzufügen",
|
||||
"add-label": "Label hinzufügen",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklisten",
|
||||
"click-to-star": "Klicken Sie, um das Board mit einem Stern zu markieren.",
|
||||
"click-to-unstar": "Klicken Sie, um den Stern vom Board zu entfernen.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Zwischenablage oder Drag & Drop",
|
||||
"close": "Schließen",
|
||||
"close-board": "Board schließen",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "Weiß",
|
||||
"color-yellow": "gelb",
|
||||
"unset-color": "Nicht festgelegt",
|
||||
"comments": "Kommentare",
|
||||
"comment": "Kommentar speichern",
|
||||
"comment-placeholder": "Kommentar schreiben",
|
||||
"comment-only": "Nur Kommentare",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Der erweiterte Filter erlaubt die Eingabe von Zeichenfolgen, die folgende Operatoren enthalten: == != <= >= && || ( ). Ein Leerzeichen wird als Trennzeichen zwischen den Operatoren verwendet. Sie können nach allen benutzerdefinierten Feldern filtern, indem Sie deren Namen und Werte eingeben. Zum Beispiel: Feld1 == Wert1. Hinweis: Wenn Felder oder Werte Leerzeichen enthalten, müssen Sie sie in einfache Anführungszeichen setzen. Zum Beispiel: 'Feld 1' == 'Wert 1'. Um einzelne Steuerzeichen (' \\\\/) zu überspringen, können Sie \\\\ verwenden. Zum Beispiel: Feld1 == Ich bin\\\\'s. Sie können außerdem mehrere Bedingungen kombinieren. Zum Beispiel: F1 == W1 || F1 == W2. Normalerweise werden alle Operatoren von links nach rechts interpretiert. Sie können die Reihenfolge ändern, indem Sie Klammern setzen. Zum Beispiel: F1 == W1 && ( F2 == W2 || F2 == W3 ). Sie können Textfelder auch mithilfe regulärer Ausdrücke durchsuchen: F1 == /Tes.*/i",
|
||||
"fullname": "Vollständiger Name",
|
||||
"header-logo-title": "Zurück zur Board Seite.",
|
||||
"hide-system-messages": "Systemmeldungen ausblenden",
|
||||
"show-activities": "Aktivitäten anzeigen",
|
||||
"headerBarCreateBoardPopup-title": "Board erstellen",
|
||||
"home": "Home",
|
||||
"import": "Importieren",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Board auswählen",
|
||||
"set-wip-limit-value": "Setzen Sie ein Limit für die maximale Anzahl von Aufgaben in dieser Liste",
|
||||
"setWipLimitPopup-title": "WIP-Limit setzen",
|
||||
"shortcut-add-self": "Füge dich selbst zur Karte hinzu",
|
||||
"shortcut-assign-self": "Fügen Sie sich zur aktuellen Karte hinzu",
|
||||
"shortcut-autocomplete-emoji": "Emojis vervollständigen",
|
||||
"shortcut-autocomplete-members": "Mitglieder vervollständigen",
|
||||
@@ -794,10 +802,10 @@
|
||||
"r-when-the-checklist": "Wenn die Checkliste",
|
||||
"r-completed": "abgeschlossen",
|
||||
"r-made-incomplete": "unvollständig gemacht",
|
||||
"r-when-a-item": "Wenn eine Checklistenposition",
|
||||
"r-when-the-item": "Wenn der Checklisten Eintrag",
|
||||
"r-checked": "markiert wird",
|
||||
"r-unchecked": "abgewählt wird",
|
||||
"r-when-a-item": "Wenn ein Checklisteneintrag wird",
|
||||
"r-when-the-item": "Wenn der Checklisteneintrag",
|
||||
"r-checked": "erledigt",
|
||||
"r-unchecked": "abgewählt",
|
||||
"r-move-card-to": "Verschiebe Karte an",
|
||||
"r-top-of": "Anfang von",
|
||||
"r-bottom-of": "Ende von",
|
||||
@@ -814,7 +822,7 @@
|
||||
"r-checklist": "Checkliste",
|
||||
"r-check-all": "Alle markieren",
|
||||
"r-uncheck-all": "Alle abwählen",
|
||||
"r-items-check": "Elemente der Checkliste",
|
||||
"r-items-check": "Einträge der Checkliste",
|
||||
"r-check": "Markieren",
|
||||
"r-uncheck": "Abwählen",
|
||||
"r-item": "Element",
|
||||
@@ -955,7 +963,8 @@
|
||||
"archived": "Archiviert",
|
||||
"delete-linked-card-before-this-card": "Sie können diese Karte nicht löschen, bevor verbundene Karten nicht gelöscht wurden.",
|
||||
"delete-linked-cards-before-this-list": "Sie können diese Liste erst löschen, wenn Sie alle Karten gelöscht haben, die auf Karten in dieser Liste verweisen.",
|
||||
"hide-checked-items": "Erledigte ausblenden",
|
||||
"hide-checked-items": "Erledigte Einträge ausblenden",
|
||||
"hide-finished-checklist": "Abgeschlossene Checkliste ausblenden",
|
||||
"task": "Aufgabe",
|
||||
"create-task": "Aufgabe erstellen",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Erstelldatum (neueste zuerst)",
|
||||
"created-at-oldest-first": "Erstelldatum (älteste zuerst)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Alle System-Nachrichten aller Nutzer verbergen",
|
||||
"now-system-messages-of-all-users-are-hidden": "Alle System-Nachrichten aller Nutzer sind nun verborgen",
|
||||
"hide-activities-of-all-boards": "Zeige die Board Aktivitäten nicht auf allen Boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Alle Aktivitäten von allen Boards sind nun verborgen",
|
||||
"move-swimlane": "Swimlane verschieben",
|
||||
"moveSwimlanePopup-title": "Swimlane verschieben",
|
||||
"custom-field-stringtemplate": "String-Vorlage",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklistenaktionen",
|
||||
"moveChecklist": "Checkliste verschieben",
|
||||
"moveChecklistPopup-title": "Checkliste verschieben",
|
||||
"newlineBecomesNewChecklistItem": "Neue Zeile wird neuer Checklisteneintrag",
|
||||
"newlineBecomesNewChecklistItem": "Jede Textzeile wird in einen Checklisteneintrag umgewandelt",
|
||||
"newLineNewItem": "Eine Textzeile = ein Checklisteneintrag",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Jede Textzeile wird in einen Checklisteneintrag umgewandelt, ursprüngliche Reihenfolge",
|
||||
"originOrder": "ursprüngliche Reihenfolge",
|
||||
"copyChecklist": "Checkliste kopieren",
|
||||
"copyChecklistPopup-title": "Checkliste kopieren",
|
||||
"card-show-lists": "Listen anzeigen",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Übersetzung",
|
||||
"text": "Text",
|
||||
"translation-text": "Übersetzungstext",
|
||||
"show-at-minicard": "Zeige auf Minikarte",
|
||||
"show-checklist-at-minicard": "Checkliste auf Minikarte anzeigen",
|
||||
"show-subtasks-field": "Teilaufgaben Feld anzeigen",
|
||||
"convert-to-markdown": "Als Markdown konvertieren",
|
||||
"import-board-zip": "Erstelle .zip Datei, die Board JSON Dateien und Board Unterverzeichnisse mit Boardname inklusive Anhängen enthält",
|
||||
"collapse": "Einklappen",
|
||||
"uncollapse": "Aufklappen"
|
||||
"uncollapse": "Aufklappen",
|
||||
"hideCheckedChecklistItems": "Erledigte Checklisteneinträge ausblenden",
|
||||
"hideAllChecklistItems": "Verberge alle Checklisteneinträge",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "hat %s ins Archiv verschoben",
|
||||
"activity-attached": "hat %s an %s angehängt",
|
||||
"activity-created": "hat %s erstellt",
|
||||
"activity-changedListTitle": "Liste umbenannt zu %s",
|
||||
"activity-customfield-created": "hat das benutzerdefinierte Feld %s erstellt",
|
||||
"activity-excluded": "hat %s von %s ausgeschlossen",
|
||||
"activity-imported": "hat %s in %s von %s importiert",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Karte hinzufügen",
|
||||
"add-card-to-top-of-list": "Karte am Anfang der Liste hinzufügen",
|
||||
"add-card-to-bottom-of-list": "Karte am Ende der Liste hinzufügen",
|
||||
"setListWidthPopup-title": "Stelle die Breite der Liste ein",
|
||||
"set-list-width": "Stelle die Breite der Liste ein",
|
||||
"set-list-width-value": "Breite der Liste (Pixel)",
|
||||
"list-width-error-message": "Die Breite der Liste muss eine positive ganze Zahl sein",
|
||||
"setListWidthPopup-title": "Setze Breite",
|
||||
"set-list-width": "Setze Breite",
|
||||
"set-list-width-value": "Setze min & max Breite (Pixels)",
|
||||
"list-width-error-message": "Breite der Liste muss eine Ganzzahl größer als 100 sein",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Stelle die Höhe der Swimlane ein",
|
||||
"set-swimlane-height": "Stelle die Höhe der Swimlane ein",
|
||||
"set-swimlane-height-value": "Höhe der Swimlane (Pixel)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Checklisten",
|
||||
"click-to-star": "Klicken Sie, um das Board mit einem Stern zu markieren.",
|
||||
"click-to-unstar": "Klicken Sie, um den Stern vom Board zu entfernen.",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Zwischenablage oder Drag & Drop",
|
||||
"close": "Schließen",
|
||||
"close-board": "Board schließen",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "Weiß",
|
||||
"color-yellow": "gelb",
|
||||
"unset-color": "Nicht festgelegt",
|
||||
"comments": "Kommentare",
|
||||
"comment": "Kommentar speichern",
|
||||
"comment-placeholder": "Kommentar schreiben",
|
||||
"comment-only": "Nur Kommentare",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Der erweiterte Filter erlaubt die Eingabe von Zeichenfolgen, die folgende Operatoren enthalten: == != <= >= && || ( ). Ein Leerzeichen wird als Trennzeichen zwischen den Operatoren verwendet. Sie können nach allen benutzerdefinierten Feldern filtern, indem Sie deren Namen und Werte eingeben. Zum Beispiel: Feld1 == Wert1. Hinweis: Wenn Felder oder Werte Leerzeichen enthalten, müssen Sie sie in einfache Anführungszeichen setzen. Zum Beispiel: 'Feld 1' == 'Wert 1'. Um einzelne Steuerzeichen (' \\\\/) zu überspringen, können Sie \\\\ verwenden. Zum Beispiel: Feld1 == Ich bin\\\\'s. Sie können außerdem mehrere Bedingungen kombinieren. Zum Beispiel: F1 == W1 || F1 == W2. Normalerweise werden alle Operatoren von links nach rechts interpretiert. Sie können die Reihenfolge ändern, indem Sie Klammern setzen. Zum Beispiel: F1 == W1 && ( F2 == W2 || F2 == W3 ). Sie können Textfelder auch mithilfe regulärer Ausdrücke durchsuchen: F1 == /Tes.*/i",
|
||||
"fullname": "Vollständiger Name",
|
||||
"header-logo-title": "Zurück zur Board Seite.",
|
||||
"hide-system-messages": "Systemmeldungen ausblenden",
|
||||
"show-activities": "Aktivitäten anzeigen",
|
||||
"headerBarCreateBoardPopup-title": "Board erstellen",
|
||||
"home": "Home",
|
||||
"import": "Importieren",
|
||||
@@ -572,13 +579,14 @@
|
||||
"select-board": "Board auswählen",
|
||||
"set-wip-limit-value": "Setzen Sie ein Limit für die maximale Anzahl von Aufgaben in dieser Liste",
|
||||
"setWipLimitPopup-title": "WIP-Limit setzen",
|
||||
"shortcut-add-self": "Füge dich selbst zur Karte hinzu",
|
||||
"shortcut-assign-self": "Fügen Sie sich zur aktuellen Karte hinzu",
|
||||
"shortcut-autocomplete-emoji": "Emojis vervollständigen",
|
||||
"shortcut-autocomplete-members": "Mitglieder vervollständigen",
|
||||
"shortcut-clear-filters": "Alle Filter entfernen",
|
||||
"shortcut-close-dialog": "Dialog schließen",
|
||||
"shortcut-filter-my-cards": "Meine Karten filtern",
|
||||
"shortcut-filter-my-assigned-cards": "Filter my assigned cards",
|
||||
"shortcut-filter-my-assigned-cards": "Meine zugewiesenen Karten filtern",
|
||||
"shortcut-show-shortcuts": "Liste der Tastaturkürzel anzeigen",
|
||||
"shortcut-toggle-filterbar": "Filter-Seitenleiste ein-/ausblenden",
|
||||
"shortcut-toggle-searchbar": "Such-Seitenleiste ein-/ausblenden",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "Sie können diese Karte nicht löschen, bevor verbundene Karten nicht gelöscht wurden.",
|
||||
"delete-linked-cards-before-this-list": "Sie können diese Liste erst löschen, wenn Sie alle Karten gelöscht haben, die auf Karten in dieser Liste verweisen.",
|
||||
"hide-checked-items": "Erledigte ausblenden",
|
||||
"hide-finished-checklist": "Abgeschlossene Checkliste ausblenden",
|
||||
"task": "Aufgabe",
|
||||
"create-task": "Aufgabe erstellen",
|
||||
"ok": "OK",
|
||||
@@ -963,7 +972,7 @@
|
||||
"teams": "Teams",
|
||||
"displayName": "Anzeigename",
|
||||
"shortName": "Kurzname",
|
||||
"autoAddUsersWithDomainName": "Automatically add users with the domain name",
|
||||
"autoAddUsersWithDomainName": "Automatisch Benutzer über den Domainnamen hinzufügen",
|
||||
"website": "Webseite",
|
||||
"person": "Person",
|
||||
"my-cards": "Meine Karten",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Erstelldatum (neueste zuerst)",
|
||||
"created-at-oldest-first": "Erstelldatum (älteste zuerst)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Alle System-Nachrichten aller Nutzer verbergen",
|
||||
"now-system-messages-of-all-users-are-hidden": "Alle System-Nachrichten aller Nutzer sind nun verborgen",
|
||||
"hide-activities-of-all-boards": "Zeige die Board Aktivitäten nicht auf allen Boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Alle Aktivitäten von allen Boards sind nun verborgen",
|
||||
"move-swimlane": "Swimlane verschieben",
|
||||
"moveSwimlanePopup-title": "Swimlane verschieben",
|
||||
"custom-field-stringtemplate": "String-Vorlage",
|
||||
@@ -1118,7 +1127,7 @@
|
||||
"custom-field-stringtemplate-separator": "Trenner (verwende   oder für einen Leerschritt)",
|
||||
"custom-field-stringtemplate-item-placeholder": "Drücke die Eingabetaste, um weitere Einträge hinzuzufügen",
|
||||
"creator": "Ersteller",
|
||||
"creator-on-minicard": "Creator on minicard",
|
||||
"creator-on-minicard": "Ersteller auf Minikarte",
|
||||
"filesReportTitle": "Dateien-Bericht",
|
||||
"reports": "Berichte",
|
||||
"rulesReportTitle": "Regeln-Bericht",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklistenaktionen",
|
||||
"moveChecklist": "Checkliste verschieben",
|
||||
"moveChecklistPopup-title": "Checkliste verschieben",
|
||||
"newlineBecomesNewChecklistItem": "Neue Zeile wird neuer Checklisteneintrag",
|
||||
"newlineBecomesNewChecklistItem": "Jede Textzeile wird in einen Checklisteneintrag umgewandelt",
|
||||
"newLineNewItem": "Eine Textzeile = ein Checklisteneintrag",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Jede Textzeile wird in einen Checklisteneintrag umgewandelt, in ursprünglicher Reihenfolge",
|
||||
"originOrder": "ursprüngliche Reihenfolge",
|
||||
"copyChecklist": "Checkliste kopieren",
|
||||
"copyChecklistPopup-title": "Checkliste kopieren",
|
||||
"card-show-lists": "Listen anzeigen",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Übersetzung",
|
||||
"text": "Text",
|
||||
"translation-text": "Übersetzungstext",
|
||||
"show-at-minicard": "Zeige auf Minikarte",
|
||||
"show-checklist-at-minicard": "Checkliste auf Minikarte anzeigen",
|
||||
"show-subtasks-field": "Teilaufgaben Feld anzeigen",
|
||||
"convert-to-markdown": "Als Markdown konvertieren",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"import-board-zip": "Erstelle .zip Datei mit JSON Board Dateien und die Unterverzeichnisse des Boardnamen mit Anhängen",
|
||||
"collapse": "Einklappen",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Aufklappen",
|
||||
"hideCheckedChecklistItems": "Verberge erledigte Checklisteneinträge",
|
||||
"hideAllChecklistItems": "Verberge alle Checklisteneinträge",
|
||||
"support": "Unterstützung",
|
||||
"supportPopup-title": "Unterstützung",
|
||||
"accessibility-page-enabled": "Barrierefreie Seite freigeschaltet",
|
||||
"accessibility-title": "Barrierefreier Eintrag",
|
||||
"accessibility-content": "Barrierefreier Eintrag"
|
||||
}
|
||||
@@ -49,6 +49,7 @@
|
||||
"activity-archived": "%s μετακινήθηκε στο Αρχείο",
|
||||
"activity-attached": "επισυνάφθηκε %s στο %s",
|
||||
"activity-created": "δημιουργήθηκε %s",
|
||||
"activity-changedListTitle": "renamed list to %s",
|
||||
"activity-customfield-created": "δημιούργησε το προσαρμοσμένο πεδίο %s",
|
||||
"activity-excluded": "εξαιρέθηκε %s από %s",
|
||||
"activity-imported": "εισήχθη %s στο %s από %s",
|
||||
@@ -85,10 +86,12 @@
|
||||
"add-card": "Προσθήκη Κάρτας",
|
||||
"add-card-to-top-of-list": "Add Card to Top of List",
|
||||
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
|
||||
"setListWidthPopup-title": "Set List Width",
|
||||
"set-list-width": "Set List Width",
|
||||
"set-list-width-value": "List Width (pixels)",
|
||||
"list-width-error-message": "List width must be a positive integer",
|
||||
"setListWidthPopup-title": "Set Widths",
|
||||
"set-list-width": "Set Widths",
|
||||
"set-list-width-value": "Set Min & Max Widths (pixels)",
|
||||
"list-width-error-message": "List widths must be integers greater than 100",
|
||||
"keyboard-shortcuts-enabled": "Keyboard shortcuts enabled. Click to disable.",
|
||||
"keyboard-shortcuts-disabled": "Keyboard shortcuts disabled. Click to enable.",
|
||||
"setSwimlaneHeightPopup-title": "Set Swimlane Height",
|
||||
"set-swimlane-height": "Set Swimlane Height",
|
||||
"set-swimlane-height-value": "Swimlane Height (pixels)",
|
||||
@@ -263,6 +266,9 @@
|
||||
"checklists": "Λίστες Ελέγχου - Checklists",
|
||||
"click-to-star": "Κλικ για να προσθέσετε αστεράκι στον πίνακα",
|
||||
"click-to-unstar": "Κλικ για να αφαιρέσετε αστεράκι από τον πίνακα",
|
||||
"click-to-enable-auto-width": "Auto list width disabled. Click to enable.",
|
||||
"click-to-disable-auto-width": "Auto list width enabled. Click to disable.",
|
||||
"auto-list-width": "Auto list width",
|
||||
"clipboard": "Clipboard ή drag & drop",
|
||||
"close": "Κλείσιμο",
|
||||
"close-board": "Κλείσιμο Πίνακα",
|
||||
@@ -294,6 +300,7 @@
|
||||
"color-white": "λευκό",
|
||||
"color-yellow": "κίτρινο",
|
||||
"unset-color": "Unset",
|
||||
"comments": "Comments",
|
||||
"comment": "Σχόλιο",
|
||||
"comment-placeholder": "Συγγραφή Σχολίου",
|
||||
"comment-only": "Μόνο σχόλιο",
|
||||
@@ -443,7 +450,7 @@
|
||||
"advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\\\/) to be skipped, you can use \\\\. For example: Field1 == I\\\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
|
||||
"fullname": "Πλήρες Όνομα",
|
||||
"header-logo-title": "Επιστροφή στη σελίδα των πινάκων σας.",
|
||||
"hide-system-messages": "Απόκρυψη μηνυμάτων συστήματος",
|
||||
"show-activities": "Show Activities",
|
||||
"headerBarCreateBoardPopup-title": "Δημιουργία Πίνακα",
|
||||
"home": "Αρχική",
|
||||
"import": "Εισαγωγή",
|
||||
@@ -572,6 +579,7 @@
|
||||
"select-board": "Επιλογή Πίνακα",
|
||||
"set-wip-limit-value": "Προσδιορισμός ορίου στο μέγιστο αριθμό εργασιών σε αυτή τη λίστα.",
|
||||
"setWipLimitPopup-title": "Set WIP Limit",
|
||||
"shortcut-add-self": "Add yourself to current card",
|
||||
"shortcut-assign-self": "Assign yourself to current card",
|
||||
"shortcut-autocomplete-emoji": "Autocomplete emoji",
|
||||
"shortcut-autocomplete-members": "Autocomplete members",
|
||||
@@ -956,6 +964,7 @@
|
||||
"delete-linked-card-before-this-card": "You can not delete this card before first deleting linked card that has",
|
||||
"delete-linked-cards-before-this-list": "You can not delete this list before first deleting linked cards that are pointing to cards in this list",
|
||||
"hide-checked-items": "Hide checked items",
|
||||
"hide-finished-checklist": "Hide finished checklist",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"ok": "OK",
|
||||
@@ -1109,8 +1118,8 @@
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)",
|
||||
"links-heading": "Links",
|
||||
"hide-system-messages-of-all-users": "Hide system messages of all users",
|
||||
"now-system-messages-of-all-users-are-hidden": "Now system messages of all users are hidden",
|
||||
"hide-activities-of-all-boards": "Don't show the board activities on all boards",
|
||||
"now-activities-of-all-boards-are-hidden": "Now all activities of all boards are hidden",
|
||||
"move-swimlane": "Move Swimlane",
|
||||
"moveSwimlanePopup-title": "Move Swimlane",
|
||||
"custom-field-stringtemplate": "String Template",
|
||||
@@ -1193,7 +1202,10 @@
|
||||
"checklistActionsPopup-title": "Checklist Actions",
|
||||
"moveChecklist": "Move Checklist",
|
||||
"moveChecklistPopup-title": "Move Checklist",
|
||||
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item",
|
||||
"newlineBecomesNewChecklistItem": "Each line of text becomes one of the checklist items",
|
||||
"newLineNewItem": "One line of text = one checklist item",
|
||||
"newlineBecomesNewChecklistItemOriginOrder": "Each line of text becomes one of the checklist items, original order",
|
||||
"originOrder": "original order",
|
||||
"copyChecklist": "Copy Checklist",
|
||||
"copyChecklistPopup-title": "Copy Checklist",
|
||||
"card-show-lists": "Card Show Lists",
|
||||
@@ -1242,11 +1254,16 @@
|
||||
"translation": "Translation",
|
||||
"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",
|
||||
"convert-to-markdown": "Convert to markdown",
|
||||
"import-board-zip": "Add .zip file that has board JSON files, and board name subdirectories with attachments",
|
||||
"collapse": "Σύμπτυξη",
|
||||
"uncollapse": "Uncollapse"
|
||||
"uncollapse": "Uncollapse",
|
||||
"hideCheckedChecklistItems": "Hide checked checklist items",
|
||||
"hideAllChecklistItems": "Hide all checklist items",
|
||||
"support": "Support",
|
||||
"supportPopup-title": "Support",
|
||||
"accessibility-page-enabled": "Accessibility page enabled",
|
||||
"accessibility-title": "Accessibility topic",
|
||||
"accessibility-content": "Accessibility content"
|
||||
}
|
||||
Loaded 100 of 244 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user