diff --git a/jazzy_backend_theme/README.rst b/jazzy_backend_theme/README.rst new file mode 100644 index 000000000..982eccd4d --- /dev/null +++ b/jazzy_backend_theme/README.rst @@ -0,0 +1,47 @@ +.. image:: https://img.shields.io/badge/license-LGPL--3-green.svg + :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 + +Jazzy Backend Theme +=================== +* Jazzy Backend Theme module for Odoo 18 community editions. This is a Minimalist and Elegant Backend Theme for Odoo 17. This theme will change your Old Experience to a New Experience with Odoo. + +Configuration +------------- + - www.odoo.com/documentation/18.0/setup/install.html + - Install our custom addon + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +General Public License, Version 3 (LGPL v3). +(https://www.gnu.org/licenses/lgpl-3.0-standalone.html) + +Credits +------- +Developer: (V17) Developer ADVAITH BG, Contact: odoo@cybrosys.com + (V18) Developer ATHIRA K, Contact: odoo@cybrosys.com +Contacts +-------- +* Mail Contact : odoo@cybrosys.com +* Website : https://cybrosys.com + +Bug Tracker +----------- +Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. + +Maintainer +-------- +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit https://www.cybrosys.com + +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com" + +Further information +----------------- +HTML Description: ``__ diff --git a/jazzy_backend_theme/__init__.py b/jazzy_backend_theme/__init__.py new file mode 100644 index 000000000..6eeac8379 --- /dev/null +++ b/jazzy_backend_theme/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import models diff --git a/jazzy_backend_theme/__manifest__.py b/jazzy_backend_theme/__manifest__.py new file mode 100644 index 000000000..ef7d99451 --- /dev/null +++ b/jazzy_backend_theme/__manifest__.py @@ -0,0 +1,58 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +{ + "name": "Jazzy Backend Theme", + "version": "18.0.1.0.0", + "category": "Themes/Backend", + "summary": "Jazzy backed Theme is an attractive theme for backend", + "description": """Minimalist and elegant backend theme for Odoo Backend""", + "author": "Cybrosys Techno Solutions", + "company": "Cybrosys Techno Solutions", + "maintainer": "Cybrosys Techno Solutions", + "website": "https://www.cybrosys.com", + "depends": ["web", "mail"], + "data": [ + 'views/layout_templates.xml', + 'views/res_config_settings_views.xml', + ], + 'assets': { + 'web.assets_backend': [ + 'jazzy_backend_theme/static/src/components/app_menu/side_menu.xml', + 'jazzy_backend_theme/static/src/layout/style/layout_colors.scss', + 'jazzy_backend_theme/static/src/components/app_menu/menu_order.css', + 'jazzy_backend_theme/static/src/layout/style/layout_style.scss', + 'jazzy_backend_theme/static/src/layout/style/sidebar.scss', + 'jazzy_backend_theme/static/src/components/app_menu/search_apps.js', + ], + 'web.assets_frontend': [ + 'jazzy_backend_theme/static/src/layout/style/login.scss' + ], + }, + 'images': [ + 'static/description/banner.jpg', + 'static/description/theme_screenshot.jpg', + ], + 'license': 'LGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/jazzy_backend_theme/doc/RELEASE_NOTES.md b/jazzy_backend_theme/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..854b921d3 --- /dev/null +++ b/jazzy_backend_theme/doc/RELEASE_NOTES.md @@ -0,0 +1,9 @@ +## Module + +#### 01.01.2025 + +#### Version 18.0.1.0.0 + +##### ADD + +- Initial commit for Jazzy Backend Theme diff --git a/jazzy_backend_theme/models/__init__.py b/jazzy_backend_theme/models/__init__.py new file mode 100644 index 000000000..33558f653 --- /dev/null +++ b/jazzy_backend_theme/models/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import res_company +from . import res_config_settings diff --git a/jazzy_backend_theme/models/res_company.py b/jazzy_backend_theme/models/res_company.py new file mode 100644 index 000000000..e8d909a2f --- /dev/null +++ b/jazzy_backend_theme/models/res_company.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import models, fields + + +class ResCompany(models.Model): + """Inherits the Res Company Model""" + _inherit = 'res.company' + + background_image = fields.Binary(string="Background Image", attachment=True, + help="Add Background image") diff --git a/jazzy_backend_theme/models/res_config_settings.py b/jazzy_backend_theme/models/res_config_settings.py new file mode 100644 index 000000000..995093a8d --- /dev/null +++ b/jazzy_backend_theme/models/res_config_settings.py @@ -0,0 +1,85 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import models, fields + + +class ResConfigSettings(models.TransientModel): + """Inherits the Configuration settings Model""" + _inherit = 'res.config.settings' + + theme_background = fields.Binary(string="App menu Background", + related='company_id.background_image', + readonly=False, + help="Add background image") + app_bar_color = fields.Char(string='Appbar color', + config_parameter='jazzy_backend_theme.' + 'appbar_color', + default='#000000', + help="App bar color") + primary_accent = fields.Char(string="Navbar color", + config_parameter='jazzy_backend_theme.' + 'primary_accent_color', + default='#004589', + help="Navbar color") + primary_hover = fields.Char(string="Hover Primary Color", + config_parameter='jazzy_backend_theme.' + 'primary_hover', + default='#00376E', + help="Hover primary color") + appbar_text = fields.Char(string="Home Menu Text Color", + config_parameter='jazzy_backend_theme.' + 'appbar_text', + default='#ffffff', + help="App bar text color") + secondary_hover = fields.Char(string="AppBar Hover", + config_parameter='jazzy_backend_theme.' + 'secondary_hover', + default='#F2F2F3', + help="Appbar hover") + kanban_bg_color = fields.Char(string="Kanban Bg Color", + config_parameter='jazzy_backend_theme.' + 'kanban_bg_color', + default='#F7F7F7', + help="Kanban view background color") + + def config_color_settings(self): + """Define the configuration color settings""" + colors = { + 'full_bg_img': self.env.user.company_id.background_image, + 'appbar_color': self.env[ 'ir.config_parameter'].sudo().get_param( + 'jazzy_backend_theme.appbar_color'), + 'primary_accent': self.env['ir.config_parameter'].sudo().get_param( + 'jazzy_backend_theme.primary_accent_color'), + 'secondary_color': self.env['ir.config_parameter'].sudo().get_param( + 'jazzy_backend_theme.secondary_color'), + 'kanban_bg_color': self.env['ir.config_parameter'].sudo().get_param( + 'jazzy_backend_theme.kanban_bg_color'), + 'primary_hover': self.env['ir.config_parameter'].sudo().get_param( + 'jazzy_backend_theme.primary_hover'), + 'light_hover': self.env['ir.config_parameter'].sudo().get_param( + 'jazzy_backend_theme.light_hover'), + 'appbar_text': self.env['ir.config_parameter'].sudo().get_param( + 'jazzy_backend_theme.appbar_text'), + 'secondary_hover': self.env['ir.config_parameter'].sudo().get_param( + 'jazzy_backend_theme.secondary_hover') + } + return colors diff --git a/jazzy_backend_theme/static/description/banner.jpg b/jazzy_backend_theme/static/description/banner.jpg new file mode 100644 index 000000000..583744f36 Binary files /dev/null and b/jazzy_backend_theme/static/description/banner.jpg differ diff --git a/jazzy_backend_theme/static/description/icon.png b/jazzy_backend_theme/static/description/icon.png new file mode 100644 index 000000000..f4e364c28 Binary files /dev/null and b/jazzy_backend_theme/static/description/icon.png differ diff --git a/jazzy_backend_theme/static/description/img/1.png b/jazzy_backend_theme/static/description/img/1.png new file mode 100644 index 000000000..9d182ed83 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/1.png differ diff --git a/jazzy_backend_theme/static/description/img/18/app_bar.png b/jazzy_backend_theme/static/description/img/18/app_bar.png new file mode 100644 index 000000000..9128cd64b Binary files /dev/null and b/jazzy_backend_theme/static/description/img/18/app_bar.png differ diff --git a/jazzy_backend_theme/static/description/img/18/desktop.gif b/jazzy_backend_theme/static/description/img/18/desktop.gif new file mode 100644 index 000000000..9294d7cba Binary files /dev/null and b/jazzy_backend_theme/static/description/img/18/desktop.gif differ diff --git a/jazzy_backend_theme/static/description/img/18/employe.jpg b/jazzy_backend_theme/static/description/img/18/employe.jpg new file mode 100644 index 000000000..c180290c5 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/18/employe.jpg differ diff --git a/jazzy_backend_theme/static/description/img/18/event.png b/jazzy_backend_theme/static/description/img/18/event.png new file mode 100644 index 000000000..e93986096 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/18/event.png differ diff --git a/jazzy_backend_theme/static/description/img/18/kanban.png b/jazzy_backend_theme/static/description/img/18/kanban.png new file mode 100644 index 000000000..0e00023fb Binary files /dev/null and b/jazzy_backend_theme/static/description/img/18/kanban.png differ diff --git a/jazzy_backend_theme/static/description/img/18/mobile_form.jpg b/jazzy_backend_theme/static/description/img/18/mobile_form.jpg new file mode 100644 index 000000000..e15724ad1 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/18/mobile_form.jpg differ diff --git a/jazzy_backend_theme/static/description/img/18/mobile_kanban01.jpg b/jazzy_backend_theme/static/description/img/18/mobile_kanban01.jpg new file mode 100644 index 000000000..1482b7b45 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/18/mobile_kanban01.jpg differ diff --git a/jazzy_backend_theme/static/description/img/18/mobile_lost.jpg b/jazzy_backend_theme/static/description/img/18/mobile_lost.jpg new file mode 100644 index 000000000..2d80cabc2 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/18/mobile_lost.jpg differ diff --git a/jazzy_backend_theme/static/description/img/18/mobile_search.jpg b/jazzy_backend_theme/static/description/img/18/mobile_search.jpg new file mode 100644 index 000000000..fefb3db2d Binary files /dev/null and b/jazzy_backend_theme/static/description/img/18/mobile_search.jpg differ diff --git a/jazzy_backend_theme/static/description/img/18/mobile_settings.jpg b/jazzy_backend_theme/static/description/img/18/mobile_settings.jpg new file mode 100644 index 000000000..e3f9606c6 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/18/mobile_settings.jpg differ diff --git a/jazzy_backend_theme/static/description/img/18/mobile_view.gif b/jazzy_backend_theme/static/description/img/18/mobile_view.gif new file mode 100644 index 000000000..7f7f3f0df Binary files /dev/null and b/jazzy_backend_theme/static/description/img/18/mobile_view.gif differ diff --git a/jazzy_backend_theme/static/description/img/18/responsive.jpg b/jazzy_backend_theme/static/description/img/18/responsive.jpg new file mode 100644 index 000000000..4f5533ba1 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/18/responsive.jpg differ diff --git a/jazzy_backend_theme/static/description/img/18/sale_kanban.png b/jazzy_backend_theme/static/description/img/18/sale_kanban.png new file mode 100644 index 000000000..f622e822f Binary files /dev/null and b/jazzy_backend_theme/static/description/img/18/sale_kanban.png differ diff --git a/jazzy_backend_theme/static/description/img/18/search.png b/jazzy_backend_theme/static/description/img/18/search.png new file mode 100644 index 000000000..d420cf284 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/18/search.png differ diff --git a/jazzy_backend_theme/static/description/img/2.png b/jazzy_backend_theme/static/description/img/2.png new file mode 100644 index 000000000..3eb73c76a Binary files /dev/null and b/jazzy_backend_theme/static/description/img/2.png differ diff --git a/jazzy_backend_theme/static/description/img/3.png b/jazzy_backend_theme/static/description/img/3.png new file mode 100644 index 000000000..164d35e78 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/3.png differ diff --git a/jazzy_backend_theme/static/description/img/3image.jpg b/jazzy_backend_theme/static/description/img/3image.jpg new file mode 100644 index 000000000..30cd5d766 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/3image.jpg differ diff --git a/jazzy_backend_theme/static/description/img/4.png b/jazzy_backend_theme/static/description/img/4.png new file mode 100644 index 000000000..277128050 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/4.png differ diff --git a/jazzy_backend_theme/static/description/img/5.png b/jazzy_backend_theme/static/description/img/5.png new file mode 100644 index 000000000..cca1fd531 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/5.png differ diff --git a/jazzy_backend_theme/static/description/img/6.png b/jazzy_backend_theme/static/description/img/6.png new file mode 100644 index 000000000..64329bdc4 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/6.png differ diff --git a/jazzy_backend_theme/static/description/img/7.png b/jazzy_backend_theme/static/description/img/7.png new file mode 100644 index 000000000..7acf13a38 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/7.png differ diff --git a/jazzy_backend_theme/static/description/img/8.png b/jazzy_backend_theme/static/description/img/8.png new file mode 100644 index 000000000..a414d04f7 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/8.png differ diff --git a/jazzy_backend_theme/static/description/img/app_bar.png b/jazzy_backend_theme/static/description/img/app_bar.png new file mode 100644 index 000000000..13169af76 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/app_bar.png differ diff --git a/jazzy_backend_theme/static/description/img/arrows-repeat.svg b/jazzy_backend_theme/static/description/img/arrows-repeat.svg new file mode 100644 index 000000000..94fb8f7f9 --- /dev/null +++ b/jazzy_backend_theme/static/description/img/arrows-repeat.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/jazzy_backend_theme/static/description/img/banner-bg-1.svg b/jazzy_backend_theme/static/description/img/banner-bg-1.svg new file mode 100644 index 000000000..7af9bab87 --- /dev/null +++ b/jazzy_backend_theme/static/description/img/banner-bg-1.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/jazzy_backend_theme/static/description/img/banner.png b/jazzy_backend_theme/static/description/img/banner.png new file mode 100644 index 000000000..76747bf7b Binary files /dev/null and b/jazzy_backend_theme/static/description/img/banner.png differ diff --git a/jazzy_backend_theme/static/description/img/banner.svg b/jazzy_backend_theme/static/description/img/banner.svg new file mode 100644 index 000000000..3d4ed7a4a --- /dev/null +++ b/jazzy_backend_theme/static/description/img/banner.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/jazzy_backend_theme/static/description/img/check.svg b/jazzy_backend_theme/static/description/img/check.svg new file mode 100644 index 000000000..8bc79333d --- /dev/null +++ b/jazzy_backend_theme/static/description/img/check.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/jazzy_backend_theme/static/description/img/custom_form_view.png b/jazzy_backend_theme/static/description/img/custom_form_view.png new file mode 100644 index 000000000..33ce846e3 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/custom_form_view.png differ diff --git a/jazzy_backend_theme/static/description/img/customizable_ui.png b/jazzy_backend_theme/static/description/img/customizable_ui.png new file mode 100644 index 000000000..93b65cded Binary files /dev/null and b/jazzy_backend_theme/static/description/img/customizable_ui.png differ diff --git a/jazzy_backend_theme/static/description/img/customization_settings.png b/jazzy_backend_theme/static/description/img/customization_settings.png new file mode 100644 index 000000000..f9d9dc3fc Binary files /dev/null and b/jazzy_backend_theme/static/description/img/customization_settings.png differ diff --git a/jazzy_backend_theme/static/description/img/feature-star.svg b/jazzy_backend_theme/static/description/img/feature-star.svg new file mode 100644 index 000000000..a913270e8 --- /dev/null +++ b/jazzy_backend_theme/static/description/img/feature-star.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/jazzy_backend_theme/static/description/img/gear.svg b/jazzy_backend_theme/static/description/img/gear.svg new file mode 100644 index 000000000..ce383059d --- /dev/null +++ b/jazzy_backend_theme/static/description/img/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/jazzy_backend_theme/static/description/img/hero.png b/jazzy_backend_theme/static/description/img/hero.png new file mode 100644 index 000000000..87e4b66e8 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/hero.png differ diff --git a/jazzy_backend_theme/static/description/img/hire-odoo.svg b/jazzy_backend_theme/static/description/img/hire-odoo.svg new file mode 100644 index 000000000..9cfec4e44 --- /dev/null +++ b/jazzy_backend_theme/static/description/img/hire-odoo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/jazzy_backend_theme/static/description/img/jazzy scrnsht/discuss.png b/jazzy_backend_theme/static/description/img/jazzy scrnsht/discuss.png new file mode 100644 index 000000000..13de707a2 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/jazzy scrnsht/discuss.png differ diff --git a/jazzy_backend_theme/static/description/img/jazzy scrnsht/error.png b/jazzy_backend_theme/static/description/img/jazzy scrnsht/error.png new file mode 100644 index 000000000..60a030396 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/jazzy scrnsht/error.png differ diff --git a/jazzy_backend_theme/static/description/img/jazzy scrnsht/form.png b/jazzy_backend_theme/static/description/img/jazzy scrnsht/form.png new file mode 100644 index 000000000..a622f6958 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/jazzy scrnsht/form.png differ diff --git a/jazzy_backend_theme/static/description/img/jazzy scrnsht/front.png b/jazzy_backend_theme/static/description/img/jazzy scrnsht/front.png new file mode 100644 index 000000000..ff91f0e0d Binary files /dev/null and b/jazzy_backend_theme/static/description/img/jazzy scrnsht/front.png differ diff --git a/jazzy_backend_theme/static/description/img/jazzy scrnsht/kanban.png b/jazzy_backend_theme/static/description/img/jazzy scrnsht/kanban.png new file mode 100644 index 000000000..1194ed90e Binary files /dev/null and b/jazzy_backend_theme/static/description/img/jazzy scrnsht/kanban.png differ diff --git a/jazzy_backend_theme/static/description/img/jazzy scrnsht/list.png b/jazzy_backend_theme/static/description/img/jazzy scrnsht/list.png new file mode 100644 index 000000000..82110bda7 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/jazzy scrnsht/list.png differ diff --git a/jazzy_backend_theme/static/description/img/jazzy scrnsht/products.png b/jazzy_backend_theme/static/description/img/jazzy scrnsht/products.png new file mode 100644 index 000000000..b0542d49e Binary files /dev/null and b/jazzy_backend_theme/static/description/img/jazzy scrnsht/products.png differ diff --git a/jazzy_backend_theme/static/description/img/jazzy scrnsht/search.png b/jazzy_backend_theme/static/description/img/jazzy scrnsht/search.png new file mode 100644 index 000000000..5f177a556 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/jazzy scrnsht/search.png differ diff --git a/jazzy_backend_theme/static/description/img/jazzy scrnsht/settings.png b/jazzy_backend_theme/static/description/img/jazzy scrnsht/settings.png new file mode 100644 index 000000000..1cc71c3a0 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/jazzy scrnsht/settings.png differ diff --git a/jazzy_backend_theme/static/description/img/kanban_view.png b/jazzy_backend_theme/static/description/img/kanban_view.png new file mode 100644 index 000000000..2c4d47fb7 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/kanban_view.png differ diff --git a/jazzy_backend_theme/static/description/img/life-ring-icon.svg b/jazzy_backend_theme/static/description/img/life-ring-icon.svg new file mode 100644 index 000000000..b6c797ba1 --- /dev/null +++ b/jazzy_backend_theme/static/description/img/life-ring-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/jazzy_backend_theme/static/description/img/odoo-consultancy.svg b/jazzy_backend_theme/static/description/img/odoo-consultancy.svg new file mode 100644 index 000000000..c2c27e608 --- /dev/null +++ b/jazzy_backend_theme/static/description/img/odoo-consultancy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/jazzy_backend_theme/static/description/img/odoo-licencing.svg b/jazzy_backend_theme/static/description/img/odoo-licencing.svg new file mode 100644 index 000000000..8a520b40f --- /dev/null +++ b/jazzy_backend_theme/static/description/img/odoo-licencing.svg @@ -0,0 +1,3 @@ + + + diff --git a/jazzy_backend_theme/static/description/img/patter.svg b/jazzy_backend_theme/static/description/img/patter.svg new file mode 100644 index 000000000..9b7b0d7cd --- /dev/null +++ b/jazzy_backend_theme/static/description/img/patter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/jazzy_backend_theme/static/description/img/puzzle-piece-icon.svg b/jazzy_backend_theme/static/description/img/puzzle-piece-icon.svg new file mode 100644 index 000000000..ab5e56fa7 --- /dev/null +++ b/jazzy_backend_theme/static/description/img/puzzle-piece-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/jazzy_backend_theme/static/description/img/responsive-backend-theme.png b/jazzy_backend_theme/static/description/img/responsive-backend-theme.png new file mode 100644 index 000000000..a804ac40b Binary files /dev/null and b/jazzy_backend_theme/static/description/img/responsive-backend-theme.png differ diff --git a/jazzy_backend_theme/static/description/img/screenshot-1.svg b/jazzy_backend_theme/static/description/img/screenshot-1.svg new file mode 100644 index 000000000..72eeb921b --- /dev/null +++ b/jazzy_backend_theme/static/description/img/screenshot-1.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/jazzy_backend_theme/static/description/img/screenshot-2.png b/jazzy_backend_theme/static/description/img/screenshot-2.png new file mode 100644 index 000000000..e13b876da Binary files /dev/null and b/jazzy_backend_theme/static/description/img/screenshot-2.png differ diff --git a/jazzy_backend_theme/static/description/img/screenshot-3.png b/jazzy_backend_theme/static/description/img/screenshot-3.png new file mode 100644 index 000000000..be1acdfd5 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/screenshot-3.png differ diff --git a/jazzy_backend_theme/static/description/img/screenshot-4.png b/jazzy_backend_theme/static/description/img/screenshot-4.png new file mode 100644 index 000000000..1d01e11fc Binary files /dev/null and b/jazzy_backend_theme/static/description/img/screenshot-4.png differ diff --git a/jazzy_backend_theme/static/description/img/screenshot-5.svg b/jazzy_backend_theme/static/description/img/screenshot-5.svg new file mode 100644 index 000000000..923e355bf --- /dev/null +++ b/jazzy_backend_theme/static/description/img/screenshot-5.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/jazzy_backend_theme/static/description/img/screenshot-img.png b/jazzy_backend_theme/static/description/img/screenshot-img.png new file mode 100644 index 000000000..a425d9ede Binary files /dev/null and b/jazzy_backend_theme/static/description/img/screenshot-img.png differ diff --git a/jazzy_backend_theme/static/description/img/screenshot-main.png b/jazzy_backend_theme/static/description/img/screenshot-main.png new file mode 100644 index 000000000..575f8e676 Binary files /dev/null and b/jazzy_backend_theme/static/description/img/screenshot-main.png differ diff --git a/jazzy_backend_theme/static/description/img/setting_search.png b/jazzy_backend_theme/static/description/img/setting_search.png new file mode 100644 index 000000000..02d4fdcde Binary files /dev/null and b/jazzy_backend_theme/static/description/img/setting_search.png differ diff --git a/jazzy_backend_theme/static/description/img/template.jpg b/jazzy_backend_theme/static/description/img/template.jpg new file mode 100644 index 000000000..1769d70dc Binary files /dev/null and b/jazzy_backend_theme/static/description/img/template.jpg differ diff --git a/jazzy_backend_theme/static/description/img/translate.svg b/jazzy_backend_theme/static/description/img/translate.svg new file mode 100644 index 000000000..eea729542 --- /dev/null +++ b/jazzy_backend_theme/static/description/img/translate.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/jazzy_backend_theme/static/description/img/wrench-icon.svg b/jazzy_backend_theme/static/description/img/wrench-icon.svg new file mode 100644 index 000000000..4e0ce1d01 --- /dev/null +++ b/jazzy_backend_theme/static/description/img/wrench-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/jazzy_backend_theme/static/description/index.html b/jazzy_backend_theme/static/description/index.html new file mode 100644 index 000000000..920f0a799 --- /dev/null +++ b/jazzy_backend_theme/static/description/index.html @@ -0,0 +1,780 @@ + + + + + + + app index + + + + + + + + + + +
+ + + +
+
+
+
+ +
+
+
+
+ +
+ Supports: +
+ Community +
+
+
+
+
+ Availability: +
+ Odoo Online +
+
+ Odoo.sh +
+
+ On Premise +
+
+
+
+
+
+ + + + +
+
+ +
+
+ + + + +
+
+
+
+
+

