Mercurial > defr > drupal > scald > dnd
comparison js/dnd.js @ 4:c2eb995212bf
TONS of fixes in this commit.
author | David Eads <eads@chicagotech.org> |
---|---|
date | Thu, 19 Feb 2009 12:33:19 -0600 |
parents | 5df0783706f7 |
children | 99ba5941779c |
comparison
equal
deleted
inserted
replaced
3:5df0783706f7 | 4:c2eb995212bf |
---|---|
83 */ | 83 */ |
84 | 84 |
85 (function($) { | 85 (function($) { |
86 $.fn.dnd = function(opt) { | 86 $.fn.dnd = function(opt) { |
87 opt = $.extend({}, { | 87 opt = $.extend({}, { |
88 dropWrapper: '<p class="dnd-inserted"></p>', | 88 dropWrapper: '<p class="dnd-dropped"></p>', |
89 insertBefore: '', | 89 insertBefore: '', |
90 insertAfter: '', | 90 insertAfter: '', |
91 processedClass: 'dnd-processed', | 91 processedClass: 'dnd-processed', |
92 disableClick: true, | |
92 | 93 |
93 processTargets: function(targets) { | 94 processTargets: function(targets) { |
94 return targets.each(function() { | 95 return targets.each(function() { |
95 $('head', $(this).contents()).append('<style type="text/css">.dnd-processed { display: none; }</style>'); | 96 $('head', $(this).contents()).append('<style type="text/css">.dnd-processed { display: none; }</style>'); |
96 return this; | 97 return this; |
143 old_parent = parents[i]; | 144 old_parent = parents[i]; |
144 } | 145 } |
145 return $('#'+ element_id, $(target).contents()); | 146 return $('#'+ element_id, $(target).contents()); |
146 }, | 147 }, |
147 | 148 |
148 postprocessDrop: function(target, drop) { return; } | 149 postprocessDrop: function(target, drop, element) { |
150 $(element).addClass('dnd-inserted'); | |
151 } | |
149 | 152 |
150 }, opt); | 153 }, opt); |
151 | 154 |
152 // Initialize plugin | 155 // Initialize plugin |
153 var targets = opt.processTargets(opt.targets); | 156 var targets = opt.processTargets(opt.targets); |
157 if (opt.disableClick) { this.click(function() { return false; }) } | |
154 | 158 |
155 // Process! | 159 // Process! |
156 return this.each(function() { | 160 return this.each(function() { |
157 | 161 |
158 var element = this; | 162 var element = this; |
180 drop | 184 drop |
181 .before(opt.insertBefore) | 185 .before(opt.insertBefore) |
182 .after(opt.insertAfter) | 186 .after(opt.insertAfter) |
183 .wrap(opt.dropWrapper) | 187 .wrap(opt.dropWrapper) |
184 .replaceWith(opt.renderRepresentation(target, drop, representation_id)); | 188 .replaceWith(opt.renderRepresentation(target, drop, representation_id)); |
185 opt.postprocessDrop(target, drop); | 189 opt.postprocessDrop(target, drop, element); |
186 } | 190 } |
187 }, 100); | 191 }, 100); |
188 // @TODO track the timer with $.data() so we can clear it? | 192 // @TODO track the timer with $.data() so we can clear it? |
189 } else if ($(this).is('textarea')) { | 193 } else if ($(this).is('textarea')) { |
190 console.log('@TODO handle textareas via.... regexp?'); | 194 console.log('@TODO handle textareas via.... regexp?'); |