summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/ISSUE_TEMPLATE.md1
-rw-r--r--.gitignore3
-rw-r--r--.meteor/packages3
-rw-r--r--.meteor/versions4
-rw-r--r--CHANGELOG.md79
-rw-r--r--Dockerfile1
-rw-r--r--README.md11
-rw-r--r--client/components/boards/boardBody.js7
-rw-r--r--client/components/boards/boardsList.jade5
-rw-r--r--client/components/cards/cardDetails.js20
-rwxr-xr-xclient/components/main/editor.js5
-rw-r--r--client/components/main/layouts.jade1
-rw-r--r--client/components/main/layouts.js41
-rw-r--r--client/components/settings/connectionMethod.jade6
-rw-r--r--client/components/settings/connectionMethod.js34
-rw-r--r--i18n/ar.i18n.json5
-rw-r--r--i18n/bg.i18n.json5
-rw-r--r--i18n/br.i18n.json5
-rw-r--r--i18n/ca.i18n.json5
-rw-r--r--i18n/cs.i18n.json5
-rw-r--r--i18n/de.i18n.json5
-rw-r--r--i18n/el.i18n.json5
-rw-r--r--i18n/en-GB.i18n.json5
-rw-r--r--i18n/eo.i18n.json5
-rw-r--r--i18n/es-AR.i18n.json5
-rw-r--r--i18n/es.i18n.json5
-rw-r--r--i18n/eu.i18n.json5
-rw-r--r--i18n/fa.i18n.json5
-rw-r--r--i18n/fi.i18n.json5
-rw-r--r--i18n/fr.i18n.json5
-rw-r--r--i18n/gl.i18n.json5
-rw-r--r--i18n/he.i18n.json17
-rw-r--r--i18n/hu.i18n.json5
-rw-r--r--i18n/hy.i18n.json5
-rw-r--r--i18n/id.i18n.json5
-rw-r--r--i18n/ig.i18n.json5
-rw-r--r--i18n/it.i18n.json5
-rw-r--r--i18n/ja.i18n.json5
-rw-r--r--i18n/ka.i18n.json5
-rw-r--r--i18n/km.i18n.json5
-rw-r--r--i18n/ko.i18n.json5
-rw-r--r--i18n/lv.i18n.json5
-rw-r--r--i18n/mn.i18n.json5
-rw-r--r--i18n/nb.i18n.json5
-rw-r--r--i18n/nl.i18n.json5
-rw-r--r--i18n/pl.i18n.json225
-rw-r--r--i18n/pt-BR.i18n.json75
-rw-r--r--i18n/pt.i18n.json5
-rw-r--r--i18n/ro.i18n.json5
-rw-r--r--i18n/ru.i18n.json7
-rw-r--r--i18n/sr.i18n.json5
-rw-r--r--i18n/sv.i18n.json5
-rw-r--r--i18n/ta.i18n.json5
-rw-r--r--i18n/th.i18n.json5
-rw-r--r--i18n/tr.i18n.json5
-rw-r--r--i18n/uk.i18n.json5
-rw-r--r--i18n/vi.i18n.json5
-rw-r--r--i18n/zh-CN.i18n.json5
-rw-r--r--i18n/zh-TW.i18n.json5
-rw-r--r--models/boards.js30
-rw-r--r--models/settings.js33
-rw-r--r--models/users.js90
-rw-r--r--openshift/wekan.yml8
-rw-r--r--package.json2
-rw-r--r--sandstorm-pkgdef.capnp4
-rw-r--r--server/publications/users.js10
-rwxr-xr-xsnap-src/bin/config2
-rw-r--r--snapcraft.yaml5
68 files changed, 657 insertions, 272 deletions
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index dca55329..8a92ed83 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -3,6 +3,7 @@
**Server Setup Information**:
* Did you test in newest Wekan?:
+* For new Wekan install, did you configure root-url correctly https://github.com/wekan/wekan/wiki/Settings ?
* Wekan version:
* If this is about old version of Wekan, what upgrade problem you have?:
* Operating System:
diff --git a/.gitignore b/.gitignore
index 7a56bd2e..bfc54a42 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,8 +8,7 @@ npm-debug.log
.vscode/
.idea/
.build/*
-packages/kadira-flow-router/
-packages/meteor-useraccounts-core/
+packages/
package-lock.json
**/parts/
**/stage
diff --git a/.meteor/packages b/.meteor/packages
index d428111c..3779a684 100644
--- a/.meteor/packages
+++ b/.meteor/packages
@@ -84,7 +84,8 @@ cfs:gridfs
eluck:accounts-lockout
rzymek:fullcalendar
momentjs:moment@2.22.2
-atoy40:accounts-cas
browser-policy-framing
mquandalle:moment
msavin:usercache
+wekan:wekan-ldap
+wekan:accounts-cas
diff --git a/.meteor/versions b/.meteor/versions
index f1f52d23..a082fd7d 100644
--- a/.meteor/versions
+++ b/.meteor/versions
@@ -10,7 +10,6 @@ aldeed:simple-schema@1.5.3
alethes:pages@1.8.6
allow-deny@1.1.0
arillo:flow-router-helpers@0.5.2
-atoy40:accounts-cas@0.0.2
audit-argument-checks@1.0.7
autoupdate@1.3.12
babel-compiler@6.24.7
@@ -180,4 +179,7 @@ useraccounts:unstyled@1.14.2
verron:autosize@3.0.8
webapp@1.4.0
webapp-hashing@1.0.9
+wekan:wekan-ldap@0.0.2
+yasaricli:slugify@0.0.7
+wekan:accounts-cas@0.1.0
zimme:active-route@2.3.2
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 34b2ed5f..98a37c28 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,69 @@
-# Upcoming Wekan release
+# Upcoming Wekan release.
+
+This release adds the following new features:
+
+- [LDAP](https://github.com/wekan/wekan/commit/288800eafc91d07f859c4f59588e0b646137ccb9). In progress.
+ Please test and [add info about bugs](https://github.com/wekan/wekan/issues/119).
+
+and fixes the following bugs:
+
+- [OpenShift: Drop default namespace value and duplicate WEKAN_SERVICE_NAME parameter.commit](https://github.com/wekan/wekan/commit/fcc3560df4dbcc418c63470776376238af4f6ddc);
+- [Fix Card URL](https://github.com/wekan/wekan/pull/1932);
+- [Add info about root-url to GitHub issue template](https://github.com/wekan/wekan/commit/4c0eb7dcc19ca9ae8c5d2d0276e0d024269de236).
+
+Thanks to GitHub users Akuket, lberk, maximest-pierre, InfoSec812, schulz and xet7 for their contributions.
+
+# v1.52.1 2018-10-02 Wekan Edge release
+
+This release adds the following new features:
+
+- REST API: [Add member with role to board. Remove member from board](https://github.com/wekan/wekan/commit/33caf1809a459b136b671f7061f08eb5e8d5e920).
+ [Docs](https://github.com/wekan/wekan/wiki/REST-API-Role). Related to [role issue](https://github.com/wekan/wekan/issues/1861).
+
+and reverts previous change:
+
+- OAuth2: [Revert Oidc preferred_username back to username](https://github.com/wekan/wekan/commit/33caf1809a459b136b671f7061f08eb5e8d5e920).
+ This [does not fix or break anything](https://github.com/wekan/wekan/issues/1874#issuecomment-425179291),
+ Oidc already works with [doorkeeper](https://github.com/doorkeeper-gem/doorkeeper-provider-app).
+
+Thanks to GitHub user xet7 for contributions.
+
+# v1.51.2 2018-09-30 Wekan Edge release
+
+This release adds the following new features:
+
+- [REST API: Change role of board member](https://github.com/wekan/wekan/commit/51ac6c839ecf2226b2a81b0d4f985d3b942f0938).
+ Docs: https://github.com/wekan/wekan/wiki/REST-API-Role
+
+Thanks to GitHub users entrptaher and xet7 for their contributions.
+
+# v1.51.1 2018-09-28 Wekan Edge release
+
+This release adds the following new features:
+
+- [Add CAS with attributes](https://github.com/wekan/wekan/commit/bd6e4a351b984b032e17c57793a70923eb17d8f5);
+- [Move Add Board button to top left, so there is no need to scroll to bottom when there is a lot of boards](https://github.com/wekan/wekan/commit/fb46a88a0f01f7f74ae6b941dd6f2060e020f09d).
+
+Thanks to GitHub users ppoulard and xet7 for their contributions.
+
+# v1.50.3 2018-09-23 Wekan Edge release
+
+This release tries to fix the following bugs:
+
+- [Remove "Fix Cannot setup mail server via snap variables"](https://github.com/wekan/wekan/commit/6d88baebc7e297ffdbbd5bb6971190b18f79d21f)
+ to see does Wekan Snap start correctly after removing it.
+
+Thanks to GitHub user xet7 for contributions.
+
+# v1.50.2 2018-09-23 Wekan Edge release
+
+This release tries to fix the following bugs:
+
+- Build Wekan and release again, to see does it work.
+
+Thanks to GitHub user xet7 for contributions.
+
+# v1.50.1 2018-09-22 Wekan Edge release
This release adds the following new features:
@@ -6,13 +71,17 @@ This release adds the following new features:
and fixes the following bugs:
-- [Fix Dockerfile Meteor install by changing tar to bsdtar](https://github.com/wekan/wekan/commit/1bad81ca86ca87c02148764cc03a3070882a8a33).
+- [Fix Dockerfile Meteor install by changing tar to bsdtar](https://github.com/wekan/wekan/commit/1bad81ca86ca87c02148764cc03a3070882a8a33);
- Add [npm-debug.log and .DS_Store](https://github.com/wekan/wekan/commit/44f4a1c3bf8033b6b658703a0ccaed5fdb183ab4) to .gitignore;
-- [Add more debug log requirements to GitHub issue template](https://github.com/wekan/wekan/commit/1c4ce56b0f18e00e01b54c7059cbbf8d3e196154).
+- [Add more debug log requirements to GitHub issue template](https://github.com/wekan/wekan/commit/1c4ce56b0f18e00e01b54c7059cbbf8d3e196154);
+- [Add default Wekan Snap MongoDB bind IP 127.0.0.1](https://github.com/wekan/wekan/commit/6ac726e198933ee41c129d22a7118fcfbf4ca9a2);
+- [Fix Feature Rules](https://github.com/wekan/wekan/pull/1909);
+- [Fix Cannot setup mail server via snap variables](https://github.com/wekan/wekan/issues/1906);
+- [Try to fix OAuth2: Change oidc username to preferred_username](https://github.com/wekan/wekan/commit/734e4e5f3ff2c3dabf94c0fbfca561db066c4565).
-Thanks to GitHub users maurice-schleussinger and xet7 for contributions.
+Thanks to GitHub users Angtrim, maurice-schleussinger, suprovsky and xet7 for their contributions.
-# v1.49.1 2018-09-17 Wekan release
+# v1.49.1 2018-09-17 Wekan Edge release
This release adds the following new features:
diff --git a/Dockerfile b/Dockerfile
index 1d0f20e6..376389a2 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -148,6 +148,7 @@ RUN \
cd /home/wekan/app/packages && \
gosu wekan:wekan git clone --depth 1 -b master git://github.com/wekan/flow-router.git kadira-flow-router && \
gosu wekan:wekan git clone --depth 1 -b master git://github.com/meteor-useraccounts/core.git meteor-useraccounts-core && \
+ gosu wekan:wekan git clone --depth 1 -b master git://github.com/wekan/meteor-accounts-cas.git meteor-accounts-cas && \
sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' /home/wekan/app/packages/meteor-useraccounts-core/package.js && \
cd /home/wekan/.meteor && \
gosu wekan:wekan /home/wekan/.meteor/meteor -- help; \
diff --git a/README.md b/README.md
index a57a144c..54804197 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,16 @@
# Wekan
+## Stable
+
+- master+devel branch. At release, devel is merged to master.
+- Receives fixes and features that have been tested at edge that they work.
+- If you want automatic updates, [use Snap](https://github.com/wekan/wekan-snap/wiki/Install).
+- If you want to test before update, [use Docker quay.io release tags](https://github.com/wekan/wekan/wiki/Docker).
+
+## Edge
+
+- edge branch. All new fixes and features are added to here first. [Testing Edge](https://github.com/wekan/wekan-snap/wiki/Snap-Developer-Docs).
+
[![Translate Wekan at Transifex](https://img.shields.io/badge/Translate%20Wekan-at%20Transifex-brightgreen.svg "Freenode IRC")](https://transifex.com/wekan/wekan)
[![Wekan Vanila Chat][vanila_badge]][vanila_chat]
diff --git a/client/components/boards/boardBody.js b/client/components/boards/boardBody.js
index b68c9b12..ccbd0f23 100644
--- a/client/components/boards/boardBody.js
+++ b/client/components/boards/boardBody.js
@@ -147,6 +147,13 @@ BlazeComponent.extendComponent({
});
},
+ scrollTop(position = 0) {
+ const swimlanes = this.$('.js-swimlanes');
+ swimlanes && swimlanes.animate({
+ scrollTop: position,
+ });
+ },
+
}).register('boardBody');
BlazeComponent.extendComponent({
diff --git a/client/components/boards/boardsList.jade b/client/components/boards/boardsList.jade
index 95ce3678..89852570 100644
--- a/client/components/boards/boardsList.jade
+++ b/client/components/boards/boardsList.jade
@@ -1,6 +1,8 @@
template(name="boardList")
.wrapper
ul.board-list.clearfix
+ li.js-add-board
+ a.board-list-item.label {{_ 'add-board'}}
each boards
li(class="{{#if isStarred}}starred{{/if}}" class=colorClass)
if isInvited
@@ -27,9 +29,6 @@ template(name="boardList")
title="{{#if hasOvertimeCards}}{{_ 'has-overtime-cards'}}{{else}}{{_ 'has-spenttime-cards'}}{{/if}}")
p.board-list-item-desc= description
- li.js-add-board
- a.board-list-item.label {{_ 'add-board'}}
-
template(name="boardListHeaderBar")
h1 {{_ 'my-boards'}}
diff --git a/client/components/cards/cardDetails.js b/client/components/cards/cardDetails.js
index 2cd399c1..da0f126a 100644
--- a/client/components/cards/cardDetails.js
+++ b/client/components/cards/cardDetails.js
@@ -69,6 +69,20 @@ BlazeComponent.extendComponent({
if (offset) {
bodyBoardComponent.scrollLeft(cardContainerScroll + offset);
}
+
+ //Scroll top
+ const cardViewStartTop = $cardView.offset().top;
+ const cardContainerScrollTop = $cardContainer.scrollTop();
+ let topOffset = false;
+ if(cardViewStartTop < 0){
+ topOffset = 0;
+ } else if(cardViewStartTop - cardContainerScrollTop > 100) {
+ topOffset = cardViewStartTop - cardContainerScrollTop - 100;
+ }
+ if(topOffset !== false) {
+ bodyBoardComponent.scrollTop(topOffset);
+ }
+
},
presentParentTask() {
@@ -96,7 +110,11 @@ BlazeComponent.extendComponent({
},
onRendered() {
- if (!Utils.isMiniScreen()) this.scrollParentContainer();
+ if (!Utils.isMiniScreen()) {
+ Meteor.setTimeout(() => {
+ this.scrollParentContainer();
+ }, 500);
+ }
const $checklistsDom = this.$('.card-checklist-items');
$checklistsDom.sortable({
diff --git a/client/components/main/editor.js b/client/components/main/editor.js
index 888fbe00..20ece562 100755
--- a/client/components/main/editor.js
+++ b/client/components/main/editor.js
@@ -38,7 +38,10 @@ Blaze.Template.registerHelper('mentions', new Template('mentions', function() {
const view = this;
const currentBoard = Boards.findOne(Session.get('currentBoard'));
const knowedUsers = currentBoard.members.map((member) => {
- member.username = Users.findOne(member.userId).username;
+ const u = Users.findOne(member.userId);
+ if(u){
+ member.username = u.username;
+ }
return member;
});
const mentionRegex = /\B@([\w.]*)/gi;
diff --git a/client/components/main/layouts.jade b/client/components/main/layouts.jade
index ac7da3af..68876dc5 100644
--- a/client/components/main/layouts.jade
+++ b/client/components/main/layouts.jade
@@ -18,6 +18,7 @@ template(name="userFormsLayout")
img(src="{{pathFor '/wekan-logo.png'}}" alt="Wekan")
section.auth-dialog
+Template.dynamic(template=content)
+ +connectionMethod
if isCas
.at-form
button#cas(class='at-btn submit' type='submit') {{casSignInLabel}}
diff --git a/client/components/main/layouts.js b/client/components/main/layouts.js
index 6d6e616d..1d3c3690 100644
--- a/client/components/main/layouts.js
+++ b/client/components/main/layouts.js
@@ -39,7 +39,7 @@ Template.userFormsLayout.helpers({
const curLang = T9n.getLanguage() || 'en';
return t9nTag === curLang;
},
-
+/*
isCas() {
return Meteor.settings.public &&
Meteor.settings.public.cas &&
@@ -49,6 +49,7 @@ Template.userFormsLayout.helpers({
casSignInLabel() {
return TAPi18n.__('casSignIn', {}, T9n.getLanguage() || 'en');
},
+*/
});
Template.userFormsLayout.events({
@@ -64,6 +65,44 @@ Template.userFormsLayout.events({
}
});
},
+ 'submit form'(event) {
+ const connectionMethod = $('.select-connection').val();
+
+ // Local account
+ if (connectionMethod === 'default') {
+ return;
+ }
+
+ // TODO : find a way to block "submit #at-pwd-form" of the at_pwd_form.js
+
+ const inputs = event.target.getElementsByTagName('input');
+
+ const email = inputs.namedItem('at-field-username_and_email').value;
+ const password = inputs.namedItem('at-field-password').value;
+
+ // Ldap account
+ if (connectionMethod === 'ldap') {
+ // Check if the user can use the ldap connection
+ Meteor.subscribe('user-connection-method', email, {
+ onReady() {
+ const ldap = Users.findOne();
+
+ if (ldap) {
+ // Use the ldap connection package
+ Meteor.loginWithLDAP(email, password, function(error) {
+ if (!error) {
+ // Connection
+ return FlowRouter.go('/');
+ } else {
+ return error;
+ }
+ });
+ }
+ return this.stop();
+ },
+ });
+ }
+ },
});
Template.defaultLayout.events({
diff --git a/client/components/settings/connectionMethod.jade b/client/components/settings/connectionMethod.jade
new file mode 100644
index 00000000..598dd9dd
--- /dev/null
+++ b/client/components/settings/connectionMethod.jade
@@ -0,0 +1,6 @@
+template(name='connectionMethod')
+ div.at-form-connection
+ label Authentication method
+ select.select-connection
+ each connections
+ option(value="{{value}}") {{_ value}}
diff --git a/client/components/settings/connectionMethod.js b/client/components/settings/connectionMethod.js
new file mode 100644
index 00000000..4983a3ef
--- /dev/null
+++ b/client/components/settings/connectionMethod.js
@@ -0,0 +1,34 @@
+Template.connectionMethod.onCreated(function() {
+ this.connectionMethods = new ReactiveVar([]);
+
+ Meteor.call('getConnectionsEnabled', (_, result) => {
+ if (result) {
+ // TODO : add a management of different languages
+ // (ex {value: ldap, text: TAPi18n.__('ldap', {}, T9n.getLanguage() || 'en')})
+ this.connectionMethods.set([
+ {value: 'default'},
+ // Gets only the connection methods availables
+ ...Object.entries(result).filter((e) => e[1]).map((e) => ({value: e[0]})),
+ ]);
+ }
+
+ // If only the default authentication available, hides the select boxe
+ const content = $('.at-form-connection');
+ if (!(this.connectionMethods.get().length > 1)) {
+ content.hide();
+ } else {
+ content.show();
+ }
+ });
+});
+
+Template.connectionMethod.onRendered(() => {
+ // Moves the select boxe in the first place of the at-pwd-form div
+ $('.at-form-connection').detach().prependTo('.at-pwd-form');
+});
+
+Template.connectionMethod.helpers({
+ connections() {
+ return Template.instance().connectionMethods.get();
+ },
+});
diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json
index 7e47952c..62e886e5 100644
--- a/i18n/ar.i18n.json
+++ b/i18n/ar.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/bg.i18n.json b/i18n/bg.i18n.json
index 661d9a76..9a8c8b65 100644
--- a/i18n/bg.i18n.json
+++ b/i18n/bg.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json
index 9bba6154..467c99d9 100644
--- a/i18n/br.i18n.json
+++ b/i18n/br.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json
index 2a34ca96..dd54348e 100644
--- a/i18n/ca.i18n.json
+++ b/i18n/ca.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json
index 5ca9636b..e9bc74ab 100644
--- a/i18n/cs.i18n.json
+++ b/i18n/cs.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"r-d-uncheck-one": "Uncheck item",
"r-d-check-of-list": "of checklist",
"r-d-add-checklist": "Přidat checklist",
- "r-d-remove-checklist": "Odstranit checklist"
+ "r-d-remove-checklist": "Odstranit checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/de.i18n.json b/i18n/de.i18n.json
index 343c7519..408224fd 100644
--- a/i18n/de.i18n.json
+++ b/i18n/de.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": " Wenn das Label ist",
"r-list-name": "Listennamen",
"r-when-a-member": "Wenn ein Mitglied ist",
- "r-when-the-member": "Wenn das Mitglied ist",
+ "r-when-the-member": "Wenn das Mitglied",
"r-name": "Name",
"r-is": "ist",
"r-when-a-attach": "Wenn ein Anhang",
@@ -605,5 +605,6 @@
"r-d-uncheck-one": "Element demarkieren",
"r-d-check-of-list": "der Checkliste",
"r-d-add-checklist": "Checkliste hinzufügen",
- "r-d-remove-checklist": "Checkliste entfernen"
+ "r-d-remove-checklist": "Checkliste entfernen",
+ "r-when-a-card-is-moved": "Wenn eine Karte in eine andere Liste verschoben wird"
} \ No newline at end of file
diff --git a/i18n/el.i18n.json b/i18n/el.i18n.json
index 5018f2cd..6f9c3a66 100644
--- a/i18n/el.i18n.json
+++ b/i18n/el.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/en-GB.i18n.json b/i18n/en-GB.i18n.json
index b2376ba3..bf2dbea3 100644
--- a/i18n/en-GB.i18n.json
+++ b/i18n/en-GB.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/eo.i18n.json b/i18n/eo.i18n.json
index 7b910421..a61208b3 100644
--- a/i18n/eo.i18n.json
+++ b/i18n/eo.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/es-AR.i18n.json b/i18n/es-AR.i18n.json
index d22380e4..a2d55ac2 100644
--- a/i18n/es-AR.i18n.json
+++ b/i18n/es-AR.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/es.i18n.json b/i18n/es.i18n.json
index 8e486464..1c11035b 100644
--- a/i18n/es.i18n.json
+++ b/i18n/es.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/eu.i18n.json b/i18n/eu.i18n.json
index cff6b838..19e36b19 100644
--- a/i18n/eu.i18n.json
+++ b/i18n/eu.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/fa.i18n.json b/i18n/fa.i18n.json
index dc53173b..9ebaee6a 100644
--- a/i18n/fa.i18n.json
+++ b/i18n/fa.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/fi.i18n.json b/i18n/fi.i18n.json
index bec3f19c..753acfaf 100644
--- a/i18n/fi.i18n.json
+++ b/i18n/fi.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "Kun tunniste on",
"r-list-name": "Listan nimi",
"r-when-a-member": "Kun jäsen on",
- "r-when-the-member": "Kun jäsen on",
+ "r-when-the-member": "Kun käyttäjä",
"r-name": "nimi",
"r-is": "on",
"r-when-a-attach": "Kun liitetiedosto",
@@ -605,5 +605,6 @@
"r-d-uncheck-one": "Poista ruksi kohdasta",
"r-d-check-of-list": "tarkistuslistasta",
"r-d-add-checklist": "Lisää tarkistuslista",
- "r-d-remove-checklist": "Poista tarkistuslista"
+ "r-d-remove-checklist": "Poista tarkistuslista",
+ "r-when-a-card-is-moved": "Kun kortti on siirretty toiseen listaan"
} \ No newline at end of file
diff --git a/i18n/fr.i18n.json b/i18n/fr.i18n.json
index cae6cd81..47da1ee2 100644
--- a/i18n/fr.i18n.json
+++ b/i18n/fr.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "Quand l'étiquette est",
"r-list-name": "Nom de la liste",
"r-when-a-member": "Quand un membre est",
- "r-when-the-member": "Quand le membre est",
+ "r-when-the-member": "Quand le membre",
"r-name": "nom",
"r-is": "est",
"r-when-a-attach": "Quand une pièce jointe",
@@ -605,5 +605,6 @@
"r-d-uncheck-one": "Décocher l'élément",
"r-d-check-of-list": "de la checklist",
"r-d-add-checklist": "Ajouter une checklist",
- "r-d-remove-checklist": "Supprimer la checklist"
+ "r-d-remove-checklist": "Supprimer la checklist",
+ "r-when-a-card-is-moved": "Quand une carte est déplacée vers une autre liste"
} \ No newline at end of file
diff --git a/i18n/gl.i18n.json b/i18n/gl.i18n.json
index b539c02f..759bd1cd 100644
--- a/i18n/gl.i18n.json
+++ b/i18n/gl.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/he.i18n.json b/i18n/he.i18n.json
index 8c912d00..ff52b699 100644
--- a/i18n/he.i18n.json
+++ b/i18n/he.i18n.json
@@ -43,17 +43,17 @@
"activity-sent": "%s נשלח ל%s",
"activity-unjoined": "בטל צירוף %s",
"activity-subtask-added": "נוספה תת־משימה אל %s",
- "activity-checked-item": "checked %s in checklist %s of %s",
- "activity-unchecked-item": "unchecked %s in checklist %s of %s",
+ "activity-checked-item": "%s סומן ברשימת המשימות %s מתוך %s",
+ "activity-unchecked-item": "בוטל הסימון של %s ברשימת המשימות %s מתוך %s",
"activity-checklist-added": "נוספה רשימת משימות אל %s",
"activity-checklist-removed": "הוסרה רשימת משימות מ־%s",
"activity-checklist-completed": "רשימת המשימות %s מתוך %s הושלמה",
- "activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
+ "activity-checklist-uncompleted": "רשימת המשימות %s מתוך %s סומנה כבלתי מושלמת",
"activity-checklist-item-added": "נוסף פריט רשימת משימות אל ‚%s‘ תחת %s",
- "activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
+ "activity-checklist-item-removed": "הוסר פריט מרשימת המשימות ‚%s’ תחת %s",
"add": "הוספה",
- "activity-checked-item-card": "checked %s in checklist %s",
- "activity-unchecked-item-card": "unchecked %s in checklist %s",
+ "activity-checked-item-card": "סומן %s ברשימת המשימות %s",
+ "activity-unchecked-item-card": "הסימון של %s בוטל ברשימת המשימות %s",
"activity-checklist-completed-card": "רשימת המשימות %s הושלמה",
"activity-checklist-uncompleted-card": "רשימת המשימות %s סומנה כבלתי מושלמת",
"add-attachment": "הוספת קובץ מצורף",
@@ -548,7 +548,7 @@
"r-when-the-label-is": "כאשר התווית היא",
"r-list-name": "שם הרשימה",
"r-when-a-member": "כאשר חבר הוא",
- "r-when-the-member": "כאשר החבר הוא",
+ "r-when-the-member": "כאשר חבר",
"r-name": "שם",
"r-is": "הוא",
"r-when-a-attach": "כאשר קובץ מצורף",
@@ -605,5 +605,6 @@
"r-d-uncheck-one": "ביטול סימון פריט",
"r-d-check-of-list": "של רשימת משימות",
"r-d-add-checklist": "הוספת רשימת משימות",
- "r-d-remove-checklist": "הסרת רשימת משימות"
+ "r-d-remove-checklist": "הסרת רשימת משימות",
+ "r-when-a-card-is-moved": "כאשר כרטיס מועבר לרשימה אחרת"
} \ No newline at end of file
diff --git a/i18n/hu.i18n.json b/i18n/hu.i18n.json
index fb1f04ff..1ebe8bef 100644
--- a/i18n/hu.i18n.json
+++ b/i18n/hu.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/hy.i18n.json b/i18n/hy.i18n.json
index d54fe4ac..d37621bc 100644
--- a/i18n/hy.i18n.json
+++ b/i18n/hy.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/id.i18n.json b/i18n/id.i18n.json
index b68ec9c8..11ce4d45 100644
--- a/i18n/id.i18n.json
+++ b/i18n/id.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/ig.i18n.json b/i18n/ig.i18n.json
index 43f99f71..9ff7f64c 100644
--- a/i18n/ig.i18n.json
+++ b/i18n/ig.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/it.i18n.json b/i18n/it.i18n.json
index 431d325c..85c760c6 100644
--- a/i18n/it.i18n.json
+++ b/i18n/it.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/ja.i18n.json b/i18n/ja.i18n.json
index c35a95ea..c86845b7 100644
--- a/i18n/ja.i18n.json
+++ b/i18n/ja.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/ka.i18n.json b/i18n/ka.i18n.json
index b82e4cc1..3012bb3e 100644
--- a/i18n/ka.i18n.json
+++ b/i18n/ka.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/km.i18n.json b/i18n/km.i18n.json
index c5e1d524..0e6c8934 100644
--- a/i18n/km.i18n.json
+++ b/i18n/km.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/ko.i18n.json b/i18n/ko.i18n.json
index 73f72932..17d42a59 100644
--- a/i18n/ko.i18n.json
+++ b/i18n/ko.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/lv.i18n.json b/i18n/lv.i18n.json
index 7552da44..7baad114 100644
--- a/i18n/lv.i18n.json
+++ b/i18n/lv.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/mn.i18n.json b/i18n/mn.i18n.json
index 2c4ecbdd..e7698c57 100644
--- a/i18n/mn.i18n.json
+++ b/i18n/mn.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/nb.i18n.json b/i18n/nb.i18n.json
index ff7c453b..15d8a651 100644
--- a/i18n/nb.i18n.json
+++ b/i18n/nb.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/nl.i18n.json b/i18n/nl.i18n.json
index a77e6f3b..51332157 100644
--- a/i18n/nl.i18n.json
+++ b/i18n/nl.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/pl.i18n.json b/i18n/pl.i18n.json
index 61aa6fa3..85c7dca4 100644
--- a/i18n/pl.i18n.json
+++ b/i18n/pl.i18n.json
@@ -1,16 +1,16 @@
{
"accept": "Akceptuj",
"act-activity-notify": "[Wekan] Powiadomienia - aktywności",
- "act-addAttachment": "dodano załącznik __attachement__ do __karty__",
- "act-addSubtask": "dodano podzadanie __checklist__ do __card__",
- "act-addChecklist": "dodano listę zadań __checklist__ to __card__",
- "act-addChecklistItem": "dodano __checklistItem__ do listy zadań __checklist__ na karcie __card__",
+ "act-addAttachment": "dodano załącznik __attachement__ do __card__",
+ "act-addSubtask": "dodał(a) podzadanie __checklist__ do __card__",
+ "act-addChecklist": "dodał(a) listę zadań __checklist__ to __card__",
+ "act-addChecklistItem": "dodał(a) __checklistItem__ do listy zadań __checklist__ na karcie __card__",
"act-addComment": "skomentowano __card__: __comment__",
"act-createBoard": "utworzono __board__",
- "act-createCard": "dodano __card__ do __list__",
+ "act-createCard": "dodał(a) __card__ do __list__",
"act-createCustomField": "dodano niestandardowe pole __customField__",
- "act-createList": "dodano __list__ do __board__",
- "act-addBoardMember": "dodano __member__ do __board__",
+ "act-createList": "dodał(a) __list__ do __board__",
+ "act-addBoardMember": "dodał(a) __member__ do __board__",
"act-archivedBoard": "__board__ została przeniesiona do kosza",
"act-archivedCard": "__card__ została przeniesiona do Kosza",
"act-archivedList": "__list__ została przeniesiona do Kosza",
@@ -18,17 +18,17 @@
"act-importBoard": "zaimportowano __board__",
"act-importCard": "zaimportowano __card__",
"act-importList": "zaimportowano __list__",
- "act-joinMember": "dodano __member_ do __card__",
- "act-moveCard": "przeniesiono __card__ z __oldList__ do __list__",
- "act-removeBoardMember": "usunięto __member__ z __board__",
+ "act-joinMember": "dodał(a) __member_ do __card__",
+ "act-moveCard": "przeniósł/przeniosła __card__ z __oldList__ do __list__",
+ "act-removeBoardMember": "usunął/usunęła __member__ z __board__",
"act-restoredCard": "przywrócono __card__ do __board__",
- "act-unjoinMember": "usunięto __member__ z __card__",
+ "act-unjoinMember": "usunął/usunęła __member__ z __card__",
"act-withBoardTitle": "[Wekan] __board__",
"act-withCardTitle": "[__board__] __card__",
"actions": "Akcje",
- "activities": "Aktywności",
+ "activities": "Ostatnia aktywność",
"activity": "Aktywność",
- "activity-added": "dodano %s z %s",
+ "activity-added": "dodał(a) %s z %s",
"activity-archived": "%s przeniesiono do Kosza",
"activity-attached": "załączono %s z %s",
"activity-created": "utworzono %s",
@@ -37,19 +37,19 @@
"activity-imported": "zaimportowano %s to %s z %s",
"activity-imported-board": "zaimportowano %s z %s",
"activity-joined": "dołączono %s",
- "activity-moved": "przeniesiono % z %s to %s",
+ "activity-moved": "przeniósł/przeniosła % z %s to %s",
"activity-on": "w %s",
"activity-removed": "usunięto %s z %s",
"activity-sent": "wysłano %s z %s",
"activity-unjoined": "odłączono %s",
- "activity-subtask-added": "dodano podzadanie do %s",
+ "activity-subtask-added": "dodał(a) podzadanie do %s",
"activity-checked-item": "zaznaczono %s w liście zadań%s z %s",
"activity-unchecked-item": "odznaczono %s w liście zadań %s z %s",
- "activity-checklist-added": "dodano listę zadań do %s",
+ "activity-checklist-added": "dodał(a) listę zadań do %s",
"activity-checklist-removed": "usunięto listę zadań z %s",
"activity-checklist-completed": "ukończono listę zadań %s z %s",
"activity-checklist-uncompleted": "nieukończono listy zadań %s z %s",
- "activity-checklist-item-added": "dodano zadanie '%s' do %s",
+ "activity-checklist-item-added": "dodał(a) zadanie '%s' do %s",
"activity-checklist-item-removed": "usunięto element z listy zadań %s w %s",
"add": "Dodaj",
"activity-checked-item-card": "zaznaczono %s w liście zadań %s",
@@ -60,37 +60,37 @@
"add-board": "Dodaj tablicę",
"add-card": "Dodaj kartę",
"add-swimlane": "Dodaj diagram czynności",
- "add-subtask": "Dodano Podzadanie",
+ "add-subtask": "Dodano podzadanie",
"add-checklist": "Dodaj listę kontrolną",
"add-checklist-item": "Dodaj element do listy kontrolnej",
"add-cover": "Dodaj okładkę",
"add-label": "Dodaj etykietę",
"add-list": "Dodaj listę",
"add-members": "Dodaj członków",
- "added": "Dodano",
+ "added": "Dodane",
"addMemberPopup-title": "Członkowie",
- "admin": "Admin",
+ "admin": "Administrator",
"admin-desc": "Może widzieć i edytować karty, usuwać członków oraz zmieniać ustawienia tablicy.",
"admin-announcement": "Ogłoszenie",
- "admin-announcement-active": "Aktywne Ogólnosystemowe Ogłoszenie ",
- "admin-announcement-title": "Ogłoszenie od Administratora",
+ "admin-announcement-active": "Włącz ogłoszenie systemowe",
+ "admin-announcement-title": "Ogłoszenie od administratora",
"all-boards": "Wszystkie tablice",
"and-n-other-card": "And __count__ other card",
"and-n-other-card_plural": "And __count__ other cards",
"apply": "Zastosuj",
- "app-is-offline": "Wekan jest aktualnie ładowany, proszę czekać. Odświeżenie strony spowoduję utratę danych. Jeżeli Wekan się nie ładuje, prosimy o upewnienie się czy serwer Wekan nie został zatrzymany.",
+ "app-is-offline": "Wekan jest aktualnie ładowany, proszę czekać. Odświeżenie strony spowoduję utratę danych. Jeżeli Wekan się nie ładuje, upewnij się czy serwer Wekan nie został zatrzymany.",
"archive": "Przenieś do Kosza",
- "archive-all": "Przenieś Wszystkie do Kosza",
- "archive-board": "Przenieś Tablicę do Kosza",
- "archive-card": "Przenieś Kartę do Kosza",
- "archive-list": "Przenieś Listę do Kosza",
+ "archive-all": "Przenieś wszystko do Kosza",
+ "archive-board": "Przenieś tablicę do Kosza",
+ "archive-card": "Przenieś kartę do Kosza",
+ "archive-list": "Przenieś listę do Kosza",
"archive-swimlane": "Przenieś diagram czynności do kosza",
"archive-selection": "Przenieś zaznaczenie do Kosza",
- "archiveBoardPopup-title": "Przenieść Tablicę do Kosza?",
+ "archiveBoardPopup-title": "Czy przenieść tablicę do Kosza?",
"archived-items": "Kosz",
"archived-boards": "Tablice w Koszu",
"restore-board": "Przywróć tablicę",
- "no-archived-boards": "Brak Tablic w Koszu.",
+ "no-archived-boards": "Brak tablic w Koszu.",
"archives": "Kosz",
"assign-member": "Dodaj członka",
"attached": "załączono",
@@ -108,7 +108,7 @@
"board-public-info": "Ta tablica będzie <strong>publiczna<strong>.",
"boardChangeColorPopup-title": "Zmień tło tablicy",
"boardChangeTitlePopup-title": "Zmień nazwę tablicy",
- "boardChangeVisibilityPopup-title": "Zmień widoczność",
+ "boardChangeVisibilityPopup-title": "Zmień widoczność tablicy",
"boardChangeWatchPopup-title": "Zmień sposób powiadamiania",
"boardMenuPopup-title": "Menu tablicy",
"boards": "Tablice",
@@ -116,7 +116,7 @@
"board-view-cal": "Kalendarz",
"board-view-swimlanes": "Diagramy czynności",
"board-view-lists": "Listy",
- "bucket-example": "Like “Bucket List” for example",
+ "bucket-example": "Tak jak na przykład \"lista kubełkowa\"",
"cancel": "Anuluj",
"card-archived": "Ta Karta została przeniesiona do Kosza.",
"board-archived": "Ta Tablica została przeniesiona do Kosza.",
@@ -124,8 +124,8 @@
"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-suggest-archive": "Możesz przenieść Kartę do Kosza by usunąć ją z tablicy i zachować aktywności.",
- "card-due": "Due",
- "card-due-on": "Due on",
+ "card-due": "Ukończenie\n",
+ "card-due-on": "Ukończenie w",
"card-spent": "Spędzony czas",
"card-edit-attachments": "Edytuj załączniki",
"card-edit-custom-fields": "Edytuj niestandardowe pola",
@@ -139,7 +139,7 @@
"cardCustomField-datePopup-title": "Zmień datę",
"cardCustomFieldsPopup-title": "Edytuj niestandardowe pola",
"cardDeletePopup-title": "Usunąć kartę?",
- "cardDetailsActionsPopup-title": "Card Actions",
+ "cardDetailsActionsPopup-title": "Czynności kart",
"cardLabelsPopup-title": "Etykiety",
"cardMembersPopup-title": "Członkowie",
"cardMorePopup-title": "Więcej",
@@ -150,11 +150,11 @@
"cardType-linkedCard": "Podpięta karta",
"cardType-linkedBoard": "Podpięta tablica",
"change": "Zmień",
- "change-avatar": "Zmień Avatar",
+ "change-avatar": "Zmień avatar",
"change-password": "Zmień hasło",
"change-permissions": "Zmień uprawnienia",
"change-settings": "Zmień ustawienia",
- "changeAvatarPopup-title": "Zmień Avatar",
+ "changeAvatarPopup-title": "Zmień avatar",
"changeLanguagePopup-title": "Zmień język",
"changePasswordPopup-title": "Zmień hasło",
"changePermissionsPopup-title": "Zmień uprawnienia",
@@ -191,8 +191,8 @@
"searchCardPopup-title": "Znajdź kartę",
"copyCardPopup-title": "Skopiuj kartę",
"copyChecklistToManyCardsPopup-title": "Kopiuj szablon listy zadań do wielu kart",
- "copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
- "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
+ "copyChecklistToManyCardsPopup-instructions": "Docelowe tytuły i opisy kart są w formacie JSON",
+ "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"Tytuł pierwszej karty\", \"description\":\"Opis pierwszej karty\"}, {\"title\":\"Tytuł drugiej karty\",\"description\":\"Opis drugiej karty\"},{\"title\":\"Tytuł ostatniej karty\",\"description\":\"Opis ostatniej karty\"} ]",
"create": "Utwórz",
"createBoardPopup-title": "Utwórz tablicę",
"chooseBoardSourcePopup-title": "Import tablicy",
@@ -218,22 +218,22 @@
"deleteCustomFieldPopup-title": "Usunąć niestandardowe pole?",
"deleteLabelPopup-title": "Usunąć etykietę?",
"description": "Opis",
- "disambiguateMultiLabelPopup-title": "Disambiguate Label Action",
- "disambiguateMultiMemberPopup-title": "Disambiguate Member Action",
+ "disambiguateMultiLabelPopup-title": "Ujednolić etykiety czynności",
+ "disambiguateMultiMemberPopup-title": "Ujednolić etykiety członków",
"discard": "Odrzuć",
"done": "Zrobiono",
"download": "Pobierz",
"edit": "Edytuj",
- "edit-avatar": "Zmień Avatar",
+ "edit-avatar": "Zmień avatar",
"edit-profile": "Edytuj profil",
- "edit-wip-limit": "Edit WIP Limit",
- "soft-wip-limit": "Soft WIP Limit",
+ "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": "Change due date",
+ "editCardDueDatePopup-title": "Zmień datę ukończenia",
"editCustomFieldPopup-title": "Edytuj pole",
"editCardSpentTimePopup-title": "Zmień spędzony czas",
"editLabelPopup-title": "Zmień etykietę",
- "editNotificationPopup-title": "Edytuj powiadomienia",
+ "editNotificationPopup-title": "Zmień tryb powiadamiania",
"editProfilePopup-title": "Edytuj profil",
"email": "Email",
"email-enrollAccount-subject": "Konto zostało utworzone na __siteName__",
@@ -249,12 +249,12 @@
"email-sent": "Email wysłany",
"email-verifyEmail-subject": "Zweryfikuj swój adres email na __siteName__",
"email-verifyEmail-text": "Witaj __user__,\nAby zweryfikować adres email, kliknij w link poniżej.\n__url__\nDzięki.",
- "enable-wip-limit": "Enable WIP Limit",
+ "enable-wip-limit": "Włącz limit kart na liście",
"error-board-doesNotExist": "Ta tablica nie istnieje",
"error-board-notAdmin": "Musisz być administratorem tej tablicy żeby to zrobić",
- "error-board-notAMember": "Musisz być członkiem tej tablicy żeby to zrobić",
- "error-json-malformed": "Twój tekst nie jest poprawnym JSONem",
- "error-json-schema": "Twój JSON nie zawiera prawidłowych informacji w poprawnym formacie",
+ "error-board-notAMember": "Musisz być członkiem tej tablicy, żeby wykonać tę czynność",
+ "error-json-malformed": "Twoja fraza nie jest w formacie JSON",
+ "error-json-schema": "Twoje dane JSON nie zawierają prawidłowych informacji w poprawnym formacie",
"error-list-doesNotExist": "Ta lista nie isnieje",
"error-user-doesNotExist": "Ten użytkownik nie istnieje",
"error-user-notAllowSelf": "Nie możesz zaprosić samego siebie",
@@ -272,31 +272,31 @@
"filter-on-desc": "Filtrujesz karty na tej tablicy. Kliknij tutaj by edytować filtr.",
"filter-to-selection": "Odfiltruj zaznaczenie",
"advanced-filter-label": "Zaawansowane filtry",
- "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) to be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally all operators are interpreted from left to right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
- "fullname": "Full Name",
+ "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",
+ "fullname": "Pełna nazwa",
"header-logo-title": "Wróć do swojej strony z tablicami.",
"hide-system-messages": "Ukryj wiadomości systemowe",
"headerBarCreateBoardPopup-title": "Utwórz tablicę",
"home": "Strona główna",
- "import": "Importu",
- "link": "Link",
+ "import": "Importuj",
+ "link": "Podłącz",
"import-board": "importuj tablice",
"import-board-c": "Import tablicy",
- "import-board-title-trello": "Import board from Trello",
+ "import-board-title-trello": "Importuj tablicę z Trello",
"import-board-title-wekan": "Importuj tablice z Wekan",
"import-sandstorm-warning": "Zaimportowana tablica usunie wszystkie istniejące dane na aktualnej tablicy oraz zastąpi ją danymi z tej importowanej.",
"from-trello": "Z Trello",
"from-wekan": "Z Wekan",
- "import-board-instruction-trello": "W twojej tablicy na Trello, idź do 'Menu', następnie 'More', 'Print and Export', 'Export JSON' i skopiuj wynik",
- "import-board-instruction-wekan": "In your Wekan board, go to 'Menu', then 'Export board', and copy the text in the downloaded file.",
- "import-json-placeholder": "Wklej twój JSON tutaj",
+ "import-board-instruction-trello": "W twojej tablicy na Trello przejdź do 'Menu', następnie 'Więcej', 'Drukuj i eksportuj', 'Eksportuj jako JSON' i skopiuj wynik",
+ "import-board-instruction-wekan": "Na Twojej tablicy Wekan przejdź do 'Menu', a następnie wybierz 'Eksportuj tablicę' i skopiuj tekst w pobranym pliku.",
+ "import-json-placeholder": "Wklej Twoje dane JSON tutaj",
"import-map-members": "Przypisz członków",
"import-members-map": "Twoje zaimportowane tablice mają kilku członków. Proszę wybierz członków których chcesz zaimportować do Wekan",
"import-show-user-mapping": "Przejrzyj wybranych członków",
- "import-user-select": "Pick the Wekan user you want to use as this member",
+ "import-user-select": "Wybierz użytkownika Wekan, który ma stać się członkiem",
"importMapMembersAddPopup-title": "Wybierz użytkownika",
"info": "Wersja",
- "initials": "Initials",
+ "initials": "Inicjały",
"invalid-date": "Błędna data",
"invalid-time": "Błędny czas",
"invalid-user": "Zła nazwa użytkownika",
@@ -305,16 +305,16 @@
"keyboard-shortcuts": "Skróty klawiaturowe",
"label-create": "Utwórz etykietę",
"label-default": "%s etykieta (domyślna)",
- "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.",
+ "label-delete-pop": "Nie da się tego wycofać. To usunie tę etykietę ze wszystkich kart i usunie ich historię.",
"labels": "Etykiety",
"language": "Język",
- "last-admin-desc": "You can’t change roles because there must be at least one admin.",
+ "last-admin-desc": "Nie możesz zmienić roli użytkownika, ponieważ musi istnieć co najmniej jeden administrator.",
"leave-board": "Opuść tablicę",
"leave-board-pop": "Czy jesteś pewien, że chcesz opuścić tablicę __boardTitle__? Zostaniesz usunięty ze wszystkich kart tej tablicy.",
"leaveBoardPopup-title": "Opuścić tablicę?",
"link-card": "Link do tej karty",
"list-archive-cards": "Przenieś wszystkie karty tej listy do Kosza.",
- "list-archive-cards-pop": "This will remove all the cards in this list from the board. To view cards in Recycle Bin and bring them back to the board, click “Menu” > “Recycle Bin”.",
+ "list-archive-cards-pop": "To usunie wszystkie karty w tej liście z tablicy. By przejrzeć karty w Koszu i przywrócić je na tablicę, wybierz 'Menu', a następnie 'Kosz'.",
"list-move-cards": "Przenieś wszystkie karty z tej listy",
"list-select-cards": "Zaznacz wszystkie karty z tej listy",
"listActionPopup-title": "Lista akcji",
@@ -329,7 +329,7 @@
"log-out": "Wyloguj",
"log-in": "Zaloguj",
"loginPopup-title": "Zaloguj",
- "memberMenuPopup-title": "Member Settings",
+ "memberMenuPopup-title": "Ustawienia członków",
"members": "Członkowie",
"menu": "Menu",
"move-selection": "Przenieś zaznaczone",
@@ -339,17 +339,17 @@
"moveSelectionPopup-title": "Przenieś zaznaczone",
"multi-selection": "Wielokrotne zaznaczenie",
"multi-selection-on": "Wielokrotne zaznaczenie jest włączone",
- "muted": "Wyciszona",
- "muted-info": "Nie zostaniesz powiadomiony o zmianach w tablicy",
+ "muted": "Wycisz",
+ "muted-info": "Nie zostaniesz powiadomiony o zmianach w tej tablicy",
"my-boards": "Moje tablice",
"name": "Nazwa",
"no-archived-cards": "Brak kart w Koszu.",
"no-archived-lists": "Brak list w Koszu.",
"no-archived-swimlanes": "Brak diagramów czynności w Koszu.",
"no-results": "Brak wyników",
- "normal": "Normal",
+ "normal": "Użytkownik standardowy",
"normal-desc": "Może widzieć i edytować karty. Nie może zmieniać ustawiań.",
- "not-accepted-yet": "Zaproszenie jeszcze nie zaakceptowane",
+ "not-accepted-yet": "Zaproszenie jeszcze niezaakceptowane",
"notify-participate": "Otrzymuj aktualizacje kart, w których uczestniczysz jako twórca lub członek.",
"notify-watch": "Otrzymuj powiadomienia z tablic, list i kart, które obserwujesz",
"optional": "opcjonalny",
@@ -357,7 +357,7 @@
"page-maybe-private": "Ta strona może być prywatna. Możliwe, że możesz ją zobaczyć po <a href='%s'>zalogowaniu</a>.",
"page-not-found": "Strona nie znaleziona.",
"password": "Hasło",
- "paste-or-dragdrop": "wklej lub przeciągnij & upuść obrazek",
+ "paste-or-dragdrop": "wklej lub przeciągnij & upuść (tylko grafika)",
"participating": "Uczestniczysz",
"preview": "Podgląd",
"previewAttachedImagePopup-title": "Podgląd",
@@ -366,7 +366,7 @@
"private-desc": "Ta tablica jest prywatna. Tylko osoby dodane do tej tablicy mogą ją zobaczyć i edytować.",
"profile": "Profil",
"public": "Publiczny",
- "public-desc": "This board is public. It's visible to anyone with the link and will show up in search engines like Google. Only people added to the board can edit.",
+ "public-desc": "Ta tablica jest publiczna. Jest widoczna dla wszystkich, którzy mają do niej odnośnik i będzie wynikiem silników wyszukiwania takich jak Google. Tylko użytkownicy dodani do tablicy mogą ją edytować.",
"quick-access-description": "Odznacz tablicę aby dodać skrót na tym pasku.",
"remove-cover": "Usuń okładkę",
"remove-from-board": "Usuń z tablicy",
@@ -386,10 +386,10 @@
"search-example": "Czego mam szukać?",
"select-color": "Wybierz kolor",
"set-wip-limit-value": "Ustaw maksymalny limit zadań na tej liście",
- "setWipLimitPopup-title": "Set WIP Limit",
+ "setWipLimitPopup-title": "Ustaw limit kart na liście",
"shortcut-assign-self": "Przypisz siebie do obecnej karty",
- "shortcut-autocomplete-emoji": "Autocomplete emoji",
- "shortcut-autocomplete-members": "Autocomplete members",
+ "shortcut-autocomplete-emoji": "Autouzupełnianie emoji",
+ "shortcut-autocomplete-members": "Autouzupełnianie członków",
"shortcut-clear-filters": "Usuń wszystkie filtry",
"shortcut-close-dialog": "Zamknij okno",
"shortcut-filter-my-cards": "Filtruj moje karty",
@@ -400,9 +400,9 @@
"sidebar-open": "Otwórz pasek boczny",
"sidebar-close": "Zamknij pasek boczny",
"signupPopup-title": "Utwórz konto",
- "star-board-title": "Click to star this board. It will show up at top of your boards list.",
+ "star-board-title": "Kliknij by oznaczyć tę tablicę gwiazdką. Pojawi się wtedy na liście tablic na górze.",
"starred-boards": "Odznaczone tablice",
- "starred-boards-description": "Starred boards show up at the top of your boards list.",
+ "starred-boards-description": "Tablice oznaczone gwiazdką pojawią się na liście na górze.",
"subscribe": "Zapisz się",
"team": "Zespół",
"this-board": "ta tablica",
@@ -411,14 +411,14 @@
"overtime-hours": "Nadgodziny (czas)",
"overtime": "Dodatkowo",
"has-overtime-cards": "Ma dodatkowych kart",
- "has-spenttime-cards": "Has spent time cards",
+ "has-spenttime-cards": "Ma karty z wykorzystanym czasem",
"time": "Czas",
"title": "Tytuł",
"tracking": "Śledzenie",
"tracking-info": "Zostaniesz poinformowany o zmianach kart, w których bierzesz udział jako twórca lub członek.",
"type": "Typ",
"unassign-member": "Nieprzypisany członek",
- "unsaved-description": "You have an unsaved description.",
+ "unsaved-description": "Masz niezapisany opis.",
"unwatch": "Nie obserwuj",
"upload": "Wyślij",
"upload-avatar": "Wyślij avatar",
@@ -430,18 +430,18 @@
"watching": "Obserwujesz",
"watching-info": "Będziesz poinformowany o każdej zmianie na tej tablicy",
"welcome-board": "Tablica powitalna",
- "welcome-swimlane": "Milestone 1",
+ "welcome-swimlane": "Kamień milowy 1",
"welcome-list1": "Podstawy",
"welcome-list2": "Zaawansowane",
"what-to-do": "Co chcesz zrobić?",
- "wipLimitErrorPopup-title": "Invalid WIP Limit",
- "wipLimitErrorPopup-dialog-pt1": "The number of tasks in this list is higher than the WIP limit you've defined.",
- "wipLimitErrorPopup-dialog-pt2": "Please move some tasks out of this list, or set a higher WIP limit.",
+ "wipLimitErrorPopup-title": "Nieprawidłowy limit kart na liście",
+ "wipLimitErrorPopup-dialog-pt1": "Aktualna ilość kart na tej liście jest większa niż aktualny zdefiniowany limit kart.",
+ "wipLimitErrorPopup-dialog-pt2": "Proszę przenieś zadania z tej listy lub zmień limit kart na tej liście na wyższy.",
"admin-panel": "Panel administracyjny",
"settings": "Ustawienia",
"people": "Osoby",
"registration": "Rejestracja",
- "disable-self-registration": "Wyłącz rejestrację samodzielną",
+ "disable-self-registration": "Wyłącz samodzielną rejestrację",
"invite": "Zaproś",
"invite-people": "Zaproś osoby",
"to-boards": "Do tablic(y)",
@@ -459,29 +459,29 @@
"invitation-code": "Kod z zaproszenia",
"email-invite-register-subject": "__inviter__ wysłał Ci zaproszenie",
"email-invite-register-text": "Drogi __user__,\n\n__inviter__ zaprasza Cię do współpracy na Wekan.\n\nAby kontynuować, wejdź w poniższy link:\n__url__\n\nTwój kod zaproszenia to: __icode__\n\nDziękuję.",
- "email-smtp-test-subject": "Test SMTP z Wekan",
+ "email-smtp-test-subject": "Test serwera SMTP z Wekan",
"email-smtp-test-text": "Wiadomość testowa została wysłana z powodzeniem.",
"error-invitation-code-not-exist": "Kod zaproszenia nie istnieje",
"error-notAuthorized": "Nie jesteś uprawniony do przeglądania tej strony.",
- "outgoing-webhooks": "Outgoing Webhooks",
- "outgoingWebhooksPopup-title": "Outgoing Webhooks",
- "new-outgoing-webhook": "New Outgoing Webhook",
+ "outgoing-webhooks": "Wychodzące webhooki",
+ "outgoingWebhooksPopup-title": "Wychodzące webhooki",
+ "new-outgoing-webhook": "Nowy wychodzący webhook",
"no-name": "(nieznany)",
"Wekan_version": "Wersja Wekan",
"Node_version": "Wersja Node",
- "OS_Arch": "Architektura systemu operacyjnego",
- "OS_Cpus": "Ilość rdzeni systemu operacyjnego",
+ "OS_Arch": "Architektura systemu",
+ "OS_Cpus": "Ilość rdzeni systemu",
"OS_Freemem": "Wolna pamięć RAM",
- "OS_Loadavg": "Średnie obciążenie systemu operacyjnego",
+ "OS_Loadavg": "Średnie obciążenie systemu",
"OS_Platform": "Platforma systemu",
- "OS_Release": "Wersja systemu operacyjnego",
+ "OS_Release": "Wersja jądra",
"OS_Totalmem": "Dostępna pamięć RAM",
- "OS_Type": "Wersja systemu operacyjnego",
- "OS_Uptime": "Uptime systemu operacyjnego",
+ "OS_Type": "Typ systemu",
+ "OS_Uptime": "Czas działania systemu",
"hours": "godzin",
"minutes": "minut",
"seconds": "sekund",
- "show-field-on-card": "Show this field on card",
+ "show-field-on-card": "Pokaż te pole na karcie",
"yes": "Tak",
"no": "Nie",
"accounts": "Konto",
@@ -491,42 +491,42 @@
"verified": "Zweryfikowane",
"active": "Aktywny",
"card-received": "Odebrano",
- "card-received-on": "Received on",
+ "card-received-on": "Odebrano",
"card-end": "Koniec",
"card-end-on": "Kończy się",
"editCardReceivedDatePopup-title": "Zmień datę odebrania",
"editCardEndDatePopup-title": "Zmień datę ukończenia",
"assigned-by": "Przypisane przez",
- "requested-by": "Requested By",
+ "requested-by": "Zlecone przez",
"board-delete-notice": "Usuwanie jest permanentne. Stracisz wszystkie listy, kart oraz czynności 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ę",
- "default-subtasks-board": "Subtasks for __board__ board",
+ "default-subtasks-board": "Podzadania dla tablicy __board__",
"default": "Domyślny",
"queue": "Kolejka",
- "subtask-settings": "Subtasks Settings",
- "boardSubtaskSettingsPopup-title": "Board Subtasks Settings",
- "show-subtasks-field": "Cards can have subtasks",
- "deposit-subtasks-board": "Deposit subtasks to this board:",
- "deposit-subtasks-list": "Landing list for subtasks deposited here:",
- "show-parent-in-minicard": "Show parent in minicard:",
- "prefix-with-full-path": "Prefix with full path",
- "prefix-with-parent": "Prefix with parent",
- "subtext-with-full-path": "Subtext with full path",
- "subtext-with-parent": "Subtext with parent",
+ "subtask-settings": "Ustawienia podzadań",
+ "boardSubtaskSettingsPopup-title": "Ustawienia tablicy podzadań",
+ "show-subtasks-field": "Karty mogą mieć podzadania",
+ "deposit-subtasks-board": "Przechowuj podzadania na tablicy:",
+ "deposit-subtasks-list": "Początkowa lista dla podzadań jest przechowywana w:",
+ "show-parent-in-minicard": "Pokaż rodzica w minikarcie:",
+ "prefix-with-full-path": "Prefix z pełną ścieżką",
+ "prefix-with-parent": "Prefix z rodzicem",
+ "subtext-with-full-path": "Podtekst z pełną ścieżką",
+ "subtext-with-parent": "Podtekst z rodzicem",
"change-card-parent": "Zmień rodzica karty",
- "parent-card": "Parent card",
+ "parent-card": "Karta rodzica",
"source-board": "Tablica źródłowa",
"no-parent": "Nie pokazuj rodzica",
- "activity-added-label": "dodano etykietę '%s' z %s",
+ "activity-added-label": "dodał(a) etykietę '%s' z %s",
"activity-removed-label": "usunięto etykietę '%s' z %s",
"activity-delete-attach": "usunięto załącznik z %s",
- "activity-added-label-card": "usunięto etykietę '%s'",
+ "activity-added-label-card": "dodał(a) etykietę '%s'",
"activity-removed-label-card": "usunięto etykietę '%s'",
"activity-delete-attach-card": "usunięto załącznik",
"r-rule": "Reguła",
- "r-add-trigger": "Add trigger",
+ "r-add-trigger": "Dodaj przełącznik",
"r-add-action": "Dodaj czynność",
"r-board-rules": "Reguły tablicy",
"r-add-rule": "Dodaj regułę",
@@ -541,7 +541,7 @@
"r-list": "lista",
"r-moved-to": "Przeniesiono do",
"r-moved-from": "Przeniesiono z",
- "r-archived": "Przeniesiono do kosza",
+ "r-archived": "Przeniesiono do Kosza",
"r-unarchived": "Przywrócono z Kosza",
"r-a-card": "karta",
"r-when-a-label-is": "Gdy etykieta jest",
@@ -555,7 +555,7 @@
"r-when-a-checklist": "Gdy lista zadań jest",
"r-when-the-checklist": "Gdy lista zadań",
"r-completed": "Ukończono",
- "r-made-incomplete": "Made incomplete",
+ "r-made-incomplete": "Niedokończone",
"r-when-a-item": "Gdy lista zadań jest",
"r-when-the-item": "Gdy element listy zadań",
"r-checked": "Zaznaczony",
@@ -605,5 +605,6 @@
"r-d-uncheck-one": "Odznacz element",
"r-d-check-of-list": "z listy zadań",
"r-d-add-checklist": "Dodaj listę zadań",
- "r-d-remove-checklist": "Usuń listę zadań"
+ "r-d-remove-checklist": "Usuń listę zadań",
+ "r-when-a-card-is-moved": "Gdy karta jest przeniesiona do innej listy"
} \ No newline at end of file
diff --git a/i18n/pt-BR.i18n.json b/i18n/pt-BR.i18n.json
index 55ed4082..c1038b2c 100644
--- a/i18n/pt-BR.i18n.json
+++ b/i18n/pt-BR.i18n.json
@@ -541,14 +541,14 @@
"r-list": "list",
"r-moved-to": "Moved to",
"r-moved-from": "Moved from",
- "r-archived": "Moved to Recycle Bin",
- "r-unarchived": "Restored from Recycle Bin",
- "r-a-card": "a card",
+ "r-archived": "Enviado para a lixeira",
+ "r-unarchived": "Restaurado da lixeira",
+ "r-a-card": "um cartão",
"r-when-a-label-is": "When a label is",
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -558,52 +558,53 @@
"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-unchecked": "Unchecked",
+ "r-checked": "Marcado",
+ "r-unchecked": "Desmarcado",
"r-move-card-to": "Move card to",
"r-top-of": "Top of",
"r-bottom-of": "Bottom of",
"r-its-list": "its list",
"r-archive": "Mover para a lixeira",
"r-unarchive": "Restore from Recycle Bin",
- "r-card": "card",
+ "r-card": "cartão",
"r-add": "Novo",
- "r-remove": "Remove",
- "r-label": "label",
- "r-member": "member",
+ "r-remove": "Remover",
+ "r-label": "etiqueta",
+ "r-member": "membro",
"r-remove-all": "Remove all members from the card",
"r-checklist": "checklist",
- "r-check-all": "Check all",
- "r-uncheck-all": "Uncheck all",
- "r-item-check": "Items of checklist",
- "r-check": "Check",
- "r-uncheck": "Uncheck",
+ "r-check-all": "Marcar todos",
+ "r-uncheck-all": "Desmarcar todos",
+ "r-item-check": "itens do checklist",
+ "r-check": "Marcar",
+ "r-uncheck": "Desmarcar",
"r-item": "item",
- "r-of-checklist": "of checklist",
- "r-send-email": "Send an email",
- "r-to": "to",
- "r-subject": "subject",
+ "r-of-checklist": "do checklist",
+ "r-send-email": "Enviar um e-mail",
+ "r-to": "para",
+ "r-subject": "assunto",
"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-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-send-email-to": "to",
- "r-d-send-email-subject": "subject",
- "r-d-send-email-message": "message",
- "r-d-archive": "Move card to Recycle Bin",
- "r-d-unarchive": "Restore card from Recycle Bin",
- "r-d-add-label": "Add label",
- "r-d-remove-label": "Remove label",
- "r-d-add-member": "Add member",
- "r-d-remove-member": "Remove member",
- "r-d-remove-all-member": "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-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-send-email": "Enviar e-mail",
+ "r-d-send-email-to": "para",
+ "r-d-send-email-subject": "assunto",
+ "r-d-send-email-message": "mensagem",
+ "r-d-archive": "Enviar cartão para a lixeira",
+ "r-d-unarchive": "Restaurar cartão da lixeira",
+ "r-d-add-label": "Adicionar etiqueta",
+ "r-d-remove-label": "Remover etiqueta",
+ "r-d-add-member": "Adicionar membro",
+ "r-d-remove-member": "Remover membro",
+ "r-d-remove-all-member": "Remover todos os membros",
+ "r-d-check-all": "Marcar todos os itens de uma lista",
+ "r-d-uncheck-all": "Desmarcar todos os itens de uma lista",
+ "r-d-check-one": "Marcar item",
+ "r-d-uncheck-one": "Desmarcar item",
+ "r-d-check-of-list": "do checklist",
+ "r-d-add-checklist": "Adicionar checklist",
+ "r-d-remove-checklist": "Remover checklist",
+ "r-when-a-card-is-moved": "Quando um cartão é movido de outra lista"
} \ No newline at end of file
diff --git a/i18n/pt.i18n.json b/i18n/pt.i18n.json
index 3c6b896e..986efb39 100644
--- a/i18n/pt.i18n.json
+++ b/i18n/pt.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/ro.i18n.json b/i18n/ro.i18n.json
index 41d8e858..6ece0bcc 100644
--- a/i18n/ro.i18n.json
+++ b/i18n/ro.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/ru.i18n.json b/i18n/ru.i18n.json
index 82691aa2..d501d77e 100644
--- a/i18n/ru.i18n.json
+++ b/i18n/ru.i18n.json
@@ -46,7 +46,7 @@
"activity-checked-item": "checked %s in checklist %s of %s",
"activity-unchecked-item": "unchecked %s in checklist %s of %s",
"activity-checklist-added": "добавил контрольный список в %s",
- "activity-checklist-removed": "removed a checklist from %s",
+ "activity-checklist-removed": "удалил контрольный список из %s",
"activity-checklist-completed": "completed the checklist %s of %s",
"activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
"activity-checklist-item-added": "добавил пункт контрольного списка в '%s' в карточке %s",
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/sr.i18n.json b/i18n/sr.i18n.json
index d7b57095..968b6a18 100644
--- a/i18n/sr.i18n.json
+++ b/i18n/sr.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/sv.i18n.json b/i18n/sv.i18n.json
index 0ec67b3d..670f6844 100644
--- a/i18n/sv.i18n.json
+++ b/i18n/sv.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/ta.i18n.json b/i18n/ta.i18n.json
index 841d3695..07686e88 100644
--- a/i18n/ta.i18n.json
+++ b/i18n/ta.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/th.i18n.json b/i18n/th.i18n.json
index e38cc9b5..3227dd34 100644
--- a/i18n/th.i18n.json
+++ b/i18n/th.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/tr.i18n.json b/i18n/tr.i18n.json
index 862aabad..e6b5e275 100644
--- a/i18n/tr.i18n.json
+++ b/i18n/tr.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/uk.i18n.json b/i18n/uk.i18n.json
index afcb5f7d..0fc8265e 100644
--- a/i18n/uk.i18n.json
+++ b/i18n/uk.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/vi.i18n.json b/i18n/vi.i18n.json
index 94ae8893..be1a166e 100644
--- a/i18n/vi.i18n.json
+++ b/i18n/vi.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/zh-CN.i18n.json b/i18n/zh-CN.i18n.json
index 1c365f7b..7f49807f 100644
--- a/i18n/zh-CN.i18n.json
+++ b/i18n/zh-CN.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/i18n/zh-TW.i18n.json b/i18n/zh-TW.i18n.json
index d7b3a9db..89ea22e5 100644
--- a/i18n/zh-TW.i18n.json
+++ b/i18n/zh-TW.i18n.json
@@ -548,7 +548,7 @@
"r-when-the-label-is": "When the label is",
"r-list-name": "List name",
"r-when-a-member": "When a member is",
- "r-when-the-member": "When the member is",
+ "r-when-the-member": "When the member",
"r-name": "name",
"r-is": "is",
"r-when-a-attach": "When an attachment",
@@ -605,5 +605,6 @@
"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-remove-checklist": "Remove checklist",
+ "r-when-a-card-is-moved": "When a card is moved to another list"
} \ No newline at end of file
diff --git a/models/boards.js b/models/boards.js
index 641ecdb9..52d0ca87 100644
--- a/models/boards.js
+++ b/models/boards.js
@@ -541,11 +541,10 @@ Boards.mutations({
};
},
- setMemberPermission(memberId, isAdmin, isNoComments, isCommentOnly) {
+ setMemberPermission(memberId, isAdmin, isNoComments, isCommentOnly, currentUserId = Meteor.userId()) {
const memberIndex = this.memberIndex(memberId);
-
// do not allow change permission of self
- if (memberId === Meteor.userId()) {
+ if (memberId === currentUserId) {
isAdmin = this.members[memberIndex].isAdmin;
}
@@ -927,4 +926,29 @@ if (Meteor.isServer) {
});
}
});
+
+ JsonRoutes.add('POST', '/api/boards/:boardId/members/:memberId', function (req, res) {
+ try {
+ const boardId = req.params.boardId;
+ const memberId = req.params.memberId;
+ const {isAdmin, isNoComments, isCommentOnly} = req.body;
+ Authentication.checkBoardAccess(req.userId, boardId);
+ const board = Boards.findOne({ _id: boardId });
+ function isTrue(data){
+ return data.toLowerCase() === 'true';
+ }
+ board.setMemberPermission(memberId, isTrue(isAdmin), isTrue(isNoComments), isTrue(isCommentOnly), req.userId);
+
+ JsonRoutes.sendResult(res, {
+ code: 200,
+ data: query,
+ });
+ }
+ catch (error) {
+ JsonRoutes.sendResult(res, {
+ code: 200,
+ data: error,
+ });
+ }
+ });
}
diff --git a/models/settings.js b/models/settings.js
index 3b9b4eae..f7c4c85d 100644
--- a/models/settings.js
+++ b/models/settings.js
@@ -128,6 +128,18 @@ if (Meteor.isServer) {
}
}
+ function isLdapEnabled() {
+ return process.env.LDAP_ENABLE === 'true';
+ }
+
+ function isOauth2Enabled() {
+ return process.env.OAUTH2_ENABLED === 'true';
+ }
+
+ function isCasEnabled() {
+ return process.env.CAS_ENABLED === 'true';
+ }
+
Meteor.methods({
sendInvitation(emails, boards) {
check(emails, [String]);
@@ -197,5 +209,26 @@ if (Meteor.isServer) {
withUserName: process.env.MATOMO_WITH_USERNAME || false,
};
},
+
+ _isLdapEnabled() {
+ return isLdapEnabled();
+ },
+
+ _isOauth2Enabled() {
+ return isOauth2Enabled();
+ },
+
+ _isCasEnabled() {
+ return isCasEnabled();
+ },
+
+ // Gets all connection methods to use it in the Template
+ getConnectionsEnabled() {
+ return {
+ ldap: isLdapEnabled(),
+ oauth2: isOauth2Enabled(),
+ cas: isCasEnabled(),
+ };
+ },
});
}
diff --git a/models/users.js b/models/users.js
index 01673e4f..27d3e9fa 100644
--- a/models/users.js
+++ b/models/users.js
@@ -127,6 +127,11 @@ Users.attachSchema(new SimpleSchema({
type: Boolean,
optional: true,
},
+ // TODO : write a migration and check if using a ldap parameter is better than a connection_type parameter
+ ldap: {
+ type: Boolean,
+ optional: true,
+ },
}));
Users.allow({
@@ -490,7 +495,6 @@ if (Meteor.isServer) {
if (user.services.oidc) {
const email = user.services.oidc.email.toLowerCase();
-
user.username = user.services.oidc.username;
user.emails = [{ address: email, verified: true }];
const initials = user.services.oidc.fullname.match(/\b[a-zA-Z]/g).join('').toUpperCase();
@@ -518,7 +522,10 @@ if (Meteor.isServer) {
}
const disableRegistration = Settings.findOne().disableRegistration;
- if (!disableRegistration) {
+ // If ldap, bypass the inviation code if the self registration isn't allowed.
+ // TODO : pay attention if ldap field in the user model change to another content ex : ldap field to connection_type
+ if (options.ldap || !disableRegistration) {
+ user.ldap = true;
return user;
}
@@ -636,7 +643,9 @@ if (Meteor.isServer) {
//invite user to corresponding boards
const disableRegistration = Settings.findOne().disableRegistration;
- if (disableRegistration) {
+ // If ldap, bypass the inviation code if the self registration isn't allowed.
+ // TODO : pay attention if ldap field in the user model change to another content ex : ldap field to connection_type
+ if (!doc.ldap && disableRegistration) {
const invitationCode = InvitationCodes.findOne({code: doc.profile.icode, valid: true});
if (!invitationCode) {
throw new Meteor.Error('error-invitation-code-not-exist');
@@ -766,6 +775,81 @@ if (Meteor.isServer) {
}
});
+ JsonRoutes.add('POST', '/api/boards/:boardId/members/:userId/add', function (req, res) {
+ try {
+ Authentication.checkUserId(req.userId);
+ const userId = req.params.userId;
+ const boardId = req.params.boardId;
+ const action = req.body.action;
+ const {isAdmin, isNoComments, isCommentOnly} = req.body;
+ let data = Meteor.users.findOne({ _id: userId });
+ if (data !== undefined) {
+ if (action === 'add') {
+ data = Boards.find({
+ _id: boardId,
+ }).map(function(board) {
+ if (!board.hasMember(userId)) {
+ board.addMember(userId);
+ function isTrue(data){
+ return data.toLowerCase() === 'true';
+ }
+ board.setMemberPermission(userId, isTrue(isAdmin), isTrue(isNoComments), isTrue(isCommentOnly), userId);
+ }
+ return {
+ _id: board._id,
+ title: board.title,
+ };
+ });
+ }
+ }
+ JsonRoutes.sendResult(res, {
+ code: 200,
+ data: query,
+ });
+ }
+ catch (error) {
+ JsonRoutes.sendResult(res, {
+ code: 200,
+ data: error,
+ });
+ }
+ });
+
+ JsonRoutes.add('POST', '/api/boards/:boardId/members/:userId/remove', function (req, res) {
+ try {
+ Authentication.checkUserId(req.userId);
+ const userId = req.params.userId;
+ const boardId = req.params.boardId;
+ const action = req.body.action;
+ let data = Meteor.users.findOne({ _id: userId });
+ if (data !== undefined) {
+ if (action === 'remove') {
+ data = Boards.find({
+ _id: boardId,
+ }).map(function(board) {
+ if (board.hasMember(userId)) {
+ board.removeMember(userId);
+ }
+ return {
+ _id: board._id,
+ title: board.title,
+ };
+ });
+ }
+ }
+ JsonRoutes.sendResult(res, {
+ code: 200,
+ data: query,
+ });
+ }
+ catch (error) {
+ JsonRoutes.sendResult(res, {
+ code: 200,
+ data: error,
+ });
+ }
+ });
+
JsonRoutes.add('POST', '/api/users/', function (req, res) {
try {
Authentication.checkUserId(req.userId);
diff --git a/openshift/wekan.yml b/openshift/wekan.yml
index 0bc96ce8..9ccdf8c0 100644
--- a/openshift/wekan.yml
+++ b/openshift/wekan.yml
@@ -319,7 +319,6 @@ parameters:
- description: The OpenShift Namespace where the ImageStream resides.
displayName: Namespace
name: NAMESPACE
- value: openshift
- description: The name of the OpenShift Service exposed for the database.
displayName: Database Service Name
name: DATABASE_SERVICE_NAME
@@ -359,7 +358,7 @@ parameters:
required: true
value: '3.2'
- name: WEKAN_SERVICE_NAME
- displayName: WeKan Service Name
+ displayName: Wekan Service Name
value: wekan
required: true
- name: WEKAN_IMAGE
@@ -367,8 +366,3 @@ parameters:
value: quay.io/wekan/wekan:latest
description: The metabase docker image to use
required: true
-- name: WEKAN_SERVICE_NAME
- displayName: WeKan Service Name
- value: wekan
- required: true
-
diff --git a/package.json b/package.json
index 60ab1e19..89bfe93f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "wekan",
- "version": "v1.49.1",
+ "version": "v1.52.1",
"description": "The open-source kanban",
"private": true,
"scripts": {
diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp
index 96cecdf5..7760ed88 100644
--- a/sandstorm-pkgdef.capnp
+++ b/sandstorm-pkgdef.capnp
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Wekan"),
# The name of the app as it is displayed to the user.
- appVersion = 135,
+ appVersion = 143,
# Increment this for every release.
- appMarketingVersion = (defaultText = "1.49.1~2018-09-17"),
+ appMarketingVersion = (defaultText = "1.52.1~2018-10-02"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
diff --git a/server/publications/users.js b/server/publications/users.js
index 4fd98e13..31c07d26 100644
--- a/server/publications/users.js
+++ b/server/publications/users.js
@@ -17,3 +17,13 @@ Meteor.publish('user-admin', function() {
},
});
});
+
+Meteor.publish('user-connection-method', function(match) {
+ check(match, String);
+
+ return Users.find({$or: [{email: match}, {username: match}]}, {
+ fields: {
+ ldap: 1,
+ },
+ });
+});
diff --git a/snap-src/bin/config b/snap-src/bin/config
index ffc39459..a54b13c2 100755
--- a/snap-src/bin/config
+++ b/snap-src/bin/config
@@ -17,7 +17,7 @@ DEFAULT_MONGODB_PORT="27019"
KEY_MONGODB_PORT='mongodb-port'
DESCRIPTION_MONGODB_BIND_IP="mongodb binding ip address: eg 127.0.0.1 for localhost\n\t\tIf not defined default unix socket is used instead"
-DEFAULT_MONGODB_BIND_IP=""
+DEFAULT_MONGODB_BIND_IP="127.0.0.1"
KEY_MONGODB_BIND_IP="mongodb-bind-ip"
DESCRIPTION_MAIL_URL="wekan mail binding"
diff --git a/snapcraft.yaml b/snapcraft.yaml
index dbe738d0..e4276976 100644
--- a/snapcraft.yaml
+++ b/snapcraft.yaml
@@ -142,6 +142,11 @@ parts:
sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' meteor-useraccounts-core/package.js
cd ..
fi
+ if [ ! -d "packages/meteor-accounts-cas" ]; then
+ cd packages
+ git clone --depth 1 -b master https://github.com/wekan/meteor-accounts-cas.git meteor-accounts-cas
+ cd ..
+ fi
rm -rf package-lock.json .build
meteor add standard-minifier-js --allow-superuser
meteor npm install --allow-superuser