Our Features

+ +

info includes 300+ elements that you may need to create website without + external plugins.

+
+
+
+
+
+
+
+ +

Customising theme

+ +

Jazzy backend theme provides a fully configurable theme settings menu.

+
+ +
+
+
+
+
+ +

Smooth navigation

+ +

Easily accessible sidebar where it reveals the sidebar menu on just a click.

+
+ +
+
+
+
+
+ +

Highly responsive

+ +

Critical highlights of the Jazzy backend theme is that it was genuinely responsive.

+
+ + +
+
+
+
+
+ +

Elegant kanban view

+ +

Colorful & elegant kanban view.

+
+ +
+
+
+
+
+ +

Colourful form view

+ +

Fully modified and colorful form view.

+
+ +
+
+
+
+
+ +

Elegants in view

+ +

Elegant User Interface.

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

Theme Features

+
+
+
+
+ HIGHLIGHT +

App Bar

+

Easily accessible sidebar where it reveals the sidebar + menu on just a click. Moreover, its also fully + customisable with Jazzy backend theme.

+ +
+
+ Grid item +
+ +
+
+ +
+
+
+ HIGHLIGHT +

Kanban view

+

Jazzy Backend Theme gives a colorful + & elegant kanban view, and it's fully + customizable with this theme.

+ +
+
+ Grid item +
+ +
+
+
+ + + +
+
+
+
+ HIGHLIGHT +

