1/** 2 * Add button action for your toolbar button 3 * 4 * @param {jQuery} $btn Button element to add the action to 5 * @param {Array} props Associative array of button properties 6 * @param {string} edid ID of the editor textarea 7 * @return {string} If button should be appended return the id for in aria-controls, 8 * otherwise an empty string 9 */ 10function addBtnActionNewFigure($btn, props, edid) { 11 12 $btn.click(function () { 13 var editform = jQuery('#dw__editform')[0]; 14 var ed = jQuery('#' + edid)[0]; 15 16 function addField(name, val) { 17 var pos_field = document.createElement('textarea'); 18 pos_field.name = 'editfigure__new[' + name + ']'; 19 pos_field.value = val; 20 pos_field.style.display = 'none'; 21 editform.appendChild(pos_field); 22 } 23 24 var sel; 25 if (window.DWgetSelection) { 26 sel = DWgetSelection(ed); 27 } else { 28 sel = getSelection(ed); 29 } 30 addField('pre', ed.value.substr(0, sel.start)); 31 addField('text', ed.value.substr(sel.start, sel.end - sel.start)); 32 addField('suf', ed.value.substr(sel.end)); 33 34 // adora belle requires a range, even though we handle ranging ourselve here 35 var range = document.createElement('input'); 36 range.name = 'range'; 37 range.value = '0-0'; 38 range.type = 'hidden'; 39 editform.appendChild(range); 40 41 // Fake POST 42 var editbutton = document.createElement('input'); 43 editbutton.name = 'do[edit]'; 44 editbutton.type = 'submit'; 45 editbutton.style.display = 'none'; 46 editform.appendChild(editbutton); 47 // Prevent warning 48 window.textChanged = false; 49 editbutton.click(); 50 51 }); 52 return 'click'; 53} 54