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