Skip to content

Commit 16f5871

Browse files
committed
New templates
1 parent b7e170a commit 16f5871

File tree

10 files changed

+350
-23
lines changed

10 files changed

+350
-23
lines changed

Web/lib/BlogDB/Web.pm

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,14 @@ sub startup ($self) {
5555

5656
if ( $person && $person->is_enabled ) {
5757
$c->stash->{person} = $person;
58+
$c->stash->{person_permissions} = {
59+
can_manage_tags => $person->setting('can_manage_tags'),
60+
can_manage_blogss => $person->setting('can_manage_blogs'),
61+
};
62+
$c->stash->{person_permissions}->{can_manage_tags} &&= 1;
63+
$c->stash->{person_permissions}->{can_manage_tags} ||= 0;
64+
$c->stash->{person_permissions}->{can_manage_blogs} &&= 1;
65+
$c->stash->{person_permissions}->{can_manage_blogs} ||= 0;
5866
return 1;
5967
}
6068
}

Web/templates/simple/_/_blog_card.tx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@
55
<div class="small text-muted">Last Updated: January 1, 2021</div>
66
<h2 class="card-title h4">[% $blog.title %]</h2>
77
<p class="card-text">[% $blog.tagline %]</p>
8+
%% if ( $is_pending_link ) {
9+
<a class="btn btn-primary" href="[% $c.url_for( 'edit_new_blog', 'id', $blog.id ) %]">Edit/Publish Blog →</a>
10+
%% } else {
811
<a class="btn btn-primary" href="[% $c.url_for( 'view_blog', 'slug',$blog.slug ) %]">View Entry →</a>
12+
%% }
913
</div>
1014
</div>
1115
<!-- _/_blog_card.tx end -->
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<!-- RUN _/forms/input.tx -->
2+
<div class="mb-3">
3+
<label for="form_[% $name %]" class="form-label">[% $title %]</label>
4+
<input type="[% $type %]" class="form-control" id="form_[% $name %]" name="[% $name %]" value="[% $value %]" aria-describedby="form_[% $name %]_help">
5+
<div id="form_[% $name %]_help" class="form-text">[% $help %]</div>
6+
</div>
7+
<!-- END _forms/input.tx -->

Web/templates/simple/_/layout.tx

Lines changed: 41 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@
2020
<div class="collapse navbar-collapse" id="navbarSupportedContent">
2121
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
2222
<li class="nav-item"><a class="nav-link" href="#">Home</a></li>
23-
<li class="nav-item"><a class="nav-link" href="#!">About</a></li>
23+
<li class="nav-item"><a class="nav-link" href="[% $c.url_for('register') %]">Register</a></li>
24+
%% if ( $person ) {
25+
<li class="nav-item"><a class="nav-link" href="[% $c.url_for('tags') %]">Tags Manager</a></li>
26+
%% }
2427
<li class="nav-item"><a class="nav-link" href="#!">Contact</a></li>
2528
<li class="nav-item"><a class="nav-link active" aria-current="page" href="#">Blog</a></li>
2629
</ul>
@@ -54,26 +57,35 @@
5457

5558
%% }
5659
<!-- Panel Block End-->
57-
58-
<!-- Pagination-->
59-
<nav aria-label="Pagination">
60-
<hr class="my-0" />
61-
<ul class="pagination justify-content-center my-4">
62-
<li class="page-item disabled"><a class="page-link" href="#" tabindex="-1" aria-disabled="true">Newer</a></li>
63-
<li class="page-item active" aria-current="page"><a class="page-link" href="#!">1</a></li>
64-
<li class="page-item"><a class="page-link" href="#!">2</a></li>
65-
<li class="page-item"><a class="page-link" href="#!">3</a></li>
66-
<li class="page-item disabled"><a class="page-link" href="#!">...</a></li>
67-
<li class="page-item"><a class="page-link" href="#!">15</a></li>
68-
<li class="page-item"><a class="page-link" href="#!">Older</a></li>
69-
</ul>
70-
</nav>
71-
</div>
60+
<div style="height: 4em"></div>
61+
</div>
7262
<!-- Side widgets-->
7363
<div class="col-lg-4">
7464

