From fcf5549584b69e62b6c2f0eb919f6799c7904211 Mon Sep 17 00:00:00 2001 From: "Jannis M. Hoffmann" Date: Fri, 10 Mar 2023 13:54:57 +0100 Subject: Proper recursive rendering of mails to html 1. Added raw mode to model 2. Added raw route 3. Moved readmail view parts to RenderMail plugin 4. Renamed displayheaders partial templates --- templates/displayheaders/_bot_nav.html.ep | 36 +++++++++ templates/displayheaders/_folders.html.ep | 29 +++++++ templates/displayheaders/_main_table.html.ep | 112 ++++++++++++++++++++++++++ templates/displayheaders/_pagination1.html.ep | 7 ++ templates/displayheaders/_pagination2.html.ep | 37 +++++++++ templates/displayheaders/_top_nav.html.ep | 35 ++++++++ 6 files changed, 256 insertions(+) create mode 100644 templates/displayheaders/_bot_nav.html.ep create mode 100644 templates/displayheaders/_folders.html.ep create mode 100644 templates/displayheaders/_main_table.html.ep create mode 100644 templates/displayheaders/_pagination1.html.ep create mode 100644 templates/displayheaders/_pagination2.html.ep create mode 100644 templates/displayheaders/_top_nav.html.ep (limited to 'templates/displayheaders') diff --git a/templates/displayheaders/_bot_nav.html.ep b/templates/displayheaders/_bot_nav.html.ep new file mode 100644 index 0000000..3eb57d3 --- /dev/null +++ b/templates/displayheaders/_bot_nav.html.ep @@ -0,0 +1,36 @@ +
+ +
+ %= include 'displayheaders/_pagination1' +
+ +
+ + +
+ +
+ % if (grep {$_ ne $folder} @$mail_folders) { + %= form_for move => (id => 'move-mail') => (class => 'pure-form') => begin +
+ %= label_for 'select-folder' => l('move to') + %= select_field folder => [map { $_ ? $_ : l 'Home' } grep {$_ ne $folder} @$mail_folders] => (id => 'select-folder') + %= csrf_field + %= submit_button l('move') => (class => 'pure-button') +
+ % end + % } +
+ +
+ + diff --git a/templates/displayheaders/_folders.html.ep b/templates/displayheaders/_folders.html.ep new file mode 100644 index 0000000..be5bdd9 --- /dev/null +++ b/templates/displayheaders/_folders.html.ep @@ -0,0 +1,29 @@ +
+ +
+ +
+ +

+ <%= l('[_1] of [_2] messages', $pgn->{this_page}[1] - $pgn->{this_page}[0], $pgn->{total_items}) %>\ + <%= l(', [_1] new', $total_new_mails) if $total_new_mails > 0 =%> + <%= l(' - mailbox size: [_1]', print_sizes10 $total_size) if $total_size %> +

+ +
diff --git a/templates/displayheaders/_main_table.html.ep b/templates/displayheaders/_main_table.html.ep new file mode 100644 index 0000000..5430c15 --- /dev/null +++ b/templates/displayheaders/_main_table.html.ep @@ -0,0 +1,112 @@ +% my $sort_param = begin + % my $param = shift; + + %= link_to url_with->query(sort => $param eq (param('sort') || '') ? '!' . $param : $param) => begin + % no warnings qw(experimental::smartmatch); + %= do { given (param('sort')) { '↑' when ($param); '↓' when ('!' . $param) } } + %= ucfirst l $param; + % end + +% end + + + + + + + + +% } + +
+ %= $sort_param->('subject'); +
+ + + + + + + + + + + + % foreach my $msgnum ($pgn->{first_item} .. $pgn->{last_item}) { + % my $msg = $msgs->[$msgnum - $pgn->{first_item}]; + + %= tag tr => (class => $msg->{unread} ? 'new-mail' : '') => (id => $msg->{message_handle}) => begin + + + + + + + + % end + + % } + + +
+ # + +
+ + %# $sort_param->('status'); + +
+ %= $sort_param->('date'); +
+ +% if ($folder ne "SENT") { +
+ %= $sort_param->('sender'); +
+% } +% else { +
+ %= link_to url_with->query(sort => param('sort') ne '!sender' ? 'sender' : '!sender' ) => begin + %= ucfirst l 'recipient' + % if (param('sort') eq "sender") { + %= image '/down.gif' => (width => 12) => (height => 12) => (border => 0) => (alt => 'v') + % } + % elsif (param('sort') eq "recipient_rev") { + %= image '/up.gif' => (width => 12) => (height => 12) => (border => 0) => (alt => '^') + % } + % end + + %= $sort_param->('size'); + + +
+ %= $msgnum + 1 + +
+ + + +
+ % my $date = parse_iso_date $msg->{head}{date}; + %= join('/', $date->{mday}, $date->{month}, $date->{year}) . " $date->{hour}:$date->{min}"; +
+ +
+ <%= $msg->{head}{sender}[0]{display_name} || $msg->{head}{sender}[0]{address} || + $msg->{head}{from}[0]{display_name} || $msg->{head}{from}[0]{address}; %> +
+ +
+ %= link_to $msg->{head}{subject} || '_' => read => {id => $msg->{message_handle}} +
+ +
+
+ %= print_sizes10 $msg->{byte_size}; + + %= check_box mail => $msg->{message_handle} => (form => 'move-mail') +
diff --git a/templates/displayheaders/_pagination1.html.ep b/templates/displayheaders/_pagination1.html.ep new file mode 100644 index 0000000..798f79f --- /dev/null +++ b/templates/displayheaders/_pagination1.html.ep @@ -0,0 +1,7 @@ +
+ + + [<%= l('page [_1] of [_2]', $pgn->{current_page}+1, $pgn->{total_pages}) %>] + + +
diff --git a/templates/displayheaders/_pagination2.html.ep b/templates/displayheaders/_pagination2.html.ep new file mode 100644 index 0000000..8bff0bf --- /dev/null +++ b/templates/displayheaders/_pagination2.html.ep @@ -0,0 +1,37 @@ +%= form_for '' => (class => 'pure-form') => begin + + <%= l('first') . ' ' . l 'page' %> + + + <%= l('previous') . ' ' . l 'page' %> + + +
+ [ +%= label_for custompage => ucfirst l('page') => (style => 'display: inline') + <%= number_field start + => (id => 'custompage') + => (size => 3) + => (placeholder => $pgn->{current_page}+1) + => (min => 1) + => (max => $pgn->{total_pages} + => (style => 'display: inline')) %> +%= l 'of' +%= $pgn->{total_pages} + ] +
+ +% my $h = $c->req->query_params->to_hash; +% while (my ($k, $v) = each %$h) { +% if ($k ne 'start') { +%= hidden_field $k => $v +% } +% } + + + <%= l('next') . ' ' . l 'page' %> + + + <%= l('last') . ' ' . l('page') %> + +% end diff --git a/templates/displayheaders/_top_nav.html.ep b/templates/displayheaders/_top_nav.html.ep new file mode 100644 index 0000000..fd6bae6 --- /dev/null +++ b/templates/displayheaders/_top_nav.html.ep @@ -0,0 +1,35 @@ +
+ +
+
+ +
+
+ +
+ %= form_for '' => (class => 'pure-form') => begin + %= label_for search => ucfirst(l 'search') + %= search_field search => (size => 8) + % end +
+ +
+ %= include 'displayheaders/_pagination2'; +
+ + + +
-- cgit v1.2.3