Merge pull request #3945 from syndimann/master

Feature: Adds Card Comment Reactions
This commit is contained in:
Lauri Ojansivu 2021-08-13 22:27:10 +03:00 committed by GitHub
commit 508c7b7a90
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
73 changed files with 374 additions and 74 deletions

View file

@ -122,6 +122,7 @@
"Activities": true,
"Attachments": true,
"Boards": true,
"CardCommentReactions": true,
"CardComments": true,
"DatePicker": true,
"Cards": true,

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}}}.

View file

@ -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 [
'👍',
'👎',
'👀',
'✅',
'❌',
'🙏',
'👏',
'🎉',
'🚀',
'😊',
'🤔',
'😔'];
}
})
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 (

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

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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": "تصحيح الإشعار",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

View file

@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Промени началната дата",
"editCardDueDatePopup-title": "Промени датата за готовност",
"editCustomFieldPopup-title": "Промени Полето",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Промени изработеното време",
"editLabelPopup-title": "Промяна на Етикета",
"editNotificationPopup-title": "Промени известията",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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ó",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimalizovat kartu",
"delete-org-warning-message": "Tuto organizaci není možné smazat, protože do ní patří uživatel(é)",
"delete-team-warning-message": "Tento tým není možné smazat, protože do nej patří uživatel(é)"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

View file

@ -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",
@ -1060,4 +1061,4 @@
"minimize-card": "Karte minimieren",
"delete-org-warning-message": "Diese Organisation kann nicht gelöscht werden. Zumindest ein Benutzer ist ihr noch zugehörig.",
"delete-team-warning-message": "Dieses Team kann nicht gelöscht werden. Zumindest ein Benutzer ist ihm noch zugehörig."
}
}

View file

@ -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",
@ -1060,4 +1061,4 @@
"minimize-card": "Karte minimieren",
"delete-org-warning-message": "Diese Organisation kann nicht gelöscht werden, da wenigstens ein Nutzer dazu gehört.",
"delete-team-warning-message": "Dieses Team kann nicht gelöscht werden, da wenigstens ein Nutzer dazu gehört."
}
}

View file

@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Αλλαγή ημερομηνίας έναρξης",
"editCardDueDatePopup-title": "Αλλαγή ημερομηνίας λήξης προθεσμίας",
"editCustomFieldPopup-title": "Επεξεργασία Πεδίου",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Αλλαγή δαπανηθέντος χρόνου",
"editLabelPopup-title": "Αλλαγή Ετικέτας",
"editNotificationPopup-title": "Επεξεργασία Ειδοποίησης",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

View file

@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Cambiar fecha de inicio",
"editCardDueDatePopup-title": "Cambiar fecha de vencimiento",
"editCustomFieldPopup-title": "Edit Field",
"addReactionPopup-title": "Agregar reacción",
"editCardSpentTimePopup-title": "Cambiar tiempo empleado",
"editLabelPopup-title": "Cambiar Etiqueta",
"editNotificationPopup-title": "Editar Notificación",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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": "Agregar reacción",
"editCardSpentTimePopup-title": "Cambiar el tiempo consumido",
"editLabelPopup-title": "Cambiar la etiqueta",
"editNotificationPopup-title": "Editar las notificaciones",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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": "Agregar reacción",
"editCardSpentTimePopup-title": "Cambiar el tiempo consumido",
"editLabelPopup-title": "Cambiar la etiqueta",
"editNotificationPopup-title": "Editar las notificaciones",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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": "Agregar reacción",
"editCardSpentTimePopup-title": "Cambiar el tiempo consumido",
"editLabelPopup-title": "Cambiar la etiqueta",
"editNotificationPopup-title": "Editar las notificaciones",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

View file

