mirror of
https://github.com/wekan/wekan.git
synced 2025-04-24 05:57:13 -04:00
Merge remote-tracking branch 'upstream/master' into devel
Merge to update to latest upstream/master
This commit is contained in:
commit
6c0b6ca670
59 changed files with 197 additions and 43 deletions
|
@ -121,7 +121,8 @@
|
|||
"allowIsBoardAdmin": true,
|
||||
"allowIsBoardMember": true,
|
||||
"allowIsBoardMemberByCard": true,
|
||||
"allowIsBoardMemberNonComment": true,
|
||||
"allowIsBoardMemberCommentOnly": true,
|
||||
"allowIsBoardMemberNoComments": true,
|
||||
"Emoji": true,
|
||||
"Checklists": true,
|
||||
"Settings": true,
|
||||
|
|
17
CHANGELOG.md
17
CHANGELOG.md
|
@ -1,3 +1,20 @@
|
|||
# v1.41 2018-09-05 Wekan release
|
||||
|
||||
This release tries to fix the following bugs:
|
||||
|
||||
- [Try to fix Wekan Sandstorm API](https://github.com/wekan/wekan/issues/1279#issuecomment-418440401).
|
||||
|
||||
Thanks to GitHub users ocdtrekkie and xet7 for their contributions.
|
||||
|
||||
# v1.40 2018-09-04 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Add permission "No comments"](https://github.com/wekan/wekan/commit/77efcf71376d3da6c19ad1a4910567263e83c0ca).
|
||||
It is like normal user, but [does not show comments and activities](https://github.com/wekan/wekan/issues/1861).
|
||||
|
||||
Thanks to GitHub user xet7 for contributions.
|
||||
|
||||
# v1.39 2018-08-29 Wekan release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
|
|
@ -173,25 +173,28 @@ template(name="cardDetails")
|
|||
+attachmentsGalery
|
||||
|
||||
hr
|
||||
.activity-title
|
||||
h3 {{ _ 'activity'}}
|
||||
if currentUser.isBoardMember
|
||||
.material-toggle-switch
|
||||
span.toggle-switch-title {{_ 'hide-system-messages'}}
|
||||
if hiddenSystemMessages
|
||||
input.toggle-switch(type="checkbox" id="toggleButton" checked="checked")
|
||||
else
|
||||
input.toggle-switch(type="checkbox" id="toggleButton")
|
||||
label.toggle-label(for="toggleButton")
|
||||
unless currentUser.isNoComments
|
||||
.activity-title
|
||||
h3 {{ _ 'activity'}}
|
||||
if currentUser.isBoardMember
|
||||
.material-toggle-switch
|
||||
span.toggle-switch-title {{_ 'hide-system-messages'}}
|
||||
if hiddenSystemMessages
|
||||
input.toggle-switch(type="checkbox" id="toggleButton" checked="checked")
|
||||
else
|
||||
input.toggle-switch(type="checkbox" id="toggleButton")
|
||||
label.toggle-label(for="toggleButton")
|
||||
if currentUser.isBoardMember
|
||||
+commentForm
|
||||
if isLoaded.get
|
||||
if isLinkedCard
|
||||
+activities(card=this mode="linkedcard")
|
||||
else if isLinkedBoard
|
||||
+activities(card=this mode="linkedboard")
|
||||
else
|
||||
+activities(card=this mode="card")
|
||||
unless currentUser.isNoComments
|
||||
+commentForm
|
||||
unless currentUser.isNoComments
|
||||
if isLoaded.get
|
||||
if isLinkedCard
|
||||
+activities(card=this mode="linkedcard")
|
||||
else if isLinkedBoard
|
||||
+activities(card=this mode="linkedboard")
|
||||
else
|
||||
+activities(card=this mode="card")
|
||||
|
||||
template(name="editCardTitleForm")
|
||||
textarea.js-edit-card-title(rows='1' autofocus)
|
||||
|
|
|
@ -65,10 +65,11 @@ template(name="minicard")
|
|||
+userAvatar(userId=this)
|
||||
|
||||
.badges
|
||||
if comments.count
|
||||
.badge(title="{{_ 'card-comments-title' comments.count }}")
|
||||
span.badge-icon.fa.fa-comment-o.badge-comment
|
||||
span.badge-text= comments.count
|
||||
unless currentUser.isNoComments
|
||||
if comments.count
|
||||
.badge(title="{{_ 'card-comments-title' comments.count }}")
|
||||
span.badge-icon.fa.fa-comment-o.badge-comment
|
||||
span.badge-text= comments.count
|
||||
if getDescription
|
||||
.badge.badge-state-image-only(title=getDescription)
|
||||
span.badge-icon.fa.fa-align-left
|
||||
|
|
|
@ -23,10 +23,11 @@ template(name='homeSidebar')
|
|||
hr
|
||||
+labelsWidget
|
||||
hr
|
||||
h3
|
||||
i.fa.fa-comments-o
|
||||
| {{_ 'activities'}}
|
||||
+activities(mode="board")
|
||||
unless currentUser.isNoComments
|
||||
h3
|
||||
i.fa.fa-comments-o
|
||||
| {{_ 'activities'}}
|
||||
+activities(mode="board")
|
||||
|
||||
template(name="membersWidget")
|
||||
.board-widget.board-widget-members
|
||||
|
@ -145,6 +146,12 @@ template(name="changePermissionsPopup")
|
|||
if isNormal
|
||||
i.fa.fa-check
|
||||
span.sub-name {{_ 'normal-desc'}}
|
||||
li
|
||||
a(class="{{#if isLastAdmin}}disabled{{else}}js-set-no-comments{{/if}}")
|
||||
| {{_ 'no-comments'}}
|
||||
if isNoComments
|
||||
i.fa.fa-check
|
||||
span.sub-name {{_ 'no-comments-desc'}}
|
||||
li
|
||||
a(class="{{#if isLastAdmin}}disabled{{else}}js-set-comment-only{{/if}}")
|
||||
| {{_ 'comment-only'}}
|
||||
|
|
|
@ -126,8 +126,11 @@ Template.memberPopup.helpers({
|
|||
if(type === 'normal'){
|
||||
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
const commentOnly = currentBoard.hasCommentOnly(this.userId);
|
||||
const noComments = currentBoard.hasNoComments(this.userId);
|
||||
if(commentOnly){
|
||||
return TAPi18n.__('comment-only').toLowerCase();
|
||||
} else if(noComments) {
|
||||
return TAPi18n.__('no-comments').toLowerCase();
|
||||
} else {
|
||||
return TAPi18n.__(type).toLowerCase();
|
||||
}
|
||||
|
@ -324,12 +327,13 @@ BlazeComponent.extendComponent({
|
|||
}).register('addMemberPopup');
|
||||
|
||||
Template.changePermissionsPopup.events({
|
||||
'click .js-set-admin, click .js-set-normal, click .js-set-comment-only'(event) {
|
||||
'click .js-set-admin, click .js-set-normal, click .js-set-no-comments, click .js-set-comment-only'(event) {
|
||||
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
const memberId = this.userId;
|
||||
const isAdmin = $(event.currentTarget).hasClass('js-set-admin');
|
||||
const isCommentOnly = $(event.currentTarget).hasClass('js-set-comment-only');
|
||||
currentBoard.setMemberPermission(memberId, isAdmin, isCommentOnly);
|
||||
const isNoComments = $(event.currentTarget).hasClass('js-set-no-comments');
|
||||
currentBoard.setMemberPermission(memberId, isAdmin, isNoComments, isCommentOnly);
|
||||
Popup.back(1);
|
||||
},
|
||||
});
|
||||
|
@ -342,7 +346,12 @@ Template.changePermissionsPopup.helpers({
|
|||
|
||||
isNormal() {
|
||||
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
return !currentBoard.hasAdmin(this.userId) && !currentBoard.hasCommentOnly(this.userId);
|
||||
return !currentBoard.hasAdmin(this.userId) && !currentBoard.hasNoComments(this.userId) && !currentBoard.hasCommentOnly(this.userId);
|
||||
},
|
||||
|
||||
isNoComments() {
|
||||
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
return !currentBoard.hasAdmin(this.userId) && currentBoard.hasNoComments(this.userId);
|
||||
},
|
||||
|
||||
isCommentOnly() {
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "أكتب تعليق",
|
||||
"comment-only": "التعليق فقط",
|
||||
"comment-only-desc": "يمكن التعليق على بطاقات فقط.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "حاسوب",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Напиши коментар",
|
||||
"comment-only": "Само коментар",
|
||||
"comment-only-desc": "Може да коментира само в карти.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Компютър",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computer",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Escriu un comentari",
|
||||
"comment-only": "Només comentaris",
|
||||
"comment-only-desc": "Només pots fer comentaris a les fitxes",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Ordinador",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Text komentáře",
|
||||
"comment-only": "Pouze komentáře",
|
||||
"comment-only-desc": "Může přidávat komentáře pouze do karet.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Počítač",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Kommentar schreiben",
|
||||
"comment-only": "Nur kommentierbar",
|
||||
"comment-only-desc": "Kann Karten nur Kommentieren",
|
||||
"no-comments": "Keine Kommentare",
|
||||
"no-comments-desc": "Kann keine Kommentare und Aktivitäten sehen.",
|
||||
"computer": "Computer",
|
||||
"confirm-subtask-delete-dialog": "Wollen Sie die Teilaufgabe wirklich löschen?",
|
||||
"confirm-checklist-delete-dialog": "Wollen Sie die Checkliste wirklich löschen?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Υπολογιστής",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computer",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computer",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Komputilo",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Comentar",
|
||||
"comment-only": "Comentar solamente",
|
||||
"comment-only-desc": "Puede comentar en tarjetas solamente.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computadora",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Escribir comentario",
|
||||
"comment-only": "Sólo comentarios",
|
||||
"comment-only-desc": "Solo puedes comentar en las tarjetas.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "el ordenador",
|
||||
"confirm-subtask-delete-dialog": "¿Seguro que quieres eliminar la subtarea?",
|
||||
"confirm-checklist-delete-dialog": "¿Seguro que quieres eliminar la lista de verificación?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Idatzi iruzkin bat",
|
||||
"comment-only": "Iruzkinak besterik ez",
|
||||
"comment-only-desc": "Iruzkinak txarteletan soilik egin ditzake",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Ordenagailua",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "درج نظر",
|
||||
"comment-only": "فقط نظر",
|
||||
"comment-only-desc": "فقط میتواند روی کارتها نظر دهد.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "رایانه",
|
||||
"confirm-subtask-delete-dialog": "از حذف این زیر وظیفه اطمینان دارید؟",
|
||||
"confirm-checklist-delete-dialog": "مطمئنا چک لیست پاک شود؟",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Kirjoita kommentti",
|
||||
"comment-only": "Vain kommentointi",
|
||||
"comment-only-desc": "Voi vain kommentoida kortteja",
|
||||
"no-comments": "Ei kommentteja",
|
||||
"no-comments-desc": "Ei voi nähdä kommentteja ja toimintaa.",
|
||||
"computer": "Tietokone",
|
||||
"confirm-subtask-delete-dialog": "Oletko varma että haluat poistaa alitehtävän?",
|
||||
"confirm-checklist-delete-dialog": "Oletko varma että haluat poistaa tarkistuslistan?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Écrire un commentaire",
|
||||
"comment-only": "Commentaire uniquement",
|
||||
"comment-only-desc": "Ne peut que commenter des cartes.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Ordinateur",
|
||||
"confirm-subtask-delete-dialog": "Êtes-vous sûr de vouloir supprimer la sous-tâche ?",
|
||||
"confirm-checklist-delete-dialog": "Êtes-vous sûr de vouloir supprimer la checklist ?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Escribir un comentario",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computador",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "כתיבת הערה",
|
||||
"comment-only": "הערה בלבד",
|
||||
"comment-only-desc": "ניתן להעיר על כרטיסים בלבד.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "מחשב",
|
||||
"confirm-subtask-delete-dialog": "האם למחוק את תת המשימה?",
|
||||
"confirm-checklist-delete-dialog": "האם אתה בטוח שברצונך למחוק את רשימת המשימות?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Megjegyzés írása",
|
||||
"comment-only": "Csak megjegyzés",
|
||||
"comment-only-desc": "Csak megjegyzést írhat a kártyákhoz.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Számítógép",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computer",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Hanya komentar",
|
||||
"comment-only-desc": "Bisa komen hanya di kartu",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Komputer",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computer",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Scrivi Commento",
|
||||
"comment-only": "Solo commenti",
|
||||
"comment-only-desc": "Puoi commentare solo le schede.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computer",
|
||||
"confirm-subtask-delete-dialog": "Sei sicuro di voler eliminare il sotto-compito?",
|
||||
"confirm-checklist-delete-dialog": "Sei sicuro di voler eliminare la checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "コメントを書く",
|
||||
"comment-only": "コメントのみ",
|
||||
"comment-only-desc": "カードにのみコメント可能",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "コンピューター",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "დაწერეთ კომენტარი",
|
||||
"comment-only": "მხოლოდ კომენტარები",
|
||||
"comment-only-desc": "თქვენ შეგიძლიათ კომენტარის გაკეთება მხოლოდ ბარათებზე.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "კომპიუტერი",
|
||||
"confirm-subtask-delete-dialog": "დარწმუნებული ხართ, რომ გსურთ ქვესაქმიანობის წაშლა? ",
|
||||
"confirm-checklist-delete-dialog": "დარწმუნებული ხართ, რომ გსურთ კატალოგის წაშლა ? ",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computer",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "댓글 입력",
|
||||
"comment-only": "댓글만 입력 가능",
|
||||
"comment-only-desc": "카드에 댓글만 달수 있습니다.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "내 컴퓨터",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computer",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computer",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computer",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Schrijf reactie",
|
||||
"comment-only": "Alleen reageren",
|
||||
"comment-only-desc": "Kan alleen op kaarten reageren.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computer",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Dodaj komentarz",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Komputer",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Escrever Comentário",
|
||||
"comment-only": "Somente comentários",
|
||||
"comment-only-desc": "Pode comentar apenas em cartões.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computador",
|
||||
"confirm-subtask-delete-dialog": "Tem certeza que deseja deletar a subtarefa?",
|
||||
"confirm-checklist-delete-dialog": "Tem certeza que quer deletar o checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computador",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computer",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Написать комментарий",
|
||||
"comment-only": "Только комментирование",
|
||||
"comment-only-desc": "Может комментировать только карточки.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Загрузить с компьютера",
|
||||
"confirm-subtask-delete-dialog": "Вы уверены, что хотите удалить подзадачу?",
|
||||
"confirm-checklist-delete-dialog": "Вы уверены, что хотите удалить чеклист?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computer",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Skriv kommentar",
|
||||
"comment-only": "Kommentera endast",
|
||||
"comment-only-desc": "Kan endast kommentera kort.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Dator",
|
||||
"confirm-subtask-delete-dialog": "Är du säker på att du vill radera deluppgift?",
|
||||
"confirm-checklist-delete-dialog": "Är du säker på att du vill radera checklista?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computer",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "คอมพิวเตอร์",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Yorum Yaz",
|
||||
"comment-only": "Sadece yorum",
|
||||
"comment-only-desc": "Sadece kartlara yorum yazabilir.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Bilgisayar",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computer",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "Write Comment",
|
||||
"comment-only": "Comment only",
|
||||
"comment-only-desc": "Can comment on cards only.",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "Computer",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "添加评论",
|
||||
"comment-only": "仅能评论",
|
||||
"comment-only-desc": "只能在卡片上评论。",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "从本机上传",
|
||||
"confirm-subtask-delete-dialog": "确定要删除子任务吗?",
|
||||
"confirm-checklist-delete-dialog": "确定要删除清单吗?",
|
||||
|
|
|
@ -171,6 +171,8 @@
|
|||
"comment-placeholder": "新增評論",
|
||||
"comment-only": "只可以發表評論",
|
||||
"comment-only-desc": "只可以對卡片發表評論",
|
||||
"no-comments": "No comments",
|
||||
"no-comments-desc": "Can not see comments and activities.",
|
||||
"computer": "從本機上傳",
|
||||
"confirm-subtask-delete-dialog": "Are you sure you want to delete subtask?",
|
||||
"confirm-checklist-delete-dialog": "Are you sure you want to delete checklist?",
|
||||
|
|
|
@ -110,6 +110,7 @@ Boards.attachSchema(new SimpleSchema({
|
|||
userId: this.userId,
|
||||
isAdmin: true,
|
||||
isActive: true,
|
||||
isNoComments: false,
|
||||
isCommentOnly: false,
|
||||
}];
|
||||
}
|
||||
|
@ -124,6 +125,9 @@ Boards.attachSchema(new SimpleSchema({
|
|||
'members.$.isActive': {
|
||||
type: Boolean,
|
||||
},
|
||||
'members.$.isNoComments': {
|
||||
type: Boolean,
|
||||
},
|
||||
'members.$.isCommentOnly': {
|
||||
type: Boolean,
|
||||
},
|
||||
|
@ -292,6 +296,10 @@ Boards.helpers({
|
|||
return !!_.findWhere(this.members, { userId: memberId, isActive: true, isAdmin: true });
|
||||
},
|
||||
|
||||
hasNoComments(memberId) {
|
||||
return !!_.findWhere(this.members, { userId: memberId, isActive: true, isAdmin: false, isNoComments: true });
|
||||
},
|
||||
|
||||
hasCommentOnly(memberId) {
|
||||
return !!_.findWhere(this.members, { userId: memberId, isActive: true, isAdmin: false, isCommentOnly: true });
|
||||
},
|
||||
|
@ -501,6 +509,7 @@ Boards.mutations({
|
|||
userId: memberId,
|
||||
isAdmin: false,
|
||||
isActive: true,
|
||||
isNoComments: false,
|
||||
isCommentOnly: false,
|
||||
},
|
||||
},
|
||||
|
@ -528,7 +537,7 @@ Boards.mutations({
|
|||
};
|
||||
},
|
||||
|
||||
setMemberPermission(memberId, isAdmin, isCommentOnly) {
|
||||
setMemberPermission(memberId, isAdmin, isNoComments, isCommentOnly) {
|
||||
const memberIndex = this.memberIndex(memberId);
|
||||
|
||||
// do not allow change permission of self
|
||||
|
@ -539,6 +548,7 @@ Boards.mutations({
|
|||
return {
|
||||
$set: {
|
||||
[`members.${memberIndex}.isAdmin`]: isAdmin,
|
||||
[`members.${memberIndex}.isNoComments`]: isNoComments,
|
||||
[`members.${memberIndex}.isCommentOnly`]: isCommentOnly,
|
||||
},
|
||||
};
|
||||
|
@ -838,6 +848,7 @@ if (Meteor.isServer) {
|
|||
userId: req.body.owner,
|
||||
isAdmin: true,
|
||||
isActive: true,
|
||||
isNoComments: false,
|
||||
isCommentOnly: false,
|
||||
},
|
||||
],
|
||||
|
|
|
@ -63,13 +63,13 @@ Lists.attachSchema(new SimpleSchema({
|
|||
|
||||
Lists.allow({
|
||||
insert(userId, doc) {
|
||||
return allowIsBoardMemberNonComment(userId, Boards.findOne(doc.boardId));
|
||||
return allowIsBoardMemberCommentOnly(userId, Boards.findOne(doc.boardId));
|
||||
},
|
||||
update(userId, doc) {
|
||||
return allowIsBoardMemberNonComment(userId, Boards.findOne(doc.boardId));
|
||||
return allowIsBoardMemberCommentOnly(userId, Boards.findOne(doc.boardId));
|
||||
},
|
||||
remove(userId, doc) {
|
||||
return allowIsBoardMemberNonComment(userId, Boards.findOne(doc.boardId));
|
||||
return allowIsBoardMemberCommentOnly(userId, Boards.findOne(doc.boardId));
|
||||
},
|
||||
fetch: ['boardId'],
|
||||
});
|
||||
|
|
|
@ -46,13 +46,13 @@ Swimlanes.attachSchema(new SimpleSchema({
|
|||
|
||||
Swimlanes.allow({
|
||||
insert(userId, doc) {
|
||||
return allowIsBoardMemberNonComment(userId, Boards.findOne(doc.boardId));
|
||||
return allowIsBoardMemberCommentOnly(userId, Boards.findOne(doc.boardId));
|
||||
},
|
||||
update(userId, doc) {
|
||||
return allowIsBoardMemberNonComment(userId, Boards.findOne(doc.boardId));
|
||||
return allowIsBoardMemberCommentOnly(userId, Boards.findOne(doc.boardId));
|
||||
},
|
||||
remove(userId, doc) {
|
||||
return allowIsBoardMemberNonComment(userId, Boards.findOne(doc.boardId));
|
||||
return allowIsBoardMemberCommentOnly(userId, Boards.findOne(doc.boardId));
|
||||
},
|
||||
fetch: ['boardId'],
|
||||
});
|
||||
|
|
|
@ -151,6 +151,16 @@ if (Meteor.isClient) {
|
|||
return board && board.hasMember(this._id);
|
||||
},
|
||||
|
||||
isNotNoComments() {
|
||||
const board = Boards.findOne(Session.get('currentBoard'));
|
||||
return board && board.hasMember(this._id) && !board.hasNoComments(this._id);
|
||||
},
|
||||
|
||||
isNoComments() {
|
||||
const board = Boards.findOne(Session.get('currentBoard'));
|
||||
return board && board.hasNoComments(this._id);
|
||||
},
|
||||
|
||||
isNotCommentOnly() {
|
||||
const board = Boards.findOne(Session.get('currentBoard'));
|
||||
return board && board.hasMember(this._id) && !board.hasCommentOnly(this._id);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "wekan",
|
||||
"version": "1.39.0",
|
||||
"version": "1.41.0",
|
||||
"description": "The open-source kanban",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
|
|
|
@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
|
|||
appTitle = (defaultText = "Wekan"),
|
||||
# The name of the app as it is displayed to the user.
|
||||
|
||||
appVersion = 124,
|
||||
appVersion = 126,
|
||||
# Increment this for every release.
|
||||
|
||||
appMarketingVersion = (defaultText = "1.39.0~2018-08-29"),
|
||||
appMarketingVersion = (defaultText = "1.41.0~2018-09-05"),
|
||||
# Human-readable presentation of the app version.
|
||||
|
||||
minUpgradableAppVersion = 0,
|
||||
|
@ -226,7 +226,7 @@ const pkgdef :Spk.PackageDefinition = (
|
|||
verbPhrase = (defaultText = "removed from card"),
|
||||
), ],
|
||||
),
|
||||
apiPath = "/api",
|
||||
apiPath = "/",
|
||||
saveIdentityCaps = true,
|
||||
),
|
||||
);
|
||||
|
|
|
@ -208,7 +208,8 @@ if (isSandstorm && Meteor.isServer) {
|
|||
const isActive = permissions.indexOf('participate') > -1;
|
||||
const isAdmin = permissions.indexOf('configure') > -1;
|
||||
const isCommentOnly = false;
|
||||
const permissionDoc = { userId, isActive, isAdmin, isCommentOnly };
|
||||
const isNoComments = false;
|
||||
const permissionDoc = { userId, isActive, isAdmin, isNoComments, isCommentOnly };
|
||||
|
||||
const boardMembers = Boards.findOne(sandstormBoard._id).members;
|
||||
const memberIndex = _.pluck(boardMembers, 'userId').indexOf(userId);
|
||||
|
|
|
@ -6,10 +6,14 @@ allowIsBoardMember = function(userId, board) {
|
|||
return board && board.hasMember(userId);
|
||||
};
|
||||
|
||||
allowIsBoardMemberNonComment = function(userId, board) {
|
||||
allowIsBoardMemberCommentOnly = function(userId, board) {
|
||||
return board && board.hasMember(userId) && !board.hasCommentOnly(userId);
|
||||
};
|
||||
|
||||
allowIsBoardMemberNoComments = function(userId, board) {
|
||||
return board && board.hasMember(userId) && !board.hasNoComments(userId);
|
||||
};
|
||||
|
||||
allowIsBoardMemberByCard = function(userId, card) {
|
||||
const board = card.board();
|
||||
return board && board.hasMember(userId);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue