diff --git a/CHANGES.txt b/CHANGES.txt index 7050129..630b9c7 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -10,6 +10,13 @@ Changelog - Fixed conditional initialization of querywidget, see https://dev.plone.org/ticket/12529 [kroman0] +- The widget can now be hidden, when clicking on the + window or the widget. The event is only effective + when the widget is displayed. + [bosim] + +- Translations are now in Plone domain + [bosim] 1.0b2 (2012-03-19) ------------------ diff --git a/plone/formwidget/querystring/input.pt b/plone/formwidget/querystring/input.pt index cda441e..58eeb01 100644 --- a/plone/formwidget/querystring/input.pt +++ b/plone/formwidget/querystring/input.pt @@ -1,7 +1,8 @@
+ tal:attributes="data-fieldname fieldName" + i18n:domain="plone">
-
Select…
+
+ + Select… +
diff --git a/plone/formwidget/querystring/querywidget.css b/plone/formwidget/querystring/querywidget.css index 4563881..b60d73d 100644 --- a/plone/formwidget/querystring/querywidget.css +++ b/plone/formwidget/querystring/querywidget.css @@ -69,11 +69,8 @@ dl.multipleSelectionWidget, } .multipleSelectionWidget dd { width: 198px; - border-width: 1px; - border-style: solid; background: white; overflow:auto; - height:6.5em; } .multipleSelectionWidget label { display: block; @@ -98,3 +95,14 @@ dl.querywidget dd { .criteria { clear: both; } +.widgetPulldownMenu { + border-width: 1px; + border-style: solid; + height:6.5em; +} + +/* TODO: This should be fixed in public.css, so hiddenStructure will always + have the highest priority. */ +.multipleSelectionWidget .hiddenStructure { + display: none !important; +} \ No newline at end of file diff --git a/plone/formwidget/querystring/querywidget.js b/plone/formwidget/querystring/querywidget.js index fbddfa5..d49f81b 100644 --- a/plone/formwidget/querystring/querywidget.js +++ b/plone/formwidget/querystring/querywidget.js @@ -223,6 +223,16 @@ $.get(query, {}, function (data) { $('.QueryWidget .previewresults').html(data); }); }; + /* Clicking outside a multipleSelectionWidget will close all open + multipleSelectionWidgets */ + $.querywidget.hideMultiSelectionWidgetEvent = function(event) { + if ($(event.target).parents('.multipleSelectionWidget').length) { + return; + } + $('.multipleSelectionWidget dd').addClass('hiddenStructure'); + } + + // Enhance for javascript browsers $(document).ready(function () { @@ -322,10 +332,13 @@ }); $('.multipleSelectionWidget dt').live('click', function () { - if ($(this).parent().children('dd').hasClass('hiddenStructure')) { - $(this).parent().children('dd').removeClass('hiddenStructure'); + var multiselectionwidget = $(this).parent().children('dd'); + if(!$(multiselectionwidget).hasClass('hiddenStructure')) { + $(multiselectionwidget).addClass('hiddenStructure'); + $(window).unbind('click', $.querywidget.hideMultiSelectionWidgetEvent); } else { - $(this).parent().children('dd').addClass('hiddenStructure'); + $(multiselectionwidget).removeClass('hiddenStructure'); + $(window).bind('click', $.querywidget.hideMultiSelectionWidgetEvent); } });