diff --git a/vista_backend_theme/README.rst b/vista_backend_theme/README.rst new file mode 100755 index 000000000..e279286f5 --- /dev/null +++ b/vista_backend_theme/README.rst @@ -0,0 +1,49 @@ +.. 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 + +Vista Backend Theme +=================== +* Vista Backend Theme module for Odoo 18 community editions + +License +------- +General Public License, Version 3 (LGPL v3). +(https://www.odoo.com/documentation/user/17.0/legal/licenses/licenses.html) + +Configuration +============= +- www.odoo.com/documentation/18.0/setup/install.html +- Install our custom addon + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Author : Nihala KP + Anfas Faisal K + + Contact: odoo@cybrosys.com + +Contacts +-------- +* Mail Contact : odoo@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 +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com + +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit `Our Website `__ + +Further information +=================== +HTML Description: ``__ \ No newline at end of file diff --git a/vista_backend_theme/__init__.py b/vista_backend_theme/__init__.py new file mode 100644 index 000000000..ea4b31a6a --- /dev/null +++ b/vista_backend_theme/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-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 .hooks import test_pre_init_hook, test_post_init_hook +from . import wizard diff --git a/vista_backend_theme/__manifest__.py b/vista_backend_theme/__manifest__.py new file mode 100644 index 000000000..f917ba5f4 --- /dev/null +++ b/vista_backend_theme/__manifest__.py @@ -0,0 +1,65 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-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": "Vista Backend Theme", + "version": "18.0.1.0.0", + "category": "Themes/Backend", + "summary": "Vista Backend Theme is an attractive theme for backend", + "description": """Minimalist and elegant backend theme for Odoo 17, + Backend Theme, Theme""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + "depends": ['web', 'mail', 'base'], + "data": [ + 'security/ir.model.access.csv', + 'views/icons_views.xml', + 'views/layout_templates.xml', + 'views/theme_data_views.xml', + 'views/assets_views.xml', + 'data/theme_data.xml', + ], + 'assets': { + 'web.assets_backend': { + '/vista_backend_theme/static/src/scss/theme.scss', + '/vista_backend_theme/static/src/xml/systray_templates.xml', + '/vista_backend_theme/static/src/xml/top_bar_templates.xml', + '/vista_backend_theme/static/src/js/systray.js', + '/vista_backend_theme/static/src/js/chrome/sidebar_menu.js', + }, + 'web.assets_frontend': { + '/vista_backend_theme/static/src/scss/login.scss', + '/vista_backend_theme/static/src/scss/login.scss', + }, + }, + 'images': [ + 'static/description/banner.jpg', + 'static/description/theme_screenshot.jpg', + ], + 'license': 'LGPL-3', + 'pre_init_hook': 'test_pre_init_hook', + 'post_init_hook': 'test_post_init_hook', + 'installable': True, + 'auto_install': False, + 'application': False +} diff --git a/vista_backend_theme/data/theme_data.xml b/vista_backend_theme/data/theme_data.xml new file mode 100644 index 000000000..b981cf55b --- /dev/null +++ b/vista_backend_theme/data/theme_data.xml @@ -0,0 +1,9 @@ + + + + + + default + + + diff --git a/vista_backend_theme/doc/RELEASE_NOTES.md b/vista_backend_theme/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..acc6be454 --- /dev/null +++ b/vista_backend_theme/doc/RELEASE_NOTES.md @@ -0,0 +1,8 @@ +## Module + +#### 16.10.2024 + +#### Version 18.0.1.0.0 +#### ADD +- Initial commit for Vista Backend Theme + diff --git a/vista_backend_theme/hooks.py b/vista_backend_theme/hooks.py new file mode 100644 index 000000000..269215b1d --- /dev/null +++ b/vista_backend_theme/hooks.py @@ -0,0 +1,407 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-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 . +# +############################################################################# +import base64 +from odoo.modules import get_module_resource + + +def test_pre_init_hook(cr): + """pre init hook""" + menu_item = cr['ir.ui.menu'].search([('parent_id', '=', False)]) + for menu in menu_item: + if menu.name == 'Contacts': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'contacts.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Link Tracker': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'link-tracker.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Dashboards': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'dashboards.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Sales': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'sales.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Invoicing': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'accounting.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Inventory': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'inventory.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Purchase': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'purchase.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Calendar': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'calendar.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'CRM': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'crm.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Note' or menu.name == 'Notes': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'notes.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Website': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'website.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Point of Sale': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'pos.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Manufacturing': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'manufacturing.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Repairs': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'repairs.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Email Marketing': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'email-marketing.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'SMS Marketing': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'sms-marketing.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Project': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'project.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Surveys': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'surveys.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Employees': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'employee.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Recruitment': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'recruitment.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Attendances': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'attendance.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Time Off': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'timeoff.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Expenses': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'Expenses.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Maintenance': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'maintenance.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Live Chat': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'live-chat.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Lunch': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'lunch.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Fleet': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'fleet.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Timesheets': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'timesheet.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Events': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'events.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'eLearning': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'elearning.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Members': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'members.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + + +def test_post_init_hook(cr): + """post init hook""" + menu_item = cr['ir.ui.menu'].search([('parent_id', '=', False)]) + for menu in menu_item: + if menu.name == 'Contacts': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'contacts.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Link Tracker': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'link-tracker.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Dashboards': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'dashboards.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Sales': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'sales.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Invoicing' or menu.name == 'Accounting': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'accounting.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Inventory': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'inventory.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Purchase': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'purchase.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Calendar': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'calendar.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'CRM': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'crm.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Note': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'notes.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Website': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'website.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Point of Sale': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'pos.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Manufacturing': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'manufacturing.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Repairs': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'repairs.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Email Marketing': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'email-marketing.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'SMS Marketing': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'sms-marketing.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Project': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'project.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Surveys': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'surveys.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Employees': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'employee.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Recruitment': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'recruitment.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Attendances': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'attendance.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Time Off': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'timeoff.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Expenses': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'Expenses.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Maintenance': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'maintenance.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Live Chat': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'live-chat.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Lunch': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'lunch.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Fleet': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'fleet.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Timesheets': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'timesheet.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Events': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'events.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'eLearning': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'elearning.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Members': + img_path = get_module_resource( + 'vista_backend_theme', 'static', 'src', 'img', 'icons', + 'members.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) diff --git a/vista_backend_theme/security/ir.model.access.csv b/vista_backend_theme/security/ir.model.access.csv new file mode 100644 index 000000000..e458c034c --- /dev/null +++ b/vista_backend_theme/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_theme_data_user,access.theme.data.user,model_theme_data,,1,1,1,1 diff --git a/vista_backend_theme/static/description/banner.jpg b/vista_backend_theme/static/description/banner.jpg new file mode 100644 index 000000000..a1446cbec Binary files /dev/null and b/vista_backend_theme/static/description/banner.jpg differ diff --git a/vista_backend_theme/static/description/icon.png b/vista_backend_theme/static/description/icon.png new file mode 100644 index 000000000..301f62092 Binary files /dev/null and b/vista_backend_theme/static/description/icon.png differ diff --git a/vista_backend_theme/static/description/img/1.png b/vista_backend_theme/static/description/img/1.png new file mode 100644 index 000000000..eb78c211e Binary files /dev/null and b/vista_backend_theme/static/description/img/1.png differ diff --git a/vista_backend_theme/static/description/img/10.png b/vista_backend_theme/static/description/img/10.png new file mode 100644 index 000000000..a3d0eee5e Binary files /dev/null and b/vista_backend_theme/static/description/img/10.png differ diff --git a/vista_backend_theme/static/description/img/2.png b/vista_backend_theme/static/description/img/2.png new file mode 100644 index 000000000..310873420 Binary files /dev/null and b/vista_backend_theme/static/description/img/2.png differ diff --git a/vista_backend_theme/static/description/img/3.png b/vista_backend_theme/static/description/img/3.png new file mode 100644 index 000000000..b819123b6 Binary files /dev/null and b/vista_backend_theme/static/description/img/3.png differ diff --git a/vista_backend_theme/static/description/img/4.png b/vista_backend_theme/static/description/img/4.png new file mode 100644 index 000000000..de3f964c1 Binary files /dev/null and b/vista_backend_theme/static/description/img/4.png differ diff --git a/vista_backend_theme/static/description/img/5.png b/vista_backend_theme/static/description/img/5.png new file mode 100644 index 000000000..835f96ea8 Binary files /dev/null and b/vista_backend_theme/static/description/img/5.png differ diff --git a/vista_backend_theme/static/description/img/6.png b/vista_backend_theme/static/description/img/6.png new file mode 100644 index 000000000..17fd8e71b Binary files /dev/null and b/vista_backend_theme/static/description/img/6.png differ diff --git a/vista_backend_theme/static/description/img/7.png b/vista_backend_theme/static/description/img/7.png new file mode 100644 index 000000000..4b74dc73c Binary files /dev/null and b/vista_backend_theme/static/description/img/7.png differ diff --git a/vista_backend_theme/static/description/img/8.png b/vista_backend_theme/static/description/img/8.png new file mode 100644 index 000000000..bbf380363 Binary files /dev/null and b/vista_backend_theme/static/description/img/8.png differ diff --git a/vista_backend_theme/static/description/img/9.png b/vista_backend_theme/static/description/img/9.png new file mode 100644 index 000000000..6558eeba9 Binary files /dev/null and b/vista_backend_theme/static/description/img/9.png differ diff --git a/vista_backend_theme/static/description/img/V-18-GIF.gif b/vista_backend_theme/static/description/img/V-18-GIF.gif new file mode 100644 index 000000000..c1be84d03 Binary files /dev/null and b/vista_backend_theme/static/description/img/V-18-GIF.gif differ diff --git a/vista_backend_theme/static/description/img/arrows-repeat.svg b/vista_backend_theme/static/description/img/arrows-repeat.svg new file mode 100644 index 000000000..94fb8f7f9 --- /dev/null +++ b/vista_backend_theme/static/description/img/arrows-repeat.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/vista_backend_theme/static/description/img/banner-bg-1.svg b/vista_backend_theme/static/description/img/banner-bg-1.svg new file mode 100644 index 000000000..7af9bab87 --- /dev/null +++ b/vista_backend_theme/static/description/img/banner-bg-1.svg @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vista_backend_theme/static/description/img/banner.svg b/vista_backend_theme/static/description/img/banner.svg new file mode 100644 index 000000000..3d4ed7a4a --- /dev/null +++ b/vista_backend_theme/static/description/img/banner.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vista_backend_theme/static/description/img/check.svg b/vista_backend_theme/static/description/img/check.svg new file mode 100644 index 000000000..8bc79333d --- /dev/null +++ b/vista_backend_theme/static/description/img/check.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/vista_backend_theme/static/description/img/feature-star.svg b/vista_backend_theme/static/description/img/feature-star.svg new file mode 100644 index 000000000..a913270e8 --- /dev/null +++ b/vista_backend_theme/static/description/img/feature-star.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/vista_backend_theme/static/description/img/gear.svg b/vista_backend_theme/static/description/img/gear.svg new file mode 100644 index 000000000..ce383059d --- /dev/null +++ b/vista_backend_theme/static/description/img/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/vista_backend_theme/static/description/img/hire-odoo.svg b/vista_backend_theme/static/description/img/hire-odoo.svg new file mode 100644 index 000000000..9cfec4e44 --- /dev/null +++ b/vista_backend_theme/static/description/img/hire-odoo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/vista_backend_theme/static/description/img/kanban_view.png b/vista_backend_theme/static/description/img/kanban_view.png new file mode 100644 index 000000000..0c48fe314 Binary files /dev/null and b/vista_backend_theme/static/description/img/kanban_view.png differ diff --git a/vista_backend_theme/static/description/img/life-ring-icon.svg b/vista_backend_theme/static/description/img/life-ring-icon.svg new file mode 100644 index 000000000..b6c797ba1 --- /dev/null +++ b/vista_backend_theme/static/description/img/life-ring-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/vista_backend_theme/static/description/img/odoo-consultancy.svg b/vista_backend_theme/static/description/img/odoo-consultancy.svg new file mode 100644 index 000000000..c2c27e608 --- /dev/null +++ b/vista_backend_theme/static/description/img/odoo-consultancy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/vista_backend_theme/static/description/img/odoo-licencing.svg b/vista_backend_theme/static/description/img/odoo-licencing.svg new file mode 100644 index 000000000..8a520b40f --- /dev/null +++ b/vista_backend_theme/static/description/img/odoo-licencing.svg @@ -0,0 +1,3 @@ + + + diff --git a/vista_backend_theme/static/description/img/patter.svg b/vista_backend_theme/static/description/img/patter.svg new file mode 100644 index 000000000..9b7b0d7cd --- /dev/null +++ b/vista_backend_theme/static/description/img/patter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/vista_backend_theme/static/description/img/puzzle-piece-icon.svg b/vista_backend_theme/static/description/img/puzzle-piece-icon.svg new file mode 100644 index 000000000..ab5e56fa7 --- /dev/null +++ b/vista_backend_theme/static/description/img/puzzle-piece-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/vista_backend_theme/static/description/img/response_2.png b/vista_backend_theme/static/description/img/response_2.png new file mode 100644 index 000000000..fb594f442 Binary files /dev/null and b/vista_backend_theme/static/description/img/response_2.png differ diff --git a/vista_backend_theme/static/description/img/responseive_1.png b/vista_backend_theme/static/description/img/responseive_1.png new file mode 100644 index 000000000..5c66419df Binary files /dev/null and b/vista_backend_theme/static/description/img/responseive_1.png differ diff --git a/vista_backend_theme/static/description/img/responsive-backend-theme.png b/vista_backend_theme/static/description/img/responsive-backend-theme.png new file mode 100644 index 000000000..658ba9748 Binary files /dev/null and b/vista_backend_theme/static/description/img/responsive-backend-theme.png differ diff --git a/vista_backend_theme/static/description/img/screenshot-1.svg b/vista_backend_theme/static/description/img/screenshot-1.svg new file mode 100644 index 000000000..72eeb921b --- /dev/null +++ b/vista_backend_theme/static/description/img/screenshot-1.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vista_backend_theme/static/description/img/screenshot-2.png b/vista_backend_theme/static/description/img/screenshot-2.png new file mode 100644 index 000000000..e13b876da Binary files /dev/null and b/vista_backend_theme/static/description/img/screenshot-2.png differ diff --git a/vista_backend_theme/static/description/img/screenshot-3.png b/vista_backend_theme/static/description/img/screenshot-3.png new file mode 100644 index 000000000..be1acdfd5 Binary files /dev/null and b/vista_backend_theme/static/description/img/screenshot-3.png differ diff --git a/vista_backend_theme/static/description/img/screenshot-4.png b/vista_backend_theme/static/description/img/screenshot-4.png new file mode 100644 index 000000000..1d01e11fc Binary files /dev/null and b/vista_backend_theme/static/description/img/screenshot-4.png differ diff --git a/vista_backend_theme/static/description/img/screenshot-5.svg b/vista_backend_theme/static/description/img/screenshot-5.svg new file mode 100644 index 000000000..923e355bf --- /dev/null +++ b/vista_backend_theme/static/description/img/screenshot-5.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/vista_backend_theme/static/description/img/screenshot-img.png b/vista_backend_theme/static/description/img/screenshot-img.png new file mode 100644 index 000000000..a425d9ede Binary files /dev/null and b/vista_backend_theme/static/description/img/screenshot-img.png differ diff --git a/vista_backend_theme/static/description/img/screenshot-main.png b/vista_backend_theme/static/description/img/screenshot-main.png new file mode 100644 index 000000000..575f8e676 Binary files /dev/null and b/vista_backend_theme/static/description/img/screenshot-main.png differ diff --git a/vista_backend_theme/static/description/img/thumbnail-image.jpg b/vista_backend_theme/static/description/img/thumbnail-image.jpg new file mode 100644 index 000000000..a1446cbec Binary files /dev/null and b/vista_backend_theme/static/description/img/thumbnail-image.jpg differ diff --git a/vista_backend_theme/static/description/img/translate.svg b/vista_backend_theme/static/description/img/translate.svg new file mode 100644 index 000000000..eea729542 --- /dev/null +++ b/vista_backend_theme/static/description/img/translate.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/vista_backend_theme/static/description/img/wrench-icon.svg b/vista_backend_theme/static/description/img/wrench-icon.svg new file mode 100644 index 000000000..4e0ce1d01 --- /dev/null +++ b/vista_backend_theme/static/description/img/wrench-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/vista_backend_theme/static/description/index.html b/vista_backend_theme/static/description/index.html new file mode 100644 index 000000000..02a08eac1 --- /dev/null +++ b/vista_backend_theme/static/description/index.html @@ -0,0 +1,1001 @@ + + + + + + + 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.

+
+
+
+
+ +
+ +
+
+ +
+
+ +
+ +
+ +
+
+
+
+ + +
+
+
+ +
+
+
+
+
+ Change the Color of the Theme by Clicking the Icon: + +

Customize your Vista Backend Theme effortlessly. Simply click on the color icon to start changing the appearance.

+ + +
+ +
+
+
+ Select Your Preferred Color: + +

Choose from a range of colors to personalize the look of your theme. The intuitive dropdown allows for easy selection and instant updates.

+ +
+ +
+
+ +
+ Green Theme Example: + +

Experience a fresh, clean interface with the Green Theme option, providing a smooth and pleasing user experience.

+
+ +
+
+
+ Black Theme Example: + +

Experience a fresh, clean interface with the Black Theme option, providing a smooth and pleasing user experience..

+ +
+ +
+
+
+
+ + +
+
+
+
+
+
+
+ HIGHLIGHT +

Minimal, Colorful Login Screen

+

A sleek and vibrant login screen designed for a seamless and visually appealing user experience.

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

Discuss

+

A reimagined Discuss page with an enhanced and modern interface.

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

Responsive Layout

+

A fully responsive design that adapts to different devices, ensuring easy management and access from desktops, tablets, and mobile phones.

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

Modified App Drawer

+

An updated app drawer designed to improve navigation across multiple applications with a streamlined and intuitive layout.

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

Tree View

+

A streamlined Tree View featuring a clean and organized layout with modernized font styles for improved readability.

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

Custom Form view

+

An enhanced Form View with a sleek design and updated fonts, offering a clean and intuitive interface for better user interaction.

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

+ Fully Responsive
+ Layout. +

+ +
+

Now take advantage of everything your dashboard has to offer even on the go. Our + design are now fully responsive, enabling you to view and manage everything from the comfort of your + mobile device.

+
    +
  • Fully responsive
  • +
  • Fly-out hamburger menu on the left
  • +
  • Fits perfectly to all screen sizes
  • + +
+
+
+
+
+
+
+ +
+ +
+
+
+
+ + + +
+
+
+
+
+ +
+ +
+
+
+
+

+ Kanban View
+ Layout +

+ +
+

The Vista Backend Theme V18 provides a fully enhanced Kanban View and Kanban Group View. With its section-wise separated stages, the theme delivers an aesthetically pleasing and well-organized design, ensuring your content tiles stand out. It offers a clean, modern layout with a refreshed color scheme and customized fonts.

+
    +
  • Stages are Separated in View
  • +
  • New Color Combination
  • +
  • Modified Font
  • +
  • Clean Layout
  • +
  • Buttons with New Colors
  • +
  • Full Screen View
  • +
+
+
+
+ +
+
+ +
+
+
+
+

+ List View
+ Layout +

+ +
+

Vista Backend Theme V18 Gives You The Fully Modified List View. This Table Design Gives You More Beauty for Your Odoo Backend. It will Give You a Clean Layout with the New Color Combination and a Modified Font.

+
    +
  • List View
  • +
  • Stages are Separated in View
  • +
  • New Color Combination
  • +
  • Modified Font
  • +
  • Clean Layout
  • +
  • Buttons with New Colors
  • +
  • Full Screen View
  • +
+
+
+
+
+
+
+ +
+ +
+
+
+
+ + +
+
+
+
+
+ +
+ +
+
+
+
+

+ Form View
+ Layout +

+ +
+

The Vista Backend Theme V18 provides a fully enhanced Kanban View and Kanban Group View. Its section-wise separated stages offer a smooth and intuitive experience, giving your content tiles a standout, refined design. The theme ensures a clean, modern layout with a fresh color combination and customized fonts, making the overall interface visually appealing and easy to navigate.

+
    +
  • Modified Form Style
  • +
  • Full Screen Form View
  • +
  • New Chatter Style Under Form View
  • +
  • New Looks for Tabs
  • +
  • New Looks for Status Button
  • +
+
+
+
+ +
+
+ + + + + + + + + +
+ + + + + + + + \ No newline at end of file diff --git a/vista_backend_theme/static/description/theme_screenshot.jpg b/vista_backend_theme/static/description/theme_screenshot.jpg new file mode 100644 index 000000000..80981f56d Binary files /dev/null and b/vista_backend_theme/static/description/theme_screenshot.jpg differ diff --git a/vista_backend_theme/static/src/img/icons/accounting.png b/vista_backend_theme/static/src/img/icons/accounting.png new file mode 100644 index 000000000..f496ce70f Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/accounting.png differ diff --git a/vista_backend_theme/static/src/img/icons/apps.png b/vista_backend_theme/static/src/img/icons/apps.png new file mode 100644 index 000000000..ee8031f23 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/apps.png differ diff --git a/vista_backend_theme/static/src/img/icons/attendance.png b/vista_backend_theme/static/src/img/icons/attendance.png new file mode 100644 index 000000000..86c84cd98 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/attendance.png differ diff --git a/vista_backend_theme/static/src/img/icons/bell.png b/vista_backend_theme/static/src/img/icons/bell.png new file mode 100644 index 000000000..77caa55c1 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/bell.png differ diff --git a/vista_backend_theme/static/src/img/icons/calendar.png b/vista_backend_theme/static/src/img/icons/calendar.png new file mode 100644 index 000000000..e07d78c63 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/calendar.png differ diff --git a/vista_backend_theme/static/src/img/icons/close.png b/vista_backend_theme/static/src/img/icons/close.png new file mode 100644 index 000000000..c6ea25feb Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/close.png differ diff --git a/vista_backend_theme/static/src/img/icons/contacts.png b/vista_backend_theme/static/src/img/icons/contacts.png new file mode 100644 index 000000000..8582a80b5 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/contacts.png differ diff --git a/vista_backend_theme/static/src/img/icons/crm.png b/vista_backend_theme/static/src/img/icons/crm.png new file mode 100644 index 000000000..cb305553f Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/crm.png differ diff --git a/vista_backend_theme/static/src/img/icons/dashboards.png b/vista_backend_theme/static/src/img/icons/dashboards.png new file mode 100644 index 000000000..12c0769c1 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/dashboards.png differ diff --git a/vista_backend_theme/static/src/img/icons/discuss.png b/vista_backend_theme/static/src/img/icons/discuss.png new file mode 100644 index 000000000..8dac1f03f Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/discuss.png differ diff --git a/vista_backend_theme/static/src/img/icons/documents.png b/vista_backend_theme/static/src/img/icons/documents.png new file mode 100644 index 000000000..e91468498 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/documents.png differ diff --git a/vista_backend_theme/static/src/img/icons/dots-menu-green.png b/vista_backend_theme/static/src/img/icons/dots-menu-green.png new file mode 100644 index 000000000..c64e64052 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/dots-menu-green.png differ diff --git a/vista_backend_theme/static/src/img/icons/dots-menu-navy.png b/vista_backend_theme/static/src/img/icons/dots-menu-navy.png new file mode 100644 index 000000000..8c97a4260 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/dots-menu-navy.png differ diff --git a/vista_backend_theme/static/src/img/icons/dots-menu-primary.png b/vista_backend_theme/static/src/img/icons/dots-menu-primary.png new file mode 100644 index 000000000..527574d68 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/dots-menu-primary.png differ diff --git a/vista_backend_theme/static/src/img/icons/dots-menu.png b/vista_backend_theme/static/src/img/icons/dots-menu.png new file mode 100644 index 000000000..6188bc222 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/dots-menu.png differ diff --git a/vista_backend_theme/static/src/img/icons/dots-menu2.png b/vista_backend_theme/static/src/img/icons/dots-menu2.png new file mode 100644 index 000000000..ebee2b806 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/dots-menu2.png differ diff --git a/vista_backend_theme/static/src/img/icons/elearning.png b/vista_backend_theme/static/src/img/icons/elearning.png new file mode 100644 index 000000000..986fb0476 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/elearning.png differ diff --git a/vista_backend_theme/static/src/img/icons/email-marketing.png b/vista_backend_theme/static/src/img/icons/email-marketing.png new file mode 100644 index 000000000..12addfd36 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/email-marketing.png differ diff --git a/vista_backend_theme/static/src/img/icons/employee.png b/vista_backend_theme/static/src/img/icons/employee.png new file mode 100644 index 000000000..6532a0234 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/employee.png differ diff --git a/vista_backend_theme/static/src/img/icons/events.png b/vista_backend_theme/static/src/img/icons/events.png new file mode 100644 index 000000000..df607fa4c Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/events.png differ diff --git a/vista_backend_theme/static/src/img/icons/expenses.png b/vista_backend_theme/static/src/img/icons/expenses.png new file mode 100644 index 000000000..8df588343 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/expenses.png differ diff --git a/vista_backend_theme/static/src/img/icons/fleet.png b/vista_backend_theme/static/src/img/icons/fleet.png new file mode 100644 index 000000000..a03b1fce7 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/fleet.png differ diff --git a/vista_backend_theme/static/src/img/icons/inventory.png b/vista_backend_theme/static/src/img/icons/inventory.png new file mode 100644 index 000000000..b4bb3f4b0 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/inventory.png differ diff --git a/vista_backend_theme/static/src/img/icons/link-tracker.png b/vista_backend_theme/static/src/img/icons/link-tracker.png new file mode 100644 index 000000000..052f14003 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/link-tracker.png differ diff --git a/vista_backend_theme/static/src/img/icons/live-chat.png b/vista_backend_theme/static/src/img/icons/live-chat.png new file mode 100644 index 000000000..348899bbf Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/live-chat.png differ diff --git a/vista_backend_theme/static/src/img/icons/lunch.png b/vista_backend_theme/static/src/img/icons/lunch.png new file mode 100644 index 000000000..60873c82d Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/lunch.png differ diff --git a/vista_backend_theme/static/src/img/icons/maintenance.png b/vista_backend_theme/static/src/img/icons/maintenance.png new file mode 100644 index 000000000..1710d8009 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/maintenance.png differ diff --git a/vista_backend_theme/static/src/img/icons/manufacturing.png b/vista_backend_theme/static/src/img/icons/manufacturing.png new file mode 100644 index 000000000..c5069247c Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/manufacturing.png differ diff --git a/vista_backend_theme/static/src/img/icons/members.png b/vista_backend_theme/static/src/img/icons/members.png new file mode 100644 index 000000000..ce004aaba Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/members.png differ diff --git a/vista_backend_theme/static/src/img/icons/notes.png b/vista_backend_theme/static/src/img/icons/notes.png new file mode 100644 index 000000000..5da39fd85 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/notes.png differ diff --git a/vista_backend_theme/static/src/img/icons/planning.png b/vista_backend_theme/static/src/img/icons/planning.png new file mode 100644 index 000000000..5423a12ba Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/planning.png differ diff --git a/vista_backend_theme/static/src/img/icons/pos.png b/vista_backend_theme/static/src/img/icons/pos.png new file mode 100644 index 000000000..54eb5b20b Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/pos.png differ diff --git a/vista_backend_theme/static/src/img/icons/project.png b/vista_backend_theme/static/src/img/icons/project.png new file mode 100644 index 000000000..fa5381513 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/project.png differ diff --git a/vista_backend_theme/static/src/img/icons/purchase.png b/vista_backend_theme/static/src/img/icons/purchase.png new file mode 100644 index 000000000..653ae082e Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/purchase.png differ diff --git a/vista_backend_theme/static/src/img/icons/recruitment.png b/vista_backend_theme/static/src/img/icons/recruitment.png new file mode 100644 index 000000000..ca680ed5e Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/recruitment.png differ diff --git a/vista_backend_theme/static/src/img/icons/repairs.png b/vista_backend_theme/static/src/img/icons/repairs.png new file mode 100644 index 000000000..09b4a5932 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/repairs.png differ diff --git a/vista_backend_theme/static/src/img/icons/sales.png b/vista_backend_theme/static/src/img/icons/sales.png new file mode 100644 index 000000000..33551fdbb Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/sales.png differ diff --git a/vista_backend_theme/static/src/img/icons/services.png b/vista_backend_theme/static/src/img/icons/services.png new file mode 100644 index 000000000..22e478fa4 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/services.png differ diff --git a/vista_backend_theme/static/src/img/icons/settinga.png b/vista_backend_theme/static/src/img/icons/settinga.png new file mode 100644 index 000000000..a458f8e54 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/settinga.png differ diff --git a/vista_backend_theme/static/src/img/icons/sms-marketing.png b/vista_backend_theme/static/src/img/icons/sms-marketing.png new file mode 100644 index 000000000..ef1307d09 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/sms-marketing.png differ diff --git a/vista_backend_theme/static/src/img/icons/speech-bubble.png b/vista_backend_theme/static/src/img/icons/speech-bubble.png new file mode 100644 index 000000000..c00880fb6 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/speech-bubble.png differ diff --git a/vista_backend_theme/static/src/img/icons/surveys.png b/vista_backend_theme/static/src/img/icons/surveys.png new file mode 100644 index 000000000..1d6ac9827 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/surveys.png differ diff --git a/vista_backend_theme/static/src/img/icons/timeoff.png b/vista_backend_theme/static/src/img/icons/timeoff.png new file mode 100644 index 000000000..3f00454b8 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/timeoff.png differ diff --git a/vista_backend_theme/static/src/img/icons/timesheet.png b/vista_backend_theme/static/src/img/icons/timesheet.png new file mode 100644 index 000000000..afca506a1 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/timesheet.png differ diff --git a/vista_backend_theme/static/src/img/icons/website.png b/vista_backend_theme/static/src/img/icons/website.png new file mode 100644 index 000000000..bbbf0aa8e Binary files /dev/null and b/vista_backend_theme/static/src/img/icons/website.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/accounting.png b/vista_backend_theme/static/src/img/icons_green/accounting.png new file mode 100644 index 000000000..81c046ed8 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/accounting.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/apps.png b/vista_backend_theme/static/src/img/icons_green/apps.png new file mode 100644 index 000000000..ab8864a21 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/apps.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/attendance.png b/vista_backend_theme/static/src/img/icons_green/attendance.png new file mode 100644 index 000000000..9ba39c8b8 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/attendance.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/bell.png b/vista_backend_theme/static/src/img/icons_green/bell.png new file mode 100644 index 000000000..08c167f32 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/bell.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/calendar.png b/vista_backend_theme/static/src/img/icons_green/calendar.png new file mode 100644 index 000000000..06643f6f1 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/calendar.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/contacts.png b/vista_backend_theme/static/src/img/icons_green/contacts.png new file mode 100644 index 000000000..56a350882 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/contacts.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/crm.png b/vista_backend_theme/static/src/img/icons_green/crm.png new file mode 100644 index 000000000..a67d78ea5 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/crm.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/dashboards.png b/vista_backend_theme/static/src/img/icons_green/dashboards.png new file mode 100644 index 000000000..7b157cd01 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/dashboards.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/discuss.png b/vista_backend_theme/static/src/img/icons_green/discuss.png new file mode 100644 index 000000000..77dc5147a Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/discuss.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/documents.png b/vista_backend_theme/static/src/img/icons_green/documents.png new file mode 100644 index 000000000..66332beb2 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/documents.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/elearning.png b/vista_backend_theme/static/src/img/icons_green/elearning.png new file mode 100644 index 000000000..3ecf3e472 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/elearning.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/email-marketing.png b/vista_backend_theme/static/src/img/icons_green/email-marketing.png new file mode 100644 index 000000000..e2d9f8f0a Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/email-marketing.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/employee.png b/vista_backend_theme/static/src/img/icons_green/employee.png new file mode 100644 index 000000000..f111b0b72 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/employee.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/events.png b/vista_backend_theme/static/src/img/icons_green/events.png new file mode 100644 index 000000000..f6adc69f4 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/events.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/expenses.png b/vista_backend_theme/static/src/img/icons_green/expenses.png new file mode 100644 index 000000000..55bea20ac Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/expenses.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/fleet.png b/vista_backend_theme/static/src/img/icons_green/fleet.png new file mode 100644 index 000000000..f29df0b12 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/fleet.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/inventory.png b/vista_backend_theme/static/src/img/icons_green/inventory.png new file mode 100644 index 000000000..009661827 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/inventory.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/link-tracker.png b/vista_backend_theme/static/src/img/icons_green/link-tracker.png new file mode 100644 index 000000000..02d1b1549 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/link-tracker.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/live-chat.png b/vista_backend_theme/static/src/img/icons_green/live-chat.png new file mode 100644 index 000000000..f87b80f78 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/live-chat.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/lunch.png b/vista_backend_theme/static/src/img/icons_green/lunch.png new file mode 100644 index 000000000..2bee60d5d Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/lunch.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/maintenance.png b/vista_backend_theme/static/src/img/icons_green/maintenance.png new file mode 100644 index 000000000..691e3308c Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/maintenance.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/manufacturing.png b/vista_backend_theme/static/src/img/icons_green/manufacturing.png new file mode 100644 index 000000000..c3ad49956 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/manufacturing.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/members.png b/vista_backend_theme/static/src/img/icons_green/members.png new file mode 100644 index 000000000..4178f04cb Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/members.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/notes.png b/vista_backend_theme/static/src/img/icons_green/notes.png new file mode 100644 index 000000000..7d766c072 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/notes.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/planning.png b/vista_backend_theme/static/src/img/icons_green/planning.png new file mode 100644 index 000000000..6c57ea8b3 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/planning.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/pos.png b/vista_backend_theme/static/src/img/icons_green/pos.png new file mode 100644 index 000000000..904187a40 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/pos.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/project.png b/vista_backend_theme/static/src/img/icons_green/project.png new file mode 100644 index 000000000..ecf627a3d Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/project.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/purchase.png b/vista_backend_theme/static/src/img/icons_green/purchase.png new file mode 100644 index 000000000..4635eec5f Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/purchase.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/recruitment.png b/vista_backend_theme/static/src/img/icons_green/recruitment.png new file mode 100644 index 000000000..8faaf1285 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/recruitment.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/repairs.png b/vista_backend_theme/static/src/img/icons_green/repairs.png new file mode 100644 index 000000000..89f0ff72b Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/repairs.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/sales.png b/vista_backend_theme/static/src/img/icons_green/sales.png new file mode 100644 index 000000000..81164740a Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/sales.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/services.png b/vista_backend_theme/static/src/img/icons_green/services.png new file mode 100644 index 000000000..57ad052b9 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/services.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/settinga.png b/vista_backend_theme/static/src/img/icons_green/settinga.png new file mode 100644 index 000000000..9dfcc0aaa Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/settinga.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/sms-marketing.png b/vista_backend_theme/static/src/img/icons_green/sms-marketing.png new file mode 100644 index 000000000..8ec175758 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/sms-marketing.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/surveys.png b/vista_backend_theme/static/src/img/icons_green/surveys.png new file mode 100644 index 000000000..7fb1cd738 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/surveys.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/timeoff.png b/vista_backend_theme/static/src/img/icons_green/timeoff.png new file mode 100644 index 000000000..1295f82ce Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/timeoff.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/timesheet.png b/vista_backend_theme/static/src/img/icons_green/timesheet.png new file mode 100644 index 000000000..3cfc45097 Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/timesheet.png differ diff --git a/vista_backend_theme/static/src/img/icons_green/website.png b/vista_backend_theme/static/src/img/icons_green/website.png new file mode 100644 index 000000000..d1bba818c Binary files /dev/null and b/vista_backend_theme/static/src/img/icons_green/website.png differ diff --git a/vista_backend_theme/static/src/js/chrome/sidebar_menu.js b/vista_backend_theme/static/src/js/chrome/sidebar_menu.js new file mode 100644 index 000000000..d27e704c0 --- /dev/null +++ b/vista_backend_theme/static/src/js/chrome/sidebar_menu.js @@ -0,0 +1,55 @@ +/** @odoo-module **/ +import { patch } from "@web/core/utils/patch"; +import { NavBar } from "@web/webclient/navbar/navbar"; +import { useRef, onMounted } from "@odoo/owl"; + +patch(NavBar.prototype, { + setup(){ + super.setup(); + this.closeSidebar = useRef("closeSidebar") + this.openSidebar = useRef("openSidebar") + this.sidebar = useRef("sidebar") + this.sidebarPanel = useRef("sidebarPanel") + this.closeSides = this.closeSide.bind(this) + this.openSides = this.openSide.bind(this) + + onMounted(() => { + const closeSide = this.closeSidebar.el + const openSide = this.openSidebar.el + console.log(closeSide,this.closeSidebar) + console.log(openSide) + closeSide.addEventListener("click",this.closeSides) + openSide.addEventListener("click",this.openSides) + }); + }, + + closeSide(){ + this.openSidebar.el.style.display = 'block' + this.closeSidebar.el.style.display = 'none' + this.sidebarPanel.el.style.display = 'none'; + const nextElement = this.root.el.nextElementSibling; + if (nextElement) { + nextElement.style.marginLeft = '0px'; + } + const top_heading = this.root.el.children[0].children[0].children[0]; + if(top_heading){ + top_heading.style.marginLeft = '0px'; + } + }, + + openSide(){ + this.closeSidebar.el.style.display = 'block' + this.openSidebar.el.style.display = 'none' + this.sidebarPanel.el.style.display = 'block'; + const nextElement = this.root.el.nextElementSibling; + if (nextElement) { + nextElement.style.marginLeft = '90px'; + nextElement.style.transition = 'all .1s linear'; + } + const top_heading = this.root.el.children[0].children[0].children[0]; + if(top_heading){ + top_heading.style.marginLeft = '90px'; + top_heading.style.transition = 'all .1s linear'; + } + } +}) diff --git a/vista_backend_theme/static/src/js/systray.js b/vista_backend_theme/static/src/js/systray.js new file mode 100644 index 000000000..fd5568d8b --- /dev/null +++ b/vista_backend_theme/static/src/js/systray.js @@ -0,0 +1,33 @@ +/* @odoo-module */ +import { Component,useState } from "@odoo/owl"; +import { registry } from "@web/core/registry"; +import { session } from "@web/session"; +import { useService } from "@web/core/utils/hooks"; + +//Create a Component Themewidget Adding to Systray +export class ThemeWidget extends Component{ + static template="vista_backend_theme.theme_systray" + setup(){ //Create setup function add states and Actions + this.state=useState({ + is_admin:false, + }) + this.action = useService("action"); + console.log(session.storeData['res.partner']) + console.log(session.storeData.Store.self.id) +// console.log(session.storeData['res.partner'].filter((partner)=>partner.userId === session.user_id[0])) + var admin = session.storeData['res.partner'].find((partner)=>partner.id == session.storeData.Store.self.id) + console.log(admin) + this.state.is_admin=admin.isAdmin; + } + _onClick(){ // create a onclick function for click on brush icon open the theme data wizard + this.action.doAction({ + type: 'ir.actions.act_window', + name: 'theme data', + res_model: 'theme.data', + view_mode: 'form', + views: [[false, 'form']], + target: 'new' + }) + } +} +registry.category("systray").add("vista_backend_theme.theme_widget",{Component:ThemeWidget}, { sequence:20}) diff --git a/vista_backend_theme/static/src/scss/login.scss b/vista_backend_theme/static/src/scss/login.scss new file mode 100644 index 000000000..59904f025 --- /dev/null +++ b/vista_backend_theme/static/src/scss/login.scss @@ -0,0 +1,70 @@ +$one__light: #FFF !default; +$one__primary: #386aeb !default; +$one__primary-dark: #274aa5 !important; +$one__border-light: #d4d4d4 !important; + +$transition-normal: all 0.4s linear !default; +.c_login_container{ + background: $one__light !important; + width: 100% !important; + + .card-body{ + background-color: transparent !important; + } +} +.input-group-prepend{ + .input-group-text{ + border-radius: 0px !important; + border-right: 0px !important; + background: transparent !important; + } +} + +.form-control{ + border-radius: 0px !important; + border-color: $one__border-light; + background-color: none; + + &:focus{ + box-shadow: none !important; + } +} + +//Buttons +.btn{ + border-radius: 0px; + + &:hover{ + filter: brightness(90%) !important; + box-shadow: none; + transition: $transition-normal; + } + +} + +.btn-primary{ + background-color: $one__primary !important; + border-color: $one__primary !important; + color: $one__light !important; + + &:hover{ + background-color: $one__primary-dark !important; + } + + &:focus{ + box-shadow: 0 0 0 0.2rem rgba(235,240,253, 0.8); + } +} + +//Links +a, .btn-link { + color: $one__primary; + text-decoration: none; + background-color: transparent; + + &:hover{ + color: $one__primary-dark; + text-decoration: none !important; + transition: $transition-normal; + } +} \ No newline at end of file diff --git a/vista_backend_theme/static/src/scss/login_black.scss b/vista_backend_theme/static/src/scss/login_black.scss new file mode 100644 index 000000000..dcac31cfc --- /dev/null +++ b/vista_backend_theme/static/src/scss/login_black.scss @@ -0,0 +1,72 @@ +$one__light: #fff !default; +$one__primary: #1F2631 !default; +$one__primary-dark: #1c222c !important; +$one__border-light: #d4d4d4 !important; + +$transition-normal: all 0.4s linear !default; + + +.c_login_container{ + background: $one__light !important; + width: 100% !important; + + .card-body{ + background-color: transparent !important; + } +} +.input-group-prepend{ + .input-group-text{ + border-radius: 0px !important; + border-right: 0px !important; + background: transparent !important; + } +} + +.form-control{ + border-radius: 0px !important; + border-color: $one__border-light; + background-color: none; + + &:focus{ + box-shadow: none !important; + } +} + +//Buttons +.btn{ + border-radius: 0px; + + &:hover{ + filter: brightness(90%) !important; + box-shadow: none; + transition: $transition-normal; + } + +} + +.btn-primary{ + background-color: $one__primary !important; + border-color: $one__primary !important; + color: $one__light !important; + + &:hover{ + background-color: $one__primary-dark !important; + } + + &:focus{ + box-shadow: 0 0 0 0.2rem rgba(235,240,253, 0.8); + } +} + +//Links +a, .btn-link { + color: $one__primary; + text-decoration: none; + background-color: transparent; + + &:hover{ + color: $one__primary-dark; + text-decoration: none !important; + transition: $transition-normal; + } +} \ No newline at end of file diff --git a/vista_backend_theme/static/src/scss/login_green.scss b/vista_backend_theme/static/src/scss/login_green.scss new file mode 100644 index 000000000..781b85b58 --- /dev/null +++ b/vista_backend_theme/static/src/scss/login_green.scss @@ -0,0 +1,71 @@ +$one__light: #fff !default; +$one__primary: #00A97F !default; +$one__primary-dark: #009872 !important; +$one__border-light: #d4d4d4 !important; +$transition-normal: all 0.4s linear !default; + + +.c_login_container{ + background: $one__light !important; + width: 100% !important; + + .card-body{ + background-color: transparent !important; + } +} +.input-group-prepend{ + .input-group-text{ + border-radius: 0px !important; + border-right: 0px !important; + background: transparent !important; + } +} + +.form-control{ + border-radius: 0px !important; + border-color: $one__border-light; + background-color: none; + + &:focus{ + box-shadow: none !important; + } +} + +//Buttons +.btn{ + border-radius: 0px; + + &:hover{ + filter: brightness(90%) !important; + box-shadow: none; + transition: $transition-normal; + } + +} + +.btn-primary{ + background-color: $one__primary !important; + border-color: $one__primary !important; + color: $one__light !important; + + &:hover{ + background-color: $one__primary-dark !important; + } + + &:focus{ + box-shadow: 0 0 0 0.2rem rgba(235,240,253, 0.8); + } +} + +//Links +a, .btn-link { + color: $one__primary; + text-decoration: none; + background-color: transparent; + + &:hover{ + color: $one__primary-dark; + text-decoration: none !important; + transition: $transition-normal; + } +} \ No newline at end of file diff --git a/vista_backend_theme/static/src/scss/theme.scss b/vista_backend_theme/static/src/scss/theme.scss new file mode 100644 index 000000000..59a232f51 --- /dev/null +++ b/vista_backend_theme/static/src/scss/theme.scss @@ -0,0 +1,1090 @@ +//Variables + +$one__font: "Odoo Unicode Support Noto", "Lucida Grande", Helvetica, Verdana, Arial, sans-serif; + +//Colors +$one__light: #FFF !default; +$one__primary: #386aeb !default; +$one__sidebar-color-hover: #274aa5 !important; +$one__sidebar-border: #386aeb !important; +$one__sidebar-color: #386aeb !important; +$one__sidebar_text: #fff !default; +$one__primary-light: #ebf0fd !default; +$one__primary-dark: #274aa5 !important; +$one__light-font-primary: #1f2631 !important; +$one__light-font-secondary: #575757 !important; +$one__hover-bkg-light: #f5f5f5 !important; +$one__border-light: #d4d4d4 !important; +$one__info: #454555 !important; + +//Border Style +$one__border: 0px; +$one__button-padding: auto; +//Misc +$transition-normal: all 0.4s linear !default; +$transition-fast: all 0.2s linear !default; +//Paths +$dots_menu_toggled: url('/vista_backend_theme/static/src/img/icons/dots-menu-primary.png'); + + +//Misc +$transition-normal: all 0.4s linear !default; + +//Animations +@mixin c_fadeBackgroundOut($name, $s_opacity, $e_opacity, $r, $g, $b){ + @keyframes #{$name}{ + 0%{ + background-color: rgba($r, $g, $b, $s_opacity); + } + + 100%{ + background-color: rgba($r, $g, $b, $e_opacity); + } + } +} + + + +body{ + background-color: $one__light !important; + font-family: $one__font; +} +//NAVBAR +.o_main_navbar { + -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; + background-color: $one__light; + border-bottom: none; + -moz-box-shadow: rgba(0, 0, 0, 0.19) 0px 10px 20px, rgba(0, 0, 0, 0.5) 0px 6px 6px; + -webkit-box-shadow: rgba(0, 0, 0, 0.19) 0px 10px 20px, rgba(0, 0, 0, 0.5) 0px 6px 6px; + box-shadow: rgba(0, 0, 0, 0.19) 0px 10px 20px, rgba(0, 0, 0, 0.5) 0px 6px 6px; + color: $one__light-font-primary; + //height: 60px !important; +} +@media (min-width: 768px) { + .o_menu_systray .o-dropdown.dropdown > .o-dropdown--menu { + top: 46px !important; + left: 85% !important; + right: 20px !important; + } +} + +.top_heading a.o_menu_brand{ + font-weight: bolder !important; +} + +.o_menu_systray > li{ + font-size: 1.5rem !important; + } + +.o_menu_systray > *{ + margin-right: 15px; + &:last-child{ + margin-right: 0px; + } + @media (max-width: 767.98px) { + margin-right: 0px !important; + &:last-child{ + margin-right: 0px; + } + } +} + +@media (max-width: 767.98px) { + .o_user_menu .o_user_avatar { + margin-right: 0px !important; + } +} + +li.o_MessagingMenu.o-is-open { + background-color: $one__hover-bkg-light; + border-bottom: none !important; +} +.o_mail_systray_item .o_notification_counter{ + background-color: $one__primary !important; + color: $one__light !important; +} +.o_MessagingMenu_counter { + margin-left: -12px !important; +} +.o_notification_counter{ + margin-left: -18px !important; +} +.o_NotificationGroup_date{ + color: $one__primary !important +} +.o_menu_sections > li > a, .o_main_navbar > li > label{ + color: $one__light-font-primary; + display: block !important; + &:hover{ + background-color: $one__hover-bkg-light; + //border-bottom: 1px solid $one__border-light; + } +} +.o_switch_company_menu > a{ + color: $one__light-font-primary; + font-size: 1.8rem !important +} +.oe_topbar_name{ + color: $one__light-font-primary; + + @media (max-width: 576px) { + display: none; + } +} +.o_main_navbar > a:hover, .o_main_navbar > a:focus, .o_main_navbar > button:hover, .o_main_navbar > button:focus { + background-color: $one__hover-bkg-light; + //border-bottom: 1px solid $one__border-light; +} + +.o_MessagingMenu, .o_mail_systray_item{ + a{ + color: $one__light-font-primary; + } +} +.o_MessagingMenu_counter, .o_notification_counter { + background-color: $one__primary; + color: $one__light; +} +.o_main_navbar .show .dropdowdropdown-toggle, .o_main_navbar .show .dropdown-toggle { + background-color: $one__hover-bkg-light; + //border-bottom: 1px solid $one__border-light; +} +.o_main_navbar .o_user_menu .oe_topbar_avatar { + height: 32px !important; + width: 32px !important; +} +.oe_topbar_name{ + color: $one__light-font-primary !important; +} +.o_dashboards .o_website_dashboard div.o_box h2, .o_dashboards .o_website_dashboard div.o_box h4 { + color: $one__primary !important; +} +.o_control_panel { + padding: 2.5rem 1rem !important; + margin-bottom: 1.5rem !important; + border-bottom: 1px solid $one__border-light; + width: 98%; + margin-left: auto; + margin-right: auto; +} +.o_form_view .oe_button_box .oe_stat_button .o_button_icon { + color: $one__primary; +} +.o_control_panel .breadcrumb{ + background-color: none !important; + padding: auto !important +} +.o_control_panel .breadcrumb > li, .breadcrumb-item > a{ + font-size: 2rem !important; + color: $one__light-font-secondary; + max-width: 100% !important; +} +.o_control_panel > div{ + display: flex; + justify-content: space-between; +} + +.breadcrumb-item.active{ + $color: $one__light-font-primary; +} +.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled::after, +.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled::before { + border-left-color: $one__primary !important; +} +.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled::after, +.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button:not(:first-child)::before { + border-left-color: none !important; +} +.o_statusbar_status > .o_arrow_button.btn-secondary{ + background-color: $one__light !important; +} +.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.disabled { + border-left: none !important; +} +// .o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button:not(:first-child)::before, +// .o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button:not(:first-child)::after { +// background-color: $one__light !important; +// } + + + +.o_content{ + width: 98%; + margin-left: auto; + margin-right: auto; +} +.top_heading{ + display: flex; + align-items: center; + ul.o_menu_apps{ + list-style: none; + margin: 0 0.8rem 0 0; + padding: 0px; + } + li.dropdown{ + list-style: none; + } + a.o_menu_brand{ + color: $one__light-font-primary; + font-size: 1.5rem !important; + } +} +.o_menu_sections, .o_menu_systray{ + display: flex; + align-items: center; + list-style: none !important; + //height: 60px !important; + + li{ + margin-right: 1rem; + + &:last-child{ + margin-right: 0 !important; + } + } + .o-dropdown.dropdown > .o-dropdown--menu{ + border-color: transparent; + } +} +.o_main_navbar .dropdown .dropdown-toggle, +.o_main_navbar .o_menu_sections_more .dropdown .dropdown-toggle, +.o_nav_entry +{ + color: black !important; +} +.o_menu_sections_more button{ + color: black !important; + } + +.o_menu_systray, .o_menu_sections{ + li{ + position: relative !important; + a.o_MessagingMenu_toggler, a.dropdown-toggle{ + display: flex !important; + align-items: center !important; + height: 60px !important; + padding: 0px 7.5px; + + img{ + margin-right: 0.8rem; + transform: none !important; + } + } + } +} +.o_main_navbar .dropdown-menu.show { + min-width: auto !important; +} +.o_form_view .o_form_uri > span:first-child { + color: $one__primary; +} +.o_onboarding_container{ + margin-top: -1.575rem !important; +} +.o_loading_indicator.o_loading > span { + background: $one__primary !important; +} +.o_menu_systray > li > a > span.fa{ + color: $one__light-font-primary; + font-size: 1.9rem !important; + margin: auto 11px !important; +} + +//`Custom` +.c_navbar_container{ + display: flex; + justify-content: center; + width: 100%; + margin-left: auto; + margin-right: auto; + padding: 0 1rem 0 0 !important; +} + +.c_sidebar_active{ + height: 46px; + width: 60px; + display: flex !important; + justify-content: center; + align-items: center; + background-color: $one__primary; + color: $one__light !important; + margin-right: 1.5rem !important; + clip-path: polygon(0 0, 100% 0%, 86% 100%, 0% 100%); + + &:hover{ + background-color: $one__primary-dark; + transition: $transition-normal; + } +} + +.c_sidebar_passive{ + height: 46px; + width: 60px; + display: flex !important; + justify-content: center; + align-items: center; + background-color: $one__light; + color: $one__primary !important; + clip-path: polygon(0 0, 100% 0%, 86% 100%, 0% 100%); +} + +//END OF NAVBAR +.dropdown-menu{ + border-radius: 0px; + a, .dropdown-item{ + color: $one__light-font-primary; + &:hover{ + color: $one__primary !important; + background-color: $one__primary-light; + transition: $transition-normal; + } + } +} +//Buttons + +.btn{ + border-radius: 0px; + + &:hover{ + filter: brightness(90%) !important; + box-shadow: none; + transition: $transition-normal; + } + +} + +.btn-primary{ + background-color: $one__primary !important; + border-color: $one__primary !important; + color: $one__light !important; + + &:hover{ + background-color: $one__primary-dark !important; + } + + &:focus{ + box-shadow: 0 0 0 0.2rem rgba(235,240,253, 0.8); + } +} +.btn-secondary{ + background-color: $one__hover-bkg-light; + border-color: $one__hover-bkg-light; + color: $one__light-font-primary; + &:focus{ + box-shadow: 0 0 0 0.2rem rgba(245,245,245, 1); + } + + +} +.btn-fill-info, .btn-info { + background-color: $one__info; + border-color: $one__info; + color: $one__light; +} +.btn-group, .o_filter_menu{ + button, div.btn-group{ + margin-right: 3px; + &:last-child{ + margin-right: 0px !important; + } + } +} +.btn-link{ + color: $one__primary !important; + + &:hover{ + background-color: $one__hover-bkg-light !important; + } +} + +.o_control_panel .o_cp_bottom_left > .o_cp_action_menus .o_dropdown_toggler_btn, +.o_control_panel .o_cp_bottom_left > .o_cp_action_menus .dropdown-toggle + { + margin-right: 0px !important; +} +.o_activity_view .o_record_selector, .o_stat_value { + color: $one__primary !important; +} + +.o_web_settings_invite{ + height: 26px !important; + margin-top: 6px !important; +} + +.o_NotificationList{ + div:hover { + background-color: $one__primary-light; + } +} +.o_MessagingMenu_tabButton, .o_MessagingMenu_newMessageButton{ + color: $one__primary; + opacity: 0.8; + .o-active{ + opacity: 1; + font-weight: bold; + } +} +.o_ThreadPreview_date, .o_activity_filter_button, .o_mail_activity_action{ + color: $one__primary !important; + + &:before{ + color: $one__light-font-primary; + } + &:hover{ + color: $one__primary-dark !important; + } +} +//Controls +.custom-control.custom-checkbox .custom-control-input:not(:checked):not(:indeterminate) ~ .custom-control-label::before { + background: none; + outline: 1px solid $one__hover-bkg-light; +} +.custom-checkbox .custom-control-label::before { + border-radius: 0px; +} +.custom-control-input:checked ~ .custom-control-label::before { + color: $one__light; + border-color: $one__primary; + background-color: $one__primary; +} +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23FFFFFF' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e"); +} + +.o_input{ + border-radius: 0px !important; + border-color: $one__border-light; +} +.o_required_modifier.o_input, .o_required_modifier .o_input, .o_searchview .o_searchview_autocomplete li.o_selection_focus { + background-color: $one__primary-light !important; +} +.ui-menu-item > a{ + background-color: $one__light !important; + color: $one__primary !important; + &:hover, &:active, &:focus, &:focus-within, &:focus-visible, &:visited{ + color: $one__primary !important; + background-color: $one__primary-light !important; + } +} +.nav-tabs .nav-link { + border-radius: 0px !important; + border-top: 3px solid transparent !important; +} +.nav-tabs .nav-link.active { + border-top: 3px solid $one__primary !important; +} +.nav-tabs .nav-link:hover{ + border-top: 3px solid $one__primary !important; + color: $one__primary-dark; + transition: transition-normal !important; +} +.o_form_view .o_horizontal_separator { + color: $one__primary; +} +.panel-heading.note-toolbar { + background-color: $one__light !important; +} +div.o_boolean_toggle.custom-control.custom-checkbox > input.custom-control-input:checked + label.custom-control-label::before { + background-color: $one__primary !important; +} +//Misc. +.badge-primary{ + background-color: $one__primary; + border-radius: 0px; + padding: 5px; +} +//Links +a { + color: $one__primary; + text-decoration: none; + background-color: transparent; + + &hover{ + color: $one__primary-dark; + text-decoration: none; + transition: $transition-normal; + } +} +.o_menu_brand{ + color: $one__light-font-primary; + font-weight: bold; +} +.o_form_uri{ + color: $one__primary !important; +} +.o_Message_prettyBody > div > p > a { + background-color: $one__primary !important; +} + +.o_onboarding_step_title > a { + color: $one__light; +} +.oe_kanban_action_a{ + color: $one__light-font-primary; +} +.o_kanban_view .oe_kanban_card.oe_kanban_global_click:focus, +.o_kanban_view .oe_kanban_card.oe_kanban_global_click:focus-within, +.o_kanban_view .oe_kanban_card.oe_kanban_global_click_edit:focus, +.o_kanban_view .oe_kanban_card.oe_kanban_global_click_edit:focus-within, +.o_kanban_view .o_kanban_record.oe_kanban_global_click:focus, +.o_kanban_view .o_kanban_record.oe_kanban_global_click:focus-within, +.o_kanban_view .o_kanban_record.oe_kanban_global_click_edit:focus, +.o_kanban_view .o_kanban_record.oe_kanban_global_click_edit:focus-within{ + outline: thin solid $one__primary-light !important; +} +//Tables +.o_list_view thead { + background-color: $one__hover-bkg-light; +} + +.o_list_view .o_list_table thead { + color: $one__light-font-secondary; + border-bottom: 1px solid $one__border-light; +} +.o_list_view .o_list_table thead > tr > th:not(.o_list_record_selector) { + border-left: none; +} +table thead th { + vertical-align: bottom; + border-top: none !important; + border-bottom: none !important; + padding: 1rem !important; +} +table-sm th, .table-sm td { + padding: 1rem !important; + border-top: none !important; +} +tr:nth-child(even){ + background-color: $one__hover-bkg-light; +} +.o_list_view .o_list_table tfoot { + background-color: $one__light; + filter: brightness(95.5%) !important; +} + + +//Search +.o_searchview .o_searchview_facet, .o_setting_search { + background: $one__light; + border-radius: 0px !important; + border: 1px solid $one__border-light; + color: $one__light-font-secondary; +} +.o_searchview .o_searchview_facet .o_searchview_facet_label { + background-color: $one__light; +} +.o_searchview .o_searchview_input_container .o_searchview_facet .o_searchview_facet_label { + color: $one__light-font-secondary; + margin: 0px -3px 3px 3px; +} +.o_searchview .o_searchview_input_container .o_searchview_facet .o_facet_remove{ + bottom: 3px !important; +} +.o_searchview .o_searchview_input_container .o_searchview_facet .o_facet_values { + padding: 2px 18px 0 5px !important; +} +.o_searchview{ + padding: 0.5rem !important; + border-radius: 0px; +} +.searchInput{ + border: none !important; +} +.searchIcon{ + margin: 5px 10px 0 0; +} +.o_setting_search { + padding: 5px; +} + +//Kanban +.oe_kanban_card{ + border-color: $one__border-light; + padding: 1rem !important; +} + +//Calendar +@include c_fadeBackgroundOut('fadeCalendarRow', 1, 0.6, 212, 212, 212 ); + +.o_calendar_sidebar_container .ui-datepicker td.ui-datepicker-current-day.ui-datepicker-today a, +.o_calendar_sidebar_container .ui-datepicker td.ui-datepicker-current-day a, +.o_calendar_view .o_calendar_widget .fc-dayGridMonth-view .fc-content-skeleton .fc-today .fc-day-number +{ + color: $one__light !important; + background-color: $one__primary !important; +} + +.o_calendar_sidebar_container .ui-datepicker td a{ + color: $one__light-font-secondary; +} +.o_calendar_sidebar_container .ui-datepicker td.ui-datepicker-today a{ + background-color: $one__border-light; +} + +.o_calendar_sidebar_container .ui-datepicker .o_selected_range.o_color:not(.ui-datepicker-unselectable) { + animation: fadeCalendarRow 2s forwards; +} + +.fc-now-indicator { + border-color: $one__primary !important; +} +.fc-ltr .fc-time-grid .fc-now-indicator-arrow { + left: 0; + border-width: 5px 0 5px 6px; + border-top-color: transparent !important; + border-bottom-color: transparent !important; +} + +.o_calendar_view .fc-view .fc-event.o_calendar_color_1.o_cw_custom_highlight { + box-shadow: 0 12px 12px -5px rgba(156, 181, 245, 0.8); + color: $one__primary; + font-weight: bold; +} +.o_calendar_view .fc-view .fc-event.o_calendar_color_1 .fc-bg { + background-color: $one__primary-light; +} +.o_calendar_view .fc-view .fc-event.o_calendar_color_1 { + border-color: $one__primary; + color: #274aa5; + opacity: 0.8; + + &:hover{ + background: $one__primary-light; + box-shadow: 0 12px 12px -5px rgba(156, 181, 245, 0.8); + } +} + +.bootstrap-datetimepicker-widget table td.active, .bootstrap-datetimepicker-widget table td.active:hover { + background-color: $one__primary !important; +} + +//Dashboard Sidebar +.o_Discuss, .o_setting_container{ + width: 98%; + margin-right: auto; + margin-left: auto; + border-top: none; +} +.o_widget_Discuss .o_Discuss_content { + border-top: none !important; +} +.o_DiscussSidebar, .settings_tab{ + color: $one__light-font-primary; + background-color: transparent !important; + border-right: 2px solid $one__border-light; + height: 95%; + margin-top: auto; + margin-bottom: auto; +} +.o_DiscussSidebarItem{ + padding: 0.4rem 0 !important; +} +.o_DiscussSidebarItem_activeIndicator.o-item-active{ + width: 0; + height: 0; + background: transparent; + margin-top: 0.375rem; + margin-right: 8px !important; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid $one__primary; +} +.o_DiscussSidebarItem:hover{ + background-color: transparent !important; + color: $one__primary; +} +.o_DiscussSidebar_separator{ + width: 95% !important; + margin-left: auto; + margin-right: auto; + background-color: transparent !important; +} +.o_MessageList{ + padding: 10px !important; +} + +.o_Message.o-not-discussion{ + background-color: $one__hover-bkg-light; + border-color: $one__border-light; +} + +//Settings + +.o_setting_container .settings_tab { + .app_name{ + color: $one__light-font-primary !important; + } +} + +.o_base_settings .o_control_panel .o_panel .o_setting_search .searchInput { + max-width: none !important; + margin: 4px 0 0 10px !important; +} + +.o_setting_container .settings_tab .tab{ + height: 30px !important; +} + +.o_setting_container .settings{ + padding: 10px !important; +} +.o_setting_container .settings_tab .app_name { + color: $one__light-font-primary; + + &:hover{ + color :$one__primary !important; + } +} +.o_setting_container .settings_tab .selected{ + background: transparent !important; + box-shadow: none !important; + position: relative; + + &:before{ + content: ""; + position: absolute; + width: 0; + height: 0; + top: 24%; + left: 0; + background: transparent; + margin-top: 0.375rem; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid $one__primary; + } + + .app_name{ + color: $one__light-font-primary; + + &:hover{ + color :$one__primary !important; + } + } +} + +.o_form_image_controls > .o_select_file_button{ + background: $one__primary !important; + color: $one__light; +} + +.o_search_panel .o_search_panel_category .o_search_panel_section_icon { + color: $one__primary; +} +.o_search_panel .list-group-item header.active { + background-color: $one__primary-light; + color: $one__primary; +} + +//Chat +.o_ChatWindowHeader{ + background-color: $one__primary !important; + color: $one__light !important; + border-radius: 0px !important; +} +//Tables +.o_purchase_dashboard .table > thead > tr > td.o_main, .o_purchase_dashboard .table tbody > tr > td.o_main { + background-color: $one__primary; + + &:hover{ + background-color: $one__primary-dark; + } + + a{ + color: $one__light; + } +} + +//Tags +.o_field_widget.o_field_many2manytags .o_tag_color_5, +.o_kanban_view .o_kanban_record .o_field_many2manytags .o_tag.o_tag_color_5 span, +.o_kanban_view .o_kanban_record .o_kanban_tags .o_tag.o_tag_color_5 span { + background-color: $one__primary; +} + +.badge-pill{ + a{ + color: $one__light; + } +} + + +.oe_kanban_card .o_kanban_tags .o_tag, .o_kanban_view .o_kanban_record .o_field_many2manytags .o_tag, .o_kanban_view .o_kanban_record .o_kanban_tags .o_tag { + background-color: transparent !important; +} + +.o-menu-toggle{ + display: none !important; +} +.c_dots_menu{ + background-image: url('/vista_backend_theme/static/src/img/icons/dots-menu.png'); + width: 18px; + height: 18px; + background-repeat: no-repeat; + background-size: contain; +} +.c_dots_menu_toggled{ + background-image: $dots_menu_toggled; + width: 18px; + height: 18px; + background-repeat: no-repeat; + background-size: contain; +} + +//Responsive Layout +@media (max-width: 767.98px) { + //Settings + .o_base_settings .o_setting_container { + flex-flow: column nowrap; + + .settings_tab{ + flex-direction: row; + height: 40px; + margin-top: -5px; + justify-content: center; + } + } + //App Bar + .o_control_panel > div { + flex-direction: column; + margin-bottom: 0.5rem; + } + .o_control_panel .breadcrumb > li, .breadcrumb-item > a { + font-size: 1.8rem !important; + margin-bottom: 0.5rem; + } + .o_control_panel .o_cp_top_right { + width: 100%; + margin-bottom: 0.5rem; + } + .o_search_panel .o_search_panel_section_header { + display: none; + } + .o_search_panel { + flex: 0 0 120px !important; + padding: 8px 8px 32px 0px !important; + } + //Discuss + .o_Discuss.o-mobile{ + width: 100% !important; + border-top: 1px solid $one__border-light; + } + .o_MobileMessagingNavbar_tab.o-active > span{ + color: $one__primary !important; + } +} + +#sidebar_panel { + height: 100%; + position: fixed; + top: 0px; + background-color: $one__sidebar-color; + border-right: 1px solid $one__sidebar_border; + display: none; + width: 80px; + overflow-y: scroll; + -ms-overflow-style: none; /* Hide scrollbar for IE and Edge */ + scrollbar-width: none; /* Hide scrollbar for Firefox */ + z-index: 999; +} +.sidebar_app_name{ + display: none; +} +#sidebar_panel::-webkit-scrollbar { + display: none; /* Hide scrollbar for Chrome, Safari and Opera */ +} +.sidebar_menu{ + margin-top: 20px !important; +} +.sidebar > h6{ + color: $one__light; + font-weight: bold; + text-transform: uppercase; + letter-spacing: 2px; + font-size: 0.9rem; + margin-left: auto; + margin-right: auto; + width: 38px; + display: block; + margin-top: 18px !important; +} +.sidebar_panel .sidebar { + padding: 0; + white-space: nowrap; + padding-bottom: 20px; + padding-top: 5px; +} +.sidebar_panel .sidebar_close { + text-align: end; + display: none; + position: sticky; + height: 35px; + padding-top: 5px; + top: 0; + background: #2a3042; + z-index: 1; +} +.sidebar_panel .sidebar_close a#closeSidebar { + font-size: 18px; + margin-right: 10px; + color: #ffffff; + opacity: .3; +} +.sidebar_panel .sidebar_close a#closeSidebar img { + width: 15px; +} +.sidebar_panel .sidebar .sidebar_logo { + padding-top: 20px; + text-align: center; + padding-bottom: 20px; +} +.sidebar_panel .sidebar .sidebar_logo img { + max-width: 150px; +} + +.sidebar_panel .sidebar .sidebar_head { + padding-top: 20px; + padding-left: none; + color: $one__light; +} + +.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; +} + +.sidebar_panel .sidebar .sidebar_menu li a { + margin: 0; + border: 0px; + display: block; + cursor: pointer; + overflow: hidden; + padding: 8px 10px 8px 25px; + color: #ffffff; + font-size: 13px; + transition:.3s all; +} +.sidebar_panel .sidebar .sidebar_menu li:hover a { + background: $one__sidebar-color-hover; + color: $one__light; +} + +.sidebar_panel .nav-link { + opacity: 1 !important; + transition:.3s all; +} +.sidebar_panel .sidebar a.nav-link.active { + color: $one__light !important; + border-left: 4px solid $one__light; + + img{ + margin-left: -0.5rem !important; + } +} + +.sidebar_panel .sidebar .sidebar_menu li a .sidebar_img { + width: 32px; + height: 32px; + margin: 8px 8px 8px 0; +} +.sidebar_menu > li a.nav-link{ + &:hover{ + transform: scale(1.05) !important; + transition: all 0.3s linear !important; + } +} + +.datepicker{ + z-index: 9999 !important; +} +div.dropdown-menu.bootstrap-datetimepicker-widget { + width: 28rem !important; +} +// .datepicker .table-sm > thead, +// .datepicker > div > table > tbody > tr > td.active{ +// background-color: $one__primary; +// } +// .datepicker .table-sm > thead > tr:first-child th:hover { +// background-color: $one__primary-dark; +// } +// .datepicker .table-sm > tbody > tr > td.today::before{ +// border-bottom-color: $one__primary; +// } +.o_field_statusbar > .o_statusbar_status > .o_arrow_button.o_arrow_button_current:not(.d-none):disabled, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button.o_arrow_button_current:not(.d-none):disabled, .o_field_statusbar > .o_statusbar_status > .o_arrow_button:not(.d-none):active:not(.o_first), .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button:not(.d-none):active:not(.o_first) { + color: white !important; + background-color: #386aeb !important; + font-family: inherit !important; +} +.o_field_statusbar > .o_statusbar_status > .o_arrow_button:not(.d-none):disabled, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button:not(.d-none):disabled { + color: #386aeb !important; + background-color: white !important; + border-color: #386aeb !important; + height: 35px !important; + padding: 5px !important; + padding-right: 20px !important; + padding-left: 20px !important; + border-radius: 5px !important; + font-family: inherit !important; +} +.o_field_statusbar > .o_statusbar_status > .o_arrow_button.o_arrow_button_current:not(.d-none):disabled:after, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button.o_arrow_button_current:not(.d-none):disabled:after, .o_field_statusbar > .o_statusbar_status > .o_arrow_button:not(.d-none):active:not(.o_first):after, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button:not(.d-none):active:not(.o_first):after { + border-left-color: black; +} +.o_field_statusbar > .o_statusbar_status > .o_arrow_button:not(.d-none):not(.o_first):before, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button:not(.d-none):not(.o_first):before, .o_field_statusbar > .o_statusbar_status > .o_arrow_button:not(.d-none):not(.o_last):before, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button:not(.d-none):not(.o_last):before { + right: calc(-1em - 1px); + border-left-color: #386aeb !important; +} +.o_main_navbar .o_menu_sections .dropdown-toggle { + background: white; + border: 1px solid transparent; +} +.o_facet_remove{ + margin-top: 5px; +} + +.o_menu_systray .o-dropdown.dropdown > .o-dropdown--menu { + top: 46px !important; + left: 75% !important; + right: 20px !important; +} +@media (max-width: 768px) { + .o_many2one_avatar_user_cell { + max-width: 164px !important; + width: 163px !important; + } +} +.o-mail-MessagingMenu { + width: 450px; + min-height: 50px; + max-height: Min(calc(#{ $o-dropdown-max-height } - 5px), 630px); // -5px for borders + + hr { + opacity: $hr-opacity / 2; + } +} +.o-mail-DiscussSystray-class > .o-dropdown--menu{ + margin-left:-450px !important; +} +.o-mail-ActivityMenu{ + margin-left: 229px !important; +} +.o_switch_company_menu > .o-dropdown--menu { + top: 48px !important; + left: 80% !important; + right: -21px !important; + width: 15% !important; + margin-left:74px !important; +} +.o_user_menu > .o-dropdown--menu { + left: 89% !important; + margin-left: 250px !important; + width:200px !important; +} diff --git a/vista_backend_theme/static/src/scss/theme_black.scss b/vista_backend_theme/static/src/scss/theme_black.scss new file mode 100644 index 000000000..8f044050c --- /dev/null +++ b/vista_backend_theme/static/src/scss/theme_black.scss @@ -0,0 +1,1255 @@ +//Font CSS +/* cyrillic-ext */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 300; + src: url(https://fonts.gstatic.com/s/nunito/v16/XRXW3I6Li01BKofAnsSUbOvISTs.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 300; + src: url(https://fonts.gstatic.com/s/nunito/v16/XRXW3I6Li01BKofAnsSUZevISTs.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* vietnamese */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 300; + src: url(https://fonts.gstatic.com/s/nunito/v16/XRXW3I6Li01BKofAnsSUbuvISTs.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 300; + src: url(https://fonts.gstatic.com/s/nunito/v16/XRXW3I6Li01BKofAnsSUb-vISTs.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 300; + src: url(https://fonts.gstatic.com/s/nunito/v16/XRXW3I6Li01BKofAnsSUYevI.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 400; + src: url(https://fonts.gstatic.com/s/nunito/v16/XRXV3I6Li01BKofIOOaBXso.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 400; + src: url(https://fonts.gstatic.com/s/nunito/v16/XRXV3I6Li01BKofIMeaBXso.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* vietnamese */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 400; + src: url(https://fonts.gstatic.com/s/nunito/v16/XRXV3I6Li01BKofIOuaBXso.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 400; + src: url(https://fonts.gstatic.com/s/nunito/v16/XRXV3I6Li01BKofIO-aBXso.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 400; + src: url(https://fonts.gstatic.com/s/nunito/v16/XRXV3I6Li01BKofINeaB.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 600; + src: url(https://fonts.gstatic.com/s/nunito/v16/XRXW3I6Li01BKofA6sKUbOvISTs.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 600; + src: url(https://fonts.gstatic.com/s/nunito/v16/XRXW3I6Li01BKofA6sKUZevISTs.woff2) format('woff2'); + unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* vietnamese */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 600; + src: url(https://fonts.gstatic.com/s/nunito/v16/XRXW3I6Li01BKofA6sKUbuvISTs.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 600; + src: url(https://fonts.gstatic.com/s/nunito/v16/XRXW3I6Li01BKofA6sKUb-vISTs.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Nunito'; + font-style: normal; + font-weight: 600; + src: url(https://fonts.gstatic.com/s/nunito/v16/XRXW3I6Li01BKofA6sKUYevI.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + + +//Variables + +//Fonts +$one__font: 'Nunito', Helvetica, Verdana, Arial, sans-serif !important; + +//Colors +$one__light: #fff !default; +$one__primary: #1F2631 !default; +$one__sidebar-color: #1F2631 !important; +$one__sidebar-color-hover: #1c222c !default; +$one__sidebar-border: #1F2631 !important; +$one__sidebar_text: #fff !default; +$one__primary-light: #e9e9ea !default; +$one__primary-dark: #1c222c !important; +$one__light-font-primary: #030405 !important; +$one__light-font-secondary: #575757 !important; +$one__hover-bkg-light: #f5f5f5 !important; +$one__border-light: #d4d4d4 !important; +$one__info: #454555 !important; + +//Border Style +$one__border: 100px; +$one__button-padding: 25px; +//Misc +$transition-normal: all 0.4s linear !default; +$transition-fast: all 0.2s linear !default; + +//Paths +$dots_menu_toggled: url('/vista_backend_theme/static/src/img/icons/dots-menu-navy.png'); + + +//Misc +$transition-normal: all 0.4s linear !default; + +//Animations +@mixin c_fadeBackgroundOut($name, $s_opacity, $e_opacity, $r, $g, $b){ + @keyframes #{$name}{ + 0%{ + background-color: rgba($r, $g, $b, $s_opacity); + } + + 100%{ + background-color: rgba($r, $g, $b, $e_opacity); + } + } +} + + + +body{ + background-color: $one__light !important; + font-family: $one__font; +} +//NAVBAR +.o_main_navbar { + -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; + background-color: $one__light; + border-bottom: none; + -moz-box-shadow: rgba(0, 0, 0, 0.19) 0px 10px 20px, rgba(0, 0, 0, 0.5) 0px 6px 6px; + -webkit-box-shadow: rgba(0, 0, 0, 0.19) 0px 10px 20px, rgba(0, 0, 0, 0.5) 0px 6px 6px; + box-shadow: rgba(0, 0, 0, 0.19) 0px 10px 20px, rgba(0, 0, 0, 0.5) 0px 6px 6px; + color: $one__light-font-primary; + //height: 60px !important; +} +// @media (min-width: 768px) { +// .o_menu_systray .o-dropdown.dropdown > .o-dropdown--menu { +// top: 46px !important; +// left: 85% !important; +// right: 20px !important; +// } +// } +.top_heading a.o_menu_brand{ + font-weight: bolder !important; +} + +.o_menu_systray > li{ + font-size: 1.5rem !important; + } + +.o_menu_systray > *{ + margin-right: 15px; + &:last-child{ + margin-right: 0px; + } + @media (max-width: 767.98px) { + margin-right: 0px !important; + &:last-child{ + margin-right: 0px; + } + } +} + +@media (max-width: 767.98px) { + .o_user_menu .o_user_avatar { + margin-right: 0px !important; + } +} + +li.o_MessagingMenu.o-is-open { + background-color: $one__hover-bkg-light; + border-bottom: none !important; +} +.o_mail_systray_item .o_notification_counter{ + background-color: $one__primary !important; + color: $one__light !important; +} +.o_MessagingMenu_counter { + margin-left: -12px !important; +} +.o_notification_counter{ + margin-left: -18px !important; +} +.o_NotificationGroup_date{ + color: $one__primary !important +} +.o_menu_sections > li > a, .o_main_navbar > li > label{ + color: $one__light-font-primary; + display: block !important; + &:hover{ + background-color: $one__hover-bkg-light; + //border-bottom: 1px solid $one__border-light; + } +} +.o_switch_company_menu > a{ + color: $one__light-font-primary; + font-size: 1.8rem !important +} +.oe_topbar_name{ + color: $one__light-font-primary; + + @media (max-width: 576px) { + display: none; + } +} +.o_main_navbar > a:hover, .o_main_navbar > a:focus, .o_main_navbar > button:hover, .o_main_navbar > button:focus { + background-color: $one__hover-bkg-light; + //border-bottom: 1px solid $one__border-light; +} + +.o_MessagingMenu, .o_mail_systray_item{ + a{ + color: $one__light-font-primary; + } +} +.o_MessagingMenu_counter, .o_notification_counter { + background-color: $one__primary; + color: $one__light; +} +.o_main_navbar .show .dropdowdropdown-toggle, .o_main_navbar .show .dropdown-toggle { + background-color: $one__hover-bkg-light; + //border-bottom: 1px solid $one__border-light; +} +.o_main_navbar .o_user_menu .oe_topbar_avatar { + height: 32px !important; + width: 32px !important; +} +.oe_topbar_name{ + color: $one__light-font-primary !important; +} +.o_dashboards .o_website_dashboard div.o_box h2, .o_dashboards .o_website_dashboard div.o_box h4 { + color: $one__primary !important; +} +.o_control_panel { + padding: 2.5rem 1rem !important; + margin-bottom: 1.5rem !important; + border-bottom: 1px solid $one__border-light; + width: 98%; + margin-left: auto; + margin-right: auto; +} +.o_form_view .oe_button_box .oe_stat_button .o_button_icon { + color: $one__primary; +} +.o_control_panel .breadcrumb{ + background-color: none !important; + padding: auto !important +} +.o_control_panel .breadcrumb > li, .breadcrumb-item > a{ + font-size: 2rem !important; + color: $one__light-font-secondary; + max-width: 100% !important; +} +.o_control_panel > div{ + display: flex; + justify-content: space-between; +} + +.breadcrumb-item.active{ + $color: $one__light-font-primary; +} +.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled::after, +.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled::before { + border-left-color: $one__primary !important; +} +.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled::after, +.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button:not(:first-child)::before { + border-left-color: none !important; +} +.o_statusbar_status > .o_arrow_button.btn-secondary{ + background-color: $one__light !important; +} +.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.disabled { + border-left: none !important; +} +// .o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button:not(:first-child)::before, +// .o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button:not(:first-child)::after { +// background-color: $one__light !important; +// } + + + +.o_content{ + width: 98%; + margin-left: auto; + margin-right: auto; +} +.top_heading{ + display: flex; + align-items: center; + ul.o_menu_apps{ + list-style: none; + margin: 0 0.8rem 0 0; + padding: 0px; + } + li.dropdown{ + list-style: none; + } + .o_menu_brand{ + color: $one__light-font-primary; + font-size: 1.5rem !important; + font-weight:bold; + } +} +.o_menu_sections, .o_menu_systray{ + display: flex; + align-items: center; + list-style: none !important; + //height: 60px !important; + + li{ + margin-right: 1rem; + + &:last-child{ + margin-right: 0 !important; + } + } + .o-dropdown.dropdown > .o-dropdown--menu{ + border-color: transparent; + } +} +.o_main_navbar .dropdown .dropdown-toggle, +.o_main_navbar .o_menu_sections .dropdown .dropdown-toggle, +.o_nav_entry +{ + color: $one__light-font-primary; +} +.dropdown-toggle{ + color:black !important; + } +.o_menu_systray, .o_menu_sections{ + li{ + position: relative !important; + a.o_MessagingMenu_toggler, a.dropdown-toggle{ + display: flex !important; + align-items: center !important; + height: 60px !important; + padding: 0px 7.5px; + + img{ + margin-right: 0.8rem; + transform: none !important; + } + } + } +} +.o_main_navbar .dropdown-menu.show { + min-width: auto !important; +} +.o_form_view .o_form_uri > span:first-child { + color: $one__primary; +} +.o_onboarding_container{ + margin-top: -1.575rem !important; +} +.o_loading_indicator.o_loading > span { + background: $one__primary !important; +} +.o_menu_systray > li > a > span.fa{ + color: $one__light-font-primary; + font-size: 1.9rem !important; + margin: auto 11px !important; +} + +//`Custom` +.c_navbar_container{ + display: flex; + justify-content: center; + width: 100%; + margin-left: auto; + margin-right: auto; + padding: 0 1rem 0 0 !important; +} + +.c_sidebar_active{ + height: 46px; + width: 60px; + display: flex !important; + justify-content: center; + align-items: center; + background-color: $one__primary; + color: $one__light !important; + margin-right: 1.5rem !important; + clip-path: polygon(0 0, 100% 0%, 86% 100%, 0% 100%); + + &:hover{ + background-color: $one__primary-dark; + transition: $transition-normal; + } +} + +.c_sidebar_passive{ + height: 46px; + width: 60px; + display: flex !important; + justify-content: center; + align-items: center; + background-color: $one__light; + color: $one__primary !important; + clip-path: polygon(0 0, 100% 0%, 86% 100%, 0% 100%); +} + +//END OF NAVBAR +.dropdown-menu{ + border-radius: 0px; + a, .dropdown-item{ + color: $one__light-font-primary; + &:hover{ + color: $one__primary !important; + background-color: $one__primary-light; + transition: $transition-normal; + } + } +} +//Buttons + +.btn{ + border-radius: 0px; + + &:hover{ + filter: brightness(90%) !important; + box-shadow: none; + transition: $transition-normal; + } + +} + +.btn-primary{ + background-color: $one__primary !important; + border-color: $one__primary !important; + color: $one__light !important; + + &:hover{ + background-color: $one__primary-dark !important; + } + + &:focus{ + box-shadow: 0 0 0 0.2rem rgba(235,240,253, 0.8); + } +} +.btn-secondary{ + background-color: $one__hover-bkg-light; + border-color: $one__hover-bkg-light; + color: $one__light-font-primary; + &:focus{ + box-shadow: 0 0 0 0.2rem rgba(245,245,245, 1); + } + + +} +.btn-fill-info, .btn-info { + background-color: $one__info; + border-color: $one__info; + color: $one__light; +} +.btn-group, .o_filter_menu{ + button, div.btn-group{ + margin-right: 3px; + &:last-child{ + margin-right: 0px !important; + } + } +} +.btn-link{ + color: $one__primary !important; + + &:hover{ + background-color: $one__hover-bkg-light !important; + } +} + +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.o_control_panel .o_cp_bottom_left > .o_cp_action_menus .o_dropdown_toggler_btn, +.o_control_panel .o_cp_bottom_left > .o_cp_action_menus .dropdown-toggle + { + margin-right: 0px !important; +} +.o_activity_view .o_record_selector, .o_stat_value { + color: $one__primary !important; +} + +.o_web_settings_invite{ + height: 26px !important; + margin-top: 6px !important; +} + +.o_NotificationList{ + div:hover { + background-color: $one__primary-light; + } +} +.o_MessagingMenu_tabButton, .o_MessagingMenu_newMessageButton{ + color: $one__primary; + opacity: 0.8; + .o-active{ + opacity: 1; + font-weight: bold; + } +} +.o_ThreadPreview_date, .o_activity_filter_button, .o_mail_activity_action{ + color: $one__primary !important; + + &:before{ + color: $one__light-font-primary; + } + &:hover{ + color: $one__primary-dark !important; + } +} +//Controls +.custom-control.custom-checkbox .custom-control-input:not(:checked):not(:indeterminate) ~ .custom-control-label::before { + background: none; + outline: 1px solid $one__hover-bkg-light; +} +.custom-checkbox .custom-control-label::before { + border-radius: 0px; +} +.custom-control-input:checked ~ .custom-control-label::before { + color: $one__light; + border-color: $one__primary; + background-color: $one__primary; +} +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23FFFFFF' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e"); +} + +.o_input{ + border-radius: 0px !important; + border-color: $one__border-light; +} +.o_required_modifier.o_input, .o_required_modifier .o_input, .o_searchview .o_searchview_autocomplete li.o_selection_focus { + background-color: $one__primary-light !important; +} +.ui-menu-item > a{ + background-color: $one__light !important; + color: $one__primary !important; + &:hover, &:active, &:focus, &:focus-within, &:focus-visible, &:visited{ + color: $one__primary !important; + background-color: $one__primary-light !important; + } +} +.nav-tabs .nav-link { + border-radius: 0px !important; + border-top: 3px solid transparent !important; +} +.nav-tabs .nav-link.active { + border-top: 3px solid $one__primary !important; +} +.nav-tabs .nav-link:hover{ + border-top: 3px solid $one__primary !important; + color: $one__primary-dark; + transition: transition-normal !important; +} +.o_form_view .o_horizontal_separator { + color: $one__primary; +} +.panel-heading.note-toolbar { + background-color: $one__light !important; +} +div.o_boolean_toggle.custom-control.custom-checkbox > input.custom-control-input:checked + label.custom-control-label::before { + background-color: $one__primary !important; +} +//Misc. +.badge-primary{ + background-color: $one__primary; + border-radius: 0px; + padding: 5px; +} +//Links +a { + color: $one__primary; + text-decoration: none; + background-color: transparent; + + &hover{ + color: $one__primary-dark; + text-decoration: none; + transition: $transition-normal; + } +} +a.o_menu_brand{ + color: $one__light-font-primary; + font-weight: bold; +} +.o_form_uri{ + color: $one__primary !important; +} +.o_Message_prettyBody > div > p > a { + background-color: $one__primary !important; +} + +.o_onboarding_step_title > a { + color: $one__light; +} +.oe_kanban_action_a{ + color: $one__light-font-primary; +} +.o_kanban_view .oe_kanban_card.oe_kanban_global_click:focus, +.o_kanban_view .oe_kanban_card.oe_kanban_global_click:focus-within, +.o_kanban_view .oe_kanban_card.oe_kanban_global_click_edit:focus, +.o_kanban_view .oe_kanban_card.oe_kanban_global_click_edit:focus-within, +.o_kanban_view .o_kanban_record.oe_kanban_global_click:focus, +.o_kanban_view .o_kanban_record.oe_kanban_global_click:focus-within, +.o_kanban_view .o_kanban_record.oe_kanban_global_click_edit:focus, +.o_kanban_view .o_kanban_record.oe_kanban_global_click_edit:focus-within{ + outline: thin solid $one__primary-light !important; +} +//Tables +.o_list_view thead { + background-color: $one__hover-bkg-light; +} + +.o_list_view .o_list_table thead { + color: $one__light-font-secondary; + border-bottom: 1px solid $one__border-light; +} +.o_list_view .o_list_table thead > tr > th:not(.o_list_record_selector) { + border-left: none; +} +table thead th { + vertical-align: bottom; + border-top: none !important; + border-bottom: none !important; + padding: 1rem !important; +} +table-sm th, .table-sm td { + padding: 1rem !important; + border-top: none !important; +} +tr:nth-child(even){ + background-color: $one__hover-bkg-light; +} +.o_list_view .o_list_table tfoot { + background-color: $one__light; + filter: brightness(95.5%) !important; +} + +//Search +.o_searchview .o_searchview_facet, .o_setting_search { + background: $one__light; + border-radius: 0px !important; + border: 1px solid $one__border-light; + color: $one__light-font-secondary; +} +.o_searchview .o_searchview_facet .o_searchview_facet_label { + background-color: $one__light; +} +.o_searchview .o_searchview_input_container .o_searchview_facet .o_searchview_facet_label { + color: $one__light-font-secondary; + margin: 0px -3px 3px 3px; +} +.o_searchview .o_searchview_input_container .o_searchview_facet .o_facet_remove{ + bottom: 3px !important; +} +.o_searchview .o_searchview_input_container .o_searchview_facet .o_facet_values { + padding: 2px 18px 0 5px !important; +} +.o_searchview{ + padding: 0.5rem !important; + border-radius: 0px; +} +.searchInput{ + border: none !important; +} +.searchIcon{ + margin: 5px 10px 0 0; +} +.o_setting_search { + padding: 5px; + border-radius: $one__border !important; +} + +//Kanban +.oe_kanban_card{ + border-color: $one__border-light; + padding: 1rem !important; +} + +//Calendar +@include c_fadeBackgroundOut('fadeCalendarRow', 1, 0.6, 212, 212, 212 ); + +.o_calendar_sidebar_container .ui-datepicker td.ui-datepicker-current-day.ui-datepicker-today a, +.o_calendar_sidebar_container .ui-datepicker td.ui-datepicker-current-day a, +.o_calendar_view .o_calendar_widget .fc-dayGridMonth-view .fc-content-skeleton .fc-today .fc-day-number +{ + color: $one__light !important; + background-color: $one__primary !important; +} + +.o_calendar_sidebar_container .ui-datepicker td a{ + color: $one__light-font-secondary; +} +.o_calendar_sidebar_container .ui-datepicker td.ui-datepicker-today a{ + background-color: $one__border-light; +} + +.o_calendar_sidebar_container .ui-datepicker .o_selected_range.o_color:not(.ui-datepicker-unselectable) { + animation: fadeCalendarRow 2s forwards; +} + +.fc-now-indicator { + border-color: $one__primary !important; +} +.fc-ltr .fc-time-grid .fc-now-indicator-arrow { + left: 0; + border-width: 5px 0 5px 6px; + border-top-color: transparent !important; + border-bottom-color: transparent !important; +} + +.o_calendar_view .fc-view .fc-event.o_calendar_color_1.o_cw_custom_highlight { + box-shadow: 0 12px 12px -5px rgba(156, 181, 245, 0.8); + color: $one__primary; + font-weight: bold; +} +.o_calendar_view .fc-view .fc-event.o_calendar_color_1 .fc-bg { + background-color: $one__primary-light; +} +.o_calendar_view .fc-view .fc-event.o_calendar_color_1 { + border-color: $one__primary; + color: #274aa5; + opacity: 0.8; + + &:hover{ + background: $one__primary-light; + box-shadow: 0 12px 12px -5px rgba(156, 181, 245, 0.8); + } +} + +.bootstrap-datetimepicker-widget table td.active, .bootstrap-datetimepicker-widget table td.active:hover { + background-color: $one__primary !important; +} + +//Dashboard Sidebar +.o_Discuss, .o_setting_container{ + width: 98%; + margin-right: auto; + margin-left: auto; + border-top: none; +} +.o_widget_Discuss .o_Discuss_content { + border-top: none !important; +} +.o_DiscussSidebar, .settings_tab{ + color: $one__light-font-primary; + background-color: transparent !important; + border-right: 2px solid $one__border-light; + height: 95%; + margin-top: auto; + margin-bottom: auto; +} +.o_DiscussSidebarItem{ + padding: 0.4rem 0 !important; +} +.o_DiscussSidebarItem_activeIndicator.o-item-active{ + width: 0; + height: 0; + background: transparent; + margin-top: 0.375rem; + margin-right: 8px !important; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid $one__primary; +} +.o_DiscussSidebarItem:hover{ + background-color: transparent !important; + color: $one__primary; +} +.o_DiscussSidebar_separator{ + width: 95% !important; + margin-left: auto; + margin-right: auto; + background-color: transparent !important; +} +.o_MessageList{ + padding: 10px !important; +} + +.o_Message.o-not-discussion{ + background-color: $one__hover-bkg-light; + border-color: $one__border-light; +} + +//Settings + +.o_setting_container .settings_tab { + .app_name{ + color: $one__light-font-primary !important; + } +} + +.o_base_settings .o_control_panel .o_panel .o_setting_search .searchInput { + max-width: none !important; + margin: 4px 0 0 10px !important; +} + +.o_setting_container .settings_tab .tab{ + height: 30px !important; +} + +.o_setting_container .settings{ + padding: 10px !important; +} +.o_setting_container .settings_tab .app_name { + color: $one__light-font-primary; + + &:hover{ + color :$one__primary !important; + } +} +.o_setting_container .settings_tab .selected{ + background: transparent !important; + box-shadow: none !important; + position: relative; + + &:before{ + content: ""; + position: absolute; + width: 0; + height: 0; + top: 24%; + left: 0; + background: transparent; + margin-top: 0.375rem; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid $one__primary; + } + + .app_name{ + color: $one__light-font-primary; + + &:hover{ + color :$one__primary !important; + } + } +} + +.o_form_image_controls > .o_select_file_button{ + background: $one__primary !important; + color: $one__light; +} + +.o_search_panel .o_search_panel_category .o_search_panel_section_icon { + color: $one__primary; +} +.o_search_panel .list-group-item header.active { + background-color: $one__primary-light; + color: $one__primary; +} + +//Chat +.o_ChatWindowHeader{ + background-color: $one__primary !important; + color: $one__light !important; + border-radius: 0px !important; +} +//Tables +.o_purchase_dashboard .table > thead > tr > td.o_main, .o_purchase_dashboard .table tbody > tr > td.o_main { + background-color: $one__primary; + + &:hover{ + background-color: $one__primary-dark; + } + + a{ + color: $one__light; + } +} + +//Tags +.o_field_widget.o_field_many2manytags .o_tag_color_5, +.o_kanban_view .o_kanban_record .o_field_many2manytags .o_tag.o_tag_color_5 span, +.o_kanban_view .o_kanban_record .o_kanban_tags .o_tag.o_tag_color_5 span { + background-color: $one__primary; +} + +.badge-pill{ + a{ + color: $one__light; + } +} + + +.o_enterprise_label +{ + border-radius: $one__border; + padding: 5px 10px 4px !important; +} + +.oe_kanban_card .o_kanban_tags .o_tag, .o_kanban_view .o_kanban_record .o_field_many2manytags .o_tag, .o_kanban_view .o_kanban_record .o_kanban_tags .o_tag { + background-color: transparent !important; +} + +.o-menu-toggle{ + display: none !important; +} +.c_dots_menu{ + background-image: url('/vista_backend_theme/static/src/img/icons/dots-menu.png'); + width: 18px; + height: 18px; + background-repeat: no-repeat; + background-size: contain; +} +.c_dots_menu_toggled{ + background-image: $dots_menu_toggled; + width: 18px; + height: 18px; + background-repeat: no-repeat; + background-size: contain; +} + +//Responsive Layout +@media (max-width: 767.98px) { + //Settings + .o_base_settings .o_setting_container { + flex-flow: column nowrap; + + .settings_tab{ + flex-direction: row; + height: 40px; + margin-top: -5px; + justify-content: center; + } + } + //App Bar + .o_control_panel > div { + flex-direction: column; + margin-bottom: 0.5rem; + } + .o_control_panel .breadcrumb > li, .breadcrumb-item > a { + font-size: 1.8rem !important; + margin-bottom: 0.5rem; + } + .o_control_panel .o_cp_top_right { + width: 100%; + margin-bottom: 0.5rem; + } + .o_search_panel .o_search_panel_section_header { + display: none; + } + .o_search_panel { + flex: 0 0 120px !important; + padding: 8px 8px 32px 0px !important; + } + //Discuss + .o_Discuss.o-mobile{ + width: 100% !important; + border-top: 1px solid $one__border-light; + } + .o_MobileMessagingNavbar_tab.o-active > span{ + color: $one__primary !important; + } +} + +//Border Radius +.o_form_button, +.custom-checkbox .custom-control-label::before, +.o_searchview, +.o_searchview .o_searchview_facet, +.o-dropdown--menu > div > button, +.oe_title > div > a +{ + border-right: thick; +// border-radius: $one__border !important; +} +.o_arrow_button{ + border-radius: 0px !important; +} +.dropdown-menu{ + border-radius: 5px !important; +} +input[type='text'], select{ + border-radius: $one__border !important; +} +//Rounded Buttons +.o_form_button_edit, +.o_form_button_create, +.o-kanban-button-new, +.o_button_upload_bill, +.o_DiscussSidebar_startAMeetingButton, +.oe_kanban_action_button, +.o_web_settings_invite, +.oe_module_action > a, +.o_list_buttons > button, +footer > button, +.o_statusbar_buttons > button +{ + border-radius: $one__border !important; + padding: 5px $one__button-padding 3px !important; + margin-right: 5px !important; +} + +#sidebar_panel { + height: 100%; + position: fixed; + top: 0px; + background-color: $one__sidebar-color; + display: none; + width: 80px; + overflow-y: scroll; + -ms-overflow-style: none; /* Hide scrollbar for IE and Edge */ + scrollbar-width: none; /* Hide scrollbar for Firefox */ + z-index: 999; +} +.sidebar_app_name{ + display: none; +} +#sidebar_panel::-webkit-scrollbar { + display: none; /* Hide scrollbar for Chrome, Safari and Opera */ +} +.sidebar_menu{ + margin-top: 20px !important; +} +.sidebar > h6{ + color: $one__light; + font-weight: bold; + text-transform: uppercase; + letter-spacing: 2px; + font-size: 0.9rem; + margin-left: auto; + margin-right: auto; + width: 38px; + display: block; + margin-top: 18px !important; +} +.sidebar_panel .sidebar { + padding: 0; + white-space: nowrap; + padding-bottom: 20px; + padding-top: 5px; +} +.sidebar_panel .sidebar_close { + text-align: end; + display: none; + position: sticky; + height: 35px; + padding-top: 5px; + top: 0; + background: #2a3042; + z-index: 1; +} +.sidebar_panel .sidebar_close a#closeSidebar { + font-size: 18px; + margin-right: 10px; + color: #ffffff; + opacity: .3; +} +.sidebar_panel .sidebar_close a#closeSidebar img { + width: 15px; +} +.sidebar_panel .sidebar .sidebar_logo { + padding-top: 20px; + text-align: center; + padding-bottom: 20px; +} +.sidebar_panel .sidebar .sidebar_logo img { + max-width: 150px; +} + +.sidebar_panel .sidebar .sidebar_head { + padding-top: 20px; + padding-left: none; + color: $one__light; +} + +.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; +} + +.sidebar_panel .sidebar .sidebar_menu li a { + margin: 0; + border: 0px; + display: block; + cursor: pointer; + overflow: hidden; + padding: 8px 10px 8px 25px; + color: #ffffff; + font-size: 13px; + transition:.3s all; +} +.sidebar_panel .sidebar .sidebar_menu li:hover a { + background: $one__sidebar-color-hover; + color: $one__light; +} + +.sidebar_panel .nav-link { + opacity: 1 !important; + transition:.3s all; +} +.sidebar_panel .sidebar a.nav-link.active { + color: $one__light !important; + border-left: 4px solid $one__light; + + img{ + margin-left: -0.5rem !important; + } +} + +.sidebar_panel .sidebar .sidebar_menu li a .sidebar_img { + width: 32px; + height: 32px; + margin: 8px 8px 8px 0; +} +.sidebar_menu > li a.nav-link{ + &:hover{ + transform: scale(1.05) !important; + transition: all 0.3s linear !important; + } +} + +.datepicker{ + z-index: 9999 !important; +} +div.dropdown-menu.bootstrap-datetimepicker-widget { + width: 28rem !important; +} +// .datepicker .table-sm > thead, +// .datepicker > div > table > tbody > tr > td.active{ +// background-color: $one__primary; +// } +// .datepicker .table-sm > thead > tr:first-child th:hover { +// background-color: $one__primary-dark; +// } +// .datepicker .table-sm > tbody > tr > td.today::before{ +// border-bottom-color: $one__primary; +// } +.o_field_statusbar > .o_statusbar_status > .o_arrow_button.o_arrow_button_current:not(.d-none):disabled, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button.o_arrow_button_current:not(.d-none):disabled, .o_field_statusbar > .o_statusbar_status > .o_arrow_button:not(.d-none):active:not(.o_first), .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button:not(.d-none):active:not(.o_first) { + color: white !important; + background-color: black !important; + font-family: inherit !important; +} +.o_field_statusbar > .o_statusbar_status > .o_arrow_button:not(.d-none):disabled, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button:not(.d-none):disabled { + color: #74788d !important; + background-color: white !important; + border-color: #74788d !important; + height: 35px !important; + padding: 5px !important; + padding-right: 20px !important; + padding-left: 20px !important; + border-radius: 5px !important; + font-family: inherit !important; +} +.o_field_statusbar > .o_statusbar_status > .o_arrow_button.o_arrow_button_current:not(.d-none):disabled:after, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button.o_arrow_button_current:not(.d-none):disabled:after, .o_field_statusbar > .o_statusbar_status > .o_arrow_button:not(.d-none):active:not(.o_first):after, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button:not(.d-none):active:not(.o_first):after { + border-left-color: black; +} +.o_field_statusbar > .o_statusbar_status > .o_arrow_button:not(.d-none):not(.o_first):before, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button:not(.d-none):not(.o_first):before, .o_field_statusbar > .o_statusbar_status > .o_arrow_button:not(.d-none):not(.o_last):before, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button:not(.d-none):not(.o_last):before { + right: calc(-1em - 1px); + border-left-color: #74788d !important; +} +.o_main_navbar .o_menu_sections .dropdown-toggle { + background: white; + border: 1px solid transparent; +} +.o_facet_remove{ + margin-top: 5px; +} +.o_switch_company_menu > .o-dropdown--menu { + top: 48px !important; + left: 80% !important; + right: -21px !important; + width: 15% !important; + margin-left: -100.391px !important; +} +.o_user_menu > .o-dropdown--menu { + margin-left: 11px !important; +} +.dropdown-menu a,{ + color: white !important; +} +.o-mail-DiscussSystray-class > .o-dropdown--menu{ + margin-left: -640.859px !important; + width:460px !important; +} +.o-mail-DiscussSystray-class> .o-mail-DiscussSystray > .o-mail-ActivityMenu{ + width: 309px; + max-height: 400px; + min-height: 50px; + margin-left: 149px; +} + +.o_menu_sections .o-dropdown.dropdown > .o-dropdown--menu, .o_menu_systray .o-dropdown.dropdown > .o-dropdown--menu { + border-color: transparent; + margin-left: -590px !important; +} +.o_menu_systray .o-dropdown.dropdown > .o-dropdown--menu { + border-color: transparent; + margin-left: -516px !important; +} \ No newline at end of file diff --git a/vista_backend_theme/static/src/scss/theme_green.scss b/vista_backend_theme/static/src/scss/theme_green.scss new file mode 100644 index 000000000..852be57cb --- /dev/null +++ b/vista_backend_theme/static/src/scss/theme_green.scss @@ -0,0 +1,1084 @@ +//Font CSS +/* devanagari */ +@font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 400; + src: url(https://fonts.gstatic.com/s/poppins/v15/pxiEyp8kv8JHgFVrJJbecmNE.woff2) format('woff2'); + unicode-range: U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200C-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB; +} +/* latin-ext */ +@font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 400; + src: url(https://fonts.gstatic.com/s/poppins/v15/pxiEyp8kv8JHgFVrJJnecmNE.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 400; + src: url(https://fonts.gstatic.com/s/poppins/v15/pxiEyp8kv8JHgFVrJJfecg.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* devanagari */ +@font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 600; + src: url(https://fonts.gstatic.com/s/poppins/v15/pxiByp8kv8JHgFVrLEj6Z11lFc-K.woff2) format('woff2'); + unicode-range: U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200C-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB; +} +/* latin-ext */ +@font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 600; + src: url(https://fonts.gstatic.com/s/poppins/v15/pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2) format('woff2'); + unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Poppins'; + font-style: normal; + font-weight: 600; + src: url(https://fonts.gstatic.com/s/poppins/v15/pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} + +//Variables +$one__font: 'Poppins', Helvetica, Verdana, Arial, sans-serif !important; + +//Colors +$one__light: #fff !default; +$one__primary: #00A97F !default; +$one__sidebar-color: #fff !important; +$one__sidebar-color-hover: #e6f6f2 !default; +$one__sidebar-border: #E9E9E9 !important; +$one__sidebar_text: #00A97F !default; +$one__primary-light: #e6f6f2 !default; +$one__primary-dark: #009872 !important; +$one__light-font-primary: #575757 !important; +$one__light-font-secondary: #575757 !important; +$one__hover-bkg-light: #f5f5f5 !important; +$one__border-light: #d4d4d4 !important; +$one__info: #454555 !important; +//Border Style +$one__border: 3px; +$one__button-padding: auto; +//Misc +$transition-normal: all 0.4s linear !default; +$transition-fast: all 0.2s linear !default; + + +//Paths +$dots_menu_toggled: url('/vista_backend_theme/static/src/img/icons/dots-menu-green.png'); + + + +//Misc +$transition-normal: all 0.4s linear !default; + +//Animations +@mixin c_fadeBackgroundOut($name, $s_opacity, $e_opacity, $r, $g, $b){ + @keyframes #{$name}{ + 0%{ + background-color: rgba($r, $g, $b, $s_opacity); + } + + 100%{ + background-color: rgba($r, $g, $b, $e_opacity); + } + } +} + + + +body{ + background-color: $one__light !important; + font-family: $one__font; +} +//NAVBAR +.o_main_navbar { + -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; + background-color: $one__light; + border-bottom: none; + -moz-box-shadow: rgba(0, 0, 0, 0.19) 0px 10px 20px, rgba(0, 0, 0, 0.5) 0px 6px 6px; + -webkit-box-shadow: rgba(0, 0, 0, 0.19) 0px 10px 20px, rgba(0, 0, 0, 0.5) 0px 6px 6px; + box-shadow: rgba(0, 0, 0, 0.19) 0px 10px 20px, rgba(0, 0, 0, 0.5) 0px 6px 6px; + color: $one__light-font-primary; +} + +.top_heading .o_menu_brand{ + color: $one__light-font-primary; + font-size: 1.5rem !important; + font-weight:bold; + +} +.dropdown-toggle{ + color:black !important; + } +.o_menu_systray > li{ + font-size: 1.5rem !important; + } + +.o_menu_systray > *{ + margin-right: 15px; + &:last-child{ + margin-right: 0px; + } + + @media (max-width: 767.98px) { + margin-right: 0px !important; + &:last-child{ + margin-right: 0px; + } + } +} +@media (max-width: 767.98px) { + .o_user_menu .o_user_avatar { + margin-right: 0px !important; + } +} + +li.o_MessagingMenu.o-is-open { + background-color: $one__hover-bkg-light; + border-bottom: none !important; +} +.o_mail_systray_item .o_notification_counter{ + background-color: $one__primary !important; + color: $one__light !important; +} +.o_MessagingMenu_counter { + margin-left: -12px !important; +} +.o_notification_counter{ + margin-left: -18px !important; +} +.o_NotificationGroup_date{ + color: $one__primary !important +} +.o_menu_sections > li > a, .o_main_navbar > li > label{ + color: $one__light-font-primary; + display: block !important; + &:hover{ + background-color: $one__hover-bkg-light; + } +} +.o_switch_company_menu > a{ + color: $one__light-font-primary; + font-size: 1.8rem !important +} +.oe_topbar_name{ + color: $one__light-font-primary; + + @media (max-width: 576px) { + display: none; + } +} +.o_main_navbar > a:hover, .o_main_navbar > a:focus, .o_main_navbar > button:hover, .o_main_navbar > button:focus { + background-color: $one__hover-bkg-light; +} + +.o_MessagingMenu, .o_mail_systray_item{ + a{ + color: $one__light-font-primary; + } +} +.o_MessagingMenu_counter, .o_notification_counter { + background-color: $one__primary; + color: $one__light; +} +.o_main_navbar .show .dropdowdropdown-toggle, .o_main_navbar .show .dropdown-toggle { + background-color: $one__hover-bkg-light; +} +.o_main_navbar .o_user_menu .oe_topbar_avatar { + height: 32px !important; + width: 32px !important; +} +.oe_topbar_name{ + color: $one__light-font-primary !important; +} +.o_dashboards .o_website_dashboard div.o_box h2, .o_dashboards .o_website_dashboard div.o_box h4 { + color: $one__primary !important; +} +.o_control_panel { + padding: 2.5rem 1rem !important; + margin-bottom: 1.5rem !important; + border-bottom: 1px solid $one__border-light; + width: 98%; + margin-left: auto; + margin-right: auto; +} +.o_form_view .oe_button_box .oe_stat_button .o_button_icon { + color: $one__primary; +} +.o_control_panel .breadcrumb{ + background-color: none !important; + padding: auto !important +} +.o_control_panel .breadcrumb > li, .breadcrumb-item > a{ + font-size: 2rem !important; + color: $one__light-font-secondary; + max-width: 100% !important; +} +.o_control_panel > div{ + display: flex; + justify-content: space-between; +} + +.breadcrumb-item.active{ + $color: $one__light-font-primary; +} +.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled::after, +.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled::before { + border-left-color: $one__primary !important; +} +.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.btn-primary.disabled::after, +.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button:not(:first-child)::before { + border-left-color: none !important; +} +.o_statusbar_status > .o_arrow_button.btn-secondary{ + background-color: $one__light !important; +} +.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button.disabled { + border-left: none !important; +} +.o_content{ + width: 98%; + margin-left: auto; + margin-right: auto; +} +.top_heading{ + display: flex; + align-items: center; + ul.o_menu_apps{ + list-style: none; + margin: 0 0.8rem 0 0; + padding: 0px; + } + li.dropdown{ + list-style: none; + } + a.o_menu_brand{ + color: $one__light-font-primary; + font-size: 1.5rem !important; + } +} +.o_menu_sections, .o_menu_systray{ + display: flex; + align-items: center; + list-style: none !important; + + li{ + margin-right: 1rem; + + &:last-child{ + margin-right: 0 !important; + } + } + .o-dropdown.dropdown > .o-dropdown--menu{ + border-color: transparent; + } +} +.o_main_navbar .dropdown .dropdown-toggle, +.o_main_navbar .o_menu_sections .dropdown .dropdown-toggle, +.o_nav_entry +{ + color: $one__light-font-primary; +} +.o_menu_systray, .o_menu_sections{ + li{ + position: relative !important; + a.o_MessagingMenu_toggler, a.dropdown-toggle{ + display: flex !important; + align-items: center !important; + height: 60px !important; + padding: 0px 7.5px; + + img{ + margin-right: 0.8rem; + transform: none !important; + } + } + } +} +.o_main_navbar .dropdown-menu.show { + min-width: auto !important; +} +.o_form_view .o_form_uri > span:first-child { + color: $one__primary; +} +.o_onboarding_container{ + margin-top: -1.575rem !important; +} +.o_loading_indicator.o_loading > span { + background: $one__primary !important; +} +.o_menu_systray > li > a > span.fa{ + color: $one__light-font-primary; + font-size: 1.9rem !important; + margin: auto 11px !important; +} + +//`Custom` +.c_navbar_container{ + display: flex; + justify-content: center; + width: 100%; + margin-left: auto; + margin-right: auto; + padding: 0 1rem 0 0 !important; +} + +.c_sidebar_active{ + height: 46px; + width: 60px; + display: flex !important; + justify-content: center; + align-items: center; + background-color: $one__primary; + color: $one__light !important; + margin-right: 1.5rem !important; + clip-path: polygon(0 0, 100% 0%, 86% 100%, 0% 100%); + + &:hover{ + background-color: $one__primary-dark; + transition: $transition-normal; + } +} + +.c_sidebar_passive{ + height: 46px; + width: 60px; + display: flex !important; + justify-content: center; + align-items: center; + background-color: $one__light; + color: $one__primary !important; + clip-path: polygon(0 0, 100% 0%, 86% 100%, 0% 100%); +} + +//END OF NAVBAR +.dropdown-menu{ + border-radius: 0px; + a, .dropdown-item{ + color: $one__light-font-primary; + &:hover{ + color: $one__primary !important; + background-color: $one__primary-light; + transition: $transition-normal; + } + } +} +//Buttons + +.btn{ + border-radius: 0px; + + &:hover{ + filter: brightness(90%) !important; + box-shadow: none; + transition: $transition-normal; + } + +} + +.btn-primary{ + background-color: $one__primary !important; + border-color: $one__primary !important; + color: $one__light !important; + + &:hover{ + background-color: $one__primary-dark !important; + } + + &:focus{ + box-shadow: 0 0 0 0.2rem rgba(235,240,253, 0.8); + } +} +.btn-secondary{ + background-color: $one__hover-bkg-light; + border-color: $one__hover-bkg-light; + color: $one__light-font-primary; + &:focus{ + box-shadow: 0 0 0 0.2rem rgba(245,245,245, 1); + } + + +} +.btn-fill-info, .btn-info { + background-color: $one__info; + border-color: $one__info; + color: $one__light; +} +.btn-group, .o_filter_menu{ + button, div.btn-group{ + margin-right: 3px; + &:last-child{ + margin-right: 0px !important; + } + } +} +.btn-link{ + color: $one__primary !important; + + &:hover{ + background-color: $one__hover-bkg-light !important; + } +} + +.o_control_panel .o_cp_bottom_left > .o_cp_action_menus .o_dropdown_toggler_btn, +.o_control_panel .o_cp_bottom_left > .o_cp_action_menus .dropdown-toggle + { + margin-right: 0px !important; +} +.o_activity_view .o_record_selector, .o_stat_value { + color: $one__primary !important; +} + +.o_web_settings_invite{ + height: 26px !important; + margin-top: 6px !important; +} + +.o_NotificationList{ + div:hover { + background-color: $one__primary-light; + } +} +.o_MessagingMenu_tabButton, .o_MessagingMenu_newMessageButton{ + color: $one__primary; + opacity: 0.8; + .o-active{ + opacity: 1; + font-weight: bold; + } +} +.o_ThreadPreview_date, .o_activity_filter_button, .o_mail_activity_action{ + color: $one__primary !important; + + &:before{ + color: $one__light-font-primary; + } + &:hover{ + color: $one__primary-dark !important; + } +} +//Controls +.custom-control.custom-checkbox .custom-control-input:not(:checked):not(:indeterminate) ~ .custom-control-label::before { + background: none; + outline: 1px solid $one__hover-bkg-light; +} +.custom-checkbox .custom-control-label::before { + border-radius: 0px; +} +.custom-control-input:checked ~ .custom-control-label::before { + color: $one__light; + border-color: $one__primary; + background-color: $one__primary; +} +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23FFFFFF' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e"); +} + +.o_input{ + border-radius: 0px !important; + border-color: $one__border-light; +} +.o_required_modifier.o_input, .o_required_modifier .o_input, .o_searchview .o_searchview_autocomplete li.o_selection_focus { + background-color: $one__primary-light !important; +} +.ui-menu-item > a{ + background-color: $one__light !important; + color: $one__primary !important; + &:hover, &:active, &:focus, &:focus-within, &:focus-visible, &:visited{ + color: $one__primary !important; + background-color: $one__primary-light !important; + } +} +.nav-tabs .nav-link { + border-radius: 0px !important; + border-top: 3px solid transparent !important; +} +.nav-tabs .nav-link.active { + border-top: 3px solid $one__primary !important; +} +.nav-tabs .nav-link:hover{ + border-top: 3px solid $one__primary !important; + color: $one__primary-dark; + transition: transition-normal !important; +} +.o_form_view .o_horizontal_separator { + color: $one__primary; +} +.panel-heading.note-toolbar { + background-color: $one__light !important; +} +div.o_boolean_toggle.custom-control.custom-checkbox > input.custom-control-input:checked + label.custom-control-label::before { + background-color: $one__primary !important; +} +//Misc. +.badge-primary{ + background-color: $one__primary; + border-radius: 0px; + padding: 5px; +} +//Links +a { + color: $one__primary; + text-decoration: none; + background-color: transparent; + + &hover{ + color: $one__primary-dark; + text-decoration: none; + transition: $transition-normal; + } +} +a.o_menu_brand{ + color: $one__light-font-primary; + font-weight: bold; +} +.o_form_uri{ + color: $one__primary !important; +} +.o_Message_prettyBody > div > p > a { + background-color: $one__primary !important; +} + +.o_onboarding_step_title > a { + color: $one__light; +} +.oe_kanban_action_a{ + color: $one__light-font-primary; +} + +.o_kanban_view .oe_kanban_card.oe_kanban_global_click:focus, +.o_kanban_view .oe_kanban_card.oe_kanban_global_click:focus-within, +.o_kanban_view .oe_kanban_card.oe_kanban_global_click_edit:focus, +.o_kanban_view .oe_kanban_card.oe_kanban_global_click_edit:focus-within, +.o_kanban_view .o_kanban_record.oe_kanban_global_click:focus, +.o_kanban_view .o_kanban_record.oe_kanban_global_click:focus-within, +.o_kanban_view .o_kanban_record.oe_kanban_global_click_edit:focus, +.o_kanban_view .o_kanban_record.oe_kanban_global_click_edit:focus-within{ + outline: thin solid $one__primary-light !important; +} + +//Tables +.o_list_view thead { + background-color: $one__hover-bkg-light; +} + +.o_list_view .o_list_table thead { + color: $one__light-font-secondary; + border-bottom: 1px solid $one__border-light; +} +.o_list_view .o_list_table thead > tr > th:not(.o_list_record_selector) { + border-left: none; +} +table thead th { + vertical-align: bottom; + border-top: none !important; + border-bottom: none !important; + padding: 1rem !important; +} +table-sm th, .table-sm td { + padding: 1rem !important; + border-top: none !important; +} +tr:nth-child(even){ + background-color: $one__hover-bkg-light; +} +.o_list_view .o_list_table tfoot { + background-color: $one__light; + filter: brightness(95.5%) !important; +} + +//Search +.o_searchview .o_searchview_facet, .o_setting_search { + background: $one__light; + border-radius: 0px !important; + border: 1px solid $one__border-light; + color: $one__light-font-secondary; +} +.o_searchview .o_searchview_facet .o_searchview_facet_label { + background-color: $one__light; +} +.o_searchview .o_searchview_input_container .o_searchview_facet .o_searchview_facet_label { + color: $one__light-font-secondary; + margin: 0px -3px 3px 3px; +} +.o_searchview .o_searchview_input_container .o_searchview_facet .o_facet_remove{ + bottom: 3px !important; +} +.o_searchview .o_searchview_input_container .o_searchview_facet .o_facet_values { + padding: 2px 18px 0 5px !important; +} +.o_searchview{ + padding: 0.5rem !important; + border-radius: 0px; +} +.searchInput{ + border: none !important; +} +.searchIcon{ + margin: 5px 10px 0 0; +} +.o_setting_search { + padding: 5px; +} + +//Kanban +.oe_kanban_card{ + border-color: $one__border-light; + padding: 1rem !important; +} + +//Calendar +@include c_fadeBackgroundOut('fadeCalendarRow', 1, 0.6, 212, 212, 212 ); + +.o_calendar_sidebar_container .ui-datepicker td.ui-datepicker-current-day.ui-datepicker-today a, +.o_calendar_sidebar_container .ui-datepicker td.ui-datepicker-current-day a, +.o_calendar_view .o_calendar_widget .fc-dayGridMonth-view .fc-content-skeleton .fc-today .fc-day-number +{ + color: $one__light !important; + background-color: $one__primary !important; +} + +.o_calendar_sidebar_container .ui-datepicker td a{ + color: $one__light-font-secondary; +} +.o_calendar_sidebar_container .ui-datepicker td.ui-datepicker-today a{ + background-color: $one__border-light; +} + +.o_calendar_sidebar_container .ui-datepicker .o_selected_range.o_color:not(.ui-datepicker-unselectable) { + animation: fadeCalendarRow 2s forwards; +} + +.fc-now-indicator { + border-color: $one__primary !important; +} +.fc-ltr .fc-time-grid .fc-now-indicator-arrow { + left: 0; + border-width: 5px 0 5px 6px; + border-top-color: transparent !important; + border-bottom-color: transparent !important; +} + +.o_calendar_view .fc-view .fc-event.o_calendar_color_1.o_cw_custom_highlight { + box-shadow: 0 12px 12px -5px rgba(156, 181, 245, 0.8); + color: $one__primary; + font-weight: bold; +} +.o_calendar_view .fc-view .fc-event.o_calendar_color_1 .fc-bg { + background-color: $one__primary-light; +} +.o_calendar_view .fc-view .fc-event.o_calendar_color_1 { + border-color: $one__primary; + color: #274aa5; + opacity: 0.8; + + &:hover{ + background: $one__primary-light; + box-shadow: 0 12px 12px -5px rgba(156, 181, 245, 0.8); + } +} + +.bootstrap-datetimepicker-widget table td.active, .bootstrap-datetimepicker-widget table td.active:hover { + background-color: $one__primary !important; +} + +//Dashboard Sidebar +.o_Discuss, .o_setting_container{ + width: 98%; + margin-right: auto; + margin-left: auto; + border-top: none; +} +.o_widget_Discuss .o_Discuss_content { + border-top: none !important; +} +.o_DiscussSidebar, .settings_tab{ + color: $one__light-font-primary; + background-color: transparent !important; + border-right: 2px solid $one__border-light; + height: 95%; + margin-top: auto; + margin-bottom: auto; +} +.o_DiscussSidebarItem{ + padding: 0.4rem 0 !important; +} +.o_DiscussSidebarItem_activeIndicator.o-item-active{ + width: 0; + height: 0; + background: transparent; + margin-top: 0.375rem; + margin-right: 8px !important; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid $one__primary; +} +.o_DiscussSidebarItem:hover{ + background-color: transparent !important; + color: $one__primary; +} +.o_DiscussSidebar_separator{ + width: 95% !important; + margin-left: auto; + margin-right: auto; + background-color: transparent !important; +} +.o_MessageList{ + padding: 10px !important; +} + +.o_Message.o-not-discussion{ + background-color: $one__hover-bkg-light; + border-color: $one__border-light; +} + +//Settings + +.o_setting_container .settings_tab { + .app_name{ + color: $one__light-font-primary !important; + } +} + +.o_base_settings .o_control_panel .o_panel .o_setting_search .searchInput { + max-width: none !important; + margin: 4px 0 0 10px !important; +} + +.o_setting_container .settings_tab .tab{ + height: 30px !important; +} + +.o_setting_container .settings{ + padding: 10px !important; +} +.o_setting_container .settings_tab .app_name { + color: $one__light-font-primary; + + &:hover{ + color :$one__primary !important; + } +} +.o_setting_container .settings_tab .selected{ + background: transparent !important; + box-shadow: none !important; + position: relative; + + &:before{ + content: ""; + position: absolute; + width: 0; + height: 0; + top: 24%; + left: 0; + background: transparent; + margin-top: 0.375rem; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid $one__primary; + } + + .app_name{ + color: $one__light-font-primary; + + &:hover{ + color :$one__primary !important; + } + } +} + +.o_form_image_controls > .o_select_file_button{ + background: $one__primary !important; + color: $one__light; +} + +.o_search_panel .o_search_panel_category .o_search_panel_section_icon { + color: $one__primary; +} +.o_search_panel .list-group-item header.active { + background-color: $one__primary-light; + color: $one__primary; +} + +//Chat +.o_ChatWindowHeader{ + background-color: $one__primary !important; + color: $one__light !important; + border-radius: 0px !important; +} +//Tables +.o_purchase_dashboard .table > thead > tr > td.o_main, .o_purchase_dashboard .table tbody > tr > td.o_main { + background-color: $one__primary; + + &:hover{ + background-color: $one__primary-dark; + } + + a{ + color: $one__light; + } +} + +//Tags +.o_field_widget.o_field_many2manytags .o_tag_color_5, +.o_kanban_view .o_kanban_record .o_field_many2manytags .o_tag.o_tag_color_5 span, +.o_kanban_view .o_kanban_record .o_kanban_tags .o_tag.o_tag_color_5 span { + background-color: $one__primary; +} + +.badge-pill{ + a{ + color: $one__light; + } +} +.oe_kanban_card .o_kanban_tags .o_tag, .o_kanban_view .o_kanban_record .o_field_many2manytags .o_tag, .o_kanban_view .o_kanban_record .o_kanban_tags .o_tag { + background-color: transparent !important; +} + +.o-menu-toggle{ + display: none !important; +} +.c_dots_menu{ + background-image: url('/vista_backend_theme/static/src/img/icons/dots-menu.png'); + width: 18px; + height: 18px; + background-repeat: no-repeat; + background-size: contain; +} +.c_dots_menu_toggled{ + background-image: $dots_menu_toggled; + width: 18px; + height: 18px; + background-repeat: no-repeat; + background-size: contain; +} + +//Responsive Layout +@media (max-width: 767.98px) { + //Settings + .o_base_settings .o_setting_container { + flex-flow: column nowrap; + + .settings_tab{ + flex-direction: row; + height: 40px; + margin-top: -5px; + justify-content: center; + } + } + //App Bar + .o_control_panel > div { + flex-direction: column; + margin-bottom: 0.5rem; + } + .o_control_panel .breadcrumb > li, .breadcrumb-item > a { + font-size: 1.8rem !important; + margin-bottom: 0.5rem; + } + .o_control_panel .o_cp_top_right { + width: 100%; + margin-bottom: 0.5rem; + } + .o_search_panel .o_search_panel_section_header { + display: none; + } + .o_search_panel { + flex: 0 0 120px !important; + padding: 8px 8px 32px 0px !important; + } + //Discuss + .o_Discuss.o-mobile{ + width: 100% !important; + border-top: 1px solid $one__border-light; + } + .o_MobileMessagingNavbar_tab.o-active > span{ + color: $one__primary !important; + } +} + +//Border Radius +.btn, +.custom-checkbox .custom-control-label::before, +.o_searchview, +.dropdown-menu, +.o_searchview .o_searchview_facet +{ + border-radius: $one__border !important; +} + +#sidebar_panel { + height: 100%; + position: fixed; + top: 0px; + background-color: $one__sidebar-color; + border-right: 1px solid $one__sidebar-border; + display: none; + width: 80px; + overflow-y: scroll; + -ms-overflow-style: none; /* Hide scrollbar for IE and Edge */ + scrollbar-width: none; /* Hide scrollbar for Firefox */ + z-index: 999; +} +.sidebar_app_name{ + display: none; +} +#sidebar_panel::-webkit-scrollbar { + display: none; /* Hide scrollbar for Chrome, Safari and Opera */ +} +.sidebar_menu{ + margin-top: 20px !important; +} +.sidebar > h6{ + color: $one__light; + font-weight: bold; + text-transform: uppercase; + letter-spacing: 2px; + font-size: 0.9rem; + margin-left: auto; + margin-right: auto; + width: 38px; + display: block; + margin-top: 18px !important; +} +.sidebar_panel .sidebar { + padding: 0; + white-space: nowrap; + padding-bottom: 20px; + padding-top: 5px; +} +.sidebar_panel .sidebar_close { + text-align: end; + display: none; + position: sticky; + height: 35px; + padding-top: 5px; + top: 0; + background: #2a3042; + z-index: 1; +} +.sidebar_panel .sidebar_close a#closeSidebar { + font-size: 18px; + margin-right: 10px; + color: #ffffff; + opacity: .3; +} +.sidebar_panel .sidebar_close a#closeSidebar img { + width: 15px; +} +.sidebar_panel .sidebar .sidebar_logo { + padding-top: 20px; + text-align: center; + padding-bottom: 20px; +} +.sidebar_panel .sidebar .sidebar_logo img { + max-width: 150px; +} + +.sidebar_panel .sidebar .sidebar_head { + padding-top: 20px; + padding-left: none; + color: $one__sidebar_text; +} + +.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; +} + +.sidebar_panel .sidebar .sidebar_menu li a { + margin: 0; + border: 0px; + display: block; + cursor: pointer; + overflow: hidden; + padding: 8px 10px 8px 25px; + color: #ffffff; + font-size: 13px; + transition:.3s all; +} +.sidebar_panel .sidebar .sidebar_menu li:hover a { + background: $one__sidebar-color-hover; + color: $one__light; +} + +.sidebar_panel .nav-link { + opacity: 1 !important; + transition:.3s all; +} +.sidebar_panel .sidebar a.nav-link.active { + color: $one__light !important; + border-left: 4px solid $one__light; + + img{ + margin-left: -0.5rem !important; + } +} + +.sidebar_panel .sidebar .sidebar_menu li a .sidebar_img { + width: 32px; + height: 32px; + margin: 8px 8px 8px 0; +} +.sidebar_menu > li a.nav-link{ + &:hover{ + transform: scale(1.05) !important; + transition: all 0.3s linear !important; + } +} + +.datepicker{ + z-index: 9999 !important; +} +div.dropdown-menu.bootstrap-datetimepicker-widget { + width: 28rem !important; +} + +.o_field_statusbar > .o_statusbar_status > .o_arrow_button.o_arrow_button_current:not(.d-none):disabled, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button.o_arrow_button_current:not(.d-none):disabled, .o_field_statusbar > .o_statusbar_status > .o_arrow_button:not(.d-none):active:not(.o_first), .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button:not(.d-none):active:not(.o_first) { + color: white !important; + background-color: #00A97F !important; + font-family: inherit !important; +} +.o_field_statusbar > .o_statusbar_status > .o_arrow_button:not(.d-none):disabled, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button:not(.d-none):disabled { + color: #00A97F !important; + background-color: white !important; + border-color: #00A97F !important; + height: 35px !important; + padding: 5px !important; + padding-right: 20px !important; + padding-left: 20px !important; + border-radius: 5px !important; + font-family: inherit !important; +} +.o_field_statusbar > .o_statusbar_status > .o_arrow_button.o_arrow_button_current:not(.d-none):disabled:after, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button.o_arrow_button_current:not(.d-none):disabled:after, .o_field_statusbar > .o_statusbar_status > .o_arrow_button:not(.d-none):active:not(.o_first):after, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button:not(.d-none):active:not(.o_first):after { + border-left-color: #00A97F; +} +.o_field_statusbar > .o_statusbar_status > .o_arrow_button:not(.d-none):not(.o_first):before, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button:not(.d-none):not(.o_first):before, .o_field_statusbar > .o_statusbar_status > .o_arrow_button:not(.d-none):not(.o_last):before, .o_field_statusbar_duration > .o_statusbar_status > .o_arrow_button:not(.d-none):not(.o_last):before { + right: calc(-1em - 1px); + border-left-color: #00A97F !important; +} +.o_main_navbar .o_menu_sections .dropdown-toggle { + background: white; + border: 1px solid transparent; +} +.o_facet_remove{ + margin-top: 5px; +} diff --git a/vista_backend_theme/static/src/xml/systray_templates.xml b/vista_backend_theme/static/src/xml/systray_templates.xml new file mode 100644 index 000000000..83e549948 --- /dev/null +++ b/vista_backend_theme/static/src/xml/systray_templates.xml @@ -0,0 +1,20 @@ + + + + +
  • + +
  • +
    +
    diff --git a/vista_backend_theme/static/src/xml/top_bar_templates.xml b/vista_backend_theme/static/src/xml/top_bar_templates.xml new file mode 100644 index 000000000..7117f8703 --- /dev/null +++ b/vista_backend_theme/static/src/xml/top_bar_templates.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + diff --git a/vista_backend_theme/views/assets_views.xml b/vista_backend_theme/views/assets_views.xml new file mode 100644 index 000000000..a140d0d0d --- /dev/null +++ b/vista_backend_theme/views/assets_views.xml @@ -0,0 +1,39 @@ + + + + + Theme Vista Backend Green + web.assets_backend + replace + /vista_backend_theme/static/src/scss/theme.scss + /vista_backend_theme/static/src/scss/theme_green.scss + False + + + + Theme Vista Backend Black + web.assets_backend + replace + /vista_backend_theme/static/src/scss/theme.scss + /vista_backend_theme/static/src/scss/theme_black.scss + False + + + + Theme Vista frond + web.assets_frontend + replace + /vista_backend_theme/static/src/scss/login.scss + /vista_backend_theme/static/src/scss/login_black.scss + False + + + + Theme Vista + web.assets_frontend + replace + /vista_backend_theme/static/src/scss/login.scss + /vista_backend_theme/static/src/scss/login_green.scss + False + + diff --git a/vista_backend_theme/views/icons_views.xml b/vista_backend_theme/views/icons_views.xml new file mode 100644 index 000000000..b05bd5aea --- /dev/null +++ b/vista_backend_theme/views/icons_views.xml @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/vista_backend_theme/views/layout_templates.xml b/vista_backend_theme/views/layout_templates.xml new file mode 100644 index 000000000..4b3810ad2 --- /dev/null +++ b/vista_backend_theme/views/layout_templates.xml @@ -0,0 +1,125 @@ + + + + + + + + + diff --git a/vista_backend_theme/views/theme_data_views.xml b/vista_backend_theme/views/theme_data_views.xml new file mode 100644 index 000000000..c9554e9d0 --- /dev/null +++ b/vista_backend_theme/views/theme_data_views.xml @@ -0,0 +1,37 @@ + + + + + them.data.form + theme.data + +
    +
    +
    + + + + + + + +
    +
    +
    + + + theme data + theme.data + form + + new + + + +
    diff --git a/vista_backend_theme/wizard/__init__.py b/vista_backend_theme/wizard/__init__.py new file mode 100644 index 000000000..8cf1def59 --- /dev/null +++ b/vista_backend_theme/wizard/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-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 theme_data diff --git a/vista_backend_theme/wizard/theme_data.py b/vista_backend_theme/wizard/theme_data.py new file mode 100644 index 000000000..b059345d7 --- /dev/null +++ b/vista_backend_theme/wizard/theme_data.py @@ -0,0 +1,461 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-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 . +# +############################################################################# +import base64 +from odoo import api, fields, models +import odoo.modules + + +class ThemeData(models.TransientModel): + """create a TransientModel for a wizard""" + _name = "theme.data" + + def _get_current_theme(self): + """Create a function for get the Current theme""" + return self.env['theme.data.stored'].sudo().search([], limit=1).name + + name = fields.Selection([ + ('default', 'Default'), + ('two', 'Green'), + ('three', 'Black'), + ], 'Theme', required=True, default=_get_current_theme) + + @api.onchange('name') + def _onchange_name(self): + """changing the name using on Change""" + theme = self.sudo().env.ref('vista_backend_theme.theme_data_stored') + if theme: + theme.name = self.name + else: + theme.create({ + 'name': self.name + }) + + def action_apply(self): + """create Apply action for the wizard """ + name = self.env['theme.data.stored'].sudo().search([], limit=1).name + if name == 'two': + self.env.ref( + 'vista_backend_theme.vista_theme_css_black').active = False + self.env.ref( + 'vista_backend_theme.vista_theme_css_login_black').active = False + self.env.ref( + 'vista_backend_theme.vista_theme_css_green').active = True + self.env.ref( + 'vista_backend_theme.vista_theme_css_login_green').active = True + self.icon_change_theme_green() + elif name == 'three': + self.env.ref( + 'vista_backend_theme.vista_theme_css_green').active = False + self.env.ref( + 'vista_backend_theme.vista_theme_css_login_green').active = False + self.env.ref( + 'vista_backend_theme.vista_theme_css_black').active = True + self.env.ref( + 'vista_backend_theme.vista_theme_css_login_black').active = True + self.icon_change_theme_default() + else: + self.env.ref( + 'vista_backend_theme.vista_theme_css_green').active = False + self.env.ref( + 'vista_backend_theme.vista_theme_css_black').active = False + self.env.ref( + 'vista_backend_theme.vista_theme_css_login_green').active = False + self.env.ref( + 'vista_backend_theme.vista_theme_css_login_black').active = False + self.icon_change_theme_default() + return { + 'type': 'ir.actions.client', + 'tag': 'reload', + } + + def icon_change_theme_default(self): + """create change theme default function""" + menu_item = self.env['ir.ui.menu'].sudo().search( + [('parent_id', '=', False)]) + for menu in menu_item: + if menu.name == 'Contacts': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/contacts.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Link Tracker': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/link-tracker.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Dashboards': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/dashboards.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Sales': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/sales.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Invoicing': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/accounting.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Accounting': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/accounting.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Inventory': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/inventory.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Purchase': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/purchase.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Calendar': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/calendar.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'CRM': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/crm.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Note': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/notes.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Website': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/website.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Point of Sale': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/pos.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Manufacturing': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/manufacturing.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Repairs': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/repairs.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Email Marketing': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/email-marketing.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'SMS Marketing': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/sms-marketing.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Project': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/project.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Surveys': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/surveys.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Employees': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/employee.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Recruitment': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/recruitment.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Attendances': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/attendances.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Time Off': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/timeoff.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Expenses': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/expenses.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Maintenance': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/maintenance.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Live Chat': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/live-chat.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Lunch': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/lunch.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Fleet': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/fleet.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Timesheets': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/timesheet.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Events': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/events.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'eLearning': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/elearning.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Members': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/members.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Apps': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/apps.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Discuss': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/discuss.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Settings': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons/settinga.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + + def icon_change_theme_green(self): + """Create a change icon theme green""" + menu_item = self.env['ir.ui.menu'].sudo().search( + [('parent_id', '=', False)]) + for menu in menu_item: + if menu.name == 'Contacts': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/contacts.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Link Tracker': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/link-tracker.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Dashboards': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/dashboards.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Sales': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/sales.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Invoicing': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/accounting.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Inventory': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/inventory.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Purchase': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/purchase.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Calendar': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/calendar.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'CRM': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/crm.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Note': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/notes.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Website': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/website.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Point of Sale': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/pos.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Manufacturing': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/manufacturing.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Repairs': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/repairs.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Email Marketing': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/email-marketing.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'SMS Marketing': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/sms-marketing.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Project': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/project.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Surveys': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/surveys.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Employees': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/employee.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Recruitment': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/recruitment.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Attendances': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/attendances.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Time Off': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/timeoff.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Expenses': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/expenses.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Maintenance': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/maintenance.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Live Chat': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/live-chat.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Lunch': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/lunch.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Fleet': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/fleet.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Timesheets': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/timesheet.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Events': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/events.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'eLearning': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/elearning.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Members': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/members.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Apps': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/apps.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Discuss': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/discuss.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Settings': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/settinga.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + if menu.name == 'Accounting': + img_path = odoo.tools.misc.file_path( + 'vista_backend_theme/static/src/img/icons_green/accounting.png') + menu.write({'web_icon_data': base64.b64encode( + open(img_path, "rb").read())}) + + +class ThemeStored(models.Model): + """create a Model ThemeStored""" + _name = "theme.data.stored" + + name = fields.Selection([ + ('default', 'Default'), + ('two', 'Green'), + ('three', 'Black'), + ], 'Theme', default='default')