annotate mee.js @ 12:da5d54d099b1

Fix the drag'n'drop, add a caption to the ressource manager. tableDrag makeDraggable method expect a standard DOM object, not the jQuery wrapper.
author Franck Deroche <franck@defr.org>
date Fri, 05 Jun 2009 09:56:08 +0200
parents 272628486e75
children 50a57b1517cb
rev   line source
franck@8 1 Drupal.behaviors.mee = function(context) {
franck@11 2 $("div.mee-wrap-editor-library:not(.mee-processed)")
franck@11 3 .addClass('mee-processed')
franck@11 4 .find('> div.dnd-library-wrapper')
franck@11 5 .each(function() {
franck@11 6 var $editor = $('#' + this.id.slice(0, -12));
franck@11 7 $editor.bind('wysiwygAttach', Drupal.mee.attach);
franck@11 8 $editor.bind('wysiwygDetach', Drupal.mee.detach);
franck@11 9 })
franck@11 10 .end()
franck@8 11 }
franck@11 12
franck@11 13 Drupal.mee = {
franck@11 14 attach: function(e, data) {
franck@11 15 var t = setInterval(function() {
franck@11 16 var tiny_instance = tinyMCE.getInstanceById(data.field);
franck@11 17 if (tiny_instance) {
franck@11 18 clearInterval(t);
franck@11 19 $(tiny_instance.editor_id)
franck@11 20 .find('iframe')
franck@11 21 .unbind('dnd_drop')
franck@11 22 .bind('dnd_drop', function(e, data) {
franck@11 23 var rep = Drupal.settings.dndEditorRepresentations[data.representation_id];
franck@11 24 $(this)
franck@11 25 .parents('div.mee-wrap-editor-library.mee-processed')
franck@11 26 .find('table.mee-ressource-manager')
franck@11 27 .each(function(i) {
franck@11 28 $(this).append(Drupal.mee.generate(
franck@11 29 rep.title,
franck@11 30 Drupal.tableDrag[this.id]
franck@11 31 ));
franck@11 32 });
franck@11 33 });
franck@11 34 }
franck@11 35 }, 100);
franck@11 36 },
franck@11 37 detach: function(e, data) {
franck@11 38
franck@11 39 },
franck@11 40 generate: function(title, tableDrag) {
franck@12 41 var $select = $("<select />"), $tr = $('<tr />'), $td = $("<td />"), parity;
franck@11 42 $tr
franck@11 43 .addClass('draggable')
franck@11 44 .append($('<td></td>'))
franck@11 45 .append($('<td></td>').append(title));
franck@11 46 for (var i = -10; i <= 10; i++) {
franck@11 47 $select.append("<option>"+ i +"</option>");
franck@11 48 }
franck@11 49 $select.val(0).addClass('mee-rm-weight');
franck@11 50 $td.append($select);
franck@11 51 $tr.append($td);
franck@12 52 parity = $(tableDrag.table).find('tr').size() % 2 ? 'odd' : 'even';
franck@12 53 $tr.addClass(parity);
franck@12 54 tableDrag.makeDraggable($tr.get(0));
franck@11 55 return $tr;
franck@11 56 }
franck@11 57 }