New file |
0,0 → 1,61 |
/** |
* $Id: editable_selects.js 162 2007-01-03 16:16:52Z spocke $ |
* |
* Makes select boxes editable. |
* |
* @author Moxiecode |
* @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved. |
*/ |
|
var TinyMCE_EditableSelects = { |
editSelectElm : null, |
|
init : function() { |
var nl = document.getElementsByTagName("select"), i, d = document, o; |
|
for (i=0; i<nl.length; i++) { |
if (nl[i].className.indexOf('mceEditableSelect') != -1) { |
o = new Option('(value)', '__mce_add_custom__'); |
|
o.className = 'mceAddSelectValue'; |
|
nl[i].options[nl[i].options.length] = o; |
nl[i].setAttribute('onchange', 'TinyMCE_EditableSelects.onChangeEditableSelect(this);'); |
} |
} |
}, |
|
onChangeEditableSelect : function(se) { |
var d = document, ne; |
|
if (se.options[se.selectedIndex].value == '__mce_add_custom__') { |
ne = d.createElement("input"); |
ne.id = se.id + "_custom"; |
ne.name = se.name + "_custom"; |
ne.type = "text"; |
|
ne.style.width = se.clientWidth; |
se.parentNode.insertBefore(ne, se); |
se.style.display = 'none'; |
ne.focus(); |
ne.onblur = TinyMCE_EditableSelects.onBlurEditableSelectInput; |
TinyMCE_EditableSelects.editSelectElm = se; |
} |
}, |
|
onBlurEditableSelectInput : function() { |
var se = TinyMCE_EditableSelects.editSelectElm; |
|
if (se) { |
if (se.previousSibling.value != '') { |
addSelectValue(document.forms[0], se.id, se.previousSibling.value, se.previousSibling.value); |
selectByValue(document.forms[0], se.id, se.previousSibling.value); |
} else |
selectByValue(document.forms[0], se.id, ''); |
|
se.style.display = 'inline'; |
se.parentNode.removeChild(se.previousSibling); |
TinyMCE_EditableSelects.editSelectElm = null; |
} |
} |
}; |