diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 17:14:58 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 17:14:58 +0700 |
| commit | 1ca3b3df3421961caec3b747a364071c80f5c7da (patch) | |
| tree | 6778a1f0f3f9b4c6e26d6d87ccde16e24da6c9d6 /backend_theme_v14 | |
| parent | b57188be371d36d96caac4b8d65a40745c0e972c (diff) | |
initial commit
Diffstat (limited to 'backend_theme_v14')
25 files changed, 981 insertions, 0 deletions
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. <https://fsf.org/> + 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 Binary files differnew file mode 100644 index 0000000..56c6f8d --- /dev/null +++ b/backend_theme_v14/images/screen.png 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 Binary files differnew file mode 100644 index 0000000..4218e4e --- /dev/null +++ b/backend_theme_v14/static/description/icon.png 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 @@ +<section class="oe_container">
+ <div class="oe_row oe_spaced">
+ <div class="oe_span12">
+ <h1 class="oe_slogan" style="color:#337ab7;">Openworx Material Backend Theme</h1>
+ <h2 class="oe_slogan">The most popular backend theme for Odoo 14.0 Community</h2>
+ <div class="oe_screenshot" style="text-align: center;">
+ <h3 class="oe_slogan" style="color:#337ab7;">Enterprise look'n'feel App dashboard</h3>
+ <img style="max-width: 100%;" src="screenshot1.png"/><br><br>
+ <h3 class="oe_slogan" style="color:#337ab7;">Formview</h3>
+ <img style="max-width: 100%;" src="screenshot2.png"/><br><br>
+ </div>
+ </div>
+ </div>
+</section>
+
+<section class="oe_container oe_separator">
+</section>
+
+<section class="oe_container" style="background-color:#E8E8E8; padding:20px 0px 90px 0px">
+ <div class="oe_row">
+ <div class="oe_span12">
+ <div class="oe_centeralign">
+ <p>You can change the App dashboard background under Company Settings.</p>
+ <p>Remark: It is possible that the Odoo service needs to be restarted after install.</p>
+ </div>
+ </div>
+ </div>
+</section>
+
+<section class="oe_container oe_separator">
+</section>
+
+<section class="oe_container oe_dark">
+ <div class="oe_row">
+ <div class="oe_span12 oe_centeralign">
+ <br/>
+ <h3>Help & Support</h3>
+ <br/>
+ Website: <a href="https://www.openworx.nl" target="_blank">Openworx</a><br/>
+ Contact: <a href="mailto:info@openworx.nl" subject="Material Backend Theme v14">Email Support</a><br/>
+ <br/>
+ </div>
+ </div>
+</section>
+
diff --git a/backend_theme_v14/static/description/screenshot1.png b/backend_theme_v14/static/description/screenshot1.png Binary files differnew file mode 100644 index 0000000..cf9418b --- /dev/null +++ b/backend_theme_v14/static/description/screenshot1.png diff --git a/backend_theme_v14/static/description/screenshot2.png b/backend_theme_v14/static/description/screenshot2.png Binary files differnew file mode 100644 index 0000000..8eee3a4 --- /dev/null +++ b/backend_theme_v14/static/description/screenshot2.png diff --git a/backend_theme_v14/static/src/font/Roboto-Regular.ttf b/backend_theme_v14/static/src/font/Roboto-Regular.ttf Binary files differnew file mode 100644 index 0000000..8c082c8 --- /dev/null +++ b/backend_theme_v14/static/src/font/Roboto-Regular.ttf 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 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + width="15px" height="15px" viewBox="0 0 15 15" enable-background="new 0 0 15 15" xml:space="preserve"> +<g> + <path fill="#666766" d="M12.385,5.578L7.65,10.313l-0.89,0.888c-0.119,0.119-0.281,0.184-0.444,0.184 + c-0.162,0-0.328-0.064-0.445-0.184l-0.89-0.888L2.615,7.944C2.497,7.828,2.432,7.664,2.432,7.5c0-0.163,0.065-0.325,0.183-0.444 + l0.89-0.89c0.118-0.117,0.281-0.183,0.444-0.183c0.164,0,0.327,0.065,0.445,0.183l1.923,1.929l4.289-4.296 + c0.119-0.118,0.282-0.183,0.445-0.183c0.164,0,0.327,0.065,0.445,0.183l0.889,0.89c0.118,0.118,0.184,0.281,0.184,0.445 + C12.568,5.296,12.503,5.46,12.385,5.578z"/> +</g> +</svg> + diff --git a/backend_theme_v14/static/src/img/material-background.png b/backend_theme_v14/static/src/img/material-background.png Binary files differnew file mode 100644 index 0000000..de0bb76 --- /dev/null +++ b/backend_theme_v14/static/src/img/material-background.png 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 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!-- + Copyright 2016, 2019 Openworx. + @author Mario Gielissen <mario@openworx.nl> + License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). +--> + +<odoo> + <data> + <template id="assets_backend" name="Openworx Backend Theme" inherit_id="web.assets_backend"> + <xpath expr="."> + <link rel="stylesheet" href="/backend_theme_v14/static/src/scss/colors.scss"/> + <link rel="stylesheet" href="/backend_theme_v14/static/src/scss/style.scss"/> + <link rel="stylesheet" href="/backend_theme_v14/static/src/scss/sidebar.scss"/> + <script type="application/javascript" src="/backend_theme_v14/static/src/js/sidebar.js"/> + <script type="application/javascript" src="/backend_theme_v14/static/src/js/sidebar-toggle.js"/> + </xpath> + </template> + </data> +</odoo> diff --git a/backend_theme_v14/views/res_company_view.xml b/backend_theme_v14/views/res_company_view.xml new file mode 100644 index 0000000..1c870c2 --- /dev/null +++ b/backend_theme_v14/views/res_company_view.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="utf-8" ?> +<odoo> + <record id="res_company_form" model="ir.ui.view"> + <field name="name">res.company.form</field> + <field name="model">res.company</field> + <field name="inherit_id" ref="base.view_company_form" /> + <field name="arch" type="xml"> + <xpath expr="//notebook" position="inside"> + <page name="background" string="Apps Dashboard"> + <group name="dashboard_settings"> + <field name="dashboard_background" widget="image" class="oe_avatar"/> + </group> + </page> + </xpath> + </field> + </record> +</odoo>
\ No newline at end of file diff --git a/backend_theme_v14/views/sidebar.xml b/backend_theme_v14/views/sidebar.xml new file mode 100644 index 0000000..0fa35dd --- /dev/null +++ b/backend_theme_v14/views/sidebar.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!-- + Copyright 2016, 2019 Openworx. + @author Mario Gielissen <mario@openworx.nl> + License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). +--> + +<odoo> + <template id="app_sidebar" inherit_id="web.webclient_bootstrap" name="Apps Sidebar"> + <xpath expr="//t[@t-set='body_classname']" position="after"> + <div id="app-sidebar" class="app-sidebar-panel"> +<!-- <div class="app-sidebar navbar-collapse collapse"> --> + <div class="app-sidebar"> + <ul id="sidebar" class="app-sidebar-menu"> + <li class="nav-item" t-as="menu" t-foreach="menu_data['children']" > + <t t-set="debug_param" t-value="''"/> + <a t-att-href="'/web%s#menu_id=%s&action=' % (debug_param, menu['id'])" + t-att-class="'nav-link nav-toggle' if menu.get('children') else 'nav-link '" + t-att-data-menu="menu['id']" + t-att-data-menu-xmlid="menu.get('xmlid')" + t-att-data-action-model="menu['action'] and menu['action'].split(',')[0] or None" + t-att-data-action-id="menu['action'] and menu['action'].split(',')[1] or None"> + <img t-attf-src="/web/image/ir.ui.menu/{{ menu['id'] }}/web_icon_data" t-att-alt="menu['name']" class="app-sidebar-menuitem" t-att-title="menu['name']"/> + <span class="title" > + <t t-esc="menu['name']"/> + </span> + </a> + </li> + </ul> + </div> + </div> + </xpath> + </template> +</odoo> diff --git a/backend_theme_v14/views/users.xml b/backend_theme_v14/views/users.xml new file mode 100644 index 0000000..7445e4c --- /dev/null +++ b/backend_theme_v14/views/users.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="utf-8" ?> +<odoo> + <record id="res_users_preferences" model="ir.ui.view"> + <field name="name">res.users.preferences</field> + <field name="model">res.users</field> + <field name="inherit_id" ref="base.view_users_form_simple_modif" /> + <field name="arch" type="xml"> + <xpath expr="//group[last()]" position="after"> + <group name="App Sidebar"> + <field name="sidebar_visible" readonly="0"/> + </group> + </xpath> + </field> + </record> +</odoo> |
