mirror of https://github.com/wekan/wekan
commit
f88c3755e0
@ -0,0 +1,28 @@ |
||||
template(name="myCardsHeaderBar") |
||||
h1 |
||||
a.back-btn(href="{{pathFor 'home'}}") |
||||
i.fa.fa-chevron-left |
||||
| {{_ 'my-cards'}} |
||||
|
||||
template(name="myCardsModalTitle") |
||||
h2 |
||||
i.fa.fa-keyboard-o |
||||
| {{_ 'my-cards'}} |
||||
|
||||
template(name="myCards") |
||||
.wrapper |
||||
each board in cardsFind |
||||
.board-title |
||||
| {{_ 'board' }}: |
||||
= board.title |
||||
each swimlane in board.swimlanes |
||||
.swimlane-title |
||||
| {{_ 'swimlane' }}: |
||||
= swimlane.title |
||||
each list in swimlane.lists |
||||
.list-title |
||||
| {{_ 'list' }}: |
||||
= list.title |
||||
each card in list.cards |
||||
a.minicard-wrapper.card-title(href="{{pathFor 'card' boardId=board.id slug=board.slug cardId=card._id }}") |
||||
+minicard(card) |
@ -0,0 +1,154 @@ |
||||
const subManager = new SubsManager(); |
||||
Meteor.subscribe('myCards'); |
||||
Meteor.subscribe('mySwimlanes'); |
||||
Meteor.subscribe('myLists'); |
||||
|
||||
Template.myCardsHeaderBar.events({ |
||||
'click .js-open-archived-board'() { |
||||
Modal.open('archivedBoards'); |
||||
}, |
||||
}); |
||||
|
||||
Template.myCardsHeaderBar.helpers({ |
||||
title() { |
||||
return FlowRouter.getRouteName() === 'home' ? 'my-boards' : 'public'; |
||||
}, |
||||
templatesUser() { |
||||
return Meteor.user(); |
||||
}, |
||||
}); |
||||
|
||||
Template.myCards.helpers({ |
||||
userId() { |
||||
return Meteor.userId(); |
||||
}, |
||||
}); |
||||
|
||||
BlazeComponent.extendComponent({ |
||||
onCreated() { |
||||
Meteor.subscribe('setting'); |
||||
// subManager.subscribe('myCards');
|
||||
}, |
||||
|
||||
cardsFind() { |
||||
const userId = Meteor.userId(); |
||||
const boards = []; |
||||
let board = null; |
||||
let swimlane = null; |
||||
let list = null; |
||||
|
||||
const cursor = Cards.find( |
||||
{ |
||||
archived: false, |
||||
$or: [{ members: userId }, { assignees: userId }], |
||||
}, |
||||
{ |
||||
sort: { |
||||
boardId: 1, |
||||
swimlaneId: 1, |
||||
listId: 1, |
||||
sort: 1, |
||||
}, |
||||
}, |
||||
); |
||||
// eslint-disable-next-line no-console
|
||||
// console.log('cursor:', cursor);
|
||||
|
||||
let newBoard = false; |
||||
let newSwimlane = false; |
||||
let newList = false; |
||||
|
||||
cursor.forEach(card => { |
||||
// eslint-disable-next-line no-console
|
||||
// console.log('card:', card.title);
|
||||
if (list === null || list.id !== card.listId) { |
||||
// eslint-disable-next-line no-console
|
||||
// console.log('new list');
|
||||
let l = Lists.findOne(card.listId); |
||||
if (!l) { |
||||
l = { |
||||
_id: card.listId, |
||||
title: 'undefined list', |
||||
}; |
||||
} |
||||
// eslint-disable-next-line no-console
|
||||
// console.log('list:', l);
|
||||
list = { |
||||
id: l._id, |
||||
title: l.title, |
||||
cards: [card], |
||||
}; |
||||
newList = true; |
||||
} |
||||
if (swimlane === null || card.swimlaneId !== swimlane.id) { |
||||
// eslint-disable-next-line no-console
|
||||
// console.log('new swimlane');
|
||||
let s = Swimlanes.findOne(card.swimlaneId); |
||||
if (!s) { |
||||
s = { |
||||
_id: card.swimlaneId, |
||||
title: 'undefined swimlane', |
||||
}; |
||||
} |
||||
// eslint-disable-next-line no-console
|
||||
// console.log('swimlane:', s);
|
||||
swimlane = { |
||||
id: s._id, |
||||
title: s.title, |
||||
lists: [list], |
||||
}; |
||||
newSwimlane = true; |
||||
} |
||||
if (board === null || card.boardId !== board.id) { |
||||
// eslint-disable-next-line no-console
|
||||
// console.log('new board');
|
||||
const b = Boards.findOne(card.boardId); |
||||
// eslint-disable-next-line no-console
|
||||
// console.log('board:', b, b._id, b.title);
|
||||
board = { |
||||
id: b._id, |
||||
title: b.title, |
||||
slug: b.slug, |
||||
swimlanes: [swimlane], |
||||
}; |
||||
newBoard = true; |
||||
} |
||||
|
||||
if (newBoard) { |
||||
boards.push(board); |
||||
} else if (newSwimlane) { |
||||
board.swimlanes.push(swimlane); |
||||
} else if (newList) { |
||||
swimlane.lists.push(list); |
||||
} else { |
||||
list.cards.push(card); |
||||
} |
||||
|
||||
newBoard = false; |
||||
newSwimlane = false; |
||||
newList = false; |
||||
}); |
||||
|
||||
// eslint-disable-next-line no-console
|
||||
// console.log('boards:', boards);
|
||||
return boards; |
||||
}, |
||||
|
||||
events() { |
||||
return [ |
||||
{ |
||||
'click .js-my-card'(evt) { |
||||
const card = this.currentData().card; |
||||
// eslint-disable-next-line no-console
|
||||
console.log('currentData():', this.currentData()); |
||||
// eslint-disable-next-line no-console
|
||||
console.log('card:', card); |
||||
if (card) { |
||||
Utils.goCardId(card._id); |
||||
} |
||||
evt.preventDefault(); |
||||
}, |
||||
}, |
||||
]; |
||||
}, |
||||
}).register('myCards'); |
@ -0,0 +1,40 @@ |
||||
.my-cards-list |
||||
.my-cards-list-item |
||||
border-bottom: 1px solid darken(white, 25%) |
||||
padding: 10px 5px |
||||
|
||||
&:last-child |
||||
border-bottom: none |
||||
|
||||
.my-cards-list-item-keys |
||||
margin-top: 5px |
||||
float: right |
||||
|
||||
kbd |
||||
padding: 5px 8px |
||||
margin: 5px |
||||
font-size: 18px |
||||
|
||||
.my-cards-list-item-action |
||||
font-size: 1.4em |
||||
margin: 5px |
||||
|
||||
.board-title |
||||
font-size: 1.4rem |
||||
font-weight: bold |
||||
|
||||
.swimlane-title |
||||
font-size: 1.2rem |
||||
font-weight: bold |
||||
margin-left: 1em |
||||
margin-top: 10px |
||||
|
||||
.list-title |
||||
margin-top: 5px |
||||
font-weight: bold |
||||
margin-left: 1.6rem |
||||
|
||||
.card-title |
||||
margin-top: 5px |
||||
margin-left: 1.8rem |
||||
max-width: 350px; |
Loading…
Reference in new issue