diff options
Diffstat (limited to 'js/components/hintable.reel/hintable.js')
-rw-r--r-- | js/components/hintable.reel/hintable.js | 43 |
1 files changed, 5 insertions, 38 deletions
diff --git a/js/components/hintable.reel/hintable.js b/js/components/hintable.reel/hintable.js index 803770db..d09cdbd2 100644 --- a/js/components/hintable.reel/hintable.js +++ b/js/components/hintable.reel/hintable.js | |||
@@ -140,15 +140,6 @@ exports.Hintable = Montage.create(Editable, { | |||
140 | } | 140 | } |
141 | } | 141 | } |
142 | }, | 142 | }, |
143 | value : { | ||
144 | get: function() { | ||
145 | return this._getFirstTextNode().textContent; | ||
146 | }, | ||
147 | set: function(str) { | ||
148 | var node = this._getFirstTextNode(); | ||
149 | node.textContent = str; | ||
150 | } | ||
151 | }, | ||
152 | 143 | ||
153 | handleKeydown : { | 144 | handleKeydown : { |
154 | value : function handleKeydown(e) { | 145 | value : function handleKeydown(e) { |
@@ -185,17 +176,18 @@ exports.Hintable = Montage.create(Editable, { | |||
185 | handleInput : { | 176 | handleInput : { |
186 | value : function handleInput(e) { | 177 | value : function handleInput(e) { |
187 | this._super(arguments); | 178 | this._super(arguments); |
188 | 179 | ||
189 | var val = this.value, | 180 | var val = this.value, |
190 | matches, hint; | 181 | matches, hint; |
191 | //console.log('val = "' + val + '"'); | 182 | //console.log('val = "' + val + '"'); |
192 | //// Handle auto-suggest if configured | 183 | //// Handle auto-suggest if configured |
193 | if(this.hints instanceof Array) { | 184 | if(this.hints && this.hints.length) { |
194 | 185 | ||
195 | if(val.length > 0) { // content is not empty | 186 | if(val.length > 0) { // content is not empty |
196 | 187 | ||
197 | this._matchIndex = 0; | 188 | this._matchIndex = 0; |
198 | this.matches = this.hints.filter(function(h) { | 189 | this.matches = this.hints.filter(function(h) { |
190 | if(!h) { return false; } | ||
199 | return h.indexOf(val) === 0; | 191 | return h.indexOf(val) === 0; |
200 | }).sort(); | 192 | }).sort(); |
201 | 193 | ||
@@ -271,32 +263,6 @@ exports.Hintable = Montage.create(Editable, { | |||
271 | return Array.prototype.slice.call(arrayLikeObj); | 263 | return Array.prototype.slice.call(arrayLikeObj); |
272 | } | 264 | } |
273 | }, | 265 | }, |
274 | _getFirstTextNode : { | ||
275 | value : function(el) { | ||
276 | ///// optional el argument specified container element | ||
277 | var e = el || this._element, | ||
278 | nodes = e.childNodes, node; | ||
279 | |||
280 | if(nodes.length) { | ||
281 | for(var i=0; i<nodes.length; i++) { | ||
282 | if(nodes[i].nodeType === 3) { | ||
283 | ///// found the first text node | ||
284 | node = nodes[i]; | ||
285 | break; | ||
286 | } | ||
287 | } | ||
288 | } | ||
289 | |||
290 | ///// Text node not found | ||
291 | if(!node) { | ||
292 | node = document.createTextNode(''); | ||
293 | e.appendChild(node); | ||
294 | } | ||
295 | |||
296 | |||
297 | return node; | ||
298 | } | ||
299 | }, | ||
300 | _super : { | 266 | _super : { |
301 | value : function(args) { | 267 | value : function(args) { |
302 | this.inheritsFrom[arguments.callee.caller.name].apply(this, args); | 268 | this.inheritsFrom[arguments.callee.caller.name].apply(this, args); |
@@ -305,7 +271,8 @@ exports.Hintable = Montage.create(Editable, { | |||
305 | 271 | ||
306 | /* --------- CONFIG ---------- */ | 272 | /* --------- CONFIG ---------- */ |
307 | hints : { | 273 | hints : { |
308 | value : ['Testing a hint.', 'Testing another hint.', 'Testing the last hint.'] | 274 | value : ['Testing a hint.', 'Testing another hint.', 'Testing the last hint.'], |
275 | distinct: true | ||
309 | }, | 276 | }, |
310 | hintClass : { | 277 | hintClass : { |
311 | value : "hintable-hint" | 278 | value : "hintable-hint" |