@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "تغییر تاریخ آغاز",
"editCardDueDatePopup-title": "تغییر تاریخ پایان",
"editCustomFieldPopup-title": "ویرایش فیلد",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "تغییر زمان صرف شده",
"editLabelPopup-title": "تغیر لیبل",
"editNotificationPopup-title": "اصلاح اعلان",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Pienennä kortti",
"delete-org-warning-message": "Ei voi poistaa tätä organisaatiota, ainakin yksi käyttäjä kuuluu siihen",
"delete-team-warning-message": "Ei voi poistaa tätä tiimiä, ainakin yksi käyttäjä kuuluu siihen"
}
}

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": "Ajouter une réaction",
"editCardSpentTimePopup-title": "Modifier le temps passé",
"editLabelPopup-title": "Modifier l'étiquette",
"editNotificationPopup-title": "Modifier la notification",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimiser la carte",
"delete-org-warning-message": "Impossible de supprimer cette organisation, au moins un utilisateur lui appartient",
"delete-team-warning-message": "Impossible de supprimer cette équipe, au moins un utilisateur lui appartient"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

View file

@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "שינוי מועד התחלה",
"editCardDueDatePopup-title": "שינוי מועד סיום",
"editCustomFieldPopup-title": "עריכת שדה",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "שינוי הזמן שהושקע",
"editLabelPopup-title": "שינוי תווית",
"editNotificationPopup-title": "שינוי דיווח",
@ -1060,4 +1061,4 @@
"minimize-card": "מזעור כרטיס",
"delete-org-warning-message": "לא ניתן למחוק את הארגון הזה, יש לפחות משתמש אחד ששייך אליו",
"delete-team-warning-message": "לא ניתן למחוק את הצוות הזה, יש לפחות משתמש אחד ששייך אליו"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

View file

@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Cambia data di inizio",
"editCardDueDatePopup-title": "Cambia data di scadenza",
"editCustomFieldPopup-title": "Modifica campo",
"addReactionPopup-title": "Aggiungi reazione",
"editCardSpentTimePopup-title": "Cambia tempo trascorso",
"editLabelPopup-title": "Modifica etichetta",
"editNotificationPopup-title": "Modifica notifiche",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

View file

@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "開始日の変更",
"editCardDueDatePopup-title": "期限の変更",
"editCustomFieldPopup-title": "フィールドを編集",
"addReactionPopup-title": "反応を追加します",
"editCardSpentTimePopup-title": "作業時間の変更",
"editLabelPopup-title": "ラベルの変更",
"editNotificationPopup-title": "通知の変更",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

View file

@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "დაწყების დროის შეცვლა",
"editCardDueDatePopup-title": "შეცვალეთ დედლაინი",
"editCustomFieldPopup-title": "ველების შესწორება",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "დახარჯული დროის შეცვლა",
"editLabelPopup-title": "ნიშნის შეცვლა",
"editNotificationPopup-title": "შეტყობინებების შესწორება",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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": "알림 수정",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

View file

@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Промени началната дата",
"editCardDueDatePopup-title": "Промени датата за готовност",
"editCustomFieldPopup-title": "Промени Полето",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Промени изработеното време",
"editLabelPopup-title": "Промяна на Етикета",
"editNotificationPopup-title": "Промени известията",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

View file

@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Эхлэх өдрийг өөрчлөх",
"editCardDueDatePopup-title": "Дуусах өдрийг өөрчлөх",
"editCustomFieldPopup-title": "Талбарыг засварлах",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "Зарцуулсан хугацааг засварлах",
"editLabelPopup-title": "Шошгыг өөрчлөх",
"editNotificationPopup-title": "Мэдэгдэл тохируулах",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimer Kort",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimaliseer Kaart",
"delete-org-warning-message": "Kan deze organisatie niet verwijderen want er is nog minimaal 1 gebruiker lid van.",
"delete-team-warning-message": "Kan dit team niet verwijderen want er is nog minimaal 1 gebruiker lid van."
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

View file

@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Zmień datę rozpoczęcia",
"editCardDueDatePopup-title": "Zmień datę wykonania",
"editCustomFieldPopup-title": "Edytuj pole",
"addReactionPopup-title": "Dodaj reakcję",
"editCardSpentTimePopup-title": "Zmień ilość przepracowanego czasu",
"editLabelPopup-title": "Zmień etykietę",
"editNotificationPopup-title": "Zmień tryb powiadamiania",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

View file

