From 1ca3b3df3421961caec3b747a364071c80f5c7da Mon Sep 17 00:00:00 2001 From: stephanchrst Date: Tue, 10 May 2022 17:14:58 +0700 Subject: initial commit --- backend_theme_v14/LICENSE.txt | 165 ++++++++ backend_theme_v14/__init__.py | 3 + backend_theme_v14/__manifest__.py | 33 ++ backend_theme_v14/controllers/__init__.py | 2 + backend_theme_v14/controllers/main.py | 23 ++ backend_theme_v14/images/screen.png | Bin 0 -> 311325 bytes backend_theme_v14/models/__init__.py | 4 + backend_theme_v14/models/res_company.py | 11 + backend_theme_v14/models/res_users.py | 25 ++ backend_theme_v14/static/description/icon.png | Bin 0 -> 14177 bytes backend_theme_v14/static/description/index.html | 45 +++ .../static/description/screenshot1.png | Bin 0 -> 305452 bytes .../static/description/screenshot2.png | Bin 0 -> 193655 bytes .../static/src/font/Roboto-Regular.ttf | Bin 0 -> 162876 bytes backend_theme_v14/static/src/img/checked.svg | 14 + .../static/src/img/material-background.png | Bin 0 -> 111869 bytes backend_theme_v14/static/src/js/sidebar-toggle.js | 25 ++ backend_theme_v14/static/src/js/sidebar.js | 33 ++ backend_theme_v14/static/src/scss/colors.scss | 2 + backend_theme_v14/static/src/scss/sidebar.scss | 70 ++++ backend_theme_v14/static/src/scss/style.scss | 438 +++++++++++++++++++++ backend_theme_v14/views/assets.xml | 21 + backend_theme_v14/views/res_company_view.xml | 17 + backend_theme_v14/views/sidebar.xml | 35 ++ backend_theme_v14/views/users.xml | 15 + 25 files changed, 981 insertions(+) create mode 100644 backend_theme_v14/LICENSE.txt create mode 100644 backend_theme_v14/__init__.py create mode 100644 backend_theme_v14/__manifest__.py create mode 100644 backend_theme_v14/controllers/__init__.py create mode 100644 backend_theme_v14/controllers/main.py create mode 100644 backend_theme_v14/images/screen.png create mode 100644 backend_theme_v14/models/__init__.py create mode 100644 backend_theme_v14/models/res_company.py create mode 100644 backend_theme_v14/models/res_users.py create mode 100644 backend_theme_v14/static/description/icon.png create mode 100644 backend_theme_v14/static/description/index.html create mode 100644 backend_theme_v14/static/description/screenshot1.png create mode 100644 backend_theme_v14/static/description/screenshot2.png create mode 100644 backend_theme_v14/static/src/font/Roboto-Regular.ttf create mode 100644 backend_theme_v14/static/src/img/checked.svg create mode 100644 backend_theme_v14/static/src/img/material-background.png create mode 100644 backend_theme_v14/static/src/js/sidebar-toggle.js create mode 100644 backend_theme_v14/static/src/js/sidebar.js create mode 100644 backend_theme_v14/static/src/scss/colors.scss create mode 100644 backend_theme_v14/static/src/scss/sidebar.scss create mode 100644 backend_theme_v14/static/src/scss/style.scss create mode 100644 backend_theme_v14/views/assets.xml create mode 100644 backend_theme_v14/views/res_company_view.xml create mode 100644 backend_theme_v14/views/sidebar.xml create mode 100644 backend_theme_v14/views/users.xml (limited to 'backend_theme_v14') diff --git a/backend_theme_v14/LICENSE.txt b/backend_theme_v14/LICENSE.txt new file mode 100644 index 0000000..0a04128 --- /dev/null +++ b/backend_theme_v14/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_v14/__init__.py b/backend_theme_v14/__init__.py new file mode 100644 index 0000000..724cd13 --- /dev/null +++ b/backend_theme_v14/__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_v14/__manifest__.py b/backend_theme_v14/__manifest__.py new file mode 100644 index 0000000..dcc1d29 --- /dev/null +++ b/backend_theme_v14/__manifest__.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Copyright 2016, 2020 Openworx - Mario Gielissen +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). + +{ + "name": "Openworx Material Backend Theme V14", + "summary": "Openworx Material Backend Theme V14", + "version": "14.0.0.2", + "category": "Theme/Backend", + "website": "https://www.openworx.nl", + "description": """ + Openworx Material Backend theme for Odoo 14.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', + ], + #'live_test_url': 'https://youtu.be/JX-ntw2ORl8' + +} diff --git a/backend_theme_v14/controllers/__init__.py b/backend_theme_v14/controllers/__init__.py new file mode 100644 index 0000000..cd4d6a8 --- /dev/null +++ b/backend_theme_v14/controllers/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +from . import main \ No newline at end of file diff --git a/backend_theme_v14/controllers/main.py b/backend_theme_v14/controllers/main.py new file mode 100644 index 0000000..9b586a3 --- /dev/null +++ b/backend_theme_v14/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_v14/static/src/img/material-background.png' + +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')]) diff --git a/backend_theme_v14/images/screen.png b/backend_theme_v14/images/screen.png new file mode 100644 index 0000000..56c6f8d Binary files /dev/null and b/backend_theme_v14/images/screen.png differ diff --git a/backend_theme_v14/models/__init__.py b/backend_theme_v14/models/__init__.py new file mode 100644 index 0000000..889e628 --- /dev/null +++ b/backend_theme_v14/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +from . import res_company +from . import res_users + diff --git a/backend_theme_v14/models/res_company.py b/backend_theme_v14/models/res_company.py new file mode 100644 index 0000000..5940bcc --- /dev/null +++ b/backend_theme_v14/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_v14/models/res_users.py b/backend_theme_v14/models/res_users.py new file mode 100644 index 0000000..fd3ecd6 --- /dev/null +++ b/backend_theme_v14/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_v14/static/description/icon.png b/backend_theme_v14/static/description/icon.png new file mode 100644 index 0000000..4218e4e Binary files /dev/null and b/backend_theme_v14/static/description/icon.png differ diff --git a/backend_theme_v14/static/description/index.html b/backend_theme_v14/static/description/index.html new file mode 100644 index 0000000..0c97ebc --- /dev/null +++ b/backend_theme_v14/static/description/index.html @@ -0,0 +1,45 @@ +
+
+
+

Openworx Material Backend Theme

+

The most popular backend theme for Odoo 14.0 Community

+
+

Enterprise look'n'feel App dashboard

+

+

Formview

+

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

You can change the App dashboard background under Company Settings.

+

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_v14/static/description/screenshot1.png b/backend_theme_v14/static/description/screenshot1.png new file mode 100644 index 0000000..cf9418b Binary files /dev/null and b/backend_theme_v14/static/description/screenshot1.png differ diff --git a/backend_theme_v14/static/description/screenshot2.png b/backend_theme_v14/static/description/screenshot2.png new file mode 100644 index 0000000..8eee3a4 Binary files /dev/null and b/backend_theme_v14/static/description/screenshot2.png differ diff --git a/backend_theme_v14/static/src/font/Roboto-Regular.ttf b/backend_theme_v14/static/src/font/Roboto-Regular.ttf new file mode 100644 index 0000000..8c082c8 Binary files /dev/null and b/backend_theme_v14/static/src/font/Roboto-Regular.ttf differ diff --git a/backend_theme_v14/static/src/img/checked.svg b/backend_theme_v14/static/src/img/checked.svg new file mode 100644 index 0000000..5125976 --- /dev/null +++ b/backend_theme_v14/static/src/img/checked.svg @@ -0,0 +1,14 @@ + + + + + + + + + diff --git a/backend_theme_v14/static/src/img/material-background.png b/backend_theme_v14/static/src/img/material-background.png new file mode 100644 index 0000000..de0bb76 Binary files /dev/null and b/backend_theme_v14/static/src/img/material-background.png differ diff --git a/backend_theme_v14/static/src/js/sidebar-toggle.js b/backend_theme_v14/static/src/js/sidebar-toggle.js new file mode 100644 index 0000000..038bc6d --- /dev/null +++ b/backend_theme_v14/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_v14.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_v14/static/src/js/sidebar.js b/backend_theme_v14/static/src/js/sidebar.js new file mode 100644 index 0000000..3bc7a22 --- /dev/null +++ b/backend_theme_v14/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_v14.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_v14/static/src/scss/colors.scss b/backend_theme_v14/static/src/scss/colors.scss new file mode 100644 index 0000000..3b7102c --- /dev/null +++ b/backend_theme_v14/static/src/scss/colors.scss @@ -0,0 +1,2 @@ +$brand-primary: #008DCA; +$brand-secondary: #5EC269; diff --git a/backend_theme_v14/static/src/scss/sidebar.scss b/backend_theme_v14/static/src/scss/sidebar.scss new file mode 100644 index 0000000..158a148 --- /dev/null +++ b/backend_theme_v14/static/src/scss/sidebar.scss @@ -0,0 +1,70 @@ +/* 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: calc(100% - 46px) !important; + //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 { + display: none; +} diff --git a/backend_theme_v14/static/src/scss/style.scss b/backend_theme_v14/static/src/scss/style.scss new file mode 100644 index 0000000..3d4630e --- /dev/null +++ b/backend_theme_v14/static/src/scss/style.scss @@ -0,0 +1,438 @@ +/* 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_v14/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%); + +$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; + +} + +//.app-sidebar { +// display: none; +//} + +// Sidebar +html .o_web_client { + flex-flow: row wrap; + + >header { + flex: 0 0 100%; + } + + >.o_action_manager { + @media (max-width: 768px) { + flex: 0 0 100%; + } + flex: 0 0 calc(100% - 180px); + height: calc(100% - 46px) !important; + } + + .toggle-sidebar~.o_action_manager { + flex: 0 0 100%; + } +} + +// 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; +} + +// Badges + +.badge { + border: 1px solid $brand-secondary; +} + +// 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 { + background-color: $brand-primary; + color: #ffffff; + cursor: default; + font-weight: normal; +} + +.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: 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; +} diff --git a/backend_theme_v14/views/assets.xml b/backend_theme_v14/views/assets.xml new file mode 100644 index 0000000..c14e49c --- /dev/null +++ b/backend_theme_v14/views/assets.xml @@ -0,0 +1,21 @@ + + + + + + +