/**\r
- * $Id: editable_selects.js 162 2007-01-03 16:16:52Z spocke $\r
+ * editable_selects.js\r
*\r
- * Makes select boxes editable.\r
+ * Copyright 2009, Moxiecode Systems AB\r
+ * Released under LGPL License.\r
*\r
- * @author Moxiecode\r
- * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.\r
+ * License: http://tinymce.moxiecode.com/license\r
+ * Contributing: http://tinymce.moxiecode.com/contributing\r
*/\r
\r
var TinyMCE_EditableSelects = {\r
\r
for (i=0; i<nl.length; i++) {\r
if (nl[i].className.indexOf('mceEditableSelect') != -1) {\r
- o = new Option('(value)', '__mce_add_custom__');\r
+ o = new Option(tinyMCEPopup.editor.translate('value'), '__mce_add_custom__');\r
\r
o.className = 'mceAddSelectValue';\r
\r
nl[i].options[nl[i].options.length] = o;\r
- nl[i].setAttribute('onchange', 'TinyMCE_EditableSelects.onChangeEditableSelect(this);');\r
+ nl[i].onchange = TinyMCE_EditableSelects.onChangeEditableSelect;\r
}\r
}\r
},\r
\r
- onChangeEditableSelect : function(se) {\r
- var d = document, ne;\r
+ onChangeEditableSelect : function(e) {\r
+ var d = document, ne, se = window.event ? window.event.srcElement : e.target;\r
\r
if (se.options[se.selectedIndex].value == '__mce_add_custom__') {\r
ne = d.createElement("input");\r
ne.name = se.name + "_custom";\r
ne.type = "text";\r
\r
- ne.style.width = se.clientWidth;\r
+ ne.style.width = se.offsetWidth + 'px';\r
se.parentNode.insertBefore(ne, se);\r
se.style.display = 'none';\r
ne.focus();\r
ne.onblur = TinyMCE_EditableSelects.onBlurEditableSelectInput;\r
+ ne.onkeydown = TinyMCE_EditableSelects.onKeyDown;\r
TinyMCE_EditableSelects.editSelectElm = se;\r
}\r
},\r
se.parentNode.removeChild(se.previousSibling);\r
TinyMCE_EditableSelects.editSelectElm = null;\r
}\r
+ },\r
+\r
+ onKeyDown : function(e) {\r
+ e = e || window.event;\r
+\r
+ if (e.keyCode == 13)\r
+ TinyMCE_EditableSelects.onBlurEditableSelectInput();\r
}\r
};\r