+<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>
+<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>
+</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() );
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 ) {
$("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'])").attr('checked', true);
+ $(".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'])").attr('checked', true);
+ $(".excluded input[type='checkbox']:not([disabled='disabled'])").each( toggle_checkbox );
update_checked_count(1);
});
-$('input[name=filter_regex]').focusout( function(e) {
- console.debug( this, e );
- var r = new RegExp( this.value ,'i');
+
+// regex for column names
+
+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();
+
+ console.debug('filter_regex',user_regex,included,excluded, last_user_regex);
+};
+
+$('input[name=filter_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 ) {
+ filter_regex( this.value );
+ return false;
+ } else {
+ return true;
+ }
});
+
update_checked_count(1);
}); // document.ready