treebird/perl/search.pm
nekobit 52c011968f Refactor search tabs
FossilOrigin-Name: 77ae2a3ad81f7655791d0431d7312dc325da8c292ada210b9a0654d4183740a8
2022-08-19 17:43:42 +00:00

125 lines
2.3 KiB
Perl

package search;
use strict;
use warnings;
use Exporter 'import';
our @EXPORTS = qw( content_search content_search_tags content_search_accounts content_search_statuses search_tags search_accounts search_statuses );
use template_helpers 'to_template';
use status 'generate_status';
use account 'generate_account_item';
use constant
{
SEARCH_CAT_STATUSES => 0,
SEARCH_CAT_ACCOUNTS => 1,
SEARCH_CAT_TAGS => 2
};
sub search_page
{
my ($ssn, $data, $tab, $content) = @_;
my %vars = (
prefix => '',
ssn => $ssn,
tab => $tab,
content => $content,
);
to_template(\%vars, \$data->{'search.tt'});
}
# CONTENT
sub search_accounts
{
my ($ssn, $data, $search) = @_;
my %vars = (
prefix => '',
ssn => $ssn,
search => $search,
);
to_template(\%vars, \$data->{'search_accounts.tt'})
}
sub search_statuses
{
my ($ssn, $data, $search) = @_;
my %vars = (
prefix => '',
ssn => $ssn,
search => $search,
);
to_template(\%vars, \$data->{'search_statuses.tt'})
}
sub search_tags
{
my ($ssn, $data, $search) = @_;
my %vars = (
prefix => '',
ssn => $ssn,
search => $search,
);
to_template(\%vars, \$data->{'search_tags.tt'})
}
sub content_search_accounts
{
my ($ssn, $data, $search) = @_;
search_page($ssn, $data, SEARCH_CAT_ACCOUNTS, search_accounts(@_));
}
sub content_search_statuses
{
my ($ssn, $data, $search) = @_;
my %vars = (
prefix => '',
ssn => $ssn,
search => $search,
create_status => sub { generate_status($ssn, $data, shift); },
);
search_page($ssn, $data, SEARCH_CAT_STATUSES, search_statuses(@_));
}
sub content_search_tags
{
my ($ssn, $data, $tags) = @_;
my %vars = (
prefix => '',
ssn => $ssn,
tags => $tags,
);
search_page($ssn, $data, SEARCH_CAT_TAGS, search_tags(@_));
}
sub content_search
{
my ($ssn, $data, $search) = @_;
my %vars = (
prefix => '',
ssn => $ssn,
search => $search,
statuses => search_statuses,
accounts => search_accounts,
hashtags => search_tags,
);
to_template(\%vars, \$data->{'content_search.tt'});
}