/[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 48 - (hide annotations)
Wed May 12 00:29:01 2004 UTC (20 years ago) by dpavlin
File size: 4536 byte(s)
another user-interface rework: titles for hrefs now show explanation of
(more clearly marked) links which work as buttons.

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

  ViewVC Help
Powered by ViewVC 1.1.26