12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- BlazeComponent.extendComponent({
- template: function() {
- return 'listBody';
- },
- isSelected: function() {
- return Session.equals('currentCard', this.currentData()._id);
- },
- addCard: function(evt) {
- evt.preventDefault();
- var textarea = $(evt.currentTarget).find('textarea');
- var title = textarea.val();
- var position = this.currentData().position;
- var sortIndex;
- if (position === 'top') {
- sortIndex = Utils.getSortIndex(null, this.find('.js-minicard:first'));
- } else if (position === 'bottom') {
- sortIndex = Utils.getSortIndex(this.find('.js-minicard:last'), null);
- }
- // Clear the form in-memory cache
- // var inputCacheKey = "addCard-" + this.listId;
- // InputsCache.set(inputCacheKey, '');
- // title trim if not empty then
- if ($.trim(title)) {
- Cards.insert({
- title: title,
- listId: this.data()._id,
- boardId: this.data().board()._id,
- sort: sortIndex
- }, function(err, _id) {
- // In case the filter is active we need to add the newly
- // inserted card in the list of exceptions -- cards that are
- // not filtered. Otherwise the card will disappear instantly.
- // See https://github.com/libreboard/libreboard/issues/80
- Filter.addException(_id);
- });
- // We keep the form opened, empty it, and scroll to it.
- textarea.val('').focus();
- Utils.Scroll(this.find('.js-minicards')).top(1000, true);
- }
- },
- events: function() {
- return [{
- submit: this.addCard,
- 'keydown form textarea': function(evt) {
- // Pressing Enter should submit the card
- if (evt.keyCode === 13) {
- evt.preventDefault();
- $(evt.currentTarget).parents('form:first').submit();
- // Pressing Tab should open the form of the next column, and Maj+Tab go
- // in the reverse order
- } else if (evt.keyCode === 9) {
- evt.preventDefault();
- var isReverse = evt.shiftKey;
- var list = $('#js-list-' + this.data()._id);
- var nextList = list[isReverse ? 'prev' : 'next']('.js-list').get(0) ||
- $('.js-list:' + (isReverse ? 'last' : 'first')).get(0);
- var nextListComponent = BlazeComponent.getComponentForElement(nextList);
- // XXX Get the real position
- var position = 'bottom';
- nextListComponent.openForm({position: position});
- }
- }
- }];
- }
- }).register('listBody');
|