Mercurial > public > sg101
comparison static/js/tiny_mce/utils/editable_selects.js @ 312:88b2b9cb8c1f
Fixing #142; cut over to the django.contrib.staticfiles app.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Thu, 27 Jan 2011 02:56:10 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
311:b1c39788e511 | 312:88b2b9cb8c1f |
---|---|
1 /** | |
2 * editable_selects.js | |
3 * | |
4 * Copyright 2009, Moxiecode Systems AB | |
5 * Released under LGPL License. | |
6 * | |
7 * License: http://tinymce.moxiecode.com/license | |
8 * Contributing: http://tinymce.moxiecode.com/contributing | |
9 */ | |
10 | |
11 var TinyMCE_EditableSelects = { | |
12 editSelectElm : null, | |
13 | |
14 init : function() { | |
15 var nl = document.getElementsByTagName("select"), i, d = document, o; | |
16 | |
17 for (i=0; i<nl.length; i++) { | |
18 if (nl[i].className.indexOf('mceEditableSelect') != -1) { | |
19 o = new Option('(value)', '__mce_add_custom__'); | |
20 | |
21 o.className = 'mceAddSelectValue'; | |
22 | |
23 nl[i].options[nl[i].options.length] = o; | |
24 nl[i].onchange = TinyMCE_EditableSelects.onChangeEditableSelect; | |
25 } | |
26 } | |
27 }, | |
28 | |
29 onChangeEditableSelect : function(e) { | |
30 var d = document, ne, se = window.event ? window.event.srcElement : e.target; | |
31 | |
32 if (se.options[se.selectedIndex].value == '__mce_add_custom__') { | |
33 ne = d.createElement("input"); | |
34 ne.id = se.id + "_custom"; | |
35 ne.name = se.name + "_custom"; | |
36 ne.type = "text"; | |
37 | |
38 ne.style.width = se.offsetWidth + 'px'; | |
39 se.parentNode.insertBefore(ne, se); | |
40 se.style.display = 'none'; | |
41 ne.focus(); | |
42 ne.onblur = TinyMCE_EditableSelects.onBlurEditableSelectInput; | |
43 ne.onkeydown = TinyMCE_EditableSelects.onKeyDown; | |
44 TinyMCE_EditableSelects.editSelectElm = se; | |
45 } | |
46 }, | |
47 | |
48 onBlurEditableSelectInput : function() { | |
49 var se = TinyMCE_EditableSelects.editSelectElm; | |
50 | |
51 if (se) { | |
52 if (se.previousSibling.value != '') { | |
53 addSelectValue(document.forms[0], se.id, se.previousSibling.value, se.previousSibling.value); | |
54 selectByValue(document.forms[0], se.id, se.previousSibling.value); | |
55 } else | |
56 selectByValue(document.forms[0], se.id, ''); | |
57 | |
58 se.style.display = 'inline'; | |
59 se.parentNode.removeChild(se.previousSibling); | |
60 TinyMCE_EditableSelects.editSelectElm = null; | |
61 } | |
62 }, | |
63 | |
64 onKeyDown : function(e) { | |
65 e = e || window.event; | |
66 | |
67 if (e.keyCode == 13) | |
68 TinyMCE_EditableSelects.onBlurEditableSelectInput(); | |
69 } | |
70 }; |