annotate mee.js @ 24:32d8c9f818a8

Fields: Add an hidden variable to choose if a composite should be registered Initially, each MEE association was made to be reusable, which means that a composite atom was registered, was searchable in the library, droppable in another MEE. It turns out that this features wasn't really used in production, and adds a lot of noise in the UI... So we're now checking a variable before registering a composite, and it defaults to off.
author Franck Deroche <defr@ows.fr>
date Mon, 19 Apr 2010 10:51:33 +0000
parents 75106ee96c1e
children
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];
defr@19 24 if (!rep) return;
franck@11 25 $(this)
franck@11 26 .parents('div.mee-wrap-editor-library.mee-processed')
franck@11 27 .find('table.mee-ressource-manager')
franck@11 28 .each(function(i) {
franck@11 29 $(this).append(Drupal.mee.generate(
franck@14 30 data.representation_id,
franck@14 31 rep,
franck@11 32 Drupal.tableDrag[this.id]
franck@11 33 ));
franck@11 34 });
franck@11 35 });
franck@11 36 }
franck@11 37 }, 100);
franck@11 38 },
franck@11 39 detach: function(e, data) {
franck@11 40
franck@11 41 },
franck@14 42 generate: function(id, representation, tableDrag) {
franck@14 43 var $weight = $("<select />"), $tr = $('<tr />'), $td = $("<td />"), parity;
franck@14 44 var separator = $(tableDrag.table).find('div.mee-rm-separator select')[0];
franck@14 45 var wn = separator.name.replace(/\[0\]\[weight\]$/, '[' + id +'][weight]');
franck@14 46 var $required = $("<select />")
franck@14 47 .attr('name', wn.replace(/\[weight\]$/, '[required]'))
franck@14 48 .append("<option value='0'>"+ Drupal.t('Optional') +"</option>")
franck@14 49 .append("<option value='1'>"+ Drupal.t('Required') +"</option>")
franck@14 50 .val(representation.meta.action);
franck@14 51 // If this ressource is already in the Ressource Manager, don't add a line
franck@14 52 if ($('select[name="'+ wn +'"]', tableDrag.table).length) {
franck@14 53 return '';
franck@14 54 }
franck@11 55 $tr
franck@11 56 .addClass('draggable')
franck@11 57 .append($('<td></td>'))
franck@14 58 .append($('<td></td>').append(representation.title))
franck@14 59 .append($('<td></td>').append($required));
franck@11 60 for (var i = -10; i <= 10; i++) {
franck@14 61 $weight.append("<option>"+ i +"</option>");
franck@11 62 }
franck@14 63 $weight.val(0).addClass('mee-rm-weight').attr('name', wn);
franck@14 64 $td.append($weight);
franck@11 65 $tr.append($td);
franck@12 66 parity = $(tableDrag.table).find('tr').size() % 2 ? 'odd' : 'even';
franck@12 67 $tr.addClass(parity);
franck@12 68 tableDrag.makeDraggable($tr.get(0));
franck@11 69 return $tr;
franck@11 70 }
franck@11 71 }