Add a zoom to cluster content.
[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 urlparse
29
30 from etalage import conf, urls
31 %>
32
33
34 <%inherit file="/site.mako"/>
35
36
37 <%def name="container_content()" filter="trim">
38         <form action="${urls.get_url(ctx, mode)}" class="internal" id="search-form" method="get">
39             <fieldset>
40     % for name, value in sorted(params.iteritems()):
41 <%
42         if name in (
43                 'bbox',
44                 'category' if not ctx.hide_category else None,
45                 'filter',
46                 'page',
47                 'term',
48                 'territory',
49                 ):
50             continue
51         if value is None or value == u'':
52             continue
53 %>\
54         % if isinstance(value, list):
55             % for item_value in value:
56                 <input name="${name}" type="hidden" value="${item_value or ''}">
57             % endfor
58         % else:
59                 <input name="${name}" type="hidden" value="${value or ''}">
60         % endif
61     % endfor
62     % if not ctx.hide_category:
63 <%
64         error = errors.get('category') if errors is not None else None
65 %>\
66                 <div class="clearfix${' error' if error else ''}">
67                     <label for="category">Catégorie</label>
68                     <div class="input">
69                         <input class="span6" id="category" name="category" type="text" value="${params['category'] or ''}">
70         % if error:
71                         <span class="help-inline">${error}</span>
72         % endif
73                     </div>
74                 </div>
75     % endif
76 <%
77     error = errors.get('term') if errors is not None else None
78 %>\
79                 <div class="clearfix${' error' if error else ''}">
80                     <label for="term">Intitulé</label>
81                     <div class="input">
82                         <input class="span6" id="term" name="term" type="text" value="${params['term'] or ''}">
83     % if error:
84                         <span class="help-inline">${error}</span>
85     % endif
86                     </div>
87                 </div>
88 <%
89     error = errors.get('territory') if errors is not None else None
90 %>\
91                 <div class="clearfix${' error' if error else ''}">
92                     <label for="territory">Territoire</label>
93                     <div class="input">
94                         <input class="span6" id="territory" name="territory" type="text" value="${params['territory'] or ''}">
95     % if error:
96                         <span class="help-inline">${error}</span>
97     % endif
98                     </div>
99                 </div>
100 <%
101     error = errors.get('filter') if errors is not None else None
102 %>\
103                 <div class="clearfix${' error' if error else ''}">
104                     <label for="filter">Afficher</label>
105                     <div class="input">
106                         <ul class="inputs-list">
107                             <li>
108                                 <label>
109                                     <input${' checked' if not params['filter'] else ''} name="filter" type="radio" value="">
110                                     <span>Tous les organismes</span>
111                                 </label>
112                             </li>
113                             <li>
114                                 <label>
115                                     <input${' checked' if params['filter'] == 'competence' else ''} name="filter" type="radio" value="competence">
116                                     <span>Uniquement les organismes compétents pour le territoire</span>
117                                 </label>
118                             </li>
119                             <li>
120                                 <label>
121                                     <input${' checked' if params['filter'] == 'presence' else ''} name="filter" type="radio" value="presence">
122                                     <span>Uniquement les organismes présents sur le territoire</span>
123                                 </label>
124                             </li>
125                         </ul>
126     % if error:
127                         <span class="help-inline">${error}</span>
128     % endif
129                     </div>
130                 </div>
131                 <div class="actions">
132                     <input class="btn primary" type="submit" value="${_('Search')}">
133                 </div>
134             </fieldset>
135         </form>
136         <ul class="tabs">
137 <%
138     modes_infos = (
139         (u'carte', u'Carte'),
140         (u'liste', u'Liste'),
141         (u'annuaire', u'Annuaire'),
142         (u'export', u'Export'),
143         )
144 %>\
145     % for tab_mode, tab_name in modes_infos:
146             <li${' class="active"' if tab_mode == mode else '' | n}>
147                 <a class="internal" href="${urls.get_url(ctx, tab_mode, **params)}">${tab_name}</a>
148             </li>
149     % endfor
150         </ul>
151         ## There is a bug in the tabs CSS above that requires a style="clear: left;".
152         ## Remove the div below once it is repaired.
153         <div style="clear: left;">
154 ##    % if errors is None:
155         <%self:results/>
156 ##    % endif
157         </div>
158 </%def>
159
160
161 <%def name="scripts()" filter="trim">
162     <%parent:scripts/>
163     <script src="/js/categories.js"></script>
164     <script src="/js/territories.js"></script>
165     <script>
166 var etalage = etalage || {};
167 etalage.categories.tags = ${ctx.category_tags_slug | n, js};
168 etalage.territories.autocompleterUrl = ${urlparse.urljoin(conf['territoria_url'],
169     '/api/v1/autocomplete-territory') | n, js};
170 etalage.params = ${params | n, js};
171
172 $(function () {
173     etalage.categories.createAutocompleter($('#category'));
174     etalage.territories.createAutocompleter($('#territory'));
175 });
176     </script>
177 </%def>
178