r13445 - MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/skins/referencebrowser

"Carsten Senger" <[email protected]>
Newsgroups gmane.comp.web.zope.plone.archetypes.cvs
Message-ID <[email protected]>
Author: csenger
Date: Wed Feb  2 21:25:49 2011
New Revision: 13445

Modified:
   MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/skins/referencebrowser/referencebrowser.js
Log:
Improve animation of "Added" and "Removed" messages to not flicker.
Simplify showMessage.


Modified: MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/skins/referencebrowser/referencebrowser.js
==============================================================================
--- MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/skins/referencebrowser/referencebrowser.js	(original)
+++ MoreFieldsAndWidgets/archetypes.referencebrowserwidget/trunk/src/archetypes/referencebrowserwidget/skins/referencebrowser/referencebrowser.js	Wed Feb  2 21:25:49 2011
@@ -52,21 +52,21 @@
       var tablerow = target.parent().parent();
       var title = tablerow.find('strong').html();
       var uid = target.attr('rel');
-      var messageType;
+      var messageId;
       if (this.checked === true) {
           refbrowser_setReference('ref_browser_' + fieldname,
                                   uid, title, parseInt(multi));
-          messageType = 'added';
+          messageId = '#messageAdded';
           }
       else {
           refbrowser_delReference(fieldname, uid);
-          messageType = 'removed';
+          messageId = '#messageRemoved';
       }
       if (close_window === '1') {
           overlay = jq('div#content').data('overlay');
           overlay.close();
       } else {
-          showMessage(messageType, title);
+          showMessage(messageId, title);
       };
       });
 
@@ -334,24 +334,24 @@
     nextelem.id = 'ref-' + widget_id + '-' + pos;
 }
 
-function showMessage(messageType, message) {
-    var new_info,
-        old_info;
-    if (messageType === 'added') {
-        new_info = jq('#messageAdded');
-        old_info = jq('#messageRemoved');
-    } else if (messageType === 'removed') {
-        new_info = jq('#messageRemoved');
-        old_info = jq('#messageAdded');
-    };
-    new_info.hide();
-    new_info.find('dd').text(message);
-    old_info.fadeTo(400, 0, function() {
-        new_info.css({opacity: 0});
-        new_info.show();
-        jq('#messageWrapper').animate({height: new_info.height() + 20 }, 400);
-        new_info.animate({opacity: 1}, 400);
-        old_info.hide();
+function showMessage(messageId, text) {
+    var template = jq(messageId).parent(),
+        message_div = template.clone(),
+        message = message_div.children(),
+        old_message = jq('#message'),
+        message_wrapper = jq('#messageWrapper');
+
+    // insert a new, cloned message
+    message_wrapper.prepend(message_div);
+    message.find('dd').text(text);
+    message.css({opacity: 0}).show();
+    message.attr('id', 'message');
+
+    // animate message switch and remove old message
+    message_wrapper.animate({height: message.height() + 20 }, 400);
+    message.fadeTo(400, 1);
+    old_message.fadeTo(400, 0, function() {
+        old_message.parent().remove();
     });
 };
 

------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires 
February 28th, so secure your free ArcSight Logger TODAY! 
http://p.sf.net/sfu/arcsight-sfd2d
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.