Mercurial > defr > drupal > scald > dnd
comparison js/dnd-library.js @ 15:7a5f74482ee3
More cross browser work, garbage collection for timers, etc.
| author | David Eads <eads@chicagotech.org> |
|---|---|
| date | Mon, 02 Mar 2009 23:22:37 -0600 |
| parents | 99ba5941779c |
| children | bb68dc3ad56f |
comparison
equal
deleted
inserted
replaced
| 14:ef7ad7b5baa4 | 15:7a5f74482ee3 |
|---|---|
| 23 //$('.footer', $this).html(data.footer); | 23 //$('.footer', $this).html(data.footer); |
| 24 for (editor_id in data.editor_representations) { | 24 for (editor_id in data.editor_representations) { |
| 25 Drupal.settings.dndEditorRepresentations[editor_id] = data.editor_representations[editor_id]; | 25 Drupal.settings.dndEditorRepresentations[editor_id] = data.editor_representations[editor_id]; |
| 26 } | 26 } |
| 27 var params = Drupal.wysiwyg.instances[editor]; | 27 var params = Drupal.wysiwyg.instances[editor]; |
| 28 $('#' + editor).trigger('wysiwygDetach', params); | |
| 28 $('#' + editor).trigger('wysiwygAttach', params); | 29 $('#' + editor).trigger('wysiwygAttach', params); |
| 29 }); | 30 }); |
| 30 return false; | 31 return false; |
| 31 }); | 32 }); |
| 32 | 33 |
| 47 window.Drupal.behaviors.dndLibrary[editor_fn](data, settings); | 48 window.Drupal.behaviors.dndLibrary[editor_fn](data, settings); |
| 48 } | 49 } |
| 49 } | 50 } |
| 50 | 51 |
| 51 Drupal.behaviors.dndLibrary.detach_library = function(e, data) { | 52 Drupal.behaviors.dndLibrary.detach_library = function(e, data) { |
| 52 //console.log('detach'); | 53 for (t in $(document).data('dnd_timers')) { |
| 54 clearInterval(t); | |
| 55 } | |
| 56 $(document).removeData('dnd_timers'); | |
| 53 } | 57 } |
| 54 | 58 |
| 55 | 59 |
| 56 Drupal.behaviors.dndLibrary.attach_tinymce = function(data, settings) { | 60 Drupal.behaviors.dndLibrary.attach_tinymce = function(data, settings) { |
| 57 | 61 |
| 74 | 78 |
| 75 Drupal.behaviors.dndLibrary._attach_tinymce = function(data, settings, tiny_instance) { | 79 Drupal.behaviors.dndLibrary._attach_tinymce = function(data, settings, tiny_instance) { |
| 76 settings = $.extend({ | 80 settings = $.extend({ |
| 77 targets: $('#'+ data.field +'-wrapper iframe'), | 81 targets: $('#'+ data.field +'-wrapper iframe'), |
| 78 insertAfter: '<p><span id="__caret">_</span></p>', | 82 insertAfter: '<p><span id="__caret">_</span></p>', |
| 83 | |
| 84 // Back out markup to render in place after parent container | |
| 85 preprocessDrop: function(target, drop) { | |
| 86 drop.id = 'DND-TMP-' + $.data(drop); | |
| 87 // Do some native tiny manipulations | |
| 88 return drop; | |
| 89 }, | |
| 79 postprocessDrop: function(target, drop, element) { | 90 postprocessDrop: function(target, drop, element) { |
| 80 // Get our special span, select it, delete it, and hope the caret | 91 // Get our special span, select it, delete it, and hope the caret |
| 81 // resets correctly. | 92 // resets correctly. |
| 82 tiny_instance.selection.select(tiny_instance.dom.get('__caret')); | 93 tiny_instance.selection.select(tiny_instance.dom.get('__caret')); |
| 83 tiny_instance.execCommand('Delete', false, null); | 94 tiny_instance.execCommand('Delete', false, null); |
