mirror of
https://github.com/wekan/wekan.git
synced 2025-12-23 19:00:12 +01:00
Utils of canModifyCard and canModifyBoard + move this general functions to Utils class
This commit is contained in:
parent
b29ec93c34
commit
583f114c68
10 changed files with 28 additions and 135 deletions
|
|
@ -212,18 +212,10 @@ BlazeComponent.extendComponent({
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
function userIsMember() {
|
|
||||||
return (
|
|
||||||
Meteor.user() &&
|
|
||||||
Meteor.user().isBoardMember() &&
|
|
||||||
!Meteor.user().isCommentOnly()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// If there is no data in the board (ie, no lists) we autofocus the list
|
// If there is no data in the board (ie, no lists) we autofocus the list
|
||||||
// creation form by clicking on the corresponding element.
|
// creation form by clicking on the corresponding element.
|
||||||
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||||
if (userIsMember() && currentBoard.lists().count() === 0) {
|
if (Utils.canModifyBoard() && currentBoard.lists().count() === 0) {
|
||||||
boardComponent.openNewListForm();
|
boardComponent.openNewListForm();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -158,13 +158,6 @@ BlazeComponent.extendComponent({
|
||||||
}).register('boardHeaderBar');
|
}).register('boardHeaderBar');
|
||||||
|
|
||||||
Template.boardHeaderBar.helpers({
|
Template.boardHeaderBar.helpers({
|
||||||
canModifyBoard() {
|
|
||||||
return (
|
|
||||||
Meteor.user() &&
|
|
||||||
Meteor.user().isBoardMember() &&
|
|
||||||
!Meteor.user().isCommentOnly()
|
|
||||||
);
|
|
||||||
},
|
|
||||||
boardView() {
|
boardView() {
|
||||||
return Utils.boardView();
|
return Utils.boardView();
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -37,14 +37,6 @@ const CardCustomField = BlazeComponent.extendComponent({
|
||||||
self.card = Utils.getCurrentCard();
|
self.card = Utils.getCurrentCard();
|
||||||
self.customFieldId = this.data()._id;
|
self.customFieldId = this.data()._id;
|
||||||
},
|
},
|
||||||
|
|
||||||
canModifyCard() {
|
|
||||||
return (
|
|
||||||
Meteor.user() &&
|
|
||||||
Meteor.user().isBoardMember() &&
|
|
||||||
!Meteor.user().isCommentOnly()
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
CardCustomField.register('cardCustomField');
|
CardCustomField.register('cardCustomField');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,17 +2,6 @@ import moment from 'moment/min/moment-with-locales';
|
||||||
import { TAPi18n } from '/imports/i18n';
|
import { TAPi18n } from '/imports/i18n';
|
||||||
import { DatePicker } from '/client/lib/datepicker';
|
import { DatePicker } from '/client/lib/datepicker';
|
||||||
|
|
||||||
Template.dateBadge.helpers({
|
|
||||||
canModifyCard() {
|
|
||||||
return (
|
|
||||||
Meteor.user() &&
|
|
||||||
Meteor.user().isBoardMember() &&
|
|
||||||
!Meteor.user().isCommentOnly() &&
|
|
||||||
!Meteor.user().isWorker()
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
// editCardReceivedDatePopup
|
// editCardReceivedDatePopup
|
||||||
(class extends DatePicker {
|
(class extends DatePicker {
|
||||||
onCreated() {
|
onCreated() {
|
||||||
|
|
|
||||||
|
|
@ -75,15 +75,6 @@ BlazeComponent.extendComponent({
|
||||||
return !Utils.getPopupCardId() && Meteor.user().hasCardMaximized();
|
return !Utils.getPopupCardId() && Meteor.user().hasCardMaximized();
|
||||||
},
|
},
|
||||||
|
|
||||||
canModifyCard() {
|
|
||||||
return (
|
|
||||||
Meteor.user() &&
|
|
||||||
Meteor.user().isBoardMember() &&
|
|
||||||
!Meteor.user().isCommentOnly() &&
|
|
||||||
!Meteor.user().isWorker()
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
scrollParentContainer() {
|
scrollParentContainer() {
|
||||||
const cardPanelWidth = 600;
|
const cardPanelWidth = 600;
|
||||||
const parentComponent = this.parentComponent();
|
const parentComponent = this.parentComponent();
|
||||||
|
|
@ -662,14 +653,6 @@ Template.cardDetailsActionsPopup.helpers({
|
||||||
isBoardAdmin() {
|
isBoardAdmin() {
|
||||||
return Meteor.user().isBoardAdmin();
|
return Meteor.user().isBoardAdmin();
|
||||||
},
|
},
|
||||||
|
|
||||||
canModifyCard() {
|
|
||||||
return (
|
|
||||||
Meteor.user() &&
|
|
||||||
Meteor.user().isBoardMember() &&
|
|
||||||
!Meteor.user().isCommentOnly()
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
||||||
Template.cardDetailsActionsPopup.events({
|
Template.cardDetailsActionsPopup.events({
|
||||||
|
|
|
||||||
|
|
@ -83,13 +83,3 @@ BlazeComponent.extendComponent({
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
}).register('cardSpentTime');
|
}).register('cardSpentTime');
|
||||||
|
|
||||||
Template.timeBadge.helpers({
|
|
||||||
canModifyCard() {
|
|
||||||
return (
|
|
||||||
Meteor.user() &&
|
|
||||||
Meteor.user().isBoardMember() &&
|
|
||||||
!Meteor.user().isCommentOnly()
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
|
||||||
|
|
@ -71,15 +71,6 @@ BlazeComponent.extendComponent({
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
canModifyCard() {
|
|
||||||
return (
|
|
||||||
Meteor.user() &&
|
|
||||||
Meteor.user().isBoardMember() &&
|
|
||||||
!Meteor.user().isCommentOnly() &&
|
|
||||||
!Meteor.user().isWorker()
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
/** returns the finished percent of the checklist */
|
/** returns the finished percent of the checklist */
|
||||||
finishedPercent() {
|
finishedPercent() {
|
||||||
const ret = this.data().checklist.finishedPercent();
|
const ret = this.data().checklist.finishedPercent();
|
||||||
|
|
@ -156,15 +147,6 @@ BlazeComponent.extendComponent({
|
||||||
textarea.focus();
|
textarea.focus();
|
||||||
},
|
},
|
||||||
|
|
||||||
canModifyCard() {
|
|
||||||
return (
|
|
||||||
Meteor.user() &&
|
|
||||||
Meteor.user().isBoardMember() &&
|
|
||||||
!Meteor.user().isCommentOnly() &&
|
|
||||||
!Meteor.user().isWorker()
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
deleteItem() {
|
deleteItem() {
|
||||||
const checklist = this.currentData().checklist;
|
const checklist = this.currentData().checklist;
|
||||||
const item = this.currentData().item;
|
const item = this.currentData().item;
|
||||||
|
|
@ -299,14 +281,6 @@ BlazeComponent.extendComponent({
|
||||||
onRendered() {
|
onRendered() {
|
||||||
autosize(this.$('textarea.js-add-checklist-item'));
|
autosize(this.$('textarea.js-add-checklist-item'));
|
||||||
},
|
},
|
||||||
canModifyCard() {
|
|
||||||
return (
|
|
||||||
Meteor.user() &&
|
|
||||||
Meteor.user().isBoardMember() &&
|
|
||||||
!Meteor.user().isCommentOnly() &&
|
|
||||||
!Meteor.user().isWorker()
|
|
||||||
);
|
|
||||||
},
|
|
||||||
events() {
|
events() {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
|
|
@ -344,14 +318,6 @@ BlazeComponent.extendComponent({
|
||||||
onRendered() {
|
onRendered() {
|
||||||
autosize(this.$('textarea.js-edit-checklist-item'));
|
autosize(this.$('textarea.js-edit-checklist-item'));
|
||||||
},
|
},
|
||||||
canModifyCard() {
|
|
||||||
return (
|
|
||||||
Meteor.user() &&
|
|
||||||
Meteor.user().isBoardMember() &&
|
|
||||||
!Meteor.user().isCommentOnly() &&
|
|
||||||
!Meteor.user().isWorker()
|
|
||||||
);
|
|
||||||
},
|
|
||||||
events() {
|
events() {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
|
|
@ -368,14 +334,6 @@ BlazeComponent.extendComponent({
|
||||||
}).register('editChecklistItemForm');
|
}).register('editChecklistItemForm');
|
||||||
|
|
||||||
Template.checklistItemDetail.helpers({
|
Template.checklistItemDetail.helpers({
|
||||||
canModifyCard() {
|
|
||||||
return (
|
|
||||||
Meteor.user() &&
|
|
||||||
Meteor.user().isBoardMember() &&
|
|
||||||
!Meteor.user().isCommentOnly() &&
|
|
||||||
!Meteor.user().isWorker()
|
|
||||||
);
|
|
||||||
},
|
|
||||||
hideCheckedItems() {
|
hideCheckedItems() {
|
||||||
const user = Meteor.user();
|
const user = Meteor.user();
|
||||||
if (user) return user.hasHideCheckedItems();
|
if (user) return user.hasHideCheckedItems();
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,3 @@
|
||||||
BlazeComponent.extendComponent({
|
|
||||||
canModifyCard() {
|
|
||||||
return (
|
|
||||||
Meteor.user() &&
|
|
||||||
Meteor.user().isBoardMember() &&
|
|
||||||
!Meteor.user().isCommentOnly() &&
|
|
||||||
!Meteor.user().isWorker()
|
|
||||||
);
|
|
||||||
},
|
|
||||||
}).register('subtaskDetail');
|
|
||||||
|
|
||||||
BlazeComponent.extendComponent({
|
BlazeComponent.extendComponent({
|
||||||
addSubtask(event) {
|
addSubtask(event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
@ -70,15 +59,6 @@ BlazeComponent.extendComponent({
|
||||||
textarea.focus();
|
textarea.focus();
|
||||||
},
|
},
|
||||||
|
|
||||||
canModifyCard() {
|
|
||||||
return (
|
|
||||||
Meteor.user() &&
|
|
||||||
Meteor.user().isBoardMember() &&
|
|
||||||
!Meteor.user().isCommentOnly() &&
|
|
||||||
!Meteor.user().isWorker()
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
deleteSubtask() {
|
deleteSubtask() {
|
||||||
const subtask = this.currentData().subtask;
|
const subtask = this.currentData().subtask;
|
||||||
if (subtask && subtask._id) {
|
if (subtask && subtask._id) {
|
||||||
|
|
@ -117,17 +97,6 @@ BlazeComponent.extendComponent({
|
||||||
},
|
},
|
||||||
}).register('subtasks');
|
}).register('subtasks');
|
||||||
|
|
||||||
Template.subtaskItemDetail.helpers({
|
|
||||||
canModifyCard() {
|
|
||||||
return (
|
|
||||||
Meteor.user() &&
|
|
||||||
Meteor.user().isBoardMember() &&
|
|
||||||
!Meteor.user().isCommentOnly() &&
|
|
||||||
!Meteor.user().isWorker()
|
|
||||||
);
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
BlazeComponent.extendComponent({
|
BlazeComponent.extendComponent({
|
||||||
// ...
|
// ...
|
||||||
}).register('subtaskItemDetail');
|
}).register('subtaskItemDetail');
|
||||||
|
|
|
||||||
|
|
@ -42,3 +42,11 @@ Blaze.registerHelper('moment', (...args) => {
|
||||||
const [date, format] = args;
|
const [date, format] = args;
|
||||||
return moment(date).format(format);
|
return moment(date).format(format);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Blaze.registerHelper('canModifyCard', () =>
|
||||||
|
Utils.canModifyCard(),
|
||||||
|
);
|
||||||
|
|
||||||
|
Blaze.registerHelper('canModifyBoard', () =>
|
||||||
|
Utils.canModifyBoard(),
|
||||||
|
);
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,25 @@ Utils = {
|
||||||
const ret = Cards.findOne(cardId);
|
const ret = Cards.findOne(cardId);
|
||||||
return ret;
|
return ret;
|
||||||
},
|
},
|
||||||
|
canModifyCard() {
|
||||||
|
const currentUser = Meteor.user();
|
||||||
|
const ret = (
|
||||||
|
currentUser &&
|
||||||
|
currentUser.isBoardMember() &&
|
||||||
|
!currentUser.isCommentOnly() &&
|
||||||
|
!currentUser.isWorker()
|
||||||
|
);
|
||||||
|
return ret;
|
||||||
|
},
|
||||||
|
canModifyBoard() {
|
||||||
|
const currentUser = Meteor.user();
|
||||||
|
const ret = (
|
||||||
|
currentUser &&
|
||||||
|
currentUser.isBoardMember() &&
|
||||||
|
!currentUser.isCommentOnly()
|
||||||
|
);
|
||||||
|
return ret;
|
||||||
|
},
|
||||||
reload() {
|
reload() {
|
||||||
// we move all window.location.reload calls into this function
|
// we move all window.location.reload calls into this function
|
||||||
// so we can disable it when running tests.
|
// so we can disable it when running tests.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue