]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/templates/opac/parts/header.tt2
4efaa30e5cf6f1f7e264743c96e4660990efe7f5
[working/Evergreen.git] / Open-ILS / src / templates / opac / parts / header.tt2
1 [%- USE money = format(l('$%.2f'));
2     USE date;
3     USE CGI = CGI_utf8;
4     USE POSIX;
5     USE HTML;
6     SET DATE_FORMAT = l('%m/%d/%Y');
7
8     # Don't wrap in l() here; do that where this format string is actually used.
9     SET HUMAN_NAME_FORMAT = '[_1] [_2] [_3] [_4] [_5]';
10
11     is_advanced = CGI.param("_adv").size;
12     is_special = CGI.param("_special").size;
13
14     # -----------------------------------------------------------------------------
15     # mkurl( destination_page, params_to_set, params_to_clear )
16     #
17     # Current page, updated params:
18     # mkurl('', {foo => 'bar', boo => 'baz'});
19     #
20     # New page, one param is a list:
21     # mkurl('http://flarg.baz/squz', {foo => 'bar', boo => ['baz', 'faz']});
22     #
23     # New page, clear all existing params before applying new ones:
24     # mkurl('/fuz/buster', {foo => 'bar', boo => 'baz'}, 1); 
25     #
26     # Current page, clear 'some_param' from the existing params:
27     # mkurl('', {foo => 'bar', boo => 'baz'}, ['some_param']);
28     MACRO mkurl(page, params, clear_params) BLOCK;
29
30         # clone the query string to avoid clobberation
31         cgi = CGI.new(CGI.query_string);
32
33         # remove requested params
34         IF clear_params.0; # array
35             FOR p IN clear_params; cgi.delete(p); END;
36         ELSIF clear_params;
37             cgi.delete_all();
38         END;
39
40         # x and y are artifacts of using <input type="image" /> tags 
41         # instead of true submit buttons, and their values are never used.
42         cgi.delete('x', 'y'); 
43
44         # apply user params
45         FOR k IN params.keys;
46             encoded = [];
47             max = params.$k.max;
48             list = (params.$k.0 OR max == -1) ? params.$k : [params.$k];
49             IF list.size == 0; NEXT; END;
50             # CGI croaks on already-decoded strings.  force-encode to be safe.
51             FOR p IN list; encoded.push(ctx.encode_utf8(p)); END;
52             foo = cgi.param("-name", k, "-values", encoded);
53         END;
54
55         # for url brevity, remove any params that have no value
56         FOR p IN cgi.param;
57             val = cgi.param(p);
58             IF val == ''; cgi.delete(p); END;
59         END;
60
61         IF page;
62             IF cgi.query_string;
63                 page _ '?' _ cgi.query_string;
64             ELSE;
65                 page;
66             END;
67         ELSE;
68             # staying on the current page
69             cgi.url("-path" => 1, "-query" => 1);
70         END;
71     END;
72
73     # Whether we want Dojo or not may one day be a wholly distinct
74     # concern from whether we want autosuggest, so let's get used to
75     # defining that separately.
76     want_dojo = 0;
77
78     use_autosuggest = ctx.get_cgf("opac.use_autosuggest");
79
80     IF use_autosuggest.enabled == "t";
81         want_dojo = 1;
82     END;
83 %]