Compare commits

...
119 Commits
Author SHA1 Message Date
Lauri Ojansivu 9e60a23845 v4.63 2020-12-21 18:42:25 +02:00
Lauri Ojansivu 6cca39af1b Update translations. 2020-12-21 18:37:24 +02:00
Lauri Ojansivu 7ffbe2ab5e Update ChangeLog. 2020-12-21 18:35:02 +02:00
Lauri Ojansivu 28850e5510 Fixed Remove Cover button gives JS error.
Thanks to tsukasa1989 and xet7 !

Fixes #3400
2020-12-21 18:32:00 +02:00
Lauri Ojansivu d62bed1536 v4.62 2020-12-18 05:58:33 +02:00
Lauri Ojansivu b19cf01a3a Update translations. 2020-12-18 05:52:27 +02:00
Lauri Ojansivu 39dece1e25 Update ChangeLog. 2020-12-18 05:48:41 +02:00
Lauri Ojansivu 61ae62a83a Board: When removing member from board, remove also from assignees.
Admin Panel/People: 1) Allow edit user that does not have email address.
2) When creating new user, require username and email address, and save also fullname.
3) Some in progress code for deleting user, that does not work correctly yet, so deleting user is not enabled yet.

Thanks to airtraxx and xet7.

Related #3396
2020-12-18 05:46:04 +02:00
Lauri Ojansivu 775f0d9fe6 Update ChangeLog. 2020-12-17 21:39:27 +02:00
Lauri Ojansivu 53a925cf7f Fix delete board button not visible.
Thanks to airtraxx and xet7 !

Related #3396
2020-12-17 21:37:18 +02:00
Lauri Ojansivu 6bf33a5578 Update ChangeLog. 2020-12-17 21:30:52 +02:00
Lauri Ojansivu 7f3c4acf62 Add some permission code, to see does it fix something.
Thanks to xet7 !

Related #3377
2020-12-17 21:27:02 +02:00
Lauri Ojansivu 8481c791d7 Update ChangeLog. 2020-12-17 18:59:36 +02:00
Lauri Ojansivu 9dd0fb88d6 Fix Move card from a board to another does not work anymore.
Thanks to lezioul and xet7 !

Fixes wekan/wekan-snap#141
2020-12-17 18:56:04 +02:00
Lauri Ojansivu 9b004d75c7 Update ChangeLog. 2020-12-17 17:56:11 +02:00
Lauri Ojansivu 86c7fbd717 Merge pull request #3395 from daniel-eder/fix/clone-board-binary-attachments
Treat unknown attachment types as binary on board import/clone
2020-12-17 17:36:02 +02:00
Daniel Eder 6bd7f40511 Treat unknown attachment types as binary on board import/clone
Fixes missing attachments and even missing
2020-12-17 11:10:30 +02:00
Lauri Ojansivu a82257f0b1 v4.61 2020-12-16 23:41:40 +02:00
Lauri Ojansivu ee26f32a20 Update translations. 2020-12-16 23:36:03 +02:00
Lauri Ojansivu 7df3d52635 Update ChangeLog. 2020-12-16 23:34:07 +02:00
Lauri Ojansivu f9ba17177e Allow normal user to delete checklist item.
Thanks to Samunosuke and xet7 !

Related #3377
2020-12-16 23:30:57 +02:00
Lauri Ojansivu ab4941390b Update translations. 2020-12-15 22:45:11 +02:00
Lauri Ojansivu 11d044ede9 Update ChangeLog. 2020-12-15 22:37:38 +02:00
Lauri Ojansivu 3c406d955e Removed cookie code that is not in use.
Thanks to xet7 !
2020-12-15 22:34:57 +02:00
Lauri Ojansivu ea37dd5e1d v4.60 2020-12-15 12:22:17 +02:00
Lauri Ojansivu fd7225d861 Update translations. 2020-12-15 12:14:02 +02:00
Lauri Ojansivu e0bd22e674 Update ChangeLog. 2020-12-15 12:11:43 +02:00
Lauri Ojansivu 89332cefc5 Merge branch 'master' of github.com:wekan/wekan 2020-12-15 12:09:09 +02:00
Lauri Ojansivu 5172f64b72 Update ChangeLog. 2020-12-15 12:08:53 +02:00
Lauri Ojansivu 6cb4b9fe4a Prevent normal user deleting or modifying too much.
Allow normal user to export board. Part 2.

Thanks to Samunosuke, pgh2357 and xet7 !

Related #3377
2020-12-15 12:05:54 +02:00
Lauri Ojansivu c978f55c56 Update ChangeLog. 2020-12-15 12:04:31 +02:00
Lauri Ojansivu 4a205fcfcb Prevent normal user deleting or modifying too much.
Allow normal user to export board.

Thanks to Samunosuke, pgh2357 and xet7 !

Related #3377
2020-12-15 11:52:57 +02:00
Lauri Ojansivu 2e1e703e35 Merge pull request #3393 from wekan/dependabot/npm_and_yarn/ini-1.3.7
Bump ini from 1.3.5 to 1.3.7
2020-12-12 17:38:08 +02:00
dependabot[bot] a75c162483 Bump ini from 1.3.5 to 1.3.7
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-11 19:53:26 +00:00
Lauri Ojansivu f6c0700633 v4.59 2020-12-10 12:16:44 +02:00
Lauri Ojansivu dece7ddf13 Update translations. 2020-12-10 12:11:13 +02:00
Lauri Ojansivu d06bcd9dcc Update ChangeLog. 2020-12-10 12:08:27 +02:00
Lauri Ojansivu ee7d82c006 Merge pull request #3389 from daniel-eder/fix/clone-board-checklist-items
Fix not all checklist items being imported/cloned
2020-12-10 12:06:28 +02:00
Daniel Eder b777f7f2af Fix not all checklist items being imported/cloned 2020-12-10 10:47:57 +02:00
Lauri Ojansivu fe87b9928c v4.58 2020-12-09 16:20:55 +02:00
Lauri Ojansivu fb36709047 Update translations. 2020-12-09 16:13:45 +02:00
Lauri Ojansivu 73aaccb6dd Update ChangeLog. 2020-12-09 16:10:39 +02:00
Lauri Ojansivu 1fe0059402 Merge branch 'daniel-eder-fix/clone-board' 2020-12-09 16:07:19 +02:00
Daniel Eder 0c12c45080 Fix missing subtasks when cloning board 2020-12-09 15:51:45 +02:00
Daniel Eder a6c48329ef Fix missing assignee assignment when cloning or importing board 2020-12-09 15:06:56 +02:00
Daniel Eder a3cd1b89ff Fix missing member assignments when cloning board 2020-12-09 15:02:50 +02:00
Daniel Eder 7a08f42edb Fix missing custom fields when cloning board 2020-12-09 14:01:33 +02:00
Lauri Ojansivu e8722b56e3 v4.57 2020-12-08 21:49:56 +02:00
Lauri Ojansivu 052948f6eb Update ChangeLog. 2020-12-08 21:41:10 +02:00
Lauri Ojansivu cd03395e05 Merge pull request #3385 from mfilser/minicard_space_after_assignees
Minicard, reduce space after assignees label
2020-12-08 21:37:16 +02:00
Lauri Ojansivu 61caf18fd4 Update ChangeLog. 2020-12-08 20:40:22 +02:00
Lauri Ojansivu 015f4d671d Upgrade to Node 12.20.0
Thanks to Node developers!
2020-12-08 20:38:31 +02:00
Lauri Ojansivu c13e828c79 Update ChangeLog. 2020-12-08 20:30:42 +02:00
Lauri Ojansivu 7a6abaac44 Update to Meteor 1.12
Thanks to Meteor developers!
2020-12-08 20:27:58 +02:00
Lauri Ojansivu 58dffd0a33 Update ChangeLog. 2020-12-08 20:17:13 +02:00
Lauri Ojansivu fe0232a4e8 Update translations. 2020-12-08 20:11:08 +02:00
Lauri Ojansivu 8dff6c2e2a Merge branch 'mfilser-drag_handle_checklistitem' 2020-12-08 19:27:32 +02:00
Martin Filser 3a6e2813a6 Minicard, reduce space after assignees label 2020-12-08 17:45:57 +01:00
Martin Filser 8005640b77 Drag handles at checklist items on mobile view #3240 2020-12-08 17:44:36 +01:00
Lauri Ojansivu bc929fb7e0 Update translations. 2020-12-08 00:08:40 +02:00
Lauri Ojansivu 019874b6af Update ChangeLog. 2020-12-08 00:06:05 +02:00
Lauri Ojansivu a7977a8fc7 Hide duplicate create board button, because it did not show board templates correctly.
Thanks to xet7 !

Fixes #2728
2020-12-08 00:02:51 +02:00
Lauri Ojansivu 62f6cc7198 Update translations. 2020-12-03 07:18:00 +02:00
Lauri Ojansivu ad331ee122 Update ChangeLog. 2020-12-03 07:16:06 +02:00
Lauri Ojansivu 387f0600ce REST API: Fix typos, remove extra code.
Thanks to xet7 !
2020-12-03 07:14:06 +02:00
Lauri Ojansivu 0801e33f97 Update ChangeLog. 2020-12-03 07:03:18 +02:00
Lauri Ojansivu f576d2f356 Merge pull request #3382 from ThoreKr/helm-secretenv
Helm: Introduce secretEnv for secret value provisioning
2020-12-03 07:00:07 +02:00
Lauri Ojansivu 051f7b2769 REST API: Added Wekan REST API Python CLI, for adding card, downloading attachments etc.
Thanks to xet7 !

Related #1482
2020-12-03 06:54:25 +02:00
Lauri Ojansivu 1f207c493d Update ChangeLog. 2020-12-03 06:36:10 +02:00
Thore 03f565bf95 Introduce secretEnv for secret value provisioning 2020-12-03 05:35:11 +01:00
Lauri Ojansivu 36e29a405e REST API: Added file download URL to listing of attachments of a board. Part 2.
Thanks to xet7 !

Related #1482
2020-12-03 06:30:27 +02:00
Lauri Ojansivu 2ec53b27d1 REST API: Added file download URL to listing of attachments of a board.
Thanks to xet7 !

Related #1482
2020-12-03 06:21:46 +02:00
Lauri Ojansivu 152a0b50f2 Update ChangeLog. 2020-12-03 01:53:10 +02:00
Lauri Ojansivu c09758fb91 Try to fix Docker. 2020-12-03 01:40:56 +02:00
Lauri Ojansivu 2b2884d996 Try to fix Docker. 2020-12-03 01:00:10 +02:00
Lauri Ojansivu 4537971300 Try to fix Docker on Quay.
Thanks to xet7 !

Related #3380
2020-12-02 20:06:34 +02:00
Lauri Ojansivu 0b43e8b42a Remove old text. 2020-11-30 20:48:19 +02:00
Lauri Ojansivu bf94161f30 REST API: List attachments of a board.
For using this, Python code example:
https://github.com/wekan/wekan/wiki/New-card-with-Python3-and-REST-API

Thanks to xet7 !

Related #1482
2020-11-30 20:41:54 +02:00
Lauri Ojansivu 573426899a v4.56 2020-11-30 00:05:41 +02:00
Lauri Ojansivu 3816227837 Update translations. 2020-11-29 23:34:24 +02:00
Lauri Ojansivu fe5e311673 Update translations. 2020-11-29 05:18:39 +02:00
Lauri Ojansivu bec0b7ec56 Update ChangeLog. Fix lint. 2020-11-29 04:24:53 +02:00
Lauri Ojansivu 9d2a9ee70b Fix lint. 2020-11-29 04:19:28 +02:00
Lauri Ojansivu baf652a569 Merge pull request #3374 from helioguardabaxo/master
Improvements in activities design
2020-11-29 04:17:38 +02:00
helioguardabaxo 9f340bcecd Improvements in activities design 2020-11-28 21:50:01 -03:00
Lauri Ojansivu cc0a866166 Update ChangeLog. 2020-11-28 01:42:35 +02:00
Lauri Ojansivu d39b62503f Merge pull request #3373 from helioguardabaxo/master
Fixed end date return
2020-11-28 01:40:55 +02:00
helioguardabaxo e9b9af4616 Fixed end date return 2020-11-27 20:02:49 -03:00
Lauri Ojansivu 7d88ef7ab2 Update translations. 2020-11-27 22:56:51 +02:00
Lauri Ojansivu 5a49bd6f8c Update ChangeLog. 2020-11-27 22:38:57 +02:00
Lauri Ojansivu a255fc8524 Merge pull request #3372 from helioguardabaxo/master
Attempt to implement date activities notification
2020-11-27 22:37:08 +02:00
Lauri Ojansivu d1b5c42d42 Update ChangeLog. 2020-11-27 21:33:56 +02:00
Lauri Ojansivu d957768a39 Merge pull request #3369 from jiangytcn/helm
fix: update helm mongodb dependency
2020-11-27 21:17:44 +02:00
Lauri Ojansivu 999630aed5 Update ChangeLog. 2020-11-27 19:15:39 +00:00
Lauri Ojansivu cf7efccde5 Merge branch 'progressify-master' 2020-11-27 19:11:03 +00:00
Lauri Ojansivu 7b82a80fb4 Fix typo. 2020-11-27 19:08:57 +00:00
helioguardabaxo cfe500794c Attempt to implement date activities notification 2020-11-27 14:41:20 -03:00
progressify a2d298f493 sticky swimlane again :) 2020-11-26 18:25:33 +01:00
progressify 4687a866f5 sticky swimlane 2020-11-25 22:54:17 +01:00
Jiang Yi Tao ff08aff131 fix: update helm mongodb dependency
1. removed unused test pod
2. update chart dependency with bitnami repo
3. removed unused configurations in default values

Signed-off-by: Jiang Yi Tao <jiangyt.cn@gmail.com>
2020-11-25 19:53:56 +08:00
Lauri Ojansivu 5510c2a37d 1) New default: sudo snap set wekan mongo-log-destination='devnull'. Other options: syslog/snapcommon.
This should lower amount of disk usage and logs.
2) Tried to fix command: sudo snap set wekan mongo-url='...'

Thanks to xet7 !

Fixes #3059,
fixes #2364,
fixes wekan/wekan-snap#138,
fixes wekan/wekan-snap#113
2020-11-23 20:40:37 +02:00
Lauri Ojansivu 608a084b94 Update ChangeLog. 2020-11-23 17:47:14 +02:00
Lauri Ojansivu 9e47abdaa3 Merge pull request #3366 from helioguardabaxo/master
Added date notification icons
2020-11-23 17:44:26 +02:00
Lauri Ojansivu 4d7bd455c9 Update ChangeLog. 2020-11-23 17:42:23 +02:00
Lauri Ojansivu 05a72f7c62 Fix typo on MONGO_URL on Snap.
Thanks to xet7 !
2020-11-23 17:40:26 +02:00
helioguardabaxo 4e23429cb8 Added date notification icons 2020-11-23 12:10:38 -03:00
Lauri Ojansivu b67d3e91af v4.55 2020-11-21 18:07:31 +02:00
Lauri Ojansivu 636487502d Update translations. 2020-11-21 17:57:06 +02:00
Lauri Ojansivu 3207f457d4 Update ChangeLog. 2020-11-21 04:32:44 +02:00
Lauri Ojansivu af0cb1d6e7 Merge pull request #3359 from jghaanstra/master
Modern Dark: card details as lightbox
2020-11-21 04:31:18 +02:00
Lauri Ojansivu 06c16b79e3 Update ChangeLog. 2020-11-21 04:30:46 +02:00
Lauri Ojansivu 09617e17d9 Merge pull request #3360 from centralhardware/increase_avatar_size
Increase avatar size
2020-11-20 20:38:01 +02:00
jghaanstra 94f50dd6b6 Modern Dark: card details as lightbox 2020-11-20 09:51:25 +01:00
Alexey Fedechkin d667554686 Update en.i18n.json 2020-11-20 14:04:16 +07:00
Alexey Fedechkin cbf3bcfe1c Update en-GB.i18n.json 2020-11-20 14:03:46 +07:00
Alexey Fedechkin 3d82323eaa Update avatars.js
increase the maximum avatar size
2020-11-20 13:51:34 +07:00
Lauri Ojansivu 83cd5e7494 Update translations. 2020-11-18 22:46:39 +02:00
Lauri Ojansivu e1e5554b88 Update ChangeLog. 2020-11-18 22:44:23 +02:00
Lauri Ojansivu 6193a0b64e Set minimum height to icons at All Boards page.
Thanks to xet7 !
2020-11-18 22:42:00 +02:00
131 changed files with 36286 additions and 34893 deletions

No files matched your search

