Purpose ======= Settings are often way too long and hard to scan and sometimes you don't know where to find the settings you're looking for. By adding a left navigation, you can already have an overview of the settings, and switch easily between them. Specification ============= - Add a search bar on all the apps that have settings which can search results from all the installed apps. (If i'm on sales settings,and I search anything then it shows results from sales settings and also shows all the other matching results from all the other apps such as, Inventory...etc) with app name. - Able to activate feature from the current page results (no matter if the searched result is from another apps). - Highlight searched word in results - Delete the sheet, have a full white background - Add left navigation bar on setting - Left navigation bar fixed - List displayed based on installed apps - On right panel, by default display current app setting and change accordingly - [Mobile] Left navigation bar displayed on top - Add Breadcrumb on top of the page: have the name "Settings" + Save / discard CTA + Search - Add General Settings on the nav bar - remove "save this page..." notif in all settings - Delete all recommanded apps section + all checkbox that install app should disappear: payroll: https://drive.google.com/a/odoo.com/file/d/0B1uIL9E_zXrrSkMzWVpuZ0ZoaFE/view?usp=drivesdk Events: https://drive.google.com/a/odoo.com/file/d/0B1uIL9E_zXrrYXlHMHd2NTM2blE/view?usp=drivesdk Manufacturing: Delete Repair - Quality Control - Maintenance - Product Lifecycle Management [LAP][ok] Timesheets: https://drive.google.com/a/odoo.com/file/d/0B1uIL9E_zXrrdFg5XzNydkd2TlU/view?usp=drivesdk project: https://drive.google.com/a/odoo.com/file/d/0B1uIL9E_zXrraWo3NE04TktwcTQ/view?usp=drivesdk inventory: https://drive.google.com/a/odoo.com/file/d/0B1uIL9E_zXrrQkRaVUR5ekFQYTQ/view?usp=drivesdk recruitment: https://drive.google.com/a/odoo.com/file/d/0B1uIL9E_zXrrbDdqLWQweF80UkE/view?usp=drivesdk purchase: https://drive.google.com/a/odoo.com/file/d/0B1uIL9E_zXrrRlAyUDBnb0trQWs/view?usp=drivesdk email marketing: https://drive.google.com/a/odoo.com/file/d/0B1uIL9E_zXrrOUZONjhvX2k3Y2s/view?usp=drivesdk expenses: https://drive.google.com/a/odoo.com/file/d/0B1uIL9E_zXrrR0JpN1ZpQmtxU3M/view?usp=drivesdk attendances: https://drive.google.com/a/odoo.com/file/d/0B1uIL9E_zXrralpjZ1VJclNpMWs/view?usp=drivesdk - About duplicate settings: Docsaway: Delete from Sales + delete Default Print Provider Attributs & Variants: Delete from Purchases - Manufacturing Multi-currencies: delete from Sales Unit Of Measures: Delete from Purchase & Expenses - Add a scroll bar on the left bar when there's too many apps - Keep the navbar visible even when you search - Move General Settings to the bottom of the list - Update on Settings: - Accounting: - rename automatic rates - Anglo Saxon Account: Should be in technical feature - Place Accounting Reports section before Taxes section - CRM: - Phone Validation: Enforce international format becomes - Local Numbers: (2 radio buttons proposals) Add international prefix / No prefix - Fleet: typo " ... a new car if ..." + text is too long <br> - project: fix tooltip for colab pads
673 lines
44 KiB
XML
673 lines
44 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<odoo>
|
|
<template id="web.less_helpers">
|
|
<link rel="stylesheet" type="text/less" href="/web/static/lib/bootstrap/less/variables.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/lib/bootstrap/less/mixins/vendor-prefixes.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/lib/bootstrap/less/mixins/buttons.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/lib/bootstrap/less/mixins/clearfix.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/lib/bootstrap/less/mixins/size.less"/>
|
|
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/variables.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/utils.less"/>
|
|
</template>
|
|
|
|
<template id="web.assets_common" name="Common Assets (used in backend interface and website)">
|
|
<t t-call="web.less_helpers"/>
|
|
|
|
<link rel="stylesheet" type="text/css" href="/web/static/lib/jquery.ui/jquery-ui.css"/>
|
|
<link rel="stylesheet" type="text/css" href="/web/static/lib/fontawesome/css/font-awesome.css"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/lib/bootstrap-datetimepicker/src/less/_bootstrap-datetimepicker.less"/>
|
|
<link rel="stylesheet" type="text/css" href="/web/static/lib/select2/select2.css"/>
|
|
<link rel="stylesheet" type="text/css" href="/web/static/lib/select2-bootstrap-css/select2-bootstrap.css"/>
|
|
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/fonts.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/navbar.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/mimetypes.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/modal.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/animation.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/rainbow.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/datepicker.less"/>
|
|
|
|
<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/moment/moment.js"></script>
|
|
|
|
<script type="text/javascript" src="/web/static/lib/jquery/jquery.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/jquery.ui/jquery-ui.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.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/jquery.mjs.nestedSortable/jquery.mjs.nestedSortable.js"></script>
|
|
|
|
<script src="/web/static/lib/bootstrap/js/affix.js"></script>
|
|
<script src="/web/static/lib/bootstrap/js/alert.js"></script>
|
|
<script src="/web/static/lib/bootstrap/js/button.js"></script>
|
|
<script src="/web/static/lib/bootstrap/js/carousel.js"></script>
|
|
<script src="/web/static/lib/bootstrap/js/collapse.js"></script>
|
|
<script src="/web/static/lib/bootstrap/js/dropdown.js"></script>
|
|
<script src="/web/static/lib/bootstrap/js/modal.js"></script>
|
|
<script src="/web/static/lib/bootstrap/js/tooltip.js"></script>
|
|
<script src="/web/static/lib/bootstrap/js/popover.js"></script>
|
|
<script src="/web/static/lib/bootstrap/js/scrollspy.js"></script>
|
|
<script src="/web/static/lib/bootstrap/js/tab.js"></script>
|
|
<script src="/web/static/lib/bootstrap/js/transition.js"></script>
|
|
|
|
<script type="text/javascript" src="/web/static/lib/bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/select2/select2.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/clipboard/clipboard.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/libs/autocomplete.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/libs/bootstrap.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/libs/jquery.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/services/config.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/abstract_service.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/class.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/collections.js"/>
|
|
<script type="text/javascript" src="/web/static/src/js/core/translation.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/ajax.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/services/ajax_service.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/time.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/mixins.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/rpc.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/widget.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/registry.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/session.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/dom.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/concurrency.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/utils.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/qweb.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/bus.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/services/core.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/dialog.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/local_storage.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/services/local_storage_service.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/widgets/rainbow_man.js"></script>
|
|
</template>
|
|
|
|
<template id="web.assets_backend" name="Backend Assets (used in backend interface)">
|
|
<t t-call="web.less_helpers"/>
|
|
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/import_bootstrap.less"/>
|
|
|
|
<link rel="stylesheet" type="text/css" href="/base/static/src/css/modules.css"/>
|
|
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/bootstrap_overridden.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/webclient_extra.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/webclient_layout.less"/>
|
|
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/webclient.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/domain_selector.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/model_field_selector.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/progress_bar.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/dropdown.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/dropdown_extra.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/tooltip.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/debug_manager.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/control_panel.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/fields.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/fields_extra.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/views.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/views_extra.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/pivot_view.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/graph_view.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/form_view.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/form_view_extra.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/list_view.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/list_view_extra.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/kanban_dashboard.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/kanban_view.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/web_calendar.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/search_view.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/search_view_extra.less"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/data_export.less"/>
|
|
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/base_settings.less"/>
|
|
<script type="text/javascript" src="/base/static/src/js/res_config_settings.js"></script>
|
|
|
|
<script type="text/javascript" src="/web/static/lib/jquery.scrollTo/jquery.scrollTo.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/backbone/backbone.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/fuzzy-master/fuzzy.js"></script>
|
|
|
|
<script type="text/javascript" charset="utf-8">
|
|
odoo._modules = <t t-raw="get_modules_order()"/>;
|
|
</script>
|
|
|
|
<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/core/domain.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/pyeval.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/chrome/action_manager.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/chrome/control_panel.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/chrome/view_manager.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/chrome/abstract_web_client.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/chrome/web_client.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/_deprecated/data.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/context.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/core/misc.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/services/crash_manager.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/services/data_manager.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/services/session.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/widgets/auto_complete.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/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/domain_selector_dialog.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/widgets/domain_selector.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/widgets/iframe_widget.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/chrome/loading.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/widgets/model_field_selector.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/widgets/notification.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/chrome/sidebar.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/chrome/pager.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/chrome/systray_menu.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/widgets/switch_company_menu.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/chrome/user_menu.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/chrome/menu.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/chrome/search_view.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/chrome/search_filters.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/chrome/search_inputs.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/chrome/search_menus.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/apps.js"></script>
|
|
|
|
<script type="text/javascript" src="/web/static/src/js/fields/abstract_field.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/fields/basic_fields.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/fields/field_registry.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/fields/field_utils.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/fields/relational_fields.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/fields/special_fields.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/fields/upgrade_fields.js"></script>
|
|
|
|
<script type="text/javascript" src="/web/static/src/js/views/abstract_view.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/abstract_renderer.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/abstract_model.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/abstract_controller.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/basic/basic_model.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/basic/basic_view.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/basic/basic_controller.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/basic/basic_renderer.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/field_manager_mixin.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/standalone_field_manager_mixin.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/view_registry.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/view_dialogs.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/form/form_renderer.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/form/form_controller.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/form/form_view.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/graph/graph_model.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/graph/graph_controller.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/graph/graph_renderer.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/graph/graph_view.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/kanban/kanban_column.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/kanban/kanban_quick_create.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/kanban/kanban_model.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/kanban/kanban_controller.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/kanban/kanban_record.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/kanban/kanban_renderer.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/kanban/kanban_view.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/list/list_editable_renderer.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/list/list_renderer.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/list/list_view.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/list/list_controller.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/pivot/pivot_model.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/pivot/pivot_controller.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/pivot/pivot_renderer.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/pivot/pivot_view.js"></script>
|
|
|
|
<script type="text/javascript" src="/web/static/src/js/views/calendar/calendar_controller.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/calendar/calendar_model.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/calendar/calendar_quick_create.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/calendar/calendar_renderer.js"></script>
|
|
<script type="text/javascript" src="/web/static/src/js/views/calendar/calendar_view.js"></script>
|
|
|
|
<script type="text/javascript" src="/web/static/src/js/report/qwebactionmanager.js"/>
|
|
<script type="text/javascript" src="/web/static/src/js/report/utils.js"/>
|
|
<script type="text/javascript" src="/web/static/src/js/report/client_action.js"/>
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/report_backend.less"/>
|
|
</template>
|
|
|
|
<template id="web.assets_frontend" name="Website Assets">
|
|
<t t-call="web.less_helpers"/>
|
|
|
|
<link rel="stylesheet" type="text/less" href="/web/static/src/less/import_bootstrap.less"/>
|
|
|
|
<script type="text/javascript" src="/web/static/src/js/services/session.js"></script>
|
|
</template>
|
|
|
|
<template id="web.layout" name="Web layout"><!DOCTYPE html>
|
|
<html t-att="html_data or {}">
|
|
<head>
|
|
<meta charset="utf-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
|
|
<title t-esc="title or 'Odoo'"/>
|
|
<link type="image/x-icon" rel="shortcut icon" t-att-href="x_icon or '/web/static/src/img/favicon.ico'"/>
|
|
|
|
<script type="text/javascript">
|
|
var odoo = {
|
|
csrf_token: "<t t-esc="request.csrf_token(None)"/>",
|
|
};
|
|
</script>
|
|
|
|
<t t-raw="head or ''"/>
|
|
</head>
|
|
<body t-att-class="body_classname">
|
|
<t t-raw="0"/>
|
|
</body>
|
|
</html>
|
|
</template>
|
|
|
|
<template id="web.login_layout" name="Login Layout">
|
|
<t t-call="web.layout">
|
|
<t t-set="html_data" t-value="{'style': 'height: 100%;'}"/>
|
|
<t t-set="head">
|
|
<t t-call-assets="web.assets_common" t-js="false"/>
|
|
<t t-call-assets="web.assets_frontend" t-js="false"/>
|
|
<t t-call-assets="web.assets_common" t-css="false"/>
|
|
<t t-call-assets="web.assets_frontend" t-css="false"/>
|
|
</t>
|
|
<t t-set="body_classname" t-value="'container'"/>
|
|
|
|
<div class="row">
|
|
<div class="col-md-6 col-md-offset-3 o_database_list">
|
|
<div class="text-center">
|
|
<img t-attf-src="/web/binary/company_logo{{ '?dbname='+db if db else '' }}"/>
|
|
</div>
|
|
<t t-raw="0"/>
|
|
<div class="text-center" t-if="not disable_footer">
|
|
<t t-if="not disable_database_manager">
|
|
<a class="" href="/web/database/manager">Manage Databases</a> |
|
|
</t>
|
|
<a href="https://www.odoo.com" target="_blank">Powered by <span>Odoo</span></a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</t>
|
|
</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">
|
|
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
|
|
|
|
<div class="form-group field-db" t-if="databases and len(databases) > 1">
|
|
<label for="db" class="control-label">Database</label>
|
|
<div class="input-group">
|
|
<input type="text" name="db" t-att-value="request.db" id="db" class="form-control" required="required" readonly="readonly"/>
|
|
<span class="input-group-btn">
|
|
<a href="/web/database/selector" class="btn btn-default">Select <i class="fa fa-database"></i></a>
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
<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" autocapitalize="off"/>
|
|
</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" autocomplete="current-password" t-att-autofocus="'autofocus' if login else None" maxlength="4096"/>
|
|
</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.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="o_sub_menu_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="o_sub_menu_content">
|
|
<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-att-data-menu-xmlid="menu.get('xmlid')">
|
|
<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="o_sub_menu_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="'?&debug=' if debug else ''"/>
|
|
<a t-att-href="'/web%s#menu_id=%s&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-menu-xmlid="menu.get('xmlid')"
|
|
t-att-data-action-model="menu['action'] and menu['action'].split(',')[0] or None"
|
|
t-att-data-action-id="menu['action'] and menu['action'].split(',')[1] or None">
|
|
<span class="oe_menu_text">
|
|
<t t-esc="menu['name']"/>
|
|
</span>
|
|
</a>
|
|
</template>
|
|
|
|
<template id="web.qunit_suite">
|
|
<t t-call="web.layout">
|
|
<t t-set="html_data" t-value="{'style': 'height: 100%;'}"/>
|
|
<t t-set="title">Web Tests</t>
|
|
<t t-set="head">
|
|
<link type="text/css" rel="stylesheet" href="/web/static/lib/qunit/qunit-2.2.1.css"/>
|
|
<script type="text/javascript" src="/web/static/lib/qunit/qunit-2.2.1.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/helpers/qunit_config.js"></script>
|
|
|
|
<t t-call-assets="web.assets_common" t-js="false"/>
|
|
<t t-call-assets="web.assets_backend" t-js="false"/>
|
|
<t t-call-assets="web.assets_common" t-css="false"/>
|
|
<t t-call-assets="web.assets_backend" t-css="false"/>
|
|
|
|
<!-- add lazy-loaded libs -->
|
|
<link rel="stylesheet" href="/web/static/lib/fullcalendar/css/fullcalendar.css"/>
|
|
<script type="text/javascript" src="/web/static/lib/fullcalendar/js/fullcalendar.js"></script>
|
|
<link rel="stylesheet" type="text/css" 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>
|
|
<script type="text/javascript" src="/web/static/src/js/libs/nvd3.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/ace/ace.odoo-custom.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/ace/mode-python.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/ace/mode-xml.js"></script>
|
|
|
|
<script type="text/javascript">
|
|
// define the 'web.web_client' module because some other modules require it
|
|
odoo.define('web.web_client', function (require) {
|
|
var WebClient = require('web.WebClient');
|
|
var web_client = new WebClient();
|
|
// override _call_service to prevent the web_client from doing RPCs
|
|
web_client._call_service = function () {};
|
|
return web_client;
|
|
});
|
|
</script>
|
|
|
|
<style>
|
|
body {
|
|
position: relative; // bootstrap-datepicker needs this
|
|
}
|
|
body:not(.debug) .modal-backdrop, body:not(.debug) .modal, body:not(.debug) .ui-autocomplete {
|
|
opacity: 0 !important;
|
|
}
|
|
#qunit-testrunner-toolbar label {
|
|
font-weight: inherit;
|
|
margin-bottom: inherit;
|
|
}
|
|
#qunit-testrunner-toolbar input[type=text] {
|
|
width: inherit;
|
|
display: inherit;
|
|
}
|
|
</style>
|
|
<script type="text/javascript" src="/web/static/tests/helpers/test_utils.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/helpers/mock_server.js"></script>
|
|
|
|
<script type="text/javascript" src="/web/static/tests/fields/basic_fields_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/fields/field_utils_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/fields/relational_fields_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/fields/special_fields.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/fields/upgrade_fields_tests.js"></script>
|
|
|
|
<script type="text/javascript" src="/web/static/tests/views/abstract_view_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/views/form_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/views/graph_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/views/list_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/views/pivot_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/views/kanban_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/views/calendar_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/views/basic_model_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/views/kanban_model_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/views/view_dialogs_tests.js"></script>
|
|
<script type="text/javascript" src="/base/static/src/tests/base_setting_test.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/core/registry_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/core/pyeval_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/core/class_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/core/rpc_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/core/domain_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/core/mixins_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/core/time_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/core/concurrency_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/core/util_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/core/widget_tests.js"></script>
|
|
|
|
<script type="text/javascript" src="/web/static/tests/chrome/search_tests.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/chrome/pager_tests.js"></script>
|
|
|
|
<script type="text/javascript" src="/web/static/tests/widgets/data_export_tests.js"/>
|
|
<script type="text/javascript" src="/web/static/tests/widgets/domain_selector_tests.js"/>
|
|
<script type="text/javascript" src="/web/static/tests/widgets/model_field_selector_tests.js"/>
|
|
<script type="text/javascript" src="/web/static/tests/widgets/rainbow_man_tests.js"/>
|
|
|
|
<script type="text/javascript" src="/web/static/tests/boot_tests.js"></script>
|
|
</t>
|
|
|
|
<div id="qunit"/>
|
|
<div id="qunit-fixture"/>
|
|
</t>
|
|
</template>
|
|
|
|
<template id="web.benchmark_suite">
|
|
<t t-call="web.layout">
|
|
<t t-set="html_data" t-value="{'style': 'height: 100%;'}"/>
|
|
<t t-set="title">Web Benchmarks</t>
|
|
<t t-set="head">
|
|
<link type="text/css" rel="stylesheet" href="/web/static/lib/qunit/qunit-2.2.1.css"/>
|
|
<script type="text/javascript" src="/web/static/lib/qunit/qunit-2.2.1.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/helpers/qunit_config.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/benchmarkjs/lodash.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/benchmarkjs/benchmark.js"></script>
|
|
|
|
<t t-call-assets="web.assets_common" t-js="false"/>
|
|
<t t-call-assets="web.assets_backend" t-js="false"/>
|
|
<t t-call-assets="web.assets_common" t-css="false"/>
|
|
<t t-call-assets="web.assets_backend" t-css="false"/>
|
|
|
|
<script type="text/javascript">
|
|
QUnit.config.hidepassed = false;
|
|
|
|
// define the 'web.web_client' module because some other modules require it
|
|
odoo.define('web.web_client', function (require) {
|
|
var WebClient = require('web.WebClient');
|
|
var web_client = new WebClient();
|
|
// override _call_service to prevent the web_client from doing RPCs
|
|
web_client._call_service = function () {};
|
|
return web_client;
|
|
});
|
|
</script>
|
|
|
|
<style>
|
|
body:not(.debug) .modal-backdrop, body:not(.debug) .modal, body:not(.debug) .ui-autocomplete {
|
|
opacity: 0 !important;
|
|
}
|
|
#qunit-testrunner-toolbar label {
|
|
font-weight: inherit;
|
|
margin-bottom: inherit;
|
|
}
|
|
#qunit-testrunner-toolbar input[type=text] {
|
|
width: inherit;
|
|
display: inherit;
|
|
}
|
|
</style>
|
|
<script type="text/javascript" src="/web/static/tests/helpers/test_utils.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/helpers/mock_server.js"></script>
|
|
|
|
<script type="text/javascript" src="/web/static/tests/views/list_benchmarks.js"></script>
|
|
<script type="text/javascript" src="/web/static/tests/views/kanban_benchmarks.js"></script>
|
|
</t>
|
|
|
|
<div id="qunit"/>
|
|
<div id="qunit-fixture"/>
|
|
</t>
|
|
</template>
|
|
|
|
<template id="web.webclient_bootstrap">
|
|
<t t-call="web.layout">
|
|
<t t-set="head_web">
|
|
<script type="text/javascript">
|
|
odoo.session_info = <t t-raw="session_info"/>;
|
|
</script>
|
|
|
|
<t t-call-assets="web.assets_common" t-js="false"/>
|
|
<t t-call-assets="web.assets_backend" t-js="false"/>
|
|
<t t-call-assets="web.assets_common" t-css="false"/>
|
|
<t t-call-assets="web.assets_backend" t-css="false"/>
|
|
|
|
<![CDATA[
|
|
<!--[if lt IE 10]>
|
|
<body class="ie9">
|
|
<![endif]-->
|
|
]]>
|
|
|
|
<script type="text/javascript">
|
|
odoo.define('web.web_client', function (require) {
|
|
var WebClient = require('web.WebClient');
|
|
var web_client = new WebClient();
|
|
$(function() {
|
|
web_client.setElement($(document.body));
|
|
web_client.start();
|
|
});
|
|
return web_client;
|
|
});
|
|
</script>
|
|
</t>
|
|
<t t-set="head" t-value="head_web + (head or '')"/>
|
|
<t t-set="body_classname" t-value="'o_web_client'"/>
|
|
|
|
<nav id="oe_main_menu_navbar" class="navbar navbar-inverse" 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">
|
|
<t t-call="web.menu"/>
|
|
</div>
|
|
</nav>
|
|
<div class="o_main">
|
|
<div class="o_sub_menu" groups="base.group_user,base.group_portal">
|
|
<t t-call="web.menu_secondary"/>
|
|
</div>
|
|
<div class="o_main_content"/>
|
|
</div>
|
|
</t>
|
|
</template>
|
|
|
|
<!--
|
|
Optional Bundle for PDFJS lib
|
|
Since PDFJS is quite huge (40000 lines), please only load it when it is necessary.
|
|
For now, it is only use to display the PDF slide Viewer during an embed.
|
|
Bundlized, the size is reduced to 3000 lines.
|
|
-->
|
|
<template id="pdf_js_lib" name="PDF JS Library">
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/shared/util.js"></script>
|
|
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/display/api.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/display/metadata.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/display/canvas.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/display/webgl.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/display/pattern_helper.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/display/font_loader.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/display/annotation_helper.js"></script>
|
|
<!-- files normally dynamically loaded in worker_loader.js -->
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/network.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/chunked_stream.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/pdf_manager.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/core.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/obj.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/charsets.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/annotation.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/function.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/colorspace.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/crypto.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/pattern.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/evaluator.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/cmap.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/fonts.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/font_renderer.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/glyphlist.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/image.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/metrics.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/parser.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/ps_parser.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/stream.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/worker.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/arithmetic_decoder.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/jpg.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/jpx.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/jbig2.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/bidi.js"></script>
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/core/murmurhash3.js"></script>
|
|
<!--
|
|
NOTE JEM : PDFJS not-minified load its assets dynamically. Not minify, this lib is huge (4000 lines).
|
|
To load PDFJS using odoo bundle, we create a custom worker_loader, to avoid reloading all the assets (core/*.js) dynamically.
|
|
Loading all this assets in a bundle can be problematic in debug mode, since we don't wait all assets to be loaded to start using PDFJS. That's why, in debug mode, we use the native loader, otherwise our custom loader is used.
|
|
-->
|
|
<t t-if="not debug">
|
|
<script>
|
|
// Use Odoo PDFJS Loader, to avoid dynamic assets loading
|
|
PDFJS.workerSrc = '/web/static/lib/pdfjs/worker_loader_by_odoo.js';
|
|
PDFJS.disableWorker = true;
|
|
</script>
|
|
</t>
|
|
<t t-if="debug">
|
|
<script>
|
|
// Specify the main script used to create a new PDF.JS web worker.
|
|
// In production, leave this undefined or change it to point to the
|
|
// combined `pdf.worker.js` file.
|
|
PDFJS.workerSrc = '/web/static/lib/pdfjs/src/worker_loader.js';
|
|
</script>
|
|
</t>
|
|
<!--
|
|
If no loader defined, this file will try to load pdf.worker.js (in build/).
|
|
It will crash since we don't use the minified version of PDFJS
|
|
-->
|
|
<script type="text/javascript" src="/web/static/lib/pdfjs/src/pdf.js"></script>
|
|
</template>
|
|
</odoo>
|