<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>
-<a id="included" href="#">included</a>
-<a id="excluded" href="#">excluded</a>
+<span class=hint>tab or click outside to apply</span>
+<a id="included" href="#" style="display:none">included</a>
+<a id="excluded" href="#" style="display:none">excluded</a>
+</label>
<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() );
});
$('a#none').click( function(){
$("input[type='checkbox']:not([disabled='disabled'])").attr('checked', false);
+ $('#checked-count').text( 0 );
+});
+
+$('a#toggle').click( function(){
+ var count = 0;
+ $("input[type='checkbox']:not([disabled='disabled'])").each( function() {
+ this.checked = ! this.checked;
+ if ( this.checked ) count++;
+ });
+ $('#checked-count').text( count );
});
+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'])").attr('checked', true);
-}).hide();
+ $("label.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);
-}).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;
}
});
- $('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>