Mercurial > defr > drupal > scald > dnd
view js/dnd-library.js @ 2:5a44c430b7ac
Added dnd_test module, tons and tons of fixes and changes.
author | David Eads <eads@chicagotech.org> |
---|---|
date | Tue, 17 Feb 2009 15:34:56 -0600 |
parents | cee053085755 |
children | c2eb995212bf |
line wrap: on
line source
Drupal.behaviors.dndLibrary = function(context) { var libraries = Drupal.settings.dndEnabledLibraries; // Loop over libraries keyed by the textarea they are associated with for (var textarea_id in libraries) { var library = $('#' + textarea_id + '-dnd-library'); // Ajax pager: This seems like it is bad to be here $('.pager a', library).click(function(e, data) { $.getJSON(this.href, function(data) { $('.library', library).html(''); for (item in data.library) { $('.library', library).append(data.library[item].library); Drupal.settings.dndEditorRepresentations[item] = data.library[item].editor; Drupal.behaviors.dndLibrary(context); // Durn event reattachment } }); return false; }); // Bind Drag and Drop plugin invocation to wywsiwygAttach event $('#' + textarea_id).bind('wysiwygAttach', function(e, data) { var settings = { renderRepresentation: function(target, drop, representation_id) { console.log(representation_id); return Drupal.settings.dndEditorRepresentations[representation_id]; } } settings = $.extend(settings, libraries[textarea_id]); // Get editor attachment function var editor_fn = 'attach_' + data.editor; if ($.isFunction(window.Drupal.behaviors.dndLibrary[editor_fn])) { window.Drupal.behaviors.dndLibrary[editor_fn](data, settings); } }); // @TODO track and clear intervals to save memory at the cost of // more processing? $('#' + textarea_id).bind('wysiwygDetach', function(e, data) { console.log('detach'); }); } } Drupal.behaviors.dndLibrary.attach_tinymce = function(data, settings) { var tiny = tinyMCE.getInstanceById(data.field); $('#'+ data.field +'-wrapper iframe').load(function() { settings = $.extend({ targets: $('#'+ data.field +'-wrapper iframe'), insertAfter: '<p><span id="__caret">_</span></p>', postprocessDrop: function() { // Get our special span, select it, delete it, and hope the caret // resets correctly. tiny.selection.select(tiny.dom.get('__caret')); tiny.execCommand('Delete', false, null); tiny.dom.remove('__caret'); } }, settings); $(settings.drop_selector).dnd(settings); }); }