remove javascript positioning of regex filter hint
[MojoFacets.git] / templates / all_checkboxes.html.ep
index 11cfbe9..7e854b2 100644 (file)
@@ -1,24 +1,21 @@
+<span id=column_selection>
 <a id="all"  href="#">all</a>
+<a id="toggle" href="#">toggle</a>
 <a id="none" href="#">none</a>
 
 <label for=filter_regex>regex:
 <input type=text name=filter_regex>
 <span class=hint>tab or click outside to apply</span>
-<a id="included" href="#">included</a>
-<a id="excluded" href="#">excluded</a>
+<a id="included" href="#" style="display:none">included</a>
+<a id="excluded" href="#" style="display:none">excluded</a>
 </label>
+</span>
 
 
 <script type="text/javascript">
 
 $(document).ready( function(){
 
-$('label span.hint').position({
-       my: 'left bottom',
-       at: 'left top',
-       of: $('label input'),
-});
-
 $('a#all').click( function(){
     $("input[type='checkbox']:not([disabled='disabled'])").attr('checked', true);
         $('#checked-count').text( $('#facet-count').text() );
@@ -26,28 +23,51 @@ $('a#all').click( function(){
 
 $('a#none').click( function(){
     $("input[type='checkbox']:not([disabled='disabled'])").attr('checked', false);
-       $('#checked-count').text( '-' );
+       $('#checked-count').text( 0 );
 });
 
-$('a#included').click( function(){
+$('a#toggle').click( function(){
        var count = 0;
-    $("label.included input[type='checkbox']:not([disabled='disabled'])").each( function() {
-               this.checked = true;
-               count++;
+    $("input[type='checkbox']:not([disabled='disabled'])").each( function() {
+               this.checked = ! this.checked;
+               if ( this.checked ) count++;
        });
        $('#checked-count').text( count );
-}).hide();
+});
+
+function update_checked_count(full) {
+       var count = $('#checked-count');
+       var nr = -1;
+       if ( full ) {
+               nr = $("label input[type='checkbox']:checked").length;
+       } else {
+               nr = parseInt( count.text() );
+               if ( this.checked ) {
+                       nr++;
+               } else {
+                       nr--;
+               }
+       }
+       count.text( nr );
+}
+
+$("input[type='checkbox']").bind( 'click', update_checked_count );
+
+var toggle_checkbox = function() {
+               this.checked = ! this.checked;
+};
+
+$('a#included').click( function(){
+    $("label.included input[type='checkbox']:not([disabled='disabled'])").each( toggle_checkbox );
+       update_checked_count(1);
+});
 
 $('a#excluded').click( function(){
-       var count = 0;
-    $("label.excluded input[type='checkbox']:not([disabled='disabled'])").each( function() {
-               this.checked = true;
-               count++;
-       });
-       $('#checked-count').text( count );
-}).hide();
+    $("label.excluded input[type='checkbox']:not([disabled='disabled'])").each( toggle_checkbox );
+       update_checked_count(1);
+});
 
-$('input[name=filter_regex]').change( function(e) {
+$('input[name=filter_regex]').focusout( function(e) {
        console.debug( this, e );
        var r = new RegExp( this.value ,'i');
        var included = 0;
@@ -62,10 +82,12 @@ $('input[name=filter_regex]').change( function(e) {
                }
        });
 
-       $('a#included').text('+' + included).show();
-       $('a#excluded').text('-' + excluded).show();
+       $('a#included').text(included).show();
+       $('a#excluded').text(excluded).show();
 });
 
+update_checked_count(1);
+
 }); // document.ready
 
 </script>