[Testbot] Plone 4.3 - Python 2.7 - Build # 2343 - Still failing! - 1 failure(s)

jenkins at plone.org jenkins at plone.org
Fri Jun 13 13:43:24 UTC 2014


-------------------------------------------------------------------------------
Plone 4.3 - Python 2.7 - Build # 2343 - Still Failing!
-------------------------------------------------------------------------------

http://jenkins.plone.org/job/plone-4.3-python-2.7/2343/


-------------------------------------------------------------------------------
CHANGES
-------------------------------------------------------------------------------

Repository: Products.CMFPlone
Branch: refs/heads/4.3.x
Date: 2014-05-16T11:35:18+02:00
Author: Johannes Raggam (thet) <raggam-nl at adm.at>
Commit: https://github.com/plone/Products.CMFPlone/commit/6c6d11162940f6b9510364120c419bf8ea37a825

fix missing jQuery.browser in popupforms.js to work with jQuery 1.9

Files changed:
M Products/CMFPlone/skins/plone_ecmascript/popupforms.js
M docs/CHANGES.rst

diff --git a/Products/CMFPlone/skins/plone_ecmascript/popupforms.js b/Products/CMFPlone/skins/plone_ecmascript/popupforms.js
index 43a1af9..116c8a2 100644
--- a/Products/CMFPlone/skins/plone_ecmascript/popupforms.js
+++ b/Products/CMFPlone/skins/plone_ecmascript/popupforms.js
@@ -8,6 +8,21 @@
 ******/
 
 
