The communications platform that puts data protection first.
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.
Rocket.Chat/packages/rocketchat-channel-settings/client/lib/ChannelSettings.js

29 lines
791 B

9 years ago
RocketChat.ChannelSettings = new class {
constructor() {
this.options = new ReactiveVar({});
}
addOption(config) {
9 years ago
if (config == null || config.id == null) {
9 years ago
return false;
}
return Tracker.nonreactive(() => {
const opts = this.options.get();
opts[config.id] = config;
return this.options.set(opts);
});
}
getOptions(currentData, group) {
const allOptions = _.toArray(this.options.get());
const allowedOptions = _.compact(_.map(allOptions, function(option) {
9 years ago
if (option.validation == null || option.validation()) {
option.data = Object.assign({}, option.data, currentData);
9 years ago
return option;
}
})).filter(function(option) {
return !group || !option.group || option.group.includes(group);
});
return _.sortBy(allowedOptions, 'order');
}
};