mirror of
https://github.com/wekan/wekan.git
synced 2025-04-22 04:57:07 -04:00
Merge branch 'master' of https://github.com/Emile840/wekan into Emile840-master
This commit is contained in:
commit
ea57864bcc
3 changed files with 138 additions and 8 deletions
|
@ -43,6 +43,13 @@ BlazeComponent.extendComponent({
|
|||
this.calculateNextPeak();
|
||||
|
||||
Meteor.subscribe('unsaved-edits');
|
||||
|
||||
// this.findUsersOptions = new ReactiveVar({});
|
||||
// this.page = new ReactiveVar(1);
|
||||
// this.autorun(() => {
|
||||
// const limitUsers = this.page.get() * Number.MAX_SAFE_INTEGER;
|
||||
// this.subscribe('people', this.findUsersOptions.get(), limitUsers, () => {});
|
||||
// });
|
||||
},
|
||||
|
||||
isWatching() {
|
||||
|
@ -668,7 +675,19 @@ Template.editCardTitleForm.onRendered(function () {
|
|||
});
|
||||
|
||||
Template.cardMembersPopup.onCreated(function () {
|
||||
const members = Boards.findOne(Session.get('currentBoard')).activeMembers();
|
||||
let currBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
let members = currBoard.activeMembers();
|
||||
|
||||
// let query = {
|
||||
// "teams.teamId": { $in: currBoard.teams.map(t => t.teamId) },
|
||||
// };
|
||||
|
||||
// let boardTeamUsers = Users.find(query, {
|
||||
// sort: { sort: 1 },
|
||||
// });
|
||||
|
||||
// members = currBoard.activeMembers2(members, boardTeamUsers);
|
||||
|
||||
this.members = new ReactiveVar(members);
|
||||
});
|
||||
|
||||
|
@ -686,7 +705,18 @@ Template.cardMembersPopup.helpers({
|
|||
});
|
||||
|
||||
const filterMembers = (filterTerm) => {
|
||||
let members = Boards.findOne(Session.get('currentBoard')).activeMembers();
|
||||
let currBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
let members = currBoard.activeMembers();
|
||||
|
||||
// let query = {
|
||||
// "teams.teamId": { $in: currBoard.teams.map(t => t.teamId) },
|
||||
// };
|
||||
|
||||
// let boardTeamUsers = Users.find(query, {
|
||||
// sort: { sort: 1 },
|
||||
// });
|
||||
|
||||
// members = currBoard.activeMembers2(members, boardTeamUsers);
|
||||
|
||||
if (filterTerm) {
|
||||
members = members
|
||||
|
@ -695,7 +725,8 @@ const filterMembers = (filterTerm) => {
|
|||
user: Users.findOne(member.userId)
|
||||
}))
|
||||
.filter(({ user }) =>
|
||||
user.profile.fullname.toLowerCase().indexOf(filterTerm.toLowerCase()) !== -1)
|
||||
(user.profile.fullname !== undefined && user.profile.fullname.toLowerCase().indexOf(filterTerm.toLowerCase()) !== -1)
|
||||
|| user.profile.fullname === undefined && user.profile.username !== undefined && user.profile.username.toLowerCase().indexOf(filterTerm.toLowerCase()) !== -1)
|
||||
.map(({ member }) => member);
|
||||
}
|
||||
return members;
|
||||
|
@ -1623,7 +1654,19 @@ EscapeActions.register(
|
|||
);
|
||||
|
||||
Template.cardAssigneesPopup.onCreated(function () {
|
||||
const members = Boards.findOne(Session.get('currentBoard')).activeMembers();
|
||||
let currBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
let members = currBoard.activeMembers();
|
||||
|
||||
// let query = {
|
||||
// "teams.teamId": { $in: currBoard.teams.map(t => t.teamId) },
|
||||
// };
|
||||
|
||||
// let boardTeamUsers = Users.find(query, {
|
||||
// sort: { sort: 1 },
|
||||
// });
|
||||
|
||||
// members = currBoard.activeMembers2(members, boardTeamUsers);
|
||||
|
||||
this.members = new ReactiveVar(members);
|
||||
});
|
||||
|
||||
|
|
|
@ -1392,6 +1392,13 @@ BlazeComponent.extendComponent({
|
|||
const limitTeams = this.page.get() * Number.MAX_SAFE_INTEGER;
|
||||
this.subscribe('team', this.findOrgsOptions.get(), limitTeams, () => {});
|
||||
});
|
||||
|
||||
this.findUsersOptions = new ReactiveVar({});
|
||||
this.userPage = new ReactiveVar(1);
|
||||
this.autorun(() => {
|
||||
const limitUsers = this.userPage.get() * Number.MAX_SAFE_INTEGER;
|
||||
this.subscribe('people', this.findUsersOptions.get(), limitUsers, () => {});
|
||||
});
|
||||
},
|
||||
|
||||
onRendered() {
|
||||
|
@ -1436,7 +1443,35 @@ BlazeComponent.extendComponent({
|
|||
})
|
||||
|
||||
if (selectedTeamId != "-1") {
|
||||
Meteor.call('setBoardTeams', boardTeams, currentBoard._id);
|
||||
let members = currentBoard.members;
|
||||
|
||||
let query = {
|
||||
"teams.teamId": { $in: boardTeams.map(t => t.teamId) },
|
||||
};
|
||||
|
||||
const boardTeamUsers = Users.find(query, {
|
||||
sort: { sort: 1 },
|
||||
});
|
||||
|
||||
if(boardTeams !== undefined && boardTeams.length > 0){
|
||||
let index;
|
||||
if(boardTeamUsers && boardTeamUsers.count() > 0){
|
||||
boardTeamUsers.forEach((u) => {
|
||||
index = members.findIndex(function(m){ return m.userId == u._id});
|
||||
if(index == -1){
|
||||
members.push({
|
||||
"isActive": true,
|
||||
"isAdmin": u.isAdmin !== undefined ? u.isAdmin : false,
|
||||
"isCommentOnly" : false,
|
||||
"isNoComments" : false,
|
||||
"userId": u._id,
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Meteor.call('setBoardTeams', boardTeams, members, currentBoard._id);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1465,6 +1500,13 @@ BlazeComponent.extendComponent({
|
|||
const limitTeams = this.page.get() * Number.MAX_SAFE_INTEGER;
|
||||
this.subscribe('team', this.findOrgsOptions.get(), limitTeams, () => {});
|
||||
});
|
||||
|
||||
this.findUsersOptions = new ReactiveVar({});
|
||||
this.userPage = new ReactiveVar(1);
|
||||
this.autorun(() => {
|
||||
const limitUsers = this.userPage.get() * Number.MAX_SAFE_INTEGER;
|
||||
this.subscribe('people', this.findUsersOptions.get(), limitUsers, () => {});
|
||||
});
|
||||
},
|
||||
|
||||
onRendered() {
|
||||
|
@ -1501,7 +1543,28 @@ BlazeComponent.extendComponent({
|
|||
}
|
||||
}
|
||||
|
||||
Meteor.call('setBoardTeams', boardTeams, currentBoard._id);
|
||||
let members = currentBoard.members;
|
||||
let query = {
|
||||
"teams.teamId": stringTeamId
|
||||
};
|
||||
|
||||
const boardTeamUsers = Users.find(query, {
|
||||
sort: { sort: 1 },
|
||||
});
|
||||
|
||||
if(currentBoard.teams !== undefined && currentBoard.teams.length > 0){
|
||||
let index;
|
||||
if(boardTeamUsers && boardTeamUsers.count() > 0){
|
||||
boardTeamUsers.forEach((u) => {
|
||||
index = members.findIndex(function(m){ return m.userId == u._id});
|
||||
if(index !== -1 && (u.isAdmin === undefined || u.isAdmin == false)){
|
||||
members.splice(index, 1);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Meteor.call('setBoardTeams', boardTeams, members, currentBoard._id);
|
||||
|
||||
Popup.close();
|
||||
},
|
||||
|
|
|
@ -749,10 +749,32 @@ Boards.helpers({
|
|||
return Activities.find({ boardId: this._id }, { sort: { createdAt: -1 } });
|
||||
},
|
||||
|
||||
activeMembers() {
|
||||
activeMembers(){
|
||||
return _.where(this.members, { isActive: true });
|
||||
},
|
||||
|
||||
activeMembers2(members, boardTeamUsers) {
|
||||
let allMembers = members;
|
||||
if(this.teams !== undefined && this.teams.length > 0){
|
||||
let index;
|
||||
if(boardTeamUsers && boardTeamUsers.count() > 0){
|
||||
boardTeamUsers.forEach((u) => {
|
||||
index = allMembers.findIndex(function(m){ return m.userId == u._id});
|
||||
if(index == -1){
|
||||
allMembers.push({
|
||||
"isActive": true,
|
||||
"isAdmin": u.isAdmin !== undefined ? u.isAdmin : false,
|
||||
"isCommentOnly" : false,
|
||||
"isNoComments" : false,
|
||||
"userId": u._id,
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return allMembers;
|
||||
},
|
||||
|
||||
activeOrgs() {
|
||||
return _.where(this.orgs, { isActive: true });
|
||||
|
@ -1567,11 +1589,13 @@ if (Meteor.isServer) {
|
|||
},
|
||||
});
|
||||
},
|
||||
setBoardTeams(boardTeamsArray, currBoardId){
|
||||
setBoardTeams(boardTeamsArray, membersArray, currBoardId){
|
||||
check(boardTeamsArray, Array);
|
||||
check(membersArray, Array);
|
||||
check(currBoardId, String);
|
||||
Boards.update(currBoardId, {
|
||||
$set: {
|
||||
members: membersArray,
|
||||
teams: boardTeamsArray,
|
||||
},
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue