keeweb/app/scripts/views/fields/field-view-tags.js

29 lines
814 B
JavaScript
Raw Normal View History

2015-10-17 23:49:24 +02:00
'use strict';
var FieldViewText = require('./field-view-text');
var FieldViewTags = FieldViewText.extend({
renderValue: function(value) {
return value ? _.escape(value.join(', ')) : '';
},
getEditValue: function(value) {
return value ? value.join(', ') : '';
},
endEdit: function(newVal, extra) {
if (newVal !== undefined) {
var allTags = {};
this.model.tags.forEach(function(tag) {
allTags[tag.toLowerCase()] = tag;
});
newVal = _.unique(newVal.split(/\s*[;,:]\s*/).filter(_.identity).map(function (tag) {
return allTags[tag.toLowerCase()] || tag;
}));
}
FieldViewText.prototype.endEdit.call(this, newVal, extra);
}
});
module.exports = FieldViewTags;