[FIX] website: correct padding of footer
[odoo/odoo.git] / addons / website / views / website_templates.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <!-- vim:fdn=3:
3 -->
4 <openerp>
5     <data>
6
7 <!-- Layout and generic templates -->
8
9 <template id="website.theme" name="Theme">
10     <link id="bootstrap_css" rel='stylesheet' href='/web/static/lib/bootstrap/css/bootstrap.css' t-ignore="true"/>
11     <link rel="stylesheet" href='/website/static/src/css/website.css' t-ignore="true"/>
12 </template>
13
14 <template id="website.assets_frontend" name="Website assets">
15     <t t-call="website.theme"/>
16
17     <script type="text/javascript" src="/web/static/src/js/watch.js"></script>
18
19     <script type="text/javascript" src="/website/static/src/js/website.js"></script>
20
21     <script type="text/javascript" src="/website/static/src/js/website.snippets.animation.js"></script>
22     <script type="text/javascript" src="/web/static/lib/bootstrap/js/bootstrap.js"></script>
23
24 </template>
25
26 <template id="assets_backend" name="website assets for backend" inherit_id="web.assets_backend">
27     <xpath expr="." position="inside">
28         <link rel="stylesheet" href="/website/static/src/css/website.backend.css"/>
29
30         <script type="text/javascript" src="/website/static/src/js/website.backend.js"></script>
31     </xpath>
32 </template>
33
34 <template id="website.submenu" name="Submenu">
35     <li t-if="not submenu.child_id" t-att-class="
36         ((submenu.url != '/' and request.httprequest.path.startswith(submenu.url)) or
37          request.httprequest.path == submenu.url) and 'active'
38         ">
39         <a t-att-href="(website.menu_id.child_id[0] == submenu) and '/' or submenu.url" t-ignore="true" t-att-target="'blank' if submenu.new_window else None">
40             <span t-field="submenu.name"/>
41         </a>
42     </li>
43     <li t-if="submenu.child_id" t-attf-class="dropdown #{
44         ((submenu.url != '/' and [1 for submenu in submenu.child_id if request.httprequest.path.startswith(submenu.url)]) or
45          request.httprequest.path == submenu.url) and 'active'
46         }">
47         <a class="dropdown-toggle" data-toggle="dropdown" href="#">
48             <span t-field="submenu.name"/> <span class="caret" t-ignore="true"></span>
49         </a>
50         <ul class="dropdown-menu" role="menu">
51             <t t-foreach="submenu.child_id" t-as="submenu">
52                 <t t-call="website.submenu"/>
53             </t>
54         </ul>
55     </li>
56 </template>
57
58 <template id="layout" name="Main layout">&lt;!DOCTYPE html&gt;
59     <html t-att-lang="lang and lang.replace('_', '-')"
60           t-att-data-website-id="website.id if editable and website else None"
61           t-att-data-editable="'1' if editable else None"
62           t-att-data-translatable="'1' if translatable else None"
63           t-att-data-view-xmlid="xmlid if editable else None"
64           t-att-data-main-object="repr(main_object) if editable else None"
65           t-att-data-oe-company-name="res_company.name">
66         <head>
67             <meta charset="utf-8" />
68             <t t-if="main_object and 'website_meta_title' in main_object and not title">
69                 <t t-set="title" t-value="main_object.website_meta_title"/>
70             </t>
71             <t t-if="main_object and 'name' in main_object and not title and not additional_title">
72                 <t t-set="additional_title" t-value="main_object.name"/>
73             </t>
74             <t t-if="not title">
75                 <t t-set="title"><t t-if="additional_title"><t t-raw="additional_title"/> | </t><t t-esc="(website or res_company).name"/></t>
76             </t>
77
78             <meta name="viewport" content="initial-scale=1"/>
79             <meta name="description" t-att-content="main_object and 'website_meta_description' in main_object
80                 and main_object.website_meta_description or website_meta_description"/>
81             <meta name="keywords" t-att-content="main_object and 'website_meta_keywords' in main_object
82                 and main_object.website_meta_keywords or website_meta_keywords"/>
83             <title><t t-esc="title"/></title>
84
85             <t t-set="languages" t-value="website.get_languages() if website else None"/>
86             <t t-if="request and request.website_multilang and website">
87                 <t t-foreach="website.get_alternate_languages(request.httprequest)" t-as="lang">
88                     <link rel="alternate" t-att-hreflang="lang['hreflang']" t-att-href="lang['href']"/>
89                 </t>
90             </t>
91
92             <t t-call-assets="web.assets_common" t-js="false"/>
93             <t t-call-assets="website.assets_frontend" t-js="false"/>
94
95             <t t-raw="head or ''" name='layout_head'/>
96         </head>
97         <body>
98             <div id="wrapwrap">
99                 <header>
100                     <div class="navbar navbar-default navbar-static-top">
101                         <div class="container">
102                             <div class="navbar-header">
103                                 <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-top-collapse">
104                                     <span class="sr-only">Toggle navigation</span>
105                                     <span class="icon-bar"></span>
106                                     <span class="icon-bar"></span>
107                                     <span class="icon-bar"></span>
108                                 </button>
109                                 <a class="navbar-brand" href="/" t-field="res_company.name"/>
110                             </div>
111                             <div class="collapse navbar-collapse navbar-top-collapse">
112                                 <ul class="nav navbar-nav navbar-right" id="top_menu">
113                                     <t t-foreach="website.menu_id.child_id" t-as="submenu">
114                                         <t t-call="website.submenu"/>
115                                     </t>
116                                     <li class="divider" t-ignore="true" t-if="website.user_id != user_id"/>
117                                     <li class="dropdown" t-ignore="true" t-if="website.user_id != user_id">
118                                         <a href="#" class="dropdown-toggle" data-toggle="dropdown">
119                                             <b>
120                                                 <span t-esc="user_id.name"/>
121                                                 <span class="caret"></span>
122                                             </b>
123                                         </a>
124                                         <ul class="dropdown-menu js_usermenu" role="menu">
125                                             <li><a href="/web" role="menuitem">My Account</a></li>
126                                             <li class="divider"/>
127                                             <li><a t-attf-href="/web/session/logout?redirect=/" role="menuitem">Logout</a></li>
128                                         </ul>
129                                     </li>
130                                 </ul>
131                             </div>
132                         </div>
133                     </div>
134                 </header>
135                 <main>
136                     <t t-raw="0"/>
137                 </main>
138                 <footer>
139                     <div id="footer_container">
140                     </div>
141                 </footer>
142             </div>
143
144             <t t-call-assets="web.assets_common" t-css="false"/>
145             <t t-call-assets="website.assets_frontend" t-css="false"/>
146             <script t-if="website and website.google_analytics_key">
147                 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
148                 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
149                 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
150                 })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
151
152                 ga('create', _.str.trim('<t t-esc="website.google_analytics_key"/>'), 'auto');
153                 ga('send','pageview');
154             </script>
155         </body>
156     </html>
157 </template>
158
159 <template id="layout_footer_copyright" inherit_id="website.layout" name="Footer Copyright">
160     <xpath expr="//footer" position="inside">
161         <div class="container mt16 mb8">
162             <div class="pull-right" t-ignore="true" t-if="not editable">
163                 Create a <a href="http://www.odoo.com/page/website-builder">free website</a> with
164                 <a class="label label-danger" href="http://www.odoo.com/page/website-builder">Odoo</a>
165             </div>
166             <div class="pull-left text-muted">
167                 Copyright &amp;copy; <span t-field="res_company.name">Company name</span>
168             </div>
169         </div>
170     </xpath>
171 </template>
172
173 <template id="layout_logo_show" inherit_id="website.layout" customize_show="True" name="Show Logo">
174     <xpath expr="//header//a[@class='navbar-brand']" position="replace">
175         <a href="/" class="navbar-brand logo">
176             <img src="/logo.png"/>
177         </a>
178     </xpath>
179 </template>
180
181 <template id="editor_head" inherit_id="website.layout" name="Editor" groups="base.group_website_publisher,base.group_website_designer">
182     <xpath expr='//t[@t-call-assets="website.assets_frontend"][@t-js]' position="after">
183         <t t-call-assets="website.assets_editor" t-js="false"/>
184     </xpath>
185     <xpath expr='//t[@t-call-assets="website.assets_frontend"][@t-css]' position="after">
186         <t t-call-assets="website.assets_editor" t-css="false"/>
187     </xpath>
188 </template>
189
190 <template id="assets_editor" name="Editor assets">
191     <script type="text/javascript">
192         var CKEDITOR_BASEPATH = '/web/static/lib/ckeditor/';
193     </script>
194     <link rel='stylesheet' href='/website/static/src/css/snippets.css'/>
195     <link rel='stylesheet' href='/website/static/src/css/editor.css'/>
196     <link rel='stylesheet' href="/web/static/lib/jquery.ui/css/smoothness/jquery-ui-1.9.1.custom.css"/>
197     <link rel="stylesheet" href="/web/static/lib/select2/select2.css"/>
198     <link rel="stylesheet" href="/website/static/lib/select2-bootstrap-css/select2-bootstrap.css"/>
199
200     <script type="text/javascript" src="/web/static/lib/select2/select2.js"></script>
201     <script type="text/javascript" src="/web/static/lib/ckeditor/ckeditor.js"></script>
202     <script type="text/javascript" src="/website/static/lib/ace/ace.js"></script>
203     <script type="text/javascript" src="/website/static/lib/ace/theme-monokai.js"></script>
204     <script type="text/javascript" src="/website/static/lib/ace/mode-xml.js"></script>
205     <script type="text/javascript" src="/website/static/lib/vkbeautify/vkbeautify.0.99.00.beta.js"></script>
206     <script type="text/javascript" src="/website/static/lib/jQuery.transfo.js"></script>
207     <t t-call="web.jqueryui_conflict">
208         <script type="text/javascript" src="/web/static/lib/jquery.ui/js/jquery-ui-1.9.1.custom.js"></script>
209     </t>
210
211     <!-- mutation observers shim backed by mutation events (8 < IE < 11, Safari < 6, FF < 14, Chrome < 17) -->
212     <script type="text/javascript" src="/website/static/lib//jquery.mjs.nestedSortable/jquery.mjs.nestedSortable.js"></script>
213     <script type="text/javascript" src="/website/static/lib/MutationObservers/test/sidetable.js"></script>
214     <script type="text/javascript" src='/website/static/lib/nearest/jquery.nearest.js'></script>
215     <script type="text/javascript" src="/website/static/lib/MutationObservers/MutationObserver.js"></script>
216
217     <script type="text/javascript" src="/website/static/src/js/website.editor.js"></script>
218     <script type="text/javascript" src="/website/static/src/js/website.contentMenu.js"></script> <!-- groups="base.group_website_designer" -->
219     <script type="text/javascript" src="/website/static/src/js/website.mobile.js"></script>
220     <script type="text/javascript" src="/website/static/src/js/website.seo.js"></script>
221     <script type="text/javascript" src="/website/static/src/js/website.tour.js"></script>
222     <script type="text/javascript" src="/website/static/src/js/website.tour.banner.js"></script> <!-- groups="base.group_website_designer" -->
223     <script type="text/javascript" src="/website/static/src/js/website.snippets.editor.js"></script>
224     <script type="text/javascript" src="/website/static/src/js/website.ace.js"></script>
225     <script type="text/javascript" src="/website/static/src/js/website.translator.js"></script>
226
227 </template>
228
229 <template id="login_layout" inherit_id="web.login_layout" name="Website Login Layout">
230     <xpath expr="t" position="replace">
231         <t t-call="website.layout">
232             <div class="oe_website_login_container" t-raw="0"/>
233         </t>
234     </xpath>
235 </template>
236
237 <template id="show_sign_in" customize_show="True" inherit_id="website.layout" name="Show Sign In" groups="base.group_public">
238     <xpath expr="//ul[@id='top_menu']" position="inside">
239         <li class="divider"/>
240         <li>
241             <a t-attf-href="/web/login">
242                 <b>Sign in</b>
243             </a>
244         </li>
245     </xpath>
246 </template>
247
248 <template id="footer_custom" inherit_id="website.layout" name="Footer">
249     <xpath expr="//div[@id='footer_container']" position="replace">
250         <div class="oe_structure" id="footer">
251             <section data-snippet-id='three-columns'>
252                 <div class="container">
253                     <div class="row">
254                         <div class="col-md-4">
255                             <h4 class="mt16">Subtitle</h4>
256                             <p>
257                                 <a href="/">Homepage</a>
258                             </p>
259                         </div>
260                         <div class="col-md-4">
261                             <h4 class="mt16">Subtitle 2</h4>
262                             <p>
263                                 ...
264                             </p>
265                         </div>
266                         <div class="col-md-4">
267                             <h4 class="mt16">Subtitle 3</h4>
268                             <p>
269                                 ...
270                             </p>
271                         </div>
272                     </div>
273                 </div>
274             </section>
275         </div>
276     </xpath>
277 </template>
278
279 <template id="footer_default" inherit_id="website.footer_custom" customize_show="True" name="Automatic Footer">
280     <xpath expr="//div[@id='footer']" position="replace">
281         <div class="container hidden-print">
282             <div class="row">
283                 <div class="col-md-3">
284                     <h4>Our products &amp; Services</h4>
285                     <ul class="list-unstyled" id="products">
286                         <li><a href="/">Home</a></li>
287                     </ul>
288                 </div>
289                 <div class="col-md-3" id="info">
290                     <h4>Connect with us</h4>
291                     <ul class="list-unstyled">
292                         <li><a href="/page/website.contactus">Contact us</a></li>
293                     </ul>
294                     <ul class="list-unstyled">
295                         <li t-ignore="true"><i class="fa fa-phone"></i> <span t-field="res_company.phone"></span></li>
296                         <li t-ignore="true"><i class="fa fa-envelope"></i>  <span t-field="res_company.email"></span></li>
297                     </ul>
298                     <h2>
299                         <a t-att-href="website.social_facebook" t-if="website.social_facebook"><i class="fa fa-facebook-square"/></a>
300                         <a t-att-href="website.social_twitter" t-if="website.social_twitter"><i class="fa fa-twitter"/></a>
301                         <a t-att-href="website.social_linkedin" t-if="website.social_linkedin"><i class="fa fa-linkedin"/></a>
302                         <a t-att-href="website.social_youtube" t-if="website.social_youtube"><i class="fa fa-youtube-play"/></a>
303                         <a t-att-href="website.social_googleplus" t-if="website.social_googleplus"><i class="fa fa-google-plus-square"/></a>
304                         <a t-att-href="website.social_github" t-if="website.social_github"><i class="fa fa-github"/></a>
305                     </h2>
306                 </div>
307                 <div class="col-md-5 col-lg-offset-1">
308                     <div>
309                         <h4>
310                             <span t-field="res_company.name" />
311                             <small> - <a href="/page/website.aboutus">About us</a></small>
312                         </h4>
313                         <p>
314                             We are a team of passionate people whose goal is to improve everyone's
315                             life through disruptive products. We build great products to solve your
316                             business problems.
317                         </p>
318                         <p>
319                             Our products are designed for small to medium size companies willing to optimize
320                             their performance.
321                         </p>
322                     </div>
323                     <ul class="list-inline js_language_selector mt16" t-if="(request.website_multilang and len(languages) &gt; 1) or editable">
324                         <li t-foreach="languages" t-as="lg">
325                             <a t-att-href="url_for(request.httprequest.path + '?' + keep_query(), lang=lg[0])"
326                              t-att-data-default-lang="editable and 'true' if lg[0] == website.default_lang_code else None">
327                              <t t-esc="lg[1].split('/').pop()"/></a>
328                         </li>
329                         <li groups="base.group_website_publisher">
330                             <t t-set="url_return" t-value="url_for('', '[lang]') + '?' + keep_query()"/>
331                             <a t-attf-href="/web#action=base.action_view_base_language_install&amp;website_id=#{website.id}&amp;url_return=#{url_return}">
332                             <i class="fa fa-plus-circle"/>
333                             Add a language...
334                             </a>
335                         </li>
336                     </ul>
337                 </div>
338             </div>
339         </div>
340     </xpath>
341 </template>
342
343 <template id="publish_management">
344     <div groups="base.group_website_publisher" t-ignore="true" class="pull-right css_editable_mode_hidden" t-att-style="style or ''">
345         <div t-attf-class="btn-group js_publish_management #{object.website_published and 'css_published' or 'css_unpublished'}" t-att-data-id="object.id" t-att-data-object="object._name" t-att-data-controller="publish_controller">
346             <button class="btn btn-danger js_publish_btn">Not Published</button>
347             <button class="btn btn-success js_publish_btn">Published</button>
348             <button type="button" t-attf-class="btn btn-default dropdown-toggle" t-att-id="'dopprod-%s' % object.id" data-toggle="dropdown">
349                 <span class="caret"></span>
350             </button>
351             <ul class="dropdown-menu" role="menu" t-att-aria-labelledby="'dopprod-%s' % object.id">
352                 <li>
353                     <a href="#" class="js_publish_btn">
354                         <span class="css_unpublish">Unpublish</span>
355                         <span class="css_publish">Publish</span>
356                     </a>
357                 </li>
358                 <t t-raw="0"/>
359                 <li t-if="publish_edit">
360                     <a t-attf-href="/web#return_label=Website&amp;view_type=form&amp;model=#{object._name}&amp;id=#{object.id}&amp;action=#{action}"
361                     title='Edit in backend'>Edit</a>
362                 </li>
363             </ul>
364         </div>
365     </div>
366 </template>
367
368 <template id="publish_short">
369     <t groups="base.group_website_publisher" t-ignore="true">
370         <div t-attf-class="btn-group pull-right js_publish_management #{object.website_published and 'css_published' or 'css_unpublished'}" t-att-data-id="object.id" t-att-data-object="object._name" t-att-data-controller="publish_controller">
371             <button t-attf-class="btn btn-sm btn-#{object.website_published and 'success' or 'danger'} js_publish_btn">
372                 <span class="css_publish">Not Published</span>
373                 <span class="css_unpublish">Published</span>
374             </button>
375         </div>
376     </t>
377 </template>
378
379 <template id="pager" name="Pager">
380     <ul t-if="pager['page_count'] > 1" t-attf-class="#{ classname or '' } pagination" t-att-style="style or ''">
381         <li t-att-class=" 'disabled' if pager['page']['num'] == 1 else '' ">
382             <a t-att-href=" pager['page_previous']['url'] if pager['page']['num'] != 1 else ''">Prev</a>
383         </li>
384         <t t-foreach="pager['pages']" t-as="page">
385             <li t-att-class=" 'active' if page['num'] == pager['page']['num'] else '' "> <a t-att-href="page['url']" t-raw="page['num']"></a></li>
386         </t>
387         <li t-att-class=" 'disabled' if pager['page']['num'] == pager['page_count'] else '' ">
388             <a t-att-href="pager['page_next']['url'] if pager['page']['num'] != pager['page_count'] else ''">Next</a>
389         </li>
390     </ul>
391 </template>
392
393 <template id="kanban">
394     <t t-set="step"><t t-esc="step or 0"/></t>
395     <t t-set="scope"><t t-esc="scope or 0"/></t>
396     <t t-set="orderby"><t t-esc="orderby or 'name'"/></t>
397     <t t-raw="website.kanban(model, domain, column, template, step=step, scope=scope, orderby=orderby)"/>
398 </template>
399
400 <template id="kanban_contain">
401     <table class="table js_kanban">
402         <thead>
403             <tr>
404                 <t t-set="width" t-valuef="{{ round(100.0 / (len(objects) if objects else 1), 2) }}%"/>
405                 <t t-foreach="objects" t-as="obj">
406                     <th t-att-width="width">
407                         <div t-field="obj['column_id'].name" class="text-center"></div>
408                     </th>
409                 </t>
410             </tr>
411         </thead>
412         <tbody>
413             <tr>
414                 <t t-foreach="objects" t-as="obj">
415                     <td class="js_kanban_col" t-att-data-template="template"
416                             t-att-data-domain="obj['domain']"
417                             t-att-data-page_count="obj['page_count']"
418                             t-att-data-model="obj['model']"
419                             t-att-data-step="obj['step']"
420                             t-att-data-orderby="obj['orderby']">
421                         <t t-foreach="obj['object_ids']" t-as="object_id">
422                             <t t-call="#{ template }"></t>
423                         </t>
424                         <!-- pager -->
425                         <div t-if="1 != obj['page_end']" class="pagination pagination-centered">
426                             <ul>
427                                 <li t-attf-class="prev #{'active' if obj['page'] == 1 else '' }">
428                                     <a t-att-href=" '%s,%s-%s' % (obj['kanban_url'], obj['column_id'].id, (obj['page'] &gt; 1 and obj['page']-1 or 1)) ">Prev</a></li>
429                                 <t t-foreach="range(obj['page_start'], obj['page_end']+1)" t-as="p">
430                                     <li t-att-class=" 'active' if obj['page'] == p else '' ">
431                                         <a t-att-href=" '%s,%s-%s' % (obj['kanban_url'], obj['column_id'].id, p)" t-esc="p"></a></li>
432                                 </t>
433                                 <li t-attf-class="next #{'active' if obj['page'] == obj['page_end'] else '' }">
434                                     <a t-att-href=" '%s,%s-%s' % (obj['kanban_url'], obj['column_id'].id, (obj['page'] &lt; obj['page_end'] and obj['page']+1 or obj['page_end']) )">Next</a></li>
435                             </ul>
436                         </div>
437                     </td>
438                 </t>
439             </tr>
440         </tbody>
441     </table>
442 </template>
443
444 <!-- Error and special pages -->
445
446 <template id="info" name="Odoo Information">
447     <t t-call="website.layout">
448       <div id="wrap">
449         <div class="oe_structure">
450
451             <section class="container">
452                 <h1><t t-esc="res_company.name"/>
453                     <small>Odoo Version <t t-raw="version.get('server_version')"/></small>
454                 </h1>
455                 <p>
456                     Information about the <t t-esc="res_company.name"/> instance of Odoo, the <a href="https://www.odoo.com">Open Source ERP</a>.
457                 </p>
458
459                 <div class="alert alert-warning alert-dismissable mt16" groups="base.group_website_publisher">
460                    <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&amp;times;</button>
461                    <p>
462                      Note: To hide this page, uncheck it from the top Customize menu.
463                    </p>
464                 </div>
465                 <h2>Installed Applications</h2>
466                 <dl class="dl-horizontal" t-foreach="apps" t-as="app">
467                     <dt>
468                         <a t-att-href="app.website" t-if="app.website">
469                             <t t-raw="app.shortdesc"/>
470                         </a>
471                         <span t-raw="app.shortdesc" t-if="not app.website"/>
472                     </dt>
473                     <dd>
474                         <span t-raw="app.summary"/>
475                     </dd><dd class="text-muted">
476                         Technical name: <span t-field="app.name"/>, updated: <span t-field="app.write_date"/>, author: <span t-field="app.author"/>
477                     </dd>
478                 </dl>
479
480                 <h2>Installed Modules</h2>
481                 <dl class="dl-horizontal">
482                     <t t-foreach="modules" t-as="app">
483                         <dt>
484                             <span t-raw="app.shortdesc"/>
485                         </dt>
486                         <dd t-if="app.summary">
487                             <span t-raw="app.summary"/>
488                         </dd><dd>
489                             Technical name: <span t-field="app.name"/>,
490                             updated: <span t-field="app.write_date"/>
491                             <t t-if="app.author">
492                                 , author: <span t-field="app.author"/>
493                             </t>
494                         </dd>
495                     </t>
496                 </dl>
497
498
499             </section>
500
501         </div>
502       </div>
503     </t>
504 </template>
505
506 <template id="default_page">
507     <t t-call="website.layout">
508       <div id="wrap" class="oe_structure oe_empty"></div>
509     </t>
510 </template>
511
512 <template id="page_404">
513     <t t-call="website.404">
514         <div class="container">
515             <div class="well mt32">
516                 <p>This page does not exists, but you can create it as you are administrator of this site.</p>
517                 <a class="btn btn-primary" t-attf-href="/website/add/#{ path }">Create Page</a>
518             </div>
519             <div class="text-center text-muted">Edit the content below this line to adapt the default "page not found" page.</div>
520         </div>
521         <hr/>
522     </t>
523 </template>
524
525 <template id="http_error">
526     <t t-call="website.layout">
527         <div id="wrap">
528             <div class="oe_structure">
529                 <h1 class="container mt32"><t t-esc="status_code"/>: <t t-esc="status_message"/></h1>
530             </div>
531
532             <t t-if="editable or request.debug">
533                 <t t-call="website.http_error_debug"/>
534             </t>
535         </div>
536     </t>
537 </template>
538
539 <template id="http_error_debug">
540     <div class="container panel-group mb32 mt32" id="debug_infos">
541         <div class="panel panel-default" t-if="exception">
542             <div class="panel-heading">
543                 <h4 class="panel-title">
544                     <a data-toggle="collapse" data-parent="#debug_infos" href="#error_main">
545                         Error
546                     </a>
547                 </h4>
548             </div>
549             <div id="error_main" class="panel-collapse collapse in">
550                 <div class="panel-body">
551                     <p t-if="website_controller">The following error was raised in the website controller <code t-esc="website_controller"/></p>
552                     <p>
553                         <strong>Error message:</strong>
554                         <pre t-esc="exception.message"/>
555                     </p>
556                 </div>
557             </div>
558         </div>
559         <div class="panel panel-default" t-if="qweb_exception">
560             <div class="panel-heading">
561                 <h4 class="panel-title">
562                     <a data-toggle="collapse" data-parent="#adebug_infos" href="#error_qweb">
563                         QWeb
564                     </a>
565                 </h4>
566             </div>
567             <div id="error_qweb" class="panel-collapse collapse">
568                 <div class="panel-body">
569                     <p t-if="exception.qweb.get('message')">
570                         <strong>Error message:</strong>
571                         <pre t-esc="exception.qweb.get('message')"/>
572                     </p>
573                     <p>
574                         The error occured while rendering the template <code t-esc="qweb_exception.qweb.get('template')"/>
575                         <t t-if="'expression' in qweb_exception.qweb">and evaluating the following expression: <code t-esc="qweb_exception.qweb['expression']"/></t>
576                     </p>
577                     <t t-if="'node' in qweb_exception.qweb">
578                         <pre id="exception_node" t-esc="qweb_exception.pretty_xml()"/>
579                     </t>
580                 </div>
581             </div>
582         </div>
583         <div class="panel panel-default" t-if="traceback">
584             <div class="panel-heading">
585                 <h4 class="panel-title">
586                     <a data-toggle="collapse" data-parent="#adebug_infos" href="#error_traceback">
587                         Traceback
588                     </a>
589                 </h4>
590             </div>
591             <div id="error_traceback" class="panel-collapse collapse">
592                 <div class="panel-body">
593                     <pre id="exception_traceback" t-esc="traceback"/>
594                 </div>
595             </div>
596         </div>
597     </div>
598 </template>
599
600 <template id="403">
601     <t t-call="website.layout">
602         <div id="wrap">
603             <div class="container">
604                 <h1 class="mt32">403: Forbidden</h1>
605                 <p>The page you were looking for could not be authorized.</p>
606                 <p>Maybe you were looking for one of these popular pages ?</p>
607                 <ul>
608                     <li><a href="/">Homepage</a></li>
609                     <li><a href="/page/website.contactus/">Contact Us</a></li>
610                 </ul>
611             </div>
612             <t t-if="editable or request.debug">
613                 <t t-call="website.http_error_debug"/>
614             </t>
615         </div>
616     </t>
617 </template>
618
619 <template id="404">
620     <t t-call="website.layout">
621         <div id="wrap">
622             <t t-raw="0"/>
623             <div class="oe_structure oe_empty">
624                 <div class="container">
625                     <h1 class="mt32">404: Page not found!</h1>
626                     <p>
627                         The page you were looking for could not be found; it is possible you have
628                         typed the address incorrectly, but it has most probably been removed due
629                         to the recent website reorganisation.
630                     </p>
631                     <p>Maybe you were looking for one of these popular pages ?</p>
632                     <ul>
633                         <li><a href="/">Homepage</a></li>
634                         <li><a href="/page/website.contactus/">Contact Us</a></li>
635                     </ul>
636                 </div>
637             </div>
638
639             <t t-if="request.debug">
640                 <t t-call="website.http_error_debug"/>
641             </t>
642         </div>
643     </t>
644 </template>
645
646 <template id="500">
647     <!-- This template should not use any variable except those provided by website.ir_http._handle_exception -->
648     <html>
649         <head>
650             <title t-esc="status_message">Internal Server Error</title>
651             <link rel='stylesheet' href='/web/static/lib/fontawesome/css/font-awesome.css'/>
652             <link rel='stylesheet' href='/web/static/lib/bootstrap/css/bootstrap.css'/>
653             <link rel='stylesheet' href='/website/static/src/css/website.css'/>
654             <script type="text/javascript" src="/web/static/lib/jquery/jquery.js"></script>
655             <script type="text/javascript" src="/web/static/lib/bootstrap/js/bootstrap.js"></script>
656             <script>
657                 $(document).ready(function() {
658                     var button = $('#reset_templates_button');
659                     button.click(function() {
660                         var dialog = $('#reset_template_confirmation').modal('show');
661                         var input = dialog.find('input[type="text"]').val('').focus();
662                         var dialog_form = dialog.find('form');
663                         dialog_form.submit(function() {
664                             if (input.val() == dialog.find('.confirm_word').text()) {
665                                 dialog.modal('hide');
666                                 button.prop('disabled', true).text('Working...');
667                                 $('#reset_templates_form').trigger('submit');
668                             } else {
669                                 input.val('').focus();
670                             }
671                             return false;
672                         });
673                         return false;
674                     });
675                 });
676             </script>
677         </head>
678         <body>
679             <div id="reset_template_confirmation" class="modal" tabindex="-1" role="dialog" aria-hidden="true" t-ignore="true">
680                 <div class="modal-dialog">
681                     <form class="form-horizontal" role="form">
682                     <div class="modal-content">
683                         <div class="modal-header">
684                             <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
685                             <h3 class="modal-title">Reset templates</h3>
686                         </div>
687                         <div class="modal-body">
688                             <div class="form-group mb0">
689                                 <label for="page-name" class="col-sm-9">
690                                     <p>The selected templates will be reset to their factory settings.</p>
691                                     <p>Type '<i class="confirm_word">yes</i>' in the box below if you want to confirm.</p>
692                                 </label>
693                                 <div class="col-sm-3 mt16">
694                                     <input type="text" class="form-control" required="required" placeholder="yes"/>
695                                 </div>
696                             </div>
697                         </div>
698                         <div class="modal-footer">
699                             <input type="submit" value="Confirm" class="btn btn-primary"/>
700                             <button type="button" class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button>
701                         </div>
702                     </div>
703                     </form>
704                 </div>
705             </div>
706
707             <div id="wrapwrap">
708                 <div class="navbar navbar-default navbar-static-top">
709                     <div class="container">
710                         <div class="collapse navbar-collapse navbar-top-collapse">
711                             <ul class="nav navbar-nav pull-right">
712                                 <li><a href="/">Home</a></li>
713                                 <li><a href="javascript: window.history.back()">Back</a></li>
714                             </ul>
715                         </div>
716                     </div>
717                 </div>
718                 <div class="mb32">
719                     <div class="oe_structure">
720                         <h1 class="container mt32"><t t-esc="status_code"/>: <t t-esc="status_message"/></h1>
721                     </div>
722                     <div class="container" t-if="views">
723                         <div class="alert alert-danger" t-if="qweb_exception and editable">
724                             <h4>Template fallback</h4>
725                             <p>An error occured while rendering the template <code t-esc="qweb_exception.qweb['template']"/>.</p>
726                             <p>If this error is caused by a change of yours in the templates, you have the possibility to reset one or more templates to their <strong>factory settings</strong>.</p>
727                             <form action="/website/reset_templates" method="post" id="reset_templates_form">
728                                 <ul class="oe_template_fallback">
729                                     <li t-foreach="views" t-as="view">
730                                         <label>
731                                             <input type="checkbox" name="templates" t-att-value="view.id" t-att-checked="'checked' if view_first else None"/>
732                                             <t t-esc="view.name"/>
733                                         </label>
734                                     </li>
735                                 </ul>
736                                 <input type="hidden" name="redirect" t-att-value="request.httprequest.path"/>
737                                 <button id="reset_templates_button">Reset selected templates</button>
738                             </form>
739                         </div>
740                     </div>
741
742                     <t t-if="editable or request.debug">
743                         <t t-call="website.http_error_debug"/>
744                     </t>
745                 </div>
746             </div>
747         </body>
748     </html>
749 </template>
750
751 <template id="robots">
752 User-agent: *
753 Sitemap: <t t-esc="url_root"/>sitemap.xml
754 </template>
755
756 <template id="sitemap_locs">
757     <url t-foreach="locs" t-as="page">
758         <loc><t t-esc="url_root"/><t t-esc="page['loc']"/></loc><t t-if="page.get('lastmod', False)">
759         <lastmod t-esc="page['lastmod']"/></t><t t-if="page.get('priority', False)">
760         <priority t-esc="page['priority']"/></t><t t-if="page.get('changefreq', False)">
761         <changefreq t-esc="page['changefreq']"/></t>
762     </url>
763 </template>
764
765 <template id="sitemap_xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
766 <urlset t-attf-xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
767     <t t-raw="content"/>
768 </urlset>
769 </template>
770
771 <template id="sitemap_index_xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
772 <sitemapindex t-attf-xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
773   <sitemap t-translate="off" t-foreach="pages" t-as="page">
774     <loc><t t-esc="url_root"/>sitemap-<t t-esc="page"/>.xml</loc>
775   </sitemap>
776 </sitemapindex>
777 </template>
778
779
780 <!-- Actual pages -->
781
782 <template id="homepage" name="Homepage" page="True" priority="29">
783     <t t-call="website.layout">
784       <div id="wrap" class="oe_structure oe_empty"></div>
785     </t>
786 </template>
787
788 <template id="company_description" name="Company Description">
789     <address itemscope="itemscope" itemtype="http://schema.org/Organization">
790         <!-- TODO widget contact must add itemprop attributes -->
791         <div t-field="res_company.partner_id" t-field-options='{
792                 "widget": "contact",
793                 "fields": ["name", "address", "phone", "mobile", "fax", "email"]}'/>
794     </address>
795      <a t-att-href="res_company.google_map_link()" target="_BLANK">
796         <img class="thumbnail img-responsive" t-att-src="res_company.google_map_img()" />
797     </a>
798 </template>
799
800 <template id="contactus" name="Contact us" page="True">
801     <t t-call="website.layout">
802       <div id="wrap">
803         <div class="oe_structure"/>
804         <div class="container">
805             <h1>Contact us</h1>
806             <div class="row">
807                 <div class="col-md-8">
808                     <div class="oe_structure">
809                         <div>
810                             <p>Contact us about anything related to our company or services.</p>
811                             <p>We'll do our best to get back to you as soon as possible.</p>
812                         </div>
813                     </div>
814                     <div class="text-center mt64" name="mail_button">
815                         <a t-attf-href="mailto:{{ res_company.email }}" class="btn btn-primary">Send us an email</a>
816                     </div>
817                 </div>
818                 <div class="col-md-4 mb32">
819                     <div groups="base.group_website_publisher" t-ignore="true" class="pull-right css_editable_mode_hidden" t-att-style="style or ''">
820                         <a class="btn btm-sm btn-default" t-att-href="'/web#return_label=Website&amp;model=%s&amp;id=%s' % (res_company._name, res_company.id)">Change address</a>
821                     </div>
822                     <t t-call="website.company_description"/>
823                 </div>
824             </div>
825         </div>
826         <div class="oe_structure"/>
827       </div>
828     </t>
829 </template>
830
831 <template id="aboutus" name="About us" page="True">
832     <t t-call="website.layout">
833         <div id="wrap">
834             <div class="oe_structure">
835
836                 <section data-snippet-id="title">
837                     <div class="container">
838                         <div class="row">
839                             <div class="col-md-12">
840                                 <h1 class="text-center">About us</h1>
841                                 <h3 class="text-muted text-center">Great products for great people</h3>
842                             </div>
843                         </div>
844                     </div>
845                 </section>
846
847                 <section data-snippet-id="text-image">
848                     <div class="container">
849                         <div class="row">
850                             <div class="col-md-6 mt32">
851                                 <p>
852                                       We are a team of passionate people whose goal is to improve everyone's
853                                       life through disruptive products. We build great products to solve your
854                                       business problems.
855                                 </p>
856                                 <p>
857                                       Our products are designed for small to medium size companies willing to optimize
858                                       their performance.
859                                 </p>
860                             </div>
861                             <div class="col-md-4 col-md-offset-2 mt16 mb16">
862                                 <img src="/website/static/src/img/library/business_conference.jpg" class="img img-responsive shadow" alt="Our Team"/>
863                             </div>
864                         </div>
865                     </div>
866                 </section>
867
868             </div>
869             <div class="oe_structure"></div>
870         </div>
871     </t>
872 </template>
873
874      </data>
875 </openerp>