small circular points
[MojoFacets.git] / templates / all_checkboxes.html.ep
index 3e5a6f9..91d62d7 100644 (file)
@@ -3,9 +3,8 @@
 <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>
+<label for=filter_regex>
+<input  type=text name=filter_regex title="enter regex to filter values" placeholder="regex">
 <a id="included" href="#" style="display:none">included</a>
 <a id="excluded" href="#" style="display:none">excluded</a>
 </label>
@@ -39,7 +38,7 @@ function update_checked_count(full) {
        var count = $('#checked-count');
        var nr = -1;
        if ( full ) {
-               nr = $("label input[type='checkbox']:checked").length;
+               nr = $("input[type='checkbox']:checked").length;
        } else {
                nr = parseInt( count.text() );
                if ( this.checked ) {
@@ -58,46 +57,53 @@ var toggle_checkbox = function() {
 };
 
 $('a#included').click( function(){
-    $("label.included input[type='checkbox']:not([disabled='disabled'])").each( toggle_checkbox );
+    $(".included input[type='checkbox']:not([disabled='disabled'])").each( toggle_checkbox );
        update_checked_count(1);
 });
 
 $('a#excluded').click( function(){
-    $("label.excluded input[type='checkbox']:not([disabled='disabled'])").each( toggle_checkbox );
+    $(".excluded input[type='checkbox']:not([disabled='disabled'])").each( toggle_checkbox );
        update_checked_count(1);
 });
 
 
 // regex for column names
 
-var apply_regex = function(e) {
-       console.debug( this, e );
-       var r = new RegExp( this.value ,'i');
+var last_user_regex = '';
+
+var filter_regex = function(user_regex) {
+
+       if ( user_regex == '' || user_regex == last_user_regex ) return false;
+       last_user_regex = user_regex;
+
+       var r = new RegExp( user_regex,'i');
        var included = 0;
        var excluded = 0;
     $("input[type='checkbox']:not([disabled='disabled'])").each( function(i,element){
                if ( r.test( this.value ) ) {
-                       $(this).parent().removeClass('excluded').addClass('included');
+                       $(this).<%= $add_class_to %>.removeClass('excluded').addClass('included');
                        included++;
                } else {
-                       $(this).parent().removeClass('included').addClass('excluded');
+                       $(this).<%= $add_class_to %>.removeClass('included').addClass('excluded');
                        excluded++;
                }
        });
 
        $('a#included').text(included).show();
        $('a#excluded').text(excluded).show();
-       return false;
+
+       console.debug('filter_regex',user_regex,included,excluded, last_user_regex);
 };
 
 $('input[name=filter_regex]')
-.focusout( apply_regex )
+.focusout( function(e) { filter_regex( this.value ) } )
 .keypress( function(e) {
        // disable enter
        var code = e.keyCode ? e.keyCode : e.which;
        //console.debug('key code',code);
        if ( code == 13 ) {
-               return apply_regex(e);
+               filter_regex( this.value );
+               return false;
        } else {
                return true;
        }