75-
%% block blog_homepage_section -> {}
65+
%% if ( ! $person ) {
66+
<div class="card mb-4">
67+
<!--<div class="card-header">Login</div>-->
68+
<div class="card-body">
69+
<form method="post" action="[% $c.url_for( 'do_login' ) %]" class="d-flex">
70+
<input type="hidden" name="return_url" value="[% $form_return || $c.url_for() %]">
71+
<input class="form-control me-2" type="text" name="username" placeholder="Username" aria-label="Username">
72+
<input class="form-control me-2" type="password" name="password" placeholder="Password" aria-label="Password">
73+
<button class="btn btn-outline-success" type="submit">Login</button>
74+
</form>
75+
</div>
76+
</div>
77+
%% } else {
78+
<div class="card mb-4">
79+
<div class="card-header">Hello, [% $person.username %]!</div>
80+
<div class="card-body">
81+
<form method="post" action="[% $c.url_for( 'do_logout' ) %]">
82+
<button class="btn btn-outline-success" type="submit">Logout</button>
83+
</form>
84+
</div>
85+
</div>
86+
%% }
7687

88+
%% block blog_homepage_section -> {}
7789

7890
<!-- Search widget-->
7991
<div class="card mb-4">
@@ -87,7 +99,10 @@
8799
</form>
88100
</div>
89101
</div>
90-
<!-- Categories widget-->
102+
103+
104+
%% if ( $tags_a and $tags_b ) {
105+
<!-- Tags widget-->
91106
<div class="card mb-4">
92107
<div class="card-header">Tags</div>
93108
<div class="card-body">
@@ -101,19 +116,22 @@
101116
</div>
102117
<div class="col-sm-6">
103118
<ul class="list-unstyled mb-0">
104-
%% for $tags_a -> $tag {
119+
%% for $tags_b -> $tag {
105120
<li><a href="#!">#[% $tag.name %]</a></li>
106121
%% }
107122
</ul>
108123
</div>
109124
</div>
110125
</div>
111126
</div>
127+
%% }
128+
129+
112130
<!-- Side widget-->
113-
<div class="card mb-4">
114-
<div class="card-header">Side Widget</div>
115-
<div class="card-body">You can put anything you want inside of these side widgets. They are easy to use, and feature the Bootstrap 5 card component!</div>
116-
</div>
131+
%% # <div class="card mb-4">
132+
%% # <div class="card-header">Side Widget</div>
133+
%% # <div class="card-body">You can put anything you want inside of these side widgets. They are easy to use, and feature the Bootstrap 5 card component!</div>
134+
%% # </div>
117135
</div>
118136
</div>
119137
</div>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
%% cascade simple::_::layout { title => 'New Blogs',
2+
%%
3+
%% }
4+
5+
%% override panel -> {
6+
%% for $blogs -> $blog {
7+
%% if ( $~blog.is_first ) {
8+
%% # <!-- Large Display -->
9+
%% include 'simple/_/_blog_card.tx' { blog => $blog, is_pending_link => 1 };
10+
%% } else {
11+
%% # <!-- Small Displays -->
12+
%% if ( $~blog.index % 2 == 1 ) {
13+
<div class="row">
14+
<div class="col-lg-6">
15+
%% include 'simple/_/_blog_card.tx' { blog => $blog, is_pending_link => 1 };
16+
</div>
17+
%% if ( $~blog.is_last ) { # Display
18+
%% # <!-- If we end the loop here, we need to close <row>.-->
19+
</div>
20+
%% }
21+
%% } else {
22+
<div class="col-lg-6">
23+
%% include 'simple/_/_blog_card.tx' { blog => $blog, is_pending_link => 1 };
24+
</div>
25+
</div>
26+
%% }
27+
%% }
28+
%% }
29+
%% }
30+
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
%% cascade simple::_::layout { title => 'Forgot Password',
2+
%%
3+
%% }
4+
5+
%% override panel -> {
6+
<div class="row">
7+
<!-- Error Handling On LHS -->
8+
<div class="col">
9+
%% if ( $errors.size() ) {
10+
<div style="margin-top: 2em" class="alert alert-danger" role="alert">
11+
There were errors with your request that could not be resolved:
12+
<ul>
13+
%% for $errors -> $error {
14+
<li>[% $error %]</li>
15+
%% }
16+
</ul>
17+
</div>
18+
%% }
19+
</div>
20+
21+
<!-- Forgot Handling On RHS -->
22+
<div class="col">
23+
<form method="post" action="[% $c.url_for( 'do_forgot_password' ) %]">
24+
%% include 'simple/_/form/input.tx' { type => 'text', name => 'username',
25+
%% title => 'Username (or email)',
26+
%% help => 'The username or email address you signed up with.',
27+
%% value => $form_username,
28+
%% };
29+
30+
<button type="submit" class="btn btn-primary float-end">Send Reset Email</button>
31+
32+
</form>
33+
</div>
34+
</div>
35+
%% }

Web/templates/simple/index.html.tx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,17 @@
2626
%% }
2727
%% }
2828
%% }
29+
30+
<nav aria-label="Pagination">
31+
<hr class="my-0" />
32+
<ul class="pagination justify-content-center my-4">
33+
<li class="page-item disabled"><a class="page-link" href="#" tabindex="-1" aria-disabled="true">Newer</a></li>
34+
<li class="page-item active" aria-current="page"><a class="page-link" href="#!">1</a></li>
35+
<li class="page-item"><a class="page-link" href="#!">2</a></li>
36+
<li class="page-item"><a class="page-link" href="#!">3</a></li>
37+
<li class="page-item disabled"><a class="page-link" href="#!">...</a></li>
38+
<li class="page-item"><a class="page-link" href="#!">15</a></li>
39+
<li class="page-item"><a class="page-link" href="#!">Older</a></li>
40+
</ul>
41+
</nav>
2942
%% }
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
%% cascade simple::_::layout { title => 'Register',
2+
%%
3+
%% }
4+
5+
6+
7+
%% override panel -> {
8+
<div class="row">
9+
<!-- Error Handling On LHS -->
10+
<div class="col">
11+
%% if ( $errors.size() ) {
12+
<div style="margin-top: 2em" class="alert alert-danger" role="alert">
13+
There were errors with your request that could not be resolved:
14+
<ul>
15+
%% for $errors -> $error {
16+
<li>[% $error %]</li>
17+
%% }
18+
</ul>
19+
</div>
20+
%% }
21+
</div>
22+
23+
<!-- Registration Handling On RHS -->
24+
<div class="col">
25+
<form method="post" action="[% $c.url_for( 'do_register' ) %]">
26+
%% include 'simple/_/form/input.tx' { type => 'text', name => 'username',
27+
%% title => 'Username',
28+
%% help => 'Your username is unique, friends can follow you at /user/YourName',
29+
%% value => $form_username,
30+
%% };
31+
32+
%% include 'simple/_/form/input.tx' { type => 'email', name => 'email',
33+
%% title => 'Email address',
34+
%% help => 'You will need to confirm your email address to post comments.',
35+
%% value => $form_email,
36+
%% };
37+
38+
%% include 'simple/_/form/input.tx' { type => 'password', name => 'password',
39+
%% title => 'Password',
40+
%% help => 'You will need your password to login.',
41+
%% value => $form_password,
42+
%% };
43+
44+
%% include 'simple/_/form/input.tx' { type => 'password', name => 'confirm',
45+
%% title => 'Confirm password',
46+
%% help => mark_raw('Just to <strike>annoy you</strike> be sure it is correct.'),
47+
%% value => $form_confirm,
48+
%% };
49+
50+
<button type="submit" class="btn btn-primary float-end">Register</button>
51+
52+
</form>
53+
</div>
54+
</div>
55+
%% }

