/[mws]/trunk/templates/macros.tt2
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/templates/macros.tt2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 32 - (hide annotations)
Sun May 9 09:48:38 2004 UTC (20 years ago) by dpavlin
File size: 4155 byte(s)
fixed url_search, spelling corrections

1 dpavlin 24 [% PERL %]
2     $stash->set( search => sub {
3     my ($fld,$search,$sort_by,$link_text) = @_;
4    
5     my $html = '<a href="?search='.$fld.':';
6     if ($fld eq "subject") {
7     my $s = $search;
8    
9     # remove re: fdw: [list] preffixes from e-mail
10     while ( $s =~ s/^\s*\[(?:re|fwd|fw):\s+(.+)\]\s*$/$1/ig ||
11     $s =~ s/^\s*(?:re|fwd|fw):\s+(.+?)\s*$/$1/ig ||
12     $s =~ s/^\[\S+\]\s*//ig ||
13     $s =~ s/^\[[^@]+@[\w\.]+\s*:\s+(.+)\s*\]\s*$/$1/g ||
14     $s =~ s/\(fwd\)\s*$//ig ||
15     $s =~ s/\"//g
16     ) { };
17    
18     $html .= URI::Escape::uri_escape($s);
19     } else {
20     $html .= URI::Escape::uri_escape($search);
21     }
22    
23     $html .= '&sort_by='.$sort_by if ($sort_by);
24    
25     $html .= '">';
26     $html .= ($link_text ? $link_text : $search);
27     $html .= '</a>';
28    
29     return $html;
30     } );
31     [% END %]
32    
33     [% MACRO option(var, value, text) BLOCK %]
34     <option value="[% value %]"[% IF value == param.search_fld %] selected[% END %]>[% text %]</option>
35     [% END %]
36    
37     [% MACRO from(message) BLOCK %]
38     <span class="from">
39     [% FOREACH f IN message.from %]
40     [% search('from_phrase',f,param.sort_by) %][% IF !loop.last %],[% END %]
41     [% END %]
42     </span>
43     [% END %]
44    
45     [% MACRO to(message) BLOCK %]
46     [% IF message.to.size %]
47     <span class="to">To:
48     [% FOREACH f IN message.to %]
49     [% search('to_phrase',f,param.sort_by) %][% IF !loop.last %], [% END %]
50     [% END %]
51     </span>
52     [% END %]
53     [% IF message.cc.size %]
54     <span class="cc">Cc:
55     [% FOREACH f IN message.cc %]
56     [% search('cc_phrase',f,param.sort_by) %][% IF !loop.last %], [% END %]
57     [% END %]
58     </span>
59     [% END %]
60     [% IF message.bcc.size %]
61     <span class="bcc">Bcc:
62     [% FOREACH f IN message.bcc %]
63     [% IF loop.fist %]Bcc [% END %]
64     [% search('bcc_phrase',f,param.sort_by) %][% IF !loop.last %], [% END %]
65     [% END %]
66     </span>
67     [% END %]
68     [% END %]
69    
70     [% MACRO usage_list(list,key,description) BLOCK %]
71     [% IF list %]
72     <div class="[% key %]">
73     [% description %]
74     [% FOREACH l IN list %]
75 dpavlin 25 <br>[% search("${key}_phrase",l.name,param.sort_by) %]&nbsp;<span class="counter">[% l.usage %]</span>
76 dpavlin 24 [% END %]
77     </div>
78     [% END %]
79     [% END %]
80    
81    
82     [% PERL %]
83     $stash->set( get_cal => sub {
84     my $cal = shift;
85     my $yyyy = shift || return "BUG2";
86     my $mm = shift || return "BUG3";
87     my $day = shift || return "&nbsp;";
88    
89     my $url = shift || "";
90    
91     return $day if (! $cal); # no calendar entries
92    
93     my $yyyymm = sprintf("%04d-%02d",$yyyy,$mm);
94     my $dd = sprintf("%02d",$day);
95    
96     if ($cal->{$yyyymm}->{$dd}) {
97     return "<a href=\"/$yyyy/$mm/$dd/$url\" title=\"".$cal->{$yyyymm}->{$dd}."\">$day</a>";
98     } else {
99     return $day;
100     }
101     } );
102     [% END %]
103    
104    
105     [% MACRO url_show_id(id) BLOCK ;
106     '?show_id=' ; id ;
107 dpavlin 27 IF param.search ; '&search=' ; param.search ; END ;
108     IF param.sort_by ; '&sort_by=' ; param.sort_by ; END ;
109 dpavlin 24 END %]
110    
111    
112 dpavlin 32 [% MACRO url_search(search_for) BLOCK ;
113     IF param.sort_by ; "?search=" ; search_for ; "&sort_by=" ; param.sort_by ;
114     ELSE ; "?search=" ; search_for ;
115 dpavlin 24 END ;
116     END %]
117    
118    
119     [% PERL %]
120     $stash->set( sort_bar => sub {
121     my ($param,$pre,$del,$post) = @_;
122    
123     my ($a1,$a2,$a3) = ('<a href="','">','</a>');
124     my ($ss1,$ss2) = ('<span class="sort_selected">','</span>');
125    
126     my $html_search = '';
127     my $next_sep = '?';
128    
129     if ($param->{search}) {
130     $html_search = '?search='.$param->{search};
131     $next_sep = '&';
132     }
133    
134     # default sort order
135     my ($sort_fld,$sort_order) = ('rank','desc');
136     ($sort_fld,$sort_order) = split(/\s+/,$param->{sort_by});
137    
138     my $other_order = {
139     'asc' => 'desc',
140     'desc' => 'asc',
141     };
142    
143     my $default_sort = {
144     'rank' => 'desc',
145     'from' => 'asc',
146     'to' => 'asc',
147     'date' => 'desc',
148     };
149    
150     my @html;
151     foreach my $fld (qw(rank date from to)) {
152    
153     my $h = $a1 . $html_search . $next_sep . 'sort_by=';
154    
155     if ($sort_fld eq $fld) {
156     $h .= $sort_fld." ".$other_order->{$sort_order};
157     $h .= $a2 . $ss1 . $sort_fld . $ss2 . $a3 ;
158     } else {
159     $h .= $fld." ".$default_sort->{$fld};
160     $h .= $a2 . $fld . $a3 ;
161     }
162     push @html, $h;
163    
164     }
165    
166     return $pre.join($del,@html).$post;
167    
168     } );
169     [% END %]
170    
171 dpavlin 25
172     [% MACRO date(msg) BLOCK %]
173 dpavlin 32 <span class="date"><a href="/[% yyyy_mm(msg.date) %]/[% url_search(param.search) %]">[% msg.date %]</a></span>
174 dpavlin 25 [% END %]
175    
176     [% PERL %]
177     $stash->set( yyyy_mm => sub {
178     my $d = shift;
179    
180     if ($d =~ /^(\d{4}[\-\/]\d{2})/) {
181     return $1;
182     } else {
183     return $d;
184     }
185     } );
186     [% END %]

  ViewVC Help
Powered by ViewVC 1.1.26