Jazzy Backend Theme Settings

+

To improve your experience with Odoo the Jazzy + backend theme provides a fully configurable + theme settings menu.

+ +
+
+ Grid item +
+ +
+
+ +
+
+
+ HIGHLIGHT +

Custom Form view

+

Jazzy Backend theme provides a fully modified and + colorful form view with the full view experience.

+ +
+
+ Grid item +
+ +
+
+
+ + + + +
+
+
+
+ HIGHLIGHT +

Attractive Customizable User Interface

+

It provides fully attractive, + and an elegant User Interface which is + completely customizable.

+ +
+
+ Grid item +
+ +
+
+ +
+
+
+ HIGHLIGHT +

Advanced Searching for App Menus

+

Jazzy Backend Theme gives a more complex and + powerful search than standard search, providing search + options like enterprise edition.

+ +
+
+ Grid item +
+ +
+
+
+ + +
+
+
+
+ +
+ + +
+ + + + + + + +
+
+
+
+

+ Truly
+ Responsive +

+ +
+

One of the critical highlights of + the Hue backend theme is that + it was genuinely responsive; moreover, it provides + an efficient interface to manage a mobile device.

+
    +
  • Appealing card hover style
  • +
  • Detailed product filtering
  • +
  • Modernized mini basket
  • +
  • Cutting-edge single product
  • +
