Add some export controllers.
[infos-pratiques:etalage.git] / etalage / templates / index.mako
1 ## -*- coding: utf-8 -*-
2
3
4 ## Etalage -- Open Data POIs portal
5 ## By: Emmanuel Raviart <eraviart@easter-eggs.com>
6 ##     Romain Soufflet <rsoufflet@easter-eggs.com>
7 ##
8 ## Copyright (C) 2011 Easter-eggs
9 ## http://gitorious.org/infos-pratiques/etalage
10 ##
11 ## This file is part of Etalage.
12 ##
13 ## Etalage is free software; you can redistribute it and/or modify
14 ## it under the terms of the GNU Affero General Public License as
15 ## published by the Free Software Foundation, either version 3 of the
16 ## License, or (at your option) any later version.
17 ##
18 ## Etalage is distributed in the hope that it will be useful,
19 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
20 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21 ## GNU Affero General Public License for more details.
22 ##
23 ## You should have received a copy of the GNU Affero General Public License
24 ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
25
26
27 <%!
28 import urllib
29 import urlparse
30
31 from etalage import conf, urls
32 %>
33
34
35 <%inherit file="/site.mako"/>
36
37
38 <%def name="container_content()" filter="trim">
39         <form action="${urls.get_url(ctx)}" id="search-form" method="get">
40             <fieldset>
41     % for name, value in sorted(params.iteritems()):
42 <%
43         if name in (
44                 'category' if not ctx.hide_category else None, 
45                 'page',
46                 'term',
47                 'territory',
48                 ):
49             continue
50         if value is None or value == u'':
51             continue
52 %>\
53         % if isinstance(value, list):
54             % for item_value in value:
55                 <input name="${name}" type="hidden" value="${item_value or ''}">
56             % endfor
57         % else:
58                 <input name="${name}" type="hidden" value="${value or ''}">
59         % endif
60     % endfor
61     % if not ctx.hide_category:
62 <%
63         error = errors.get('category') if errors is not None else None
64 %>\
65                 <div class="clearfix${' error' if error else ''}">
66                     <label for="category">CatĂ©gorie</label>
67                     <div class="input">
68                         <input class="span6" id="category" name="category" type="text" value="${params['category'] or ''}">
69         % if error:
70                         <span class="help-inline">${error}</span>
71         % endif
72                     </div>
73                 </div>
74     % endif
75 <%
76     error = errors.get('term') if errors is not None else None
77 %>\
78                 <div class="clearfix${' error' if error else ''}">
79                     <label for="term">IntitulĂ©</label>
80                     <div class="input">
81                         <input class="span6" id="term" name="term" type="text" value="${params['term'] or ''}">
82     % if error:
83                         <span class="help-inline">${error}</span>
84     % endif
85                     </div>
86                 </div>
87 <%
88     error = errors.get('territory') if errors is not None else None
89 %>\
90                 <div class="clearfix${' error' if error else ''}">
91                     <label for="territory">Territoire</label>
92                     <div class="input">
93                         <input class="span6" id="territory" name="territory" type="text" value="${params['territory'] or ''}">
94     % if error:
95                         <span class="help-inline">${error}</span>
96     % endif
97                     </div>
98                 </div>
99                 <div class="actions">
100 <%
101     buttons_mode_name_and_value = (
102         (u'annuaire', u'directory_button', u'Annuaire'),
103         (u'liste', u'list_button', u'Liste'),
104         (u'carte', u'map_button', u'Carte'),
105         (u'export', u'export_button', u'Export'),
106         )
107 %>\
108     % for button_mode, button_name, button_value in buttons_mode_name_and_value:
109                     <input class="btn${' primary' if button_mode == mode else ''}" name="${\
110                             button_name}" type="submit" value="${button_value}">
111     % endfor
112                 </div>
113             </fieldset>
114         </form>
115     % if errors is None:
116         <%self:results/>
117     % endif
118 </%def>
119
120
121 <%def name="scripts()" filter="trim">
122     <%parent:scripts/>
123     <script src="/js/categories.js"></script>
124     <script src="/js/territories.js"></script>
125     <script>
126 var etalage = etalage || {};
127 etalage.categories.tags = ${ctx.category_tags_slug | n, js};
128 etalage.territories.autocompleterUrl = ${urlparse.urljoin(conf['territoria_url'],
129     '/api/v1/autocomplete-territory') | n, js};
130 etalage.params = ${params | n, js};
131
132 $(function () {
133     etalage.categories.createAutocompleter($('#category'));
134     etalage.territories.createAutocompleter($('#territory'));
135
136     % if ctx.container_base_url is not None and ctx.gadget_id is not None:
137     $('#search-form').submit(function () {
138         return false;
139     });
140     % endif
141 });
142     </script>
143 </%def>
144