Files
odoo_source/addons/web/views/webclient_templates.xml
T
Joren Van Onder 49d4ddd422 [IMP] barcode_events: implement a new way of dealing with barcode events
Implement a new way of dealing with barcode events. This was necessary
because the old way of dealing with input coming from barcode devices
did not stop keyevents. This lead to all kinds of issues (eg. barcode
reader output being inserted as tender in a paymentline).

This new class inserts itself so that it handles all keyevents before
everything else. This means that it has authority on what keypress
events pass and which ones do not. It differentiates between 'real'
keyboard input and input coming from devices by buffering events. When a
certain amount of events come in fast enough, it is handled as a barcode
and a 'barcode_scanned' event is emitted on core.bus. When buffered
events are decided to not be a barcode, they are recreated and
redispatched.
2015-05-29 16:29:15 +02:00

401 lines
23 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="web.assets_common">
<script type="text/javascript" src="/web/static/lib/es5-shim/es5-shim.min.js"></script>
<script type="text/javascript" src="/web/static/lib/underscore/underscore.js"></script>
<script type="text/javascript" src="/web/static/lib/underscore.string/lib/underscore.string.js"></script>
<script type="text/javascript" src="/web/static/lib/spinjs/spin.js"></script>
<script type="text/javascript" src="/web/static/lib/moment/moment.js"></script>
<!-- jQuery stuff -->
<script type="text/javascript" src="/web/static/lib/jquery/jquery.js"></script>
<script type="text/javascript" src="/web/static/lib/jquery/jquery.browser.js"></script>
<script type="text/javascript" src="/web/static/lib/jquery.blockUI/jquery.blockUI.js"></script>
<script type="text/javascript" src="/web/static/lib/jquery.hotkeys/jquery.hotkeys.js"></script>
<script type="text/javascript" src="/web/static/lib/jquery.placeholder/jquery.placeholder.js"></script>
<script type="text/javascript" src="/web/static/lib/jquery.timeago/jquery.timeago.js"></script>
<script type="text/javascript" src="/web/static/lib/jquery.form/jquery.form.js"></script>
<script type="text/javascript" src="/web/static/lib/jquery.ba-bbq/jquery.ba-bbq.js"></script>
<script type="text/javascript" src="/web/static/lib/qweb/qweb2.js"></script>
<script type="text/javascript" src="/web/static/src/js/boot.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/class.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/translation.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/ajax.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/time.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/mixins.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/widget.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/registry.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/session.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/model.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/utils.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/barcode_events.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/core.js"></script>
<script type="text/javascript" src="/web/static/src/js/tour.js"></script>
<script type="text/javascript" src="/web/static/test/menu.js"></script>
<link rel="stylesheet" href="/web/static/lib/fontawesome/css/font-awesome.css"/>
<link rel="stylesheet" href="/web/static/src/font/lato/stylesheet.css" />
<!-- Datetime Picker -->
<link rel="stylesheet" href="/web/static/lib/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css"/>
<script type="text/javascript" src="/web/static/lib/bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js"></script>
</template>
<template id="jqueryui_conflict" name="jquery.ui.conflict">
<!-- TODO: get rid of this hack once jQuery.ui is removed -->
<script type="text/javascript" charset="utf-8">
$.fn.bstooltip = $.fn.tooltip;
$.fn.bsbutton = $.fn.button;
</script>
<t t-raw="0"/>
<script type="text/javascript" charset="utf-8">
$.fn.tooltip = $.fn.bstooltip;
$.fn.button = $.fn.bsbutton;
</script>
</template>
<template id="web.assets_backend">
<!-- jQuery addons -->
<script type="text/javascript" src="/web/static/lib/jquery.validate/jquery.validate.js"></script>
<script type="text/javascript" src="/web/static/lib/jquery.autosize/jquery.autosize.js"></script>
<script type="text/javascript" src="/web/static/lib/jquery.scrollTo/jquery.scrollTo.js"></script>
<link rel="stylesheet" href="/web/static/lib/cleditor/jquery.cleditor.css"/>
<script type="text/javascript" src="/web/static/lib/cleditor/jquery.cleditor.js"></script>
<link rel="stylesheet" href="/web/static/lib/jquery.textext/jquery.textext.css"/>
<script type="text/javascript" src="/web/static/lib/jquery.textext/jquery.textext.js"></script>
<link rel="stylesheet" href="/web/static/lib/select2/select2.css"/>
<script type="text/javascript" src="/web/static/lib/select2/select2.js"></script>
<link rel="stylesheet" href="/web/static/lib/bootstrap/css/bootstrap.css"/>
<script type="text/javascript" src="/web/static/lib/bootstrap/js/bootstrap.js"></script>
<!-- jQuery ui -->
<link rel="stylesheet" href="/web/static/lib/jquery.ui/jquery-ui.css"/>
<t t-call="web.jqueryui_conflict">
<script type="text/javascript" src="/web/static/lib/jquery.ui/jquery-ui.js"></script>
</t>
<link rel="stylesheet" href="/web/static/lib/jquery.ui.notify/css/ui.notify.css"/>
<script type="text/javascript" src="/web/static/lib/jquery.ui.notify/js/jquery.notify.js"></script>
<!-- nv.d3 -->
<link rel="stylesheet" href="/web/static/lib/nvd3/nv.d3.css"/>
<script type="text/javascript" src="/web/static/lib/nvd3/d3.v3.js"></script>
<script type="text/javascript" src="/web/static/lib/nvd3/nv.d3.js"></script>
<!-- Backbone -->
<script type="text/javascript" src="/web/static/lib/backbone/backbone.js"></script>
<!-- Internals -->
<script type="text/javascript" charset="utf-8">
odoo._modules = <t t-raw="get_modules_order()"/>;
</script>
<link rel="stylesheet" href="/web/static/src/css/base.css"/>
<link rel="stylesheet" href="/web/static/src/css/data_export.css"/>
<link rel="stylesheet" href="/base/static/src/css/modules.css"/>
<script type="text/javascript" src="/web/static/lib/py.js/lib/py.js"></script>
<!-- Special case: core.js declares $.browser needed by ba-bbq -->
<script type="text/javascript" src="/web/static/lib/jquery.ba-bbq/jquery.ba-bbq.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/formats.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/view.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/pyeval.js"></script>
<script type="text/javascript" src="/web/static/src/js/action_manager.js"></script>
<script type="text/javascript" src="/web/static/src/js/control_panel.js"></script>
<script type="text/javascript" src="/web/static/src/js/view_manager.js"></script>
<script type="text/javascript" src="/web/static/src/js/web_client.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/data.js"></script>
<script type="text/javascript" src="/web/static/src/js/compatibility.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/misc.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/crash_manager.js"></script>
<script type="text/javascript" src="/web/static/src/js/widgets/change_password.js"></script>
<script type="text/javascript" src="/web/static/src/js/widgets/database_manager.js"></script>
<script type="text/javascript" src="/web/static/src/js/widgets/debug_manager.js"></script>
<script type="text/javascript" src="/web/static/src/js/widgets/data_export.js"></script>
<script type="text/javascript" src="/web/static/src/js/widgets/date_picker.js"></script>
<script type="text/javascript" src="/web/static/src/js/widgets/loading.js"></script>
<script type="text/javascript" src="/web/static/src/js/widgets/notification.js"></script>
<script type="text/javascript" src="/web/static/src/js/widgets/sidebar.js"></script>
<script type="text/javascript" src="/web/static/src/js/widgets/progress_bar.js"></script>
<script type="text/javascript" src="/web/static/src/js/widgets/systray_menu.js"></script>
<script type="text/javascript" src="/web/static/src/js/widgets/user_menu.js"></script>
<script type="text/javascript" src="/web/static/src/js/framework/dialog.js"></script>
<script type="text/javascript" src="/web/static/src/js/menu.js"></script>
<script type="text/javascript" src="/web/static/src/js/views/list_common.js"></script>
<script type="text/javascript" src="/web/static/src/js/views/list_view.js"></script>
<script type="text/javascript" src="/web/static/src/js/views/form_view.js"></script>
<script type="text/javascript" src="/web/static/src/js/views/form_common.js"></script>
<script type="text/javascript" src="/web/static/src/js/views/form_widgets.js"></script>
<script type="text/javascript" src="/web/static/src/js/views/form_relational_widgets.js"></script>
<script type="text/javascript" src="/web/static/src/js/views/list_view_editable.js"></script>
<script type="text/javascript" src="/web/static/src/js/views/pivot_view.js"></script>
<script type="text/javascript" src="/web/static/src/js/views/graph_view.js"></script>
<script type="text/javascript" src="/web/static/src/js/views/graph_widget.js"></script>
<script type="text/javascript" src="/web/static/src/js/views/search_view.js"></script>
<script type="text/javascript" src="/web/static/src/js/views/search_filters.js"></script>
<script type="text/javascript" src="/web/static/src/js/views/search_inputs.js"></script>
<script type="text/javascript" src="/web/static/src/js/views/search_menus.js"></script>
<script type="text/javascript" src="/web/static/src/js/views/tree_view.js"></script>
<script type="text/javascript" src="/base/static/src/js/apps.js"></script>
</template>
<template id="web.assets_webclient_manifest">
<!-- This bundle can be used for module manifest asset declaration backward compatibility -->
<t t-foreach="manifest_list('css')" t-as="css_file">
<link rel="stylesheet" t-att-href="css_file"/>
</t>
<t t-foreach="manifest_list('js')" t-as="js_file">
<script type="text/javascript" t-att-src="js_file"></script>
</t>
</template>
<template id="web.layout" name="Web layout">&lt;!DOCTYPE html&gt;
<html style="height: 100%">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Odoo</title>
<link rel="shortcut icon" href="/web/static/src/img/favicon.ico" type="image/x-icon"/>
<link rel="stylesheet" href="/web/static/src/css/full.css" />
<t t-raw="head or ''"/>
</head>
<body t-att-class="body_classname">
<t t-raw="0"/>
</body>
</html>
</template>
<template id="web.menu">
<ul class="nav navbar-nav navbar-left oe_application_menu_placeholder" style="display: none;">
<li t-foreach="menu_data['children']" t-as="menu">
<t t-call="web.menu_link"/>
</li>
<li id="menu_more_container" class="dropdown" style="display: none;">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">More <b class="caret"></b></a>
<ul id="menu_more" class="dropdown-menu"></ul>
</li>
</ul>
<ul class="nav navbar-nav navbar-right oe_user_menu_placeholder" style="display: none;"/>
<ul class="nav navbar-nav navbar-right oe_systray" style="display: none;"/>
</template>
<template id="web.menu_secondary">
<a class="oe_logo" t-att-href="'/web/?debug' if debug else '/web'">
<span class="oe_logo_edit">Edit Company data</span>
<img src='/web/binary/company_logo'/>
</a>
<div class="oe_secondary_menus_container">
<t t-foreach="menu_data['children']" t-as="menu">
<div style="display: none" class="oe_secondary_menu" t-att-data-menu-parent="menu['id']">
<t t-foreach="menu['children']" t-as="menu">
<div class="oe_secondary_menu_section">
<t t-if="menu['children']"><t t-esc="menu['name']"/></t>
<t t-if="not menu['children']"><t t-call="web.menu_link"/></t>
</div>
<t t-call="web.menu_secondary_submenu"/>
</t>
</div>
</t>
</div>
<div class="oe_footer">
Powered by <a href="http://www.odoo.com" target="_blank"><span>Odoo</span></a>
</div>
</template>
<template id="web.menu_secondary_submenu">
<ul t-if="menu['children']" class="oe_secondary_submenu nav nav-pills nav-stacked">
<li t-foreach="menu['children']" t-as="menu">
<t t-call="web.menu_link"/>
<t t-call="web.menu_secondary_submenu"/>
</li>
</ul>
</template>
<template id="web.menu_link">
<t t-set="debug_param" t-value="'?&amp;debug=' if debug else ''"/>
<a t-att-href="'/web%s#menu_id=%s&amp;action=%s' % (debug_param, menu['id'], menu['action'] and menu['action'].split(',')[1] or '')"
t-att-class="'oe_menu_toggler' if menu.get('children') else 'oe_menu_leaf'"
t-att-data-menu="menu['id']"
t-att-data-action-model="menu['action'] and menu['action'].split(',')[0] or ''"
t-att-data-action-id="menu['action'] and menu['action'].split(',')[1] or ''">
<i t-if="menu.get('icon')" t-attf-class="fa #{menu.get('icon')} fa-lg fa-fw"/>
<span class="oe_menu_text">
<t t-esc="menu['name']"/>
</span>
</a>
</template>
<template id="web.webclient_bootstrap" name="Webclient Bootstrap">
<t t-call="web.layout">
<t t-set="head">
<t t-call-assets="web.assets_common"/>
<t t-call-assets="web.assets_backend"/>
&lt;!--[if lte IE 9]&gt; <link rel="stylesheet" href="/web/static/src/css/ie.css"/> &lt;![endif]--&gt;
<script type="text/javascript">
$(function() {
<t t-if="init">
<t t-raw="init"/>
</t>
<t t-if="not init">
odoo.define('web.web_client', function (require) {
var WebClient = require('web.WebClient');
var web_client = new WebClient();
web_client.setElement($(document.body));
web_client.start();
return web_client;
});
odoo.init();
</t>
});
</script>
</t>
<nav id="oe_main_menu_navbar" class="navbar navbar-inverse" role="navigation" groups="base.group_user,base.group_portal">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="navbar-collapse collapse" id="oe_main_menu_placeholder">
<t t-call="web.menu"/>
</div>
</nav>
<div class="openerp openerp_webclient_container oe_webclient">
<div class="oe_leftbar" groups="base.group_user,base.group_portal">
<t t-call="web.menu_secondary"/>
</div><div class="oe_application"/>
</div>
</t>
</template>
<template id="web.login_layout" name="Login Layout">
<t t-call="web.layout">
<t t-set="head">
<link href="/web/static/src/css/base.css" rel="stylesheet"/>
<link href="/web/static/lib/bootstrap/css/bootstrap.css" rel="stylesheet"/>
</t>
<t t-set="body_classname" t-value="'oe_single_form'"/>
<div class="oe_single_form_container modal-content">
<div class="oe_single_form_logo">
<img t-attf-src="/web/binary/company_logo{{ '?dbname='+db if db else '' }}"/>
</div>
<hr/>
<t t-raw="0"/>
<div class="oe_single_form_footer" t-if="not disable_footer">
<t t-if="not disable_database_manager">
<a class="oe_login_manage_db" t-attf-href="/web/database/manager{{ '?debug' if debug else '' }}">Manage Databases</a>
<span class="oe_footer_seperator"> | </span>
</t>
<a href="https://www.odoo.com" target="_blank">Powered by <span>Odoo</span></a>
</div>
</div>
</t>
</template>
<template id="web.database_select" name="Database select widget">
<script type="text/javascript">
function dbchanged(db) {
document.location = "/web/login?<t t-if="debug">debug&amp;</t>db=" + db;
}
</script>
<div class="form-group field-db" t-if="databases and len(databases) &gt; 1">
<label for="db" class="control-label">Database</label>
<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)">
<option></option>
<t t-foreach="databases" t-as="db">
<option t-att-selected="'selected' if db == request.db else None">
<t t-esc="db"/>
</option>
</t>
</select>
</div>
</template>
<template id="web.login" name="Login">
<t t-call="web.login_layout">
<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">
<t t-call="web.database_select"/>
<div class="form-group field-login">
<label for="login" class="control-label">Email</label>
<input type="text" name="login" t-att-value="login" id="login" class="form-control" required="required" autofocus="autofocus"/>
</div>
<div class="form-group field-password">
<label for="password" class="control-label">Password</label>
<input type="password" name="password" id="password" class="form-control" required="required" t-att-autofocus="'autofocus' if login else None"/>
</div>
<p class="alert alert-danger" t-if="error">
<t t-esc="error"/>
</p>
<p class="alert alert-success" t-if="message">
<t t-esc="message"/>
</p>
<input type="hidden" name="redirect" t-att-value="redirect"/>
<div class="clearfix oe_login_buttons">
<button type="submit" class="btn btn-primary">Log in</button>
</div>
</form>
</t>
</template>
<template id="web.qunit_suite">
&lt;!DOCTYPE html&gt;
<html style="height: 100%">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Odoo Web Tests</title>
<link rel="shortcut icon" href="/web/static/src/img/favicon.ico" type="image/x-icon"/>
<link rel="stylesheet" href="/web/static/lib/qunit/qunit-1.17.1.css"/>
<script src="/web/static/lib/qunit/qunit-1.17.1.js"></script>
<t t-call="web.assets_common"/>
<t t-call="web.assets_backend"/>
<style>
body { overflow: auto !important; }
</style>
<script type="text/javascript" src="/web/static/test/testing.js"></script>
<script type="text/javascript" src="/web/static/test/registry.js"></script>
<script type="text/javascript" src="/web/static/test/rpc-misordered.js"></script>
<script type="text/javascript" src="/web/static/test/mutex.js"></script>
<script type="text/javascript" src="/web/static/test/data.js"></script>
<script type="text/javascript" src="/web/static/test/evals.js"></script>
<script type="text/javascript" src="/web/static/test/form.js"></script>
<script type="text/javascript" src="/web/static/test/formats.js"></script>
<script type="text/javascript" src="/web/static/test/framework.js"></script>
<script type="text/javascript" src="/web/static/test/list.js"></script>
<script type="text/javascript" src="/web/static/test/list-utils.js"></script>
<script type="text/javascript" src="/web/static/test/list-editable.js"></script>
<script type="text/javascript" src="/web/static/test/search.js"></script>
</head>
<body id="oe" class="openerp">
<div id="qunit"></div>
<div id="qunit-fixture"></div>
</body>
</html>
</template>
</data>
</openerp>