+6 -2
View File
@@ -1,12 +1,16 @@
FROM ubuntu:rolling
FROM quay.io/wekan/ubuntu:groovy-20201125.2
LABEL maintainer="sgr"
# 2020-12-03:
# - Above Ubuntu base image copied from Docker Hub ubuntu:groovy-20201125.2
# to Quay to avoid Docker Hub rate limits.
ENV BUILD_DEPS="gnupg gosu bsdtar wget curl bzip2 g++ build-essential python git ca-certificates iproute2"
ENV DEBIAN_FRONTEND=noninteractive
ENV \
DEBUG=false \
NODE_VERSION=v12.19.1 \
NODE_VERSION=v12.20.0 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
+1 -1
View File
@@ -81,7 +81,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 12.19.1
node-engine: 12.20.0
node-packages:
- node-gyp
- node-pre-gyp
+1 -1
View File
@@ -83,7 +83,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 12.19.1
node-engine: 12.20.0
node-packages:
- node-gyp
- node-pre-gyp
+5 -5
View File
@@ -6,8 +6,8 @@
meteor-base@1.4.0
# Build system
ecmascript@0.15.0-beta200.4
standard-minifier-css@1.7.0-beta200.4
ecmascript@0.14.4
standard-minifier-css@1.7.1
standard-minifier-js@2.6.0
mquandalle:jade
coffeescript@2.4.1!
@@ -23,7 +23,7 @@ dburles:collection-helpers
idmontie:migrations
matb33:collection-hooks
matteodem:easy-search
mongo@1.10.0
mongo@1.10.1
mquandalle:collection-mutations
# Account system
@@ -72,9 +72,9 @@ simple:rest-accounts-password
useraccounts:core
email@2.0.0
horka:swipebox
dynamic-import@0.6.0-beta200.4
dynamic-import@0.5.4
accounts-password@1.6.2
accounts-password@1.6.3
cfs:gridfs
rzymek:fullcalendar
momentjs:moment@2.22.2
+1 -1
View File
@@ -1 +1 @@
METEOR@2.0-beta.4
METEOR@1.12
+15 -15
View File
@@ -1,7 +1,7 @@
3stack:presence@1.1.2
accounts-base@1.7.0
accounts-base@1.7.1
accounts-oauth@1.2.0
accounts-password@1.6.2
accounts-password@1.6.3
aldeed:collection2@2.10.0
aldeed:collection2-core@1.2.0
aldeed:schema-deny@1.1.0
@@ -10,8 +10,8 @@ aldeed:simple-schema@1.5.4
allow-deny@1.1.0
arillo:flow-router-helpers@0.5.2
audit-argument-checks@1.0.7
autoupdate@1.7.0-beta200.4
babel-compiler@7.6.0-beta200.4
autoupdate@1.6.0
babel-compiler@7.5.4
babel-runtime@1.5.0
base64@1.0.12
binary-heap@1.0.11
@@ -49,15 +49,15 @@ coffeescript-compiler@2.4.1
cottz:publish-relations@2.0.8
dburles:collection-helpers@1.1.0
ddp@1.4.0
ddp-client@2.4.0-beta200.4
ddp-client@2.3.3
ddp-common@1.4.0
ddp-rate-limiter@1.0.9
ddp-server@2.3.2
deps@1.0.12
diff-sequence@1.1.1
dynamic-import@0.6.0-beta200.4
dynamic-import@0.5.4
easylogic:summernote@0.8.8
ecmascript@0.15.0-beta200.4
ecmascript@0.14.4
ecmascript-runtime@0.7.0
ecmascript-runtime-client@0.11.0
ecmascript-runtime-server@0.10.0
@@ -103,14 +103,14 @@ meteorspark:util@0.2.0
minifier-css@1.5.3
minifier-js@2.6.0
minifiers@1.1.8-faster-rebuild.0
minimongo@1.6.0
minimongo@1.6.1
mobile-status-bar@1.1.0
modern-browsers@0.1.5
modules@0.16.0-beta200.4
modules@0.15.0
modules-runtime@0.12.0
momentjs:moment@2.29.1
mongo@1.10.0
mongo-decimal@0.1.1
mongo@1.10.1
mongo-decimal@0.1.2
mongo-dev-server@1.1.0
mongo-id@1.0.7
mongo-livedata@1.0.12
@@ -193,7 +193,7 @@ random@1.2.0
rate-limit@1.0.9
reactive-dict@1.3.0
reactive-var@1.0.11
reload@1.3.0
reload@1.3.1
retry@1.1.0
routepolicy@1.1.0
rzymek:fullcalendar@3.8.0
@@ -212,7 +212,7 @@ softwarerero:accounts-t9n@1.3.11
spacebars@1.0.15
spacebars-compiler@1.1.3
srp@1.1.0
standard-minifier-css@1.7.0-beta200.4
standard-minifier-css@1.7.1
standard-minifier-js@2.6.0
staringatlights:fast-render@3.3.0
staringatlights:inject-data@2.3.0
@@ -233,8 +233,8 @@ useraccounts:core@1.14.2
useraccounts:flow-routing@1.14.2
useraccounts:unstyled@1.14.2
verron:autosize@3.0.8
webapp@1.10.0-beta200.4
webapp-hashing@1.1.0-beta200.4
webapp@1.9.1
webapp-hashing@1.0.9
wekan-accounts-cas@0.1.0
wekan-accounts-oidc@1.0.10
wekan-ldap@0.0.2
+1 -1
View File
@@ -3,7 +3,7 @@ sudo: required
env:
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
TRAVIS_NODE_VERSION: 12.19.1
TRAVIS_NODE_VERSION: 12.20.0
TRAVIS_NPM_VERSION: latest
before_install:
+168
View File
@@ -1,3 +1,171 @@
# v4.63 2020-12-21 Wekan release
This release fixes the following bugs:
- [Fixed Remove Cover button gives JS error](https://github.com/wekan/wekan/commit/28850e5510f2aaefcae404efac1973c12f1cca65).
Thanks to tsukasa1989 and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.62 2020-12-18 Wekan release
This release fixes the following bugs:
- [Treat unknown attachment types as binary on board
import/clone](https://github.com/wekan/wekan/pull/3395).
Thanks to daniel-eder.
- [Fix Move card from a board to another does not work anymore](https://github.com/wekan/wekan/commit/9dd0fb88d6cb3378a8fc96aaf60214020efeaed1).
Thanks to lezioul and xet7.
- [Add some permission code, to see does it fix something](https://github.com/wekan/wekan/commit/7f3c4acf62deefa2f7b36b986e06336fd3b2754f).
Thanks to xet7.
- [Fix delete board button not visible](https://github.com/wekan/wekan/commit/53a925cf7ff95167cbf2f65f7c7e169e18b14b44).
Thanks to airtraxx and xet7.
- [Board: When removing member from board, remove also from assignees.
Admin Panel/People: 1) Allow edit user that does not have email address.
2) When creating new user, require username and email address, and save also fullname.
3) Some in progress code for deleting user, that does not work correctly yet, so deleting user is not enabled
yet](https://github.com/wekan/wekan/commit/61ae62a83aaddb2c6f679ce9d05b675c845ba8bf).
Thanks to airtraxx and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.61 2020-12-16 Wekan release
This release fixes the following bugs:
- [Removed cookie code that is not in use](https://github.com/wekan/wekan/commit/3c406d955ec602d4b86c164acb9e94e715086f8e).
Thanks to xet7.
- [Allow normal user to delete checklist item](https://github.com/wekan/wekan/commit/f9ba17177e8f1146be1e571f47d26c13a9337034).
Thanks to Samunosuke and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.60 2020-12-15 Wekan release
This release adds the following updates:
- Update dependencies.
[Part 1](https://github.com/wekan/wekan/commit/2e1e703e3591258462b3167f72e2b2319bf57bec),
[Part 2](https://github.com/wekan/wekan/commit/a75c162483795775db1631686f8e7017b42c87ca).
Thanks to developers of dependencies.
and fixes the following bugs:
- Prevent normal user deleting or modifying too much. Allow normal user to export board.
[Part1](https://github.com/wekan/wekan/commit/4a205fcfcb40438faead3bf8973b10b8e42974f0),
[Part2](https://github.com/wekan/wekan/commit/6cb4b9fe4a086202d642de54464088e0a1122ec0).
Thanks to Samunosuke, pgh2357 and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.59 2020-12-10 Wekan release
This release fixes the following bugs:
- [Fix not all checklist items being imported/cloned](https://github.com/wekan/wekan/pull/3389).
Thanks to daniel-eder.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.58 2020-12-09 Wekan release
This release fixes the following bugs:
- [Fix issues when duplicating board](https://github.com/wekan/wekan/pull/3387).
Thanks to daniel-eder.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.57 2020-12-08 Wekan release
This release adds the following new features:
- [Helm: Introduce secretEnv for secret value provisioning](https://github.com/wekan/wekan/pull/3382).
Thanks to ThoreKr.
- REST API: List attachments of a board, with download URLs of attachments. In Progress.
[Part 1](https://github.com/wekan/wekan/commit/bf94161f30adf9dec6aa41af6946ba54c1573a44),
[Part 2](https://github.com/wekan/wekan/commit/2ec53b27d14049bc9622861492cac301512a1e33),
[Part 3](https://github.com/wekan/wekan/commit/36e29a405ee943d15e6e1bd9ac02ecefb7a7a06f).
For using this, Python code example:
https://github.com/wekan/wekan/wiki/New-card-with-Python3-and-REST-API .
Thanks to xet7.
- REST API: Added Wekan REST API Python CLI, for adding card, etc. In Progress,
downloading attachments does not work yet.
[Part1](https://github.com/wekan/wekan/commit/051f7b2769c51404063e7f0ddf85fbd0f9508a88),
[Part2](https://github.com/wekan/wekan/commit/387f0600ce1389aab955cc125d331dcd5eeeafdd).
Thanks to xet7.
- [Drag handles at checklist items on mobile view](https://github.com/wekan/wekan/pull/3342).
Thanks to mfilser.
and adds the following updates:
- [Upgrade to Meteor 1.12](https://github.com/wekan/wekan/commit/7a6abaac44b1235021dc7cc25e3224515c64a068).
Thanks to Meteor developers.
- [Upgrade to Node 12.20.0](https://github.com/wekan/wekan/commit/015f4d671d136a4a344fe82e2a6bcbe0c2be6cfd).
Thanks to Node developers.
and fixes the following bugs:
- [Fixed Quay Docker builds that failed](https://github.com/wekan/wekan/issues/3380)
because of Docker Hub rate limits by copying base images from Docker Hub to Quay.
[Part1](https://github.com/wekan/wekan/commit/4537971300c6ffcc85b7dd930867eb942bd22f86),
[Part2](https://github.com/wekan/wekan/commit/2b2884d996b8fc6101eff50db058639631eb5945),
[Part3](https://github.com/wekan/wekan/commit/c09758fb913d73e9229f43d17663b3c4715a62b9).
Thanks to xet7.
- [Hide duplicate create board button, because it did not show board templates
correctly](https://github.com/wekan/wekan/commit/a7977a8fc7f171d046a228f81fb0cd481b0ccc41).
Thanks to xet7.
- [Minicard, reduce space after assignees label](https://github.com/wekan/wekan/pull/3385).
Thanks to mfilser.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.56 2020-11-30 Wekan release
This release adds the following new features:
- [Added date notification icons](https://github.com/wekan/wekan/pull/3366).
This partially resolves [#3363](https://github.com/wekan/wekan/issues/3363).
Thanks to helioguardabaxo.
- Attempt to implement date activities notification [Part1](https://github.com/wekan/wekan/pull/3372)
and [Part2](https://github.com/wekan/wekan/pull/3373).
Thanks to helioguardabaxo.
- [Sticky swimlane](https://github.com/wekan/wekan/pull/3370).
Thanks to progressify and xet7.
- [1) New default: sudo snap set wekan mongo-log-destination='devnull'.
Other options: syslog/snapcommon.
This should lower amount of disk usage and logs.
2) Tried to fix command:
`sudo snap set wekan mongo-url='...'`](https://github.com/wekan/wekan/commit/5510c2a37dc6bcfa0ec588eceb8dc9f32cec9851).
Thanks to xet7.
and adds the following improvements:
- [Improvements in activities design](https://github.com/wekan/wekan/pull/3374).
Thanks to helioguardabaxo.
and fixes the following bugs:
- [Fix typo on MONGO_URL on Snap](https://github.com/wekan/wekan/commit/05a72f7c627e05ac4ce38cb9588f2aac45273ce8).
Thanks to xet7.
- [Fix: Update helm mongodb dependency](https://github.com/wekan/wekan/pull/3369).
Thanks to jiangytcn.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.55 2020-11-21 Wekan release
This release adds the following improvements:
- [Set minimum height to icons at All Boards page](https://github.com/wekan/wekan/commit/6193a0b64e85df2f2353192e7efb16680b436622).
Thanks to xet7.
- [Increase avatar size](https://github.com/wekan/wekan/pull/3360).
Thanks to centralhardware.
- [Modern Dark theme: card details as lightbox](https://github.com/wekan/wekan/pull/3359).
Thanks to jghaanstra.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.54 2020-11-17 Wekan release
This release adds the following new features:
+6 -2
View File
@@ -1,6 +1,10 @@
FROM ubuntu:rolling
FROM quay.io/wekan/ubuntu:groovy-20201125.2
LABEL maintainer="wekan"
# 2020-12-03:
# - Above Ubuntu base image copied from Docker Hub ubuntu:groovy-20201125.2
# to Quay to avoid Docker Hub rate limits.
# Set the environment variables (defaults where required)
# DOES NOT WORK: paxctl fix for alpine linux: https://github.com/wekan/wekan/issues/1303
# ENV BUILD_DEPS="paxctl"
@@ -8,7 +12,7 @@ ARG DEBIAN_FRONTEND=noninteractive
ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \
DEBUG=false \
NODE_VERSION=v12.19.1 \
NODE_VERSION=v12.20.0 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
+2 -2
View File
@@ -4,7 +4,7 @@ FROM amd64/alpine:3.7 AS builder
ENV QEMU_VERSION=v4.2.0-6 \
QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v12.19.1 \
NODE_VERSION=v12.20.0 \
WEKAN_VERSION=3.96 \
WEKAN_ARCHITECTURE=arm64
@@ -40,7 +40,7 @@ LABEL maintainer="wekan"
# Set the environment variables (defaults where required)
ENV QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v12.19.1 \
NODE_VERSION=v12.20.0 \
NODE_ENV=production \
NPM_VERSION=latest \
WITH_API=true \
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v4.54.0"
appVersion: "v4.63.0"
files:
userUploads:
- README.md
Executable
+251
View File
@@ -0,0 +1,251 @@
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
# vi:ts=4:et
# Wekan API Python CLI, originally from here, where is more details:
# https://github.com/wekan/wekan/wiki/New-card-with-Python3-and-REST-API
try:
# python 3
from urllib.parse import urlencode
except ImportError:
# python 2
from urllib import urlencode
import json
import requests
import sys
arguments = len(sys.argv) - 1
if arguments == 0:
print("=== Wekan API Python CLI: Shows IDs for addcard ===")
print("AUTHORID is USERID that writes card.")
print("If *nix: chmod +x api.py => ./api.py users")
print("Syntax:")
print(" python3 api.py users # All users")
print(" python3 api.py boards USERID # Boards of USERID")
print(" python3 api.py board BOARDID # Info of BOARDID")
print(" python3 api.py swimlanes BOARDID # Swimlanes of BOARDID")
print(" python3 api.py lists BOARDID # Lists of BOARDID")
print(" python3 api.py createlist BOARDID LISTTITLE # Create list")
print(" python3 api.py addcard AUTHORID BOARDID SWIMLANEID LISTID CARDTITLE CARDDESCRIPTION")
print(" python3 api.py listattachments BOARDID # List attachments")
# TODO:
# print(" python3 api.py attachmentdownload BOARDID ATTACHMENTID # One attachment as file")
# print(" python3 api.py attachmentsdownload BOARDID # All attachments as files")
exit
# ------- SETTINGS START -------------
# Username is your Wekan username or email address.
# OIDC/OAuth2 etc uses email address as username.
username = 'testtest'
password = 'testtest'
wekanurl = 'http://localhost:4000/'
# ------- SETTINGS END -------------
"""
EXAMPLE:
python3 api.py
OR:
chmod +x api.py
./api.py
=== Wekan API Python CLI: Shows IDs for addcard ===
AUTHORID is USERID that writes card.
Syntax:
python3 api.py users # All users
python3 api.py boards USERID # Boards of USERID
python3 api.py board BOARDID # Info of BOARDID
python3 api.py swimlanes BOARDID # Swimlanes of BOARDID
python3 api.py lists BOARDID # Lists of BOARDID
python3 api.py createlist BOARDID LISTTITLE # Create list
python3 api.py addcard AUTHORID BOARDID SWIMLANEID LISTID CARDTITLE CARDDESCRIPTION
python3 api.py listattachments BOARDID # List attachments
python3 api.py attachmentjson BOARDID ATTACHMENTID # One attachment as JSON base64
python3 api.py attachmentbinary BOARDID ATTACHMENTID # One attachment as binary file
=== USERS ===
python3 api.py users
=> abcd1234
=== BOARDS ===
python3 api.py boards abcd1234
=== SWIMLANES ===
python3 api.py swimlanes dYZ
[{"_id":"Jiv","title":"Default"}
]
=== LISTS ===
python3 api.py lists dYZ
[]
There is no lists, so create a list:
=== CREATE LIST ===
python3 api.py createlist dYZ 'Test'
{"_id":"7Kp"}
# python3 api.py addcard AUTHORID BOARDID SWIMLANEID LISTID CARDTITLE CARDDESCRIPTION
python3 api.py addcard ppg dYZ Jiv 7Kp 'Test card' 'Test description'
=== LIST ATTACHMENTS WITH DOWNLOAD URLs ====
python3 api.py listattachments BOARDID
"""
# ------- API URL GENERATION START -----------
loginurl = 'users/login'
wekanloginurl = wekanurl + loginurl
apiboards = 'api/boards/'
apiattachments = 'api/attachments/'
apiusers = 'api/users'
e = 'export'
s = '/'
l = 'lists'
sw = 'swimlane'
sws = 'swimlanes'
cs = 'cards'
bs = 'boards'
atl = 'attachmentslist'
at = 'attachment'
ats = 'attachments'
users = wekanurl + apiusers
# ------- API URL GENERATION END -----------
# ------- LOGIN TOKEN START -----------
data = {"username": username, "password": password}
body = requests.post(wekanloginurl, data=data)
d = body.json()
apikey = d['token']
# ------- LOGIN TOKEN END -----------
if arguments == 7:
if sys.argv[1] == 'addcard':
# ------- WRITE TO CARD START -----------
authorid = sys.argv[2]
boardid = sys.argv[3]
swimlaneid = sys.argv[4]
listid = sys.argv[5]
cardtitle = sys.argv[6]
carddescription = sys.argv[7]
cardtolist = wekanurl + apiboards + boardid + s + l + s + listid + s + cs
# Write to card
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
post_data = {'authorId': '{}'.format(authorid), 'title': '{}'.format(cardtitle), 'description': '{}'.format(carddescription), 'swimlaneId': '{}'.format(swimlaneid)}
body = requests.post(cardtolist, data=post_data, headers=headers)
print(body.text)
# ------- WRITE TO CARD END -----------
if arguments == 3:
if sys.argv[1] == 'createlist':
# ------- CREATE LIST START -----------
boardid = sys.argv[2]
listtitle = sys.argv[3]
list = wekanurl + apiboards + boardid + s + l
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
post_data = {'title': '{}'.format(listtitle)}
body = requests.post(list, data=post_data, headers=headers)
print("=== CREATE LIST ===\n")
print(body.text)
# ------- CREATE LIST END -----------
if arguments == 2:
# ------- BOARDS LIST START -----------
userid = sys.argv[2]
boards = users + s + userid + s + bs
if sys.argv[1] == 'boards':
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
#post_data = {'userId': '{}'.format(userid)}
body = requests.get(boards, headers=headers)
print("=== BOARDS ===\n")
data2 = body.text.replace('}',"}\n")
print(data2)
# ------- BOARDS LIST END -----------
if sys.argv[1] == 'board':
# ------- BOARD INFO START -----------
boardid = sys.argv[2]
board = wekanurl + apiboards + boardid
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
body = requests.get(board, headers=headers)
print("=== BOARD ===\n")
data2 = body.text.replace('}',"}\n")
print(data2)
# ------- BOARD INFO END -----------
if sys.argv[1] == 'swimlanes':
boardid = sys.argv[2]
swimlanes = wekanurl + apiboards + boardid + s + sws
# ------- SWIMLANES OF BOARD START -----------
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
print("=== SWIMLANES ===\n")
body = requests.get(swimlanes, headers=headers)
data2 = body.text.replace('}',"}\n")
print(data2)
# ------- SWIMLANES OF BOARD END -----------
if sys.argv[1] == 'lists':
# ------- LISTS OF BOARD START -----------
boardid = sys.argv[2]
attachments = wekanurl + apiboards + boardid
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
print("=== LISTS ===\n")
body = requests.get(lists, headers=headers)
data2 = body.text.replace('}',"}\n")
print(data2)
# ------- LISTS OF BOARD END -----------
if sys.argv[1] == 'listattachments':
# ------- LISTS OF ATTACHMENTS START -----------
boardid = sys.argv[2]
listattachments = wekanurl + apiboards + boardid + s + ats
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
print("=== LIST OF ATTACHMENTS ===\n")
body = requests.get(listattachments, headers=headers)
data2 = body.text.replace('}',"}\n")
print(data2)
# ------- LISTS OF ATTACHMENTS END -----------
if arguments == 1:
if sys.argv[1] == 'users':
# ------- LIST OF USERS START -----------
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
print(users)
print("=== USERS ===\n")
body = requests.get(users, headers=headers)
data2 = body.text.replace('}',"}\n")
print(data2)
# ------- LIST OF USERS END -----------
+29 -1
View File
@@ -25,7 +25,8 @@ template(name="activity")
.activity
+userAvatar(userId=activity.user._id)
p.activity-desc
+memberName(user=activity.user)
span.activity-member
+memberName(user=activity.user)
//- attachment activity -------------------------------------------------
if($eq activity.activityType 'deleteAttachment')
@@ -142,6 +143,33 @@ template(name="activity")
+viewer
= activity.comment.text
//- date activity ------------------------------------------------
if($eq mode 'card')
if($eq activity.activityType 'a-receivedAt')
| {{{_ 'activity-receivedDate' (sanitize receivedDate) cardLink}}}.
if($eq activity.activityType 'a-startAt')
| {{{_ 'activity-startDate' (sanitize startDate) cardLink}}}.
if($eq activity.activityType 'a-dueAt')
| {{{_ 'activity-dueDate' (sanitize dueDate) cardLink}}}.
if($eq activity.activityType 'a-endAt')
| {{{_ 'activity-endDate' (sanitize endDate) cardLink}}}.
if($eq mode 'board')
if($eq activity.activityType 'a-receivedAt')
| {{{_ 'activity-receivedDate' (sanitize receivedDate) cardLink}}}.
if($eq activity.activityType 'a-startAt')
| {{{_ 'activity-startDate' (sanitize startDate) cardLink}}}.
if($eq activity.activityType 'a-dueAt')
| {{{_ 'activity-dueDate' (sanitize dueDate) cardLink}}}.
if($eq activity.activityType 'a-endAt')
| {{{_ 'activity-endDate' (sanitize endDate) cardLink}}}.
//- customField activity ------------------------------------------------
if($eq mode 'board')
if($eq activity.activityType 'createCustomField')
@@ -81,6 +81,30 @@ BlazeComponent.extendComponent({
return createCardLink(this.currentData().activity.card());
},
receivedDate() {
const receivedDate = this.currentData().activity.card();
if (!receivedDate) return null;
return receivedDate.receivedAt;
},
startDate() {
const startDate = this.currentData().activity.card();
if (!startDate) return null;
return startDate.startAt;
},
dueDate() {
const dueDate = this.currentData().activity.card();
if (!dueDate) return null;
return dueDate.dueAt;
},
endDate() {
const endDate = this.currentData().activity.card();
if (!endDate) return null;
return endDate.endAt;
},
lastLabel() {
const lastLabelId = this.currentData().activity.labelId;
if (!lastLabelId) return null;
+5 -1
View File
@@ -10,12 +10,16 @@
.activity
margin: 0.5px 0
padding: 6px 0;
display: flex
.member
width: 24px
width: 32px
height: @width
.activity-member
font-weight: 700
.activity-desc
word-wrap: break-word
overflow: hidden
+4
View File
@@ -3,6 +3,10 @@ BlazeComponent.extendComponent({
this.subscribe('archivedBoards');
},
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
},
archivedBoards() {
return Boards.find(
{ archived: true },
+6 -1
View File
@@ -211,7 +211,12 @@ BlazeComponent.extendComponent({
}
// Disable drag-dropping if the current user is not a board member
$swimlanesDom.sortable('option', 'disabled', !userIsMember());
//$swimlanesDom.sortable('option', 'disabled', !userIsMember());
$swimlanesDom.sortable(
'option',
'disabled',
!Meteor.user().isBoardAdmin(),
);
});
function userIsMember() {
@@ -753,6 +753,9 @@ setBoardClear(color1,color2)
body
background: #2a2a2a
.board-wrapper .board-canvas .board-overlay
opacity: .6
/* Forms */
button[type=submit].primary, .board-color-modern input[type=submit].primary
background-color: #819C5D
@@ -920,10 +923,16 @@ setBoardClear(color1,color2)
/* Card Details */
.card-details
position: absolute
top: 30px
left: calc(50% - 384px)
width: 768px
max-height: calc(100% - 60px)
background-color: #454545
color: #cccccc
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)
border: 1px solid #111111
z-index: 100 !important
.card-details
scrollbar-width: thin
+1 -2
View File
@@ -33,13 +33,12 @@ $spaceBetweenTiles = 16px
overflow: hidden;
background-color: #999
color: #f6f6f6
height: auto
min-height: 100px
font-size: 16px
line-height: 22px
border-radius: 3px
display: block
font-weight: 700
min-height: 18px
padding: 8px
margin: ($spaceBetweenTiles/2)
position: relative
+4 -3
View File
@@ -46,9 +46,10 @@ template(name="attachmentsGalery")
| {{_ 'remove-cover'}}
else
| {{_ 'add-cover'}}
a.js-confirm-delete
i.fa.fa-close
| {{_ 'delete'}}
if currentUser.isBoardAdmin
a.js-confirm-delete
i.fa.fa-close
| {{_ 'delete'}}
if currentUser.isBoardMember
unless currentUser.isCommentOnly
+6
View File
@@ -45,6 +45,12 @@ Template.attachmentsGalery.events({
},
});
Template.attachmentsGalery.helpers({
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
},
});
Template.previewAttachedImagePopup.events({
'click .js-large-image-clicked'() {
Popup.close();
+14 -10
View File
@@ -354,10 +354,11 @@ template(name="cardDetailsActionsPopup")
a.js-start-voting
i.fa.fa-thumbs-up
| {{_ 'card-edit-voting'}}
li
a.js-custom-fields
i.fa.fa-list-alt
| {{_ 'card-edit-custom-fields'}}
if currentUser.isBoardAdmin
li
a.js-custom-fields
i.fa.fa-list-alt
| {{_ 'card-edit-custom-fields'}}
//li: a.js-received-date {{_ 'editCardReceivedDatePopup-title'}}
//li: a.js-start-date {{_ 'editCardStartDatePopup-title'}}
//li: a.js-due-date {{_ 'editCardDueDatePopup-title'}}
@@ -382,10 +383,11 @@ template(name="cardDetailsActionsPopup")
| {{_ 'moveCardToBottom-title'}}
hr
ul.pop-over-list
li
a.js-move-card
i.fa.fa-arrow-right
| {{_ 'moveCardPopup-title'}}
if currentUser.isBoardAdmin
li
a.js-move-card
i.fa.fa-arrow-right
| {{_ 'moveCardPopup-title'}}
unless currentUser.isWorker
li
a.js-copy-card
@@ -562,7 +564,8 @@ template(name="cardMorePopup")
br
| {{_ 'added'}}
span.date(title=card.createdAt) {{ moment createdAt 'LLL' }}
a.js-delete(title="{{_ 'card-delete-notice'}}") {{_ 'delete'}}
if currentUser.isBoardAdmin
a.js-delete(title="{{_ 'card-delete-notice'}}") {{_ 'delete'}}
template(name="setCardColorPopup")
form.edit-label
@@ -609,7 +612,8 @@ template(name="cardStartVotingPopup")
button.primary.js-submit {{_ 'save'}}
if getVoteQuestion
button.js-remove-vote.negate.wide.right {{_ 'delete'}}
if currentUser.isBoardAdmin
button.js-remove-vote.negate.wide.right {{_ 'delete'}}
template(name="positiveVoteMembersPopup")
ul.pop-over-list.js-card-member-list
+5 -1
View File
@@ -257,7 +257,7 @@ BlazeComponent.extendComponent({
) {
$checklistsDom.sortable('option', 'disabled', disabled);
if (Utils.isMiniScreenOrShowDesktopDragHandles()) {
$checklistsDom.sortable({ handle: '.checklist-handle'});
$checklistsDom.sortable({ handle: '.checklist-handle' });
}
}
if ($subtasksDom.data('uiSortable') || $subtasksDom.data('sortable')) {
@@ -567,6 +567,10 @@ Template.cardDetailsActionsPopup.helpers({
return this.findWatcher(Meteor.userId());
},
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
},
canModifyCard() {
return (
Meteor.user() &&
+2
View File
@@ -103,6 +103,8 @@ template(name='checklistItemDetail')
.check-box-container
.check-box.materialCheckBox(class="{{#if item.isFinished }}is-checked{{/if}}")
.item-title.js-open-inlined-form.is-editable(class="{{#if item.isFinished }}is-checked{{/if}}")
if isMiniScreenOrShowDesktopDragHandles
span.fa.checklistitem-handle(class="fa-arrows" title="{{_ 'dragChecklistItem'}}")
+viewer
= item.title
else
+7 -5
View File
@@ -55,11 +55,13 @@ BlazeComponent.extendComponent({
self.autorun(() => {
const $itemsDom = $(self.itemsDom);
if ($itemsDom.data('uiSortable') || $itemsDom.data('sortable')) {
$(self.itemsDom).sortable(
'option',
'disabled',
!userIsMember() || Utils.isMiniScreen(),
);
$(self.itemsDom).sortable('option', 'disabled', !userIsMember());
if (Utils.isMiniScreenOrShowDesktopDragHandles()) {
$(self.itemsDom).sortable({
handle: 'span.fa.checklistitem-handle',
appendTo: 'parent',
});
}
}
});
},
+3
View File
@@ -156,6 +156,9 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
word-wrap: break-word
max-width: 420px
span.fa.checklistitem-handle
float: right
.js-delete-checklist-item
margin: 0 0 0.5em 1.33em
@extends .delete-text
-1
View File
@@ -85,7 +85,6 @@ template(name="minicard")
.minicard-assignees.js-minicard-assignees
each getAssignees
+userAvatar(userId=this)
hr
if getMembers
.minicard-members.js-minicard-members
+1 -1
View File
@@ -165,7 +165,7 @@
.minicard-members,
.minicard-assignees
float: right
margin: 2px -8px 12px 0
margin: 2px -8px 2px 0
.member
float: right
+8 -6
View File
@@ -2,10 +2,10 @@ template(name="subtasks")
h3.card-details-item-title
i.fa.fa-sitemap
| {{_ 'subtasks'}}
if toggleDeleteDialog.get
.board-overlay#card-details-overlay
+subtaskDeleteDialog(subtask = subtaskToDelete)
if currentUser.isBoardAdmin
if toggleDeleteDialog.get
.board-overlay#card-details-overlay
+subtaskDeleteDialog(subtask = subtaskToDelete)
.card-subtasks-items
each subtask in currentCard.subtasks
@@ -28,7 +28,8 @@ template(name="subtaskDetail")
span
a.js-view-subtask(title="{{ subtask.title }}") {{_ "view-it"}}
if canModifyCard
a.js-delete-subtask.toggle-delete-subtask-dialog {{_ "delete"}}...
if currentUser.isBoardAdmin
a.js-delete-subtask.toggle-delete-subtask-dialog {{_ "delete"}}...
if canModifyCard
h2.title.js-open-inlined-form.is-editable
@@ -68,7 +69,8 @@ template(name="editSubtaskItemForm")
a.fa.fa-times-thin.js-close-inlined-form
span(title=createdAt) {{ moment createdAt }}
if canModifyCard
a.js-delete-subtask-item {{_ "delete"}}...
if currentUser.isBoardAdmin
a.js-delete-subtask-item {{_ "delete"}}...
template(name="subtasksItems")
.subtasks-items.js-subtasks-items
+6 -4
View File
@@ -43,8 +43,9 @@ template(name="listHeader")
if canSeeAddCard
a.js-add-card.fa.fa-plus.list-header-plus-icon
a.fa.fa-navicon.js-open-list-menu
if showDesktopDragHandles
a.list-header-handle.handle.fa.fa-arrows.js-list-handle
if currentUser.isBoardAdmin
if showDesktopDragHandles
a.list-header-handle.handle.fa.fa-arrows.js-list-handle
template(name="editListTitleForm")
.list-composer
@@ -115,8 +116,9 @@ template(name="listMorePopup")
input.inline-input(type="text" readonly value="{{ rootUrl }}")
| {{_ 'added'}}
span.date(title=list.createdAt) {{ moment createdAt 'LLL' }}
unless currentUser.isWorker
a.js-delete {{_ 'delete'}}
//unless currentUser.isWorker
// if currentUser.isBoardAdmin
// a.js-delete {{_ 'delete'}}
template(name="listDeletePopup")
p {{_ "list-delete-pop"}}
+14
View File
@@ -104,6 +104,10 @@ BlazeComponent.extendComponent({
}).register('listHeader');
Template.listHeader.helpers({
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
},
showDesktopDragHandles() {
currentUser = Meteor.user();
if (currentUser) {
@@ -117,6 +121,10 @@ Template.listHeader.helpers({
});
Template.listActionPopup.helpers({
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
},
isWipLimitEnabled() {
return Template.currentData().getWipLimit('enabled');
},
@@ -254,6 +262,12 @@ Template.listMorePopup.events({
}),
});
Template.listHeader.helpers({
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
},
});
BlazeComponent.extendComponent({
onCreated() {
this.currentList = this.currentData();
+9 -5
View File
@@ -272,10 +272,13 @@ function mySafeAttrValue(tag, name, value, cssFilter) {
// then use your custom function
if (tag === 'a' && name === 'href') {
// only filter the value if starts with 'cbthunderlink:' or 'aodroplink'
if (/^thunderlink:/ig.test(value) || /^cbthunderlink:/ig.test(value) || /^aodroplink:/ig.test(value)) {
if (
/^thunderlink:/gi.test(value) ||
/^cbthunderlink:/gi.test(value) ||
/^aodroplink:/gi.test(value)
) {
return value;
}
else {
} else {
// use the default safeAttrValue function to process all non cbthunderlinks
return sanitizeXss.safeAttrValue(tag, name, value, cssFilter);
}
@@ -283,7 +286,7 @@ function mySafeAttrValue(tag, name, value, cssFilter) {
// use the default safeAttrValue function to process it
return sanitizeXss.safeAttrValue(tag, name, value, cssFilter);
}
};
}
// XXX I believe we should compute a HTML rendered field on the server that
// would handle markdown and user mentions. We can simply have two
@@ -298,7 +301,8 @@ Blaze.Template.registerHelper(
const view = this;
let content = Blaze.toHTML(view.templateContentBlock);
const currentBoard = Boards.findOne(Session.get('currentBoard'));
if (!currentBoard) return HTML.Raw(sanitizeXss(content, { safeAttrValue: mySafeAttrValue }));
if (!currentBoard)
return HTML.Raw(sanitizeXss(content, { safeAttrValue: mySafeAttrValue }));
const knowedUsers = currentBoard.members.map(member => {
const u = Users.findOne(member.userId);
if (u) {
+7 -2
View File
@@ -50,8 +50,13 @@ template(name="header")
else
li.current {{_ 'quick-access-description'}}
a#header-new-board-icon.js-create-board
i.fa.fa-plus(title="Create a new board")
// Next line is used only for spacing at header,
// there is no visible clickable icon.
#header-new-board-icon
// Hide duplicate create board button,
// because it did not show board templates correctly.
//a#header-new-board-icon.js-create-board
// i.fa.fa-plus(title="Create a new board")
+notifications
@@ -26,6 +26,10 @@ template(name='notificationIcon')
i.fa.fa-code.activity-type(title="custom field")
else if($in activityType 'addedLabel' 'removedLabel')
i.fa.fa-tag.activity-type(title="label")
else if($in activityType 'a-startAt' 'a-receivedAt')
i.fa.fa-clock-o.activity-type(title="date")
else if($in activityType 'a-dueAt' 'a-endAt')
i.fa.fa-clock-o.activity-type(title="date")
else if($in activityType 'createList' 'removeList' 'archivedList')
+listNotificationIcon
+25 -9
View File
@@ -112,7 +112,7 @@ template(name="editUserPopup")
label.hide.userId(type="text" value=user._id)
label
| {{_ 'fullname'}}
input.js-profile-fullname(type="text" value=user.profile.fullname)
input.js-profile-fullname(type="text" value=user.profile.fullname required)
label
| {{_ 'username'}}
span.error.hide.username-taken
@@ -120,7 +120,7 @@ template(name="editUserPopup")
if isLdap
input.js-profile-username(type="text" value=user.username readonly)
else
input.js-profile-username(type="text" value=user.username)
input.js-profile-username(type="text" value=user.username required)
label
| {{_ 'email'}}
span.error.hide.email-taken
@@ -128,7 +128,7 @@ template(name="editUserPopup")
if isLdap
input.js-profile-email(type="email" value="{{user.emails.[0].address}}" readonly)
else
input.js-profile-email(type="email" value="{{user.emails.[0].address}}")
input.js-profile-email(type="email" value="{{user.emails.[0].address}}" required)
label
| {{_ 'admin'}}
select.select-role.js-profile-isadmin
@@ -153,15 +153,13 @@ template(name="editUserPopup")
input.js-profile-password(type="password")
div.buttonsContainer
input.primary.wide(type="submit" value="{{_ 'save'}}")
// div
// input#deleteButton.primary.wide(type="button" value="{{_ 'delete'}}")
template(name="newUserPopup")
form
//label.hide.userId(type="text" value=user._id)
label
| {{_ 'fullname'}}
input.js-profile-fullname(type="text" value="")
input.js-profile-fullname(type="text" value="" required)
label
| {{_ 'username'}}
span.error.hide.username-taken
@@ -169,7 +167,7 @@ template(name="newUserPopup")
//if isLdap
// input.js-profile-username(type="text" value=user.username readonly)
//else
input.js-profile-username(type="text" value="")
input.js-profile-username(type="text" value="" required)
label
| {{_ 'email'}}
span.error.hide.email-taken
@@ -177,7 +175,7 @@ template(name="newUserPopup")
//if isLdap
// input.js-profile-email(type="email" value="{{user.emails.[0].address}}" readonly)
//else
input.js-profile-email(type="email" value="")
input.js-profile-email(type="email" value="" required)
label
| {{_ 'admin'}}
select.select-role.js-profile-isadmin
@@ -199,7 +197,7 @@ template(name="newUserPopup")
hr
label
| {{_ 'password'}}
input.js-profile-password(type="password")
input.js-profile-password(type="password" required)
div.buttonsContainer
input.primary.wide(type="submit" value="{{_ 'save'}}")
@@ -209,3 +207,21 @@ template(name="settingsUserPopup")
a.impersonate-user
i.fa.fa-user
| {{_ 'impersonate-user'}}
// Delete is not enabled yet, because it does leave empty user avatars
// to boards: boards members, card members and assignees have
// empty users. See:
// - wekan/client/components/settings/peopleBody.jade deleteButton
// - wekan/client/components/settings/peopleBody.js deleteButton
// - wekan/client/components/sidebar/sidebar.js Popup.afterConfirm('removeMember'
// that does now remove member from board, card members and assignees correctly,
// but that should be used to remove user from all boards similarly
// - wekan/models/users.js Delete is not enabled
//li
// br
// br
// hr
//li
// form
// label.hide.userId(type="text" value=user._id)
// div.buttonsContainer
// input#deleteButton.card-details-red.right.wide(type="button" value="{{_ 'delete'}}")
+61 -6
View File
@@ -226,8 +226,14 @@ Template.editUserPopup.events({
const isChangePassword = password.length > 0;
const isChangeUserName = username !== user.username;
// If previously email address has not been set, it is undefined,
// check for undefined, and allow adding email address.
const isChangeEmail =
email.toLowerCase() !== user.emails[0].address.toLowerCase();
email.toLowerCase() !==
(typeof user.emails !== 'undefined'
? user.emails[0].address.toLowerCase()
: false);
Users.update(this.userId, {
$set: {
@@ -297,11 +303,6 @@ Template.editUserPopup.events({
});
} else Popup.close();
},
'click #deleteButton': Popup.afterConfirm('userDelete', function() {
Users.remove(this.userId);
Popup.close();
}),
});
Template.newUserPopup.events({
@@ -356,4 +357,58 @@ Template.settingsUserPopup.events({
}
});
},
'click #deleteButton'(event) {
event.preventDefault();
/*
// Delete is not enabled yet, because it does leave empty user avatars
// to boards: boards members, card members and assignees have
// empty users. See:
// - wekan/client/components/settings/peopleBody.jade deleteButton
// - wekan/client/components/settings/peopleBody.js deleteButton
// - wekan/client/components/sidebar/sidebar.js Popup.afterConfirm('removeMember'
// that does now remove member from board, card members and assignees correctly,
// but that should be used to remove user from all boards similarly
// - wekan/models/users.js Delete is not enabled
//
//console.log('user id: ' + this.userId);
//Popup.afterConfirm('userDelete', function(event) {
//Boards.find({ members: this.userId }).forEach(board => {
// console.log('board id: ' + board._id);
//Cards.find({ boardId: board._id, members: this.userId }).forEach(card => {
// card.unassignMember(this.userId);
//});
//Cards.find({ boardId: board._id, members: this.userId }).forEach(card => {
// card.unassignMember(this.userId);
//});
//Cards.find({ boardId: board._id, assignees: this.userId }).forEach(card => {
// card.unassignAssignee(this.userId);
//});
//Boards.findOne({ boardId: board._id }).removeMember(this.userId);
//});
//Users.remove(this.userId);
*/
Popup.close();
},
});
Template.settingsUserPopup.helpers({
user() {
return Users.findOne(this.userId);
},
authentications() {
return Template.instance().authenticationMethods.get();
},
isSelected(match) {
const userId = Template.instance().data.userId;
const selected = Users.findOne(userId).authenticationMethod;
return selected === match;
},
isLdap() {
const userId = Template.instance().data.userId;
const selected = Users.findOne(userId).authenticationMethod;
return selected === 'ldap';
},
errorMessage() {
return Template.instance().errorMessage.get();
},
});
+36 -31
View File
@@ -269,14 +269,16 @@ template(name="outgoingWebhooksPopup")
template(name="boardMenuPopup")
ul.pop-over-list
li
a.js-open-rules-view(title="{{_ 'rules'}}")
i.fa.fa-magic
| {{_ 'rules'}}
li
a.js-custom-fields
i.fa.fa-list-alt
| {{_ 'custom-fields'}}
if currentUser.isBoardAdmin
li
a.js-open-rules-view(title="{{_ 'rules'}}")
i.fa.fa-magic
| {{_ 'rules'}}
if currentUser.isBoardAdmin
li
a.js-custom-fields
i.fa.fa-list-alt
| {{_ 'custom-fields'}}
li
a.js-open-archives
i.fa.fa-archive
@@ -297,14 +299,14 @@ template(name="boardMenuPopup")
i.fa.fa-flag
| {{_ 'language'}}
unless isSandstorm
if currentUser.isBoardAdmin
hr
ul.pop-over-list
if withApi
li
a.js-export-board
i.fa.fa-share-alt
| {{_ 'export-board'}}
hr
ul.pop-over-list
if withApi
li
a.js-export-board
i.fa.fa-share-alt
| {{_ 'export-board'}}
if currentUser.isBoardAdmin
li
a.js-outgoing-webhooks
i.fa.fa-globe
@@ -317,7 +319,8 @@ template(name="boardMenuPopup")
a.js-subtask-settings
i.fa.fa-sitemap
| {{_ 'subtask-settings'}}
unless currentBoard.isTemplatesBoard
unless currentBoard.isTemplatesBoard
if currentUser.isBoardAdmin
hr
ul.pop-over-list
li
@@ -329,20 +332,22 @@ template(name="boardMenuPopup")
if isSandstorm
hr
ul.pop-over-list
li
a.js-export-board
i.fa.fa-share-alt
| {{_ 'export-board'}}
li
a.js-import-board
i.fa.fa-share-alt
i.fa.fa-sign-in
| {{_ 'import-board-c'}}
li
a.js-archive-board
i.fa.fa-arrow-right
i.fa.fa-archive
| {{_ 'archive-board'}}
if currentUser.isMember
li
a.js-export-board
i.fa.fa-share-alt
| {{_ 'export-board'}}
li
a.js-import-board
i.fa.fa-share-alt
i.fa.fa-sign-in
| {{_ 'import-board-c'}}
if currentUser.isBoardAdmin
li
a.js-archive-board
i.fa.fa-arrow-right
i.fa.fa-archive
| {{_ 'archive-board'}}
li
a.js-outgoing-webhooks
i.fa.fa-globe
+19
View File
@@ -155,6 +155,9 @@ Template.memberPopup.helpers({
user() {
return Users.findOne(this.userId);
},
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
},
memberType() {
const type = Users.findOne(this.userId).isBoardAdmin() ? 'admin' : 'normal';
if (type === 'normal') {
@@ -224,6 +227,9 @@ Template.boardMenuPopup.onCreated(function() {
});
Template.boardMenuPopup.helpers({
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
},
withApi() {
return Template.instance().apiEnabled.get();
},
@@ -249,11 +255,15 @@ Template.memberPopup.events({
},
'click .js-change-role': Popup.open('changePermissions'),
'click .js-remove-member': Popup.afterConfirm('removeMember', function() {
// This works from removing member from board, card members and assignees.
const boardId = Session.get('currentBoard');
const memberId = this.userId;
Cards.find({ boardId, members: memberId }).forEach(card => {
card.unassignMember(memberId);
});
Cards.find({ boardId, assignees: memberId }).forEach(card => {
card.unassignAssignee(memberId);
});
Boards.findOne(boardId).removeMember(memberId);
Popup.close();
}),
@@ -294,6 +304,9 @@ Template.membersWidget.helpers({
return false;
}
},
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
},
});
Template.membersWidget.events({
@@ -475,6 +488,12 @@ Template.labelsWidget.events({
'click .js-add-label': Popup.open('createLabel'),
});
Template.labelsWidget.helpers({
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
},
});
// Board members can assign people or labels by drag-dropping elements from the
// sidebar to the cards on the board. In order to re-initialize the jquery-ui
// plugin any time a draggable member or label is modified or removed we use a
+18 -12
View File
@@ -5,8 +5,9 @@ template(name="archivesSidebar")
unless isWorker
p.quiet
a.js-restore-all-cards {{_ 'restore-all'}}
| -
a.js-delete-all-cards {{_ 'delete-all'}}
if currentUser.isBoardAdmin
| -
a.js-delete-all-cards {{_ 'delete-all'}}
each archivedCards
.minicard-wrapper.js-minicard
+minicard(this)
@@ -14,8 +15,9 @@ template(name="archivesSidebar")
unless isWorker
p.quiet
a.js-restore-card {{_ 'restore'}}
| -
a.js-delete-card {{_ 'delete'}}
if currentUser.isBoardAdmin
| -
a.js-delete-card {{_ 'delete'}}
if cardIsInArchivedList
p.quiet.small ({{_ 'warn-list-archived'}})
else
@@ -25,8 +27,9 @@ template(name="archivesSidebar")
unless isWorker
p.quiet
a.js-restore-all-lists {{_ 'restore-all'}}
| -
a.js-delete-all-lists {{_ 'delete-all'}}
if currentUser.isBoardAdmin
| -
a.js-delete-all-lists {{_ 'delete-all'}}
ul.archived-lists
each archivedLists
li.archived-lists-item
@@ -35,8 +38,9 @@ template(name="archivesSidebar")
unless isWorker
p.quiet
a.js-restore-list {{_ 'restore'}}
| -
a.js-delete-list {{_ 'delete'}}
if currentUser.isBoardAdmin
| -
a.js-delete-list {{_ 'delete'}}
else
li.no-items-message {{_ 'no-archived-lists'}}
@@ -44,8 +48,9 @@ template(name="archivesSidebar")
unless isWorker
p.quiet
a.js-restore-all-swimlanes {{_ 'restore-all'}}
| -
a.js-delete-all-swimlanes {{_ 'delete-all'}}
if currentUser.isBoardAdmin
| -
a.js-delete-all-swimlanes {{_ 'delete-all'}}
ul.archived-lists
each archivedSwimlanes
li.archived-lists-item
@@ -54,8 +59,9 @@ template(name="archivesSidebar")
unless isWorker
p.quiet
a.js-restore-swimlane {{_ 'restore'}}
| -
a.js-delete-swimlane {{_ 'delete'}}
if currentUser.isBoardAdmin
| -
a.js-delete-swimlane {{_ 'delete'}}
else
li.no-items-message {{_ 'no-archived-swimlanes'}}
else
@@ -141,6 +141,9 @@ BlazeComponent.extendComponent({
}).register('archivesSidebar');
Template.archivesSidebar.helpers({
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
},
isWorker() {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
return (
@@ -155,7 +155,7 @@ template(name="multiselectionSidebar")
i.fa.fa-check
else if someSelectedElementHave 'member' _id
i.fa.fa-ellipsis-h
unless currentUser.isWorker
if currentUser.isBoardAdmin
hr
a.sidebar-btn.js-move-selection
i.fa.fa-share
@@ -134,6 +134,15 @@ BlazeComponent.extendComponent({
},
}).register('multiselectionSidebar');
Template.multiselectionSidebar.helpers({
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
},
isCommentOnly() {
return Meteor.user().isCommentOnly();
},
});
Template.disambiguateMultiLabelPopup.events({
'click .js-remove-label'() {
mutateSelectedCards('removeLabel', this._id);
@@ -15,8 +15,9 @@ template(name="swimlaneFixedHeader")
= title
.swimlane-header-menu
unless currentUser.isCommentOnly
a.fa.fa-plus.js-open-add-swimlane-menu.swimlane-header-plus-icon
a.fa.fa-navicon.js-open-swimlane-menu
if currentUser.isBoardAdmin
a.fa.fa-plus.js-open-add-swimlane-menu.swimlane-header-plus-icon
a.fa.fa-navicon.js-open-swimlane-menu
unless isMiniScreen
if showDesktopDragHandles
a.swimlane-header-handle.handle.fa.fa-arrows.js-swimlane-header-handle
@@ -41,6 +41,12 @@ Template.swimlaneHeader.helpers({
},
});
Template.swimlaneFixedHeader.helpers({
isBoardAdmin() {
return Meteor.user().isBoardAdmin();
},
});
Template.swimlaneActionPopup.events({
'click .js-set-swimlane-color': Popup.open('setSwimlaneColor'),
'click .js-close-swimlane'(event) {
@@ -50,6 +56,12 @@ Template.swimlaneActionPopup.events({
},
});
Template.swimlaneActionPopup.helpers({
isCommentOnly() {
return Meteor.user().isCommentOnly();
},
});
BlazeComponent.extendComponent({
onCreated() {
this.currentSwimlane = this.currentData();
+16 -15
View File
@@ -45,18 +45,19 @@ template(name="listsGroup")
template(name="addListForm")
unless currentUser.isWorker
.list.list-composer.js-list-composer(class="{{#if isMiniScreen}}mini-list{{/if}}")
.list-header-add
+inlinedForm(autoclose=false)
input.list-name-input.full-line(type="text" placeholder="{{_ 'add-list'}}"
autocomplete="off" autofocus)
.edit-controls.clearfix
button.primary.confirm(type="submit") {{_ 'save'}}
unless currentBoard.isTemplatesBoard
unless currentBoard.isTemplateBoard
span.quiet
| {{_ 'or'}}
a.js-list-template {{_ 'template'}}
else
a.open-list-composer.js-open-inlined-form
i.fa.fa-plus
| {{_ 'add-list'}}
if currentUser.isBoardAdmin
.list-header-add
+inlinedForm(autoclose=false)
input.list-name-input.full-line(type="text" placeholder="{{_ 'add-list'}}"
autocomplete="off" autofocus)
.edit-controls.clearfix
button.primary.confirm(type="submit") {{_ 'save'}}
unless currentBoard.isTemplatesBoard
unless currentBoard.isTemplateBoard
span.quiet
| {{_ 'or'}}
a.js-list-template {{_ 'template'}}
else
a.open-list-composer.js-open-inlined-form
i.fa.fa-plus
| {{_ 'add-list'}}
+5 -3
View File
@@ -122,7 +122,8 @@ function initSortable(boardComponent, $listsDom) {
'option',
'disabled',
// Disable drag-dropping when user is not member/is worker
!userIsMember() || Meteor.user().isWorker(),
//!userIsMember() || Meteor.user().isWorker(),
!Meteor.user().isBoardAdmin(),
// Not disable drag-dropping while in multi-selection mode
// MultiSelection.isActive() || !userIsMember(),
);
@@ -274,12 +275,13 @@ Template.swimlane.helpers({
}
},
canSeeAddList() {
return (
return Meteor.user().isBoardAdmin();
/*
Meteor.user() &&
Meteor.user().isBoardMember() &&
!Meteor.user().isCommentOnly() &&
!Meteor.user().isWorker()
);
*/
},
});
@@ -36,6 +36,10 @@
// Minimize swimlanes end https://www.w3schools.com/howto/howto_js_accordion.asp
*/
[class=swimlane]
position: sticky
left: 0
.swimlane
// Even if this background color is the same as the body we can't leave it
// transparent, because that won't work during a swimlane drag.
+6 -2
View File
@@ -31,6 +31,10 @@ Blaze.registerHelper('concat', (...args) => args.slice(0, -1).join(''));
Blaze.registerHelper('isMiniScreen', () => Utils.isMiniScreen());
Blaze.registerHelper('isShowDesktopDragHandles', () => Utils.isShowDesktopDragHandles());
Blaze.registerHelper('isShowDesktopDragHandles', () =>
Utils.isShowDesktopDragHandles(),
);
Blaze.registerHelper('isMiniScreenOrShowDesktopDragHandles', () => Utils.isMiniScreenOrShowDesktopDragHandles());
Blaze.registerHelper('isMiniScreenOrShowDesktopDragHandles', () =>
Utils.isMiniScreenOrShowDesktopDragHandles(),
);
+2 -4
View File
@@ -192,11 +192,9 @@ Utils = {
// returns if desktop drag handles are enabled
isShowDesktopDragHandles() {
let currentUser = Meteor.user();
const currentUser = Meteor.user();
if (currentUser) {
return (currentUser.profile || {}).showDesktopDragHandles;
} else if (cookies.has('showDesktopDragHandles')) {
return true;
} else {
return false;
}
@@ -204,7 +202,7 @@ Utils = {
// returns if mini screen or desktop drag handles
isMiniScreenOrShowDesktopDragHandles() {
return this.isMiniScreen() || this.isShowDesktopDragHandles()
return this.isMiniScreen() || this.isShowDesktopDragHandles();
},
calculateIndexData(prevData, nextData, nItems = 1) {
+8 -2
View File
@@ -92,11 +92,17 @@ services:
#-------------------------------------------------------------------------------------
# ==== MONGODB AND METEOR VERSION ====
# a) mongodb latest, like 3.2 - 4.4 or newer https://hub.docker.com/_/mongo?tab=description
image: mongo:latest
# 2020-12-03:
# - Mongo image copied from Docker Hub mongo:4.4.2-bionic to Quay
# to avoid Docker Hub rate limits.
image: quay.io/wekan/mongo:4.4.2-bionic
#-------------------------------------------------------------------------------------
container_name: wekan-db
restart: always
command: mongod --oplogSize 128
# command: mongod --oplogSize 128
# Syslog: mongod --syslog --oplogSize 128 --quiet
# Disable MongoDB logs:
command: mongod --logpath /dev/null --oplogSize 128 --quiet
networks:
- wekan-tier
expose:
+4 -3
View File
@@ -1,7 +1,6 @@
name: wekan
version: 1.0.0
appVersion: 2.x.x
kubeVersion: "^1.8.0-0"
version: 1.0.2
apiVersion: v1
description: Open Source kanban
home: https://wekan.github.io/
icon: https://wekan.github.io/wekan-logo.svg
@@ -10,4 +9,6 @@ sources:
maintainers:
- name: technotaff
email: github@randall.cc
- name: jiangytcn
email: jiangyt.cn@gmail.com
engine: gotpl
+4 -4
View File
@@ -1,5 +1,5 @@
dependencies:
- name: mongodb-replicaset
version: 3.11.x
repository: "https://kubernetes-charts.storage.googleapis.com/"
condition: mongodb-replicaset.enabled
- name: mongodb
version: 10.0.x
repository: "https://charts.bitnami.com/bitnami"
condition: mongodb.enabled
+13 -7
View File
@@ -62,21 +62,27 @@ Create the name of the service account to use for the api component
Create a default fully qualified mongodb-replicaset name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "wekan.mongodb-replicaset.fullname" -}}
{{- $name := default "mongodb-replicaset" (index .Values "mongodb-replicaset" "nameOverride") -}}
{{- define "wekan.mongodb.svcname" -}}
{{- $name := default "mongodb" (index .Values "mongodb" "nameOverride") -}}
{{- if eq .Values.mongodb.architecture "replicaset" }}
{{- printf "%s-%s-headless" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{/*
Create the MongoDB URL. If MongoDB is installed as part of this chart, use k8s service discovery,
else use user-provided URL.
*/}}
{{- define "mongodb-replicaset.url" -}}
{{- if (index .Values "mongodb-replicaset" "enabled") -}}
{{- $count := (int (index .Values "mongodb-replicaset" "replicas")) -}}
{{- define "mongodb.url" -}}
{{- if (index .Values "mongodb" "enabled") -}}
{{- $count := (int (index .Values "mongodb" "replicaCount")) -}}
{{- $release := .Release.Name -}}
mongodb://{{ $release }}-mongodb-replicaset:27017/admin?replicaSet={{ index .Values "mongodb-replicaset" "replicaSetName" }}
{{- $replicaSetName := (index .Values "mongodb" "replicaSetName") -}}
{{- $mongodbSvcName := include "wekan.mongodb.svcname" . -}}
mongodb://{{- range $v := until $count }}{{ $release }}-mongodb-{{ $v }}.{{ $mongodbSvcName }}:27017{{ if ne $v (sub $count 1) }},{{- end -}}{{- end -}}?replicaSet={{ $replicaSetName }}
{{- else -}}
{{- index .Values "mongodb-replicaset" "url" -}}
{{- index .Values "mongodb" "url" -}}
{{- end -}}
{{- end -}}
+7 -1
View File
@@ -36,13 +36,19 @@ spec:
- name: ROOT_URL
value: {{ .Values.root_url | default "https://wekan.local" | quote }}
- name: MONGO_URL
value: "{{ template "mongodb-replicaset.url" . }}"
value: "{{ template "mongodb.url" . }}"
{{- range $key := .Values.env }}
{{- if .value }}
- name: {{ .name }}
value: {{ .value | quote }}
{{- end }}
{{- end }}
{{- range $key := .Values.secretEnv }}
{{- if .value }}
- name: {{ .name }}
value: {{ .value | quote }}
{{- end }}
{{- end }}
livenessProbe:
httpGet:
path: /
+5 -2
View File
@@ -2,7 +2,7 @@
{{- $fullName := include "wekan.fullname" . -}}
{{- $servicePort := .Values.service.port -}}
{{- $ingressPath := .Values.ingress.path -}}
apiVersion: extensions/v1beta1
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: {{ $fullName }}
@@ -27,6 +27,9 @@ spec:
secretName: {{ .secretName }}
{{- end }}
{{- end }}
backend:
serviceName: {{ $fullName }}
servicePort: 8080
rules:
{{- range .Values.ingress.hosts }}
- host: {{ . }}
@@ -35,6 +38,6 @@ spec:
- path: {{ $ingressPath }}
backend:
serviceName: {{ $fullName }}
servicePort: 80
servicePort: 8080
{{- end }}
{{- end }}
-14
View File
@@ -1,14 +0,0 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ template "wekan.fullname" . }}
labels:
app: {{ template "wekan.name" . }}
chart: {{ template "wekan.chart" . }}
component: wekan
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
type: Opaque
data:
accessKey: {{ .Values.credentials.accessKey | b64enc }}
secretKey: {{ .Values.credentials.secretKey | b64enc }}
@@ -1,27 +0,0 @@
apiVersion: v1
kind: Pod
metadata:
name: {{ template "wekan.fullname" . }}-test
annotations:
"helm.sh/hook": test-success
spec:
containers:
- name: {{ template "wekan.fullname" . }}-test
imagePullPolicy: IfNotPresent
image: "docker.io/mesosphere/aws-cli:1.14.5"
command:
- sh
- -c
- aws s3 --endpoint-url=http://{{ include "wekan.fullname" . }} --region=us-east-1 ls
env:
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: {{ template "wekan.fullname" . }}
key: accessKey
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: {{ template "wekan.fullname" . }}
key: secretKey
restartPolicy: Never
+14 -15
View File
@@ -22,21 +22,23 @@ image:
replicaCount: 1
## Specify wekan credentials
##
credentials:
accessKey: access-key
secretKey: secret-key
## Specify additional environmental variables for the Deployment
##
env:
- name: ""
value: ""
## Specify additional secret environmental variables for the
## Deployment. These can e.g. be provided by a Secret and allow
## to store passwords separately
##
secretEnv:
- name: ""
value: ""
service:
type: NodePort
port: 80
port: 8080
annotations: {}
# prometheus.io/scrape: "true"
# prometheus.io/port: "8000"
@@ -104,13 +106,10 @@ autoscaling:
# MongoDB:
# ------------------------------------------------------------------------------
mongodb-replicaset:
mongodb:
enabled: true
replicas: 3
architecture: replicaset
replicaCount: 3
replicaSetName: rs0
securityContext:
runAsUser: 1000
fsGroup: 1000
runAsNonRoot: true
#image:
# tag: 3.2.21
auth:
enabled: false
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+6 -2
View File
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "nedokončený seznam %s",
"activity-editComment": "upravit komentář %s",
"activity-deleteComment": "smazat komentář %s",
"activity-receivedDate": "editoval(a) datum přijetí na %s z %s",
"activity-startDate": "editoval(a) datum zahájení na %s z %s",
"activity-dueDate": "editoval(a) termín dokončení na %s z %s",
"activity-endDate": "editoval(a) datum ukončení na %s z %s",
"add-attachment": "Přidat přílohu",
"add-board": "Přidat tablo",
"add-card": "Přidat kartu",
@@ -120,7 +124,7 @@
"attachmentDeletePopup-title": "Smazat přílohu?",
"attachments": "Přílohy",
"auto-watch": "Automaticky sleduj tabla když jsou vytvořena",
"avatar-too-big": "Avatar obrázek je příliš velký (70KB max)",
"avatar-too-big": "Avatar je příliš velký (520KB max)",
"back": "Zpět",
"board-change-color": "Změnit barvu",
"board-nb-stars": "%s hvězdiček",
@@ -488,7 +492,7 @@
"shortcut-filter-my-cards": "Filtrovat mé karty",
"shortcut-show-shortcuts": "Otevřít tento seznam odkazů",
"shortcut-toggle-filterbar": "Přepnout lištu filtrování",
"shortcut-toggle-searchbar": "Toggle Search Sidebar",
"shortcut-toggle-searchbar": "Přepnout lištu vyhledávání",
"shortcut-toggle-sidebar": "Přepnout lištu tabla",
"show-cards-minimum-count": "Zobrazit počet karet pokud sloupec obsahuje více než",
"sidebar-open": "Otevřít boční panel",
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+5 -1
View File
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
"activity-editComment": "edited comment %s",
"activity-deleteComment": "deleted comment %s",
"activity-receivedDate": "edited received date to %s of %s",
"activity-startDate": "edited start date to %s of %s",
"activity-dueDate": "edited due date to %s of %s",
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-card": "Add Card",
@@ -120,7 +124,7 @@
"attachmentDeletePopup-title": "Delete Attachment?",
"attachments": "Attachments",
"auto-watch": "Automatically watch boards when they are created",
"avatar-too-big": "The avatar is too large (70KB max)",
"avatar-too-big": "The avatar is too large (520KB max)",
"back": "Back",
"board-change-color": "Change color",
"board-nb-stars": "%s stars",
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+15 -11
View File
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "no completó la lista de comprobación %s",
"activity-editComment": "comentario editado",
"activity-deleteComment": "comentario eliminado",
"activity-receivedDate": "editada la fecha de recepción a %s de %s",
"activity-startDate": "editada la fecha de inicio a %s de %s",
"activity-dueDate": "editada la fecha de vencimiento a %s de %s",
"activity-endDate": "editada la fecha de finalización a %s de %s",
"add-attachment": "Agregar adjunto",
"add-board": "Agregar tablero",
"add-card": "Agregar una tarjeta",
@@ -120,7 +124,7 @@
"attachmentDeletePopup-title": "¿Eliminar el adjunto?",
"attachments": "Adjuntos",
"auto-watch": "Suscribirse automáticamente a los tableros cuando son creados",
"avatar-too-big": "El avatar es muy grande (70 KB máx.)",
"avatar-too-big": "El avatar es muy grande (520 KB máx.)",
"back": "Atrás",
"board-change-color": "Cambiar el color",
"board-nb-stars": "%s destacados",
@@ -162,11 +166,11 @@
"cardAttachmentsPopup-title": "Adjuntar desde",
"cardCustomField-datePopup-title": "Cambiar la fecha",
"cardCustomFieldsPopup-title": "Editar los campos personalizados",
"cardStartVotingPopup-title": "Comience a votar",
"cardStartVotingPopup-title": "Iniciar una votación",
"positiveVoteMembersPopup-title": "Favorables",
"negativeVoteMembersPopup-title": "Contrarios",
"card-edit-voting": "Editar votación",
"editVoteEndDatePopup-title": "Cambie fecha de termino del voto",
"editVoteEndDatePopup-title": "Cambiar la fecha de finalización de la votación",
"allowNonBoardMembers": "Permitir todos los usuarios autentificados",
"vote-question": "Pregunta de votación",
"vote-public": "Mostrar quien voto que",
@@ -285,7 +289,7 @@
"edit-profile": "Editar el perfil",
"edit-wip-limit": "Cambiar el límite del trabajo en proceso",
"soft-wip-limit": "Límite del trabajo en proceso flexible",
"editCardStartDatePopup-title": "Cambiar la fecha de comienzo",
"editCardStartDatePopup-title": "Cambiar la fecha de inicio",
"editCardDueDatePopup-title": "Cambiar la fecha de vencimiento",
"editCustomFieldPopup-title": "Editar el campo",
"editCardSpentTimePopup-title": "Cambiar el tiempo consumido",
@@ -488,7 +492,7 @@
"shortcut-filter-my-cards": "Filtrar mis tarjetas",
"shortcut-show-shortcuts": "Mostrar esta lista de atajos",
"shortcut-toggle-filterbar": "Alternar la barra lateral del filtro",
"shortcut-toggle-searchbar": "Toggle Search Sidebar",
"shortcut-toggle-searchbar": "Alternar la barra lateral de búsqueda",
"shortcut-toggle-sidebar": "Alternar la barra lateral del tablero",
"show-cards-minimum-count": "Mostrar recuento de tarjetas si la lista contiene más de",
"sidebar-open": "Abrir la barra lateral",
@@ -558,11 +562,11 @@
"smtp-password": "Contraseña",
"smtp-tls": "Soporte TLS",
"send-from": "Desde",
"send-smtp-test": "Enviarte un correo de prueba a ti mismo",
"send-smtp-test": "Enviar un correo de prueba a usted mismo",
"invitation-code": "Código de Invitación",
"email-invite-register-subject": "__inviter__ le envió una invitación",
"email-invite-register-text": "Estimado __user__,\n\n__inviter__ le invita a participar en un tablero Kanban para colaborar.\n\nPor favor, siga el siguiente enlace:\n__url__\n\nY su código de invitación es: __icode__\n\nGracias.",
"email-smtp-test-subject": "Prueba de email SMTP",
"email-smtp-test-subject": "Correo de prueba SMTP",
"email-smtp-test-text": "El correo se ha enviado correctamente",
"error-invitation-code-not-exist": "El código de invitación no existe",
"error-notAuthorized": "No está autorizado a ver esta página.",
@@ -707,7 +711,7 @@
"r-uncheck": "Desmarcar",
"r-item": "elemento",
"r-of-checklist": "de la lista de comprobación",
"r-send-email": "Enviar un email",
"r-send-email": "Enviar un correo electrónico",
"r-to": "a",
"r-of": "de",
"r-subject": "asunto",
@@ -716,7 +720,7 @@
"r-d-move-to-top-spec": "Mover la tarjeta al inicio de la lista",
"r-d-move-to-bottom-gen": "Mover la tarjeta al final de su lista",
"r-d-move-to-bottom-spec": "Mover la tarjeta al final de la lista",
"r-d-send-email": "Enviar email",
"r-d-send-email": "Enviar correo electrónico",
"r-d-send-email-to": "a",
"r-d-send-email-subject": "asunto",
"r-d-send-email-message": "mensaje",
@@ -779,11 +783,11 @@
"previous_as": "el último tiempo fue",
"act-a-dueAt": "cambiada la hora de vencimiento a \nCuándo: __timeValue__\nDónde: __card__\n el vencimiento anterior fue __timeOldValue__",
"act-a-endAt": "cambiada la hora de finalización a __timeValue__ Fecha anterior: (__timeOldValue__)",
"act-a-startAt": "cambiada la hora de comienzo a __timeValue__ Fecha anterior: (__timeOldValue__)",
"act-a-startAt": "cambiada la hora de inicio a __timeValue__ de (__timeOldValue__)",
"act-a-receivedAt": "cambiada la fecha de recepción a __timeValue__ Fecha anterior: (__timeOldValue__)",
"a-dueAt": "cambiada la hora de vencimiento a",
"a-endAt": "cambiada la hora de finalización a",
"a-startAt": "cambiada la hora de comienzo a",
"a-startAt": "cambiada la hora de inicio a",
"a-receivedAt": "cambiada la hora de recepción a",
"almostdue": "está próxima la hora de vencimiento actual %s",
"pastdue": "se sobrepasó la hora de vencimiento actual %s",
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+6 -2
View File
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "a rendu incomplète la checklist %s",
"activity-editComment": "commentaire modifié %s",
"activity-deleteComment": "commentaire supprimé %s",
"activity-receivedDate": "date de réception éditée de %s à %s",
"activity-startDate": "date de début éditée de %s à %s",
"activity-dueDate": "date d'échéance éditée de %s à %s",
"activity-endDate": "date de fin éditée de %s à %s",
"add-attachment": "Ajouter une pièce jointe",
"add-board": "Ajouter un tableau",
"add-card": "Ajouter une carte",
@@ -120,7 +124,7 @@
"attachmentDeletePopup-title": "Supprimer la pièce jointe ?",
"attachments": "Pièces jointes",
"auto-watch": "Surveiller automatiquement les tableaux quand ils sont créés",
"avatar-too-big": "La taille du fichier de l'avatar est trop importante (70 ko au maximum)",
"avatar-too-big": "La taille du fichier de l'avatar est trop importante (520 ko au maximum)",
"back": "Retour",
"board-change-color": "Changer la couleur",
"board-nb-stars": "%s étoiles",
@@ -488,7 +492,7 @@
"shortcut-filter-my-cards": "Filtrer mes cartes",
"shortcut-show-shortcuts": "Afficher cette liste de raccourcis",
"shortcut-toggle-filterbar": "Afficher/Masquer la barre latérale des filtres",
"shortcut-toggle-searchbar": "Toggle Search Sidebar",
"shortcut-toggle-searchbar": "Afficher/Masquer la barre latérale de recherche",
"shortcut-toggle-sidebar": "Afficher/Masquer la barre latérale du tableau",
"show-cards-minimum-count": "Afficher le nombre de cartes si la liste en contient plus de",
"sidebar-open": "Ouvrir le panneau",
+839 -835
View File
File diff suppressed because it is too large. Load diff
+5 -1
View File
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "רשימת המשימות %s סומנה כבלתי מושלמת",
"activity-editComment": "התגובה %s נערכה",
"activity-deleteComment": "התגובה %s נמחקה",
"activity-receivedDate": "תאריך הקבלה השתנה מ־%s ל־%s",
"activity-startDate": "תאריך ההתחלה השתנה מ־%s ל־%s",
"activity-dueDate": "תאריך היעד השתנה מ־%s ל־%s",
"activity-endDate": "תאריך הסיום השתנה מ־%s ל־%s",
"add-attachment": "הוספת קובץ מצורף",
"add-board": "הוספת לוח",
"add-card": "הוספת כרטיס",
@@ -120,7 +124,7 @@
"attachmentDeletePopup-title": "למחוק קובץ מצורף?",
"attachments": "קבצים מצורפים",
"auto-watch": "הוספת לוחות למעקב כשהם נוצרים",
"avatar-too-big": "תמונת המשתמש גדולה מדי (70 ק״ב לכל היותר)",
"avatar-too-big": "תמונת המשתמש גדולה מדי (520 ק״ב לכל היותר)",
"back": "חזרה",
"board-change-color": "שינוי צבע",
"board-nb-stars": "%s כוכבים",
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+6 -2
View File
@@ -1,6 +1,6 @@
{
"accept": "យល់ព្រម",
"act-activity-notify": "Activity Notification",
"act-activity-notify": "ដំណឹងនៃសកម្មភាព",
"act-addAttachment": "added attachment __attachment__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
"act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
"activity-editComment": "edited comment %s",
"activity-deleteComment": "deleted comment %s",
"activity-receivedDate": "edited received date to %s of %s",
"activity-startDate": "edited start date to %s of %s",
"activity-dueDate": "edited due date to %s of %s",
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Add Attachment",
"add-board": "Add Board",
"add-card": "Add Card",
@@ -120,7 +124,7 @@
"attachmentDeletePopup-title": "Delete Attachment?",
"attachments": "Attachments",
"auto-watch": "Automatically watch boards when they are created",
"avatar-too-big": "The avatar is too large (70KB max)",
"avatar-too-big": "The avatar is too large (520KB max)",
"back": "Back",
"board-change-color": "Change color",
"board-nb-stars": "%s stars",
+113 -109
View File
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "uncompleted the checklist %s",
"activity-editComment": "수정된 댓글",
"activity-deleteComment": "삭제된 댓글",
"activity-receivedDate": "edited received date to %s of %s",
"activity-startDate": "edited start date to %s of %s",
"activity-dueDate": "edited due date to %s of %s",
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "첨부파일 추가",
"add-board": "보드 추가",
"add-card": "카드 추가",
@@ -98,7 +102,7 @@
"and-n-other-card_plural": "__count__ 개의 다른 카드들",
"apply": "적용",
"app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.",
"archive": "Move to Archive",
"archive": "보관으로 이동",
"archive-all": "Move All to Archive",
"archive-board": "Move Board to Archive",
"archive-card": "Move Card to Archive",
@@ -107,11 +111,11 @@
"archive-selection": "Move selection to Archive",
"archiveBoardPopup-title": "Move Board to Archive?",
"archived-items": "보관",
"archived-boards": "Boards in Archive",
"archived-boards": "보관 중인 보드",
"restore-board": "보드 복구",
"no-archived-boards": "No Boards in Archive.",
"no-archived-boards": "보관 중인 보드 없음.",
"archives": "보관",
"template": "Template",
"template": "템플릿",
"templates": "Templates",
"assign-member": "멤버 지정",
"attached": "첨부됨",
@@ -120,7 +124,7 @@
"attachmentDeletePopup-title": "첨부 파일을 삭제합니까?",
"attachments": "첨부 파일",
"auto-watch": "생성한 보드를 자동으로 감시합니다.",
"avatar-too-big": "아바타 파일이 너무 큽니다. (최대 70KB)",
"avatar-too-big": "The avatar is too large (520KB max)",
"back": "뒤로",
"board-change-color": "보드 색 변경",
"board-nb-stars": "%s개의 별",
@@ -131,11 +135,11 @@
"boardChangeTitlePopup-title": "보드 이름 바꾸기",
"boardChangeVisibilityPopup-title": "표시 여부 변경",
"boardChangeWatchPopup-title": "감시상태 변경",
"boardMenuPopup-title": "Board Settings",
"boardMenuPopup-title": "보드 메뉴",
"boardChangeViewPopup-title": "Board View",
"boards": "보드",
"board-view": "Board View",
"board-view-cal": "Calendar",
"board-view-cal": "달력",
"board-view-swimlanes": "Swimlanes",
"board-view-collapse": "Collapse",
"board-view-gantt": "Gantt",
@@ -160,30 +164,30 @@
"card-start": "시작일",
"card-start-on": "시작일",
"cardAttachmentsPopup-title": "첨부 파일",
"cardCustomField-datePopup-title": "Change date",
"cardCustomField-datePopup-title": "날짜 변경",
"cardCustomFieldsPopup-title": "Edit custom fields",
"cardStartVotingPopup-title": "Start a vote",
"cardStartVotingPopup-title": "투표 시작",
"positiveVoteMembersPopup-title": "Proponents",
"negativeVoteMembersPopup-title": "Opponents",
"card-edit-voting": "Edit voting",
"card-edit-voting": "투표 수정",
"editVoteEndDatePopup-title": "Change vote end date",
"allowNonBoardMembers": "Allow all logged in users",
"vote-question": "Voting question",
"vote-question": "투표 질문",
"vote-public": "Show who voted what",
"vote-for-it": "for it",
"vote-against": "against",
"deleteVotePopup-title": "Delete vote?",
"deleteVotePopup-title": "투표를 삭제합니까?",
"vote-delete-pop": "Deleting is permanent. You will lose all actions associated with this vote.",
"cardDeletePopup-title": "카드를 삭제합니까?",
"cardDetailsActionsPopup-title": "카드 액션",
"cardLabelsPopup-title": "라벨",
"cardMembersPopup-title": "멤버",
"cardMorePopup-title": "더보기",
"cardTemplatePopup-title": "Create template",
"cardTemplatePopup-title": "템플릿 생성",
"cards": "카드",
"cards-count": "카드",
"casSignIn": "Sign In with CAS",
"cardType-card": "Card",
"cardType-card": "카드",
"cardType-linkedCard": "Linked Card",
"cardType-linkedBoard": "Linked Board",
"change": "변경",
@@ -206,28 +210,28 @@
"close-board-pop": "You will be able to restore the board by clicking the “Archive” button from the home header.",
"color-black": "블랙",
"color-blue": "블루",
"color-crimson": "crimson",
"color-darkgreen": "darkgreen",
"color-gold": "gold",
"color-gray": "gray",
"color-crimson": "진홍색",
"color-darkgreen": "암녹색",
"color-gold": "금색",
"color-gray": "회색",
"color-green": "그린",
"color-indigo": "indigo",
"color-indigo": "인디고",
"color-lime": "라임",
"color-magenta": "magenta",
"color-mistyrose": "mistyrose",
"color-navy": "navy",
"color-magenta": "자홍색",
"color-mistyrose": "미스티로즈",
"color-navy": "남색",
"color-orange": "오렌지",
"color-paleturquoise": "paleturquoise",
"color-peachpuff": "peachpuff",
"color-paleturquoise": "청록색",
"color-peachpuff": "피치퍼프",
"color-pink": "핑크",
"color-plum": "plum",
"color-plum": "진자주색",
"color-purple": "퍼플",
"color-red": "레드",
"color-saddlebrown": "saddlebrown",
"color-silver": "silver",
"color-saddlebrown": "새들브라운",
"color-silver": "은",
"color-sky": "스카이",
"color-slateblue": "slateblue",
"color-white": "white",
"color-slateblue": "슬레이트블루",
"color-white": "흰색",
"color-yellow": "옐로우",
"unset-color": "Unset",
"comment": "댓글",
@@ -252,11 +256,11 @@
"createBoardPopup-title": "보드 생성",
"chooseBoardSourcePopup-title": "보드 가져오기",
"createLabelPopup-title": "라벨 생성",
"createCustomField": "Create Field",
"createCustomFieldPopup-title": "Create Field",
"createCustomField": "필드 생성",
"createCustomFieldPopup-title": "필드 생성",
"current": "경향",
"custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
"custom-field-checkbox": "Checkbox",
"custom-field-checkbox": "체크 박스",
"custom-field-currency": "Currency",
"custom-field-currency-option": "Currency Code",
"custom-field-date": "날짜",
@@ -265,8 +269,8 @@
"custom-field-dropdown-options": "List Options",
"custom-field-dropdown-options-placeholder": "Press enter to add more options",
"custom-field-dropdown-unknown": "(unknown)",
"custom-field-number": "Number",
"custom-field-text": "Text",
"custom-field-number": "숫자",
"custom-field-text": "텍스트",
"custom-fields": "Custom Fields",
"date": "날짜",
"decline": "쇠퇴",
@@ -287,7 +291,7 @@
"soft-wip-limit": "원만한 WIP 제한",
"editCardStartDatePopup-title": "시작일 변경",
"editCardDueDatePopup-title": "종료일 변경",
"editCustomFieldPopup-title": "Edit Field",
"editCustomFieldPopup-title": "필드 수정",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "라벨 변경",
"editNotificationPopup-title": "알림 수정",
@@ -325,11 +329,11 @@
"export-board-tsv": "Export board to TSV",
"export-board-html": "Export board to HTML",
"exportBoardPopup-title": "보드 내보내기",
"sort": "Sort",
"sort": "분류",
"sort-desc": "Click to Sort List",
"list-sort-by": "Sort the List By:",
"list-label-modifiedAt": "Last Access Time",
"list-label-title": "Name of the List",
"list-label-title": "리스트 이름",
"list-label-sort": "Your Manual Order",
"list-label-short-modifiedAt": "(L)",
"list-label-short-title": "(N)",
@@ -379,8 +383,8 @@
"import-map-members": "보드 멤버들",
"import-members-map": "Your imported board has some members. Please map the members you want to import to your users",
"import-show-user-mapping": "멤버 매핑 미리보기",
"import-user-select": "Pick your existing user you want to use as this member",
"importMapMembersAddPopup-title": "Select member",
"import-user-select": "이 멤버로 사용할 기존 사용자를 선택하십시오.",
"importMapMembersAddPopup-title": "멤버 선택",
"info": "Version",
"initials": "이니셜",
"invalid-date": "적절하지 않은 날짜",
@@ -403,9 +407,9 @@
"list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Archive and bring them back to the board, click “Menu” > “Archive”.",
"list-move-cards": "목록에 있는 모든 카드를 이동",
"list-select-cards": "목록에 있는 모든 카드를 선택",
"set-color-list": "Set Color",
"set-color-list": "색 설정",
"listActionPopup-title": "동작 목록",
"settingsUserPopup-title": "User Settings",
"settingsUserPopup-title": "사용자 설정",
"swimlaneActionPopup-title": "Swimlane Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Trello 카드 가져 오기",
@@ -435,8 +439,8 @@
"muted-info": "보드의 변경된 사항들의 알림을 받지 않습니다.",
"my-boards": "내 보드",
"name": "이름",
"no-archived-cards": "No cards in Archive.",
"no-archived-lists": "No lists in Archive.",
"no-archived-cards": "보관 중인 카드 없음.",
"no-archived-lists": "보관중인 목록 없음.",
"no-archived-swimlanes": "No swimlanes in Archive.",
"no-results": "결과 값 없음",
"normal": "표준",
@@ -473,11 +477,11 @@
"restore": "복구",
"save": "저장",
"search": "검색",
"rules": "Rules",
"rules": "규칙",
"search-cards": "Search from card/list titles, descriptions and custom fields on this board",
"search-example": "Write text you search and press Enter",
"select-color": "색 선택",
"select-board": "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-assign-self": "현재 카드에 자신을 지정하세요.",
@@ -510,7 +514,7 @@
"title": "제목",
"tracking": "추적",
"tracking-info": "보드 생성자 또는 멤버로 참여하는 모든 카드에 대한 변경사항 알림 받음",
"type": "Type",
"type": "타입",
"unassign-member": "멤버 할당 해제",
"unsaved-description": "저장되지 않은 설명이 있습니다.",
"unwatch": "감시 해제",
@@ -619,10 +623,10 @@
"requested-by": "Requested By",
"board-delete-notice": "Deleting is permanent. You will lose all lists, cards and actions associated with this board.",
"delete-board-confirm-popup": "모든 목록, 카드, 레이블 및 활동이 삭제되고 보드 내용을 복구할 수 없습니다. 실행 취소는 불가능합니다.",
"boardDeletePopup-title": "Delete Board?",
"boardDeletePopup-title": "보드 삭제?",
"delete-board": "보드 삭제",
"default-subtasks-board": "Subtasks for __board__ board",
"default": "Default",
"default": "기본",
"queue": "Queue",
"subtask-settings": "Subtasks Settings",
"card-settings": "카드 설정",
@@ -647,98 +651,98 @@
"activity-delete-attach-card": "첨부 파일 제거",
"activity-set-customfield": "set custom field '%s' to '%s' in %s",
"activity-unset-customfield": "unset custom field '%s' in %s",
"r-rule": "Rule",
"r-rule": "규칙",
"r-add-trigger": "Add trigger",
"r-add-action": "Add action",
"r-add-action": "동작 추가",
"r-board-rules": "Board rules",
"r-add-rule": "Add rule",
"r-view-rule": "View rule",
"r-delete-rule": "Delete rule",
"r-new-rule-name": "New rule title",
"r-no-rules": "No rules",
"r-add-rule": "규칙 추가",
"r-view-rule": "규칙 보기",
"r-delete-rule": "규칙 삭제",
"r-new-rule-name": "새로운 규칙 제목",
"r-no-rules": "규칙 없음",
"r-trigger": "Trigger",
"r-action": "Action",
"r-action": "동작",
"r-when-a-card": "When a card",
"r-is": "is",
"r-is-moved": "is moved",
"r-added-to": "Added to",
"r-removed-from": "Removed from",
"r-the-board": "the board",
"r-list": "list",
"r-list": "목록",
"set-filter": "Set Filter",
"r-moved-to": "Moved to",
"r-moved-from": "Moved from",
"r-archived": "Moved to Archive",
"r-unarchived": "Restored from Archive",
"r-a-card": "a card",
"r-a-card": "카드",
"r-when-a-label-is": "When a label is",
"r-when-the-label": "When the label",
"r-list-name": "list name",
"r-list-name": "목록 이름",
"r-when-a-member": "When a member is",
"r-when-the-member": "When the member",
"r-name": "name",
"r-name": "이름",
"r-when-a-attach": "When an attachment",
"r-when-a-checklist": "When a checklist is",
"r-when-the-checklist": "When the checklist",
"r-completed": "Completed",
"r-completed": "완료",
"r-made-incomplete": "Made incomplete",
"r-when-a-item": "When a checklist item is",
"r-when-the-item": "When the checklist item",
"r-checked": "Checked",
"r-checked": "선택",
"r-unchecked": "Unchecked",
"r-move-card-to": "Move card to",
"r-top-of": "Top of",
"r-bottom-of": "Bottom of",
"r-its-list": "its list",
"r-archive": "Move to Archive",
"r-archive": "보관으로 이동",
"r-unarchive": "Restore from Archive",
"r-card": "card",
"r-card": "카드",
"r-add": "추가",
"r-remove": "Remove",
"r-label": "label",
"r-member": "member",
"r-remove": "제거",
"r-label": "라벨",
"r-member": "멤버",
"r-remove-all": "Remove all members from the card",
"r-set-color": "Set color to",
"r-checklist": "checklist",
"r-check-all": "Check all",
"r-check-all": "전체 선택",
"r-uncheck-all": "Uncheck all",
"r-items-check": "items of checklist",
"r-check": "Check",
"r-uncheck": "Uncheck",
"r-item": "item",
"r-check": "선택",
"r-uncheck": "선택되지 않은 항목",
"r-item": "항목",
"r-of-checklist": "of checklist",
"r-send-email": "Send an email",
"r-send-email": "이메일 전송",
"r-to": "to",
"r-of": "of",
"r-subject": "subject",
"r-rule-details": "Rule details",
"r-d-move-to-top-gen": "Move card to top of its list",
"r-d-move-to-top-spec": "Move card to top of list",
"r-d-move-to-top-spec": "카드를 목록의 맨 위로 이동",
"r-d-move-to-bottom-gen": "Move card to bottom of its list",
"r-d-move-to-bottom-spec": "Move card to bottom of list",
"r-d-send-email": "Send email",
"r-d-move-to-bottom-spec": "카드를 목록의 맨 아래로 이동",
"r-d-send-email": "이메일 전송",
"r-d-send-email-to": "to",
"r-d-send-email-subject": "subject",
"r-d-send-email-message": "message",
"r-d-send-email-message": "메시지",
"r-d-archive": "Move card to Archive",
"r-d-unarchive": "Restore card from Archive",
"r-d-add-label": "Add label",
"r-d-remove-label": "Remove label",
"r-create-card": "Create new card",
"r-d-add-label": "라벨 추가",
"r-d-remove-label": "라벨 삭제",
"r-create-card": "새 카드 생성",
"r-in-list": "목록에",
"r-in-swimlane": "in swimlane",
"r-d-add-member": "Add member",
"r-d-remove-member": "Remove member",
"r-d-remove-all-member": "Remove all member",
"r-d-add-member": "멤버 추가",
"r-d-remove-member": "멤버 제거",
"r-d-remove-all-member": "모든 멤버 제거",
"r-d-check-all": "Check all items of a list",
"r-d-uncheck-all": "Uncheck all items of a list",
"r-d-check-one": "Check item",
"r-d-check-one": "항목 선택",
"r-d-uncheck-one": "Uncheck item",
"r-d-check-of-list": "of checklist",
"r-d-add-checklist": "Add checklist",
"r-d-remove-checklist": "Remove checklist",
"r-d-add-checklist": "체크리스트 추가",
"r-d-remove-checklist": "체크리스트 삭제",
"r-by": "by",
"r-add-checklist": "Add checklist",
"r-add-checklist": "체크리스트 추가",
"r-with-items": "with items",
"r-items-list": "item1,item2,item3",
"r-add-swimlane": "Add swimlane",
@@ -747,21 +751,21 @@
"r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
"r-when-a-card-is-moved": "When a card is moved to another list",
"r-set": "Set",
"r-update": "Update",
"r-update": "업데이트",
"r-datefield": "date field",
"r-df-start-at": "start",
"r-df-start-at": "시작",
"r-df-due-at": "due",
"r-df-end-at": "end",
"r-df-end-at": "종료",
"r-df-received-at": "received",
"r-to-current-datetime": "to current date/time",
"r-remove-value-from": "Remove value from",
"ldap": "LDAP",
"oauth2": "OAuth2",
"cas": "CAS",
"authentication-method": "Authentication method",
"authentication-type": "Authentication type",
"authentication-method": "인증 방법",
"authentication-type": "인증 유형",
"custom-product-name": "Custom Product Name",
"layout": "Layout",
"layout": "레이아웃",
"hide-logo": "Hide Logo",
"add-custom-html-after-body-start": "Add Custom HTML after <body> start",
"add-custom-html-before-body-end": "Add Custom HTML before </body> end",
@@ -769,13 +773,13 @@
"error-ldap-login": "An error occurred while trying to login",
"display-authentication-method": "Display Authentication Method",
"default-authentication-method": "Default Authentication Method",
"duplicate-board": "Duplicate Board",
"duplicate-board": "보드 복사",
"people-number": "The number of people is:",
"swimlaneDeletePopup-title": "Delete Swimlane ?",
"swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.",
"restore-all": "모든항목 복구",
"delete-all": "모두 삭제",
"loading": "Loading, please wait.",
"loading": "로딩중, 기다려주십시오.",
"previous_as": "last time was",
"act-a-dueAt": "modified due time to \nWhen: __timeValue__\nWhere: __card__\n previous due was __timeOldValue__",
"act-a-endAt": "modified ending time to __timeValue__ from (__timeOldValue__)",
@@ -800,7 +804,7 @@
"show-desktop-drag-handles": "Show desktop drag handles",
"assignee": "Assignee",
"cardAssigneesPopup-title": "Assignee",
"addmore-detail": "Add a more detailed description",
"addmore-detail": "자세한 설명 추가",
"show-on-card": "Show on Card",
"new": "New",
"editUserPopup-title": "Edit User",
@@ -813,24 +817,24 @@
"allow-rename": "Allow Rename",
"allowRenamePopup-title": "Allow Rename",
"start-day-of-week": "Set day of the week start",
"monday": "Monday",
"tuesday": "Tuesday",
"wednesday": "Wednesday",
"thursday": "Thursday",
"friday": "Friday",
"saturday": "Saturday",
"sunday": "Sunday",
"monday": "월요일",
"tuesday": "화요일",
"wednesday": "수요일",
"thursday": "목요일",
"friday": "금요일",
"saturday": "토요일",
"sunday": "일요일",
"status": "Status",
"swimlane": "Swimlane",
"owner": "Owner",
"last-modified-at": "Last modified at",
"last-activity": "Last activity",
"voting": "Voting",
"archived": "Archived",
"last-activity": "마지막 활동",
"voting": "투표",
"archived": "보관된",
"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",
"task": "Task",
"create-task": "Create Task",
"ok": "OK"
"hide-checked-items": "선택된 항목 숨기기",
"task": "과제",
"create-task": "과제 생성",
"ok": "확인"
}
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+8 -4
View File
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "checklist %s onafgewerkt",
"activity-editComment": "aantekening gewijzigd %s",
"activity-deleteComment": "aantekening verwijderd %s",
"activity-receivedDate": "ontvangst datum bijgewerkt naar %s van %s",
"activity-startDate": "start datum bijgewerkt naar %s van %s",
"activity-dueDate": "geplande datum bijgewerkt naar %s van %s",
"activity-endDate": "eind datum bijgewerkt naar %s van %s ",
"add-attachment": "Bijlage Toevoegen",
"add-board": "Bord Toevoegen",
"add-card": "Kaart Toevoegen",
@@ -120,7 +124,7 @@
"attachmentDeletePopup-title": "Bijlage verwijderen?",
"attachments": "Bijlagen",
"auto-watch": "Automatisch borden bekijken wanneer deze aangemaakt worden",
"avatar-too-big": "De bestandsgrootte van je avatar is te groot (70KB max)",
"avatar-too-big": "De avatar is te groot (520KB max)",
"back": "Terug",
"board-change-color": "Wijzig kleur",
"board-nb-stars": "%s sterren",
@@ -487,9 +491,9 @@
"shortcut-close-dialog": "Sluit dialoog",
"shortcut-filter-my-cards": "Filter mijn kaarten",
"shortcut-show-shortcuts": "Haal lijst met snelkoppelingen tevoorschijn",
"shortcut-toggle-filterbar": "Schakel Filter Zijbalk",
"shortcut-toggle-searchbar": "Schakel Zoek Zijbalk",
"shortcut-toggle-sidebar": "Schakel Bord Zijbalk",
"shortcut-toggle-filterbar": "Wissel Filter Zijbalk",
"shortcut-toggle-searchbar": "Wissel Zoek Zijbalk",
"shortcut-toggle-sidebar": "Wissel Bord Zijbalk",
"show-cards-minimum-count": "Laat het aantal kaarten zien wanneer de lijst meer kaarten heeft dan",
"sidebar-open": "Open Zijbalk",
"sidebar-close": "Sluit Zijbalk",
+839 -835
View File
File diff suppressed because it is too large. Load diff
+111 -107
View File
@@ -42,7 +42,7 @@
"act-unjoinMember": "usunął użytkownika __member__ z karty __card__ na liście __list__ na ścieżce __swimlane__ na tablicy __board__",
"act-withBoardTitle": "__board__",
"act-withCardTitle": "[__board__] __card__",
"actions": "Akcje",
"actions": "Reakcje",
"activities": "Ostatnia aktywność",
"activity": "Aktywność",
"activity-added": "dodał %s do %s",
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "wycofano ukończenie czeklisty %s",
"activity-editComment": "edytował(a) komentarz %s",
"activity-deleteComment": "usunął komentarz %s",
"activity-receivedDate": "zmienił datę otrzymania na %s z %s",
"activity-startDate": "zmienił datę rozpoczęcia na %s z %s",
"activity-dueDate": "zmienił datę wykonania na %s z %s",
"activity-endDate": "zmienił datę zakończenia na %s z %s",
"add-attachment": "Dodaj załącznik",
"add-board": "Dodaj tablicę",
"add-card": "Dodaj kartę",
@@ -120,9 +124,9 @@
"attachmentDeletePopup-title": "Usunąć załącznik?",
"attachments": "Załączniki",
"auto-watch": "Automatycznie obserwuj tablice gdy zostaną stworzone",
"avatar-too-big": "Awatar jest za duży (maksymalnie 70KB)",
"avatar-too-big": "Awatar jest za duży (maksymalnie 520KB)",
"back": "Wstecz",
"board-change-color": "Zmień kolor",
"board-change-color": "Zmień barwę",
"board-nb-stars": "%s odznaczeń",
"board-not-found": "Nie znaleziono tablicy",
"board-private-info": "Ta tablica będzie <strong>prywatna</strong>.",
@@ -145,11 +149,11 @@
"card-archived": "Ta karta została przeniesiona do Archiwum.",
"board-archived": "Ta tablica została przeniesiona do Archiwum.",
"card-comments-title": "Ta karta ma %s komentarzy.",
"card-delete-notice": "Usunięcie jest trwałe. Stracisz wszystkie akcje powiązane z tą kartą.",
"card-delete-pop": "Wszystkie akcje będą usunięte z widoku aktywności, nie można będzie ponownie otworzyć karty. Usunięcie jest nieodwracalne.",
"card-delete-notice": "Usunięcie jest nieodwracalne. Stracisz wszystkie zdarzenia powiązane z tą kartą.",
"card-delete-pop": "Wszystkie zdarzenia zostaną usunięte z historii aktywności i nie można będzie ponownie otworzyć karty. Usunięcie jest nieodwracalne.",
"card-delete-suggest-archive": "Możesz przenieść kartę do Archiwum, a następnie usunąć ją z tablicy i zachować ją w Aktywności.",
"card-due": "Termin",
"card-due-on": "Termin ukończenia",
"card-due": "Data wykonania",
"card-due-on": "Data wykonania",
"card-spent": "Czas pracy",
"card-edit-attachments": "Edytuj załączniki",
"card-edit-custom-fields": "Edytuj niestandardowe pola",
@@ -173,9 +177,9 @@
"vote-for-it": "za",
"vote-against": "przeciwko",
"deleteVotePopup-title": "Usunąć głos?",
"vote-delete-pop": "Usuwanie jest nieodwracalne. Stracisz wszystkie czynności związane z tym głosem.",
"vote-delete-pop": "Usunięcie jest nieodwracalne. Stracisz wszystkie zdarzenia związane z tym głosowaniem.",
"cardDeletePopup-title": "Usunąć kartę?",
"cardDetailsActionsPopup-title": "Czynności kart",
"cardDetailsActionsPopup-title": "Działania na karcie",
"cardLabelsPopup-title": "Etykiety",
"cardMembersPopup-title": "Użytkownicy",
"cardMorePopup-title": "Więcej",
@@ -183,7 +187,7 @@
"cards": "Karty",
"cards-count": "kart",
"casSignIn": "Zaloguj się poprzez CAS",
"cardType-card": "Karta",
"cardType-card": "karty",
"cardType-linkedCard": "Podpięta karta",
"cardType-linkedBoard": "Podpięta tablica",
"change": "Zmień",
@@ -204,31 +208,31 @@
"close": "Zamknij",
"close-board": "Zamknij tablicę",
"close-board-pop": "Będziesz w stanie przywrócić tablicę poprzez kliknięcie przycisku \"Archiwizuj\" w nagłówku strony domowej.",
"color-black": "czarny",
"color-blue": "niebieski",
"color-crimson": "karmazynowy",
"color-darkgreen": "ciemnozielony",
"color-gold": "złoty",
"color-gray": "szary",
"color-green": "zielony",
"color-black": "czarna",
"color-blue": "niebieska",
"color-crimson": "karmazynowa",
"color-darkgreen": "ciemnozielona",
"color-gold": "złota",
"color-gray": "szara",
"color-green": "zielona",
"color-indigo": "indygo",
"color-lime": "limonkowy",
"color-magenta": "fuksjowy",
"color-mistyrose": "różowy",
"color-navy": "granatowy",
"color-orange": "pomarańczowy",
"color-lime": "limonkowa",
"color-magenta": "fuksjowa",
"color-mistyrose": "jasnoróżowa",
"color-navy": "granatowa",
"color-orange": "pomarańczowa",
"color-paleturquoise": "turkusowy",
"color-peachpuff": "brzoskwiniowy",
"color-pink": "różowy",
"color-plum": "śliwkowy",
"color-purple": "fioletowy",
"color-red": "czerwony",
"color-saddlebrown": "jasnobrązowy",
"color-silver": "srebrny",
"color-sky": "błękitny",
"color-slateblue": "szaroniebieski",
"color-white": "miały",
"color-yellow": "żółty",
"color-peachpuff": "brzoskwiniowa",
"color-pink": "różowa",
"color-plum": "śliwkowa",
"color-purple": "fioletowa",
"color-red": "czerwona",
"color-saddlebrown": "jasnobrązowa",
"color-silver": "srebrna",
"color-sky": "błękitna",
"color-slateblue": "szaroniebieska",
"color-white": "biała",
"color-yellow": "żółta",
"unset-color": "Nieustawiony",
"comment": "Komentarz",
"comment-placeholder": "Dodaj komentarz",
@@ -254,8 +258,8 @@
"createLabelPopup-title": "Utwórz etykietę",
"createCustomField": "Utwórz pole",
"createCustomFieldPopup-title": "Utwórz pole",
"current": "obecny",
"custom-field-delete-pop": "Nie ma możliwości wycofania tej operacji. To usunie te niestandardowe pole ze wszystkich kart oraz usunie ich całą historię.",
"current": "obecnie otwarta",
"custom-field-delete-pop": "Nie ma możliwości cofnięcia tej operacji. Usuniesz to niestandardowe pole ze wszystkich kart oraz całą jego historię.",
"custom-field-checkbox": "Pole wyboru",
"custom-field-currency": "Waluta",
"custom-field-currency-option": "Kod waluty",
@@ -275,8 +279,8 @@
"deleteCustomFieldPopup-title": "Usunąć niestandardowe pole?",
"deleteLabelPopup-title": "Usunąć etykietę?",
"description": "Opis",
"disambiguateMultiLabelPopup-title": "Ujednolić etykiety czynności",
"disambiguateMultiMemberPopup-title": "Doprecyzuj czynności użytkowników",
"disambiguateMultiLabelPopup-title": "Doprecyzuj działanie dotyczące etykiety",
"disambiguateMultiMemberPopup-title": "Doprecyzuj działanie dotyczące użytkownika",
"discard": "Odrzuć",
"done": "Zakończone",
"download": "Pobierz",
@@ -286,7 +290,7 @@
"edit-wip-limit": "Zmień limit kart na liście",
"soft-wip-limit": "Pozwól na nadmiarowe karty na liście",
"editCardStartDatePopup-title": "Zmień datę rozpoczęcia",
"editCardDueDatePopup-title": "Zmień termin ukończenia",
"editCardDueDatePopup-title": "Zmień datę wykonania",
"editCustomFieldPopup-title": "Edytuj pole",
"editCardSpentTimePopup-title": "Zmień ilość przepracowanego czasu",
"editLabelPopup-title": "Zmień etykietę",
@@ -344,7 +348,7 @@
"filter-no-member": "Brak użytkowników",
"filter-assignee-label": "Filtruj wg osoby przypisanej",
"filter-no-assignee": "Nieprzypisane ",
"filter-custom-fields-label": "Filtruj wg pól niestandardowych",
"filter-custom-fields-label": "Filtruj wg niestandardowych pól",
"filter-no-custom-fields": "Brak niestandardowych pól",
"filter-show-archive": "Pokaż zarchiwizowane listy",
"filter-hide-empty": "Ukryj puste listy",
@@ -353,7 +357,7 @@
"filter-to-selection": "Odfiltruj zaznaczenie",
"other-filters-label": "Inne filtry",
"advanced-filter-label": "Zaawansowane filtry",
"advanced-filter-description": "Zaawansowane filtry pozwalają na wykorzystanie ciągu znaków wraz z następującymi operatorami: == != <= >= && || (). Spacja jest używana jako separator pomiędzy operatorami. Możesz przefiltrowywać wszystkie niestandardowe pola wpisując ich nazwy lub wartości, na przykład: Pole1 == Wartość1.\nUwaga: Jeśli pola lub wartości zawierają spację, musisz je zawrzeć w pojedyncze cudzysłowie, na przykład: 'Pole 1' == 'Wartość 1'. Dla pojedynczych znaków, które powinny być pominięte należy użyć \\, na przykład Pole1 == I\\'m. Możesz także wykorzystywać mieszane warunki, na przykład P1 == W1 || P1 == W2. Standardowo wszystkie operatory są interpretowane od lewej do prawej. Możesz także zmienić kolejność interpretacji wykorzystując nawiasy, na przykład P1 == W1 && (P2 == W2 || P2 == W3). Możesz także wyszukiwać tekstowo wykorzystując wyrażenia regularne, na przykład: P1 == /Tes.*/i",
"advanced-filter-description": "Zaawansowane filtry pozwalają na wykorzystanie ciągu znaków wraz z następującymi operatorami: == != <= >= && || (). Spacja jest używana jako separator pomiędzy operatorami. Możesz przefiltrowywać wszystkie niestandardowe pola wpisując ich nazwy lub wartości, na przykład: Pole1 == Wartość1.\nUwaga: Jeśli pola lub wartości zawierają spację, musisz je zawrzeć w pojedynczym cudzysłowie, na przykład: 'Pole 1' == 'Wartość 1'. Dla pojedynczych znaków, które powinny być pominięte, należy użyć \\, na przykład Pole1 == I\\'m. Możesz także wykorzystywać mieszane warunki, na przykład P1 == W1 || P1 == W2. Standardowo wszystkie operatory są interpretowane od lewej do prawej. Możesz także zmienić kolejność interpretacji wykorzystując nawiasy, na przykład P1 == W1 && (P2 == W2 || P2 == W3). Możesz także wyszukiwać tekstowo wykorzystując wyrażenia regularne, na przykład: P1 == /Tes.*/i",
"fullname": "Pełna nazwa",
"header-logo-title": "Wróć do swojej strony z tablicami.",
"hide-system-messages": "Ukryj wiadomości systemowe",
@@ -403,16 +407,16 @@
"list-archive-cards-pop": "To usunie wszystkie karty z tej listy z tej tablicy. Aby przejrzeć karty w Archiwum i przywrócić na tablicę, kliknij \"Menu\" > \"Archiwizuj\".",
"list-move-cards": "Przenieś wszystkie karty z tej listy",
"list-select-cards": "Zaznacz wszystkie karty z tej listy",
"set-color-list": "Ustaw kolor",
"listActionPopup-title": "Lista akcji",
"set-color-list": "Ustaw barwę",
"listActionPopup-title": "Działania na liście",
"settingsUserPopup-title": "Ustawienia konta użytkownika",
"swimlaneActionPopup-title": "Opcje ścieżki",
"swimlaneActionPopup-title": "Działania na ścieżce",
"swimlaneAddPopup-title": "Dodaj ścieżkę poniżej",
"listImportCardPopup-title": "Zaimportuj kartę z Trello",
"listImportCardsTsvPopup-title": "Importuj CSV/TSV z Excela",
"listMorePopup-title": "Więcej",
"link-list": "Podepnij do tej listy",
"list-delete-pop": "Wszystkie czynności zostaną usunięte z Aktywności i nie będziesz w stanie przywrócić listy. Nie ma możliwości cofnięcia tej operacji.",
"list-delete-pop": "Wszystkie zdarzenia zostaną usunięte z historii aktywności i nie będziesz w stanie przywrócić tej listy. Nie ma możliwości cofnięcia tej operacji.",
"list-delete-suggest-archive": "Możesz przenieść listę do Archiwum, a następnie usunąć ją z tablicy i zachować ją w Aktywności.",
"lists": "Listy",
"swimlanes": "Ścieżki",
@@ -424,8 +428,8 @@
"menu": "Menu",
"move-selection": "Przenieś zaznaczone",
"moveCardPopup-title": "Przenieś kartę",
"moveCardToBottom-title": "Przenieś na dół",
"moveCardToTop-title": "Przenieś na górę",
"moveCardToBottom-title": "Przenieś na koniec",
"moveCardToTop-title": "Przenieś na początek",
"moveSelectionPopup-title": "Przenieś zaznaczone",
"multi-selection": "Wielokrotne zaznaczenie",
"multi-selection-label": "Dodaj etykietę do zaznaczenia",
@@ -476,7 +480,7 @@
"rules": "Reguły",
"search-cards": "Szukaj w tytułach kart/list oraz opisach i niestandardowych polach na tej tablicy",
"search-example": "Wpisz tekst do wyszukania i wciśnij Enter",
"select-color": "Wybierz kolor",
"select-color": "Wybierz barwę",
"select-board": "Wybierz tablicę",
"set-wip-limit-value": "Ustaw maksymalny limit kart na tej liście",
"setWipLimitPopup-title": "Ustaw limit kart na liście",
@@ -488,7 +492,7 @@
"shortcut-filter-my-cards": "Filtruj moje karty",
"shortcut-show-shortcuts": "Przypnij do listy skrótów",
"shortcut-toggle-filterbar": "Przełącz boczny pasek filtru",
"shortcut-toggle-searchbar": "Toggle Search Sidebar",
"shortcut-toggle-searchbar": "Pokaż/Ukryj panel wyszukiwania",
"shortcut-toggle-sidebar": "Przełącz boczny pasek tablicy",
"show-cards-minimum-count": "Pokaż licznik kart, jeśli lista zawiera więcej niż",
"sidebar-open": "Otwórz pasek boczny",
@@ -610,14 +614,14 @@
"card-end": "Koniec",
"card-end-on": "Kończy się",
"editCardReceivedDatePopup-title": "Zmień datę przyjęcia",
"editCardEndDatePopup-title": "Zmień datę ukończenia",
"setCardColorPopup-title": "Ustaw kolor",
"setCardActionsColorPopup-title": "Wybierz kolor",
"setSwimlaneColorPopup-title": "Wybierz kolor",
"setListColorPopup-title": "Wybierz kolor",
"editCardEndDatePopup-title": "Zmień datę zakończenia",
"setCardColorPopup-title": "Ustaw barwę",
"setCardActionsColorPopup-title": "Wybierz barwę",
"setSwimlaneColorPopup-title": "Wybierz barwę",
"setListColorPopup-title": "Wybierz barwę",
"assigned-by": "Przypisane przez",
"requested-by": "Zlecone przez",
"board-delete-notice": "Usuwanie jest permanentne. Stracisz wszystkie listy, kart oraz czynności przypisane do tej tablicy.",
"board-delete-notice": "Usunięcie jest nieodwracalne. Stracisz wszystkie listy, karty oraz reguły przypisane do tej tablicy.",
"delete-board-confirm-popup": "Wszystkie listy, etykiety oraz aktywności zostaną usunięte i nie będziesz w stanie przywrócić zawartości tablicy. Tego nie da się cofnąć.",
"boardDeletePopup-title": "Usunąć tablicę?",
"delete-board": "Usuń tablicę",
@@ -648,58 +652,58 @@
"activity-set-customfield": "ustawił niestandardowe pole '%s' na '%s' w '%s'",
"activity-unset-customfield": "wyczyścił niestandardowe pole '%s' w '%s'",
"r-rule": "Reguła",
"r-add-trigger": "Dodaj przełącznik",
"r-add-action": "Dodaj czynność",
"r-add-trigger": "Dodaj aktywator",
"r-add-action": "Dodaj reakcję",
"r-board-rules": "Reguły tablicy",
"r-add-rule": "Dodaj regułę",
"r-view-rule": "Zobacz regułę",
"r-delete-rule": "Usuń regułę",
"r-new-rule-name": "Nowa nazwa reguły",
"r-no-rules": "Brak regułę",
"r-trigger": "Zdarzenie",
"r-trigger": "Aktywator",
"r-action": "Reakcja",
"r-when-a-card": "Gdy karta",
"r-is": "jest",
"r-is-moved": "jest przenoszona",
"r-added-to": "Dodany do",
"r-removed-from": "usunął z",
"r-the-board": "tablicy",
"r-list": "lista",
"r-added-to": "dodana do",
"r-removed-from": "usunięta z",
"r-the-board": "na tablicy",
"r-list": "listy",
"set-filter": "Ustaw filtr",
"r-moved-to": "Przeniesione do",
"r-moved-from": "Przeniesione z",
"r-archived": "Przeniesione z Archiwum",
"r-unarchived": "Przywrócone z Archiwum",
"r-moved-to": "przenoszona do",
"r-moved-from": "przenoszona z",
"r-archived": "zarchiwizowana",
"r-unarchived": "przywrócona z archiwum",
"r-a-card": "karta",
"r-when-a-label-is": "Gdy etykieta jest",
"r-when-the-label": "Gdy etykieta jest",
"r-when-the-label": "Gdy etykieta",
"r-list-name": "nazwa listy",
"r-when-a-member": "Gdy jakikolwiek użytkownik jest",
"r-when-the-member": "Gdy użytkownik",
"r-when-a-member": "Gdy osoba (użytkownik) jest",
"r-when-the-member": "Gdy osoba",
"r-name": "nazwa",
"r-when-a-attach": "Gdy załącznik",
"r-when-a-checklist": "Gdy jakaś czeklista jest",
"r-when-a-checklist": "Gdy czeklista jest",
"r-when-the-checklist": "Gdy czeklista",
"r-completed": "Ukończone",
"r-made-incomplete": "Niedokończone",
"r-when-a-item": "Gdy jakiś element czeklisty jest",
"r-completed": "ukończona",
"r-made-incomplete": "ponownie nieukończona",
"r-when-a-item": "Gdy element czeklisty jest",
"r-when-the-item": "Gdy element",
"r-checked": "Zaznaczony",
"r-unchecked": "Odznaczony",
"r-move-card-to": "Przenieś kartę do",
"r-top-of": "Góra od",
"r-bottom-of": "Dół od",
"r-checked": "zaznaczony",
"r-unchecked": "ponownie niezaznaczony",
"r-move-card-to": "Przenieś kartę na",
"r-top-of": "początek",
"r-bottom-of": "koniec",
"r-its-list": "tej listy",
"r-archive": "Przenieś do Archiwum",
"r-archive": "Zarchiwizuj",
"r-unarchive": "Przywróć z Archiwum",
"r-card": "karta",
"r-card": "kartę",
"r-add": "Dodaj",
"r-remove": "Usuń",
"r-label": "etykieta",
"r-member": "użytkownik",
"r-label": "etykietę",
"r-member": "użytkownika",
"r-remove-all": "Usuń wszystkich użytkowników tej karty",
"r-set-color": "Ustaw kolor na",
"r-checklist": "Tytuł czeklisty",
"r-set-color": "Ustaw barwę na",
"r-checklist": "czeklistę",
"r-check-all": "Zaznacz wszystkie",
"r-uncheck-all": "Odznacz wszystkie",
"r-items-check": "elementy czeklisty",
@@ -712,15 +716,15 @@
"r-of": "z",
"r-subject": "temat",
"r-rule-details": "Szczegóły reguł",
"r-d-move-to-top-gen": "Przenieś kartę na górę tej listy",
"r-d-move-to-top-spec": "Przenieś kartę na górę listy",
"r-d-move-to-bottom-gen": "Przenieś kartę na dół tej listy",
"r-d-move-to-bottom-spec": "Przenieś kartę na dół listy",
"r-d-move-to-top-gen": "Przenieś kartę na początek listy",
"r-d-move-to-top-spec": "Przenieś kartę na początek listy",
"r-d-move-to-bottom-gen": "Przenieś kartę na koniec listy",
"r-d-move-to-bottom-spec": "Przenieś kartę na koniec listy",
"r-d-send-email": "Wyślij wiadomość email",
"r-d-send-email-to": "do",
"r-d-send-email-subject": "temat",
"r-d-send-email-message": "wiadomość",
"r-d-archive": "Przenieś kartę z Archiwum",
"r-d-archive": "Zarchiwizuj kartę",
"r-d-unarchive": "Przywróć kartę z Archiwum",
"r-d-add-label": "Dodaj etykietę",
"r-d-remove-label": "Usuń etykietę",
@@ -745,16 +749,16 @@
"r-swimlane-name": "Nazwa ścieżki",
"r-board-note": "Uwaga: pozostaw pole puste, aby każda wartość była brana pod uwagę.",
"r-checklist-note": "Uwaga: elementy czeklisty muszą być oddzielone przecinkami.",
"r-when-a-card-is-moved": "Gdy karta jest przeniesiona do innej listy",
"r-when-a-card-is-moved": "Gdy karta jest przenoszona do innej listy",
"r-set": "Ustaw",
"r-update": "Aktualizuj",
"r-datefield": "pole daty",
"r-df-start-at": "start",
"r-df-due-at": "termin ukończenia jest",
"r-df-end-at": "zakończenie",
"r-df-received-at": "przyjęte",
"r-to-current-datetime": "o aktualnej dacie/godzinie",
"r-remove-value-from": "usunął wartość z",
"r-datefield": "datę",
"r-df-start-at": "rozpoczęcia",
"r-df-due-at": "wykonania",
"r-df-end-at": "zakończenia",
"r-df-received-at": "przyjęcia",
"r-to-current-datetime": "na aktualną datę i godzinę",
"r-remove-value-from": "Wyczyść",
"ldap": "LDAP",
"oauth2": "OAuth2",
"cas": "CAS",
@@ -772,27 +776,27 @@
"duplicate-board": "Duplikuj tablicę",
"people-number": "Liczba użytkowników to:",
"swimlaneDeletePopup-title": "Usunąć ścieżkę?",
"swimlane-delete-pop": "Wszystkie czynności wykonane na tej ścieżce zostaną usunięte z historii aktywności. Tej operacji nie można cofnąć. Usunięcie jest nieodwracalne.",
"swimlane-delete-pop": "Wszystkie zdarzenia dotyczące tej ścieżki zostaną usunięte z historii aktywności. Tej operacji nie można cofnąć. Usunięcie jest nieodwracalne.",
"restore-all": "Przywróć wszystkie",
"delete-all": "Usuń wszystkie",
"loading": "Ładowanie, proszę czekać.",
"previous_as": "ostatni raz był",
"act-a-dueAt": "zmienił(a) termin ukończenia na: __timeValue__ w karcie __card__, poprzedni termin: __timeOldValue__",
"act-a-dueAt": "zmienił(a) datę wykonania na: __timeValue__ w karcie __card__, poprzednia data wykonania: __timeOldValue__",
"act-a-endAt": "zmienił czas zakończenia na __timeValue__ z __timeOldValue__",
"act-a-startAt": "zmienił czas rozpoczęcia na __timeValue__ z __timeOldValue__",
"act-a-receivedAt": "zmienił czas przyjęcia zadania na __timeValue__ z __timeOldValue__",
"a-dueAt": "zmienił termin ukończenia na",
"a-dueAt": "zmienił datę wykonania na",
"a-endAt": "zmienił czas zakończenia na",
"a-startAt": "zmienił czas rozpoczęcia na",
"a-receivedAt": "zmienił czas przyjęcia zadania na",
"almostdue": "termin ukończenia %s jest bliski",
"pastdue": "termin ukończenia %s minął",
"duenow": "termin ukończenia %s przypada dzisiaj",
"act-newDue": "__list__/__card__ pierwszy raz przypomina o terminie ukończenia [__board__]",
"act-withDue": "__list__/__card__ ma przypomnienia o terminie ukończenia [__board__]",
"act-almostdue": "przypominał o zbliżającym się terminie ukończenia (__timeValue__) karty __card__",
"act-pastdue": "przypominał o upłynięciu terminu ukończenia (__timeValue__) karty __card__",
"act-duenow": "przypominał o przypadającym właśnie terminie ukończenia (__timeValue__) karty __card__",
"almostdue": "data wykonania %s jest bliska",
"pastdue": "data wykonania %s minęła",
"duenow": "data wykonania %s przypada dzisiaj",
"act-newDue": "__list__/__card__ pierwszy raz przypomina o dacie wykonania [__board__]",
"act-withDue": "__list__/__card__ ma przypomnienia o dacie wykonania [__board__]",
"act-almostdue": "przypominał o zbliżającej się dacie wykonania (__timeValue__) karty __card__",
"act-pastdue": "przypominał o upłynięciu daty wykonania (__timeValue__) karty __card__",
"act-duenow": "przypominał o mijającej właśnie dacie wykonania (__timeValue__) karty __card__",
"act-atUserComment": "Zostałeś wspomniany w [__board] __list__/__card__",
"delete-user-confirm-popup": "Czy jesteś pewien, że chcesz usunąć te konto? Nie można tego wycofać.",
"accounts-allowUserDelete": "Pozwól użytkownikom na usuwanie własnych kont",
+5 -1
View File
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "não-completada a lista de verificação %s",
"activity-editComment": "comentário editado %s",
"activity-deleteComment": "comentário excluído %s",
"activity-receivedDate": "editou recebido para %s de %s",
"activity-startDate": "editou data início para %s de %s",
"activity-dueDate": "editou prazo final para %s de %s",
"activity-endDate": "editou concluído para %s de %s",
"add-attachment": "Adicionar Anexos",
"add-board": "Adicionar Quadro",
"add-card": "Adicionar Cartão",
@@ -120,7 +124,7 @@
"attachmentDeletePopup-title": "Excluir Anexo?",
"attachments": "Anexos",
"auto-watch": "Veja automaticamente os boards que são criados",
"avatar-too-big": "O avatar é muito grande (70KB max)",
"avatar-too-big": "O avatar é muito grande (máximo: 520KB)",
"back": "Voltar",
"board-change-color": "Alterar cor",
"board-nb-stars": "%s estrelas",
+839 -835
View File
File diff suppressed because it is too large. Load diff
+839 -835
View File
File diff suppressed because it is too large. Load diff
+7 -3
View File
@@ -75,6 +75,10 @@
"activity-checklist-uncompleted-card": "вновь открыл контрольный список %s",
"activity-editComment": "отредактировал комментарий %s",
"activity-deleteComment": "удалил комментарий %s",
"activity-receivedDate": "отредактировал дату получения на %sс %s",
"activity-startDate": "отредактировал дату начала на %sс %s",
"activity-dueDate": "отредактировал срок исполнения на %s с %s",
"activity-endDate": "отредактировал дату завершения на %s с %s",
"add-attachment": "Добавить вложение",
"add-board": "Добавить доску",
"add-card": "Добавить карточку",
@@ -120,7 +124,7 @@
"attachmentDeletePopup-title": "Удалить вложение?",
"attachments": "Вложения",
"auto-watch": "Автоматически следить за созданными досками",
"avatar-too-big": "Аватар слишком большой (максимум 70КБ)",
"avatar-too-big": "Аватар слишком большой (максимум 520КБ)",
"back": "Назад",
"board-change-color": "Изменить цвет",
"board-nb-stars": "%s избранное",
@@ -360,7 +364,7 @@
"headerBarCreateBoardPopup-title": "Создать доску",
"home": "Главная",
"import": "Импорт",
"impersonate-user": "Impersonate user",
"impersonate-user": "Деперсонифицировать пользователя",
"link": "Ссылка",
"import-board": "импортировать доску",
"import-board-c": "Импортировать доску",
@@ -488,7 +492,7 @@
"shortcut-filter-my-cards": "Показать мои карточки",
"shortcut-show-shortcuts": "Поднять список ярлыков",
"shortcut-toggle-filterbar": "Переместить фильтр на бововую панель",
"shortcut-toggle-searchbar": "Toggle Search Sidebar",
"shortcut-toggle-searchbar": "Включить/выключить боковую панель поиска",
"shortcut-toggle-sidebar": "Переместить доску на боковую панель",
"show-cards-minimum-count": "Показывать количество карточек если их больше",
"sidebar-open": "Открыть Панель",
Loaded 100 of 131 files, more files were not shown because too many files have changed in this diff. Show more