wekan/client/components/lists/listHeader.js
Maxime Quandalle b3851817ec Enforce a consistent ES6 coding style
Replace the old (and broken) jshint + jscsrc by eslint and configure
it to support some of the ES6 features.

The command `eslint` currently has one error which is a bug that was
discovered by its static analysis and should be fixed (usage of a
dead object).
2015-09-03 23:12:46 +02:00

78 lines
1.8 KiB
JavaScript

BlazeComponent.extendComponent({
template() {
return 'listHeader';
},
editTitle(evt) {
evt.preventDefault();
const form = this.componentChildren('inlinedForm')[0];
const newTitle = form.getValue();
if ($.trim(newTitle)) {
Lists.update(this.currentData()._id, {
$set: {
title: newTitle,
},
});
}
},
events() {
return [{
'click .js-open-list-menu': Popup.open('listAction'),
submit: this.editTitle,
}];
},
}).register('listHeader');
Template.listActionPopup.events({
'click .js-add-card'() {
const listDom = document.getElementById(`js-list-${this._id}`);
const listComponent = BlazeComponent.getComponentForElement(listDom);
listComponent.openForm({ position: 'top' });
Popup.close();
},
'click .js-list-subscribe'() {},
'click .js-select-cards'() {
const cardIds = Cards.find(
{listId: this._id},
{fields: { _id: 1 }}
).map((card) => card._id);
MultiSelection.add(cardIds);
Popup.close();
},
'click .js-move-cards': Popup.open('listMoveCards'),
'click .js-archive-cards': Popup.afterConfirm('listArchiveCards', () => {
Cards.find({listId: this._id}).forEach((card) => {
Cards.update(card._id, {
$set: {
archived: true,
},
});
});
Popup.close();
}),
'click .js-close-list'(evt) {
evt.preventDefault();
Lists.update(this._id, {
$set: {
archived: true,
},
});
Popup.close();
},
});
Template.listMoveCardsPopup.events({
'click .js-select-list'() {
const fromList = Template.parentData(2).data._id;
const toList = this._id;
Cards.find({ listId: fromList }).forEach((card) => {
Cards.update(card._id, {
$set: {
listId: toList,
},
});
});
Popup.close();
},
});