annotate mee.js @ 14:50a57b1517cb

Fully working MEE, with Ressource Manager & all
author Franck Deroche <franck@defr.org>
date Fri, 18 Sep 2009 15:18:53 +0200
parents da5d54d099b1
children 75106ee96c1e
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@14 29 data.representation_id,
franck@14 30 rep,
franck@11 31 Drupal.tableDrag[this.id]
franck@11 32 ));
franck@11 33 });
franck@11 34 });
franck@11 35 }
franck@11 36 }, 100);
franck@11 37 },
franck@11 38 detach: function(e, data) {
franck@11 39
franck@11 40 },
franck@14 41 generate: function(id, representation, tableDrag) {
franck@14 42 var $weight = $("<select />"), $tr = $('<tr />'), $td = $("<td />"), parity;
franck@14 43 var separator = $(tableDrag.table).find('div.mee-rm-separator select')[0];
franck@14 44 var wn = separator.name.replace(/\[0\]\[weight\]$/, '[' + id +'][weight]');
franck@14 45 var $required = $("<select />")
franck@14 46 .attr('name', wn.replace(/\[weight\]$/, '[required]'))
franck@14 47 .append("<option value='0'>"+ Drupal.t('Optional') +"</option>")
franck@14 48 .append("<option value='1'>"+ Drupal.t('Required') +"</option>")
franck@14 49 .val(representation.meta.action);
franck@14 50 // If this ressource is already in the Ressource Manager, don't add a line
franck@14 51 if ($('select[name="'+ wn +'"]', tableDrag.table).length) {
franck@14 52 return '';
franck@14 53 }
franck@11 54 $tr
franck@11 55 .addClass('draggable')
franck@11 56 .append($('<td></td>'))
franck@14 57 .append($('<td></td>').append(representation.title))
franck@14 58 .append($('<td></td>').append($required));
franck@11 59 for (var i = -10; i <= 10; i++) {
franck@14 60 $weight.append("<option>"+ i +"</option>");
franck@11 61 }
franck@14 62 $weight.val(0).addClass('mee-rm-weight').attr('name', wn);
franck@14 63 $td.append($weight);
franck@11 64 $tr.append($td);
franck@12 65 parity = $(tableDrag.table).find('tr').size() % 2 ? 'odd' : 'even';
franck@12 66 $tr.addClass(parity);
franck@12 67 tableDrag.makeDraggable($tr.get(0));
franck@11 68 return $tr;
franck@11 69 }
franck@11 70 }