kivitendo/SL/DB/Manager/EmailJournal.pm @ daa00fb8
24ab7ec0 | Moritz Bunkus | package SL::DB::Manager::EmailJournal;
|
||
use strict;
|
||||
use parent qw(SL::DB::Helper::Manager);
|
||||
72f19f83 | Moritz Bunkus | use SL::DB::Helper::Paginated;
|
||
use SL::DB::Helper::Sorted;
|
||||
b55ff8df | Tamino Steinert | use SL::DB::Helper::Filtered;
|
||
72f19f83 | Moritz Bunkus | |||
24ab7ec0 | Moritz Bunkus | sub object_class { 'SL::DB::EmailJournal' }
|
||
__PACKAGE__->make_manager_methods;
|
||||
b55ff8df | Tamino Steinert | __PACKAGE__->add_filter_specs(
|
||
linked_to => sub {
|
||||
my ($key, $value, $prefix) = @_;
|
||||
# if $value is truish, we want at least one link otherwise we want none
|
||||
my $comp = !!$value ? '>' : '=';
|
||||
# table emial_journal is aliased as t1
|
||||
return
|
||||
\qq{(
|
||||
SELECT CASE WHEN count(*) $comp 0 THEN TRUE ELSE FALSE END
|
||||
FROM record_links
|
||||
WHERE (
|
||||
(record_links.from_table = 'email_journal'::varchar(50))
|
||||
AND record_links.from_id = t1.id
|
||||
) OR (
|
||||
(record_links.to_table = 'email_journal'::varchar(50))
|
||||
AND record_links.to_id = t1.id
|
||||
)
|
||||
)} => \'TRUE';
|
||||
},
|
||||
);
|
||||
72f19f83 | Moritz Bunkus | sub _sort_spec {
|
||
return (
|
||||
592e11d9 | Geoffrey Richardson | default => [ 'sent_on', 0 ],
|
||
72f19f83 | Moritz Bunkus | columns => {
|
||
SIMPLE => 'ALL',
|
||||
sender => 'sender.name',
|
||||
4e0d0593 | Tamino Steinert | linked_to => qq{(
|
||
b55ff8df | Tamino Steinert | SELECT count(*)
|
||
FROM record_links
|
||||
WHERE
|
||||
8d425838 | Tamino Steinert | ( record_links.from_table = 'email_journal'::varchar(50)
|
||
AND record_links.from_id = email_journal.id
|
||||
) OR (
|
||||
record_links.to_table = 'email_journal'::varchar(50)
|
||||
AND record_links.to_id = email_journal.id
|
||||
)
|
||||
4e0d0593 | Tamino Steinert | )}
|
||
72f19f83 | Moritz Bunkus | },
|
||
);
|
||||
}
|
||||
24ab7ec0 | Moritz Bunkus | 1;
|