Compare commits

...
38 Commits
Author SHA1 Message Date
Lauri Ojansivu d51fc2f12c v5.49 2021-08-13 23:36:36 +03:00
Lauri Ojansivu 2dee14b0d5 Updated translations. 2021-08-13 23:24:07 +03:00
Lauri Ojansivu e75849da98 Updated translations. 2021-08-13 22:49:46 +03:00
Lauri Ojansivu 508c7b7a90 Merge pull request #3945 from syndimann/master
Feature: Adds Card Comment Reactions
2021-08-13 22:27:10 +03:00
Lauri Ojansivu de67e051d7 Updated ChangeLog. 2021-08-13 22:26:36 +03:00
Lauri Ojansivu 9ce65c601a Text "Search" now translatable at Card Add Member/Assignee.
Thanks to xet7 !
2021-08-13 22:23:50 +03:00
Kai Lehmann 10d7eeb762 Merge branch 'wekan:master' into master 2021-08-13 21:03:55 +02:00
Kai Lehmann 104a6dd0b3 add comments for card comment reactions feature 2021-08-13 20:53:04 +02:00
Kai Lehmann 2977120129 adds card comment reactions feature 2021-08-13 20:47:55 +02:00
Kai Lehmann d8e8512d66 add i18n for add-reaction 2021-08-13 20:43:30 +02:00
Lauri Ojansivu 7bfbcf7e03 v5.48 2021-08-11 23:48:02 +03:00
Lauri Ojansivu 91cad7b49e Updated to Node.js v12.22.5. Thanks to Node.js developers. 2021-08-11 23:40:56 +03:00
Lauri Ojansivu 26f1defc56 Updated ChangeLog. 2021-08-11 23:16:27 +03:00
Lauri Ojansivu 9a03654062 Fixed: Can't save user without Initials.
Thanks to devagleo and xet7 !

