diff options
| author | qsm-odoo <qsm@odoo.com> | 2016-02-24 12:03:49 +0100 |
|---|---|---|
| committer | qsm-odoo <qsm@odoo.com> | 2016-02-24 13:47:06 +0100 |
| commit | 88c2b6843a09ba087a10388fc39cb69dac4e2949 (patch) | |
| tree | 03dad165167f938f8d668579cc57c42822497e85 | |
| parent | 5b65befcd889139152c590490fb8965c9f4b5279 (diff) | |
[REF] web,web_editor,website(_*),report,pos,mass_mailing: assets
* Remove recursive assets inclusions (i.e. assets_editor was including
assets_common, summernote, ...)
* Better construct the assets (link, then script + type attribute)
* Better include the assets (split js / css, always use t-call-assets)
* Simplifies the number of assets
* Move bootstrap js to assets common
* assets_frontend is now created by web module to allow using it on the
connexion page but also in the web_editor, where colors have to be
bootstrap/theme ones. Note: if a module depends on website, then keep
using the inherit_id="WEBSITE.assets_frontend"
| -rw-r--r-- | addons/mass_mailing/views/editor_field_html.xml | 24 | ||||
| -rw-r--r-- | addons/point_of_sale/views/pos_templates.xml | 6 | ||||
| -rw-r--r-- | addons/report/views/layouts.xml | 42 | ||||
| -rw-r--r-- | addons/theme_default/views/templates.xml | 12 | ||||
| -rw-r--r-- | addons/web/views/webclient_templates.xml | 749 | ||||
| -rw-r--r-- | addons/web_editor/views/editor.xml | 91 | ||||
| -rw-r--r-- | addons/web_editor/views/iframe.xml | 19 | ||||
| -rw-r--r-- | addons/website/controllers/main.py | 2 | ||||
| -rw-r--r-- | addons/website/views/website_templates.xml | 116 | ||||
| -rw-r--r-- | addons/website_forum/views/website_forum.xml | 13 | ||||
| -rw-r--r-- | addons/website_slides/view/website_slides_embed.xml | 12 |
11 files changed, 538 insertions, 548 deletions
diff --git a/addons/mass_mailing/views/editor_field_html.xml b/addons/mass_mailing/views/editor_field_html.xml index 11224aa4fbb..77244586669 100644 --- a/addons/mass_mailing/views/editor_field_html.xml +++ b/addons/mass_mailing/views/editor_field_html.xml @@ -1,13 +1,15 @@ <?xml version="1.0" encoding="utf-8"?> -<openerp> - <data> +<odoo> +<template id="assets_editor" inherit_id="web_editor.assets_editor"> + <xpath expr="link[last()]" position="after"> + <link rel="stylesheet" type="text/less" href="/mass_mailing/static/src/less/mass_mailing_editor.less"/> + </xpath> +</template> <!-- Template Choice page --> <template id="FieldTextHtmlInline" name="Editor layout"> - <t t-set="head"> <t t-if="enable_editor"> - <link rel="stylesheet" href="/mass_mailing/static/src/css/mass_mailing_editor.css" type="text/css"/> <link rel="stylesheet" href="/mass_mailing/static/src/css/mass_mailing_editor_thumb.css" type="text/css"/> <script type="text/javascript" src="/mass_mailing/static/src/js/mass_mailing_editor.js"></script> </t> @@ -23,10 +25,9 @@ </t> <t t-call="web_editor.layout"> - <div> - <div t-if="not edit_translations" id="editable_area" class="o_editable" t-att-data-oe-model="model" t-att-data-oe-field="field" t-att-data-oe-id="res_id" data-oe-type="html"><t t-raw="content"/></div> - <div t-if="edit_translations" id="editable_area"><t t-raw="content"/></div> - </div> + <div t-if="not edit_translations" id="editable_area" class="o_editable" t-att-data-oe-model="model" t-att-data-oe-field="field" t-att-data-oe-id="res_id" data-oe-type="html"><t t-raw="content"/></div> + <div t-if="edit_translations" id="editable_area"><t t-raw="content"/></div> + <div id="templates" class="o_not_editable o_css_editor hidden" t-if="enable_editor"> <h1 class="page-header mt16 email_head panel-primary"> Select a theme @@ -51,13 +52,11 @@ </div> </div> </div> - </t> </template> <template id="FieldTextHtmlPopupContent" name="Editor layout"> <t t-set="head"> - <link rel="stylesheet" href="/mass_mailing/static/src/css/mass_mailing_editor.css" type="text/css"/> <link rel="stylesheet" href="/mass_mailing/static/src/css/mass_mailing_editor_thumb.css" type="text/css"/> <link rel="stylesheet" href="/mass_mailing/static/src/css/mass_mailing_popup.css" type="text/css"/> </t> @@ -77,7 +76,4 @@ </div> </t> </template> - - </data> -</openerp> - +</odoo> diff --git a/addons/point_of_sale/views/pos_templates.xml b/addons/point_of_sale/views/pos_templates.xml index 528db600ed5..44529d4f09e 100644 --- a/addons/point_of_sale/views/pos_templates.xml +++ b/addons/point_of_sale/views/pos_templates.xml @@ -23,8 +23,10 @@ <link rel="shortcut icon" href="/web/static/src/img/favicon.ico" type="image/x-icon"/> - <t t-call-assets="web.assets_common" t-css="false" /> - <t t-call-assets="web.assets_backend" t-css="false" /> + <t t-call-assets="web.assets_common" t-css="false"/> + <t t-call-assets="web.assets_backend" t-css="false"/> + <t t-call-assets="web_editor.summernote" t-css="false"/> + <t t-call-assets="web_editor.assets_editor" t-css="false"/> <t t-call-assets="point_of_sale.assets"/> <script type="text/javascript" id="loading-script" t-raw="init"> diff --git a/addons/report/views/layouts.xml b/addons/report/views/layouts.xml index 9a0546bc5d6..85077214bd8 100644 --- a/addons/report/views/layouts.xml +++ b/addons/report/views/layouts.xml @@ -2,11 +2,16 @@ <openerp> <data> <template id="report.assets_common"> - <link href="/web/static/lib/bootstrap/css/bootstrap.css" rel="stylesheet"/> - <link href="/website/static/src/css/website.css" rel="stylesheet"/> - <link href="/web/static/lib/fontawesome/css/font-awesome.css" rel="stylesheet"/> - <link href="/base/static/src/css/description.css" rel="stylesheet"/> - <link href="/report/static/src/css/report.css" rel="stylesheet"/> + <t t-call="web.less_helpers"/> + + <link href="/web/static/src/less/import_bootstrap.less" rel="stylesheet" type="text/less"/> + <link href="/base/static/src/css/description.css" rel="stylesheet" type="text/css"/> + + <!-- FIXME remove website dependency ..? --> + <link href="/website/static/src/less/website.wrapwrap.less" rel="stylesheet" type="text/less"/> + <link href="/website/static/src/less/website.snippets.less" rel="stylesheet" type="text/less"/> + + <link href="/report/static/src/less/report.less" rel="stylesheet" type="text/less"/> </template> <template id="report.assets_pdf"> @@ -14,7 +19,10 @@ </template> <template id="report.assets_editor"> - <link href="/report/static/src/css/report.editor.css" rel="stylesheet"/> + <t t-call="web.less_helpers"/> + + <link href="/report/static/src/less/report.editor.less" rel="stylesheet" type="text/less"/> + <script type="text/javascript" src="/web/static/src/js/framework/session_instance.js"></script> <script type="text/javascript" src='/report/static/src/js/report.editor.js' /> </template> @@ -32,13 +40,21 @@ <meta charset="utf-8" /> <meta name="viewport" content="initial-scale=1"/> <title><t t-esc="title or 'Odoo Report'"/></title> - <t t-call-assets="report.assets_common"/> + <t t-call-assets="web.assets_common" t-js="false"/> + <t t-call-assets="report.assets_common" t-js="false"/> + <t t-if="editable"> + <t t-call-assets="web_editor.summernote" t-js="false"/> + <t t-call-assets="web_editor.assets_editor" t-js="false"/> + <t t-call-assets="report.assets_editor" t-js="false"/> + </t> <t t-if="editable"> - <t t-call-assets="web_editor.assets_editor"/> - <t t-call-assets="report.assets_editor"/> + <t t-call-assets="web.assets_common" t-css="false"/> + <t t-call-assets="web_editor.summernote" t-css="false"/> + <t t-call-assets="web_editor.assets_editor" t-css="false"/> + <t t-call-assets="report.assets_editor" t-css="false"/> </t> </head> - <body class="container" t-att-style="editable and 'margin-top: 40px;'"> + <body class="container"> <div id="wrapwrap"> <main> <t t-raw="0"/> @@ -163,8 +179,10 @@ <!DOCTYPE html> <html style="height: 0;"> <head> - <t t-call-assets="report.assets_pdf"/> - <t t-call-assets="report.assets_common"/> + <t t-call-assets="report.assets_pdf" t-js="false"/> + <t t-call-assets="report.assets_common" t-js="false"/> + <t t-call-assets="report.assets_pdf" t-css="false"/> + <t t-call-assets="report.assets_common" t-css="false"/> <meta charset="utf-8"/> <t t-if="subst is True"> <script> diff --git a/addons/theme_default/views/templates.xml b/addons/theme_default/views/templates.xml index b1866c81844..e9ed1f62d6b 100644 --- a/addons/theme_default/views/templates.xml +++ b/addons/theme_default/views/templates.xml @@ -1,6 +1,10 @@ <?xml version="1.0" encoding="utf-8"?> -<openerp> -<data> +<odoo> +<template id="assets_frontend" inherit_id="website.assets_frontend" name="Theme Default Assets Frontend"> + <xpath expr="link[last()]" position="after"> + <link rel="stylesheet" href="/theme_default/static/src/less/customize_modal.less"/> + </xpath> +</template> <template id="customize_modal" inherit_id="website.theme_customize" name="treehouse Customize Modal" priority="1"> <xpath expr="div" position="replace"> @@ -165,6 +169,4 @@ <link href="/theme_default/static/src/less/option_font.less" rel="stylesheet" type="text/less"/> </xpath> </template> - -</data> -</openerp> +</odoo> diff --git a/addons/web/views/webclient_templates.xml b/addons/web/views/webclient_templates.xml index 7a9f608b36c..f3de50cb56a 100644 --- a/addons/web/views/webclient_templates.xml +++ b/addons/web/views/webclient_templates.xml @@ -1,182 +1,188 @@ <?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/moment/moment.js"></script> - - <!-- jQuery stuff --> - <script type="text/javascript" src="/web/static/lib/jquery/jquery.js"></script> - <link rel="stylesheet" href="/web/static/lib/jquery.ui/jquery-ui.css"/> - <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/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/core.js"></script> - <script type="text/javascript" src="/web/static/src/js/framework/dialog.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> - <script type="text/javascript" src="/web/static/test/x2many.js"></script> - - <link rel="stylesheet" href="/web/static/lib/fontawesome/css/font-awesome.css"/> - <link rel="stylesheet" href="/web/static/src/fonts/lato/stylesheet.css" /> - - <link rel="stylesheet" href="/web/static/src/less/mimetypes.less"/> - <link rel="stylesheet" href="/web/static/src/less/animation.less"/> - - <!-- 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> - - <!-- Select 2 --> - <link rel="stylesheet" href="/web/static/lib/select2/select2.css"/> - <link rel="stylesheet" href="/web/static/lib/select2-bootstrap-css/select2-bootstrap.css"/> - <script type="text/javascript" src="/web/static/lib/select2/select2.js"></script> - </template> - - <template id="web.bootstrap"> - <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> - </template> - - <template id="web.assets_backend"> - <!-- jQuery addons --> - <script type="text/javascript" src="/web/static/lib/jquery.scrollTo/jquery.scrollTo.js"></script> - - <t t-call="web.bootstrap"/> - - <!-- 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"/> - - <link rel="stylesheet" href='/website/static/src/less/import_bootstrap.less'/> - <link rel="stylesheet" href="/web/static/src/less/variables.less"/> - <link rel="stylesheet" href="/web/static/src/less/enterprise_compatibility.less"/> - <link rel="stylesheet" href="/web/static/src/less/utils.less"/> - <link rel="stylesheet" href="/web/static/src/less/modal.less"/> - <link rel="stylesheet" href="/web/static/src/less/notification.less"/> - <link rel="stylesheet" href="/web/static/src/less/switch_company_menu.less"/> - - <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/data_model.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/session_instance.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/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/priority.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/pager.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/switch_company_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/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="/web/static/src/js/apps.js"></script> - - </template> - - <template id="web.layout" name="Web layout"><!DOCTYPE html> - <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.login_layout" name="Login Layout"> - <t t-call="web.layout"> - <t t-set="head"> - <link rel="stylesheet" href="/web/static/lib/bootstrap/css/bootstrap.css"/> - <link rel="stylesheet" href="/web/static/lib/fontawesome/css/font-awesome.css"/> - <script src="/web/static/lib/jquery/jquery.js" type="text/javascript"/> - </t> - <t t-set="body_classname" t-value="'container'"/> - <div class="row"> - <div class="col-md-6 col-md-offset-3 o_database_list"> +<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/src/less/variables.less"/> + <link rel="stylesheet" type="text/less" href="/web/static/src/less/utils.less"/> + </template> + + <template id="web.assets_common"> + <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/css" href="/web/static/src/fonts/lato/stylesheet.css" /> + + <link rel="stylesheet" type="text/less" href="/web/static/src/less/mimetypes.less"/> + <link rel="stylesheet" type="text/less" href="/web/static/src/less/animation.less"/> + + <link rel="stylesheet" type="text/css" href="/web/static/lib/bootstrap-datetimepicker/css/bootstrap-datetimepicker.css"/> + <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"/> + + <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 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/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/core.js"></script> + <script type="text/javascript" src="/web/static/src/js/framework/dialog.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> + <script type="text/javascript" src="/web/static/test/x2many.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> + </template> + + <template id="web.assets_backend"> + <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="/web/static/lib/nvd3/nv.d3.css"/> + + <link rel="stylesheet" type="text/css" href="/web/static/src/css/base.css"/> + <link rel="stylesheet" type="text/css" href="/web/static/src/css/data_export.css"/> + <link rel="stylesheet" type="text/css" href="/base/static/src/css/modules.css"/> + + <link rel="stylesheet" type="text/less" href="/web/static/src/less/enterprise_compatibility.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/notification.less"/> + <link rel="stylesheet" type="text/less" href="/web/static/src/less/switch_company_menu.less"/> + + <script type="text/javascript" src="/web/static/lib/jquery.scrollTo/jquery.scrollTo.js"></script> + <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/lib/backbone/backbone.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/framework/data_model.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/session_instance.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/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/priority.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/pager.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/switch_company_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/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="/web/static/src/js/apps.js"></script> + </template> + + <template id="web.assets_frontend"> + <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/framework/session_instance.js"></script> + </template> + + <template id="web.layout" name="Web layout"><!DOCTYPE html> + <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.login_layout" name="Login Layout"> + <t t-call="web.layout"> + <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 '' }}"/> + <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"> @@ -185,179 +191,130 @@ </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"/> + </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-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> + <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> - <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> + <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> - <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> + <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> - </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="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="'?&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-action-model="menu['action'] and menu['action'].split(',')[0] or ''" - t-att-data-action-id="menu['action'] and menu['action'].split(',')[1] or ''"> - <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"/> - <script type="text/javascript"> - odoo.define('web.csrf', function (require) { - var token = "<t t-esc="request.csrf_token(None)"/>"; - require('web.core').csrf_token = token; - require('qweb').default_dict.csrf_token = token; - }); - odoo.db_info = <t t-raw="db_info"/>; - </script> - <t t-call-assets="web.assets_backend"/> - <!--[if lte IE 9]> <link rel="stylesheet" href="/web/static/src/css/ie.css"/> <![endif]--> - <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; - }); - </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"/> + <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="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> - </template> - - <template id="web.qunit_suite"> - <!DOCTYPE html> - <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"/> - <script type="text/javascript"> - $(function() { + </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="'?&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-action-model="menu['action'] and menu['action'].split(',')[0] or ''" + t-att-data-action-id="menu['action'] and menu['action'].split(',')[1] or ''"> + <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-js="false"/> + <t t-call-assets="web.assets_backend" t-js="false"/> + <t t-call-assets="web.assets_common" t-css="false"/> + <script type="text/javascript"> + odoo.define('web.csrf', function (require) { + var token = "<t t-esc="request.csrf_token(None)"/>"; + require('web.core').csrf_token = token; + require('qweb').default_dict.csrf_token = token; + }); + odoo.db_info = <t t-raw="db_info"/>; + </script> + <t t-call-assets="web.assets_backend" t-css="false"/> + + <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(); @@ -365,35 +322,81 @@ web_client.start(); return web_client; }); + </t> + }); + </script> + <!--[if lte IE 9]> <link rel="stylesheet" href="/web/static/src/css/ie.css"/> <![endif]--> + </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.qunit_suite"> + <!DOCTYPE html> + <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"/> + <script type="text/javascript"> + $(function() { + 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; }); - </script> - - <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> + }); + </script> + + <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> +</odoo> diff --git a/addons/web_editor/views/editor.xml b/addons/web_editor/views/editor.xml index 1e84a3c010e..5755649334d 100644 --- a/addons/web_editor/views/editor.xml +++ b/addons/web_editor/views/editor.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<openerp> - +<odoo> <template id="summernote" name="Summernote"> <script type="text/javascript"> (function () { @@ -50,57 +49,64 @@ delete odoo.__define__; delete odoo.website_next_define; </script> - <link rel="stylesheet" href="/web_editor/static/lib/summernote/src/less/summernote.less"/> - <!-- <link rel="stylesheet" href="/web_editor/static/lib/summernote/summernote.css"/> --> + <link rel="stylesheet" type="text/less" href="/web_editor/static/lib/summernote/src/less/summernote.less"/> </template> -<template id="editor" name="Editor"> - <!-- Call default mixins from WEB module --> - <link rel="stylesheet" href='/web/static/src/less/utils.less'/> - - <!-- Web Editor style --> - <link rel='stylesheet' href='/web_editor/static/src/less/web_editor.variables.less'/> - <link rel="stylesheet" href='/web_editor/static/src/less/web_editor.interactions.less'/> - <link rel="stylesheet" href='/web_editor/static/src/less/web_editor.mixins.less'/> - <link rel="stylesheet" href='/web_editor/static/src/less/web_editor.backend.less'/> - <link rel="stylesheet" href='/web_editor/static/src/less/web_editor.components.less'/> - <link rel="stylesheet" href='/web_editor/static/src/less/web_editor.ui.less'/> - - <script type="text/javascript" src='/web_editor/static/lib/nearest/jquery.nearest.js' /> - <script type="text/javascript" src="/web_editor/static/src/js/editor.js" /> - <script type="text/javascript" src="/web_editor/static/src/js/rte.js" /> - <script type="text/javascript" src="/web_editor/static/src/js/rte.summernote.js" /> - <script type="text/javascript" src="/web_editor/static/src/js/widgets.js" /> - <script type="text/javascript" src="/web_editor/static/src/js/snippets.editor.js" /> - <script type="text/javascript" src="/web_editor/static/src/js/snippets.options.js" /> - <script type="text/javascript" src="/web_editor/static/src/js/tour.rte.js" /> - <script type="text/javascript" src="/web_editor/static/src/js/transcoder.js"></script> - <script type="text/javascript" src="/web_editor/static/src/js/translator.js"></script> +<template id="less_helpers" inherit_id="web.less_helpers"> + <xpath expr="." position="inside"> + <link rel="stylesheet" type="text/less" href="/web_editor/static/src/less/web_editor.variables.less"/> + </xpath> </template> <template id="assets_common" inherit_id="web.assets_common" name="web_editor base assets_common"> - <xpath expr="." position="inside"> - <link rel="stylesheet" href='/web_editor/static/src/less/web_editor.common.less'/> - <link rel="stylesheet" href='/web_editor/static/src/less/web_editor.less'/> + <xpath expr="script[last()]" position="after"> <script type="text/javascript" src="/web_editor/static/src/js/base.js" /> <script type="text/javascript" src="/web_editor/static/src/js/snippets.animation.js" /> </xpath> </template> -<template id="assets_editor" name="web_editor assets for editor"> - <t t-call="web.assets_common"/> - <t t-call="web.bootstrap"/> - <script type="text/javascript" src="/web/static/lib/select2/select2.js"></script> - <t t-call="web_editor.summernote"/> - <t t-call="web_editor.editor"/> +<template id="assets_backend" inherit_id="web.assets_backend" name="web_editor assets for backend"> + <xpath expr="link[last()]" position="after"> + <link rel="stylesheet" type="text/less" href="/web_editor/static/src/less/web_editor.common.less"/> <!-- not in common because compiled diffently with context --> + <link rel="stylesheet" type="text/less" href="/web_editor/static/src/less/web_editor.backend.less"/> + </xpath> + <xpath expr="script[last()]" position="after"> + <script type="text/javascript" src="/web_editor/static/src/js/backend.js" /> + </xpath> </template> -<template id="assets_backend" name="web_editor assets for backend" inherit_id="web.assets_backend"> - <xpath expr="." position="inside"> - <t t-call="web_editor.summernote"/> - <t t-call="web_editor.editor"/> - <link rel="stylesheet" href="/web_editor/static/src/less/web_editor.backend.less"/> - <script type="text/javascript" src="/web_editor/static/src/js/backend.js" /> +<template id="assets_frontend" inherit_id="web.assets_frontend"> + <xpath expr="//link[last()]" position="after"> + <link rel="stylesheet" type="text/less" href="/web_editor/static/src/less/web_editor.common.less"/> <!-- not in common because compiled diffently with context --> + </xpath> +</template> + +<template id="assets_editor" name="Full web_editor assets"> + <t t-call="web.less_helpers"/> + + <link rel="stylesheet" type="text/less" href="/web_editor/static/src/less/web_editor.ui.less"/> + <link rel="stylesheet" type="text/less" href="/web_editor/static/src/less/web_editor.ui.components.less"/> + + <script type="text/javascript" src="/web_editor/static/lib/nearest/jquery.nearest.js"/> + <script type="text/javascript" src="/web_editor/static/src/js/editor.js"/> + <script type="text/javascript" src="/web_editor/static/src/js/rte.js"/> + <script type="text/javascript" src="/web_editor/static/src/js/rte.summernote.js"/> + <script type="text/javascript" src="/web_editor/static/src/js/widgets.js"/> + <script type="text/javascript" src="/web_editor/static/src/js/snippets.editor.js"/> + <script type="text/javascript" src="/web_editor/static/src/js/snippets.options.js"/> + <script type="text/javascript" src="/web_editor/static/src/js/tour.rte.js"/> + <script type="text/javascript" src="/web_editor/static/src/js/transcoder.js"></script> + <script type="text/javascript" src="/web_editor/static/src/js/translator.js"></script> +</template> + +<template id="webclient_bootstrap" inherit_id="web.webclient_bootstrap"> + <xpath expr="//t[@t-call-assets='web.assets_backend'][@t-js='false']" position="after"> + <t t-call-assets="web_editor.summernote" t-js="false"/> + <t t-call-assets="web_editor.assets_editor" t-js="false"/> + </xpath> + <xpath expr="//t[@t-call-assets='web.assets_backend'][@t-css='false']" position="after"> + <t t-call-assets="web_editor.summernote" t-css="false"/> + <t t-call-assets="web_editor.assets_editor" t-css="false"/> </xpath> </template> @@ -134,5 +140,4 @@ </div> </div> </template> - -</openerp> +</odoo> diff --git a/addons/web_editor/views/iframe.xml b/addons/web_editor/views/iframe.xml index 43a2861ca78..0bd2bbcf789 100644 --- a/addons/web_editor/views/iframe.xml +++ b/addons/web_editor/views/iframe.xml @@ -15,21 +15,20 @@ var snippets_url = '<t t-esc="snippets or ''"/>'; var callback = window.location.href.match(/callback=([^&=]+)/)[1]; </script> - <link t-if="enable_editor and inline_mode" rel="stylesheet" href="/web_editor/static/src/css/web_editor.iframe.inline.css" type="text/css"/> <t t-if="not dont_load_assets"> - <t t-call-assets="web_editor.assets_editor"/> - <style> - .note-popover .popover { left: 5px !important; } - html[data-translatable] .note-popover .popover { left: 150px !important; } - </style> + <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_editor.summernote" t-js="false"/> + <t t-call-assets="web_editor.assets_editor" t-js="false"/> + + <t t-call-assets="web.assets_common" t-css="false"/> + <t t-call-assets="web_editor.summernote" t-css="false"/> + <t t-call-assets="web_editor.assets_editor" t-css="false"/> + <script type="text/javascript" src="/web/static/src/js/framework/session_instance.js"></script> <script type="text/javascript" src="/web_editor/static/src/js/iframe.js"></script> <script t-if="enable_editor and inline_mode" type="text/javascript" src="/web_editor/static/src/js/inline.js"></script> </t> - <script type="text/javascript"> - var snippets_url = '<t t-esc="snippets or ''"/>'; - var callback = window.location.href.match(/callback=([^&=]+)/)[1]; - </script> <script> if (window.top.odoo && !window.top.odoo[callback+"_updown"]) { window.top.odoo[callback+"_updown"] = function (value, fields_values) { diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py index a6a2e4092a5..e73cc55bc9f 100644 --- a/addons/website/controllers/main.py +++ b/addons/website/controllers/main.py @@ -317,7 +317,7 @@ class Website(openerp.addons.web.controllers.main.Home): set_active(enable, True) if get_bundle: - bundle = AssetsBundle('website.assets_frontend', cr=http.request.cr, uid=http.request.uid, context={}, registry=http.request.registry) + bundle = AssetsBundle('web.assets_frontend', cr=http.request.cr, uid=http.request.uid, context={}, registry=http.request.registry) return bundle.to_html() return True diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml index a321fe60384..5a6b0d20604 100644 --- a/addons/website/views/website_templates.xml +++ b/addons/website/views/website_templates.xml @@ -1,59 +1,33 @@ <?xml version="1.0" encoding="utf-8"?> -<openerp> - <data> - +<odoo> <!-- Assets --> - -<template id="assets_common" inherit_id="web.assets_common" name="Website assets"> - <xpath expr="." position="inside"> +<template id="assets_backend" inherit_id="web.assets_backend" name="Website Backend Assets"> + <xpath expr="//script[last()]" position="after"> + <script type="text/javascript" src="/website/static/src/js/website.backend.js"></script> <script type="text/javascript" src="/website/static/src/js/website.tour.rte.js"></script> </xpath> </template> -<template id="less_assets" name="Website Less Assets"> - <link rel="stylesheet" href='/website/static/src/less/website.ui.mixins.less'/> - <link rel="stylesheet" href='/website/static/src/less/website.ui.variables.less'/> - <link rel="stylesheet" href='/website/static/src/less/website.ui.interactions.less'/> - <link rel="stylesheet" href='/website/static/src/less/website.ui.components.less'/> - <link rel="stylesheet" href='/website/static/src/less/website.ui.less'/> - <link rel="stylesheet" href='/website/static/src/less/website.snippets.less'/> - <link rel="stylesheet" href='/website/static/src/less/website.wrapwrap.less'/> -</template> - -<template id="assets_frontend" name="Website assets"> - <link id="bootstrap_css" rel="stylesheet" href='/website/static/src/less/import_bootstrap.less'/> - <link rel="stylesheet" href="/web/static/src/less/utils.less"/> - - <link rel="stylesheet" href="/web/static/src/less/mimetypes.less"/> - <t id="assets_frontend_less" t-call="website.less_assets"/> - - <script type="text/javascript" src="/web/static/src/js/framework/session_instance.js"></script> - <script type="text/javascript" src="/website/static/src/js/website.js"></script> - <script type="text/javascript" src="/website/static/src/js/website.share.js"></script> - <script type="text/javascript" src="/website/static/src/js/website.snippets.animation.js"></script> - - <t t-call="web.bootstrap"/> - - <link rel="stylesheet" href="/web/static/src/less/variables.less"/> - <link rel="stylesheet" href="/web/static/src/less/utils.less"/> -</template> - -<template id="assets_backend" name="website assets for backend" inherit_id="web.assets_backend"> - <xpath expr="." position="inside"> - <script type="text/javascript" src="/website/static/src/js/website.backend.js"></script> +<template id="assets_frontend" inherit_id="web.assets_frontend" name="Website Frontend Assets"> + <xpath expr="//link[last()]" position="after"> + <link rel="stylesheet" type="text/less" href="/website/static/src/less/website.ui.less"/> + <link rel="stylesheet" type="text/less" href="/website/static/src/less/website.ui.components.less"/> + <link rel="stylesheet" type="text/less" href="/website/static/src/less/website.wrapwrap.less"/> + <link rel="stylesheet" type="text/less" href="/website/static/src/less/website.snippets.less"/> + </xpath> + <xpath expr="//script[last()]" position="after"> + <script type="text/javascript" src="/website/static/src/js/website.js"></script> + <script type="text/javascript" src="/website/static/src/js/website.share.js"></script> + <script type="text/javascript" src="/website/static/src/js/website.snippets.animation.js"></script> </xpath> </template> -<template id="assets_editor" name="Editor assets"> - <!-- Call default mixins from WEB module --> - <link rel="stylesheet" href='/web/static/src/less/utils.less'/> - <!-- Call mixins from frontend bundle --> - <link rel="stylesheet" href='/website/static/src/less/website.ui.mixins.less'/> +<template id="website.assets_editor" name="Website Editor Assets"> + <t t-call="web.less_helpers"/> - <link rel='stylesheet' href='/web_editor/static/src/less/web_editor.common.less'/> - <link rel='stylesheet' href='/web_editor/static/src/less/web_editor.less'/> + <link rel="stylesheet" type="text/less" href="/website/static/src/less/website.edit_mode.less"/> - <link rel='stylesheet' href='/website/static/src/less/website.edit_mode.less'/> + <script type="text/javascript" src="/website/static/src/js/website.tour.rte.js"></script> <script type="text/javascript" src="/website/static/src/js/website.editor.js"></script> <script type="text/javascript" src="/website/static/lib/jQuery.transfo.js"></script> @@ -77,7 +51,6 @@ </template> <!-- Layout --> - <template id="submenu" name="Submenu"> <li t-if="not submenu.child_id" t-att-class=" 'active' if submenu.url and submenu.url != '/' and request.httprequest.path == submenu.url.replace('/page/website.', '/page/') else None @@ -121,9 +94,6 @@ <t t-if="not title"> <t t-set="title"><t t-if="additional_title"><t t-raw="additional_title"/> | </t><t t-esc="(website or res_company).name"/></t> </t> - <t groups="base.group_website_designer"> - <t t-set="load_editor" t-value="True"/> - </t> <meta name="viewport" content="initial-scale=1"/> <meta name="description" t-att-content="main_object and 'website_meta_description' in main_object @@ -152,14 +122,17 @@ </t> <t t-call-assets="web.assets_common" t-js="false"/> - <t t-call-assets="website.assets_frontend" t-js="false"/> + <t t-call-assets="web.assets_frontend" t-js="false"/> + <t t-call-assets="web_editor.summernote" t-js="false" groups="base.group_website_designer"/> + <t t-call-assets="web_editor.assets_editor" t-js="false" groups="base.group_website_designer"/> + <t t-call-assets="website.assets_editor" t-js="false" groups="base.group_website_publisher"/> + <t t-call-assets="web.assets_common" t-css="false"/> - <t t-if="load_editor"> - <t t-call-assets="web_editor.summernote"/> - </t> - <t groups="base.group_website_designer" t-call-assets="web_editor.editor"/> - <t t-call-assets="website.assets_frontend" t-css="false"/> - <t groups="base.group_website_publisher" t-call-assets="website.assets_editor" async="True"/> + <t t-call-assets="web.assets_frontend" t-css="false"/> + <t t-call-assets="web_editor.summernote" t-css="false" groups="base.group_website_designer"/> + <t t-call-assets="web_editor.assets_editor" t-css="false" groups="base.group_website_designer"/> + <t t-call-assets="website.assets_editor" t-css="false" groups="base.group_website_publisher"/> + <script type="text/javascript"> odoo.define('web.csrf', function (require) { var token = "<t t-esc="request.csrf_token(None)"/>"; @@ -249,9 +222,6 @@ </xpath> </template> - - - <!-- Optional Bundle for PDFJS lib Since PDFJS is quite huge (40000 lines), please only load it when it is necessary. @@ -325,7 +295,6 @@ </template> <!-- Features template --> - <template id="login_layout" inherit_id="web.login_layout" name="Website Login Layout"> <xpath expr="t" position="replace"> <t t-call="website.layout"> @@ -450,7 +419,6 @@ </template> <!-- Util template --> - <template id="publish_management"> <div groups="base.group_website_publisher" t-ignore="true" class="pull-right css_editable_mode_hidden" t-att-style="style or ''"> <div t-attf-class="btn-group js_publish_management #{object.website_published and 'css_published' or 'css_unpublished'}" t-att-data-id="object.id" t-att-data-object="object._name" t-att-data-controller="publish_controller"> @@ -504,7 +472,7 @@ 'data-disable' (optional) to unchecked one or more HTML ids, or list separate by comma 'data-reload="/"' (optional) force the reloading of the page if the url match with the string ( = regexp). - Otherwise, only the '/web/content/website.assets_frontend' is reloaded + Otherwise, only the '/web/content/web.assets_frontend' is reloaded For the sets (data-enable and/or data-disable without data-xmlid), the set is automatically checked if: @@ -519,7 +487,6 @@ - 'out': on the container 1 second before removed from ths DOM - 'loading': on the container/modal when the new css is loading --> - <template id="website.theme_customize" name="Theme Modal for Customization"> <div id="theme_customize_modal" class="modal fade"> <div class="modal-dialog"> @@ -584,19 +551,15 @@ </template> <!-- Error and special pages --> - <template id="info" name="Odoo Information"> <t t-call="website.layout"> - <div id="wrap"> - </div> + <div id="wrap"/> </t> </template> <template id="show_website_info" inherit_id="website.info" customize_show="True" name="Show Odoo Information"> <xpath expr="//div[@id='wrap']" position="inside"> - <div class="oe_structure"> - <section class="container"> <h1><t t-esc="res_company.name"/> <small>Odoo Version <t t-raw="version.get('server_version')"/></small> @@ -645,18 +608,14 @@ </t> </dl> </div> - - </section> - </div> - </xpath> </template> <template id="default_page"> <t t-call="website.layout"> - <div id="wrap" class="oe_structure oe_empty"></div> + <div id="wrap" class="oe_structure oe_empty"/> </t> </template> @@ -679,7 +638,6 @@ <div class="oe_structure"> <h1 class="container mt32"><t t-esc="status_code"/>: <t t-esc="status_message"/></h1> </div> - <t t-if="editable or request.debug"> <t t-call="website.http_error_debug"/> </t> @@ -800,8 +758,10 @@ <head> <title t-esc="status_message">Internal Server Error</title> <t t-set="debug" t-value="True"/> - <t t-call-assets="web.assets_common"/> - <t t-call-assets="website.assets_frontend"/> + <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"/> <script> $(document).ready(function() { var button = $('#reset_templates_button'); @@ -929,7 +889,6 @@ Sitemap: <t t-esc="url_root"/>sitemap.xml </template> <!-- Actual pages --> - <template id="homepage" name="Homepage" page="True" priority="29"> <t t-call="website.layout"> <div id="wrap" class="oe_structure oe_empty"></div> @@ -1030,5 +989,4 @@ Sitemap: <t t-esc="url_root"/>sitemap.xml </span> </div> </template> - </data> -</openerp> +</odoo> diff --git a/addons/website_forum/views/website_forum.xml b/addons/website_forum/views/website_forum.xml index 1f78a069988..a0216121b0c 100644 --- a/addons/website_forum/views/website_forum.xml +++ b/addons/website_forum/views/website_forum.xml @@ -37,10 +37,19 @@ </form> </template> +<!-- website_forum.layout removes the access right check for summernote bundle --> +<template id="layout" inherit_id="website.layout" name="Forum Layout" primary="True"> + <xpath expr="//t[@t-call-assets='web_editor.summernote'][@t-js='false']" position="attributes"> + <attribute name="groups"/> + </xpath> + <xpath expr="//t[@t-call-assets='web_editor.summernote'][@t-css='false']" position="attributes"> + <attribute name="groups"/> + </xpath> +</template> + <!-- Page Index --> <template id="header" name="Forum Index"> - <t t-set="load_editor" t-value="True"/> - <t t-call="website.layout"> + <t t-call="website_forum.layout"> <div t-if="is_public_user and not forum_welcome_message" class="forum_intro"> <div t-field="forum.welcome_message"/> </div> diff --git a/addons/website_slides/view/website_slides_embed.xml b/addons/website_slides/view/website_slides_embed.xml index 4dd3036d2d6..1826193bf2d 100644 --- a/addons/website_slides/view/website_slides_embed.xml +++ b/addons/website_slides/view/website_slides_embed.xml @@ -1,15 +1,11 @@ <?xml version="1.0" ?> <openerp> <data> - <!-- Bundle (minimal) for embedded slide iframe --> <template id="website_slides.slide_embed_assets" name="Website slides embed assets"> - <link rel='stylesheet' href='/web/static/lib/fontawesome/css/font-awesome.css'/> - <link rel='stylesheet' href='/web/static/lib/bootstrap/css/bootstrap.css'/> + <link type="text/less" rel='stylesheet' href='/web/static/src/less/import_bootstrap.less'/> <link type="text/less" href="/website_slides/static/src/less/website_slides.less" rel="stylesheet" t-ignore="true"/> - <script type="text/javascript" src="/web/static/lib/jquery/jquery.js"></script> - <t t-call="web.bootstrap"/> <t t-call="website.pdf_js_lib"></t> <script type="text/javascript" src="/website_slides/static/lib/pdfslidesviewer/PDFSlidesViewer.js"></script> <script type="text/javascript" src="/website_slides/static/src/js/slides_embed.js"></script> @@ -23,8 +19,10 @@ <html> <head t-if="not private"> <title><t t-esc="slide.name"/></title> - <script type="text/javascript" src="/website_slides/static/lib/pdfslidesviewer/PDFSlidesViewer.js"></script> - <t t-call-assets="website_slides.slide_embed_assets"/> + <t t-call-assets="web.assets_common" t-js="false"/> + <t t-call-assets="website_slides.slide_embed_assets" t-js="false"/> + <t t-call-assets="web.assets_common" t-css="false"/> + <t t-call-assets="website_slides.slide_embed_assets" t-css="false"/> </head> <body t-if="private" style="position: inherit;"> <title><t t-esc="slide.name"/></title> |