+function msieversion() {
+    // Detect MSIE browser version
+    // http://support.microsoft.com/kb/167820
+    var ua = window.navigator.userAgent;
+    var msie = ua.indexOf("MSIE ");
+
+    if (msie > 0) {
+        // If Internet Explorer, return version number
+        return parseInt(ua.substring(msie + 5, ua.indexOf(".", msie)));
+    } else {
+        // If another browser, return 0
+        return 0;
+    }
+}
+
 var common_content_filter = '#content>*:not(div.configlet),dl.portalMessage.error,dl.portalMessage.info';
 
 jQuery.extend(jQuery.tools.overlay.conf,
@@ -50,7 +65,7 @@ jQuery.extend(jQuery.tools.overlay.conf,
 
 jQuery(function($){
 
-    if (jQuery.browser.msie && parseInt(jQuery.browser.version, 10) < 7) {
+    if (msieversion() > 0 && msieversion() < 7) {
         // it's not realistic to think we can deal with all the bugs
         // of IE 6 and lower. Fortunately, all this is just progressive
         // enhancement.
diff --git a/docs/CHANGES.rst b/docs/CHANGES.rst
index 60142ff..940bd3c 100644
--- a/docs/CHANGES.rst
+++ b/docs/CHANGES.rst
@@ -8,6 +8,9 @@ Changelog
 4.3.4 (unreleased)
 ------------------
 
+- Fix JavaScript to work with recent jQuery (>= 1.9) versions.
+  [thet]
+
 - Improve event_view - do not show time when user specifies the same start and 
   end time for an event.
   [spereverde]


Repository: Products.CMFPlone
Branch: refs/heads/4.3.x
Date: 2014-05-16T12:18:20+02:00
Author: Johannes Raggam (thet) <raggam-nl at adm.at>
Commit: https://github.com/plone/Products.CMFPlone/commit/cad7acd1c9874278b7537f8cebbb7154bd848f09

Declare minimum plone.app.jquery dependency (1.7.2) in setup.py.

Files changed:
M docs/CHANGES.rst
M setup.py

diff --git a/docs/CHANGES.rst b/docs/CHANGES.rst
index 940bd3c..500ab56 100644
--- a/docs/CHANGES.rst
+++ b/docs/CHANGES.rst
@@ -8,6 +8,9 @@ Changelog
 4.3.4 (unreleased)
 ------------------
 
+- Declare minimum plone.app.jquery dependency (1.7.2) in setup.py.
+  [thet]
+
 - Fix JavaScript to work with recent jQuery (>= 1.9) versions.
   [thet]
 
diff --git a/setup.py b/setup.py
index fd2d079..e97f62a 100644
--- a/setup.py
+++ b/setup.py
@@ -90,7 +90,7 @@
           'plone.app.folder',
           'plone.app.form',
           'plone.app.i18n',
-          'plone.app.jquery',
+          'plone.app.jquery>=1.7.2',
           'plone.app.jquerytools',
           'plone.app.layout >=1.1.7dev-r23744',
           'plone.app.linkintegrity >=1.0.3',


Repository: Products.CMFPlone
Branch: refs/heads/4.3.x
Date: 2014-05-16T12:22:34+02:00
Author: Johannes Raggam (thet) <raggam-nl at adm.at>
Commit: https://github.com/plone/Products.CMFPlone/commit/29a3be6cdf3b69a31d9733a63e1eb2d387232ee1

to attach an event handler, use "on" instead of the deprecated "live" (depends on jq 1.7)

Files changed:
M Products/CMFPlone/skins/plone_ecmascript/inline_validation.js

diff --git a/Products/CMFPlone/skins/plone_ecmascript/inline_validation.js b/Products/CMFPlone/skins/plone_ecmascript/inline_validation.js
index e1aaba8..0d7770a 100644
--- a/Products/CMFPlone/skins/plone_ecmascript/inline_validation.js
+++ b/Products/CMFPlone/skins/plone_ecmascript/inline_validation.js
@@ -19,7 +19,7 @@ jQuery(function ($) {
     };
 
     // Archetypes
-    $('.field input.blurrable,.field select.blurrable,.field textarea.blurrable').live('blur', function () {
+    $(document).on('blur', '.field input.blurrable, .field select.blurrable, .field textarea.blurrable', function () {
         var $input = $(this),
             $field = $input.closest('.field'),
             uid = $field.attr('data-uid'),
@@ -50,12 +50,15 @@ jQuery(function ($) {
             dataType: 'json'
         });
     };
-    $('.formlibInlineValidation input[type="text"]').live('blur', function () { formlib_validate_field(this); });
-    $('.formlibInlineValidation input[type="password"]').live('blur', function () { formlib_validate_field(this); });
-    $('.formlibInlineValidation input[type="checkbox"]').live('blur', function () { formlib_validate_field(this); });
-    $('.formlibInlineValidation input[type="radio"]').live('blur', function () { formlib_validate_field(this); });
-    $('.formlibInlineValidation select').live('blur', function () { formlib_validate_field(this); });
-    $('.formlibInlineValidation textarea').live('blur', function () { formlib_validate_field(this); });
+    $(document).on(
+        'blur',
+        '.formlibInlineValidation input[type="text"], ' +
+        '.formlibInlineValidation input[type="password"], ' +
+        '.formlibInlineValidation input[type="checkbox"], ' +
+        '.formlibInlineValidation input[type="radio"], ' +
+        '.formlibInlineValidation select, ' +
+        '.formlibInlineValidation textarea',
+        function () { formlib_validate_field(this); });
 
     // z3c.form
     var z3cform_validate_field = function (input) {
@@ -77,11 +80,14 @@ jQuery(function ($) {
             });
         }
     };
-    $('.z3cformInlineValidation input[type="text"]').live('blur', function () { z3cform_validate_field(this); });
-    $('.z3cformInlineValidation input[type="password"]').live('blur', function () { z3cform_validate_field(this); });
-    $('.z3cformInlineValidation input[type="checkbox"]').live('blur', function () { z3cform_validate_field(this); });
-    $('.z3cformInlineValidation input[type="radio"]').live('blur', function () { z3cform_validate_field(this); });
-    $('.z3cformInlineValidation select').live('blur', function () { z3cform_validate_field(this); });
-    $('.z3cformInlineValidation textarea').live('blur', function () { z3cform_validate_field(this); });
+    $(document).on(
+        'blur',
+        '.z3cformInlineValidation input[type="text"], ' +
+        '.z3cformInlineValidation input[type="password"], ' +
+        '.z3cformInlineValidation input[type="checkbox"], ' +
+        '.z3cformInlineValidation input[type="radio"], ' +
+        '.z3cformInlineValidation select, ' +
+        '.z3cformInlineValidation textarea',
+        function () { z3cform_validate_field(this); });
 
 });


Repository: Products.CMFPlone
Branch: refs/heads/4.3.x
Date: 2014-05-16T13:14:51+02:00
Author: Johannes Raggam (thet) <raggam-nl at adm.at>
Commit: https://github.com/plone/Products.CMFPlone/commit/9a037a23e9affaff9a6fc2ea0166dbcfd55ea402

don't attach these event handler on document to prevent the event from bubbling up the whole DOM, which can lead to poor performance

Files changed:
M Products/CMFPlone/skins/plone_ecmascript/inline_validation.js

diff --git a/Products/CMFPlone/skins/plone_ecmascript/inline_validation.js b/Products/CMFPlone/skins/plone_ecmascript/inline_validation.js
index 0d7770a..c721c03 100644
--- a/Products/CMFPlone/skins/plone_ecmascript/inline_validation.js
+++ b/Products/CMFPlone/skins/plone_ecmascript/inline_validation.js
@@ -19,7 +19,9 @@ jQuery(function ($) {
     };
 
     // Archetypes
-    $(document).on('blur', '.field input.blurrable, .field select.blurrable, .field textarea.blurrable', function () {
+    $('.field input.blurrable, ' +
+            '.field select.blurrable, ' +
+            '.field textarea.blurrable').on('blur', function () {
         var $input = $(this),
             $field = $input.closest('.field'),
             uid = $field.attr('data-uid'),
@@ -50,14 +52,13 @@ jQuery(function ($) {
             dataType: 'json'
         });
     };
-    $(document).on(
+    $('.formlibInlineValidation input[type="text"], ' +
+            '.formlibInlineValidation input[type="password"], ' +
+            '.formlibInlineValidation input[type="checkbox"], ' +
+            '.formlibInlineValidation input[type="radio"], ' +
+            '.formlibInlineValidation select, ' +
+            '.formlibInlineValidation textarea').on(
         'blur',
-        '.formlibInlineValidation input[type="text"], ' +
-        '.formlibInlineValidation input[type="password"], ' +
-        '.formlibInlineValidation input[type="checkbox"], ' +
-        '.formlibInlineValidation input[type="radio"], ' +
-        '.formlibInlineValidation select, ' +
-        '.formlibInlineValidation textarea',
         function () { formlib_validate_field(this); });
 
     // z3c.form
@@ -80,14 +81,13 @@ jQuery(function ($) {
             });
         }
     };
-    $(document).on(
+    $('.z3cformInlineValidation input[type="text"], ' +
+            '.z3cformInlineValidation input[type="password"], ' +
+            '.z3cformInlineValidation input[type="checkbox"], ' +
+            '.z3cformInlineValidation input[type="radio"], ' +
+            '.z3cformInlineValidation select, ' +
+            '.z3cformInlineValidation textarea').on(
         'blur',
-        '.z3cformInlineValidation input[type="text"], ' +
-        '.z3cformInlineValidation input[type="password"], ' +
-        '.z3cformInlineValidation input[type="checkbox"], ' +
-        '.z3cformInlineValidation input[type="radio"], ' +
-        '.z3cformInlineValidation select, ' +
-        '.z3cformInlineValidation textarea',
         function () { z3cform_validate_field(this); });
 
 });


Repository: Products.CMFPlone
Branch: refs/heads/4.3.x
Date: 2014-05-20T14:29:33+02:00
Author: Johannes Raggam (thet) <raggam-nl at adm.at>
Commit: https://github.com/plone/Products.CMFPlone/commit/a121faa4bbe42cb22dca7a25f8f1def3be598cf0

We need the event handler to be attached to document, as forms may loaded via
ajax. So:
Revert "don't attach these event handler on document to prevent the event from bubbling up the whole DOM, which can lead to poor performance"

This reverts commit 9a037a23e9affaff9a6fc2ea0166dbcfd55ea402.

Files changed:
M Products/CMFPlone/skins/plone_ecmascript/inline_validation.js

diff --git a/Products/CMFPlone/skins/plone_ecmascript/inline_validation.js b/Products/CMFPlone/skins/plone_ecmascript/inline_validation.js
index c721c03..0d7770a 100644
--- a/Products/CMFPlone/skins/plone_ecmascript/inline_validation.js
+++ b/Products/CMFPlone/skins/plone_ecmascript/inline_validation.js
@@ -19,9 +19,7 @@ jQuery(function ($) {
     };
 
     // Archetypes
-    $('.field input.blurrable, ' +
-            '.field select.blurrable, ' +
-            '.field textarea.blurrable').on('blur', function () {
+    $(document).on('blur', '.field input.blurrable, .field select.blurrable, .field textarea.blurrable', function () {
         var $input = $(this),
             $field = $input.closest('.field'),
             uid = $field.attr('data-uid'),
@@ -52,13 +50,14 @@ jQuery(function ($) {
             dataType: 'json'
         });
     };
-    $('.formlibInlineValidation input[type="text"], ' +
-            '.formlibInlineValidation input[type="password"], ' +
-            '.formlibInlineValidation input[type="checkbox"], ' +
-            '.formlibInlineValidation input[type="radio"], ' +
-            '.formlibInlineValidation select, ' +
-            '.formlibInlineValidation textarea').on(
+    $(document).on(
         'blur',
+        '.formlibInlineValidation input[type="text"], ' +
+        '.formlibInlineValidation input[type="password"], ' +
+        '.formlibInlineValidation input[type="checkbox"], ' +
+        '.formlibInlineValidation input[type="radio"], ' +
+        '.formlibInlineValidation select, ' +
+        '.formlibInlineValidation textarea',
         function () { formlib_validate_field(this); });
 
     // z3c.form
@@ -81,13 +80,14 @@ jQuery(function ($) {
             });
         }
     };
-    $('.z3cformInlineValidation input[type="text"], ' +
-            '.z3cformInlineValidation input[type="password"], ' +
-            '.z3cformInlineValidation input[type="checkbox"], ' +
-            '.z3cformInlineValidation input[type="radio"], ' +
-            '.z3cformInlineValidation select, ' +
-            '.z3cformInlineValidation textarea').on(
+    $(document).on(
         'blur',
+        '.z3cformInlineValidation input[type="text"], ' +
+        '.z3cformInlineValidation input[type="password"], ' +
+        '.z3cformInlineValidation input[type="checkbox"], ' +
+        '.z3cformInlineValidation input[type="radio"], ' +
+        '.z3cformInlineValidation select, ' +
+        '.z3cformInlineValidation textarea',
         function () { z3cform_validate_field(this); });
 
 });


Repository: Products.CMFPlone
Branch: refs/heads/4.3.x
Date: 2014-05-20T14:33:54+02:00
Author: Johannes Raggam (thet) <raggam-nl at adm.at>
Commit: https://github.com/plone/Products.CMFPlone/commit/d30931b0bbc6df82b811395c0f8c24b8a3fb9024

format

Files changed:
M Products/CMFPlone/skins/plone_ecmascript/inline_validation.js

diff --git a/Products/CMFPlone/skins/plone_ecmascript/inline_validation.js b/Products/CMFPlone/skins/plone_ecmascript/inline_validation.js
index 0d7770a..b59f148 100644
--- a/Products/CMFPlone/skins/plone_ecmascript/inline_validation.js
+++ b/Products/CMFPlone/skins/plone_ecmascript/inline_validation.js
@@ -19,7 +19,12 @@ jQuery(function ($) {
     };
 
     // Archetypes
-    $(document).on('blur', '.field input.blurrable, .field select.blurrable, .field textarea.blurrable', function () {
+    $(document).on(
+            'blur',
+            '.field input.blurrable, ' +
+            '.field select.blurrable, ' +
+            '.field textarea.blurrable',
+            function () {
         var $input = $(this),
             $field = $input.closest('.field'),
             uid = $field.attr('data-uid'),


Repository: Products.CMFPlone
Branch: refs/heads/4.3.x
Date: 2014-05-27T14:28:52+02:00
Author: Johannes Raggam (thet) <raggam-nl at adm.at>
Commit: https://github.com/plone/Products.CMFPlone/commit/58977b3536d9b78278df77c1ac583191bb9bd511

autoformat

Files changed:
M Products/CMFPlone/skins/plone_ecmascript/dragdropreorder.js

diff --git a/Products/CMFPlone/skins/plone_ecmascript/dragdropreorder.js b/Products/CMFPlone/skins/plone_ecmascript/dragdropreorder.js
index 76c37b6..955dd43 100644
--- a/Products/CMFPlone/skins/plone_ecmascript/dragdropreorder.js
+++ b/Products/CMFPlone/skins/plone_ecmascript/dragdropreorder.js
@@ -16,171 +16,185 @@ ploneDnDReorder.locked = false;
 
 (function($) {
 
-ploneDnDReorder.doDown = function(e) {
-    var dragging = ploneDnDReorder.dragging, 
-        body;
-    // Waiting for a server operation to complete or following an error
-    if (ploneDnDReorder.locked) {return;}
-    // already dragging, probably catching up a lost drag.
-    if (dragging) {
-        if ($(this).attr('id') !== dragging.attr('id')) {
-            ploneDnDReorder.locked = true;
-            dragging.removeClass('dragging').addClass('error');
+    ploneDnDReorder.doDown = function(e) {
+        var dragging = ploneDnDReorder.dragging,
+            body;
+        // Waiting for a server operation to complete or following an error
+        if (ploneDnDReorder.locked) {
+            return;
         }
-        return;
-    }
-    dragging =  $(this).parents('.draggable:first');
-    if (!dragging.length) {return;}
-    ploneDnDReorder.rows.mousemove(ploneDnDReorder.doDrag);
-    body = $('body');
-    body.mouseup(ploneDnDReorder.doUp);
-    body.mouseleave(ploneDnDReorder.doCancel);
-
-    ploneDnDReorder.dragging = dragging;
-    dragging.data('ploneDnDReorder.startPosition', ploneDnDReorder.getPos(dragging));
-    dragging.addClass("dragging");
-    $(this).parents('tr').addClass('dragindicator');
-    // Find the original subset ids. This must be in the current order.
-    dragging.data('ploneDnDReorder.subset_ids', $.map(
-        ploneDnDReorder.table.find('tr.draggable'),
-        function(elem) {
-            return $(elem).attr('id').substr('folder-contents-item-'.length);
-    }));
-
-    return false;
-};
-
-ploneDnDReorder.getPos = function(node) {
-    var pos = node.parent().children('.draggable').index(node[0]);
-    return pos === -1 ? null : pos;
-};
-
-ploneDnDReorder.doDrag = function(e) {
-    var dragging = ploneDnDReorder.dragging,
-        target = this;
-
-    if (!dragging) {return;}
-    if (!target) {return;}
-
-    if ($(target).attr('id') !== dragging.attr('id')) {
-        ploneDnDReorder.swapElements($(target), dragging);
-    }
-    return false;
-};
-
-ploneDnDReorder.swapElements = function(child1, child2) {
-    var parent = child1.parent(),
-        items = parent.children('[id]'),
-        t;
-
-    // Only adjacent elements may be swapped.
-    if (Math.abs(ploneDnDReorder.getPos(child1) - ploneDnDReorder.getPos(child2)) !== 1) {
-        return;
-    }
-
-    items.removeClass('even').removeClass('odd');
-    if (child1[0].swapNode) {
-        // IE proprietary method
-        child1[0].swapNode(child2[0]);
-    } else {
-        // swap the two elements, using a textnode as a position marker
-        t = parent[0].insertBefore(document.createTextNode(''),
-                                       child1[0]);
-        child1.insertBefore(child2);
-        child2.insertBefore(t);
-        $(t).remove();
-    }
-    // odd and even are 0-based, so we want them the other way around
-    parent.children('[id]:odd').addClass('even');
-    parent.children('[id]:even').addClass('odd');
-};
-
-ploneDnDReorder.doUp = function(e) {
-    var dragging = ploneDnDReorder.dragging,
+        // already dragging, probably catching up a lost drag.
+        if (dragging) {
+            if ($(this).attr('id') !== dragging.attr('id')) {
+                ploneDnDReorder.locked = true;
+                dragging.removeClass('dragging').addClass('error');
+            }
+            return;
+        }
+        dragging = $(this).parents('.draggable:first');
+        if (!dragging.length) {
+            return;
+        }
+        ploneDnDReorder.rows.mousemove(ploneDnDReorder.doDrag);
         body = $('body');
-    if (!dragging) {return;}
+        body.mouseup(ploneDnDReorder.doUp);
+        body.mouseleave(ploneDnDReorder.doCancel);
+
+        ploneDnDReorder.dragging = dragging;
+        dragging.data('ploneDnDReorder.startPosition', ploneDnDReorder.getPos(dragging));
+        dragging.addClass("dragging");
+        $(this).parents('tr').addClass('dragindicator');
+        // Find the original subset ids. This must be in the current order.
+        dragging.data('ploneDnDReorder.subset_ids', $.map(
+            ploneDnDReorder.table.find('tr.draggable'),
+            function(elem) {
+                return $(elem).attr('id').substr('folder-contents-item-'.length);
+            }));
+
+        return false;
+    };
 
-    ploneDnDReorder.updatePositionOnServer();
-    dragging.removeData('ploneDnDReorder.startPosition');
-    dragging.removeData('ploneDnDReorder.subset_ids');
-    ploneDnDReorder.rows.unbind('mousemove', ploneDnDReorder.doDrag);
-    body.unbind('mouseup', ploneDnDReorder.doUp);
-    body.unbind('mouseleave', ploneDnDReorder.doCancel);
+    ploneDnDReorder.getPos = function(node) {
+        var pos = node.parent().children('.draggable').index(node[0]);
+        return pos === -1 ? null : pos;
+    };
 
-    $(this).parents('tr').removeClass('dragindicator');
-    return false;
-};
+    ploneDnDReorder.doDrag = function(e) {
+        var dragging = ploneDnDReorder.dragging,
+            target = this;
 
-ploneDnDReorder.doCancel = function(e) {
-    var dragging = ploneDnDReorder.dragging,
-        body = $('body');
-    if (!dragging) {return;}
+        if (!dragging) {
+            return;
+        }
+        if (!target) {
+            return;
+        }
+
+        if ($(target).attr('id') !== dragging.attr('id')) {
+            ploneDnDReorder.swapElements($(target), dragging);
+        }
+        return false;
+    };
+
+    ploneDnDReorder.swapElements = function(child1, child2) {
+        var parent = child1.parent(),
+            items = parent.children('[id]'),
+            t;
+
+        // Only adjacent elements may be swapped.
+        if (Math.abs(ploneDnDReorder.getPos(child1) - ploneDnDReorder.getPos(child2)) !== 1) {
+            return;
+        }
+
+        items.removeClass('even').removeClass('odd');
+        if (child1[0].swapNode) {
+            // IE proprietary method
+            child1[0].swapNode(child2[0]);
+        } else {
+            // swap the two elements, using a textnode as a position marker
+            t = parent[0].insertBefore(document.createTextNode(''),
+                child1[0]);
+            child1.insertBefore(child2);
+            child2.insertBefore(t);
+            $(t).remove();
+        }
+        // odd and even are 0-based, so we want them the other way around
+        parent.children('[id]:odd').addClass('even');
+        parent.children('[id]:even').addClass('odd');
+    };
+
+    ploneDnDReorder.doUp = function(e) {
+        var dragging = ploneDnDReorder.dragging,
+            body = $('body');
+        if (!dragging) {
+            return;
+        }
+
+        ploneDnDReorder.updatePositionOnServer();
+        dragging.removeData('ploneDnDReorder.startPosition');
+        dragging.removeData('ploneDnDReorder.subset_ids');
+        ploneDnDReorder.rows.unbind('mousemove', ploneDnDReorder.doDrag);
+        body.unbind('mouseup', ploneDnDReorder.doUp);
+        body.unbind('mouseleave', ploneDnDReorder.doCancel);
+
+        $(this).parents('tr').removeClass('dragindicator');
+        return false;
+    };
+
+    ploneDnDReorder.doCancel = function(e) {
+        var dragging = ploneDnDReorder.dragging,
+            body = $('body');
+        if (!dragging) {
+            return;
+        }
+
+        dragging.removeClass("dragging");
+        // Need to remove the indicator as well, important in the
+        // case when the mouse up occurs outside the grid.
+        dragging.removeClass('dragindicator');
+
+        if (ploneDnDReorder.getPos(dragging) - dragging.data('ploneDnDReorder.startPosition')) {
+            // position has changed, error out
+            ploneDnDReorder.locked = true;
+            dragging.addClass("error");
+        }
+        ploneDnDReorder.rows.unbind('mousemove', ploneDnDReorder.doDrag);
+        body.unbind('mouseup', ploneDnDReorder.doCancel);
+        body.unbind('mouseleave', ploneDnDReorder.doCancel);
+        ploneDnDReorder.dragging = null;
 
-    dragging.removeClass("dragging");
-    // Need to remove the indicator as well, important in the
-    // case when the mouse up occurs outside the grid.
-    dragging.removeClass('dragindicator');
+        return false;
+    };
+
+    ploneDnDReorder.updatePositionOnServer = function() {
+        var dragging = ploneDnDReorder.dragging,
+            delta,
+            args,
+            encoded;
+
+        if (!dragging) {
+            return;
+        }
+
+        delta = ploneDnDReorder.getPos(dragging) - dragging.data('ploneDnDReorder.startPosition');
 
-    if (ploneDnDReorder.getPos(dragging) - dragging.data('ploneDnDReorder.startPosition')) {
-        // position has changed, error out
+        if (delta === 0) {
+            // nothing changed
+            // Do not just leave: need to cancel.
+            // ... or, up to big surprise at next click.
+            ploneDnDReorder.doCancel.call();
+            return;
+        }
+        // Strip off id prefix
+        args = {
+            item_id: dragging.attr('id').substr('folder-contents-item-'.length),
+            subset_ids: dragging.data('ploneDnDReorder.subset_ids')
+        };
+        args['delta:int'] = delta;
+        // Convert jQuery's name[]=1&name[]=2 to Zope's name:list=1&name:list=2
+        encoded = $.param(args).replace(/%5B%5D=/g, '%3Alist=');
+        $.ajax({
+            type: 'POST',
+            url: 'folder_moveitem',
+            data: encoded,
+            complete: ploneDnDReorder.complete
+        });
         ploneDnDReorder.locked = true;
-        dragging.addClass("error");
-    }
-    ploneDnDReorder.rows.unbind('mousemove', ploneDnDReorder.doDrag);
-    body.unbind('mouseup', ploneDnDReorder.doCancel);
-    body.unbind('mouseleave', ploneDnDReorder.doCancel);
-    ploneDnDReorder.dragging = null;
-
-    return false;
-};
-
-ploneDnDReorder.updatePositionOnServer = function() {
-    var dragging = ploneDnDReorder.dragging,
-        delta,
-        args,
-        encoded;
-
-    if (!dragging) {return;}
-
-    delta = ploneDnDReorder.getPos(dragging) - dragging.data('ploneDnDReorder.startPosition');
-
-    if (delta === 0) {
-        // nothing changed
-        // Do not just leave: need to cancel.
-        // ... or, up to big surprise at next click.
-        ploneDnDReorder.doCancel.call();
-        return;
-    }
-    // Strip off id prefix
-    args = {
-        item_id: dragging.attr('id').substr('folder-contents-item-'.length),
-        subset_ids: dragging.data('ploneDnDReorder.subset_ids')
     };
-    args['delta:int'] = delta;
-    // Convert jQuery's name[]=1&name[]=2 to Zope's name:list=1&name:list=2
-    encoded = $.param(args).replace(/%5B%5D=/g, '%3Alist=');
-    $.ajax({
-        type: 'POST',
-        url: 'folder_moveitem',
-        data: encoded,
-        complete: ploneDnDReorder.complete
-    });
-    ploneDnDReorder.locked = true;
-};
-
-ploneDnDReorder.complete = function(xhr, textStatus) {
-    var dragging = ploneDnDReorder.dragging;
-    dragging.removeClass("dragging");
-    // Need to remove the indicator as well, important in the
-    // case when the mouse up occurs outside the grid.
-    dragging.removeClass('dragindicator');
-    if (textStatus === "success" || textStatus === "notmodified") {
-        ploneDnDReorder.locked = false;
-    } else {
-        dragging.addClass("error");
-    }
-    ploneDnDReorder.dragging = null;
-};
+
+    ploneDnDReorder.complete = function(xhr, textStatus) {
+        var dragging = ploneDnDReorder.dragging;
+        dragging.removeClass("dragging");
+        // Need to remove the indicator as well, important in the
+        // case when the mouse up occurs outside the grid.
+        dragging.removeClass('dragindicator');
+        if (textStatus === "success" || textStatus === "notmodified") {
+            ploneDnDReorder.locked = false;
+        } else {
+            dragging.addClass("error");
+        }
+        ploneDnDReorder.dragging = null;
+    };
 
 }(jQuery));
 
@@ -191,15 +205,15 @@ function initializeDnDReorder(table_selector) {
     if (!ploneDnDReorder.table.length)
         return;
     ploneDnDReorder.rows = $(table + " > tr," +
-                             table + " > tbody > tr");
-     $(table + " > tr > td.draggable," +
-       table + " > tbody > tr > td.draggable")
-       .not('.notDraggable')
-       .mousedown(ploneDnDReorder.doDown)
-       .mouseup(ploneDnDReorder.doUp)
-       .addClass("draggingHook")
-       .css("cursor","ns-resize")
-       .html('&#x28ff;');
+        table + " > tbody > tr");
+    $(table + " > tr > td.draggable," +
+        table + " > tbody > tr > td.draggable")
+        .not('.notDraggable')
+        .mousedown(ploneDnDReorder.doDown)
+        .mouseup(ploneDnDReorder.doUp)
+        .addClass("draggingHook")
+        .css("cursor", "ns-resize")
+        .html('&#x28ff;');
 }
 
 $(document).ready(function() {


Repository: Products.CMFPlone
Branch: refs/heads/4.3.x
Date: 2014-05-27T14:29:54+02:00
Author: Johannes Raggam (thet) <raggam-nl at adm.at>
Commit: https://github.com/plone/Products.CMFPlone/commit/63ca90d7680f0331e6fce56bb6bcdfe36610b2db

really minor jshint^in

Files changed:
M Products/CMFPlone/skins/plone_ecmascript/dragdropreorder.js

diff --git a/Products/CMFPlone/skins/plone_ecmascript/dragdropreorder.js b/Products/CMFPlone/skins/plone_ecmascript/dragdropreorder.js
index 955dd43..8cf29d2 100644
--- a/Products/CMFPlone/skins/plone_ecmascript/dragdropreorder.js
+++ b/Products/CMFPlone/skins/plone_ecmascript/dragdropreorder.js
@@ -14,9 +14,9 @@ ploneDnDReorder.table = null;
 ploneDnDReorder.rows = null;
 ploneDnDReorder.locked = false;
 
-(function($) {
+(function ($) {
 
-    ploneDnDReorder.doDown = function(e) {
+    ploneDnDReorder.doDown = function (e) {
         var dragging = ploneDnDReorder.dragging,
             body;
         // Waiting for a server operation to complete or following an error
@@ -47,19 +47,19 @@ ploneDnDReorder.locked = false;
         // Find the original subset ids. This must be in the current order.
         dragging.data('ploneDnDReorder.subset_ids', $.map(
             ploneDnDReorder.table.find('tr.draggable'),
-            function(elem) {
+            function (elem) {
                 return $(elem).attr('id').substr('folder-contents-item-'.length);
             }));
 
         return false;
     };
 
-    ploneDnDReorder.getPos = function(node) {
+    ploneDnDReorder.getPos = function (node) {
         var pos = node.parent().children('.draggable').index(node[0]);
         return pos === -1 ? null : pos;
     };
 
-    ploneDnDReorder.doDrag = function(e) {
+    ploneDnDReorder.doDrag = function (e) {
         var dragging = ploneDnDReorder.dragging,
             target = this;
 
@@ -76,7 +76,7 @@ ploneDnDReorder.locked = false;
         return false;
     };
 
-    ploneDnDReorder.swapElements = function(child1, child2) {
+    ploneDnDReorder.swapElements = function (child1, child2) {
         var parent = child1.parent(),
             items = parent.children('[id]'),
             t;
@@ -103,7 +103,7 @@ ploneDnDReorder.locked = false;
         parent.children('[id]:even').addClass('odd');
     };
 
-    ploneDnDReorder.doUp = function(e) {
+    ploneDnDReorder.doUp = function (e) {
         var dragging = ploneDnDReorder.dragging,
             body = $('body');
         if (!dragging) {
@@ -121,7 +121,7 @@ ploneDnDReorder.locked = false;
         return false;
     };
 
-    ploneDnDReorder.doCancel = function(e) {
+    ploneDnDReorder.doCancel = function (e) {
         var dragging = ploneDnDReorder.dragging,
             body = $('body');
         if (!dragging) {
@@ -146,7 +146,7 @@ ploneDnDReorder.locked = false;
         return false;
     };
 
-    ploneDnDReorder.updatePositionOnServer = function() {
+    ploneDnDReorder.updatePositionOnServer = function () {
         var dragging = ploneDnDReorder.dragging,
             delta,
             args,
@@ -182,7 +182,7 @@ ploneDnDReorder.locked = false;
         ploneDnDReorder.locked = true;
     };
 
-    ploneDnDReorder.complete = function(xhr, textStatus) {
+    ploneDnDReorder.complete = function (xhr, textStatus) {
         var dragging = ploneDnDReorder.dragging;
         dragging.removeClass("dragging");
         // Need to remove the indicator as well, important in the
@@ -216,6 +216,6 @@ function initializeDnDReorder(table_selector) {
         .html('&#x28ff;');
 }
 
-$(document).ready(function() {
+$(document).ready(function () {
     initializeDnDReorder('#listing-table');
 });


Repository: Products.CMFPlone
Branch: refs/heads/4.3.x
Date: 2014-05-27T14:54:00+02:00
Author: Johannes Raggam (thet) <raggam-nl at adm.at>
Commit: https://github.com/plone/Products.CMFPlone/commit/407a43bc4d50203545455daccd2755145f831df9

fix possible $ is undefined error, which i encountered here...

Files changed:
M Products/CMFPlone/skins/plone_ecmascript/dragdropreorder.js

diff --git a/Products/CMFPlone/skins/plone_ecmascript/dragdropreorder.js b/Products/CMFPlone/skins/plone_ecmascript/dragdropreorder.js
index 8cf29d2..706787e 100644
--- a/Products/CMFPlone/skins/plone_ecmascript/dragdropreorder.js
+++ b/Products/CMFPlone/skins/plone_ecmascript/dragdropreorder.js
@@ -201,12 +201,12 @@ ploneDnDReorder.locked = false;
 
 function initializeDnDReorder(table_selector) {
     var table = table_selector;
-    ploneDnDReorder.table = $(table);
+    ploneDnDReorder.table = jQuery(table);
     if (!ploneDnDReorder.table.length)
         return;
-    ploneDnDReorder.rows = $(table + " > tr," +
+    ploneDnDReorder.rows = jQuery(table + " > tr," +
         table + " > tbody > tr");
-    $(table + " > tr > td.draggable," +
+    jQuery(table + " > tr > td.draggable," +
         table + " > tbody > tr > td.draggable")
         .not('.notDraggable')
         .mousedown(ploneDnDReorder.doDown)


Repository: Products.CMFPlone
Branch: refs/heads/4.3.x
Date: 2014-06-13T14:59:18+02:00
Author: Johannes Raggam (thet) <raggam-nl at adm.at>
Commit: https://github.com/plone/Products.CMFPlone/commit/794308745ef21ab09708164d8b12ed7dccc32d1e

merge with master

Files changed:
M Products/CMFPlone/skins/plone_ecmascript/livesearch.js
M Products/CMFPlone/skins/plone_scripts/livesearch_reply.py
M docs/CHANGES.rst

diff --git a/Products/CMFPlone/skins/plone_ecmascript/livesearch.js b/Products/CMFPlone/skins/plone_ecmascript/livesearch.js
index 779eb24..e8d5fd3 100644
--- a/Products/CMFPlone/skins/plone_ecmascript/livesearch.js
+++ b/Products/CMFPlone/skins/plone_ecmascript/livesearch.js
@@ -29,8 +29,10 @@ var livesearch = (function () {
         var $lastsearch = null,
             $request = null,
             $cache = {},
-            $querytarget = $form.attr('action').replace(/@@search$/g,"") + "livesearch_reply",
             $result = $form.find('div.LSResult'),
+            $querytarget = $form.attr('action').replace(
+                $form.data('action') || '@@search',
+                $result.data('livesearch') || 'livesearch_reply'),
             $shadow = $form.find('div.LSShadow'),
             $path = $form.find('input[name="path"]');
 
diff --git a/Products/CMFPlone/skins/plone_scripts/livesearch_reply.py b/Products/CMFPlone/skins/plone_scripts/livesearch_reply.py
index 84385fa..03f0b56 100644
--- a/Products/CMFPlone/skins/plone_scripts/livesearch_reply.py
+++ b/Products/CMFPlone/skins/plone_scripts/livesearch_reply.py
@@ -69,9 +69,11 @@ def quote_bad_chars(s):
 r = quote_bad_chars(r) + '*'
 searchterms = url_quote_plus(r)
 
+REQUEST = context.REQUEST
 params = {'SearchableText': r,
-          'portal_type': friendly_types,
           'sort_limit': limit + 1}
+if 'portal_type' not in REQUEST:
+    params['portal_type'] = friendly_types
 
 if path is None:
     # useful for subsides
@@ -80,11 +82,10 @@ def quote_bad_chars(s):
     params['path'] = path
 
 # search limit+1 results to know if limit is exceeded
-results = catalog(**params)
+results = catalog(REQUEST, **params)
 
 searchterm_query = '?searchterm=%s' % url_quote_plus(q)
 
-REQUEST = context.REQUEST
 RESPONSE = REQUEST.RESPONSE
 RESPONSE.setHeader('Content-Type', 'text/xml;charset=utf-8')
 
diff --git a/docs/CHANGES.rst b/docs/CHANGES.rst
index 500ab56..22d08fa 100644
--- a/docs/CHANGES.rst
+++ b/docs/CHANGES.rst
@@ -8,6 +8,10 @@ Changelog
 4.3.4 (unreleased)
 ------------------
 
+- Abstract the search form and livesearch action URLs making it easier to
+  extend the search portlet with custom views or other actions.
+  [rpatterson]
+
 - Declare minimum plone.app.jquery dependency (1.7.2) in setup.py.
   [thet]
 




-------------------------------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CHANGES.log
Type: application/octet-stream
Size: 35393 bytes
Desc: not available
URL: <http://lists.plone.org/pipermail/plone-testbot/attachments/20140613/69dac94a/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: build.log
Type: application/octet-stream
Size: 88301 bytes
Desc: not available
URL: <http://lists.plone.org/pipermail/plone-testbot/attachments/20140613/69dac94a/attachment-0003.obj>


More information about the Testbot mailing list