PluginProbe
Contact Forms by Cimatti / 1.3.1
Contact Forms by Cimatti v1.3.1
2.3.6 2.3.5 2.3.0 2.2.32 2.2.4 2.2.0 2.1.2 2.1.1 trunk 1.0 1.1 1.2 1.2.1 1.3 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 All 62 releases
contact-forms / PFBC / Resources / tiny_mce / utils / editable_selects.js

editable_selects.js in Contact Forms by Cimatti 1.3.1, at PFBC/Resources/tiny_mce/utils/editable_selects.js

71 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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(tinyMCEPopup.editor.translate('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 };
71