Fix category and subforum listing on index + misc
This commit is contained in:
parent
e12eeebb6e
commit
45343a87fd
|
@ -3,7 +3,6 @@ package CharmBoard::Controller::Index;
|
||||||
use utf8;
|
use utf8;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use feature qw(say unicode_strings);
|
|
||||||
use experimental qw(try smartmatch);
|
use experimental qw(try smartmatch);
|
||||||
|
|
||||||
use Mojo::Base 'Mojolicious::Controller', -signatures;
|
use Mojo::Base 'Mojolicious::Controller', -signatures;
|
||||||
|
@ -19,27 +18,28 @@ sub index {
|
||||||
# create a Tree::Simple object that will contain the list
|
# create a Tree::Simple object that will contain the list
|
||||||
# of categories and the subforums that belong to them
|
# of categories and the subforums that belong to them
|
||||||
my $tree =
|
my $tree =
|
||||||
Tree::Simple->new("subfList", Tree::Simple->ROOT);
|
Tree::Simple->new("ROOT", Tree::Simple->ROOT);
|
||||||
|
|
||||||
my ($fetchSubf, $catBranch);
|
my (@fetchSubf, $catBranch);
|
||||||
foreach my $iterCat (@allCat) {
|
foreach my $iterCat (@allCat) {
|
||||||
# create branch of subfList for the current category
|
# create branch of ROOT for the current category
|
||||||
|
|
||||||
$catBranch =
|
$catBranch =
|
||||||
Tree::Simple->new($iterCat, $tree);
|
Tree::Simple->new($iterCat, $tree);
|
||||||
|
|
||||||
# fetch all subforums that belong to this category
|
# fetch all subforums that belong to this category
|
||||||
$fetchSubf =
|
@fetchSubf =
|
||||||
$self->schema->resultset('Subforums')
|
$self->schema->resultset('Subforums')
|
||||||
->fetch_by_cat($iterCat);
|
->fetch_by_cat($iterCat);
|
||||||
|
|
||||||
# add each fetched subforum as children of the branch
|
# add each fetched subforum as children of the branch
|
||||||
# for the current category
|
# for the current category
|
||||||
foreach my $iterSubf ($fetchSubf) {
|
foreach my $iterSubf (@fetchSubf) {
|
||||||
Tree::Simple->new($iterSubf, $catBranch)}}
|
Tree::Simple->new($iterSubf, $catBranch)}}
|
||||||
|
|
||||||
$self->render(
|
$self->render(
|
||||||
template => 'index',
|
template => 'index',
|
||||||
categoryTree => $tree)}
|
categoryTree => $tree)}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
__END__
|
__END__
|
|
@ -1,8 +1,10 @@
|
||||||
package CharmBoard::Controller::Login;
|
package CharmBoard::Controller::Login;
|
||||||
|
|
||||||
|
use utf8;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use experimental qw(try smartmatch);
|
use experimental qw(try smartmatch);
|
||||||
use utf8;
|
|
||||||
use Mojo::Base 'Mojolicious::Controller', -signatures;
|
use Mojo::Base 'Mojolicious::Controller', -signatures;
|
||||||
use CharmBoard::Crypt::Password;
|
use CharmBoard::Crypt::Password;
|
||||||
use CharmBoard::Crypt::Seasoning;
|
use CharmBoard::Crypt::Seasoning;
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package CharmBoard::Controller::Logout;
|
package CharmBoard::Controller::Logout;
|
||||||
|
|
||||||
|
use utf8;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use experimental qw(try smartmatch);
|
use experimental qw(try smartmatch);
|
||||||
use utf8;
|
|
||||||
use Mojo::Base 'Mojolicious::Controller', -signatures;
|
use Mojo::Base 'Mojolicious::Controller', -signatures;
|
||||||
|
|
||||||
sub logout_do {
|
sub logout_do {
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package CharmBoard::Controller::Register;
|
package CharmBoard::Controller::Register;
|
||||||
|
|
||||||
|
use utf8;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use experimental qw(try smartmatch);
|
use experimental qw(try smartmatch);
|
||||||
use utf8;
|
|
||||||
use Mojo::Base 'Mojolicious::Controller', -signatures;
|
use Mojo::Base 'Mojolicious::Controller', -signatures;
|
||||||
use CharmBoard::Crypt::Password;
|
use CharmBoard::Crypt::Password;
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package CharmBoard::Crypt::Password;
|
package CharmBoard::Crypt::Password;
|
||||||
|
|
||||||
|
use utf8;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use experimental qw(try smartmatch);
|
use experimental qw(try smartmatch);
|
||||||
use utf8;
|
|
||||||
use Authen::Passphrase::Argon2;
|
use Authen::Passphrase::Argon2;
|
||||||
use CharmBoard::Crypt::Seasoning;
|
use CharmBoard::Crypt::Seasoning;
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package CharmBoard::Crypt::Seasoning;
|
package CharmBoard::Crypt::Seasoning;
|
||||||
|
|
||||||
|
use utf8;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use experimental qw(try smartmatch);
|
use experimental qw(try smartmatch);
|
||||||
use utf8;
|
|
||||||
use Math::Random::Secure qw(irand);
|
use Math::Random::Secure qw(irand);
|
||||||
|
|
||||||
use Exporter qw(import);
|
use Exporter qw(import);
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package CharmBoard::Schema;
|
package CharmBoard::Schema;
|
||||||
|
|
||||||
|
use utf8;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use experimental qw(try smartmatch);
|
use experimental qw(try smartmatch);
|
||||||
use utf8;
|
|
||||||
use base qw(DBIx::Class::Schema);
|
use base qw(DBIx::Class::Schema);
|
||||||
|
|
||||||
__PACKAGE__->load_namespaces(
|
__PACKAGE__->load_namespaces(
|
||||||
|
|
|
@ -3,7 +3,6 @@ package CharmBoard::Schema::Set::Categories;
|
||||||
use utf8;
|
use utf8;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use feature qw(say unicode_strings);
|
|
||||||
use experimental qw(try smartmatch);
|
use experimental qw(try smartmatch);
|
||||||
|
|
||||||
use base 'DBIx::Class::ResultSet';
|
use base 'DBIx::Class::ResultSet';
|
||||||
|
|
|
@ -3,7 +3,6 @@ package CharmBoard::Schema::Set::Subforums;
|
||||||
use utf8;
|
use utf8;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use feature qw(say unicode_strings);
|
|
||||||
use experimental qw(try smartmatch);
|
use experimental qw(try smartmatch);
|
||||||
|
|
||||||
use base 'DBIx::Class::ResultSet';
|
use base 'DBIx::Class::ResultSet';
|
||||||
|
@ -14,8 +13,7 @@ sub fetch_by_cat {
|
||||||
my $fetch =
|
my $fetch =
|
||||||
$set->search(
|
$set->search(
|
||||||
{'subf_cat' => $_[0] },
|
{'subf_cat' => $_[0] },
|
||||||
{order_by => 'subf_rank',
|
{order_by => 'subf_rank'});
|
||||||
group_by => undef});
|
|
||||||
|
|
||||||
return($fetch->get_column('subf_id')->all)}
|
return($fetch->get_column('subf_id')->all)}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package CharmBoard::Schema::Source::Categories;
|
package CharmBoard::Schema::Source::Categories;
|
||||||
|
|
||||||
|
use utf8;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use experimental qw(try smartmatch);
|
use experimental qw(try smartmatch);
|
||||||
use utf8;
|
|
||||||
use base qw(DBIx::Class::Core);
|
use base qw(DBIx::Class::Core);
|
||||||
|
|
||||||
__PACKAGE__->table('categories');
|
__PACKAGE__->table('categories');
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package CharmBoard::Schema::Source::Posts;
|
package CharmBoard::Schema::Source::Posts;
|
||||||
|
|
||||||
|
use utf8;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use experimental qw(try smartmatch);
|
use experimental qw(try smartmatch);
|
||||||
use utf8;
|
|
||||||
use base qw(DBIx::Class::Core);
|
use base qw(DBIx::Class::Core);
|
||||||
|
|
||||||
__PACKAGE__->table('posts');
|
__PACKAGE__->table('posts');
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package CharmBoard::Schema::Source::Session;
|
package CharmBoard::Schema::Source::Session;
|
||||||
|
|
||||||
|
use utf8;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use experimental qw(try smartmatch);
|
use experimental qw(try smartmatch);
|
||||||
use utf8;
|
|
||||||
use base qw(DBIx::Class::Core);
|
use base qw(DBIx::Class::Core);
|
||||||
|
|
||||||
__PACKAGE__->table('sessions');
|
__PACKAGE__->table('sessions');
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package CharmBoard::Schema::Source::Subforums;
|
package CharmBoard::Schema::Source::Subforums;
|
||||||
|
|
||||||
|
use utf8;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use experimental qw(try smartmatch);
|
use experimental qw(try smartmatch);
|
||||||
use utf8;
|
|
||||||
use base qw(DBIx::Class::Core);
|
use base qw(DBIx::Class::Core);
|
||||||
|
|
||||||
__PACKAGE__->table('subforums');
|
__PACKAGE__->table('subforums');
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package CharmBoard::Schema::Source::Threads;
|
package CharmBoard::Schema::Source::Threads;
|
||||||
|
|
||||||
|
use utf8;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use experimental qw(try smartmatch);
|
use experimental qw(try smartmatch);
|
||||||
use utf8;
|
|
||||||
use base qw(DBIx::Class::Core);
|
use base qw(DBIx::Class::Core);
|
||||||
|
|
||||||
__PACKAGE__->table('threads');
|
__PACKAGE__->table('threads');
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
package CharmBoard::Schema::Source::Users;
|
package CharmBoard::Schema::Source::Users;
|
||||||
|
|
||||||
|
use utf8;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use experimental qw(try smartmatch);
|
use experimental qw(try smartmatch);
|
||||||
use utf8;
|
|
||||||
use base qw(DBIx::Class::Core);
|
use base qw(DBIx::Class::Core);
|
||||||
|
|
||||||
__PACKAGE__->table('users');
|
__PACKAGE__->table('users');
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
#!/usr/bin/env perl
|
#!/usr/bin/env perl
|
||||||
use experimental qw(try smartmatch);
|
|
||||||
|
use utf8;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings;
|
use warnings;
|
||||||
use utf8;
|
use experimental qw(try smartmatch);
|
||||||
|
|
||||||
use Mojo::File qw(curfile);
|
use Mojo::File qw(curfile);
|
||||||
use lib curfile->dirname->sibling('lib')->to_string;
|
use lib curfile->dirname->sibling('lib')->to_string;
|
||||||
|
|
|
@ -22,6 +22,7 @@ foreach my $category ($categoryTree->getAllChildren) { %>
|
||||||
$category->getNodeValue,
|
$category->getNodeValue,
|
||||||
$self->schema->resultset('Categories')->
|
$self->schema->resultset('Categories')->
|
||||||
title_from_id($category->getNodeValue)) %>
|
title_from_id($category->getNodeValue)) %>
|
||||||
|
<% say ('$category: ' . $category); %>
|
||||||
<%
|
<%
|
||||||
foreach my $subforum ($category->getAllChildren) { %>
|
foreach my $subforum ($category->getAllChildren) { %>
|
||||||
<%= $subfItem->(
|
<%= $subfItem->(
|
||||||
|
|
Loading…
Reference in New Issue