1 <?xml version="1.0" encoding="utf-8"?>
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>
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>
21 <script type="text/javascript" src="/web/static/lib/jquery.ba-bbq/jquery.ba-bbq.js"></script>
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>
27 <link rel="stylesheet" href="/web/static/lib/fontawesome/css/font-awesome.css"/>
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;
37 <script type="text/javascript" charset="utf-8">
38 $.fn.tooltip = $.fn.bstooltip;
39 $.fn.button = $.fn.bsbutton;
43 <template id="web.assets_backend">
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>
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>
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>
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>
61 <link rel="stylesheet" href="/web/static/lib/select2/select2.css"/>
62 <script type="text/javascript" src="/web/static/lib/select2/select2.js"></script>
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>
68 <link rel="stylesheet" href="/web/static/lib/jquery.ui.bootstrap/css/custom-theme/jquery-ui-1.9.0.custom.css"/>
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>
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>
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>
82 <script type="text/javascript" src="/web/static/lib/backbone/backbone.js"></script>
85 <script type="text/javascript" charset="utf-8">
86 openerp._modules = <t t-raw="get_modules_order()"/>;
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"/>
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>
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"/>
116 <t t-foreach="manifest_list('js')" t-as="js_file">
117 <script type="text/javascript" t-att-src="js_file"></script>
121 <template id="web.layout" name="Web layout"><!DOCTYPE html>
122 <html style="height: 100%">
124 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
125 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
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 ''"/>
131 <body t-att-class="body_classname">
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"/>
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>
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;"/>
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'/>
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']"/>
165 <t t-call="web.menu_secondary_submenu"/>
172 <div class="oe_footer">
173 Powered by <a href="http://www.openerp.com" target="_blank"><span>Odoo</span></a>
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"/>
184 <template id="web.menu_link">
185 <t t-set="debug_param" t-value="'?&debug=' if debug else ''"/>
186 <a t-att-href="'/web%s#menu_id=%s&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']"/>
197 <template id="web.webclient_bootstrap" name="Webclient Bootstrap">
198 <t t-call="web.layout">
200 <t t-call-assets="web.assets_common"/>
201 <t t-call-assets="web.assets_backend"/>
202 <script type="text/javascript">
204 var s = new openerp.init();
209 var wc = new s.web.WebClient();
210 wc.setElement($(document.body));
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>
225 <div class="navbar-collapse collapse" id="oe_main_menu_placeholder">
226 <t t-call="web.menu"/>
229 <div class="openerp openerp_webclient_container">
230 <table class="oe_webclient">
232 <td class="oe_leftbar" valign="top">
233 <div groups="base.group_user,base.group_portal">
234 <t t-call="web.menu_secondary"/>
237 <td class="oe_application"/>
244 <template id="web.login_layout" name="Login Layout">
245 <t t-call="web.layout">
247 <link href="/web/static/src/css/base.css" rel="stylesheet"/>
248 <link href="/web/static/lib/bootstrap/css/bootstrap.css" rel="stylesheet"/>
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"/>
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>
263 <a href="https://www.odoo.com" target="_blank">Powered by <span>Odoo</span></a>
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&</t>db=" + db;
275 <div class="form-group field-db" t-if="databases and len(databases) > 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)">
279 <t t-foreach="databases" t-as="db">
280 <option t-att-selected="'selected' if db == request.db else None">
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">
292 <t t-call="web.database_select"/>
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"/>
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"/>
304 <p class="alert alert-danger" t-if="error">
307 <p class="alert alert-success" t-if="message">
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>
320 <template id="web.qunit_suite">
321 <!DOCTYPE html>
322 <html style="height: 100%">
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>
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>
332 <t t-call="web.assets_common"/>
333 <t t-call="web.assets_backend"/>
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)");
341 QUnit.done(function(result) {
342 if (result.failed === 0) {
345 console.log('error');
348 openerp.web.qweb.add_template("/web/webclient/qweb");
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>
366 <body id="oe" class="openerp">
367 <div id="qunit"></div>
368 <div id="qunit-fixture"></div>