$self->get_models->register_handlers(
callback => sub { shift; $self->_callback_handler_for_sorted(@_) },
- get_models => sub { shift; $self->_get_models_handler_for_sorted(@_) },
);
# $::lxdebug->dump(0, "CONSPEC", \%specs);
sub finalize {
my ($self, %params) = @_;
+
+ my %sort_params = $self->read_params;
+ my $sort_spec = $self->specs->{ $sort_params{sort_by} };
+
+ $params{sort_by} = "SL::DB::Manager::$sort_spec->{model}"->make_sort_string(sort_by => $sort_spec->{model_column}, sort_dir => $sort_params{sort_dir});
+
%params;
}
return %params;
}
-sub _get_models_handler_for_sorted {
- my ($self, %params) = @_;
-
- my %sort_params = $self->read_params;
- my $sort_spec = $self->specs->{ $sort_params{sort_by} };
-
- $params{sort_by} = "SL::DB::Manager::$sort_spec->{model}"->make_sort_string(sort_by => $sort_spec->{model_column}, sort_dir => $sort_params{sort_dir});
-
- # $::lxdebug->dump(0, "GM handler for sorted; params nach modif:", \%params);
-
- return %params;
-}
-
-
sub init_form_params {
[ qw(sort_by sort_dir) ]
}
use SL::Controller::Helper::GetModels;
use SL::Controller::Helper::Sorted;
- __PACKAGE__->make_sorted(
+ __PACKAGE__->make_sorted( # update this
DEFAULT_BY => 'run_at',
DEFAULT_DIR => 1,
MODEL => 'BackgroundJobHistory',
<table>
<tr>
- <th>[% L.sortable_table_header('package_name') %]</th>
+ <th>[% L.sortable_table_header('package_name') %]</th> # models
<th>[% L.sortable_table_header('run_at') %]</th>
<th>[% L.sortable_table_header('error') %]</th>
</tr>
sortable list of database models with as few lines as possible.
For this to work the controller has to provide the information which
-indexes are eligible for sorting etc. by a call to L<make_sorted> at
+indexes are eligible for sorting etc. by a call to L<make_sorted> at #not compiletime
compile time.
The underlying functionality that enables the use of more than just
=over 4
-=item C<make_sorted %sort_spec>
+=item C<make_sorted %sort_spec> # meh complete rewrite
This function must be called by a controller at compile time. It is
uesd to set the various parameters required for this helper to do its