summaryrefslogtreecommitdiffstats
path: root/client/components/lists
diff options
context:
space:
mode:
authorLauri Ojansivu <x@xet7.org>2019-06-29 07:47:57 -0400
committerLauri Ojansivu <x@xet7.org>2019-06-29 07:47:57 -0400
commitb84dc20ded0375d9ab14ec05c78b737398d76b83 (patch)
treec3b91b3657299c779e941a1257df17bb0eade866 /client/components/lists
parent100288b3e1bce882ab9923a5bff7b5f620f33ee8 (diff)
parent3eb4d2c341b712268bd321173909e0a7b19a88c9 (diff)
downloadwekan-b84dc20ded0375d9ab14ec05c78b737398d76b83.tar.gz
wekan-b84dc20ded0375d9ab14ec05c78b737398d76b83.tar.bz2
wekan-b84dc20ded0375d9ab14ec05c78b737398d76b83.zip
Merge branch 'linting' of https://github.com/justinr1234/wekan into justinr1234-linting
Diffstat (limited to 'client/components/lists')
-rw-r--r--client/components/lists/list.js42
-rw-r--r--client/components/lists/listBody.js546
-rw-r--r--client/components/lists/listHeader.js142
3 files changed, 436 insertions, 294 deletions
diff --git a/client/components/lists/list.js b/client/components/lists/list.js
index ea0068eb..c2b39be9 100644
--- a/client/components/lists/list.js
+++ b/client/components/lists/list.js
@@ -21,14 +21,18 @@ BlazeComponent.extendComponent({
const boardComponent = this.parentComponent().parentComponent();
function userIsMember() {
- return Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
+ return (
+ Meteor.user() &&
+ Meteor.user().isBoardMember() &&
+ !Meteor.user().isCommentOnly()
+ );
}
const itemsSelector = '.js-minicard:not(.placeholder, .js-card-composer)';
const $cards = this.$('.js-minicards');
- if(window.matchMedia('(max-width: 1199px)').matches) {
- $( '.js-minicards' ).sortable({
+ if (window.matchMedia('(max-width: 1199px)').matches) {
+ $('.js-minicards').sortable({
handle: '.handle',
});
}
@@ -42,10 +46,16 @@ BlazeComponent.extendComponent({
if (MultiSelection.isActive()) {
const andNOthers = $cards.find('.js-minicard.is-checked').length - 1;
if (andNOthers > 0) {
- helper.append($(Blaze.toHTML(HTML.DIV(
- { 'class': 'and-n-other' },
- TAPi18n.__('and-n-other-card', { count: andNOthers })
- ))));
+ helper.append(
+ $(
+ Blaze.toHTML(
+ HTML.DIV(
+ { class: 'and-n-other' },
+ TAPi18n.__('and-n-other-card', { count: andNOthers }),
+ ),
+ ),
+ ),
+ );
}
}
return helper;
@@ -70,9 +80,16 @@ BlazeComponent.extendComponent({
const currentBoard = Boards.findOne(Session.get('currentBoard'));
let swimlaneId = '';
const boardView = (Meteor.user().profile || {}).boardView;
- if (boardView === 'board-view-swimlanes' || currentBoard.isTemplatesBoard())
+ if (
+ boardView === 'board-view-swimlanes' ||
+ currentBoard.isTemplatesBoard()
+ )
swimlaneId = Blaze.getData(ui.item.parents('.swimlane').get(0))._id;
- else if ((boardView === 'board-view-lists') || (boardView === 'board-view-cal') || !boardView)
+ else if (
+ boardView === 'board-view-lists' ||
+ boardView === 'board-view-cal' ||
+ !boardView
+ )
swimlaneId = currentBoard.getDefaultSwimline()._id;
// Normally the jquery-ui sortable library moves the dragged DOM element
@@ -86,7 +103,12 @@ BlazeComponent.extendComponent({
if (MultiSelection.isActive()) {
Cards.find(MultiSelection.getMongoSelector()).forEach((card, i) => {
- card.move(currentBoard._id, swimlaneId, listId, sortIndex.base + i * sortIndex.increment);
+ card.move(
+ currentBoard._id,
+ swimlaneId,
+ listId,
+ sortIndex.base + i * sortIndex.increment,
+ );
});
} else {
const cardDomElement = ui.item.get(0);
diff --git a/client/components/lists/listBody.js b/client/components/lists/listBody.js
index bce350dd..7d9e358b 100644
--- a/client/components/lists/listBody.js
+++ b/client/components/lists/listBody.js
@@ -16,7 +16,7 @@ BlazeComponent.extendComponent({
options.position = options.position || 'top';
const forms = this.childComponents('inlinedForm');
- let form = forms.find((component) => {
+ let form = forms.find(component => {
return component.data().position === options.position;
});
if (!form && forms.length > 0) {
@@ -52,11 +52,12 @@ BlazeComponent.extendComponent({
let cardType = 'cardType-card';
if (title) {
if (board.isTemplatesBoard()) {
- swimlaneId = this.parentComponent().parentComponent().data()._id; // Always swimlanes view
+ swimlaneId = this.parentComponent()
+ .parentComponent()
+ .data()._id; // Always swimlanes view
const swimlane = Swimlanes.findOne(swimlaneId);
// If this is the card templates swimlane, insert a card template
- if (swimlane.isCardTemplatesSwimlane())
- cardType = 'template-card';
+ if (swimlane.isCardTemplatesSwimlane()) cardType = 'template-card';
// If this is the board templates swimlane, insert a board template and a linked card
else if (swimlane.isBoardTemplatesSwimlane()) {
linkedId = Boards.insert({
@@ -71,8 +72,14 @@ BlazeComponent.extendComponent({
cardType = 'cardType-linkedBoard';
}
} else if (boardView === 'board-view-swimlanes')
- swimlaneId = this.parentComponent().parentComponent().data()._id;
- else if ((boardView === 'board-view-lists') || (boardView === 'board-view-cal') || !boardView)
+ swimlaneId = this.parentComponent()
+ .parentComponent()
+ .data()._id;
+ else if (
+ boardView === 'board-view-lists' ||
+ boardView === 'board-view-cal' ||
+ !boardView
+ )
swimlaneId = board.getDefaultSwimline()._id;
const _id = Cards.insert({
@@ -91,7 +98,9 @@ BlazeComponent.extendComponent({
// if the displayed card count is less than the total cards in the list,
// we need to increment the displayed card count to prevent the spinner
// to appear
- const cardCount = this.data().cards(this.idOrNull(swimlaneId)).count();
+ const cardCount = this.data()
+ .cards(this.idOrNull(swimlaneId))
+ .count();
if (this.cardlimit.get() < cardCount) {
this.cardlimit.set(this.cardlimit.get() + InfiniteScrollIter);
}
@@ -149,8 +158,12 @@ BlazeComponent.extendComponent({
idOrNull(swimlaneId) {
const currentUser = Meteor.user();
- if ((currentUser.profile || {}).boardView === 'board-view-swimlanes' ||
- this.data().board().isTemplatesBoard())
+ if (
+ (currentUser.profile || {}).boardView === 'board-view-swimlanes' ||
+ this.data()
+ .board()
+ .isTemplatesBoard()
+ )
return swimlaneId;
return undefined;
},
@@ -161,8 +174,7 @@ BlazeComponent.extendComponent({
listId: this.currentData()._id,
archived: false,
};
- if (swimlaneId)
- selector.swimlaneId = swimlaneId;
+ if (swimlaneId) selector.swimlaneId = swimlaneId;
return Cards.find(Filter.mongoSelector(selector), {
sort: ['sort'],
limit,
@@ -175,21 +187,32 @@ BlazeComponent.extendComponent({
},
canSeeAddCard() {
- return !this.reachedWipLimit() && Meteor.user() && Meteor.user().isBoardMember() && !Meteor.user().isCommentOnly();
+ return (
+ !this.reachedWipLimit() &&
+ Meteor.user() &&
+ Meteor.user().isBoardMember() &&
+ !Meteor.user().isCommentOnly()
+ );
},
reachedWipLimit() {
const list = Template.currentData();
- return !list.getWipLimit('soft') && list.getWipLimit('enabled') && list.getWipLimit('value') <= list.cards().count();
+ return (
+ !list.getWipLimit('soft') &&
+ list.getWipLimit('enabled') &&
+ list.getWipLimit('value') <= list.cards().count()
+ );
},
events() {
- return [{
- 'click .js-minicard': this.clickOnMiniCard,
- 'click .js-toggle-multi-selection': this.toggleMultiSelection,
- 'click .open-minicard-composer': this.scrollToBottom,
- submit: this.addCard,
- }];
+ return [
+ {
+ 'click .js-minicard': this.clickOnMiniCard,
+ 'click .js-toggle-multi-selection': this.toggleMultiSelection,
+ 'click .open-minicard-composer': this.scrollToBottom,
+ submit: this.addCard,
+ },
+ ];
},
}).register('listBody');
@@ -212,10 +235,15 @@ BlazeComponent.extendComponent({
const currentBoardId = Session.get('currentBoard');
arr = [];
- _.forEach(Boards.findOne(currentBoardId).customFields().fetch(), function(field){
- if(field.automaticallyOnCard)
- arr.push({_id: field._id, value: null});
- });
+ _.forEach(
+ Boards.findOne(currentBoardId)
+ .customFields()
+ .fetch(),
+ function(field) {
+ if (field.automaticallyOnCard)
+ arr.push({ _id: field._id, value: null });
+ },
+ );
this.customFields.set(arr);
},
@@ -227,7 +255,7 @@ BlazeComponent.extendComponent({
getLabels() {
const currentBoardId = Session.get('currentBoard');
- return Boards.findOne(currentBoardId).labels.filter((label) => {
+ return Boards.findOne(currentBoardId).labels.filter(label => {
return this.labels.get().indexOf(label._id) > -1;
});
},
@@ -257,18 +285,20 @@ BlazeComponent.extendComponent({
}
BlazeComponent.getComponentForElement(nextList).openForm({
- position:this.data().position,
+ position: this.data().position,
});
}
},
events() {
- return [{
- keydown: this.pressKey,
- 'click .js-link': Popup.open('linkCard'),
- 'click .js-search': Popup.open('searchElement'),
- 'click .js-card-template': Popup.open('searchElement'),
- }];
+ return [
+ {
+ keydown: this.pressKey,
+ 'click .js-link': Popup.open('linkCard'),
+ 'click .js-search': Popup.open('searchElement'),
+ 'click .js-card-template': Popup.open('searchElement'),
+ },
+ ];
},
onRendered() {
@@ -277,66 +307,75 @@ BlazeComponent.extendComponent({
autosize($textarea);
- $textarea.escapeableTextComplete([
- // User mentions
- {
- match: /\B@([\w.]*)$/,
- search(term, callback) {
- const currentBoard = Boards.findOne(Session.get('currentBoard'));
- callback($.map(currentBoard.activeMembers(), (member) => {
- const user = Users.findOne(member.userId);
- return user.username.indexOf(term) === 0 ? user : null;
- }));
- },
- template(user) {
- return user.username;
- },
- replace(user) {
- toggleValueInReactiveArray(editor.members, user._id);
- return '';
+ $textarea.escapeableTextComplete(
+ [
+ // User mentions
+ {
+ match: /\B@([\w.]*)$/,
+ search(term, callback) {
+ const currentBoard = Boards.findOne(Session.get('currentBoard'));
+ callback(
+ $.map(currentBoard.activeMembers(), member => {
+ const user = Users.findOne(member.userId);
+ return user.username.indexOf(term) === 0 ? user : null;
+ }),
+ );
+ },
+ template(user) {
+ return user.username;
+ },
+ replace(user) {
+ toggleValueInReactiveArray(editor.members, user._id);
+ return '';
+ },
+ index: 1,
},
- index: 1,
- },
- // Labels
- {
- match: /\B#(\w*)$/,
- search(term, callback) {
- const currentBoard = Boards.findOne(Session.get('currentBoard'));
- callback($.map(currentBoard.labels, (label) => {
- if (label.name.indexOf(term) > -1 ||
- label.color.indexOf(term) > -1) {
- return label;
- }
- return null;
- }));
- },
- template(label) {
- return Blaze.toHTMLWithData(Template.autocompleteLabelLine, {
- hasNoName: !label.name,
- colorName: label.color,
- labelName: label.name || label.color,
- });
+ // Labels
+ {
+ match: /\B#(\w*)$/,
+ search(term, callback) {
+ const currentBoard = Boards.findOne(Session.get('currentBoard'));
+ callback(
+ $.map(currentBoard.labels, label => {
+ if (
+ label.name.indexOf(term) > -1 ||
+ label.color.indexOf(term) > -1
+ ) {
+ return label;
+ }
+ return null;
+ }),
+ );
+ },
+ template(label) {
+ return Blaze.toHTMLWithData(Template.autocompleteLabelLine, {
+ hasNoName: !label.name,
+ colorName: label.color,
+ labelName: label.name || label.color,
+ });
+ },
+ replace(label) {
+ toggleValueInReactiveArray(editor.labels, label._id);
+ return '';
+ },
+ index: 1,
},
- replace(label) {
- toggleValueInReactiveArray(editor.labels, label._id);
- return '';
+ ],
+ {
+ // When the autocomplete menu is shown we want both a press of both `Tab`
+ // or `Enter` to validation the auto-completion. We also need to stop the
+ // event propagation to prevent the card from submitting (on `Enter`) or
+ // going on the next column (on `Tab`).
+ onKeydown(evt, commands) {
+ if (evt.keyCode === 9 || evt.keyCode === 13) {
+ evt.stopPropagation();
+ return commands.KEY_ENTER;
+ }
+ return null;
},
- index: 1,
},
- ], {
- // When the autocomplete menu is shown we want both a press of both `Tab`
- // or `Enter` to validation the auto-completion. We also need to stop the
- // event propagation to prevent the card from submitting (on `Enter`) or
- // going on the next column (on `Tab`).
- onKeydown(evt, commands) {
- if (evt.keyCode === 9 || evt.keyCode === 13) {
- evt.stopPropagation();
- return commands.KEY_ENTER;
- }
- return null;
- },
- });
+ );
},
}).register('addCardForm');
@@ -354,24 +393,29 @@ BlazeComponent.extendComponent({
const list = $(Popup._getTopStack().openerElement).closest('.js-list');
this.listId = Blaze.getData(list[0])._id;
// Swimlane where to insert card
- const swimlane = $(Popup._getTopStack().openerElement).closest('.js-swimlane');
+ const swimlane = $(Popup._getTopStack().openerElement).closest(
+ '.js-swimlane',
+ );
this.swimlaneId = '';
const boardView = (Meteor.user().profile || {}).boardView;
if (boardView === 'board-view-swimlanes')
this.swimlaneId = Blaze.getData(swimlane[0])._id;
else if (boardView === 'board-view-lists' || !boardView)
- this.swimlaneId = Swimlanes.findOne({boardId: this.boardId})._id;
+ this.swimlaneId = Swimlanes.findOne({ boardId: this.boardId })._id;
},
boards() {
- const boards = Boards.find({
- archived: false,
- 'members.userId': Meteor.userId(),
- _id: {$ne: Session.get('currentBoard')},
- type: 'board',
- }, {
- sort: ['title'],
- });
+ const boards = Boards.find(
+ {
+ archived: false,
+ 'members.userId': Meteor.userId(),
+ _id: { $ne: Session.get('currentBoard') },
+ type: 'board',
+ },
+ {
+ sort: ['title'],
+ },
+ );
return boards;
},
@@ -379,7 +423,7 @@ BlazeComponent.extendComponent({
if (!this.selectedBoardId.get()) {
return [];
}
- const swimlanes = Swimlanes.find({boardId: this.selectedBoardId.get()});
+ const swimlanes = Swimlanes.find({ boardId: this.selectedBoardId.get() });
if (swimlanes.count())
this.selectedSwimlaneId.set(swimlanes.fetch()[0]._id);
return swimlanes;
@@ -389,9 +433,8 @@ BlazeComponent.extendComponent({
if (!this.selectedBoardId.get()) {
return [];
}
- const lists = Lists.find({boardId: this.selectedBoardId.get()});
- if (lists.count())
- this.selectedListId.set(lists.fetch()[0]._id);
+ const lists = Lists.find({ boardId: this.selectedBoardId.get() });
+ if (lists.count()) this.selectedListId.set(lists.fetch()[0]._id);
return lists;
},
@@ -399,73 +442,84 @@ BlazeComponent.extendComponent({
if (!this.board) {
return [];
}
- const ownCardsIds = this.board.cards().map((card) => { return card.linkedId || card._id; });
+ const ownCardsIds = this.board.cards().map(card => {
+ return card.linkedId || card._id;
+ });
return Cards.find({
boardId: this.selectedBoardId.get(),
swimlaneId: this.selectedSwimlaneId.get(),
listId: this.selectedListId.get(),
archived: false,
- linkedId: {$nin: ownCardsIds},
- _id: {$nin: ownCardsIds},
- type: {$nin: ['template-card']},
+ linkedId: { $nin: ownCardsIds },
+ _id: { $nin: ownCardsIds },
+ type: { $nin: ['template-card'] },
});
},
events() {
- return [{
- 'change .js-select-boards'(evt) {
- subManager.subscribe('board', $(evt.currentTarget).val(), false);
- this.selectedBoardId.set($(evt.currentTarget).val());
- },
- 'change .js-select-swimlanes'(evt) {
- this.selectedSwimlaneId.set($(evt.currentTarget).val());
- },
- 'change .js-select-lists'(evt) {
- this.selectedListId.set($(evt.currentTarget).val());
- },
- 'click .js-done' (evt) {
- // LINK CARD
- evt.stopPropagation();
- evt.preventDefault();
- const linkedId = $('.js-select-cards option:selected').val();
- if (!linkedId) {
+ return [
+ {
+ 'change .js-select-boards'(evt) {
+ subManager.subscribe('board', $(evt.currentTarget).val(), false);
+ this.selectedBoardId.set($(evt.currentTarget).val());
+ },
+ 'change .js-select-swimlanes'(evt) {
+ this.selectedSwimlaneId.set($(evt.currentTarget).val());
+ },
+ 'change .js-select-lists'(evt) {
+ this.selectedListId.set($(evt.currentTarget).val());
+ },
+ 'click .js-done'(evt) {
+ // LINK CARD
+ evt.stopPropagation();
+ evt.preventDefault();
+ const linkedId = $('.js-select-cards option:selected').val();
+ if (!linkedId) {
+ Popup.close();
+ return;
+ }
+ const _id = Cards.insert({
+ title: $('.js-select-cards option:selected').text(), //dummy
+ listId: this.listId,
+ swimlaneId: this.swimlaneId,
+ boardId: this.boardId,
+ sort: Lists.findOne(this.listId)
+ .cards()
+ .count(),
+ type: 'cardType-linkedCard',
+ linkedId,
+ });
+ Filter.addException(_id);
Popup.close();
- return;
- }
- const _id = Cards.insert({
- title: $('.js-select-cards option:selected').text(), //dummy
- listId: this.listId,
- swimlaneId: this.swimlaneId,
- boardId: this.boardId,
- sort: Lists.findOne(this.listId).cards().count(),
- type: 'cardType-linkedCard',
- linkedId,
- });
- Filter.addException(_id);
- Popup.close();
- },
- 'click .js-link-board' (evt) {
- //LINK BOARD
- evt.stopPropagation();
- evt.preventDefault();
- const impBoardId = $('.js-select-boards option:selected').val();
- if (!impBoardId || Cards.findOne({linkedId: impBoardId, archived: false})) {
+ },
+ 'click .js-link-board'(evt) {
+ //LINK BOARD
+ evt.stopPropagation();
+ evt.preventDefault();
+ const impBoardId = $('.js-select-boards option:selected').val();
+ if (
+ !impBoardId ||
+ Cards.findOne({ linkedId: impBoardId, archived: false })
+ ) {
+ Popup.close();
+ return;
+ }
+ const _id = Cards.insert({
+ title: $('.js-select-boards option:selected').text(), //dummy
+ listId: this.listId,
+ swimlaneId: this.swimlaneId,
+ boardId: this.boardId,
+ sort: Lists.findOne(this.listId)
+ .cards()
+ .count(),
+ type: 'cardType-linkedBoard',
+ linkedId: impBoardId,
+ });
+ Filter.addException(_id);
Popup.close();
- return;
- }
- const _id = Cards.insert({
- title: $('.js-select-boards option:selected').text(), //dummy
- listId: this.listId,
- swimlaneId: this.swimlaneId,
- boardId: this.boardId,
- sort: Lists.findOne(this.listId).cards().count(),
- type: 'cardType-linkedBoard',
- linkedId: impBoardId,
- });
- Filter.addException(_id);
- Popup.close();
+ },
},
- }];
+ ];
},
}).register('linkCardPopup');
@@ -475,11 +529,20 @@ BlazeComponent.extendComponent({
},
onCreated() {
- this.isCardTemplateSearch = $(Popup._getTopStack().openerElement).hasClass('js-card-template');
- this.isListTemplateSearch = $(Popup._getTopStack().openerElement).hasClass('js-list-template');
- this.isSwimlaneTemplateSearch = $(Popup._getTopStack().openerElement).hasClass('js-open-add-swimlane-menu');
- this.isBoardTemplateSearch = $(Popup._getTopStack().openerElement).hasClass('js-add-board');
- this.isTemplateSearch = this.isCardTemplateSearch ||
+ this.isCardTemplateSearch = $(Popup._getTopStack().openerElement).hasClass(
+ 'js-card-template',
+ );
+ this.isListTemplateSearch = $(Popup._getTopStack().openerElement).hasClass(
+ 'js-list-template',
+ );
+ this.isSwimlaneTemplateSearch = $(
+ Popup._getTopStack().openerElement,
+ ).hasClass('js-open-add-swimlane-menu');
+ this.isBoardTemplateSearch = $(Popup._getTopStack().openerElement).hasClass(
+ 'js-add-board',
+ );
+ this.isTemplateSearch =
+ this.isCardTemplateSearch ||
this.isListTemplateSearch ||
this.isSwimlaneTemplateSearch ||
this.isBoardTemplateSearch;
@@ -491,7 +554,12 @@ BlazeComponent.extendComponent({
board = Boards.findOne({
archived: false,
'members.userId': Meteor.userId(),
- _id: {$nin: [Session.get('currentBoard'), (Meteor.user().profile || {}).templatesBoardId]},
+ _id: {
+ $nin: [
+ Session.get('currentBoard'),
+ (Meteor.user().profile || {}).templatesBoardId,
+ ],
+ },
});
}
if (!board) {
@@ -509,11 +577,12 @@ BlazeComponent.extendComponent({
subManager.subscribe('board', this.boardId, false);
this.swimlaneId = '';
// Swimlane where to insert card
- const swimlane = $(Popup._getTopStack().openerElement).parents('.js-swimlane');
+ const swimlane = $(Popup._getTopStack().openerElement).parents(
+ '.js-swimlane',
+ );
if ((Meteor.user().profile || {}).boardView === 'board-view-swimlanes')
this.swimlaneId = Blaze.getData(swimlane[0])._id;
- else
- this.swimlaneId = Swimlanes.findOne({boardId: this.boardId})._id;
+ else this.swimlaneId = Swimlanes.findOne({ boardId: this.boardId })._id;
// List where to insert card
const list = $(Popup._getTopStack().openerElement).closest('.js-list');
this.listId = Blaze.getData(list[0])._id;
@@ -522,14 +591,17 @@ BlazeComponent.extendComponent({
},
boards() {
- const boards = Boards.find({
- archived: false,
- 'members.userId': Meteor.userId(),
- _id: {$ne: Session.get('currentBoard')},
- type: 'board',
- }, {
- sort: ['title'],
- });
+ const boards = Boards.find(
+ {
+ archived: false,
+ 'members.userId': Meteor.userId(),
+ _id: { $ne: Session.get('currentBoard') },
+ type: 'board',
+ },
+ {
+ sort: ['title'],
+ },
+ );
return boards;
},
@@ -546,7 +618,7 @@ BlazeComponent.extendComponent({
return board.searchSwimlanes(this.term.get());
} else if (this.isBoardTemplateSearch) {
const boards = board.searchBoards(this.term.get());
- boards.forEach((board) => {
+ boards.forEach(board => {
subManager.subscribe('board', board.linkedId, false);
});
return boards;
@@ -556,60 +628,69 @@ BlazeComponent.extendComponent({
},
events() {
- return [{
- 'change .js-select-boards'(evt) {
- subManager.subscribe('board', $(evt.currentTarget).val(), false);
- this.selectedBoardId.set($(evt.currentTarget).val());
- },
- 'submit .js-search-term-form'(evt) {
- evt.preventDefault();
- this.term.set(evt.target.searchTerm.value);
- },
- 'click .js-minicard'(evt) {
- // 0. Common
- const title = $('.js-element-title').val().trim();
- if (!title)
- return;
- const element = Blaze.getData(evt.currentTarget);
- element.title = title;
- let _id = '';
- if (!this.isTemplateSearch || this.isCardTemplateSearch) {
- // Card insertion
- // 1. Common
- element.sort = Lists.findOne(this.listId).cards().count();
- // 1.A From template
- if (this.isTemplateSearch) {
- element.type = 'cardType-card';
- element.linkedId = '';
- _id = element.copy(this.boardId, this.swimlaneId, this.listId);
- // 1.B Linked card
- } else {
- delete element._id;
- element.type = 'cardType-linkedCard';
- element.linkedId = element.linkedId || element._id;
- _id = Cards.insert(element);
+ return [
+ {
+ 'change .js-select-boards'(evt) {
+ subManager.subscribe('board', $(evt.currentTarget).val(), false);
+ this.selectedBoardId.set($(evt.currentTarget).val());
+ },
+ 'submit .js-search-term-form'(evt) {
+ evt.preventDefault();
+ this.term.set(evt.target.searchTerm.value);
+ },
+ 'click .js-minicard'(evt) {
+ // 0. Common
+ const title = $('.js-element-title')
+ .val()
+ .trim();
+ if (!title) return;
+ const element = Blaze.getData(evt.currentTarget);
+ element.title = title;
+ let _id = '';
+ if (!this.isTemplateSearch || this.isCardTemplateSearch) {
+ // Card insertion
+ // 1. Common
+ element.sort = Lists.findOne(this.listId)
+ .cards()
+ .count();
+ // 1.A From template
+ if (this.isTemplateSearch) {
+ element.type = 'cardType-card';
+ element.linkedId = '';
+ _id = element.copy(this.boardId, this.swimlaneId, this.listId);
+ // 1.B Linked card
+ } else {
+ delete element._id;
+ element.type = 'cardType-linkedCard';
+ element.linkedId = element.linkedId || element._id;
+ _id = Cards.insert(element);
+ }
+ Filter.addException(_id);
+ // List insertion
+ } else if (this.isListTemplateSearch) {
+ element.sort = Swimlanes.findOne(this.swimlaneId)
+ .lists()
+ .count();
+ element.type = 'list';
+ _id = element.copy(this.boardId, this.swimlaneId);
+ } else if (this.isSwimlaneTemplateSearch) {
+ element.sort = Boards.findOne(this.boardId)
+ .swimlanes()
+ .count();
+ element.type = 'swimlalne';
+ _id = element.copy(this.boardId);
+ } else if (this.isBoardTemplateSearch) {
+ board = Boards.findOne(element.linkedId);
+ board.sort = Boards.find({ archived: false }).count();
+ board.type = 'board';
+ board.title = element.title;
+ delete board.slug;
+ _id = board.copy();
}
- Filter.addException(_id);
- // List insertion
- } else if (this.isListTemplateSearch) {
- element.sort = Swimlanes.findOne(this.swimlaneId).lists().count();
- element.type = 'list';
- _id = element.copy(this.boardId, this.swimlaneId);
- } else if (this.isSwimlaneTemplateSearch) {
- element.sort = Boards.findOne(this.boardId).swimlanes().count();
- element.type = 'swimlalne';
- _id = element.copy(this.boardId);
- } else if (this.isBoardTemplateSearch) {
- board = Boards.findOne(element.linkedId);
- board.sort = Boards.find({archived: false}).count();
- board.type = 'board';
- board.title = element.title;
- delete board.slug;
- _id = board.copy();
- }
- Popup.close();
+ Popup.close();
+ },
},
- }];
+ ];
},
}).register('searchElementPopup');
@@ -622,15 +703,23 @@ BlazeComponent.extendComponent({
const boardView = (Meteor.user().profile || {}).boardView;
if (boardView === 'board-view-swimlanes')
- this.swimlaneId = this.parentComponent().parentComponent().parentComponent().data()._id;
+ this.swimlaneId = this.parentComponent()
+ .parentComponent()
+ .parentComponent()
+ .data()._id;
},
onRendered() {
this.spinner = this.find('.sk-spinner-list');
this.container = this.$(this.spinner).parents('.js-perfect-scrollbar')[0];
- $(this.container).on(`scroll.spinner_${this.swimlaneId}_${this.listId}`, () => this.updateList());
- $(window).on(`resize.spinner_${this.swimlaneId}_${this.listId}`, () => this.updateList());
+ $(this.container).on(
+ `scroll.spinner_${this.swimlaneId}_${this.listId}`,
+ () => this.updateList(),
+ );
+ $(window).on(`resize.spinner_${this.swimlaneId}_${this.listId}`, () =>
+ this.updateList(),
+ );
this.updateList();
},
@@ -660,5 +749,4 @@ BlazeComponent.extendComponent({
return bottomViewPosition > threshold;
},
-
}).register('spinnerList');
diff --git a/client/components/lists/listHeader.js b/client/components/lists/listHeader.js
index 923d6063..e8a82499 100644
--- a/client/components/lists/listHeader.js
+++ b/client/components/lists/listHeader.js
@@ -6,12 +6,18 @@ Meteor.startup(() => {
BlazeComponent.extendComponent({
canSeeAddCard() {
const list = Template.currentData();
- return !list.getWipLimit('enabled') || list.getWipLimit('soft') || !this.reachedWipLimit();
- },
-
- editTitle(evt) {
- evt.preventDefault();
- const newTitle = this.childComponents('inlinedForm')[0].getValue().trim();
+ return (
+ !list.getWipLimit('enabled') ||
+ list.getWipLimit('soft') ||
+ !this.reachedWipLimit()
+ );
+ },
+
+ editTitle(event) {
+ event.preventDefault();
+ const newTitle = this.childComponents('inlinedForm')[0]
+ .getValue()
+ .trim();
const list = this.currentData();
if (newTitle) {
list.rename(newTitle.trim());
@@ -32,14 +38,19 @@ BlazeComponent.extendComponent({
let swimlaneId = '';
const boardView = (Meteor.user().profile || {}).boardView;
if (boardView === 'board-view-swimlanes')
- swimlaneId = this.parentComponent().parentComponent().data()._id;
+ swimlaneId = this.parentComponent()
+ .parentComponent()
+ .data()._id;
return list.cards(swimlaneId).count();
},
reachedWipLimit() {
const list = Template.currentData();
- return list.getWipLimit('enabled') && list.getWipLimit('value') <= list.cards().count();
+ return (
+ list.getWipLimit('enabled') &&
+ list.getWipLimit('value') <= list.cards().count()
+ );
},
showCardsCountForList(count) {
@@ -48,20 +59,24 @@ BlazeComponent.extendComponent({
},
events() {
- return [{
- 'click .js-open-list-menu': Popup.open('listAction'),
- 'click .js-add-card' (evt) {
- const listDom = $(evt.target).parents(`#js-list-${this.currentData()._id}`)[0];
- const listComponent = BlazeComponent.getComponentForElement(listDom);
- listComponent.openForm({
- position: 'top',
- });
+ return [
+ {
+ 'click .js-open-list-menu': Popup.open('listAction'),
+ 'click .js-add-card'(event) {
+ const listDom = $(event.target).parents(
+ `#js-list-${this.currentData()._id}`,
+ )[0];
+ const listComponent = BlazeComponent.getComponentForElement(listDom);
+ listComponent.openForm({
+ position: 'top',
+ });
+ },
+ 'click .js-unselect-list'() {
+ Session.set('currentList', null);
+ },
+ submit: this.editTitle,
},
- 'click .js-unselect-list'() {
- Session.set('currentList', null);
- },
- submit: this.editTitle,
- }];
+ ];
},
}).register('listHeader');
@@ -76,22 +91,22 @@ Template.listActionPopup.helpers({
});
Template.listActionPopup.events({
- 'click .js-list-subscribe' () {},
+ 'click .js-list-subscribe'() {},
'click .js-set-color-list': Popup.open('setListColor'),
- 'click .js-select-cards' () {
- const cardIds = this.allCards().map((card) => card._id);
+ 'click .js-select-cards'() {
+ const cardIds = this.allCards().map(card => card._id);
MultiSelection.add(cardIds);
Popup.close();
},
- 'click .js-toggle-watch-list' () {
+ 'click .js-toggle-watch-list'() {
const currentList = this;
const level = currentList.findWatcher(Meteor.userId()) ? null : 'watching';
Meteor.call('watch', 'list', currentList._id, level, (err, ret) => {
if (!err && ret) Popup.close();
});
},
- 'click .js-close-list' (evt) {
- evt.preventDefault();
+ 'click .js-close-list'(event) {
+ event.preventDefault();
this.archive();
Popup.close();
},
@@ -102,10 +117,17 @@ Template.listActionPopup.events({
BlazeComponent.extendComponent({
applyWipLimit() {
const list = Template.currentData();
- const limit = parseInt(Template.instance().$('.wip-limit-value').val(), 10);
-
- if(limit < list.cards().count() && !list.getWipLimit('soft')){
- Template.instance().$('.wip-limit-error').click();
+ const limit = parseInt(
+ Template.instance()
+ .$('.wip-limit-value')
+ .val(),
+ 10,
+ );
+
+ if (limit < list.cards().count() && !list.getWipLimit('soft')) {
+ Template.instance()
+ .$('.wip-limit-error')
+ .click();
} else {
Meteor.call('applyWipLimit', list._id, limit);
Popup.back();
@@ -115,7 +137,10 @@ BlazeComponent.extendComponent({
enableSoftLimit() {
const list = Template.currentData();
- if(list.getWipLimit('soft') && list.getWipLimit('value') < list.cards().count()){
+ if (
+ list.getWipLimit('soft') &&
+ list.getWipLimit('value') < list.cards().count()
+ ) {
list.setWipLimit(list.cards().count());
}
Meteor.call('enableSoftLimit', Template.currentData()._id);
@@ -124,7 +149,10 @@ BlazeComponent.extendComponent({
enableWipLimit() {
const list = Template.currentData();
// Prevent user from using previously stored wipLimit.value if it is less than the current number of cards in the list
- if(!list.getWipLimit('enabled') && list.getWipLimit('value') < list.cards().count()){
+ if (
+ !list.getWipLimit('enabled') &&
+ list.getWipLimit('value') < list.cards().count()
+ ) {
list.setWipLimit(list.cards().count());
}
Meteor.call('enableWipLimit', list._id);
@@ -138,24 +166,26 @@ BlazeComponent.extendComponent({
return Template.currentData().getWipLimit('enabled');
},
- wipLimitValue(){
+ wipLimitValue() {
return Template.currentData().getWipLimit('value');
},
events() {
- return [{
- 'click .js-enable-wip-limit': this.enableWipLimit,
- 'click .wip-limit-apply': this.applyWipLimit,
- 'click .wip-limit-error': Popup.open('wipLimitError'),
- 'click .materialCheckBox': this.enableSoftLimit,
- }];
+ return [
+ {
+ 'click .js-enable-wip-limit': this.enableWipLimit,
+ 'click .wip-limit-apply': this.applyWipLimit,
+ 'click .wip-limit-error': Popup.open('wipLimitError'),
+ 'click .materialCheckBox': this.enableSoftLimit,
+ },
+ ];
},
}).register('setWipLimitPopup');
Template.listMorePopup.events({
- 'click .js-delete': Popup.afterConfirm('listDelete', function () {
+ 'click .js-delete': Popup.afterConfirm('listDelete', function() {
Popup.close();
- this.allCards().map((card) => Cards.remove(card._id));
+ this.allCards().map(card => Cards.remove(card._id));
Lists.remove(this._id);
Utils.goBoardId(this.boardId);
}),
@@ -168,7 +198,7 @@ BlazeComponent.extendComponent({
},
colors() {
- return listsColors.map((color) => ({ color, name: '' }));
+ return listsColors.map(color => ({ color, name: '' }));
},
isSelected(color) {
@@ -176,18 +206,20 @@ BlazeComponent.extendComponent({
},
events() {
- return [{
- 'click .js-palette-color'() {
- this.currentColor.set(this.currentData().color);
- },
- 'click .js-submit' () {
- this.currentList.setColor(this.currentColor.get());
- Popup.close();
- },
- 'click .js-remove-color'() {
- this.currentList.setColor(null);
- Popup.close();
+ return [
+ {
+ 'click .js-palette-color'() {
+ this.currentColor.set(this.currentData().color);
+ },
+ 'click .js-submit'() {
+ this.currentList.setColor(this.currentColor.get());
+ Popup.close();
+ },
+ 'click .js-remove-color'() {
+ this.currentList.setColor(null);
+ Popup.close();
+ },
},
- }];
+ ];
},
}).register('setListColorPopup');