Web/templates/simple/reset.html.tx

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
%% cascade simple::_::layout { title => 'Reset Password',
2+
%%
3+
%% }
4+
5+
%% override panel -> {
6+
<div class="row">
7+
<!-- Error Handling On LHS -->
8+
<div class="col">
9+
%% if ( $errors.size() ) {
10+
<div style="margin-top: 2em" class="alert alert-danger" role="alert">
11+
There were errors with your request that could not be resolved:
12+
<ul>
13+
%% for $errors -> $error {
14+
<li>[% $error %]</li>
15+
%% }
16+
</ul>
17+
</div>
18+
%% }
19+
</div>
20+
21+
<!-- Forgot Handling On RHS -->
22+
<div class="col">
23+
<form method="post" action="[% $c.url_for( 'do_reset_password' ) %]">
24+
<input type="hidden" name="reset_token" value="[% $form_token %]">
25+
26+
%% include 'simple/_/form/input.tx' { type => 'password', name => 'password',
27+
%% title => 'Password',
28+
%% help => 'You will need your password to login.',
29+
%% value => $form_password,
30+
%% };
31+
32+
%% include 'simple/_/form/input.tx' { type => 'password', name => 'confirm',
33+
%% title => 'Confirm password',
34+
%% help => mark_raw('Just to <strike>annoy you</strike> be sure it is correct.'),
35+
%% value => $form_confirm,
36+
%% };
37+
38+
<button type="submit" class="btn btn-primary float-end">Change Password</button>
39+
40+
</form>
41+
</div>
42+
%% }

0 commit comments

Comments
 (0)