diff options
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: @@ -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: @@ -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; \ @@ -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 |