@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Altera data de início",
"editCardDueDatePopup-title": "Altera prazo final",
"editCustomFieldPopup-title": "Editar campo",
"addReactionPopup-title": "Adicionar reação",
"editCardSpentTimePopup-title": "Editar tempo gasto",
"editLabelPopup-title": "Alterar Etiqueta",
"editNotificationPopup-title": "Editar Notificações",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimizar Cartão",
"delete-org-warning-message": "Não é possível excluir esta organização. Existe pelo menos um usuário que pertence a ela.",
"delete-team-warning-message": "Não é possível excluir este time. Existe pelo menos um usuário que pertence a ele."
}
}

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": "Adicionar reação",
"editCardSpentTimePopup-title": "Alterar o tempo gasto",
"editLabelPopup-title": "Alterar a Etiqueta",
"editNotificationPopup-title": "Editar a Notificação",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimizar Cartão",
"delete-org-warning-message": "Não pode apagar esta organização, tem no mínimo um utilizador associado",
"delete-team-warning-message": "Não pode apagar esta equipa, tem no mínimo um utilizador associado"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

View file

@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "Изменить дату начала",
"editCardDueDatePopup-title": "Изменить дату выполнения",
"editCustomFieldPopup-title": "Редактировать поле",
"addReactionPopup-title": "Добавить реакцию",
"editCardSpentTimePopup-title": "Изменить затраченное время",
"editLabelPopup-title": "Изменить метки",
"editNotificationPopup-title": "Редактировать уведомления",
@ -1060,4 +1061,4 @@
"minimize-card": "Минимизировать карточку",
"delete-org-warning-message": "Невозможно удалить эту организацию, она включает в себя как минимум одного пользователя",
"delete-team-warning-message": "Невозможно удалить эту команду, она включает в себя как минимум одного пользователя"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimalizovať kartu",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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": "แก้ไขการแจ้งเตือน",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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": "Reaksiyon ekle",
"editCardSpentTimePopup-title": "Harcanan zamanı değiştir",
"editLabelPopup-title": "Etiket Değiştir",
"editNotificationPopup-title": "Bildirimi değiştir",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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": "Thêm phản ứng",
"editCardSpentTimePopup-title": "Thay đổi thời gian đã sử dụng",
"editLabelPopup-title": "Thay đổi nhãn",
"editNotificationPopup-title": "Sửa Thông báo",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

View file

@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "修改起始日期",
"editCardDueDatePopup-title": "修改截止日期",
"editCustomFieldPopup-title": "编辑字段",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "修改耗时",
"editLabelPopup-title": "更改标签",
"editNotificationPopup-title": "编辑通知",
@ -1060,4 +1061,4 @@
"minimize-card": "最小化卡片",
"delete-org-warning-message": "无法删除该组织,至少还有一个用户属于该组织。",
"delete-team-warning-message": "无法删除该团队,至少还有一个用户属于该团队。"
}
}

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",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

View file

@ -322,6 +322,7 @@
"editCardStartDatePopup-title": "變更開始日期",
"editCardDueDatePopup-title": "變更到期日期",
"editCustomFieldPopup-title": "編輯欄位",
"addReactionPopup-title": "Add reaction",
"editCardSpentTimePopup-title": "變更耗費時間",
"editLabelPopup-title": "更改標籤",
"editNotificationPopup-title": "更改通知",
@ -1060,4 +1061,4 @@
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it"
}
}

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 });
});
}

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);

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();

View file

@ -5,6 +5,7 @@ import Lists from '../../models/lists';
import Swimlanes from '../../models/swimlanes';
import Cards from '../../models/cards';
import CardComments from '../../models/cardComments';
import CardCommentReactions from '../../models/cardCommentReactions';
import Attachments from '../../models/attachments';
import Checklists from '../../models/checklists';
import ChecklistItems from '../../models/checklistItems';
@ -699,6 +700,8 @@ function findCards(sessionId, query) {
type: 1,
};
const comments = CardComments.find({ cardId: { $in: cards.map(c => c._id) } });
return [
cards,
Boards.find(
@ -714,7 +717,8 @@ function findCards(sessionId, query) {
Users.find({ _id: { $in: users } }, { fields: Users.safeFields }),
Checklists.find({ cardId: { $in: cards.map(c => c._id) } }),
Attachments.find({ cardId: { $in: cards.map(c => c._id) } }),
CardComments.find({ cardId: { $in: cards.map(c => c._id) } }),
comments,
CardCommentReactions.find({cardCommentId: {$in: comments.map(c => c._id) }}),
SessionData.find({ userId, sessionId }),
];
}