invalidate filters on other datasets
[MojoFacets.git] / lib / MojoFacets / Data.pm
index 1e1f87d..eff5f2a 100644 (file)
@@ -544,6 +544,12 @@ sub _filter_on_data {
 
        #warn "# filter $name ",dump($filtered_items);
 
+       # invalidate filters on other datasets
+       foreach my $dataset ( grep { exists $loaded->{$_}->{filters}->{$name} } keys %$loaded ) {
+               delete $loaded->{$dataset}->{filters}->{$name};
+               delete $loaded->{$dataset}->{filtered};
+       }
+
        $loaded->{$path}->{filters}->{$name} = $filtered_items;
        warn "filter $name with ", scalar keys %$filtered_items, " items created\n";
 }
@@ -626,9 +632,27 @@ sub __commit_path_code {
        #warn "__commit_path_code $path $i ",dump( $update );
 }
 
+# uses templates/admin.html.ep
+sub _switch_dataset {
+       my $self = shift;
+
+       my $datasets;
+
+       foreach my $path ( keys %$loaded ) {
+               next unless exists $loaded->{$path}->{data};
+               push @$datasets, $path;
+       }
+
+       warn "# datasets ",dump($datasets);
+
+       $self->stash( 'datasets' => $datasets );
+}
+
 sub items {
        my $self = shift;
 
+       $self->_switch_dataset;
+
        if ( my $show = $self->param('id') ) {
                $self->param('show', $show);
                warn "show $show\n";