Commit 78c5ca8f by Arturo Jasso Origel

eliminando carpetas

parent 30036129
# sphinx build directories
_build/
# dotfiles
.*
!.gitignore
!.github
!.mailmap
# compiled python files
*.py[co]
__pycache__/
# setup.py egg_info
*.egg-info
# emacs backup files
*~
# hg stuff
*.orig
status
# odoo filestore
odoo/filestore
# maintenance migration scripts
odoo/addons/base/maintenance
# generated for windows installer?
install/win32/*.bat
install/win32/meta.py
# needed only when building for win32
setup/win32/static/less/
setup/win32/static/wkhtmltopdf/
setup/win32/static/postgresql*.exe
# js tooling
node_modules
package-lock.json
package.json
.husky
# various virtualenv
/bin/
/build/
/dist/
/include/
/lib/
/man/
/share/
/src/
# avoid adding it after generation from tsconfig command
tsconfig.json
# -*- coding: utf-8 -*-
from . import models
# -*- coding: utf-8 -*-
{
'name': "anita_theme_base",
'summary': """
Base for anita odoo themes, it support free login for odoo
""",
'description': """
Odoo Login,
Odoo login page,
Odoo login theme
Login,
Anita Theme Base,
Anita Theme,
Awesome Theme,
Multi tab theme,
Pop form theme
""",
'author': "Funenc Odoo Team",
'website': "https://odoo.funenc.com",
'live_test_url': 'http://124.223.107.118:8007/',
'license': 'OPL-1',
'images': ['static/description/screen_shot.png', 'static/description/banner.png'],
'support': 'supports@funenc.com',
'live_chat': 'supports@funenc.com',
'maintainer': 'Funenc Odoo Team',
'category': 'Theme/Backend',
'version': '15.0.0.7',
'installable': True,
'application': True,
'auto_install': False,
'depends': ['base', 'web'],
'data': [
"views/anita_web.xml"
],
'assets': {
'web.assets_backend': [
'anita_theme_base/static/css/anita_variables.scss',
'anita_theme_base/static/css/mixins/_flex.scss',
'anita_theme_base/static/css/mixins/_box_shadow.scss',
'anita_theme_base/static/css/mixins/_clearfix.scss',
'anita_theme_base/static/css/mixins/_float.scss',
'anita_theme_base/static/css/mixins/_hover.scss',
'anita_theme_base/static/css/mixins/_gradients.scss',
'anita_theme_base/static/css/mixins/_buttons.scss',
'anita_theme_base/static/css/anita_functions.scss',
'anita_theme_base/static/css/anita_form_controls.scss',
'anita_theme_base/static/css/anita_buttons.scss',
'anita_theme_base/static/css/anita_form_view.scss',
'anita_theme_base/static/css/anita_list_view.scss',
'anita_theme_base/static/css/anita_scroll.scss',
'anita_theme_base/static/css/anita_misc.scss',
'anita_theme_base/static/js/anita_form_controller.js',
'anita_theme_base/static/js/anita_customizer.js',
],
'web.assets_qweb': [
'anita_theme_base/static/xml/misc.xml'
]
}
}
# -*- coding: utf-8 -*-
from . import anita_view_extend
# -*- coding: utf-8 -*-
import inspect
from odoo import models, _
from odoo.exceptions import AccessError
from odoo.models import check_method_name
class AnitaViewExtend(models.Model):
'''
anita view extend current_theme_mode
'''
_inherit = 'ir.ui.view'
def _render_template(self, template, values=None, engine='ir.qweb'):
"""
rewrite to change the title
:param template:
:param values:
:param engine:
:return:
"""
if template in ['web.login', 'web.webclient_bootstrap']:
if not values:
values = {}
values["title"] = self.env['ir.config_parameter'].sudo().get_param(
"anita_theme_setting.window_default_title", "Awesome Odoo")
return super(AnitaViewExtend, self)._render_template(
template, values=values, engine=engine)
def _validate_tag_button(self, node, name_manager, node_info):
if not node_info['validate']:
return
name = node.get('name')
special = node.get('special')
type_ = node.get('type')
if special:
if special not in ('cancel', 'save', 'add', 'save_and_return', 'save_and_notify'):
self._raise_view_error(_("Invalid special '%(value)s' in button", value=special), node)
elif type_:
if type_ == 'edit': # list_renderer, used in kanban view
return
elif not name:
self._raise_view_error(_("Button must have a name"), node)
elif type_ == 'object':
func = getattr(type(name_manager.model), name, None)
if not func:
msg = _(
"%(action_name)s is not a valid action on %(model_name)s",
action_name=name, model_name=name_manager.model._name,
)
self._raise_view_error(msg, node)
try:
check_method_name(name)
except AccessError:
msg = _(
"%(method)s on %(model)s is private and cannot be called from a button",
method=name, model=name_manager.model._name,
)
self._raise_view_error(msg, node)
try:
inspect.signature(func).bind(self=name_manager.model)
except TypeError:
msg = "%s on %s has parameters and cannot be called from a button"
self._log_view_warning(msg % (name, name_manager.model._name), node)
elif type_ == 'action':
# logic mimics /web/action/load behaviour
action = False
try:
action_id = int(name)
except ValueError:
model, action_id = self.env['ir.model.data']._xmlid_to_res_model_res_id(name,
raise_if_not_found=False)
if not action_id:
msg = _("Invalid xmlid %(xmlid)s for button of type action.", xmlid=name)
self._raise_view_error(msg, node)
if not issubclass(self.pool[model], self.pool['ir.actions.actions']):
msg = _(
"%(xmlid)s is of type %(xmlid_model)s, expected a subclass of ir.actions.actions",
xmlid=name, xmlid_model=model,
)
self._raise_view_error(msg, node)
action = self.env['ir.actions.actions'].browse(action_id).exists()
if not action:
msg = _(
"Action %(action_reference)s (id: %(action_id)s) does not exist for button of type action.",
action_reference=name, action_id=action_id,
)
self._raise_view_error(msg, node)
name_manager.has_action(name)
elif node.get('icon'):
description = 'A button with icon attribute (%s)' % node.get('icon')
self._validate_fa_class_accessibility(node, description)
// Make the div behave like a button
.btn-group {
// Prevent double borders when buttons are next to each other
.btn + .btn,
.btn + .btn-group,
.btn-group + .btn,
.btn-group + .btn-group {
margin-left: -$btn-border-width;
}
}
.btn-group {
// Reset rounded corners
> .btn:not(:last-child):not(.dropdown-toggle),
> .btn-group:not(:last-child) > .btn {
@include border-right-radius(0);
}
> .btn:not(:first-child),
> .btn-group:not(:first-child) > .btn {
@include border-left-radius(0);
}
}
// Sizing
//
// Remix the default button sizing classes into new ones for easier manipulation.
.btn-group-sm > .btn { @extend .btn-sm; }
.btn-group-lg > .btn { @extend .btn-lg; }
//
// Split button dropdowns
//
.dropdown-toggle-split {
padding-right: $btn-padding-x * .75;
padding-left: $btn-padding-x * .75;
}
.btn-sm + .dropdown-toggle-split {
padding-right: $btn-padding-x-sm * .75;
padding-left: $btn-padding-x-sm * .75;
}
.btn-lg + .dropdown-toggle-split {
padding-right: $btn-padding-x-lg * .75;
padding-left: $btn-padding-x-lg * .75;
}
// The clickable button for toggling the menu
// Set the same inset shadow as the :active state
.btn-group.show .dropdown-toggle {
@include box-shadow($btn-active-box-shadow);
// Show no shadow for `.btn-link` since it has no other button styles.
&.btn-link {
@include box-shadow(none);
}
}
//
// Vertical button groups
//
.btn-group-vertical {
> .btn + .btn,
> .btn + .btn-group,
> .btn-group + .btn,
> .btn-group + .btn-group {
margin-top: -$btn-border-width;
}
// Reset rounded corners
> .btn:not(:last-child):not(.dropdown-toggle),
> .btn-group:not(:last-child) > .btn {
@include border-bottom-radius(0);
}
> .btn:not(:first-child),
> .btn-group:not(:first-child) > .btn {
@include border-top-radius(0);
}
}
\ No newline at end of file
.btn {
font-weight: $btn-font-weight;
// font-family: $btn-font-family;
border: $input-btn-border-width solid transparent;
@include button-size(
$btn-padding-y,
$btn-padding-x,
$btn-font-size,
$input-btn-line-height,
$btn-border-radius
);
@include transition($btn-transition);
&:hover,
&.hover {
cursor: pointer;
}
&:focus,
&.focus {
@include box-shadow(none);
}
&:not([disabled]):not(.disabled):active,
&:not([disabled]):not(.disabled).active {
background-image: none;
@include box-shadow(none);
}
&.btn-squared {
border-radius: 0;
}
&.btn-pill {
border-radius: $btn-pill-border-radius;
}
}
//
// Alternate buttons
//
@each $color, $value in $theme-colors {
.btn-#{$color} {
@include button-variant($value);
}
}
// White buttons
.btn-white {
@include button-variant($white);
}
// Black buttons
.btn-black {
@include button-variant($black);
}
// Outlined default buttons
@each $color, $value in $theme-colors {
.btn-outline-#{$color} {
@include button-outline-variant($value);
}
}
// White outline buttons
.btn-outline-white {
@include button-outline-variant($white);
color: $white;
&:not(:disabled):not(.disabled):active,
&:not(:disabled):not(.disabled).active {
color: $black;
}
}
// Black outline buttons
.btn-outline-black {
@include button-outline-variant($black);
color: $black;
&:not(:disabled):not(.disabled):active,
&:not(:disabled):not(.disabled).active {
color: $white;
}
}
// Make a button look and behave like a link
.btn-link {
font-weight: $font-weight-normal;
color: $link-color;
@include hover {
color: $link-hover-color;
text-decoration: $link-hover-decoration;
}
&:focus,
&.focus {
text-decoration: $link-hover-decoration;
}
&:disabled {
color: $btn-link-disabled-color;
}
}
//
// Button Sizes
//
.btn-lg {
@include button-size(
$btn-padding-y-lg,
$btn-padding-x-lg,
$btn-font-size-lg,
$btn-line-height-lg,
$btn-border-radius-lg
);
}
.btn-sm {
@include button-size(
$btn-padding-y-sm,
$btn-padding-x-sm,
$btn-font-size-sm,
$btn-line-height-sm,
$btn-border-radius-sm
);
}
// Vertically space out multiple block buttons
.btn-block + .btn-block {
margin-top: $btn-block-spacing-y;
}
\ No newline at end of file
// Bootstrap functions
//
// Utility mixins and functions for evalutating source code across our variables, maps, and mixins.
// Ascending
// Used to evaluate Sass maps like our grid breakpoints.
@mixin _assert-ascending($map, $map-name) {
$prev-key: null;
$prev-num: null;
@each $key, $num in $map {
@if $prev-num == null {
// Do nothing
} @else if not comparable($prev-num, $num) {
@warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
} @else if $prev-num >= $num {
@warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
}
$prev-key: $key;
$prev-num: $num;
}
}
// Starts at zero
// Another grid mixin that ensures the min-width of the lowest breakpoint starts at 0.
@mixin _assert-starts-at-zero($map) {
$values: map-values($map);
$first-value: nth($values, 1);
@if $first-value != 0 {
@warn "First breakpoint in `$grid-breakpoints` must start at 0, but starts at #{$first-value}.";
}
}
// Replace `$search` with `$replace` in `$string`
// Used on our SVG icon backgrounds for custom forms.
//
// @author Hugo Giraudel
// @param {String} $string - Initial string
// @param {String} $search - Substring to replace
// @param {String} $replace ('') - New value
// @return {String} - Updated string
@function str-replace($string, $search, $replace: "") {
$index: str-index($string, $search);
@if $index {
@return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
}
@return $string;
}
// Color contrast
@mixin color-yiq($color) {
$r: red($color);
$g: green($color);
$b: blue($color);
$yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;
@if ($yiq >= 150) {
color: darken($color, 65);
} @else {
color: #fff;
}
}
// Retreive color Sass maps
@function color($key: "blue") {
@return map-get($colors, $key);
}
@function theme-color($key: "primary") {
@return map-get($theme-colors, $key);
}
@function grayscale($key: "100") {
@return map-get($grays, $key);
}
// Request a theme color level
@function theme-color-level($color-name: "primary", $level: 0) {
$color: theme-color($color-name);
$color-base: if($level > 0, #000, #fff);
@if $level < 0 {
// Lighter values need a quick double negative for the Sass math to work
@return mix($color-base, $color, $level * -1 * $theme-color-interval);
} @else {
@return mix($color-base, $color, $level * $theme-color-interval);
}
}
\ No newline at end of file
.o_list_view {
.custom-checkbox {
.custom-control-label::before {
border-radius: 2px;
}
}
thead > tr > th:nth-of-type(1) {
border-left: none;
}
.o_list_table {
tbody > tr > td:not(.o_list_record_selector):not(.o_handle_cell) {
vertical-align: middle !important;
}
.o_list_record_selector {
vertical-align: middle !important;
}
}
.table-responsive {
overflow-y: hidden;
.o_list_table {
thead {
box-shadow: 0px 10px 15px 0px rgba(0, 0, 0, 0.1);
> tr {
min-height: 36px;
height: 36px;
}
}
thead,
thead tr th {
position: sticky !important;
top: 0;
z-index: 1;
background: white;
}
.o_list_record_selector {
width: 40px;
padding-left: 16px;
}
tfoot,
tfoot > tr > td {
position: sticky;
bottom: 0;
background: white;
background-color: $o-list-footer-bg-color;
}
.o_list_record_selector {
vertical-align: middle;
}
.o_column_sortable:not(.o_handle_cell) {
position: relative;
user-select: none;
}
tfoot {
background-color: none !important;
}
.o_data_row.o_selected_row > .o_data_cell:not(.o_readonly_modifier):not(.o_invisible_modifier) {
background-color: transparent;
}
.o_data_row.o_selected_row
> .o_data_cell:not(.o_readonly_modifier):not(.o_invisible_modifier):not(.o_remaining_days_cell)
.o_input {
border: 1px solid #dcdfe6 !important;
height: 32px;
line-height: 32px;
}
thead {
> tr {
> th {
padding: 5px 4px !important;
border-top: none;
border-bottom: none;
&:not(.o_list_record_selector) {
border-left: none;
vertical-align: middle;
}
&:nth-of-type(1) {
border-left: none;
padding: 0px 10px !important;
}
}
}
}
// add the shaddow
tbody {
> tr {
> td {
padding: 0px 10px !important;
&:not(.o_list_record_selector) {
&.o_list_button > button {
padding: 0.4rem 1.2rem;
}
&:not(.o_handle_cell) {
vertical-align: middle;
}
}
}
&:nth-of-type(odd) {
background-color: rgba(0, 0, 0, 0.01);
}
}
}
.o_list_record_remove {
padding-right: 0px !important;
line-height: 40px;
}
}
.o_field_cell,
.o_column_sortable {
height: 36px;
line-height: 36px;
padding: 0 10px;
position: relative;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
box-sizing: border-box;
}
}
.o_optional_columns_dropdown_toggle,
.o_optional_columns {
top: 5px;
right: 5px;
}
.o_field_badge {
margin-top: 8px;
margin-left: 5px;
}
.o_optional_columns_dropdown_toggle,
.o_optional_columns {
top: 5px;
right: 5px;
}
}
.o_list_view {
.o_list_table {
tfoot {
background-color: none !important;
}
.o_data_row.o_selected_row > .o_data_cell:not(.o_readonly_modifier):not(.o_invisible_modifier) {
background-color: transparent;
}
thead > tr > th:not(.o_list_record_selector) {
border-left: none;
vertical-align: middle;
}
&.table-bordered {
border-collapse: collapse;
.tfoot {
border-top: none;
}
}
}
.o_field_x2many_list_row_add {
list-style: 36px;
height: 36px;
}
}
.o_list_buttons {
button {
margin-right: 5px;
}
}
.o_form_sheet {
.o_list_view {
.o_list_table {
thead {
box-shadow: none !important;
border-bottom: 1px solid #dcdfe6;
}
}
}
}
.o_filter_condition {
select:not(:first-child) {
margin-top: 5px;
}
}
.row {
.o_field_widget.o_readonly_modifier {
padding-top: calc(0.375rem + 1px);
padding-bottom: calc(0.375rem + 1px - 5px);
}
}
// scroll bar
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-track {
background: #FFFFFF;
}
::-webkit-scrollbar-thumb {
background: #888;
border-radius: 3px;
}
::-webkit-scrollbar-thumb:increment,
::-webkit-scrollbar-thumb:decrement {
background: #000;
}
::-webkit-scrollbar-thumb:hover {
background: #555;
}
\ No newline at end of file
/* devanagari */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 300;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLDz8Z11lFc-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: 300;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLDz8Z1JlFc-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: 300;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLDz8Z1xlFQ.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: 400;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/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;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/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;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/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: 500;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLGT9Z11lFc-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: 500;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLGT9Z1JlFc-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: 500;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLGT9Z1xlFQ.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;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/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;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/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;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/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;
}
/* devanagari */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLCz7Z11lFc-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: 700;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLCz7Z1JlFc-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: 700;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLCz7Z1xlFQ.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;
}
\ No newline at end of file
html,
body {
height: 100%;
}
body {
overflow: auto;
margin: 0;
padding: 0;
background-color: #182139;
background-size: cover;
}
.form-control {
height: auto;
border: 1px solid #bfc9d4;
color: #3b3f5c;
font-size: 15px;
padding: 8px 10px;
letter-spacing: 1px;
height: calc(1.4em + 1.4rem + 2px);
padding: .75rem 1.25rem;
border-radius: 6px;
}
.form-control:focus {
box-shadow: 0 0 5px 2px rgba(194, 213, 255, 0.6196078431372549);
border-color: #1b55e2;
color: #3b3f5c;
}
.form-form {
width: 50%;
display: flex;
flex-direction: column;
min-height: 100%;
margin: 0 auto;
}
.form-form .form-form-wrap {
max-width: 480px;
margin: 0 auto;
min-width: 311px;
min-height: 100%;
align-self: center;
width: 100%;
height: 100vh;
justify-content: center;
}
.form-form .form-container {
align-items: center;
display: flex;
flex-grow: 1;
width: 100%;
min-height: 100%;
}
.form-form .form-container .form-content {
display: block;
width: 100%;
padding: 25px;
background: #fff;
text-align: center;
border-radius: 15px;
border: 1px solid #e0e6ed;
-webkit-box-shadow: 0 4px 6px 0 rgba(85, 85, 85, 0.09019607843137255), 0 1px 20px 0 rgba(0, 0, 0, 0.08), 0px 1px 11px 0px rgba(0, 0, 0, 0.06);
-moz-box-shadow: 0 4px 6px 0 rgba(85, 85, 85, 0.09019607843137255), 0 1px 20px 0 rgba(0, 0, 0, 0.08), 0px 1px 11px 0px rgba(0, 0, 0, 0.06);
box-shadow: 0 4px 6px 0 rgba(85, 85, 85, 0.09019607843137255), 0 1px 20px 0 rgba(0, 0, 0, 0.08), 0px 1px 11px 0px rgba(0, 0, 0, 0.06);
}
.form-form .form-container .form-content h1 {
font-size: 32px;
color: #3b3f5c;
}
.form-form .form-container .form-content>p {
font-size: 13px;
color: #888ea8;
font-weight: 600;
margin-bottom: 35px;
}
.form-form .form-form-wrap .user-meta {
margin-bottom: 35px;
}
.form-form .form-form-wrap .user-meta img {
width: 52px;
height: 52px;
border-radius: 50%;
margin-right: 15px;
border: 4px solid #e0e6ed;
}
.form-form .form-form-wrap .user-meta div {
align-self: center;
}
.form-form .form-form-wrap .user-meta p {
font-size: 31px;
color: #3b3f5c;
margin-bottom: 0;
}
.form-form .form-form-wrap h1 .brand-name {
color: #3b3f5c;
font-weight: 600;
}
.form-form .form-form-wrap p.signup-link {
font-size: 14px;
color: #3b3f5c;
font-weight: 700;
margin-bottom: 15px;
text-align: center;
margin-top: 50px;
}
.form-form .form-form-wrap p.signup-link.register {
font-size: 13px;
color: #888ea8;
font-weight: 600;
margin-bottom: 25px;
margin-top: 0;
}
.form-form .form-form-wrap p.signup-link.recovery {
margin-top: 0;
}
.form-form .form-form-wrap p.signup-link a {
color: #1b55e2;
border-bottom: 1px solid;
}
.form-form .form-form-wrap form .field-wrapper.input {
padding: 11px 0px 16px 0;
border-bottom: none;
position: relative;
}
.form-form .form-form-wrap form .field-wrapper.input:focus {
border: 1px solid #000;
}
.form-form .form-form-wrap form .field-wrapper.toggle-pass p {
font-weight: 600;
color: #3b3f5c;
margin-bottom: 0;
}
.form-form .form-form-wrap form .field-wrapper .logged-in-user-name {
font-size: 37px;
color: #3b3f5c;
}
.form-form .form-form-wrap form .field-wrapper label {
font-size: 10px;
font-weight: 700;
color: #3b3f5c;
margin-bottom: 8px;
}
.form-form .form-form-wrap form .field-wrapper.terms_condition {
margin-bottom: 20px;
}
.form-form .form-form-wrap form .field-wrapper.terms_condition label {
font-size: 14px;
color: #888ea8;
padding-left: 31px;
font-weight: 100;
}
.form-form .form-form-wrap form .field-wrapper.terms_condition a {
color: #1b55e2;
}
.form-form .form-form-wrap form .field-wrapper svg.feather-user {
top: 53px;
}
.form-form .form-form-wrap form .field-wrapper svg.feather-lock {
top: 48px;
}
.form-form .form-form-wrap form .field-wrapper svg.feather-at-sign {
top: 47px;
}
.form-form .form-form-wrap form .field-wrapper svg.feather-at-sign.register {
top: 53px;
}
.form-form .form-form-wrap form .field-wrapper svg:not(.feather-eye) {
position: absolute;
left: 12px;
color: #888ea8;
fill: rgba(0, 23, 55, 0.08);
width: 20px;
height: 20px;
}
.form-form .form-form-wrap form .field-wrapper svg.feather-eye {
position: absolute;
top: 46px;
right: 13px;
color: #888ea8;
fill: rgba(0, 23, 55, 0.08);
width: 17px;
cursor: pointer;
}
.form-form .form-form-wrap form .field-wrapper input {
display: inline-block;
vertical-align: middle;
border-radius: 6px;
min-width: 50px;
max-width: 635px;
width: 100%;
-ms-transition: all 0.2s ease-in-out 0s;
transition: all 0.2s ease-in-out 0s;
color: #3b3f5c;
font-weight: 600;
font-size: 16px;
padding: 13px 35px 13px 46px;
}
.form-form .form-form-wrap form .field-wrapper input::-webkit-input-placeholder {
color: #d3d3d3;
font-size: 14px;
}
.form-form .form-form-wrap form .field-wrapper input::-ms-input-placeholder {
color: #d3d3d3;
font-size: 14px;
}
.form-form .form-form-wrap form .field-wrapper input::-moz-placeholder {
color: #d3d3d3;
font-size: 14px;
}
.form-form .form-form-wrap form .field-wrapper {
width: 100%
}
.form-form .form-form-wrap form .field-wrapper button.btn {
align-self: center;
width: 100%;
padding: 11px 14px;
font-size: 16px;
letter-spacing: 2px;
}
.form-form .form-form-wrap form .field-wrapper a.forgot-pass-link {
font-weight: 600;
color: #888ea8;
display: block;
letter-spacing: 1px;
font-size: 12px;
margin-bottom: 8px;
}
.form-form .form-form-wrap form .field-wrapper .n-chk .new-control-indicator {
top: 2px;
border: 1px solid #bfc9d4;
background-color: #f1f2f3;
}
.form-form .form-form-wrap form .field-wrapper .n-chk .new-control-indicator:after {
top: 54%;
}
.new-control.new-checkbox.checkbox-primary>input:checked~span.new-control-indicator {
border: none;
}
.form-form .form-form-wrap form .division {
text-align: center;
font-size: 13px;
margin: 35px 0 38px 0;
}
.form-form .form-form-wrap form .social {
text-align: center;
}
.form-form .form-form-wrap form .social a {
background: transparent;
box-shadow: none;
border: 1px solid #e0e6ed;
padding: 12px 10px;
width: 181px;
}
.form-form .form-form-wrap form .social a.social-fb {
margin-right: 15px;
}
.form-form .form-form-wrap form .social a.social-fb svg {
color: #1b55e2;
}
.form-form .form-form-wrap form .social a.social-fb .brand-name {
color: #1b55e2;
}
@media (max-width: 991px) {
.form-form {
width: 100%;
}
.form-form .form-form-wrap {
min-width: auto;
margin: 0 auto;
}
.form-form .form-container .form-content {
border-radius: 15px;
}
}
@media (max-width: 575px) {
.form-form .form-form-wrap form .field-wrapper.toggle-pass {
margin-bottom: 28px;
}
.form-form .form-form-wrap form .social a.social-fb {
margin-right: auto;
margin-left: auto;
margin-bottom: 10px;
display: block;
}
.form-form .form-form-wrap form .social a.social-github {
margin-right: auto;
margin-left: auto;
margin-bottom: 10px;
display: block;
}
.form-form .form-container .form-content {
border: none;
border-radius: 0px;
}
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
.form-form .form-form-wrap {
width: 100%;
}
.form-form .form-container {
height: 100%;
}
}
@supports (-ms-ime-align: auto) {
.form-form .form-form-wrap {
height: 100%;
}
}
.btn {
transition: all 0.3s ease-out;
-webkit-transition: all 0.3s ease-out;
}
.main-container {
color: #fff;
}
.main-container .background {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
display: block;
}
.main-container .background path {
opacity: .1;
fill: #e5edff;
border-color: #e2e8f0;
}
.bg-100 {
background-image: url('../../../images/bk1.jpg');
background-repeat: no-repeat;
background-size: cover;
}
\ No newline at end of file
*, ::after, ::before {
box-sizing: border-box;
}
.wrapper {
width: 100%;
height:100%
}
body {
font-size: 14px;
color: #525f7f;
background-color: #f8f9fe;
letter-spacing: 0.5px;
overflow-x: hidden;
font-family: "Roboto",sans-serif;
}
.authentication-header {
position: absolute;
background: #165078;
top: 0px;
left: 0px;
right: 0px;
height: 50%;
}
.d-flex {
display: flex !important;
}
.justify-content-center {
justify-content: center !important;
}
.align-items-center {
align-items: center !important;
}
.section-authentication-sign-in {
height: 100vh;
}
.btn {
display: inline-block;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: center;
text-decoration: none;
vertical-align: middle;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
background-color: transparent;
border: 1px solid transparent;
padding: .375rem .75rem;
font-size: 1rem;
border-radius: .25rem;
transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}
.btn-primary {
color: #fff;
background-color: #0d6efd;
border-color: #0d6efd;
}
.my-4 {
margin-top: 1.5rem !important;
margin-bottom: 1.5rem !important;
}
.btn {
letter-spacing: 0.5px;
}
.btn-primary {
color: #fff;
background-color: #8833ff;
border-color: #8833ff;
}
[type=button]:not(:disabled), [type=reset]:not(:disabled), [type=submit]:not(:disabled), button:not(:disabled) {
cursor: pointer;
}
.bx {
font-family: "boxicons" !important;
font-weight: normal;
font-style: normal;
font-variant: normal;
line-height: inherit;
display: inline-block;
text-transform: none;
speak: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.btn i {
vertical-align: middle;
font-size: 1.3rem;
margin-top: -1em;
margin-bottom: -1em;
margin-right: 5px;
}
.form-check {
display: block;
min-height: 1.5rem;
padding-left: 1.5em;
margin-bottom: 0.12rem;
}
.form-switch {
padding-left: 2.5em;
}
.form-check-input {
width: 1em;
height: 1em;
margin-top: 0.25em;
vertical-align: top;
background-color: #fff;
background-repeat: no-repeat;
background-position: center;
background-size: contain;
border: 1px solid rgba(0,0,0,.25);
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
-webkit-print-color-adjust: exact;
color-adjust: exact;
}
.form-check .form-check-input {
float: left;
margin-left: -1.5em;
}
[type=checkbox].form-check-input {
border-radius: .25em;
}
:checked.form-check-input {
background-color: #0d6efd;
border-color: #0d6efd;
}
.form-switch .form-check-input {
width: 2em;
margin-left: -2.5em;
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");
background-position: left center;
border-radius: 2em;
transition: background-position .15s ease-in-out;
}
:checked.form-check-input {
background-color: #8833ff;
border-color: #8833ff;
}
:checked[type=checkbox].form-check-input {
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");
}
.form-switch :checked.form-check-input {
background-position: right center;
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}
label {
display: inline-block;
font-weight: 400 !important;
}
.form-label {
margin-bottom: 0.5rem;
}
.input-group {
position: relative;
display: flex;
flex-wrap: wrap;
align-items: stretch;
width: 100%;
}
.form-control {
display: block;
width: 100%;
padding: .375rem .75rem;
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ced4da;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
border-radius: .25rem;
transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}
.border-end-0 {
border-right: 0 !important;
}
.input-group > .form-control, .input-group > .form-select {
position: relative;
flex: 1 1 auto;
width: 1%;
min-width: 0px;
}
:not(.has-validation).input-group > :nth-last-child(n+3).dropdown-toggle, :not(.has-validation).input-group > :not(:last-child):not(.dropdown-menu):not(.dropdown-toggle) {
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
}
.input-group-text {
display: flex;
align-items: center;
padding: .375rem .75rem;
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: center;
white-space: nowrap;
background-color: #e9ecef;
border: 1px solid #ced4da;
border-radius: .25rem;
}
.bg-transparent {
background-color: transparent !important;
}
.input-group > :not(:first-child):not(.invalid-feedback):not(.invalid-tooltip):not(.valid-feedback):not(.valid-tooltip):not(.dropdown-menu) {
margin-left: -1px;
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
}
.login-separater span {
position: relative;
top: 26px;
margin-top: -10px;
background: #ffffff;
padding: 5px;
font-size: 12px;
color: #cbcbcb;
z-index: 1;
}
hr {
margin: 1rem 0;
color: inherit;
background-color: currentColor;
border: 0;
opacity: 0.25;
}
hr:not([size]) {
height: 1px;
}
.shadow-sm {
box-shadow: 0px 0.12rem 0.25rem rgba(0,0,0,0.075) !important;
}
.btn-white {
background-color: #fff;
border-color: #e7eaf3;
}
img, svg {
vertical-align: middle;
}
.me-2 {
margin-right: 0.5rem !important;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
margin-top: 0px;
margin-bottom: 0.5rem;
font-weight: 500;
line-height: 1.2;
}
.h3, h3 {
font-size: calc(1.3rem + 0.6vw);
}
/* @media all and (min-width:1200px) */
.h3, h3 {
font-size: 1.75rem;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
color: #32393f;
}
p {
margin-top: 0px;
margin-bottom: 1rem;
}
.card-body {
box-shadow: 1px -1px 20px 1px #403c4329;
}
\ No newline at end of file
body {
margin: 0;
font-family: -apple-system,BlinkMacSystemFont,"Poppins",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji" !important;
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: left;
background-color: #fff;
}
body {
font-family: Nunito,sans-serif;
font-size: 0.8rem;
font-weight: 400;
color: #3a3a3a;
background: #f8f8f8;
}
body {
min-height: calc(-150px + 100%);
position: relative;
padding-bottom: 90px;
}
body {
overflow-x: hidden !important;
}
.rounded {
border-radius: .25rem !important;
}
.rounded {
border-radius: 50px !important;
}
body.no-footer {
padding-bottom: initial;
}
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
html {
width: 100%;
height: 100%;
background: #f8f8f8;
}
html {
width: 100%;
}
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
.bootstrap-tagsinput.focus, .form-control:focus {
border-color: rgba(237,113,23,.6);
}
.has-float-label label::after, .has-float-label>span::after {
background: #fff;
}
.has-float-label label::after, .has-float-label > span::after {
content: " ";
display: block;
position: absolute;
height: 5px;
top: 3px;
left: -0.2em;
right: -0.2em;
z-index: -1;
}
.bootstrap-tagsinput, .form-control {
border-radius: .1rem;
outline: initial!important;
box-shadow: initial!important;
font-size: .8rem;
padding: .5rem .75rem;
line-height: 1;
border: 1px solid #d7d7d7;
background: #fff;
color: #3a3a3a;
border-color: #d7d7d7;
height: calc(2em + .8rem);
}
.fixed-background {
background: url(./images/bk.jpg) no-repeat center center fixed;
background-size: cover;
width: 100%;
height: 100%;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
main.default-transition {
transition: margin-left .3s;
}
main {
margin: 0 !important;
height: 100%;
}
main .container {
height: 100%;
}
.background .mx-auto {
margin-left: auto !important;
margin-right: auto !important;
}
.card {
position: relative;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
min-width: 0px;
word-wrap: break-word;
background-color: #fff;
background-clip: border-box;
border: 1px solid rgba(0,0,0,0.125);
border-radius: .25rem;
}
.card {
border: initial;
background: #fff;
border-radius: .1rem;
box-shadow: 0px 1px 15px rgba(0,0,0,0.04), 0px 1px 6px rgba(0,0,0,0.04);
}
.auth-card {
display: flex;
flex-direction: row;
box-shadow: 0px 1px 15px rgba(0,0,0,0.04), 0px 1px 6px rgba(0,0,0,0.04);
}
.rounded .card {
border-radius: .75rem;
}
.rounded .card.auth-card {
border-top-left-radius: 1.25rem;
border-bottom-left-radius: 1.25rem;
}
.position-relative {
position: relative !important;
}
.auth-card .image-side {
position: absolute;
width: 40%;
background: url(./images/aside_bk.png) no-repeat center top;
background-size: cover;
padding: 80px 40px;
}
.image-side::before {
content: '';
height: 100%;
width: 100%;
background: rgba(77, 76, 178, 0.9);
position: absolute;
left: 0;
z-index: 0;
top:0px
}
.text-layer {
position: absolute;
left: 0px;
right: 0px;
bottom: 0px;
top: 0px;
background-size: cover;
display: flex;
align-items: center;
flex-direction: column;
padding: 80px 40px
}
.rounded .auth-card .image-side {
border-top-left-radius: 0.75rem;
border-bottom-left-radius: 0.75rem;
}
.auth-card .form-side {
width: 60%;
padding: 80px;
}
a {
color: #007bff;
text-decoration: none;
background-color: transparent;
}
a {
color: #3a3a3a;
transition: color .2s;
outline: initial !important;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 0px;
margin-bottom: 0.5rem;
}
p {
margin-top: 0px;
margin-bottom: 1rem;
}
p {
font-size: 0.85rem;
line-height: 1.3rem;
font-family: Nunito,sans-serif;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
margin-bottom: 0.5rem;
font-weight: 500;
line-height: 1.2;
}
h6, .h6 {
font-size: 1rem;
}
.text-white {
color: #fff !important;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
line-height: 1.3;
}
h6 {
font-size: 1rem;
}
label {
display: inline-block;
margin-bottom: 0.5rem;
}
.form-group {
margin-bottom: 1rem;
}
.mb-4, .my-4 {
margin-bottom: 1.5rem !important;
}
.has-float-label {
display: block;
position: relative;
}
.d-flex {
display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
}
.justify-content-between {
-webkit-box-pack: justify !important;
-ms-flex-pack: justify !important;
justify-content: space-between !important;
}
.align-items-center {
-webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important;
}
button {
border-radius: 0;
}
input, button, select, optgroup, textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button, input {
overflow: visible;
}
button, select {
text-transform: none;
}
button {
color: #3a3a3a;
outline: initial !important;
}
button, [type='button'], [type='reset'], [type='submit'] {
-webkit-appearance: button;
}
button {
color: #3a3a3a;
outline: initial !important;
}
.btn {
display: inline-block;
font-weight: 400;
color: #212529;
text-align: center;
vertical-align: middle;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-color: transparent;
border: 1px solid transparent;
padding: .375rem .75rem;
font-size: 1rem;
line-height: 1.5;
border-radius: .25rem;
-webkit-transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,-webkit-box-shadow 0.15s ease-in-out;
transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,-webkit-box-shadow 0.15s ease-in-out;
transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;
transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,-webkit-box-shadow 0.15s ease-in-out;
}
.btn-primary {
color: #fff;
background-color: #007bff;
border-color: #007bff;
}
.btn-lg, .btn-group-lg > .btn {
padding: .5rem 1rem;
font-size: 1.25rem;
line-height: 1.5;
border-radius: .3rem;
}
.btn {
border-radius: 50px;
outline: initial !important;
box-shadow: none !important;
box-shadow: initial !important;
font-size: 0.8rem;
padding: .5rem 1.25rem .5rem 1.25rem;
transition: background-color box-shadow .1s linear;
}
.btn-shadow {
box-shadow: 0px 1px 2px 0px rgba(0,0,0,0.15), 0px 1px 3px 1px rgba(0,0,0,0.15) !important;
transition: background-color box-shadow .1s linear;
}
.btn-group-lg > .btn, .btn-group-sm > .btn, .btn-lg {
border-radius: 50px;
}
.btn-primary {
background-color: #00365a;
border-color: #00365a;
color: #fff;
}
.btn-group-lg > .btn, .btn-lg {
line-height: 1.5;
font-weight: 700;
letter-spacing: 0.05rem;
padding: .75rem 2.6rem .6rem 2.6rem;
}
button:not(:disabled), [type='button']:not(:disabled), [type='reset']:not(:disabled), [type='submit']:not(:disabled) {
cursor: pointer;
}
.form-control {
display: block;
width: 100%;
height: calc(1.5em + 2px + 0.75rem);
padding: .375rem .75rem;
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #495057;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ced4da;
border-radius: .25rem;
-webkit-transition: border-color 0.15s ease-in-out,-webkit-box-shadow 0.15s ease-in-out;
transition: border-color 0.15s ease-in-out,-webkit-box-shadow 0.15s ease-in-out;
transition: border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;
transition: border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,-webkit-box-shadow 0.15s ease-in-out;
}
.bootstrap-tagsinput, .form-control {
border-radius: .1rem;
outline: initial !important;
box-shadow: initial !important;
font-size: 0.8rem;
padding: .5rem .75rem;
line-height: 1;
border: 1px solid #d7d7d7;
background: #fff;
color: #3a3a3a;
border-color: #d7d7d7;
height: calc(2em + 0.8rem);
}
.has-float-label label, .has-float-label > span, .has-top-label label, .has-top-label > span {
color: rgba(58, 58, 58, 0.7);
}
.has-float-label label, .has-float-label > span:last-of-type {
position: absolute;
cursor: text;
font-size: 90%;
opacity: 1;
top: -0.4em;
left: 0.75rem;
z-index: 3;
line-height: 1;
padding: 0 1px;
}
.logo-single {
width: 110px;
height: 35px;
background: url(../logos/black.svg) no-repeat;
background-position: center center;
display: inline-block;
margin-bottom: 60px;
}
h2, .h2 {
font-size: 2rem;
}
.text-white {
color: #fff !important;
}
.mb-0, .my-0 {
margin-bottom: 0px !important;
}
.white {
color: #fff !important;
}
@media all and (max-width:768px) {
.auth-card .form-side {
width: 100%;
padding: 40px;
}
.auth-card .image-side {
display: none;
}
}
<svg id="Capa_1" enable-background="new 0 0 510 510" height="512" viewBox="0 0 510 510" width="512" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="lg1"><stop offset="0" stop-color="#7faef4"/><stop offset="1" stop-color="#4c8df1"/></linearGradient><linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="72.017" x2="448.659" xlink:href="#lg1" y1="30.771" y2="407.412"/><linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="393.324" x2="118.808" xlink:href="#lg1" y1="393.324" y2="118.808"/><linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="220.253" x2="342.575" y1="220.253" y2="342.575"><stop offset="0" stop-color="#4166bf"/><stop offset="1" stop-color="#4256ac"/></linearGradient><linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="368.352" x2="227.221" y1="309.634" y2="168.502"><stop offset="0" stop-color="#4256ac" stop-opacity="0"/><stop offset="1" stop-color="#1b1464"/></linearGradient><linearGradient id="lg2"><stop offset="0" stop-color="#ebeff0"/><stop offset="1" stop-color="#e3e5e4"/></linearGradient><linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="51.502" x2="399.05" xlink:href="#lg2" y1="-7.217" y2="340.331"/><linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="232.637" x2="276.114" xlink:href="#lg2" y1="303.885" y2="381.967"/><g><path d="m239.907 2.943c-38.555 15.625-127.875 53.362-171.842 62.404-9.715 1.998-16.648 10.61-16.648 20.528v127.182c0 99.733 44.909 194.164 122.273 257.105l23.878 19.426c33.451 27.215 81.411 27.215 114.863 0l23.878-19.426c77.364-62.941 122.273-157.376 122.273-257.109v-127.178c0-9.918-6.933-18.53-16.648-20.528-43.967-9.042-133.287-46.779-171.841-62.404-9.683-3.924-20.503-3.924-30.186 0z" fill="url(#SVGID_1_)"/><g><circle cx="255" cy="255" fill="url(#SVGID_2_)" r="169.321"/><path d="m405.238 255c0 45.321-20.067 85.954-51.801 113.5-26.365 22.886-60.783 22.738-98.437 22.738-37.275 0-71.379.426-97.639-22.05-32.195-27.555-52.599-68.489-52.599-114.188 0-82.974 67.264-150.238 150.238-150.238s150.238 67.264 150.238 150.238z" fill="url(#SVGID_3_)"/><path d="m255.332 127.937c-38.909 0-68.676 29.767-68.676 68.676 0 20.788 7.232 39.467 21.552 52.363l121.193 121.193c5.079-3.425 19.423 2.333 24.035-1.67 31.734-27.546 51.802-68.178 51.802-113.499 0-2.749-.079-5.48-.225-8.193l-97.318-97.318c-12.896-14.32-31.575-21.552-52.363-21.552z" fill="url(#SVGID_4_)"/><circle cx="255" cy="196.281" fill="url(#SVGID_5_)" r="70.452"/><path d="m348.476 315.4c19.076 12.239 20.97 39.524 3.686 54.185-.199.169-.398.337-.598.505-26.113 21.943-59.795 35.145-96.564 35.145-37.133 0-71.107-13.469-97.327-35.793-.102-.087-.204-.174-.306-.261-17.185-14.694-15.152-41.941 3.917-54.088 26.972-17.181 59.001-27.131 93.351-27.131 34.573 0 66.77 10.069 93.841 27.438z" fill="url(#SVGID_6_)"/></g></g></svg>
\ No newline at end of file
@mixin box-shadow($shadow...) {
box-shadow: $shadow;
}
\ No newline at end of file
@mixin button-variant( $background, $border: $background, $hover-background: darken($background, 5%), $hover-border: $hover-background, $hover-box-shadow: 0 4px 10px rgba($background, .25), $active-background: darken($background, 5%), $active-border: darken($border, 10%), $active-box-shadow: inset 0 3px 5px rgba($black, .125)) {
color: color-yiq($background);
border-color: $border;
// @include gradient-bg($background);
@include box-shadow($btn-box-shadow);
@include hover {
color: color-yiq($hover-background);
//@include gradient-bg($hover-background);
border-color: $hover-border;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05), $hover-box-shadow;
}
&:focus,
&.focus {
box-shadow: 0 0 0 3px rgba($background, .15), 0 3px 15px rgba($background, 0.2), 0 2px 5px rgba($black, .1);
}
// Disabled comes first so active can properly restyle
&.disabled,
&:disabled {
background-color: $background;
border-color: $border;
box-shadow: none;
cursor: not-allowed;
}
&:not(:disabled):not(.disabled):active,
&:not(:disabled):not(.disabled).active,
.show>&.dropdown-toggle {
color: color-yiq($active-background);
background-color: $active-background;
border-color: $active-border;
background-image: none;
//box-shadow: $active-box-shadow !important;
}
}
@mixin button-outline-variant( $color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {
$button-text-color: $color; // Fix light or white outlined buttons
@if ($color==theme-color("light") or $color==$white) {
$button-text-color: color-yiq($color);
}
background-color: transparent;
background-image: none;
border-color: $color;
color: $button-text-color;
&:hover {
color: color-yiq($color);
background-color: $active-background;
border-color: $active-border;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05), 0 4px 10px rgba($color, .25);
}
&:focus,
&.focus {
box-shadow: 0 0 0 3px rgba($color, .15), 0 3px 15px rgba($color, 0.2), 0 2px 5px rgba($black, .1) !important;
}
&.disabled,
&:disabled {
color: $color;
background-color: transparent;
box-shadow: none;
}
&:not(:disabled):not(.disabled):active,
&:not(:disabled):not(.disabled).active,
.show>&.dropdown-toggle {
color: color-yiq($active-background);
background-color: $active-background;
border-color: $active-border;
// &:focus {
// // Avoid using mixin so we can pass custom focus shadow properly
// // box-shadow: inset 0 3px 5px rgba($black, .125) !important;
// }
}
}
// Button sizes
@mixin button-size( $padding-y, $padding-x, $font-size, $line-height, $border-radius) {
padding: $padding-y $padding-x;
font-size: $font-size;
line-height: $line-height;
border-radius: $border-radius;
}
\ No newline at end of file
@mixin clearfix() {
&::after {
display: block;
clear: both;
content: "";
}
}
\ No newline at end of file
@mixin awesome-flex {
display: -webkit-box;
display: -webkit-flex;
display: -moz-box;
display: -ms-flexbox;
display: flex;
}
@mixin awesome-align-items-center {
-webkit-box-align: center;
-webkit-align-items: center;
-moz-box-align: center;
-ms-flex-align: center;
align-items: center;
}
@mixin awesome-justify-content-center {
-webkit-box-pack: center;
-webkit-justify-content: center;
-moz-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
@mixin awesome-justify-content-between {
-webkit-box-pack: justify;
-webkit-justify-content: space-between;
-moz-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
}
@mixin awesome-flex-row {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-webkit-flex-direction: row;
-moz-box-orient: horizontal;
-moz-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
}
@mixin awesome-flex-column {
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
-moz-box-orient: vertical;
-moz-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
}
@mixin gradient-bg($color) {
background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;
}
@mixin box-shadow($shadow...) {
box-shadow: $shadow;
}
@mixin border-radius($radius: $border-radius) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
border-radius: $radius;
}
@mixin awesome-trainsition-all ($seconds) {
-webkit-transition: all $seconds;
-moz-transition: all $seconds;
-ms-transition: all $seconds;
-o-transition: all $seconds;
transition: all $seconds;
}
@mixin float-left {
float: left !important;
}
@mixin float-right {
float: right !important;
}
@mixin float-none {
float: none !important;
}
\ No newline at end of file
// Gradients
@mixin gradient-bg($color) {
background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;
}
// Horizontal gradient, from left to right
//
// Creates two color stops, start and end, by specifying a color and position for each color stop.
@mixin gradient-x($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);
background-repeat: repeat-x;
}
// Vertical gradient, from top to bottom
//
// Creates two color stops, start and end, by specifying a color and position for each color stop.
@mixin gradient-y($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);
background-repeat: repeat-x;
}
@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
background-image: linear-gradient($deg, $start-color, $end-color);
background-repeat: repeat-x;
}
@mixin gradient-x-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
background-repeat: no-repeat;
}
@mixin gradient-y-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
background-repeat: no-repeat;
}
@mixin gradient-radial($inner-color: #555, $outer-color: #333) {
background-image: radial-gradient(circle, $inner-color, $outer-color);
background-repeat: no-repeat;
}
@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
}
\ No newline at end of file
@mixin hover {
&:hover { @content; }
}
@mixin hover-focus {
&:hover,
&:focus {
@content;
}
}
@mixin plain-hover-focus {
&,
&:hover,
&:focus {
@content;
}
}
@mixin hover-focus-active {
&:hover,
&:focus,
&:active {
@content;
}
}
\ No newline at end of file
<div class="container">
<div class="oe_styling_v8">
<div class="overflow-hidden mb-5 my-3 p-4 deep-3"
style="background-color:#fbfcfd; border-radius:20px; border: 1px solid #d2caca66;">
<div class="container">
<!-- Header -->
<div
class="row justify-content-md-between justify-content-center border-bottom align-items-center py-2 mx-0">
<div class="text-center d-flex flex-row align-items-center">
<a class="btn btn-primary mb-2 mb-lg-0" style="box-shadow: rgba(0, 0, 0, 0.18) -1px 2px 3px;"
href="https://apps.odoo.com/apps/themes/browse?repo_maintainer_id=260395" target="_blank"><i
class="fa fa-list-alt mr-1"></i>All Apps </a>
</div>
<div class="mt-md-0 mt-3">
<a class="btn btn-outline-success btn-sm mb-2 mb-lg-0"
style="font-size: 13px;border-radius: 4px !important;position: relative;overflow: hidden;color: #585e64;padding: 10px 4px;line-height: 0px;"><i
class="fa fa-check"></i> Community</a>
</div>
</div>
<div class="row">
<p style="width: 100%; font-size: 18px; text-indent:1em;" class="px-sm-4 p-2">
This module is base of anita themes, it supports some beautifull login page, and some common
utility for anita theme
</p>
<p style="width: 100%; font-size: 18px;" class="px-sm-4">
Our Other Apps:
<a class="btn btn-link mb-2 mb-lg-0" style="color: #7c6576"
href="https://apps.odoo.com/apps/browse?repo_maintainer_id=371266" target="_blank">APPS</a>
</p>
</div>
</div>
</div>
<h2 class="w-100 text-center mb-3">(Current Realse V15.0.0.3 -- 2021.10.21)</h2>
<div class="shadow row my-5 p-3 pb-2 overflow-hidden"
style="background-color:#fbfcfd; border-radius: 5px; border: 1px solid #d2caca66;">
<img src="./banner.png" style="width:100%; " />
</div>
<div class="shadow row my-5 p-3 pb-2 overflow-hidden"
style="background-color:#fbfcfd; border-radius: 5px; border: 1px solid #d2caca66;">
<div class="container">
<h3 style="opacity:1; padding:10px 0px; color:#201111; letter-spacing:0.2em;">
<b>Our Other Apps</b>
</h3>
<hr class="mb-4 mt-0">
<div class="row">
<div class="col-md-4">
<div style="text-align:center; border:1px solid #aaa">
<div class="sh_img" style="padding:10px">
<a href="https://apps.odoo.com/apps/themes/15.0/awesome_theme_pro/">
<img src="//apps.odoocdn.com/apps/module_image?image_id=10821661&unique=ce844bdd99013eae7d62b2fcf1291802ed0ffdab"
style="width:100%">
</a>
</div>
</div>
</div>
<div class="col-md-4">
<div style="text-align:center; border:1px solid #aaa">
<div class="sh_img" style="padding:10px">
<a href="https://apps.odoo.com/apps/modules/14.0/anita_modeler/">
<img src="//apps.odoocdn.com/apps/module_image?image_id=10697884&unique=94c1bf91c041749c9b53eb6b0b4f0c8922913a89"
style="width:100%">
</a>
</div>
</div>
</div>
<div class="col-md-4">
<div style="text-align:center; border:1px solid #aaa">
<div class="sh_img" style="padding:10px">
<a href="https://apps.odoo.com/apps/modules/14.0/anita_modeler/">
<img src="//apps.odoocdn.com/apps/module_image?image_id=10245978&unique=5fb35d17e29a109bd722cfcb0176ce6d1362c369"
style="width:100%">
</a>
</div>
</div>
</div>
<div class="col-md-4">
<div style="text-align:center; border:1px solid #aaa">
<div class="sh_img" style="padding:10px">
<a
href="//apps.odoocdn.com/apps/module_image?image_id=11048187&unique=075c302246ba9c735b831eaae6c25c8ce04db201">
<img src="//apps.odoocdn.com/apps/module_image?image_id=11048187&unique=075c302246ba9c735b831eaae6c25c8ce04db201"
style="width:100%">
</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
odoo.define('anita_theme_setting.customizer', function (require) {
"use strict";
var SystrayMenu = require('web.SystrayMenu');
var Widget = require('web.Widget');
var AnitaCustomizer = Widget.extend({
template: 'anita_theme_base.customizer',
sequence: 0,
events: _.extend({}, Widget.prototype.events, {
"click .customizer-toggle": "_on_toggle_click",
}),
_on_toggle_click: function (ev) {
this.do_action({
'type': 'ir.actions.act_url',
'url': 'https://apps.odoo.com/apps/themes/15.0/anita_theme_switcher/',
'target': 'self'
})
}
});
SystrayMenu.Items.push(AnitaCustomizer);
return AnitaCustomizer;
});
odoo.define('anita_theme_base.form_controller', function (require) {
"use strict";
var FormController = require('web.FormController');
var Dialog = require('web.Dialog');
var core = require('web.core')
var FormController = FormController.include({
overlay: undefined,
/**
* @private
* @param {OdooEvent} ev
*/
_onButtonClicked: function (ev) {
// stop the event's propagation as a form controller might have other
// form controllers in its descendants (e.g. in a FormViewDialog)
ev.stopPropagation();
var self = this;
var def;
this._disableButtons();
function saveAndExecuteAction() {
return self.saveRecord(self.handle, {
stayInEdit: true,
}).then(function () {
// we need to reget the record to make sure we have changes made
// by the basic model, such as the new res_id, if the record is
// new.
var record = self.model.get(ev.data.record.id);
return self._callButtonAction(attrs, record);
});
}
function SaveAndReturnRecord() {
return self.saveRecord(self.handle, {
stayInEdit: true,
}).then(function () {
var record = self.model.get(ev.data.record.id);
var action = { type: 'ir.actions.act_window_close', infos: {
res_id: record.res_id,
data: record.data,
} }
return self.do_action(action, {})
});
}
function SaveAndNotify(msg_name) {
return self.saveRecord(self.handle, {
stayInEdit: true,
}).then(function () {
var record = self.model.get(ev.data.record.id);
core.bus.trigger(msg_name, record);
});
}
var attrs = ev.data.attrs;
if (attrs.confirm) {
def = new Promise(function (resolve, reject) {
Dialog.confirm(this, attrs.confirm, {
confirm_callback: saveAndExecuteAction,
}).on("closed", null, resolve);
});
} else if (attrs.special === 'cancel') {
def = this._callButtonAction(attrs, ev.data.record);
} else if (attrs.special === 'save_and_return') {
// extend to save and retur record
def = SaveAndReturnRecord();
} else if (attrs.special === 'save_and_notify') {
def = SaveAndNotify(attrs.name);
} else if (!attrs.special || attrs.special === 'save') {
// save the record but don't switch to readonly mode
def = saveAndExecuteAction();
} else {
console.warn('Unhandled button event', ev);
return;
}
// Kind of hack for FormViewDialog: button on footer should trigger the dialog closing
// if the `close` attribute is set
def.then(function () {
self._enableButtons();
if (attrs.close) {
self.trigger_up('close_dialog');
}
}).guardedCatch(this._enableButtons.bind(this));
}
})
})
\ No newline at end of file
window.onload=function() {
var togglePassword = document.getElementById("toggle-password");
if (togglePassword) {
togglePassword.addEventListener('click', function() {
var x = document.getElementById("password");
if (x.type === "password") {
x.type = "text";
} else {
x.type = "password";
}
});
}
$("#show_hide_password a").on('click', function (event) {
event.preventDefault();
if ($('#show_hide_password input').attr("type") == "text") {
$('#show_hide_password input').attr('type', 'password');
$('#show_hide_password i').addClass("fa-eye-slash");
$('#show_hide_password i').removeClass("fa-eye");
} else if ($('#show_hide_password input').attr("type") == "password") {
$('#show_hide_password input').attr('type', 'text');
$('#show_hide_password i').removeClass("fa-eye-slash");
$('#show_hide_password i').addClass("fa-eye");
}
});
// Background Image
$('.background-image').each(function(){
$(this).css('background-image', $(this).attr('data-background'));
});
// Opacity mask
$('.opacity-mask').each(function(){
$(this).css('background-color', $(this).attr('data-opacity-mask'));
});
}
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<div t-name="anita_theme_base.customizer" class="dropdown">
<a role="button" href="#" class="customizer-toggle dropdown-toggle o-no-caret o-dropdown--narrow">
<span class="fa fa-cog fa-fw"/>
</a>
</div>
</templates>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- add the responsible support -->
<template id="anita_theme_base.layout" inherit_id="web.layout">
<xpath expr="//head" position="inside">
<meta name="viewport" content="width=device-width,initial-scale=1" />
</xpath>
</template>
</odoo>
\ No newline at end of file
Code Backend Theme
==================
* Code Backend Theme module for Odoo 15 community editions
Installation
============
- www.odoo.com/documentation/15.0/setup/install.html
- Install our custom addon
License
-------
General Public License, Version 3 (LGPL v3).
(https://www.odoo.com/documentation/user/14.0/legal/licenses/licenses.html)
Company
-------
* 'Cybrosys Techno Solutions <https://cybrosys.com/>'__
Credits
-------
* 'Cybrosys Techno Solutions <https://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
==========
This module is maintained by Cybrosys Technologies.
For support and more information, please visit https://www.cybrosys.com
Further information
===================
HTML Description: `<static/description/index.html>`__
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
#
# 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 <http://www.gnu.org/licenses/>.
#
#############################################################################
from .hooks import test_pre_init_hook, test_post_init_hook
# -*- coding: utf-8 -*-
#############################################################################
#
# Cybrosys Technologies Pvt. Ltd.
#
# Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>)
# Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>)
#
# 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 <http://www.gnu.org/licenses/>.
#
#############################################################################
{
"name": "Code Backend Theme V15",
"description": """Minimalist and elegant backend theme for Odoo 14, Backend Theme, Theme""",
"summary": "Code Backend Theme V15 is an attractive theme for backend",
"category": "Themes/Backend",
"version": "15.0.1.0.4",
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
'website': "https://www.cybrosys.com",
"depends": ['base', 'web', 'mail'],
"data": [
'views/icons.xml',
'views/layout.xml',
],
'assets': {
'web.assets_frontend': [
'code_backend_theme/static/src/scss/login.scss',
],
'web.assets_backend': [
'code_backend_theme/static/src/scss/theme_accent.scss',
'code_backend_theme/static/src/scss/navigation_bar.scss',
'code_backend_theme/static/src/scss/datetimepicker.scss',
'code_backend_theme/static/src/scss/theme.scss',
'code_backend_theme/static/src/scss/sidebar.scss',
'code_backend_theme/static/src/js/fields/colors.js',
'code_backend_theme/static/src/js/chrome/sidebar_menu.js',
],
'web.assets_qweb': [
'code_backend_theme/static/src/xml/styles.xml',
'code_backend_theme/static/src/xml/top_bar.xml',
],
},
'images': [
'static/description/banner.png',
'static/description/theme_screenshot.png',
],
'license': 'LGPL-3',
'pre_init_hook': 'test_pre_init_hook',
'post_init_hook': 'test_post_init_hook',
'installable': True,
'application': False,
'auto_install': False,
}
## Module <code_backend_theme>
#### 22.10.2021
#### Version 15.0.1.0.0
#### ADD
Initial Commit
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment