Skip to content

Commit

Permalink
Fix post tag input so it keeps the tag order
Browse files Browse the repository at this point in the history
refs #5732
- patches ember-selectize to send the caret position to the create-item action handler
- updates `addTag` method in PSM controller to insert new tag in the correct place
  • Loading branch information
kevinansfield committed Aug 26, 2015
1 parent 79f1bd2 commit 06892cc
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 3 deletions.
26 changes: 26 additions & 0 deletions core/client/app/components/gh-selectize.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import Ember from 'ember';
import EmberSelectizeComponent from 'ember-cli-selectize/components/ember-selectize';

export default EmberSelectizeComponent.extend({

/**
* Event callback that is triggered when user creates a tag
* - modified to pass the caret position to the action
*/
_create(input, callback) {
var caret = this._selectize.caretPos;

// Delete user entered text
this._selectize.setTextboxValue('');
// Send create action

// allow the observers and computed properties to run first
Ember.run.schedule('actions', this, function () {
this.sendAction('create-item', input, caret);
});
// We cancel the creation here, so it's up to you to include the created element
// in the content and selection property
callback(null);
}

});
4 changes: 2 additions & 2 deletions core/client/app/controllers/post-settings-menu.js
Original file line number Diff line number Diff line change
Expand Up @@ -469,7 +469,7 @@ export default Ember.Controller.extend(SettingsMenuMixin, {
});
},

addTag: function (tagName) {
addTag: function (tagName, index) {
var self = this,
currentTags = this.get('model.tags'),
currentTagNames = currentTags.map(function (tag) { return tag.get('name').toLowerCase(); }),
Expand Down Expand Up @@ -500,7 +500,7 @@ export default Ember.Controller.extend(SettingsMenuMixin, {
}

// push tag onto post relationship
if (tagToAdd) { self.get('model.tags').pushObject(tagToAdd); }
if (tagToAdd) { self.get('model.tags').insertAt(index, tagToAdd); }
});
},

Expand Down
2 changes: 1 addition & 1 deletion core/client/app/templates/post-settings-menu.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@

<div class="form-group">
<label for="tag-input">Tags</label>
{{ember-selectize
{{gh-selectize
id="tag-input"
multiple=true
selection=model.tags
Expand Down

0 comments on commit 06892cc

Please sign in to comment.