diff --git a/backend_theme_v12/LICENSE.txt b/backend_theme_v12/LICENSE.txt new file mode 100644 index 0000000..0a04128 --- /dev/null +++ b/backend_theme_v12/LICENSE.txt @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/backend_theme_v12/__init__.py b/backend_theme_v12/__init__.py new file mode 100644 index 0000000..724cd13 --- /dev/null +++ b/backend_theme_v12/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +from . import models +from . import controllers \ No newline at end of file diff --git a/backend_theme_v12/__manifest__.py b/backend_theme_v12/__manifest__.py new file mode 100644 index 0000000..063fabf --- /dev/null +++ b/backend_theme_v12/__manifest__.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Copyright 2016, 2019 Openworx +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). + +{ + "name": "Obook Openworx Material Backend Theme V12", + "summary": "Oboo Openworx Material Backend Theme V12 ", + "version": "12.0.0.3", + "category": "Theme/Backend", + "website": "http://www.openworx.nl", + "description": """ + Obook Openworx Material Backend theme for Odoo 12.0 community edition. + """, + 'images':[ + 'images/screen.png' + ], + "author": "Openworx", + "license": "LGPL-3", + "installable": True, + "depends": [ + 'web', + 'web_responsive', + + ], + "data": [ + 'views/assets.xml', + 'views/res_company_view.xml', + 'views/users.xml', + 'views/sidebar.xml', + #'views/web.xml', + ], + 'live_test_url': 'https://youtu.be/JX-ntw2ORl8' + +} + diff --git a/backend_theme_v12/__manifest__.py~ b/backend_theme_v12/__manifest__.py~ new file mode 100644 index 0000000..c26d8bc --- /dev/null +++ b/backend_theme_v12/__manifest__.py~ @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Copyright 2016, 2019 Openworx +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). + +{ + "name": "Openworx Material Backend Theme V12", + "summary": "Openworx Material Backend Theme V12 ", + "version": "12.0.0.3", + "category": "Theme/Backend", + "website": "http://www.openworx.nl", + "description": """ + Openworx Material Backend theme for Odoo 12.0 community edition. + """, + 'images':[ + 'images/screen.png' + ], + "author": "Openworx", + "license": "LGPL-3", + "installable": True, + "depends": [ + 'web', + 'web_responsive', + + ], + "data": [ + 'views/assets.xml', + 'views/res_company_view.xml', + 'views/users.xml', + 'views/sidebar.xml', + #'views/web.xml', + ], + 'live_test_url': 'https://youtu.be/JX-ntw2ORl8' + +} + diff --git a/backend_theme_v12/controllers/__init__.py b/backend_theme_v12/controllers/__init__.py new file mode 100644 index 0000000..cd4d6a8 --- /dev/null +++ b/backend_theme_v12/controllers/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import main \ No newline at end of file diff --git a/backend_theme_v12/controllers/main.py b/backend_theme_v12/controllers/main.py new file mode 100644 index 0000000..e899e58 --- /dev/null +++ b/backend_theme_v12/controllers/main.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# Copyright 2016, 2019 Openworx +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). + +import base64 +from odoo.http import Controller, request, route +from werkzeug.utils import redirect + +DEFAULT_IMAGE = '/backend_theme_v12/static/src/img/material-background.jpg' + +class DasboardBackground(Controller): + + @route(['/dashboard'], type='http', auth='user', website=False) + def dashboard(self, **post): + user = request.env.user + company = user.company_id + if company.dashboard_background: + image = base64.b64decode(company.dashboard_background) + else: + return redirect(DEFAULT_IMAGE) + + return request.make_response( + image, [('Content-Type', 'image')]) \ No newline at end of file diff --git a/backend_theme_v12/images/screen.png b/backend_theme_v12/images/screen.png new file mode 100644 index 0000000..8e746db Binary files /dev/null and b/backend_theme_v12/images/screen.png differ diff --git a/backend_theme_v12/models/__init__.py b/backend_theme_v12/models/__init__.py new file mode 100644 index 0000000..c5e3353 --- /dev/null +++ b/backend_theme_v12/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- +from . import res_company +from . import res_users \ No newline at end of file diff --git a/backend_theme_v12/models/res_company.py b/backend_theme_v12/models/res_company.py new file mode 100644 index 0000000..5940bcc --- /dev/null +++ b/backend_theme_v12/models/res_company.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +# Copyright 2016, 2019 Openworx +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). + +from odoo import models, fields + +class ResCompany(models.Model): + + _inherit = 'res.company' + + dashboard_background = fields.Binary(attachment=True) \ No newline at end of file diff --git a/backend_theme_v12/models/res_users.py b/backend_theme_v12/models/res_users.py new file mode 100644 index 0000000..fd3ecd6 --- /dev/null +++ b/backend_theme_v12/models/res_users.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Copyright 2016, 2019 Openworx +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). + +from odoo import models, fields + +class ResUsers(models.Model): + + _inherit = 'res.users' + + sidebar_visible = fields.Boolean("Show App Sidebar", default=True) + + def __init__(self, pool, cr): + """ Override of __init__ to add access rights on notification_email_send + and alias fields. Access rights are disabled by default, but allowed + on some specific fields defined in self.SELF_{READ/WRITE}ABLE_FIELDS. + """ + init_res = super(ResUsers, self).__init__(pool, cr) + # duplicate list to avoid modifying the original reference + type(self).SELF_WRITEABLE_FIELDS = list(self.SELF_WRITEABLE_FIELDS) + type(self).SELF_WRITEABLE_FIELDS.extend(['sidebar_visible']) + # duplicate list to avoid modifying the original reference + type(self).SELF_READABLE_FIELDS = list(self.SELF_READABLE_FIELDS) + type(self).SELF_READABLE_FIELDS.extend(['sidebar_visible']) + return init_res \ No newline at end of file diff --git a/backend_theme_v12/static/description/crm.png b/backend_theme_v12/static/description/crm.png new file mode 100644 index 0000000..d191baa Binary files /dev/null and b/backend_theme_v12/static/description/crm.png differ diff --git a/backend_theme_v12/static/description/crm_mobile.png b/backend_theme_v12/static/description/crm_mobile.png new file mode 100644 index 0000000..93ab27a Binary files /dev/null and b/backend_theme_v12/static/description/crm_mobile.png differ diff --git a/backend_theme_v12/static/description/desktop.png b/backend_theme_v12/static/description/desktop.png new file mode 100644 index 0000000..76fa555 Binary files /dev/null and b/backend_theme_v12/static/description/desktop.png differ diff --git a/backend_theme_v12/static/description/icon.png b/backend_theme_v12/static/description/icon.png new file mode 100644 index 0000000..4218e4e Binary files /dev/null and b/backend_theme_v12/static/description/icon.png differ diff --git a/backend_theme_v12/static/description/index.html b/backend_theme_v12/static/description/index.html new file mode 100644 index 0000000..cc7c7d0 --- /dev/null +++ b/backend_theme_v12/static/description/index.html @@ -0,0 +1,51 @@ +
+
+
+

Openworx Material Backend Theme

+

The first Odoo 12.0 community backend theme

+
+

Enterprise look'n'feel and App Sidebar

+

+

App Dashboard

+

+

Quick search in App Dashboard

+

+

Side Chatter on widescreen

+

+

Fully responsive

+

+

+
+
+
+
+ +
+
+ +
+
+
+
+

Remark: It is possible that the Odoo service needs to be restarted after install.

+
+
+
+
+ +
+
+ +
+
+
+
+

Help & Support

+
+ Website: Openworx
+ Contact: Email Support
+
+
+
+
+ diff --git a/backend_theme_v12/static/description/mobile.png b/backend_theme_v12/static/description/mobile.png new file mode 100644 index 0000000..4bcf6a7 Binary files /dev/null and b/backend_theme_v12/static/description/mobile.png differ diff --git a/backend_theme_v12/static/description/search.png b/backend_theme_v12/static/description/search.png new file mode 100644 index 0000000..0054611 Binary files /dev/null and b/backend_theme_v12/static/description/search.png differ diff --git a/backend_theme_v12/static/description/sidebar.png b/backend_theme_v12/static/description/sidebar.png new file mode 100644 index 0000000..022f8d6 Binary files /dev/null and b/backend_theme_v12/static/description/sidebar.png differ diff --git a/backend_theme_v12/static/src/font/Roboto-Regular.ttf b/backend_theme_v12/static/src/font/Roboto-Regular.ttf new file mode 100644 index 0000000..8c082c8 Binary files /dev/null and b/backend_theme_v12/static/src/font/Roboto-Regular.ttf differ diff --git a/backend_theme_v12/static/src/img/checked.svg b/backend_theme_v12/static/src/img/checked.svg new file mode 100644 index 0000000..5125976 --- /dev/null +++ b/backend_theme_v12/static/src/img/checked.svg @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/backend_theme_v12/static/src/img/material-background.jpg b/backend_theme_v12/static/src/img/material-background.jpg new file mode 100644 index 0000000..d38241a Binary files /dev/null and b/backend_theme_v12/static/src/img/material-background.jpg differ diff --git a/backend_theme_v12/static/src/js/sidebar-toggle.js b/backend_theme_v12/static/src/js/sidebar-toggle.js new file mode 100644 index 0000000..2330970 --- /dev/null +++ b/backend_theme_v12/static/src/js/sidebar-toggle.js @@ -0,0 +1,25 @@ +/* Copyright 2017 Openworx. + * License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */ + +odoo.define('backend_theme_v12.sidebar-toggle', function (require) { + "use strict"; + + var session = require('web.session'); + var rpc = require('web.rpc'); + var id = session.uid; + rpc.query({ + model: 'res.users', + method: 'read', + args: [[id], ['sidebar_visible']], + }).then(function(res) { + var dbfield = res[0]; + var toggle = dbfield.sidebar_visible; + if (toggle === true) { + $("#app-sidebar").removeClass("toggle-sidebar"); + } else { + $("#app-sidebar").addClass("toggle-sidebar"); + }; + }); + +}); + diff --git a/backend_theme_v12/static/src/js/sidebar.js b/backend_theme_v12/static/src/js/sidebar.js new file mode 100644 index 0000000..176d151 --- /dev/null +++ b/backend_theme_v12/static/src/js/sidebar.js @@ -0,0 +1,33 @@ +/* Copyright 2016, 2019 Openworx. + * License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */ + +// Check if debug mode is active and then add debug into URL when clicking on the App sidebar +odoo.define('backend_theme_v12.Sidebar', function(require) { + "use strict"; + var core = require('web.core'); + var session = require('web.session'); + var Widget = require('web.Widget'); + $(function() { + (function($) { + $.addDebug = function(url) { + url = url.replace(/(.{4})/, "$1?debug"); + return url; + } + $.addDebugWithAssets = function(url) { + url = url.replace(/(.{4})/, "$1?debug=assets"); + return url; + } + $.delDebug = function(url) { + var str = url.match(/web(\S*)#/); + url = url.replace("str/g", ""); + return url; + } + }) (jQuery); + $("#sidebar a").each(function() { + var url = $(this).attr('href'); + if (session.debug == 1) $(this).attr('href', $.addDebug(url)); + if (session.debug == 'assets') $(this).attr('href', $.addDebugWithAssets(url)); + if (session.debug == false) $(this).attr('href', $.delDebug(url)); + }); + }); +}); diff --git a/backend_theme_v12/static/src/scss/sidebar.scss b/backend_theme_v12/static/src/scss/sidebar.scss new file mode 100644 index 0000000..1393964 --- /dev/null +++ b/backend_theme_v12/static/src/scss/sidebar.scss @@ -0,0 +1,69 @@ +/* Copyright 2016, 2018 Openworx. + * License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */ + +/* App Sidebar Panel */ + +$odoo-sidebar-width: 180px; + +.app-sidebar-panel { + flex: 0 0 $odoo-sidebar-width; + background-color: $gray-base; + height: 100% !important; + overflow-y: auto; + @media (max-width: 768px) { + display: none; + } +} + +/* @media (min-width: 768px) { + .o_menu_apps { + display: none !important; + } +} */ + +//.app-sidebar-panel:hover { +// @include o-flex(0, 0, $odoo-sidebar-width); +//} + +.app-sidebar { + white-space: nowrap; + padding: 0; + .app-sidebar-menu { + list-style: none; + margin: 0; + padding: 0; + >li { + display: block; + margin: 0; + padding: 0; + border: 0px; + >a { + display: block; + position: relative; + margin: 0; + border: 0px; + padding: 8px 15px; + text-decoration: none; + font-size: 13px; + font-weight: 300; + color: $gray-lighter; + overflow: hidden; + text-overflow: ellipsis; + } + } + > li:hover > a{ + background: darken(#0099ff, 15%); + color: #fff; + } + } +} + +.app-sidebar-menuitem { + width: 23px; + height: 22px; + margin-right: 5px; +} + +.toggle-sidebar { + margin-left: 0px - $odoo-sidebar-width; +} \ No newline at end of file diff --git a/backend_theme_v12/static/src/scss/style.scss b/backend_theme_v12/static/src/scss/style.scss new file mode 100644 index 0000000..3cb8088 --- /dev/null +++ b/backend_theme_v12/static/src/scss/style.scss @@ -0,0 +1,492 @@ +/* Copyright 2016, 2019 Openworx. + * License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). */ + + +@font-face { + font-family: Roboto; + src: url(/backend_theme_v12/static/src/font/Roboto-Regular.ttf) +} + + +$gray-base: #000; +$gray-darker: lighten($gray-base, 13.5%); +$gray-dark: #666; +$gray: #777; +$gray-light: #AEA79F; +$gray-lighter: lighten($gray-base, 93.5%); + + +// Change colors here + +// Odoo EE colors +//$brand-primary: #875a7b; +//$brand-secondary: #00A09D; +//------------------------ +$brand-primary: #008DCA; +$brand-secondary: #5EC269; +//------------------------ + + +$brand-primary-dark: darken($brand-primary, 10%); +$brand-secondary-dark: darken($brand-secondary, 10%); + +body { + + font-family: "Roboto"; +} + +.o_loading { + background-color: $brand-primary; +} + +.o_main_navbar { + background-color : $brand-primary; +} + +.o_main_navbar > a:hover, .o_main_navbar > a:focus, .o_main_navbar > button:hover, .o_main_navbar > button:focus { + + background-color: $brand-primary-dark; + color: inherit; + +} + +.o_main_navbar > ul > li > a:hover, .o_main_navbar > ul > li > label:hover { + background-color: $brand-primary-dark; +} + +.o_main_navbar .show .dropdown-toggle { + + background-color: $brand-primary-dark; + +} + +// Fix color Add file button +.o_control_panel .o_cp_sidebar .o_hidden_input_file .o_form_binary_form span { + color: $gray-dark !important; +} + +// Buttons + +.btn { + border-radius: 0px; +} + +.btn-primary { + + color: #fff; + background-color: $brand-secondary; + border-color: $brand-secondary; + +} + +.btn-primary:hover { + + color: #fff; + background-color: $brand-secondary-dark; + border-color: $brand-secondary-dark; +} + +.btn-secondary { + border: none; +} + +.btn:active, .btn.active { + -webkit-box-shadow: none; + box-shadow: none; + background-color: #eee !important; +} + +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: none; + box-shadow: none; + background-color: #eee !important; +} + + +.btn-link { + color: $brand-secondary; +} + +.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled { + color: $brand-primary; +} + +.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button:not(.disabled):hover { + color: $brand-primary; +} + +.o_dropdown_toggler_btn, .o_dropdown_toggler_btn:hover, .o_dropdown_toggler_btn:focus, .o_dropdown_toggler_btn:hover, .o_dropdown_toggler_btn:focus, .btn-icon, .o_graph_button { + text-transform: none !important; + color: $gray-dark !important; + background-color: transparent !important; + border: none !important; +} + +.dropdown-menu { + border-radius: 0px; +} + +oe_highlight { + color: #ffffff !important; + background-color: $brand-primary !important; +} + +.o_external_button { + color: $brand-primary !important; + background: #ffffff; +} + +.o_button_icon { + color: $brand-primary !important; +} + + +// Calendar + +.o_calendar_container .o_calendar_sidebar_container .ui-datepicker table .ui-state-active { + background: none; + background-color: $brand-primary !important; + color: #ffffff !important; +} +.o_calendar_container .o_calendar_sidebar_container .ui-datepicker table .ui-state-default { + color: $brand-primary; +} + +.datepicker { + .table-sm { + > thead { + color: white; + background-color: $brand-primary; + + > tr { + &:first-child { + th:hover { + color: white; + background-color: darken($brand-primary, 10%); + } + } + + &:last-child { + color: $o-datepicker-week-color; + background-color: $o-datepicker-week-bg-color; + } + > th { + border-radius: 0; + } + } + } + + > tbody { + > tr { + > td { + &.active, .active { + background-color: $o-brand-primary; + border-radius: 100px; + } + + &.today:before { + border-bottom-color: $o-brand-primary; + } + } + } + } + } +} + +.datepicker .table-sm > tbody > tr > td.active, .datepicker .table-sm > tbody > tr > td .active { + background-color: $brand-primary; + border-radius: 0; +} + +// Filter search label + +.o_searchview { + .o_searchview_facet { + + background-color: #ffffff; + + .o_searchview_facet_label { + background-color: $brand-primary; + } + } +} + +a { + + color: $brand-secondary; + text-decoration: none; + background-color: transparent; + -webkit-text-decoration-skip: objects; + +} + +a:hover { + + color: $brand-secondary-dark; + text-decoration: none; + +} + + +.o_control_panel { + background-color: #ffffff; +} + +.breadcrumb { + background-color: inherit; +} + +// Input + +input[type="text"], input[type="password"], input[type="number"], +textarea, select, .o_form_view.o_form_editable .o_form_field_many2manytags, +.o_searchview +{ + border: 0; + border-radius: 0; + border-bottom: 1px solid #ccc; +} + +.o_web_client input:focus, .o_web_client textarea:focus, .o_web_client select:focus { + outline: none; + border-bottom: 2px solid $brand-primary; +} + +.o_input { + border: 1px solid #ccc; + border-top-style: none; + border-right-style: none; + border-left-style: none; + color: $gray; +} + +.o_field_widget { + &.o_field_many2one .o_external_button { + color: $brand-secondary + } +} + +.o_required_modifier { + &.o_input, .o_input { + background-color: lighten($brand-primary, 35%) ! important; + } +} + +.input-group-text { + background-color: transparent; + color: #fff; + border: 0px; +} + +// Listview + +.o_list_view.table { + border: none; +} +.o_list_view.table thead, .o_list_view.table tfoot, .o_list_view.table td,.o_list_view.table th { + border: none; +} + +.o_list_view.table thead { + background-color: #e2e2e0; +} + +.o_list_view.table thead > tr > th.o_column_sortable:hover { + background-color: #D6D6D3; +} + +.o_list_view.table tbody tr.o_group_header { + background-color: #dfdfdf; + background-image: none; + border-top: 1px solid #e2e2e0; +} + +.table-striped > tbody > tr:nth-of-type(2n+1) { + background-color: #eef0f0; +} + +.o_list_view tfoot tr:nth-child(1) td { + background-color: $brand-primary !important; + color: #fff !important; +} + + +.ui-autocomplete .ui-menu-item.ui-state-focus { + background-color: #dee2e6; +} + +.ui-menu-item a:hover,.ui-menu-item a:focus { + color: #666666 !important; +} +.ui-autocomplete .ui-menu-item.ui-state-focus a{ + color: #666666 !important; +} + +.o_form_view .oe_button_box .oe_stat_button .o_stat_info .o_stat_value { + color: $brand-primary; +} + +.o_form_view .o_horizontal_separator { + color: #666666; + font-weight: bold; +} + +// Forms + +.o_form_view { + + .o_form_sheet_bg { + background: none !important; + background-color: #F9F9F9 !important; + padding: 0px; + .o_form_sheet { + border: 1px solid #d9d7d7; + box-shadow: 0 5px 20px -15px black; + } + } + + .o_form_statusbar { + //margin: -16px; + + .o_statusbar_status { + > .o_arrow_button { + background: #ffffff; + } + } + } +} + +// App Dashboard + +/* .o_menu_apps .dropdown-menu.show { + background: transparent url('/dashboard') no-repeat scroll center center / cover; + +} */ + +.o_menu_apps .dropdown-menu.show { + background: url(/dashboard); + background-origin: border-box; + background-size: cover; + height: calc(100vh); + max-height: calc(100vh); + border-top: $o-navbar-height solid transparent; + top: 0 !important; +} + +.o_main_navbar > ul.o_menu_systray { + float: right; + position: relative; + z-index: 200; +} + +.fa-th-large::before { + content: "\f00a"; +} + +.o_menu_apps .full { + width: 46px; + font-size: 18px; + text-align: center; + position: relative; + z-index: 200; +} + +.o-app-name { + color: #fff; + font-size: 15px; + font-weight: 400; + text-overflow: ellipsis; + white-space: nowrap; + text-shadow: 0 1px 1px rgba(0, 0, 0, 0.45); +} + +.o_menu_apps .dropdown-menu.show .o-app-icon { + padding: 20px 0 0; +} + +.o_menu_apps .dropdown-menu.show .o-app-icon:hover { + box-shadow: 0 8px 15px -10px black; + transform: translateY(-1px); +} + +.dropdown-item.o_app { + background: transparent; +} + +.o-menu-search-result { + color: #fff; +} + +// Chat window + +.o_thread_window .o_thread_window_header { + background-color: $brand-primary; +} + +// Formview + + +$gray-lighter-darker: #d9d7d7; +$o-statbutton-height: 40px; +$o-statbutton-spacing: 6px; + +.o_form_view { + @mixin o-form-sheet-negative-margin() { + margin-left: -$o-horizontal-padding; + margin-right: -$o-horizontal-padding; + margin-top: -#{$o-horizontal-padding +1}; + } + + .o_form_uri { + display: inline-block; + + color: $gray; + + &:first-line { + color: $link-color; + } + + &:hover { + color: darken($link-color, 15%); // hack required on chrome + + &:first-line { + color: darken($link-color, 15%); + } + } + } + + .oe_avatar { + float: right; + + >img { + max-height: 90px; + max-width: 90px; + margin-bottom: 10px; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4); + border: none; + } + + +.oe_title { + padding-right: 0px; + padding-left: 0px; + } + } + +} + +// Override `@include media-breakpoint-up` in module `web_responsive` +@include media-breakpoint-up(md) { + .o_form_view .oe_button_box + .oe_avatar + .oe_title { + /* Add 110px in the calculation for the avatar space */ + width: calc(100% - 400px - 110px); + min-width: 400px; + max-width: 650px; + } + /* Same correction for res.users .oe_title div */ + .o_form_view .o_field_integer + .oe_button_box + .o_form_header + .o_field_boolean + + .o_form_header + .oe_avatar + .oe_title { + width: calc(100% - 400px - 110px); + min-width: 400px; + max-width: 650px; + } +} diff --git a/backend_theme_v12/views/assets.xml b/backend_theme_v12/views/assets.xml new file mode 100644 index 0000000..c2c9a0a --- /dev/null +++ b/backend_theme_v12/views/assets.xml @@ -0,0 +1,20 @@ + + + + + + +