|
@@ -7,11 +7,25 @@ BlazeComponent.extendComponent({
|
|
|
return Session.equals('currentCard', this.currentData()._id);
|
|
|
},
|
|
|
|
|
|
+ openForm: function(options) {
|
|
|
+ options = options || {};
|
|
|
+ options.position = options.position || 'top';
|
|
|
+
|
|
|
+ var forms = this.componentChildren('inlinedForm');
|
|
|
+ var form = _.find(forms, function(component) {
|
|
|
+ return component.data().position === options.position;
|
|
|
+ });
|
|
|
+ if (! form && forms.length > 0) {
|
|
|
+ form = forms[0];
|
|
|
+ }
|
|
|
+ form.open();
|
|
|
+ },
|
|
|
+
|
|
|
addCard: function(evt) {
|
|
|
evt.preventDefault();
|
|
|
var textarea = $(evt.currentTarget).find('textarea');
|
|
|
var title = textarea.val();
|
|
|
- var position = this.currentData().position;
|
|
|
+ var position = Blaze.getData(evt.currentTarget).position;
|
|
|
var sortIndex;
|
|
|
if (position === 'top') {
|
|
|
sortIndex = Utils.getSortIndex(null, this.find('.js-minicard:first'));
|
|
@@ -46,29 +60,44 @@ BlazeComponent.extendComponent({
|
|
|
|
|
|
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();
|
|
|
+ submit: this.addCard
|
|
|
+ }];
|
|
|
+ }
|
|
|
+}).register('listBody');
|
|
|
|
|
|
- // 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);
|
|
|
+BlazeComponent.extendComponent({
|
|
|
+ template: function() {
|
|
|
+ return 'addCardForm';
|
|
|
+ },
|
|
|
|
|
|
- // XXX Get the real position
|
|
|
- var position = 'bottom';
|
|
|
- nextListComponent.openForm({position: position});
|
|
|
- }
|
|
|
+ pressKey: 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().listId);
|
|
|
+ var listSelector = '.js-list:not(.js-add-list)';
|
|
|
+ var nextList = list[isReverse ? 'prev' : 'next'](listSelector).get(0);
|
|
|
+ // If there isn't no next list, loop back to the beginning.
|
|
|
+ if (! nextList) {
|
|
|
+ nextList = $(listSelector + (isReverse ? ':last' : ':first')).get(0);
|
|
|
}
|
|
|
+
|
|
|
+ BlazeComponent.getComponentForElement(nextList).openForm({
|
|
|
+ position:this.data().position
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ events: function() {
|
|
|
+ return [{
|
|
|
+ keydown: this.pressKey
|
|
|
}];
|
|
|
}
|
|
|
-}).register('listBody');
|
|
|
+}).register('addCardForm');
|