98e506863c15fa8852490e90432b82ce9e1dd437
[odoo/odoo.git] / addons / web / views / webclient_templates.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <!-- vim:fdn=3:
3 -->
4 <openerp>
5     <data>
6         <template id="web.assets_common">
7             <script type="text/javascript" src="/web/static/lib/es5-shim/es5-shim.min.js"></script>
8             <script type="text/javascript" src="/web/static/lib/underscore/underscore.js"></script>
9             <script type="text/javascript" src="/web/static/lib/underscore.string/lib/underscore.string.js"></script>
10             <script type="text/javascript" src="/web/static/lib/datejs/globalization/en-US.js"></script>
11             <script type="text/javascript" src="/web/static/lib/spinjs/spin.js"></script>
12
13             <!-- jQuery stuff -->
14             <script type="text/javascript" src="/web/static/lib/jquery/jquery.js"></script>
15             <script type="text/javascript" src="/web/static/lib/jquery.blockUI/jquery.blockUI.js"></script>
16             <script type="text/javascript" src="/web/static/lib/jquery.hotkeys/jquery.hotkeys.js"></script>
17             <script type="text/javascript" src="/web/static/lib/jquery.placeholder/jquery.placeholder.js"></script>
18             <script type="text/javascript" src="/web/static/lib/jquery.timeago/jquery.timeago.js"></script>
19             <script type="text/javascript" src="/web/static/lib/jquery.form/jquery.form.js"></script>
20
21             <script type="text/javascript" src="/web/static/lib/jquery.ba-bbq/jquery.ba-bbq.js"></script>
22
23             <script type="text/javascript" src="/web/static/lib/qweb/qweb2.js"></script>
24             <script type="text/javascript" src="/web/static/src/js/openerpframework.js"></script>
25             <script type="text/javascript" src="/web/static/src/js/tour.js"></script>
26
27             <link rel="stylesheet" href="/web/static/lib/fontawesome/css/font-awesome.css"/>
28         </template>
29
30         <template id="jqueryui_conflict" name="jquery.ui.conflict">
31             <!-- TODO: get rid of this hack once jQuery.ui is removed -->
32             <script type="text/javascript" charset="utf-8">
33                 $.fn.bstooltip = $.fn.tooltip;
34                 $.fn.bsbutton = $.fn.button;
35             </script>
36             <t t-raw="0"/>
37             <script type="text/javascript" charset="utf-8">
38                 $.fn.tooltip = $.fn.bstooltip;
39                 $.fn.button = $.fn.bsbutton;
40             </script>
41         </template>
42
43         <template id="web.assets_backend">
44             <!-- Datejs -->
45             <script type="text/javascript" src="/web/static/lib/datejs/core.js"></script>
46             <script type="text/javascript" src="/web/static/lib/datejs/parser.js"></script>
47             <script type="text/javascript" src="/web/static/lib/datejs/sugarpak.js"></script>
48             <script type="text/javascript" src="/web/static/lib/datejs/extras.js"></script>
49
50             <!-- jQuery addons -->
51             <script type="text/javascript" src="/web/static/lib/jquery.validate/jquery.validate.js"></script>
52             <script type="text/javascript" src="/web/static/lib/jquery.autosize/jquery.autosize.js"></script>
53             <script type="text/javascript" src="/web/static/lib/jquery.scrollTo/jquery.scrollTo-min.js"></script>
54
55             <link rel="stylesheet" href="/web/static/lib/cleditor/jquery.cleditor.css"/>
56             <script type="text/javascript" src="/web/static/lib/cleditor/jquery.cleditor.js"></script>
57
58             <link rel="stylesheet" href="/web/static/lib/jquery.textext/jquery.textext.css"/>
59             <script type="text/javascript" src="/web/static/lib/jquery.textext/jquery.textext.js"></script>
60
61             <link rel="stylesheet" href="/web/static/lib/select2/select2.css"/>
62             <script type="text/javascript" src="/web/static/lib/select2/select2.js"></script>
63
64             <link rel="stylesheet" href="/web/static/lib/bootstrap/css/bootstrap.css"/>
65             <script type="text/javascript" src="/web/static/lib/bootstrap/js/bootstrap.js"></script>
66
67             <!-- jQuery ui -->
68             <link rel="stylesheet" href="/web/static/lib/jquery.ui.bootstrap/css/custom-theme/jquery-ui-1.9.0.custom.css"/>
69
70             <t t-call="web.jqueryui_conflict">
71                 <script type="text/javascript" src="/web/static/lib/jquery.ui/js/jquery-ui-1.9.1.custom.js"></script>
72             </t>
73
74             <link rel="stylesheet" href="/web/static/lib/jquery.ui.timepicker/css/jquery-ui-timepicker-addon.css"/>
75             <script type="text/javascript" src="/web/static/lib/jquery.ui.timepicker/js/jquery-ui-timepicker-addon.js"></script>
76
77             <link rel="stylesheet" href="/web/static/lib/jquery.ui.notify/css/ui.notify.css"/>
78             <script type="text/javascript" src="/web/static/lib/jquery.ui.notify/js/jquery.notify.js"></script>
79
80
81             <!-- Backbone -->
82             <script type="text/javascript" src="/web/static/lib/backbone/backbone.js"></script>
83
84             <!-- Internals -->
85             <script type="text/javascript" charset="utf-8">
86                 openerp._modules = <t t-raw="get_modules_order()"/>;
87             </script>
88             <link rel="stylesheet" href="/web/static/src/css/base.css"/>
89             <link rel="stylesheet" href="/web/static/src/css/data_export.css"/>
90             <link rel="stylesheet" href="/base/static/src/css/modules.css"/>
91
92             <script type="text/javascript" src="/web/static/lib/py.js/lib/py.js"></script>
93             <script type="text/javascript" src="/web/static/src/js/boot.js"></script>
94             <script type="text/javascript" src="/web/static/src/js/testing.js"></script>
95             <script type="text/javascript" src="/web/static/src/js/pyeval.js"></script>
96             <script type="text/javascript" src="/web/static/src/js/core.js"></script>
97             <script type="text/javascript" src="/web/static/src/js/formats.js"></script>
98             <script type="text/javascript" src="/web/static/src/js/chrome.js"></script>
99             <script type="text/javascript" src="/web/static/src/js/views.js"></script>
100             <script type="text/javascript" src="/web/static/src/js/data.js"></script>
101             <script type="text/javascript" src="/web/static/src/js/data_export.js"></script>
102             <script type="text/javascript" src="/web/static/src/js/search.js"></script>
103             <script type="text/javascript" src="/web/static/src/js/view_list.js"></script>
104             <script type="text/javascript" src="/web/static/src/js/view_form.js"></script>
105             <script type="text/javascript" src="/web/static/src/js/view_list_editable.js"></script>
106             <script type="text/javascript" src="/web/static/src/js/view_tree.js"></script>
107             <script type="text/javascript" src="/base/static/src/js/apps.js"></script>
108
109         </template>
110
111         <template id="web.assets_webclient_manifest">
112             <!-- This bundle can be used for module manifest asset declaration backward compatibility -->
113             <t t-foreach="manifest_list('css')" t-as="css_file">
114                 <link rel="stylesheet" t-att-href="css_file"/>
115             </t>
116             <t t-foreach="manifest_list('js')" t-as="js_file">
117                 <script type="text/javascript" t-att-src="js_file"></script>
118             </t>
119         </template>
120
121         <template id="web.layout" name="Web layout">&lt;!DOCTYPE html&gt;
122             <html style="height: 100%">
123                 <head>
124                     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
125                     <meta http-equiv="content-type" content="text/html; charset=utf-8" />
126                     <title>Odoo</title>
127                     <link rel="shortcut icon" href="/web/static/src/img/favicon.ico" type="image/x-icon"/>
128                     <link rel="stylesheet" href="/web/static/src/css/full.css" />
129                     <t t-raw="head or ''"/>
130                 </head>
131                 <body t-att-class="body_classname">
132                     <t t-raw="0"/>
133                 </body>
134             </html>
135         </template>
136
137         <template id="web.menu">
138             <ul class="nav navbar-nav navbar-left oe_application_menu_placeholder">
139                 <li t-foreach="menu_data['children']" t-as="menu">
140                     <t t-call="web.menu_link"/>
141                 </li>
142                 <li id="menu_more_container" class="dropdown" style="display: none;">
143                     <a href="#" class="dropdown-toggle" data-toggle="dropdown">More <b class="caret"></b></a>
144                     <ul id="menu_more" class="dropdown-menu"></ul>
145                 </li>
146             </ul>
147
148             <ul class="nav navbar-nav navbar-right oe_user_menu_placeholder" style="display: none;"/>
149             <ul class="nav navbar-nav navbar-right oe_systray" style="display: none;"/>
150         </template>
151         <template id="web.menu_secondary">
152             <a class="oe_logo" t-att-href="'/web/?debug' if debug else '/web'">
153                 <span class="oe_logo_edit">Edit Company data</span>
154                 <img src='/web/binary/company_logo'/>
155             </a>
156             <div>
157                 <div>
158                     <div class="oe_secondary_menus_container">
159                         <t t-foreach="menu_data['children']" t-as="menu">
160                             <div style="display: none" class="oe_secondary_menu" t-att-data-menu-parent="menu['id']">
161                                 <t t-foreach="menu['children']" t-as="menu">
162                                     <div class="oe_secondary_menu_section">
163                                         <t t-esc="menu['name']"/>
164                                     </div>
165                                     <t t-call="web.menu_secondary_submenu"/>
166                                 </t>
167                             </div>
168                         </t>
169                     </div>
170                 </div>
171             </div>
172             <div class="oe_footer">
173                 Powered by <a href="http://www.openerp.com" target="_blank"><span>Odoo</span></a>
174             </div>
175         </template>
176         <template id="web.menu_secondary_submenu">
177             <ul t-if="menu['children']" class="oe_secondary_submenu nav nav-pills nav-stacked">
178                 <li t-foreach="menu['children']" t-as="menu">
179                     <t t-call="web.menu_link"/>
180                     <t t-call="web.menu_secondary_submenu"/>
181                 </li>
182             </ul>
183         </template>
184         <template id="web.menu_link">
185             <t t-set="debug_param" t-value="'?&amp;debug=' if debug else ''"/>
186             <a t-att-href="'/web%s#menu_id=%s&amp;action=%s' % (debug_param, menu['id'], menu['action'] and menu['action'].split(',')[1] or '')"
187                 t-att-class="'oe_menu_toggler' if menu.get('children') else 'oe_menu_leaf'"
188                 t-att-data-menu="menu['id']"
189                 t-att-data-action-model="menu['action'] and menu['action'].split(',')[0] or ''"
190                 t-att-data-action-id="menu['action'] and menu['action'].split(',')[1] or ''">
191                 <span class="oe_menu_text">
192                     <t t-esc="menu['name']"/>
193                 </span>
194             </a>
195         </template>
196
197         <template id="web.webclient_bootstrap" name="Webclient Bootstrap">
198             <t t-call="web.layout">
199                 <t t-set="head">
200                     <t t-call-assets="web.assets_common"/>
201                     <t t-call-assets="web.assets_backend"/>
202                     <script type="text/javascript">
203                         $(function() {
204                             var s = new openerp.init();
205                             <t t-if="init">
206                                 <t t-raw="init"/>
207                             </t>
208                             <t t-if="not init">
209                                 var wc = new s.web.WebClient();
210                                 wc.setElement($(document.body));
211                                 wc.start();
212                             </t>
213                         });
214                     </script>
215                 </t>
216
217                 <nav id="oe_main_menu_navbar" class="navbar navbar-inverse" role="navigation" groups="base.group_user,base.group_portal">
218                     <div class="navbar-header">
219                         <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
220                             <span class="icon-bar"></span>
221                             <span class="icon-bar"></span>
222                             <span class="icon-bar"></span>
223                         </button>    
224                     </div>
225                     <div class="navbar-collapse collapse" id="oe_main_menu_placeholder">
226                         <t t-call="web.menu"/>
227                     </div>
228                 </nav>
229                 <div class="openerp openerp_webclient_container">
230                     <table class="oe_webclient">
231                         <tr>
232                             <td class="oe_leftbar" valign="top">
233                                 <div groups="base.group_user,base.group_portal">
234                                     <t t-call="web.menu_secondary"/>
235                                 </div>
236                             </td>
237                             <td class="oe_application"/>
238                         </tr>
239                     </table>
240                 </div>
241             </t>
242         </template>
243
244         <template id="web.login_layout" name="Login Layout">
245             <t t-call="web.layout">
246                 <t t-set="head">
247                     <link href="/web/static/src/css/base.css" rel="stylesheet"/>
248                     <link href="/web/static/lib/bootstrap/css/bootstrap.css" rel="stylesheet"/>
249                 </t>
250                 <t t-set="body_classname" t-value="'oe_single_form'"/>
251                 <div class="oe_single_form_container modal-content">
252                     <div class="oe_single_form_logo">
253                         <img src="/web/binary/company_logo"/>
254                     </div>
255                     <hr/>
256                     <t t-raw="0"/>
257
258                     <div class="oe_single_form_footer" t-if="not disable_footer">
259                         <t t-if="not disable_database_manager">
260                             <a class="oe_login_manage_db" t-attf-href="/web/database/manager{{ '?debug' if debug else '' }}">Manage Databases</a>
261                             <span class="oe_footer_seperator"> | </span>
262                         </t>
263                         <a href="https://www.odoo.com" target="_blank">Powered by <span>Odoo</span></a>
264                     </div>
265                 </div>
266             </t>
267         </template>
268
269         <template id="web.database_select" name="Database select widget">
270             <script type="text/javascript">
271                 function dbchanged(db) {
272                     document.location = "/web/login?<t t-if="debug">debug&amp;</t>db=" + db;
273                 }
274             </script>
275             <div class="form-group field-db" t-if="databases and len(databases) &gt; 1">
276                 <label for="db" class="control-label">Database</label>
277                 <select name="db" id="db" class="form-control" required="required" t-att-autofocus="'autofocus' if request.db not in databases else None" onchange="dbchanged(this.value)">
278                     <option></option>
279                     <t t-foreach="databases" t-as="db">
280                         <option t-att-selected="'selected' if db == request.db else None">
281                             <t t-esc="db"/>
282                         </option>
283                     </t>
284                 </select>
285             </div>
286         </template>
287
288         <template id="web.login" name="Login">
289             <t t-call="web.login_layout">
290                 <form class="oe_login_form" role="form" t-attf-action="/web/login{{ '?debug' if debug else '' }}" method="post" onsubmit="this.action = this.action + location.hash">
291
292                     <t t-call="web.database_select"/>
293
294                     <div class="form-group field-login">
295                         <label for="login" class="control-label">Email</label>
296                         <input type="text" name="login" t-att-value="login" id="login" class="form-control" required="required" autofocus="autofocus"/>
297                     </div>
298
299                     <div class="form-group field-password">
300                         <label for="password" class="control-label">Password</label>
301                         <input type="password" name="password" id="password" class="form-control" required="required" t-att-autofocus="'autofocus' if login else None"/>
302                     </div>
303
304                     <p class="alert alert-danger" t-if="error">
305                         <t t-esc="error"/>
306                     </p>
307                     <p class="alert alert-success" t-if="message">
308                         <t t-esc="message"/>
309                     </p>
310
311                     <input type="hidden" name="redirect" t-att-value="redirect"/>
312                     <div class="clearfix oe_login_buttons">
313                         <button type="submit" class="btn btn-primary">Log in</button>
314                     </div>
315
316                 </form>
317             </t>
318         </template>
319
320         <template id="web.qunit_suite">
321             &lt;!DOCTYPE html&gt;
322             <html style="height: 100%">
323                 <head>
324                     <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
325                     <meta http-equiv="content-type" content="text/html; charset=utf-8" />
326                     <title>Odoo Web Tests</title>
327
328                     <link rel="shortcut icon" href="/web/static/src/img/favicon.ico" type="image/x-icon"/>
329                     <link rel="stylesheet" href="/web/static/lib/qunit/qunit.css"/>
330                     <script src="/web/static/lib/qunit/qunit.js"></script>
331
332                     <t t-call="web.assets_common"/>
333                     <t t-call="web.assets_backend"/>
334
335                     <script type="text/javascript" id="qunit_config">
336                         localStorage.clear();
337                         QUnit.config.testTimeout = 5 * 60 * 1000;
338                         QUnit.moduleDone(function(result) {
339                             console.log(result.name + " (" + result.passed + "/" + result.total + " passed tests)");
340                         });
341                         QUnit.done(function(result) {
342                             if (result.failed === 0) {
343                                 console.log('ok');
344                             } else {
345                                 console.log('error');
346                             }
347                         });
348                         openerp.web.qweb.add_template("/web/webclient/qweb");
349                     </script>
350
351                     <script type="text/javascript" src="/web/static/test/testing.js"></script>
352                     <script type="text/javascript" src="/web/static/test/framework.js"></script>
353                     <script type="text/javascript" src="/web/static/test/registry.js"></script>
354                     <script type="text/javascript" src="/web/static/test/form.js"></script>
355                     <script type="text/javascript" src="/web/static/test/data.js"></script>
356                     <script type="text/javascript" src="/web/static/test/list-utils.js"></script>
357                     <script type="text/javascript" src="/web/static/test/formats.js"></script>
358                     <script type="text/javascript" src="/web/static/test/rpc-misordered.js"></script>
359                     <script type="text/javascript" src="/web/static/test/evals.js"></script>
360                     <script type="text/javascript" src="/web/static/test/search.js"></script>
361                     <script type="text/javascript" src="/web/static/test/list.js"></script>
362                     <script type="text/javascript" src="/web/static/test/list-editable.js"></script>
363                     <script type="text/javascript" src="/web/static/test/mutex.js"></script>
364                 </head>
365
366                 <body id="oe" class="openerp">
367                     <div id="qunit"></div>
368                     <div id="qunit-fixture"></div>
369                 </body>
370             </html>
371
372         </template>
373
374     </data>
375 </openerp>