]> wagnertech.de Git - mfinanz.git/blob - SL/DB/Manager/EmailJournal.pm
restart apache2 in postinst
[mfinanz.git] / SL / DB / Manager / EmailJournal.pm
1 package SL::DB::Manager::EmailJournal;
2
3 use strict;
4
5 use parent qw(SL::DB::Helper::Manager);
6
7 use SL::DB::Helper::Paginated;
8 use SL::DB::Helper::Sorted;
9 use SL::DB::Helper::Filtered;
10
11 sub object_class { 'SL::DB::EmailJournal' }
12
13 __PACKAGE__->make_manager_methods;
14
15 __PACKAGE__->add_filter_specs(
16   linked_to => sub {
17     my ($key, $value, $prefix) = @_;
18
19     # if $value is truish, we want at least one link otherwise we want none
20     my $comp = !!$value ? '>' : '=';
21
22     # table emial_journal is aliased as t1
23     return
24       \qq{(
25         SELECT CASE WHEN count(*) $comp 0 THEN TRUE ELSE FALSE END
26         FROM record_links
27         WHERE (
28             (record_links.from_table = 'email_journal'::varchar(50))
29             AND record_links.from_id = t1.id
30           ) OR (
31             (record_links.to_table = 'email_journal'::varchar(50))
32             AND record_links.to_id = t1.id
33           )
34         )} => \'TRUE';
35   },
36 );
37
38 sub _sort_spec {
39   return (
40     default => [ 'sent_on', 0 ],
41     columns => {
42       SIMPLE => 'ALL',
43       sender => 'sender.name',
44       linked_to => qq{(
45         SELECT count(*)
46         FROM record_links
47         WHERE
48           ( record_links.from_table = 'email_journal'::varchar(50)
49             AND record_links.from_id = email_journal.id
50           ) OR (
51             record_links.to_table = 'email_journal'::varchar(50)
52             AND record_links.to_id = email_journal.id
53           )
54       )}
55     },
56   );
57 }
58
59 1;