The Open Source kanban (built with Meteor). Keep variable/table/field names camelCase. For translations, only add Pull Request changes to wekan/i18n/en.i18n.json , other translations are done at https://transifex.com/wekan/wekan only.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
InvitationCodes = new Mongo . Collection ( 'invitation_codes' ) ;
InvitationCodes . attachSchema (
new SimpleSchema ( {
code : {
type : String ,
} ,
email : {
type : String ,
unique : true ,
regEx : SimpleSchema . RegEx . Email ,
} ,
createdAt : {
type : Date ,
denyUpdate : false ,
optional : true ,
// eslint-disable-next-line consistent-return
autoValue ( ) {
if ( this . isInsert ) {
return new Date ( ) ;
} else if ( this . isUpsert ) {
return { $setOnInsert : new Date ( ) } ;
} else {
this . unset ( ) ;
}
} ,
} ,
modifiedAt : {
type : Date ,
denyUpdate : false ,
// eslint-disable-next-line consistent-return
autoValue ( ) {
if ( this . isInsert || this . isUpsert || this . isUpdate ) {
return new Date ( ) ;
} else {
this . unset ( ) ;
}
} ,
} ,
// always be the admin if only one admin
authorId : {
type : String ,
} ,
boardsToBeInvited : {
type : [ String ] ,
optional : true ,
} ,
valid : {
type : Boolean ,
defaultValue : true ,
} ,
} ) ,
) ;
InvitationCodes . helpers ( {
author ( ) {
return Users . findOne ( this . authorId ) ;
} ,
} ) ;
// InvitationCodes.before.insert((userId, doc) => {
// doc.createdAt = new Date();
// doc.authorId = userId;
// });
if ( Meteor . isServer ) {
Meteor . startup ( ( ) => {
InvitationCodes . _collection . _ensureIndex ( { modifiedAt : - 1 } ) ;
} ) ;
Boards . deny ( {
fetch : [ 'members' ] ,
} ) ;
}
export default InvitationCodes ;