Fixes #3928
2021-08-11 23:14:18 +03:00
Lauri Ojansivu 2576ef75bd Updated dependencies.
Thanks to developers of dependencies!
2021-08-11 23:11:50 +03:00
Lauri Ojansivu 752b45af42 Updated ChangeLog. 2021-08-11 23:11:34 +03:00
Lauri Ojansivu 23c70ac252 Added new translation: [French (Switzerland) (fr_CH).
Thanks to translators!
2021-08-11 23:10:20 +03:00
Lauri Ojansivu ad4de9e85d Updated dependencies. 2021-08-11 22:10:59 +03:00
Lauri Ojansivu 855d60f28e Merge branch 'master' of github.com:wekan/wekan 2021-08-11 22:07:23 +03:00
Lauri Ojansivu 781a94c05f Updated ChangeLog. 2021-08-11 22:06:56 +03:00
Lauri Ojansivu b3cc01b041 Updated dependencies.
Thanks to developers of dependencies!
2021-08-11 22:05:17 +03:00
Lauri Ojansivu e23ced47ae Merge pull request #3944 from wekan/dependabot/npm_and_yarn/jszip-3.7.0
Bump jszip from 3.6.0 to 3.7.0
2021-08-11 21:33:39 +03:00
dependabot[bot] f406b51a5f Bump jszip from 3.6.0 to 3.7.0
Bumps [jszip](https://github.com/Stuk/jszip) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/Stuk/jszip/releases)
- [Changelog](https://github.com/Stuk/jszip/blob/master/CHANGES.md)
- [Commits](https://github.com/Stuk/jszip/compare/v3.6.0...v3.7.0)

---
updated-dependencies:
- dependency-name: jszip
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-11 18:32:04 +00:00
Lauri Ojansivu c81cb786ed Updated version. 2021-08-11 21:28:18 +03:00
Lauri Ojansivu 846f1244c7 Updated ChangeLog. 2021-08-11 21:04:45 +03:00
Lauri Ojansivu 3ea723329a Merge pull request #3942 from syndimann/feature/searchable-members-in-card-popup
Feature: Searchfields for members and assignees card popups
2021-08-11 21:02:06 +03:00
Kai Lehmann 698c9ed1ea adds searchfields to members and assignees popup 2021-08-10 21:20:16 +02:00
Lauri Ojansivu 63044ac13a v5.47 2021-08-05 00:49:00 +03:00
Lauri Ojansivu 68d9de8946 Updated dependencies. 2021-08-05 00:42:50 +03:00
Lauri Ojansivu 92a7717e50 v5.46 2021-08-05 00:33:22 +03:00
Lauri Ojansivu d5c0a5d377 Updated dependencies. 2021-08-05 00:26:54 +03:00
Lauri Ojansivu c0b7fb0b84 v5.45 2021-08-05 00:24:29 +03:00
Lauri Ojansivu 9b4e556837 Updated ChangeLog. 2021-08-05 00:13:08 +03:00
Lauri Ojansivu 1aec0b5f0d Merge pull request #3939 from syndimann/bugfix/3866-mentions-in-maximized-card
Fix: Show missing user mentions popover when posting comments in maximized card layout
2021-08-05 00:10:56 +03:00
Lauri Ojansivu c5d4e06ea3 Updated ChangeLog. 2021-08-05 00:10:14 +03:00
Lauri Ojansivu 97bf907448 Merge pull request #3937 from syndimann/feature/card-and-board-mentions
Feature: Special handles to notify board or card members in a comment
2021-08-05 00:08:43 +03:00
Kai Lehmann 7ef2a2a9f4 fixes missing user mentions when in maximized card 2021-08-04 22:22:59 +02:00
Kai Lehmann 547d82fe57 adds handles to notifiy board or card members 2021-08-03 23:35:12 +02:00
103 changed files with 2091 additions and 379 deletions

No files matched your search

+1 -1
View File
@@ -6,7 +6,7 @@ ENV DEBIAN_FRONTEND=noninteractive
ENV \
DEBUG=false \
NODE_VERSION=v12.22.4 \
NODE_VERSION=v12.22.5 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
+1
View File
@@ -122,6 +122,7 @@
"Activities": true,
"Attachments": true,
"Boards": true,
"CardCommentReactions": true,
"CardComments": true,
"DatePicker": true,
"Cards": true,
+1 -1
View File
@@ -81,7 +81,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 12.22.4
node-engine: 12.22.5
node-packages:
- node-gyp
- node-pre-gyp
+1 -1
View File
@@ -83,7 +83,7 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 12.22.4
node-engine: 12.22.5
node-packages:
- node-gyp
- node-pre-gyp
+1 -1
View File
@@ -3,7 +3,7 @@ sudo: required
env:
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
TRAVIS_NODE_VERSION: 12.22.4
TRAVIS_NODE_VERSION: 12.22.5
TRAVIS_NPM_VERSION: latest
before_install:
+1 -1
View File
@@ -39,7 +39,7 @@ host = https://www.transifex.com
# tap:i18n requires us to use `-` separator in the language identifiers whereas
# Transifex uses a `_` separator, without an option to customize it on one side
# or the other, so we need to do a Manual mapping.
lang_map = ar_EG:ar-EG, bg_BG:bg, de_CH:de-CH, en_IT:en-IT, en_GB:en-GB, es_AR:es-AR, es_CL:es-CL, es_419:es-LA, es_PE:es-PE, es_MX:es-MX, es_TX:es-TX, es_PY:es-PY, el_GR:el, fa_IR:fa-IR, fi_FI:fi, hu_HU:hu, id_ID:id, mn_MN:mn, lv_LV:lv, pt_BR:pt-BR, ro_RO:ro, sl_SI:sl, zh_CN:zh-CN, zh_TW:zh-TW, zh_HK:zh-HK
lang_map = ar_EG:ar-EG, bg_BG:bg, de_CH:de-CH, en_IT:en-IT, en_GB:en-GB, es_AR:es-AR, es_CL:es-CL, es_419:es-LA, es_PE:es-PE, es_MX:es-MX, es_TX:es-TX, es_PY:es-PY, el_GR:el, fa_IR:fa-IR, fi_FI:fi, fr_CH:fr-CH, hu_HU:hu, id_ID:id, mn_MN:mn, lv_LV:lv, pt_BR:pt-BR, ro_RO:ro, sl_SI:sl, zh_CN:zh-CN, zh_TW:zh-TW, zh_HK:zh-HK
[wekan.application]
file_filter = i18n/<lang>.i18n.json
+71
View File
@@ -3,6 +3,77 @@
Note: With Docker, please don't use latest tag. Only use release tags.
See https://github.com/wekan/wekan/issues/3874
# v5.49 2021-08-14 Wekan release
This release adds the following new features:
- [Text "Search" now translatable at Card Add Member/Assignee](https://github.com/wekan/wekan/commit/9ce65c601a875a4259fb69fdda45124b8412ae6f).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.48 2021-08-11 Wekan release
This release adds the following CRITICAL SECURITY UPDATES:
- [Updated to Node.js v12.22.5](https://github.com/wekan/wekan/commit/91cad7b49e25cecdf417321dadcdd9ea5cd8b020).
Thanks to Node.js developers.
- Also jszip update in some of included update commits.
and adds the following new features:
- [Searchfields for members and assignees card popups](https://github.com/wekan/wekan/pull/3942).
Thanks to syndimann.
and adds the following updates:
- [Updated dependencies](https://github.com/wekan/wekan/commit/b3cc01b04167bd67dde02c6c899baf8917ae09c1).
Thanks to developers of dependencies.
and adds the following new translations:
- [French (Switzerland) (fr_CH)](https://github.com/wekan/wekan/commit/23c70ac252494b464cd2a268d7e680370775ddc4).
Thanks to translators.
and fixes the following bugs:
- [Fixed: Can't save user without Initials](https://github.com/wekan/wekan/commit/9a03654062f9c8ac7aac257f11b386a054cd39e7).
Thanks to devagleo and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.47 2021-08-05 Wekan release
This release adds the following updates:
- [Updated dependencies](https://github.com/wekan/wekan/commit/68d9de89466611521db7d942dcf8daf58ba15a3e).
Thanks to developers of dependencies.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.46 2021-08-05 Wekan release
This release adds the following updates:
- [Updated dependencies](https://github.com/wekan/wekan/commit/d5c0a5d377d31bedadf3730756406355a17a563a).
Thanks to developers of dependencies.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.45 2021-08-05 Wekan release
This release adds the following new features:
- [Special handles to notify board or card members in a comment](https://github.com/wekan/wekan/pull/3937).
Thanks to syndimann.
and fixes the following bugs:
- [Fix: Show missing user mentions popover when posting comments in maximized card layout](https://github.com/wekan/wekan/pull/3939).
Thanks to syndimann.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.44 2021-08-03 Wekan release
This release adds the following updates:
+1 -1
View File
@@ -12,7 +12,7 @@ ARG DEBIAN_FRONTEND=noninteractive
ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \
DEBUG=false \
NODE_VERSION=v12.22.4 \
NODE_VERSION=v12.22.5 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
+2 -2
View File
@@ -4,7 +4,7 @@ FROM amd64/alpine:3.7 AS builder
ENV QEMU_VERSION=v4.2.0-6 \
QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v12.22.4 \
NODE_VERSION=v12.22.5 \
WEKAN_VERSION=latest \
WEKAN_ARCHITECTURE=arm64
@@ -40,7 +40,7 @@ LABEL maintainer="wekan"
# Set the environment variables (defaults where required)
ENV QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
NODE_VERSION=v12.22.4 \
NODE_VERSION=v12.22.5 \
NODE_ENV=production \
NPM_VERSION=latest \
WITH_API=true \
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v5.44.0"
appVersion: "v5.49.0"
files:
userUploads:
- README.md
+20 -3
View File
@@ -21,6 +21,22 @@ template(name="editOrDeleteComment")
= ' - '
a.js-delete-comment {{_ "delete"}}
template(name="commentReactions")
.reactions
each reaction in reactions
span.reaction(class="{{#if isSelected reaction.userIds}}selected{{/if}}" data-codepoint="#{reaction.reactionCodepoint}" title="{{userNames reaction.userIds}}")
span.reaction-codepoint !{reaction.reactionCodepoint}
span.reaction-count #{reaction.userIds.length}
if (currentUser.isBoardMember)
a.open-comment-reaction-popup(title="{{_ 'addReactionPopup-title'}}")
i.fa.fa-smile-o
i.fa.fa-plus
template(name="addReactionPopup")
.reactions-popup
each codepoint in codepoints
span.add-comment-reaction(data-codepoint="#{codepoint}") !{codepoint}
template(name="activity")
.activity
+userAvatar(userId=activity.user._id)
@@ -124,6 +140,7 @@ template(name="activity")
.activity-comment
+viewer
= activity.comment.text
+commentReactions(reactions=activity.comment.reactions commentId=activity.comment._id)
span(title=activity.createdAt).activity-meta {{ moment activity.createdAt }}
if($eq currentUser._id activity.comment.userId)
+editOrDeleteComment
@@ -150,20 +167,20 @@ template(name="activity")
if($eq activity.activityType 'a-startAt')
| {{{_ 'activity-startDate' (sanitize startDate) cardLink}}}.
if($eq activity.activityType 'a-dueAt')
| {{{_ 'activity-dueDate' (sanitize dueDate) cardLink}}}.
if($eq activity.activityType 'a-endAt')
| {{{_ 'activity-endDate' (sanitize endDate) cardLink}}}.
if($eq mode 'board')
if($eq activity.activityType 'a-receivedAt')
| {{{_ 'activity-receivedDate' (sanitize receivedDate) cardLink}}}.
if($eq activity.activityType 'a-startAt')
| {{{_ 'activity-startDate' (sanitize startDate) cardLink}}}.
if($eq activity.activityType 'a-dueAt')
| {{{_ 'activity-dueDate' (sanitize dueDate) cardLink}}}.
@@ -240,6 +240,60 @@ Template.activity.helpers({
},
});
Template.commentReactions.events({
'click .reaction'(event) {
if (Meteor.user().isBoardMember()) {
const codepoint = event.currentTarget.dataset['codepoint'];
const commentId = Template.instance().data.commentId;
const cardComment = CardComments.findOne({_id: commentId});
cardComment.toggleReaction(codepoint);
}
},
'click .open-comment-reaction-popup': Popup.open('addReaction'),
})
Template.addReactionPopup.events({
'click .add-comment-reaction'(event) {
if (Meteor.user().isBoardMember()) {
const codepoint = event.currentTarget.dataset['codepoint'];
const commentId = Template.instance().data.commentId;
const cardComment = CardComments.findOne({_id: commentId});
cardComment.toggleReaction(codepoint);
}
Popup.close();
},
})
Template.addReactionPopup.helpers({
codepoints() {
// Starting set of unicode codepoints as comment reactions
return [
'&#128077;',
'&#128078;',
'&#128064;',
'&#9989;',
'&#10060;',
'&#128591;',
'&#128079;',
'&#127881;',
'&#128640;',
'&#128522;',
'&#129300;',
'&#128532;'];
}
})
Template.commentReactions.helpers({
isSelected(userIds) {
return userIds.includes(Meteor.user()._id);
},
userNames(userIds) {
return Users.find({_id: {$in: userIds}})
.map(user => user.profile.fullname)
.join(', ');
}
})
function createCardLink(card) {
if (!card) return '';
return (
+54 -1
View File
@@ -5,6 +5,20 @@
display: flex
justify-content:space-between
.reactions-popup
.add-comment-reaction
display: inline-block
cursor: pointer
border-radius: 5px
font-size: 22px
text-align: center
line-height: 30px
width: 40px
&:hover {
background-color: #b0c4de
}
.activities
clear: both
@@ -18,7 +32,7 @@
height: @width
.activity-member
font-weight: 700
font-weight: 700
.activity-desc
word-wrap: break-word
@@ -39,6 +53,45 @@
margin-top: 5px
padding: 5px
.reactions
display: flex
margin-top: 5px
gap: 5px
.open-comment-reaction-popup
display: flex
align-items: center
text-decoration: none
height: 24px;
i.fa.fa-smile-o
font-size: 17px
font-weight: 500
margin-left: 2px
i.fa.fa-plus
font-size: 8px;
margin-top: -7px;
margin-left: 1px;
.reaction
cursor: pointer
border: 1px solid grey
border-radius: 15px
display: flex
padding: 2px 5px
&.selected {
background-color: #b0c4de
}
&:hover {
background-color: #b0c4de
}
.reaction-count
font-size: 12px
.activity-checklist
display: block
border-radius: 3px
+4 -2
View File
@@ -708,8 +708,9 @@ template(name="boardsAndLists")
button.primary.confirm.js-done {{_ 'done'}}
template(name="cardMembersPopup")
input.card-members-filter(type="text" placeholder="{{_ 'search'}}")
ul.pop-over-list.js-card-member-list
each board.activeMembers
each members
li.item(class="{{#if isCardMember}}active{{/if}}")
a.name.js-select-member(href="#")
+userAvatar(userId=user._id)
@@ -720,9 +721,10 @@ template(name="cardMembersPopup")
i.fa.fa-check
template(name="cardAssigneesPopup")
input.card-assignees-filter(type="text" placeholder="{{_ 'search'}}")
unless currentUser.isWorker
ul.pop-over-list.js-card-assignee-list
each board.activeMembers
each members
li.item(class="{{#if isCardAssignee}}active{{/if}}")
a.name.js-select-assignee(href="#")
+userAvatar(userId=user._id)
+52 -6
View File
@@ -180,7 +180,7 @@ BlazeComponent.extendComponent({
integration,
'CardSelected',
params,
() => {},
() => { },
);
});
}
@@ -541,8 +541,8 @@ BlazeComponent.extendComponent({
}).register('exportCardPopup');
// only allow number input
Template.editCardSortOrderForm.onRendered(function() {
this.$('input').on("keypress paste", function(event) {
Template.editCardSortOrderForm.onRendered(function () {
this.$('input').on("keypress paste", function (event) {
let keyCode = event.keyCode;
let charCode = String.fromCharCode(keyCode);
let regex = new RegExp('[-0-9.]');
@@ -667,6 +667,40 @@ Template.editCardTitleForm.onRendered(function () {
autosize(this.$('.js-edit-card-title'));
});
Template.cardMembersPopup.onCreated(function () {
const members = Boards.findOne(Session.get('currentBoard')).activeMembers();
this.members = new ReactiveVar(members);
});
Template.cardMembersPopup.events({
'keyup .card-members-filter'(event) {
const members = filterMembers(event.target.value);
Template.instance().members.set(members);
}
});
Template.cardMembersPopup.helpers({
members() {
return Template.instance().members.get();
},
});
const filterMembers = (filterTerm) => {
let members = Boards.findOne(Session.get('currentBoard')).activeMembers();
if (filterTerm) {
members = members
.map(member => ({
member,
user: Users.findOne(member.userId)
}))
.filter(({ user }) =>
user.profile.fullname.toLowerCase().indexOf(filterTerm.toLowerCase()) !== -1)
.map(({ member }) => member);
}
return members;
}
Template.editCardTitleForm.events({
'keydown .js-edit-card-title'(event) {
// If enter key was pressed, submit the data
@@ -1019,9 +1053,8 @@ BlazeComponent.extendComponent({
// https://github.com/wekan/wekan/issues/2785
const message = `${TAPi18n.__(
'delete-linked-card-before-this-card',
)} linkedId: ${
this._id
} at client/components/cards/cardDetails.js and https://github.com/wekan/wekan/issues/2785`;
)} linkedId: ${this._id
} at client/components/cards/cardDetails.js and https://github.com/wekan/wekan/issues/2785`;
alert(message);
}
Utils.goBoardId(this.boardId);
@@ -1589,6 +1622,11 @@ EscapeActions.register(
},
);
Template.cardAssigneesPopup.onCreated(function () {
const members = Boards.findOne(Session.get('currentBoard')).activeMembers();
this.members = new ReactiveVar(members);
});
Template.cardAssigneesPopup.events({
'click .js-select-assignee'(event) {
const card = Cards.findOne(Session.get('currentCard'));
@@ -1596,6 +1634,10 @@ Template.cardAssigneesPopup.events({
card.toggleAssignee(assigneeId);
event.preventDefault();
},
'keyup .card-assignees-filter'(event) {
const members = filterMembers(event.target.value);
Template.instance().members.set(members);
},
});
Template.cardAssigneesPopup.helpers({
@@ -1606,6 +1648,10 @@ Template.cardAssigneesPopup.helpers({
return _.contains(cardAssignees, this.userId);
},
members() {
return Template.instance().members.get();
},
user() {
return Users.findOne(this.userId);
},
+10 -3
View File
@@ -1,3 +1,9 @@
const specialHandles = [
{userId: 'board_members', username: 'board_members'},
{userId: 'card_members', username: 'card_members'}
];
const specialHandleNames = specialHandles.map(m => m.username);
Template.editor.onRendered(() => {
const textareaSelector = 'textarea';
const mentions = [
@@ -7,13 +13,14 @@ Template.editor.onRendered(() => {
search(term, callback) {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
callback(
_.union(
currentBoard
.activeMembers()
.map(member => {
const username = Users.findOne(member.userId).username;
return username.includes(term) ? username : null;
})
.filter(Boolean),
.filter(Boolean), [...specialHandleNames])
);
},
template(value) {
@@ -323,13 +330,13 @@ Blaze.Template.registerHelper(
return HTML.Raw(
DOMPurify.sanitize(content, { ALLOW_UNKNOWN_PROTOCOLS: true }),
);
const knowedUsers = currentBoard.members.map(member => {
const knowedUsers = _.union(currentBoard.members.map(member => {
const u = Users.findOne(member.userId);
if (u) {
member.username = u.username;
}
return member;
});
}), [...specialHandles]);
const mentionRegex = /\B@([\w.]*)/gi;
let currentMention;
+2
View File
@@ -86,6 +86,8 @@ Template.userFormsLayout.helpers({
name = 'Français (Belgique)';
} else if (lang.name === 'fr-CA') {
name = 'Français (Canada)';
} else if (lang.name === 'fr-CH') {
name = 'Français (Schweiz)';
} else if (lang.name === 'ig') {
name = 'Igbo';
} else if (lang.name === 'lv') {
+3
View File
@@ -317,6 +317,9 @@ kbd
.grabbing
cursor: grabbing
.textcomplete-dropdown
z-index: 2000 !important;
// Implement a thiner close icon as suggested in
// https://github.com/FortAwesome/Font-Awesome/issues/1540#issuecomment-68689950
.fa.fa-times-thin:before
+1 -1
View File
@@ -342,7 +342,7 @@ template(name="editUserPopup")
input.js-profile-fullname(type="text" value=user.profile.fullname required)
label
| {{_ 'initials'}}
input.js-profile-initials(type="text" value=user.profile.initials required)
input.js-profile-initials(type="text" value=user.profile.initials)
label
| {{_ 'admin'}}
select.select-role.js-profile-isadmin
+2
View File
@@ -180,6 +180,8 @@ Template.changeLanguagePopup.helpers({
name = 'Français (Belgique)';
} else if (lang.name === 'fr-CA') {
name = 'Français (Canada)';
} else if (lang.name === 'fr-CH') {
name = 'Français (Schweiz)';
} else if (lang.name === 'ig') {
name = 'Igbo';
} else if (lang.name === 'lv') {
+1 -1
View File
@@ -1,5 +1,5 @@
apiVersion: v2
appVersion: "5.44"
appVersion: "5.49"
dependencies:
- condition: mongodb.enabled
name: mongodb
+1 -1
View File
@@ -14,7 +14,7 @@ serviceAccounts:
##
image:
repository: quay.io/wekan/wekan
tag: v5.44
tag: v5.49
pullPolicy: IfNotPresent
## Configuration for wekan component
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "تغيير تاريخ البدء",
"editCardDueDatePopup-title": "تغيير تاريخ الاستحقاق",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "تعديل العلامة",
"editNotificationPopup-title": "تصحيح الإشعار",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Промени началната дата",
"editCardDueDatePopup-title": "Промени датата за готовност",
"editCustomFieldPopup-title": "Промени Полето",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Промени изработеното време",
"editLabelPopup-title": "Промяна на Етикета",
"editNotificationPopup-title": "Промени известията",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Canvia data d'inici",
"editCardDueDatePopup-title": "Canvia data de finalització",
"editCustomFieldPopup-title": "Modificar camp",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Canvia temps dedicat",
"editLabelPopup-title": "Canvia etiqueta",
"editNotificationPopup-title": "Edita la notificació",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Změnit datum startu úkolu",
"editCardDueDatePopup-title": "Změnit datum dokončení úkolu",
"editCustomFieldPopup-title": "Upravit pole",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Změnit strávený čas",
"editLabelPopup-title": "Změnit štítek",
"editNotificationPopup-title": "Změnit notifikace",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Skift startdato",
"editCardDueDatePopup-title": "Skift forfaldsdato",
"editCustomFieldPopup-title": "Redigér felt",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Tilpas forbrugt tid",
"editLabelPopup-title": "Skift etikette",
"editNotificationPopup-title": "Redigér notifikation",
+2 -1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Startdatum ändern",
"editCardDueDatePopup-title": "Fälligkeitsdatum ändern",
"editCustomFieldPopup-title": "Feld bearbeiten",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Aufgewendete Zeit ändern",
"editLabelPopup-title": "Label ändern",
"editNotificationPopup-title": "Benachrichtigung ändern",
@@ -951,7 +952,7 @@
"operator-created": "erstellt",
"operator-modified": "geändert",
"operator-sort": "sortieren",
"operator-comment": "Kommentar",
"operator-comment": "Kommentar speichern",
"operator-has": "hat",
"operator-limit": "Begrenzung",
"predicate-archived": "archiviert",
+2 -1
View File
@@ -89,7 +89,7 @@
"add-subtask": "Teilaufgabe hinzufügen",
"add-checklist": "Checkliste hinzufügen",
"add-checklist-item": "Element zu Checkliste hinzufügen",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"convertChecklistItemToCardPopup-title": "Zu Karte umwandeln",
"add-cover": "Cover hinzufügen",
"add-label": "Label hinzufügen",
"add-list": "Liste hinzufügen",
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Startdatum ändern",
"editCardDueDatePopup-title": "Fälligkeitsdatum ändern",
"editCustomFieldPopup-title": "Feld bearbeiten",
"addReactionPopup-title": "Reaktion hinzufügen",
"editCardSpentTimePopup-title": "Aufgewendete Zeit ändern",
"editLabelPopup-title": "Label ändern",
"editNotificationPopup-title": "Benachrichtigung ändern",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Αλλαγή ημερομηνίας έναρξης",
"editCardDueDatePopup-title": "Αλλαγή ημερομηνίας λήξης προθεσμίας",
"editCustomFieldPopup-title": "Επεξεργασία Πεδίου",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Αλλαγή δαπανηθέντος χρόνου",
"editLabelPopup-title": "Αλλαγή Ετικέτας",
"editNotificationPopup-title": "Επεξεργασία Ειδοποίησης",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Redakti komencdaton",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Ŝanĝi etikedon",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Cambiar fecha de inicio",
"editCardDueDatePopup-title": "Cambiar fecha de vencimiento",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Cambiar tiempo empleado",
"editLabelPopup-title": "Cambiar Etiqueta",
"editNotificationPopup-title": "Editar Notificación",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Cambiar la fecha de comienzo",
"editCardDueDatePopup-title": "Cambiar la fecha de vencimiento",
"editCustomFieldPopup-title": "Editar el campo",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Cambiar el tiempo consumido",
"editLabelPopup-title": "Cambiar la etiqueta",
"editNotificationPopup-title": "Editar las notificaciones",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Cambiar la fecha de inicio",
"editCardDueDatePopup-title": "Cambiar la fecha de vencimiento",
"editCustomFieldPopup-title": "Editar el campo",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Cambiar el tiempo consumido",
"editLabelPopup-title": "Cambiar la etiqueta",
"editNotificationPopup-title": "Editar las notificaciones",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Cambiar la fecha de comienzo",
"editCardDueDatePopup-title": "Cambiar la fecha de vencimiento",
"editCustomFieldPopup-title": "Editar el campo",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Cambiar el tiempo consumido",
"editLabelPopup-title": "Cambiar la etiqueta",
"editNotificationPopup-title": "Editar las notificaciones",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Aldatu hasiera data",
"editCardDueDatePopup-title": "Aldatu epemuga data",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Aldatu erabilitako denbora",
"editLabelPopup-title": "Aldatu etiketa",
"editNotificationPopup-title": "Editatu jakinarazpena",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "تغییر تاریخ آغاز",
"editCardDueDatePopup-title": "تغییر تاریخ پایان",
"editCustomFieldPopup-title": "ویرایش فیلد",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "تغییر زمان صرف شده",
"editLabelPopup-title": "تغیر لیبل",
"editNotificationPopup-title": "اصلاح اعلان",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Muokkaa aloituspäivää",
"editCardDueDatePopup-title": "Muokkaa eräpäivää",
"editCustomFieldPopup-title": "Muokkaa kenttää",
"addReactionPopup-title": "Lisää reaktio",
"editCardSpentTimePopup-title": "Muuta käytettyä aikaa",
"editLabelPopup-title": "Muokkaa nimilappua",
"editNotificationPopup-title": "Muokkaa ilmoituksia",
+1064
View File
File diff suppressed because it is too large. Load diff
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Modifier la date de début",
"editCardDueDatePopup-title": "Modifier la date d'échéance",
"editCustomFieldPopup-title": "Éditer le champ personnalisé",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Modifier le temps passé",
"editLabelPopup-title": "Modifier l'étiquette",
"editNotificationPopup-title": "Modifier la notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Cambiar a data de inicio",
"editCardDueDatePopup-title": "Cambiar a data límite",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Cambiar a etiqueta",
"editNotificationPopup-title": "Editar a notificación",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "שינוי מועד התחלה",
"editCardDueDatePopup-title": "שינוי מועד סיום",
"editCustomFieldPopup-title": "עריכת שדה",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "שינוי הזמן שהושקע",
"editLabelPopup-title": "שינוי תווית",
"editNotificationPopup-title": "שינוי דיווח",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "संपादित करें Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "संपादित करें Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Promijeni datum početka",
"editCardDueDatePopup-title": "Promijeni datum dospijeća",
"editCustomFieldPopup-title": "Uredi polje",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Promijeni oznaku",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Kezdődátum megváltoztatása",
"editCardDueDatePopup-title": "Határidő dátumának megváltoztatása",
"editCustomFieldPopup-title": "Mező szerkesztése",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Eltöltött idő megváltoztatása",
"editLabelPopup-title": "Címke megváltoztatása",
"editNotificationPopup-title": "Értesítés szerkesztése",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Ubah tanggal mulai",
"editCardDueDatePopup-title": "Ubah tanggal selesai",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Ubah Label",
"editNotificationPopup-title": "Sunting Pemberitahuan",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Cambia data di inizio",
"editCardDueDatePopup-title": "Cambia data di scadenza",
"editCustomFieldPopup-title": "Modifica campo",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Cambia tempo trascorso",
"editLabelPopup-title": "Modifica etichetta",
"editNotificationPopup-title": "Modifica notifiche",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "開始日の変更",
"editCardDueDatePopup-title": "期限の変更",
"editCustomFieldPopup-title": "フィールドを編集",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "作業時間の変更",
"editLabelPopup-title": "ラベルの変更",
"editNotificationPopup-title": "通知の変更",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "დაწყების დროის შეცვლა",
"editCardDueDatePopup-title": "შეცვალეთ დედლაინი",
"editCustomFieldPopup-title": "ველების შესწორება",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "დახარჯული დროის შეცვლა",
"editLabelPopup-title": "ნიშნის შეცვლა",
"editNotificationPopup-title": "შეტყობინებების შესწორება",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "시작일 변경",
"editCardDueDatePopup-title": "종료일 변경",
"editCustomFieldPopup-title": "필드 수정",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "라벨 변경",
"editNotificationPopup-title": "알림 수정",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Mainīt sākuma datumu",
"editCardDueDatePopup-title": "Mainīt termiņu",
"editCustomFieldPopup-title": "Labot lauku",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Mainīt patērēto laiku",
"editLabelPopup-title": "Mainīt birku",
"editNotificationPopup-title": "Labot ziņojumu",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Промени началната дата",
"editCardDueDatePopup-title": "Промени датата за готовност",
"editCustomFieldPopup-title": "Промени Полето",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Промени изработеното време",
"editLabelPopup-title": "Промяна на Етикета",
"editNotificationPopup-title": "Промени известията",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Эхлэх өдрийг өөрчлөх",
"editCardDueDatePopup-title": "Дуусах өдрийг өөрчлөх",
"editCustomFieldPopup-title": "Талбарыг засварлах",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Зарцуулсан хугацааг засварлах",
"editLabelPopup-title": "Шошгыг өөрчлөх",
"editNotificationPopup-title": "Мэдэгдэл тохируулах",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Endre start dato",
"editCardDueDatePopup-title": "Endre forfallsdato",
"editCustomFieldPopup-title": "Redigere felt",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Endre forbrukt tid",
"editLabelPopup-title": "Endre Etikett",
"editNotificationPopup-title": "Endre Varsel",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Wijzig start datum",
"editCardDueDatePopup-title": "Wijzig vervaldatum",
"editCustomFieldPopup-title": "Wijzig Veld",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Verander gespendeerde tijd",
"editLabelPopup-title": "Wijzig label",
"editNotificationPopup-title": "Wijzig notificatie",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Cambiar la data de debuta",
"editCardDueDatePopup-title": "Cambiar la data de fin",
"editCustomFieldPopup-title": "Modificar los camps",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Cambiar lo temp passat",
"editLabelPopup-title": "Cambiar l'etiqueta",
"editNotificationPopup-title": "Modificar la notificacion",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Zmień datę rozpoczęcia",
"editCardDueDatePopup-title": "Zmień datę wykonania",
"editCustomFieldPopup-title": "Edytuj pole",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Zmień ilość przepracowanego czasu",
"editLabelPopup-title": "Zmień etykietę",
"editNotificationPopup-title": "Zmień tryb powiadamiania",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Altera data de início",
"editCardDueDatePopup-title": "Altera prazo final",
"editCustomFieldPopup-title": "Editar campo",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Editar tempo gasto",
"editLabelPopup-title": "Alterar Etiqueta",
"editNotificationPopup-title": "Editar Notificações",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Alterar a data de início",
"editCardDueDatePopup-title": "Alterar a data limite",
"editCustomFieldPopup-title": "Editar Campo",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Alterar o tempo gasto",
"editLabelPopup-title": "Alterar a Etiqueta",
"editNotificationPopup-title": "Editar a Notificação",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+4 -3
View File
@@ -89,7 +89,7 @@
"add-subtask": "Добавить подзадачу",
"add-checklist": "Добавить контрольный список",
"add-checklist-item": "Добавить пункт в контрольный список",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"convertChecklistItemToCardPopup-title": "Преобразовать в Карточку",
"add-cover": "Прикрепить",
"add-label": "Добавить метку",
"add-list": "Добавить простой список",
@@ -121,8 +121,8 @@
"archives": "Архив",
"template": "Шаблон",
"templates": "Шаблоны",
"template-container": "Template Container",
"add-template-container": "Add Template Container",
"template-container": "Шаблон Контейнера",
"add-template-container": "Добавить Шаблон Контейнера",
"assign-member": "Назначить участника",
"attached": "прикреплено",
"attachment": "Вложение",
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Изменить дату начала",
"editCardDueDatePopup-title": "Изменить дату выполнения",
"editCustomFieldPopup-title": "Редактировать поле",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Изменить затраченное время",
"editLabelPopup-title": "Изменить метки",
"editNotificationPopup-title": "Редактировать уведомления",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Spremeni začetni datum",
"editCardDueDatePopup-title": "Spremeni datum zapadlosti",
"editCustomFieldPopup-title": "Uredi polje",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Spremeni porabljen čas",
"editLabelPopup-title": "Spremeni oznako",
"editNotificationPopup-title": "Uredi obvestilo",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Izmeni početni datum",
"editCardDueDatePopup-title": "Izmeni krajnji datum",
"editCustomFieldPopup-title": "Izmeni polje",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Izmeni oznaku",
"editNotificationPopup-title": "Izmeni obaveštenje",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Ändra startdatum",
"editCardDueDatePopup-title": "Ändra förfallodatum",
"editCustomFieldPopup-title": "Redigera fält",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Ändra spenderad tid",
"editLabelPopup-title": "Ändra etikett",
"editNotificationPopup-title": "Redigera notis",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "เปลี่ยนวันเริ่มต้น",
"editCardDueDatePopup-title": "เปลี่ยนวันครบกำหนด",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "เปลี่ยนป้ายกำกับ",
"editNotificationPopup-title": "แก้ไขการแจ้งเตือน",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Başlangıç tarihini değiştir",
"editCardDueDatePopup-title": "Bitiş tarihini değiştir",
"editCustomFieldPopup-title": "Alanı düzenle",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Harcanan zamanı değiştir",
"editLabelPopup-title": "Etiket Değiştir",
"editNotificationPopup-title": "Bildirimi değiştir",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Thay đổi ngày bắt đầu",
"editCardDueDatePopup-title": "Thay đổi ngày đến hạn",
"editCustomFieldPopup-title": "Sửa Trường",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Thay đổi thời gian đã sử dụng",
"editLabelPopup-title": "Thay đổi nhãn",
"editNotificationPopup-title": "Sửa Thông báo",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "修改起始日期",
"editCardDueDatePopup-title": "修改截止日期",
"editCustomFieldPopup-title": "编辑字段",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "修改耗时",
"editLabelPopup-title": "更改标签",
"editNotificationPopup-title": "编辑通知",
+1
View File
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Change start date",
"editCardDueDatePopup-title": "Change due date",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Change spent time",
"editLabelPopup-title": "Change Label",
"editNotificationPopup-title": "Edit Notification",
+2 -1
View File
@@ -89,7 +89,7 @@
"add-subtask": "新增子任務",
"add-checklist": "新增待辦清單",
"add-checklist-item": "新增項目",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"convertChecklistItemToCardPopup-title": "轉換為卡片",
"add-cover": "新增封面",
"add-label": "新增標籤",
"add-list": "新增清單",
@@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "變更開始日期",
"editCardDueDatePopup-title": "變更到期日期",
"editCustomFieldPopup-title": "編輯欄位",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "變更耗費時間",
"editLabelPopup-title": "更改標籤",
"editNotificationPopup-title": "更改通知",
+23 -8
View File
@@ -210,15 +210,30 @@ if (Meteor.isServer) {
// ignore commenter mention himself?
continue;
}
const atUser = _.findWhere(knownUsers, { username });
if (!atUser) {
continue;
if (activity.boardId && username === 'board_members') {
// mentions all board members
const knownUids = knownUsers.map(u => u.userId);
watchers = _.union(watchers, [...knownUids]);
title = 'act-atUserComment';
} else if (activity.cardId && username === 'card_members') {
// mentions all card members if assigned
const card = activity.card();
watchers = _.union(watchers, [...card.members]);
title = 'act-atUserComment';
} else {
const atUser = _.findWhere(knownUsers, { username });
if (!atUser) {
continue;
}
const uid = atUser.userId;
params.atUsername = username;
params.atEmails = atUser.emails;
title = 'act-atUserComment';
watchers = _.union(watchers, [uid]);
}
const uid = atUser.userId;
params.atUsername = username;
params.atEmails = atUser.emails;
title = 'act-atUserComment';
watchers = _.union(watchers, [uid]);
}
}
params.commentId = comment._id;
+59
View File
@@ -0,0 +1,59 @@
const commentReactionSchema = new SimpleSchema({
reactionCodepoint: { type: String, optional: false },
userIds: { type: [String], defaultValue: [] }
});
CardCommentReactions = new Mongo.Collection('card_comment_reactions');
/**
* All reactions of a card comment
*/
CardCommentReactions.attachSchema(
new SimpleSchema({
boardId: {
/**
* the board ID
*/
type: String,
optional: false
},
cardId: {
/**
* the card ID
*/
type: String,
optional: false
},
cardCommentId: {
/**
* the card comment ID
*/
type: String,
optional: false
},
reactions: {
type: [commentReactionSchema],
defaultValue: []
}
}),
);
CardCommentReactions.allow({
insert(userId, doc) {
return allowIsBoardMember(userId, Boards.findOne(doc.boardId));
},
update(userId, doc) {
return allowIsBoardMember(userId, Boards.findOne(doc.boardId));
},
remove(userId, doc) {
return allowIsBoardMember(userId, Boards.findOne(doc.boardId));
},
fetch: ['boardId'],
});
if (Meteor.isServer) {
Meteor.startup(() => {
CardCommentReactions._collection._ensureIndex({ cardCommentId: 1 }, { unique: true });
});
}
+47 -5
View File
@@ -93,6 +93,48 @@ CardComments.helpers({
user() {
return Users.findOne(this.userId);
},
reactions() {
const cardCommentReactions = CardCommentReactions.findOne({cardCommentId: this._id});
return !!cardCommentReactions ? cardCommentReactions.reactions : [];
},
toggleReaction(reactionCodepoint) {
const cardCommentReactions = CardCommentReactions.findOne({cardCommentId: this._id});
const reactions = !!cardCommentReactions ? cardCommentReactions.reactions : [];
const userId = Meteor.userId();
const reaction = reactions.find(r => r.reactionCodepoint === reactionCodepoint);
// If no reaction is set for the codepoint, add this
if (!reaction) {
reactions.push({ reactionCodepoint, userIds: [userId] });
} else {
// toggle user reaction upon previous reaction state
const userHasReacted = reaction.userIds.includes(userId);
if (userHasReacted) {
reaction.userIds.splice(reaction.userIds.indexOf(userId), 1);
if (reaction.userIds.length === 0) {
reactions.splice(reactions.indexOf(reaction), 1);
}
} else {
reaction.userIds.push(userId);
}
}
// If no reaction doc exists yet create otherwise update reaction set
if (!!cardCommentReactions) {
return CardCommentReactions.update({ _id: cardCommentReactions._id }, { $set: { reactions } });
} else {
return CardCommentReactions.insert({
boardId: this.boardId,
cardCommentId: this._id,
cardId: this.cardId,
reactions
});
}
}
});
CardComments.hookOptions.after.update = { fetchPrevious: false };
@@ -187,7 +229,7 @@ if (Meteor.isServer) {
* comment: string,
* authorId: string}]
*/
JsonRoutes.add('GET', '/api/boards/:boardId/cards/:cardId/comments', function(
JsonRoutes.add('GET', '/api/boards/:boardId/cards/:cardId/comments', function (
req,
res,
) {
@@ -200,7 +242,7 @@ if (Meteor.isServer) {
data: CardComments.find({
boardId: paramBoardId,
cardId: paramCardId,
}).map(function(doc) {
}).map(function (doc) {
return {
_id: doc._id,
comment: doc.text,
@@ -228,7 +270,7 @@ if (Meteor.isServer) {
JsonRoutes.add(
'GET',
'/api/boards/:boardId/cards/:cardId/comments/:commentId',
function(req, res) {
function (req, res) {
try {
const paramBoardId = req.params.boardId;
Authentication.checkBoardAccess(req.userId, paramBoardId);
@@ -264,7 +306,7 @@ if (Meteor.isServer) {
JsonRoutes.add(
'POST',
'/api/boards/:boardId/cards/:cardId/comments',
function(req, res) {
function (req, res) {
try {
const paramBoardId = req.params.boardId;
Authentication.checkBoardAccess(req.userId, paramBoardId);
@@ -310,7 +352,7 @@ if (Meteor.isServer) {
JsonRoutes.add(
'DELETE',
'/api/boards/:boardId/cards/:cardId/comments/:commentId',
function(req, res) {
function (req, res) {
try {
const paramBoardId = req.params.boardId;
Authentication.checkBoardAccess(req.userId, paramBoardId);
+503 -306
View File
File diff suppressed because it is too large. Load diff
+12 -12
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v5.44.0",
"version": "v5.49.0",
"description": "Open-Source kanban",
"private": true,
"repository": {
@@ -15,13 +15,13 @@
"devDependencies": {
"babel-plugin-istanbul": "^6.0.0",
"chai": "^4.3.4",
"flatted": "^3.2.0",
"puppeteer": "^10.0.0",
"sinon": "^11.1.1"
"flatted": "^3.2.2",
"puppeteer": "^10.2.0",
"sinon": "^11.1.2"
},
"dependencies": {
"@babel/core": "^7.14.6",
"@babel/runtime": "^7.14.6",
"@babel/core": "^7.15.0",
"@babel/runtime": "^7.15.3",
"@liradb2000/markdown-it-mermaid": "^0.4.3",
"ajv": "^6.12.6",
"babel-runtime": "^6.26.0",
@@ -34,13 +34,13 @@
"exceljs": "^4.2.1",
"fibers": "^5.0.0",
"gridfs-stream": "https://github.com/wekan/gridfs-stream/tarball/master",
"jszip": "^3.6.0",
"ldapjs": "^2.3.0",
"markdown-it": "^12.1.0",
"jszip": "^3.7.1",
"ldapjs": "^2.3.1",
"markdown-it": "^12.2.0",
"markdown-it-emoji": "^2.0.0",
"meteor-node-stubs": "^1.0.3",
"mongodb": "^3.6.9",
"os": "^0.1.1",
"meteor-node-stubs": "^1.1.0",
"mongodb": "^3.6.11",
"os": "^0.1.2",
"page": "^1.11.5",
"papaparse": "^5.3.1",
"qs": "^6.10.1",
+3 -3
View File
@@ -7,7 +7,7 @@
<meta charset="utf-8">
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>Wekan REST API v5.44</title>
<title>Wekan REST API v5.49</title>
<style>
</style>
@@ -1555,7 +1555,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<ul class="toc-list-h1">
<li>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v5.44">Wekan REST API v5.44</a>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v5.49">Wekan REST API v5.49</a>
</li>
@@ -2128,7 +2128,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<div class="page-wrapper">
<div class="dark-box"></div>
<div class="content">
<h1 id="wekan-rest-api">Wekan REST API v5.44</h1>
<h1 id="wekan-rest-api">Wekan REST API v5.49</h1>
<blockquote>
<p>Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.</p>
</blockquote>
+1 -1
View File
@@ -1,7 +1,7 @@
swagger: '2.0'
info:
title: Wekan REST API
version: v5.44
version: v5.49
description: |
The REST API allows you to control and extend Wekan with ease.
+2 -2
View File
@@ -18,8 +18,8 @@ REM Install chocolatey
choco install -y git curl python2 dotnet4.5.2 nano mongodb-3 mongoclient meteor
curl -O https://nodejs.org/dist/v12.22.4/node-v12.22.4-x64.msi
call node-v12.22.4-x64.msi
curl -O https://nodejs.org/dist/v12.22.5/node-v12.22.5-x64.msi
call node-v12.22.5-x64.msi
call npm config -g set msvs_version 2015
call meteor npm config -g set msvs_version 2015
+3 -3
View File
@@ -28,7 +28,7 @@ do
#curl -0 -L https://npmjs.org/install.sh | sudo sh
#sudo chown -R $(id -u):$(id -g) $HOME/.npm
sudo npm -g install n
sudo n 12.22.4
sudo n 12.22.5
#curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
#sudo apt-get install -y nodejs
elif [[ "$OSTYPE" == "darwin"* ]]; then
@@ -81,13 +81,13 @@ do
cd ~/repos/wekan
rm -rf node_modules .meteor/local .build
chmod u+w *.json
npm install
meteor npm install
meteor build .build --directory
rm -rf ~/repos/wekan/.build/bundle/programs/web.browser.legacy
cd ~/repos/wekan/.build/bundle/programs/server
rm -rf node_modules
chmod u+w *.json
npm install
meteor npm install
# Cleanup
cd ~/repos/wekan/.build/bundle
find . -type d -name '*-garbage*' | xargs rm -rf
@@ -57,6 +57,9 @@ tx pull -f -l fi
echo "French:"
tx pull -f -l fr
echo "French (Switzerland):"
tx pull -f -l fr_CH
echo "Galician:"
tx pull -f -l gl
+2 -2
View File
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Wekan"),
# The name of the app as it is displayed to the user.
appVersion = 544,
appVersion = 549,
# Increment this for every release.
appMarketingVersion = (defaultText = "5.44.0~2021-08-03"),
appMarketingVersion = (defaultText = "5.49.0~2021-08-14"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
+5
View File
@@ -129,6 +129,7 @@ Meteor.publishRelations('board', function(boardId, isArchived) {
this.cursor(Lists.find({ boardId, archived: isArchived }));
this.cursor(Swimlanes.find({ boardId, archived: isArchived }));
this.cursor(Integrations.find({ boardId }));
this.cursor(CardCommentReactions.find({ boardId }));
this.cursor(
CustomFields.find(
{ boardIds: { $in: [boardId] } },
@@ -161,6 +162,8 @@ Meteor.publishRelations('board', function(boardId, isArchived) {
// Gather queries and send in bulk
const cardComments = this.join(CardComments);
cardComments.selector = _ids => ({ cardId: _ids });
const cardCommentReactions = this.join(CardCommentReactions);
cardCommentReactions.selector = _ids => ({ cardId: _ids });
const attachments = this.join(Attachments);
attachments.selector = _ids => ({ cardId: _ids });
const checklists = this.join(Checklists);
@@ -194,12 +197,14 @@ Meteor.publishRelations('board', function(boardId, isArchived) {
checklists.push(cardId);
checklistItems.push(cardId);
parentCards.push(cardId);
cardCommentReactions.push(cardId)
},
);
// Send bulk queries for all found ids
subCards.send();
cardComments.send();
cardCommentReactions.send();
attachments.send();
checklists.send();
checklistItems.send();
Loaded 100 of 103 files, more files were not shown because too many files have changed in this diff. Show more