+
+
+
+
+
+
+ +
+ +
+
+
+
+ + + +
+
+
+
+
+ +
+ +
+
+
+
+

+ Stunning
+ Pages +

+ +
+

Jazzy Backend Theme V18 is an Attractive Theme for Your + Odoo 18. This Theme Will Improve + Your Experience With Odoo.

+
    +
  • Visually Stunning Design
  • +
  • Customizable Layouts
  • +
  • User-Friendly Navigation
  • +
+
+
+
+ +
+
+ + + + + + + + +
+ + + + + + + + \ No newline at end of file diff --git a/jazzy_backend_theme/static/description/theme_screenshot.jpg b/jazzy_backend_theme/static/description/theme_screenshot.jpg new file mode 100644 index 000000000..f35c3509c Binary files /dev/null and b/jazzy_backend_theme/static/description/theme_screenshot.jpg differ diff --git a/jazzy_backend_theme/static/src/components/app_menu/menu_order.css b/jazzy_backend_theme/static/src/components/app_menu/menu_order.css new file mode 100644 index 000000000..7aa8843c4 --- /dev/null +++ b/jazzy_backend_theme/static/src/components/app_menu/menu_order.css @@ -0,0 +1,254 @@ +@keyframes fadeIn{ + 0%{ + opacity: 0; + } + 100%{ + opacity: 1; + } +} +o_setting_search { + position: relative; +} +.o_setting_search .searchInput { + height: 28px; + padding: 0px; + border: 0px; + box-shadow: none; + font-weight: 500; +} +.o_setting_search .searchIcon { + color: gray('700'); +} +.o_kanban_renderer{ + background-color: var(--kanban-bg-color); +} +.oe_kanban_global_click{ + border-radius: 15px; +} + .search-container.has-results .search-input { + height: 3em; +} + .search-container.has-results .search-results { + height: calc(100% - 3em); + overflow: auto; + margin-top: 10px; +} + +.o_setting_search.col-md-10{ + padding: 20px; +} +.app-menu { + width: 100%; + display: flex; + flex-wrap: wrap; + padding-left: calc((100vw - 850px) / 2); + padding-right: calc((100vw - 850px) / 2); + +} +.o-menu-search-result.dropdown-item.col-12.ml-auto.mr-auto { + background-repeat: no-repeat; + background-size: contain; + padding-left: 5.5rem; +} +.form-control { + padding: 0 !important; +} +@media (max-width: 1371px){ + +} +@media (max-width:992px) { + +} +@media (max-width:400px) { + +} +.o_main_navbar .o_menu_brand { + text-decoration: none !important; + margin-left: 10px; +} +.o_navbar .o_main_navbar .dropdown-toggle .dropdown-menu .search-container { + padding-left: calc((100vw - 850px) / 2); + padding-right: calc((100vw - 850px) / 2); + padding-top:20px; + padding-bottom:20px; + display: table; +} +.o_apps_menu_opened .o_main_navbar .o_menu_brand{ + display:none; +} +.app_components { + position: absolute; + height: 100vh; + width: 100%; + background: #f5f5f5f0; + z-index: 99; + top: 40px; + display:none; + background: url("../../src/img/background.jpg"), linear-gradient(to bottom, #71639e, #b0adba); +} +.app-menu a{ + flex-basis: 19%; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + margin-bottom: 23px; +} +o_setting_search { + position: relative; +} +.o_setting_search .searchInput { + height: 28px; + padding: 0px; + border: 0px; + box-shadow: none; + font-weight: 500; +} +.o_setting_search .searchIcon { + color: gray('700'); +} + .search-container.has-results .search-input { + height: 3em; + display: table; +} + .search-container.has-results .search-results { + height: calc(100% - 3em); + overflow: auto; + margin-top: 10px; +} + +.o_setting_search.col-md-10{ + padding: 20px; +} +.app-menu { + width: 100%; + display: flex; + flex-wrap: wrap; + padding-left: calc((100vw - 850px) / 2); + padding-right: calc((100vw - 850px) / 2); + +} + +.o-menu-search-result.dropdown-item.col-12.ml-auto.mr-auto { + background-repeat: no-repeat; + background-size: contain; + padding-left: 3rem; +} +.form-control { + padding: 0 !important; +} +@media (max-width: 1371px){ + +} +@media (max-width:992px) { + +} +@media (max-width:400px) { + +} +.o_main_navbar .o_menu_brand { + text-decoration: none !important; + margin-left: 10px; +} +.o_navbar .o_main_navbar .dropdown-toggle .dropdown-menu .search-container { + padding-left: calc((100vw - 850px) / 2); + padding-right: calc((100vw - 850px) / 2); + padding-top:20px; + padding-bottom:20px; +} +.o_apps_menu_opened .o_main_navbar .o_menu_brand{ + display:none; +} +.app_components { + position: absolute; + height: 100vh; + width: 100%; + background: #f5f5f5f0; + z-index: 99; + top: 40px; + display:none; + background: url("../../img/background.jpg"), linear-gradient(to bottom, #71639e, #b0adba); +} +.app-menu a{ + flex-basis: 19%; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + margin-bottom: 23px; + cursor:pointer; +} +.app_components .search-input{ + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(0, 0, 0, 0.1); + border-radius: 4px; + width:100%; + background-color: rgba(255, 255, 255, 0.1); + margin-bottom:1rem; + text-shadow: 0 1px 0 rgb(0 0 0 / 50%); +} +.o_navbar .o_main_navbar .o_main-menu-button:hover{ + background:rgba(0, 0, 0, 0.08); + cursor: pointer; +} +@media (max-width: 850px) { + .app_components .search-input { + width:90%; + margin:0 auto; + } + .app-menu { + width:90%; + margin:0 auto; + } +} +@media (max-width: 444px) { + .app-menu{ + width:80%; + } + .app-menu a{ + flex-basis: 25%; + } +} + /* Container styling */ + .search-results { + border-radius: 8px; + padding: 20px; + } + + /* Unordered list styling */ + .search-results ul { + list-style-type: none; /* Remove default bullets */ + padding: 0; /* Remove default padding */ + margin: 0; /* Remove default margin */ + } + + /* List item styling */ + .search-results li { + margin-bottom: 10px; /* Space between items */ + border-radius: 5px; /* Rounded corners */ + padding: 15px; /* Inner padding */ + cursor: pointer; /* Pointer cursor on hover */ + transition: background 0.3s ease; /* Smooth background transition */ + } + + /* Text styling for menu name */ + .search-results li span { + font-size: 16px; + color: var(--app-menu-font-color) !important; + } +.o_main_navbar .o_menu_brand, .o_main_navbar .o_navbar_apps_menu .dropdown-toggle, .o_main_navbar .o_nav_entry, .o_main_navbar .dropdown-toggle:not(.o-dropdown-toggle-custo), .o_main_navbar .o_menu_toggle { + color: var(--app-menu-font-color) !important; +} +.o_main_navbar .o_menu_brand, .o_main_navbar .o_navbar_breadcrumbs, .o_main_navbar .o_navbar_breadcrumbs .btn { +color: var(--app-menu-font-color) !important; +} + /* Hover effect for each list item */ + .search-results li:hover { + background-color: #007bff; /* Change background color on hover */ + color: #fff; /* Change text color on hover */ + border-color: #007bff; /* Change border color on hover */ + } + + /* Hover effect for the text inside the list item */ + .search-results li:hover span { + color: #fff; /* Change text color on hover */ + } diff --git a/jazzy_backend_theme/static/src/components/app_menu/search_apps.js b/jazzy_backend_theme/static/src/components/app_menu/search_apps.js new file mode 100644 index 000000000..3df97043d --- /dev/null +++ b/jazzy_backend_theme/static/src/components/app_menu/search_apps.js @@ -0,0 +1,268 @@ +/** @odoo-module */ +import { NavBar } from "@web/webclient/navbar/navbar"; +import { registry } from "@web/core/registry"; +import { fuzzyLookup } from "@web/core/utils/search"; +import { computeAppsAndMenuItems } from "@web/webclient/menus/menu_helpers"; +import { useService } from "@web/core/utils/hooks"; +import { onMounted, useRef, useState} from "@odoo/owl"; +import { patch } from "@web/core/utils/patch"; + +patch(NavBar.prototype, { + // To modify the Navbar properties and functions. + setup() { + super.setup() + this._search_def = this.createDeferred(); + this.search_container = useRef("search-container"); + this.search_input = useRef("search-input"); + this.search_result = useRef("search-results"); + this.app_menu = useRef("app-menu"); + this.sidebar_panel = useRef("sidebar_panel"); + this.app_components = useRef("app_components"); + this.state = useState({...this.state, menus: [], searchQuery: ""}) + let { apps, menuItems } = computeAppsAndMenuItems(this.menuService.getMenuAsTree("root")); + this._apps = apps; + this._searchableMenus = menuItems; + this.fetch_data() + onMounted(() => { + this.setClass() + }) + }, + createDeferred() { + let deferred = {}; + + deferred.promise = new Promise((resolve, reject) => { + deferred.resolve = resolve; + deferred.reject = reject; + }); + + return deferred; +}, + async fetch_data() { + // To fetch colors from database. + this.orm = useService("orm") + var result = await this.orm.call("res.config.settings", "config_color_settings", [0]) + if (result.primary_accent !== false){ + document.documentElement.style.setProperty("--primary-accent",result.primary_accent) + } + if (result.appbar_color !== false){ + document.documentElement.style.setProperty("--app-bar-accent",result.appbar_color) + } + if (result.primary_hover !== false){ + document.documentElement.style.setProperty("--primary-hover",result.primary_hover) + } + if (result.full_bg_img !== false) { + var imageUrl = 'url(data:image/png;base64,' + result.full_bg_img + ')'; + var appComponentsDivs = document.getElementsByClassName('app_components'); + + for (var i = 0; i < appComponentsDivs.length; i++) { + appComponentsDivs[i].style.backgroundImage = imageUrl; + } + } + if (result.appbar_text !== false){ + document.documentElement.style.setProperty("--app-menu-font-color",result.appbar_text) + } + if (result.secondary_hover !== false){ + document.documentElement.style.setProperty("--secondary-hover",result.secondary_hover) + } + if (result.kanban_bg_color !== false) { + document.documentElement.style.setProperty("--kanban-bg-color", result.kanban_bg_color) + } + }, + setClass() { + // Set variable for html elements. + this.$search_container = this.search_container; + this.$search_input = this.search_input; + this.$search_results = this.search_result; + this.$app_menu = this.app_menu; + }, + _searchMenusSchedule() { + this.$search_results.el.classList.remove("o_hidden"); + this.$app_menu.el.classList.add("o_hidden"); + this._search_def = this.createDeferred(); + this._searchMenus(); + }, + _searchMenus() { + // App menu search function + var query = this.state.searchQuery; + if (query === "") { + this.$search_container.el.classList.remove("has-results"); + this.$search_results.el.classList.add("o_hidden") + this.$app_menu.el.classList.remove("o_hidden"); + return; + } + var results = []; + fuzzyLookup(query, this._apps, (menu) => menu.label) + .forEach((menu) => { + results.push({ + category: "apps", + name: menu.label, + actionID: menu.actionID, + id: menu.id, + webIconData: menu.webIconData, + }); + }); + fuzzyLookup(query, this._searchableMenus, (menu) => + (menu.parents + " / " + menu.label).split("/").reverse().join("/") + ).forEach((menu) => { + results.push({ + category: "menu_items", + name: menu.parents + " / " + menu.label, + actionID: menu.actionID, + id: menu.id, + }); + }); + this.state.menus = results + }, + get menus() { + return this.state.menus + }, + handleClick(menu) { + this.app_components.el.nextSibling.style.display = "block"; + this.app_components.el.style.display = "none"; + + this.sidebar_panel.el.style.display = "block"; + this.app_menu.el.classList.remove('o_hidden'); + + let children = this.app_components.el.parentElement.children; + let oNavbar = null; + + for (let i = 0; i < children.length; i++) { + if (children[i].classList.contains('o_navbar')) { + oNavbar = children[i]; + break; + } + } + + let navChild = oNavbar.children[0].children; + for (let i = 0; i < navChild.length; i++) { + if (navChild[i].classList.contains('o_menu_brand')) { + navChild[i].classList.remove('d-none'); + navChild[i].classList.add('d-block'); + } + if (navChild[i].classList.contains('o_menu_sections')) { + navChild[i].classList.remove('d-none'); + navChild[i].classList.add('d-block'); + } + } + + if (menu) { + this.menuService.selectMenu(menu) + .then(() => { + // Trigger page refresh after the menu is loaded + location.reload(); + }) + .catch(err => { + console.error('Menu navigation failed:', err); + }); + } + }, + OnClickMainMenu() { + // To show search screen + if (this.app_components.el.style.display === "" || this.app_components.el.style.display === "none" ) { + let children = this.app_components.el.parentElement.children; + let oNavbar = null; + for (let i = 0; i < children.length; i++) { + if (children[i].classList.contains('o_navbar')) { + oNavbar = children[i]; + break; + } + } + let navChild = oNavbar.children[0].children + for (let i = 0; i < navChild.length; i++) { + if (navChild[i].classList.contains('o_menu_brand')) { + navChild[i].classList.add('d-none') + } + if (navChild[i].classList.contains('o_menu_sections')) { + navChild[i].classList.add('d-none') + } + } + this.app_components.el.style.transition = "opacity 0.25s" + this.app_components.el.style.opacity="1" + this.app_components.el.style.display = "block" + this.app_components.el.nextSibling.style.display = "none" + this.sidebar_panel.el.style.display = "none" + } else { + this.app_components.el.style.transition = "opacity 0.05s"; + this.app_components.el.style.opacity = "0"; + setTimeout(() => { + this.app_components.el.style.display = "none"; + }, 50); + this.app_components.el.nextSibling.style.display = "block" + this.sidebar_panel.el.style.display = "block" + let children = this.app_components.el.parentElement.children; + let oNavbar = null; + for (let i = 0; i < children.length; i++) { + if (children[i].classList.contains('o_navbar')) { + oNavbar = children[i]; + break; + } + } + let navChild = oNavbar.children[0].children + for (let i = 0; i < navChild.length; i++) { + if (navChild[i].classList.contains('o_menu_brand')) { + navChild[i].classList.remove('d-none') + } + if (navChild[i].classList.contains('o_menu_sections')) { + navChild[i].classList.remove('d-none') + } + } + } + }, + onNavBarDropdownItemSelection(app) { + // To go to app menu + this.app_components.el.style.display = "none"; + this.app_components.el.nextSibling.style.display = "block" + this.sidebar_panel.el.style.display = "block" + let children = this.app_components.el.parentElement.children; + let oNavbar = null; + for (let i = 0; i < children.length; i++) { + if (children[i].classList.contains('o_navbar')) { + oNavbar = children[i]; + break; + } + } + let navChild = oNavbar.children[0].children + for (let i = 0; i < navChild.length; i++) { + if (navChild[i].classList.contains('o_menu_brand')) { + navChild[i].classList.add('d-flex') + navChild[i].classList.remove('d-none') + } + if (navChild[i].classList.contains('o_menu_sections')) { + navChild[i].classList.add('d-flex') + navChild[i].classList.remove('d-none') + } + } + if (app) { + this.menuService.selectMenu(app); + + } + }, + refreshNavBar() { + // Find the navbar element + let children = this.app_components.el.parentElement.children; + let oNavbar = null; + + // Locate the navbar component + for (let i = 0; i < children.length; i++) { + if (children[i].classList.contains('o_navbar')) { + oNavbar = children[i]; + break; + } + } + + if (oNavbar) { + let navChild = oNavbar.children[0].children; + // Ensure the navbar sections are displayed correctly + for (let i = 0; i < navChild.length; i++) { + if (navChild[i].classList.contains('o_menu_brand')) { + navChild[i].classList.remove('d-none'); + navChild[i].classList.add('d-block'); + } + if (navChild[i].classList.contains('o_menu_sections')) { + navChild[i].classList.remove('d-none'); + navChild[i].classList.add('d-block'); + } + } + } + } +}) diff --git a/jazzy_backend_theme/static/src/components/app_menu/side_menu.xml b/jazzy_backend_theme/static/src/components/app_menu/side_menu.xml new file mode 100644 index 000000000..d88f00e80 --- /dev/null +++ b/jazzy_backend_theme/static/src/components/app_menu/side_menu.xml @@ -0,0 +1,120 @@ + + + + +
+ +
+
+
+ + + +
+
+
+
+
+
+ +
+
+ +
+
+
+
    + +
  • + +
  • +
    + +
+ +
+
+
+ + + + + + + +
+
+
+
+ + + + + + + + + + + + +
diff --git a/jazzy_backend_theme/static/src/img/background.jpg b/jazzy_backend_theme/static/src/img/background.jpg new file mode 100644 index 000000000..d1a36628f Binary files /dev/null and b/jazzy_backend_theme/static/src/img/background.jpg differ diff --git a/jazzy_backend_theme/static/src/layout/style/color.css b/jazzy_backend_theme/static/src/layout/style/color.css new file mode 100644 index 000000000..fc8743df0 --- /dev/null +++ b/jazzy_backend_theme/static/src/layout/style/color.css @@ -0,0 +1,14 @@ +:root{ + --primary_accent: black !default; + --secondary_accent: #ffffff !default; + --inverse_accent: #ffffff !default; + --kanban-bg-color:#f7f7f7; + --o-kanban-color-border-width: 8px; + --selected_row: #ffffff !default; + --bg_white: #ffffff !default; + --f_color: #555b6d !default; + --color_white : #ffffff !default; + --primary_hover: #00376e !default; + --light_hover: #d5d5d5; + --fullscreen-bg-color: #C5F0FC !important; +} diff --git a/jazzy_backend_theme/static/src/layout/style/layout_colors.scss b/jazzy_backend_theme/static/src/layout/style/layout_colors.scss new file mode 100644 index 000000000..6e62a901e --- /dev/null +++ b/jazzy_backend_theme/static/src/layout/style/layout_colors.scss @@ -0,0 +1,30 @@ +$primary_accent: var(--primary-accent) !important; +$secondary_accent: var(--secondary-accent) !important; +$inverse_accent: var(--inverse-accent) !important; +$kanban-bg-color:var(--kanban-bg-color) !important; +$o-kanban-color-border-width: var(--o-kanban-color-border-width) !important; +$selected_row: var(--selected-row) !important; +$bg_white: var(--bg-white) !important; +$f_color: var(--f-color) !important; +$color_white : var(--color-white) !important; +$primary_hover: var(--primary-hover) !important; +$light_hover: var(--light-hover) !important; +$fullscreen-bg-color: var(--fullscreen-bg-color) !important; + +:root{ + --primary-accent: #004589 ; + --primary-accent-border: #ffffff; + --app-bar-accent: #ffffff; + --full-screen-bg: url(/jazzy_backend_theme/static/src/img/background.jpg) ; + --kanban-bg-color:#f7f7f7; + --o-kanban-color-border-width: 8px !important; + --selected-row: #ffffff !important; + --app-menu-font-color:#ffffff; + --bg-white: #ffffff !important; + --f-color: #555b6d !important; + --color-white : #ffffff !important; + --primary-hover: #00376e; + --light-hover: #d5d5d5 ; + --secondary-hover:#ffffff; + --fullscreen-bg-color: #C5F0FC !important; +} diff --git a/jazzy_backend_theme/static/src/layout/style/layout_style.scss b/jazzy_backend_theme/static/src/layout/style/layout_style.scss new file mode 100644 index 000000000..329625fcb --- /dev/null +++ b/jazzy_backend_theme/static/src/layout/style/layout_style.scss @@ -0,0 +1,506 @@ +.bg-primary{ + background-color: var(--primary-accent) !important; +} +.o_field_widget.o_field_many2one .o_external_button { + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + flex: 0 0 auto; + padding-left:1%; + padding-right:0.5%; + margin-left: 2px; + font-size: 19px; + color: #7C7BAD; + border: none; +} +.app_bar .app_container a:hover{ + background:var(--secondary-hover) !important; +} +.fullscreen-menu{ + height: calc(100vh - 46px); + background: var(--full-screen-bg); + background-size: cover; + background-repeat: no-repeat; + min-width: 100%; + overflow-y: auto !important; + overflow-x: hidden !important; + margin-top: 0; + position: fixed; + top: 46px; + left: -1px; + padding: 2.5rem 0; +} +.a_app_menu_title{ + color: var(--app-menu-font-color) !important; +} +.o_main_navbar{ + background-color:var(--primary-accent) !important; + border-bottom: 1px solid var(--primary-hover) !important; +} +.dropdown-toggle { + &:hover{ + background: var(--primary-hover) !important; + } +} +.o-menu-search-result.dropdown-item.col-12.ml-auto.mr-auto { + + background-repeat: no-repeat; + background-size: 23px; + padding-left: 40px; + margin-bottom: 5px; + +} +//Top bar + +//Icon color +.o_searchview .o_searchview_facet .o_searchview_facet_label { + background-color: var(--primary-accent) !important; +} +.btn-secondary { + color: #fff !important; + background-color: var(--primary-accent) !important; + border-color: var(--primary-accent) !important; + margin:0 5px 0 0; + &:hover{ + background-color: var(--primary-hover) !important; + } +} +.btn-outline-primary { + border-color: var(--primary-hover); + color: var(--primary-hover); +} +.btn-outline-primary:hover { + color: #fff; + background-color: var(--primary-hover); + border-color: var(--primary-hover); +} +.o_searchview { + background-color: var(--bg-white) !important; + border: 1px solid #ccc; + border-radius: 10px; + padding: 1px 25px 3px 5px; +} +.o_searchview .o_searchview_input_container { + display: flex; + flex-flow: row wrap; + position: relative; + border-radius: 10px; +} +.o_searchview .o_searchview_input_container .o_searchview_facet { + display: flex; + -webkit-box-flex: 0; + flex: 0 0 auto; + margin: 1px 3px 0 0; + max-width: 100%; + border-radius: 10px; + position: relative; +} +.o_searchview .o_searchview_facet .o_facet_values{ + border-radius: 10px !important; + background-color: #e2e2e0 !important; +} +.o_searchview .o_searchview_input_container .o_searchview_facet .o_searchview_facet_label { + align-items: center; + color: var(--bg-white) !important; + -webkit-box-flex: 0; + flex: 0 0 auto; + padding: 0 3px; + border-radius: 10px; + display: flex; + max-width: 100%; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + vertical-align: top; +} +// Module icon +.oe_module_icon { + width: 70px; + max-height: 70px; + max-width: 23%; + float: left; + border-radius: 10px; +} +.o_base_settings .o_setting_container .settings_tab .selected{ + background-color: var(--primary-hover); +} +.app_bar .app_container .scroll_container .app_items_wrapper .app_items{ + background-color:var(--app-bar-accent); +} +.app_bar .app_container .scroll_container .app_items_wrapper .app_items .o-app-icon { + width: 32px; + height: 32px; + border-radius: 5px; +} +// Photo +.o_kanban_view .o_kanban_record.o_kanban_record_has_image_fill .o_kanban_image_fill_left { + margin-top: -8px; + margin-bottom: -8px; + margin-left: -8px; + border-radius: 10px; +} +// Drowpdowm +.o-dropdown.dropup > .o-dropdown--menu, .o-dropdown.dropdown > .o-dropdown--menu, .o-dropdown.dropleft > .o-dropdown--menu, .o-dropdown.dropright > .o-dropdown--menu { + left: auto; + right: auto; + margin-left: 0; + margin-right: 0; + border-radius: 10px; +} +// Kanban +.o_kanban_view.o_kanban_grouped .o_kanban_record, .o_kanban_view.o_kanban_grouped .o_kanban_quick_create { + width: 100%; + margin-left: 0; + margin-right: 0; + border-radius: 10px; +} +.o_form_view .oe_button_box .btn.oe_stat_button { + color: var(--primary-accent) !important; + height: 44px; + padding: 0 6px 0 0 !important; + text-align: left; + white-space: nowrap; + background-color: transparent; + opacity: 0.8; + border-radius: 0px; + margin-bottom: 0; +} +.o_dashboards .o_website_dashboard div.o_box { + color: rgba(73, 80, 87, 0.76); + background-color: white; + background-size: cover; + margin-top: 16px; + position: static; + box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.3); + border-radius: 10px; +} +// Button +.custom-control-input:checked ~ .custom-control-label::before { + color: #fff; + border-color: var(--primary-accent) !important; + background-color: var(--primary-accent) !important; +} +// Current date calender +.o_calendar_view .o_calendar_widget .fc-timeGridDay-view .fc-widget-header.fc-today, .o_calendar_view .o_calendar_widget .fc-timeGridWeek-view .fc-widget-header.fc-today { + border-radius: 25px; + background: var(--primary-accent) !important; + color: var(--bg-white) !important; +} +// Tabs Start +.nav-tabs .nav-link.active, .nav-tabs .nav-item.show .nav-link { + border: none; + border-bottom: solid; + font-weight: bold; + background: var(--primary-accent) !important; + color: var(--bg-white) !important; + border-radius: 5px,50px,5px,50px; +} +// Website +.o_dashboards .o_website_dashboard .o_dashboard_common .o_inner_box { + padding-top: 10px; + text-align: center; + border: 1px solid var(--bg-white) !important; + height: 80px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + cursor: pointer; + color: var(--color-white) !important; + background-color: var(--primary-accent) !important; + border-radius:10px; + &:hover{ + background-color: var(--primary-hover) !important; + } +} +.o_purchase_dashboard .table > thead > tr > td.o_main, .o_purchase_dashboard .table tbody > tr > td.o_main { + background-color: var(--primary-accent) !important; + border-radius:10px; +} +.dropdown-menu.show { + display: block; + border-radius: 0; +} +.o_mail_preview .o_mail_preview_image.o_mail_preview_app > img { + border-radius: 10px; +} +// Graph +.o_calendar_view .fc-view .fc-event.o_calendar_color_3:not(.o_calendar_hatched):not(.o_calendar_striked) { + background: var(--primary-hover) !important; + border-radius: 10px; +} +//Event +.text-center { + text-align: center !important; + border-radius: 10px; +} +// Form control icons +.o_form_view .oe_button_box .oe_stat_button .o_button_icon { + color: var(--primary-accent) !important; +} +// Small icons +.o_search_panel .o_search_panel_category .o_search_panel_section_icon { + color: var(--primary-accent) !important; +} +.badge-primary { + color: var(--color-white) !important; + background-color: var(--primary-accent) !important; +} +// Wizard +.modal.o_technical_modal .modal-content { + border-radius: 10px; +} +// Navbar +.nav-container{ + height: auto !important; + background: transparent !important; + float: none !important; + padding: 0 !important; + width: 850px !important; + margin: 0 auto !important; +} +.o_nav_entry{ + &:hover{ + background-color: var(--primary-hover) !important; + } +} + .app-menu{ + width: 100%; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + margin: 0 auto; + margin-right: 70px; + +} +//Responsive +.o_MobileMessagingNavbar_tab.o-active{ + color: var(--primary-accent) !important; +} +@media (max-width: 768px){ + .app-menu{ + width: 100%; + display: grid; + grid-template-columns: 1fr 1fr 1fr; + justify-content: flex-start; + margin: 0 auto; + } + .o_cp_bottom{ + flex-wrap: wrap !important; + } + .o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.disabled { + + margin-right: 10px; + } + .o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.disabled:not(.btn-primary), .o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.disabled:not(.btn-primary):hover, .o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.disabled:not(.btn-primary):focus + { + margin-left:10px; + } + .o_form_view .o_form_statusbar > .o_field_widget { + margin-left: -24px !important; + margin-top: 1px !important; + } + .o_form_view .o_form_statusbar{ + flex-direction: column !important; + padding-left: 0px !important; + } +} +@media (min-width: 768px){ + .o_form_view .o_form_sheet_bg > .o_form_sheet { + border-radius: 10px; + } + .search-container{ + width: 750px; + margin: 0 auto; + } +} +@media (max-width:767px){ + .o_form_view .o_group{ + width:100% !important; + } + .dropdown-menu.show { + display: block; + border-radius:0; + } + .o_control_panel .breadcrumb > li { + display: inline-block; + max-width: 100%; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + vertical-align: top; + } + .o_control_panel .o_cp_top_right { + min-height: 30px; + max-width: 100%; + margin-left: 10%; + } + .o_form_view .o_form_sheet_bg > .o_form_sheet { + min-width: 100%; + max-width: 100%; + min-height: 100%; + border: 1px solid #c8c8d3; + box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15); + background: white; + margin: 4.8px auto; + padding: 24px; + padding-right: 16px; + padding-left: 16px; + } + .oe_topbar_name{ + display:none; + } + .nav-container { + position: relative; + width: 100vw !important; + display: flex; + align-items: start; + margin-top: 2rem; + } + .o_cp_top{ + flex-wrap: wrap !important; + } + .o_cp_top_left, .o_cp_searchview{ + width: 100%; + } + .o_cp_top_right{ + width: 100%; + margin: 1.5rem auto; + margin-left: 0 !important; + } + //Search Panel + .o_content o_controller_with_searchpanel, .o_controller_with_searchpanel{ + display:flex !important; + flex-direction: column !important; + } + .o_search_panel{ + display: flex; + overflow-x: auto; + overflow-y: auto; + height: 200px; + width: 100%; + section{ + margin-right: 1rem; + } + } + .o_search_panel section { + width: 100% !important; + } + .o_setting_container{ + display: flex; + flex-direction: column; + } + .settings_tab{ + display: flex; + flex-direction: row !important; + overflow-x: auto; + height: 40px; + } + .settings{ + margin-top: 1.5rem; + } +} +@media (max-width:524px){ + .o_control_panel .o_cp_bottom_right > .o_cp_pager + { + margin-top:5px; + } + div.app-menu *::before{ + box-sizing:none; + } + div.app-menu *::after{ + box-sizing:none; + } +} +@media (max-width:493px){ + .o_control_panel .o_cp_bottom_left > .o_cp_action_menus { + margin-left: 0px; + padding-right: 10px; + } +} +// V17 Fixes +@media (min-width:1096px){ + .app_components .search-input { + width:725px !important; + } +} +@media (max-width:768px){ + .app_components .search-input { + margin-left: 60px !important; + } + .search-container.has-results .search-results { + margin-left: 60px !important; + } + .o_field_statusbar > .o_statusbar_status { + width: 314px !important; + } + .o_form_view .o_cp_buttons { + overflow: auto !important; + } +} +.o_main_navbar .o_menu_sections .o_nav_entry, .o_main_navbar .o_menu_sections .dropdown-toggle { + background: var(--primary-accent) !important; +} +.btn-primary { + background: var(--primary-accent) !important; + color: white !important; +} +.btn-primary:hover { + background: var(--primary-hover) !important; +} +.o_statusbar_status .o_arrow_button.btn-secondary { + margin: 0px !important; + color: var(--primary-accent) !important; + background-color: white !important; +} +.o_statusbar_status .o_arrow_button.btn-secondary.o_arrow_button_current { + color: white !important; + background-color: var(--primary-accent) !important; + font-family: inherit !important; +} +.o_statusbar_status .o_arrow_button.btn-secondary::after { + border-left-color: white !important; +} +.o_statusbar_status .o_arrow_button.btn-secondary.o_arrow_button_current::after { + border-left-color: var(--primary-accent) !important; +} +.o_statusbar_status .o_arrow_button.btn-secondary::before { + border-left-color: var(--primary-accent) !important; +} +.search-results a{ + color: white !important; + cursor: pointer !important; +} +.app_components { + background-repeat: no-repeat !important; + background-size: cover !important; +} +.nav-link, o_form_view .o_form_uri, .o_form_view .o_form_uri > span:first-child { + color: var(--primary-accent) !important; +} + +.form-check-input:checked { + background-color: var(--primary-accent) !important; + border-color: var(--primary-accent) !important; +} +a, .btn { + color: var(--primary-accent); + +} +.btn:hover { + color: var(--primary-hover); + background-color: var(--primary-accent); +} +.text-bg-primary { + background-color: var(--primary-accent) !important; +} +.btn-info { + color: white !important; +} +.dropdown-toggle:hover { + color: white !important; +} +.o_searchview_icon { + margin-left: 8px; +} +.text-action { + color: var(--primary-accent) !important; +} diff --git a/jazzy_backend_theme/static/src/layout/style/login.scss b/jazzy_backend_theme/static/src/layout/style/login.scss new file mode 100644 index 000000000..b1b808958 --- /dev/null +++ b/jazzy_backend_theme/static/src/layout/style/login.scss @@ -0,0 +1,156 @@ +#wrapwrap > main { + background: #f8f8fb; +} +.navbar { + background: #fff !important; +} + +body { + font-family: 'Poppins', sans-serif !important; +} +body.bg-100 { + background-color: #000000 !important; +} +.card.o_database_list { + align-items: center; + max-width: 450px !important +} +.card.o_database_list .card-body { + background-color: #fff !important; + border-radius: 5px !important; + -webkit-box-shadow: 0 0.75rem 1.5rem rgba(18,38,63,.03) !important; + box-shadow: 0 0.75rem 1.5rem rgba(18,38,63, .03) !important; +} +.o_main_navbar .o_menu_sections { + flex-wrap: w +} +a { + color: #556ee6; + text-decoration: none; +} +a:hover { + color: #4458b8; + text-decoration: underline; +} +.alert-info { + color: #306391; + background-color: #dcedfc; + border-color: #cbe4fb; +} +.oe_login_form button.btn-link { + color: #495057; + font-weight: 500; + font-size: 14px !important; +} +.oe_login_form button.btn-link:hover { + color: #171a1c; +} +// Login button starts +.btn-primary { + color: #fff; + background-color: #556ee6; + border-color: #556ee6; +} +.btn-primary:hover { + color: #fff; + background-color: #485ec4; + border-color: #4458b8; +} +.btn-outline-primary { + border-color: #556ee6; + color: #556ee6; +} +.btn-outline-primary:hover { + color: #fff; + background-color: #556ee6; + border-color: #556ee6; +} +.btn-check:active+.btn-primary, +.btn-check:checked+.btn-primary, +.btn-primary.active,.btn-primary:active, +.show>.btn-primary.dropdown-toggle { + color: #fff; + background-color: #4458b8 !important; + border-color: #4053ad !important; +} +.btn-check:focus+.btn-primary, .btn-primary:focus { + color: #fff; + background-color: #485ec4 !important; + border-color: #4458b8 !important; + -webkit-box-shadow: 0 0 0 .15rem rgba(111,132,234,.5) !important; + box-shadow: 0 0 0 .15rem rgba(111,132,234,.5) !important; +} +.oe_login_form .btn { + display: inline-block; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + padding: .47rem .75rem; + border-radius: .25rem; + -webkit-transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out; + transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out; + transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out; + transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out; +} +.btn-secondary { + color: #fff !important; + background-color: #74788d !important; + border-color: #74788d !important; +} +.btn-secondary:hover { + color: #fff !important; + background-color: #636678 !important; + border-color: #5d6071 !important; +} +.btn-secondary:active { + color: #fff; + background-color: #5d6071 !important; + border-color: #575a6a !important; +} +.btn-secondary i,.btn-secondary span { + color: #fff !important; +} +.btn-fill-secondary:focus, .btn-secondary:focus, .btn-fill-secondary.focus, .focus.btn-secondary { + box-shadow: none !important; +} +// Login button ends + +// Input starts +.oe_login_form input { + display: block; + width: 100%; + height: 40px !important; + padding: 10px 20px; + font-size: 13px; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da !important; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border-radius: .25rem; + -webkit-transition: border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out; + transition: border-color .15s ease-in-out,-webkit-box-shadow .15s ease-in-out; + transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out; + transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out; + box-shadow: none !important; + margin-bottom:10px !important; +} +form label { + font-weight: 400 !important; +} +.oe_login_form a.btn.btn-secondary { + height: 40px; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0.35rem 0.75rem; +} +.oe_login_form a.btn.btn-secondary i.fa.fa-database { + margin-left: 5px; +} diff --git a/jazzy_backend_theme/static/src/layout/style/sidebar.scss b/jazzy_backend_theme/static/src/layout/style/sidebar.scss new file mode 100644 index 000000000..300433bb9 --- /dev/null +++ b/jazzy_backend_theme/static/src/layout/style/sidebar.scss @@ -0,0 +1,61 @@ +#sidebar_panel { + height: calc(100% - 0%); + position: fixed; + background-color: var(--app-bar-accent); + width: 50px; + overflow-y: scroll; + -ms-overflow-style: none; /* Hide scrollbar for IE and Edge */ + scrollbar-width: none; /* Hide scrollbar for Firefox */ + z-index: 999; +} +#sidebar_panel::-webkit-scrollbar { + display: none; /* Hide scrollbar for Chrome, Safari and Opera */ +} +.sidebar_panel .sidebar { + padding: 0; + white-space: nowrap; + padding-bottom: 20px; + padding-top: 5px; +} +.sidebar_panel .sidebar .sidebar_menu { + list-style: none; + margin: 0; + padding: 0; +} +.sidebar_panel .sidebar .sidebar_menu li { + margin: 0; + padding: 0; + border: 0px; + display: block; +} +.dropdown-item{ + padding: 10px 10px 10px 10px; +} +.o_main_navbar .o_menu_brand { + text-decoration: none !important; + margin-left: 10px; +} +.sidebar_panel .sidebar .sidebar_menu li a { + margin: 0; + border: 0px; + display: block; + cursor: pointer; + overflow: hidden; + color: #ffffff; + font-size: 13px; + transition:.3s all; +} +.sidebar_panel .sidebar .sidebar_menu li:hover a { + background: var(--secondary-hover) !important; + color: #fff; +} +.sidebar_panel .sidebar .sidebar_menu li a .sidebar_img { + width: 30px; + border-radius:5px; +} +html .o_web_client > .o_action_manager{ + margin-left:50px; +} +.sidebar_panel .sidebar .sidebar_menu li .nav-link { + padding:10px 10px 10px 10px; +} diff --git a/jazzy_backend_theme/views/layout_templates.xml b/jazzy_backend_theme/views/layout_templates.xml new file mode 100644 index 000000000..7c5cc4ecb --- /dev/null +++ b/jazzy_backend_theme/views/layout_templates.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/jazzy_backend_theme/views/res_config_settings_views.xml b/jazzy_backend_theme/views/res_config_settings_views.xml new file mode 100644 index 000000000..5f0ea932c --- /dev/null +++ b/jazzy_backend_theme/views/res_config_settings_views.xml @@ -0,0 +1,47 @@ + + + + res.config.settings.view.form.inherit.jazzy.backend.theme + res.config.settings + + + + + + +
+ Background Image + +
+
+ App Bar Background Color + +
+
+ App Menu Text Color + +
+
+ AppBar Hover Color + +
+
+ +
+ Navbar Background Color + +
+
+ Primary Button Hover + +
+
+ Kanban Background Color + +
+
+
+
+
+
+