[MERGE] Forward-port of branch 13.0 to 14.0
@ -17,7 +17,7 @@ Configuration
|
|||||||
|
|
||||||
Go to :menuselection:`Apps` and install the **VoIP Module**.
|
Go to :menuselection:`Apps` and install the **VoIP Module**.
|
||||||
|
|
||||||
.. image:: media/axivox-voip-installation.png
|
.. image:: axivox/voip-installation.png
|
||||||
:align: center
|
:align: center
|
||||||
:alt: VoIP module installation on an Odoo database
|
:alt: VoIP module installation on an Odoo database
|
||||||
|
|
||||||
@ -29,21 +29,28 @@ Go to :menuselection:`Settings --> General Settings --> Integrations`, and fill
|
|||||||
- **WebSocket**: type in ``wss://pabx.axivox.com:3443``
|
- **WebSocket**: type in ``wss://pabx.axivox.com:3443``
|
||||||
- **VoIP Environment**: set as *Production*
|
- **VoIP Environment**: set as *Production*
|
||||||
|
|
||||||
.. image:: media/axivox-voip-configuration.png
|
.. image:: axivox/voip-configuration.png
|
||||||
:align: center
|
:align: center
|
||||||
:alt: Integration of Axivox as VoIP provider in an Odoo database
|
:alt: Integration of Axivox as VoIP provider in an Odoo database
|
||||||
|
|
||||||
|
Configure the VOIP user in the Odoo's user
|
||||||
|
------------------------------------------
|
||||||
|
|
||||||
Go to :menuselection:`Settings --> Users & Companies --> Users`, then open the user's form you want
|
Go to :menuselection:`Settings --> Users & Companies --> Users`, then open the user's form you want
|
||||||
to configure. Under the **Preferences** tab, fill out the section **PBX Configuration**:
|
to configure. Under the **Preferences** tab, fill out the section **PBX Configuration**:
|
||||||
|
|
||||||
- **SIP Login / Browser's Extension**: the Axivox *username*
|
- **SIP Login / Browser's Extension**: the Axivox *username*
|
||||||
- **SIP Password**: the Axivox *SIP Password*
|
- **SIP Password**: the Axivox *SIP Password*
|
||||||
|
|
||||||
|
.. image:: axivox/odoo-user.png
|
||||||
|
:align: center
|
||||||
|
:alt: Integration of Axivox user in the Odoo user preference
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
You can find all this information by logging in at https://manage.axivox.com/, selecting the user
|
You can find all this information by logging in at https://manage.axivox.com/, selecting the user
|
||||||
you want to configure, and referring to the fields as pictured below.
|
you want to configure, and referring to the fields as pictured below.
|
||||||
|
|
||||||
.. image:: media/axivox-manager-sip.png
|
.. image:: axivox/manager-sip.png
|
||||||
:align: center
|
:align: center
|
||||||
:alt: SIP credentials in the Axivox manager
|
:alt: SIP credentials in the Axivox manager
|
||||||
|
|
||||||
@ -57,7 +64,7 @@ You can also receive phone calls. Odoo rings and displays a notification.
|
|||||||
.. note::
|
.. note::
|
||||||
Your number is the one provided by Axivox.
|
Your number is the one provided by Axivox.
|
||||||
|
|
||||||
.. image:: media/axivox-incoming-call.png
|
.. image:: axivox/incoming-call.png
|
||||||
:align: center
|
:align: center
|
||||||
:alt: Incoming VoIP call in Odoo
|
:alt: Incoming VoIP call in Odoo
|
||||||
|
|
||||||
@ -65,7 +72,7 @@ You can also receive phone calls. Odoo rings and displays a notification.
|
|||||||
If you see a *Missing Parameter* message in the **Odoo softphone**, refresh your Odoo window and
|
If you see a *Missing Parameter* message in the **Odoo softphone**, refresh your Odoo window and
|
||||||
try again.
|
try again.
|
||||||
|
|
||||||
.. image:: media/axivox-missing-parameter.png
|
.. image:: axivox/missing-parameter.png
|
||||||
:align: center
|
:align: center
|
||||||
:alt: "Missing Parameter" error message in the Odoo softphone
|
:alt: "Missing Parameter" error message in the Odoo softphone
|
||||||
|
|
||||||
@ -74,6 +81,6 @@ You can also receive phone calls. Odoo rings and displays a notification.
|
|||||||
international format, leading with the plus (+) sign followed by the international country code.
|
international format, leading with the plus (+) sign followed by the international country code.
|
||||||
E.g., +16506913277 (where +1 is the international prefix for the United States).
|
E.g., +16506913277 (where +1 is the international prefix for the United States).
|
||||||
|
|
||||||
.. image:: media/axivox-incorrect-number.png
|
.. image:: axivox/incorrect-number.png
|
||||||
:align: center
|
:align: center
|
||||||
:alt: "Incorrect Number" error message in the Odoo softphone
|
:alt: "Incorrect Number" error message in the Odoo softphone
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
BIN
content/applications/general/voip/axivox/odoo-user.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
@ -60,7 +60,8 @@ Then set your email domain name in the General Settings.
|
|||||||
Can I use an Office 365 server
|
Can I use an Office 365 server
|
||||||
------------------------------
|
------------------------------
|
||||||
You can use an Office 365 server if you run Odoo on-premise.
|
You can use an Office 365 server if you run Odoo on-premise.
|
||||||
Office 365 SMTP relays are not compatible with Odoo Online.
|
Office 365 SMTP relays are not compatible with Odoo Online unless you configure
|
||||||
|
Odoo to force the outgoing "From" address (see below).
|
||||||
|
|
||||||
Please refer to `Microsoft's documentation <https://support.office.com/en-us/article/How-to-set-up-a-multifunction-device-or-application-to-send-email-using-Office-365-69f58e99-c550-4274-ad18-c805d654b4c4>`__
|
Please refer to `Microsoft's documentation <https://support.office.com/en-us/article/How-to-set-up-a-multifunction-device-or-application-to-send-email-using-Office-365-69f58e99-c550-4274-ad18-c805d654b4c4>`__
|
||||||
to configure a SMTP relay for your Odoo's IP address.
|
to configure a SMTP relay for your Odoo's IP address.
|
||||||
@ -108,6 +109,48 @@ Restriction
|
|||||||
-----------
|
-----------
|
||||||
Please note that the port 25 is blocked for security reasons. Try using 587, 465 or 2525.
|
Please note that the port 25 is blocked for security reasons. Try using 587, 465 or 2525.
|
||||||
|
|
||||||
|
Choose allowed "From" email addresses
|
||||||
|
-------------------------------------
|
||||||
|
|
||||||
|
Sometimes, an email's "From" (outgoing) address can belong to a different
|
||||||
|
domain, and that can be a problem.
|
||||||
|
|
||||||
|
For example, if a customer with address *mary@customer.example.com* responds to
|
||||||
|
a message, Odoo will try to redistribute that same email to other subscribers
|
||||||
|
in the thread. But if the domain *customer.example.com* forbids that kind of
|
||||||
|
usage for security (kudos for that), the Odoo's redistributed email would get
|
||||||
|
rejected by some recipients' mail servers.
|
||||||
|
|
||||||
|
To avoid those kind of problems, you should make sure all emails use a "From"
|
||||||
|
address from your authorized domain.
|
||||||
|
|
||||||
|
If your MTA supports `SRS (Sender Rewriting Scheme)
|
||||||
|
<https://en.wikipedia.org/wiki/Sender_Rewriting_Scheme>`_, you can enable it
|
||||||
|
to handle these situations. However, that is more complex and requires more
|
||||||
|
technical knowledge that is not meant to be covered by this documentation.
|
||||||
|
|
||||||
|
Instead, you can also configure Odoo to do something similar by itself:
|
||||||
|
|
||||||
|
#. Set your domain name in the General Settings.
|
||||||
|
|
||||||
|
.. image:: media/alias_domain.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
#. In developer mode, go to :menuselection:`Settings --> Technical -->
|
||||||
|
Parameters --> System Parameters`.
|
||||||
|
|
||||||
|
#. Add one system parameter from these:
|
||||||
|
|
||||||
|
* If you want *all* your outgoing messages to use the same "From" address,
|
||||||
|
use the key ``mail.force.smtp.from`` and set that address as value
|
||||||
|
(such as ``outgoing@mycompany.example.com``).
|
||||||
|
|
||||||
|
* If you want to keep the original "From" address for emails that use your
|
||||||
|
same domain, but change it for emails that use a different domain, use
|
||||||
|
the key ``mail.dynamic.smtp.from`` and set as value the email address
|
||||||
|
that should be used in those cases (such as
|
||||||
|
``outgoing@mycompany.example.com``).
|
||||||
|
|
||||||
.. _discuss/email_servers/inbound_messages:
|
.. _discuss/email_servers/inbound_messages:
|
||||||
|
|
||||||
How to manage inbound messages
|
How to manage inbound messages
|
||||||
|
@ -59,16 +59,23 @@ def resolve(old_resolve, tree, docname, *args, **kwargs):
|
|||||||
_update_toctree_nodes(_subnode)
|
_update_toctree_nodes(_subnode)
|
||||||
|
|
||||||
def _get_docname(_node):
|
def _get_docname(_node):
|
||||||
"""
|
""" Return the docname of the targeted document.
|
||||||
docname = a/b/c/the_page_being_rendered
|
|
||||||
|
docname = some_common_root/foo/bar/the_page_being_rendered
|
||||||
_ref = ../../contributing/documentation
|
_ref = ../../contributing/documentation
|
||||||
_path_parts = ['..', '..', 'contributing', 'documentation']
|
_path_parts = ['..', '..', 'contributing', 'documentation']
|
||||||
_res = ['a', 'contributing', 'documentation']
|
_res = ['some_common_root', 'contributing', 'documentation']
|
||||||
_docname = a/contributing/documentation
|
_docname = some_common_root/contributing/documentation
|
||||||
|
|
||||||
|
:return: The docname of the document targeted by `_node`, i.e. the relative path from the
|
||||||
|
documentation source directory (the `content/` directory)
|
||||||
|
:rtype: str
|
||||||
"""
|
"""
|
||||||
_ref = _node['refuri'].replace('.html', '')
|
_ref = _node['refuri'].replace('.html', '')
|
||||||
_parent_directory_occurrences = _ref.count('..')
|
_parent_directory_occurrences = _ref.count('..')
|
||||||
if not _parent_directory_occurrences: # The ref is already the docname
|
if not _parent_directory_occurrences and '/' not in docname:
|
||||||
|
# The current document is at the root of the documentation source directory
|
||||||
|
# (e.g. docname == 'index'|'applications'|...). i.e., the ref is already the docname.
|
||||||
_docname = _ref
|
_docname = _ref
|
||||||
else:
|
else:
|
||||||
_path_parts = _ref.split('/')
|
_path_parts = _ref.split('/')
|
||||||
|
@ -79,6 +79,10 @@
|
|||||||
{%- set main_classes = main_classes + ['o_index'] %}
|
{%- set main_classes = main_classes + ['o_index'] %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
|
{%- if 'show-content' in meta %} {# The page is an accessible toctree #}
|
||||||
|
{%- set main_classes = main_classes + ['o_hide_toc'] %}
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
{%- if 'code-column' in meta %} {# The page contains a 'memento' (dynamic side block) #}
|
{%- if 'code-column' in meta %} {# The page contains a 'memento' (dynamic side block) #}
|
||||||
{%- set main_classes = main_classes + ['o_has_code_column'] %}
|
{%- set main_classes = main_classes + ['o_has_code_column'] %}
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
@ -110,7 +114,8 @@
|
|||||||
{%- endif %}
|
{%- endif %}
|
||||||
</main>
|
</main>
|
||||||
{%- if 'hide-page-toc' not in meta %}
|
{%- if 'hide-page-toc' not in meta %}
|
||||||
<aside id="o_page_toc" class="o_page_toc">
|
{# Shown when the JS has properly set all the classes on the TOC elements #}
|
||||||
|
<aside id="o_page_toc" class="o_page_toc" hidden>
|
||||||
{%- include "layout_templates/page_toc.html" %}
|
{%- include "layout_templates/page_toc.html" %}
|
||||||
</aside>
|
</aside>
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<div id="o_content">
|
<div id="o_content">
|
||||||
<section class="o_content_fw_banner row">
|
<section class="o_content_fw_banner row">
|
||||||
<div class="col-lg-6">
|
<div class="col-lg-6">
|
||||||
<h2 class="text-white">Odoo Documentation</h2>
|
<h1 class="text-white">Odoo Documentation</h1>
|
||||||
<p class="text-white">The comprehensive guide for Odoo users. Easily find the tutorial and helpful tips that suit your needs.</p>
|
<p class="text-white">The comprehensive guide for Odoo users. Easily find the tutorial and helpful tips that suit your needs.</p>
|
||||||
<div class="mt-3">
|
<div class="mt-3">
|
||||||
<a href="https://odoo.com/trial" class="btn btn-primary mb-2 o-hidden-ios">Try Odoo for FREE</a>
|
<a href="https://odoo.com/trial" class="btn btn-primary mb-2 o-hidden-ios">Try Odoo for FREE</a>
|
||||||
@ -9,16 +9,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<div class="row gx-lg-5 border-bottom">
|
<div class="row gx-lg-5">
|
||||||
<div class="col-lg-6 order-lg-2">
|
<div class="col-lg-6">
|
||||||
<div class="o_cat_banner mb-5">
|
<h2><i class="i-doc-apps d-lg-none me-2"></i>Applications</h2>
|
||||||
<img src="{{ pathto('_static/img/banner-applications.png', 1) }}" alt="">
|
<p class="text-muted">Master any app thanks to their end-user guides. Our wide array of functional workflows and processes are designed to help you unleash Odoo's potential.</p>
|
||||||
</div>
|
<h5 class="text-muted pt-3 text-uppercase fw_semibold">Top Links</h5>
|
||||||
</div>
|
|
||||||
<div class="col-lg-6 order-lg-1">
|
|
||||||
<h3>Applications</h3>
|
|
||||||
<p>Master any app thanks to their end-user guides. Our wide array of functional workflows and processes are designed to help you unleash Odoo's potential.</p>
|
|
||||||
<h5 class="pt-3 text-uppercase fw_semibold">Top Links</h5>
|
|
||||||
<ul class="list-unstyled">
|
<ul class="list-unstyled">
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ pathto('applications/finance/accounting/overview/main_concepts/in_odoo') }}" class="stretched-link">
|
<a href="{{ pathto('applications/finance/accounting/overview/main_concepts/in_odoo') }}" class="stretched-link">
|
||||||
@ -42,15 +37,10 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="col-lg-6">
|
||||||
<div class="row gx-lg-5">
|
<h2 class="border-top pt-4 pt-lg-0"><i class="i-doc-admin d-lg-none me-2"></i>Administration</h2>
|
||||||
<div class="col-lg-6 py-5 border-bottom">
|
<p class="text-muted">Easily setup your first Odoo installation. From downloads to day-to-day database administration, the dedicated tutorials have got you covered.</p>
|
||||||
<div class="o_cat_banner mb-4 p-lg-4">
|
<h5 class="text-muted pt-3 text-uppercase fw_semibold">Top Links</h5>
|
||||||
<i class="i-doc-admin"></i>
|
|
||||||
</div>
|
|
||||||
<h3>Administration</h3>
|
|
||||||
<p>Easily setup your first Odoo installation. From downloads to day-to-day database administration, the dedicated tutorials have got you covered.</p>
|
|
||||||
<h5 class="pt-3 text-uppercase fw_semibold">Top Links</h5>
|
|
||||||
<ul class="list-unstyled">
|
<ul class="list-unstyled">
|
||||||
<li>
|
<li>
|
||||||
<a href=" {{ pathto('administration/install') }} " class="stretched-link">
|
<a href=" {{ pathto('administration/install') }} " class="stretched-link">
|
||||||
@ -74,13 +64,12 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-6 py-5 border-bottom">
|
</div>
|
||||||
<div class="o_cat_banner mb-4 p-lg-4 o-bg-violet-light">
|
<div class="row gx-lg-5">
|
||||||
<i class="i-doc-dev"></i>
|
<div class="col-lg-6">
|
||||||
</div>
|
<h2 class="border-top pt-4"><i class="i-doc-dev d-lg-none me-2"></i>Developer</h2>
|
||||||
<h3>Developer</h3>
|
<p class="text-muted">Learn to develop in Odoo by reading the framework references and programmer tutorials.</p>
|
||||||
<p>Learn to develop in Odoo by reading the framework references and programmer tutorials.</p>
|
<h5 class="text-muted pt-3 text-uppercase fw_semibold">Top Links</h5>
|
||||||
<h5 class="pt-3 text-uppercase fw_semibold">Top Links</h5>
|
|
||||||
<ul class="list-unstyled">
|
<ul class="list-unstyled">
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ pathto('developer/reference/orm') }}" class="stretched-link">
|
<a href="{{ pathto('developer/reference/orm') }}" class="stretched-link">
|
||||||
@ -104,16 +93,10 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="col-lg-6">
|
||||||
<div class="row gx-lg-5">
|
<h2 class="border-top pt-4"><i class="i-doc-services d-lg-none me-2"></i>Services</h2>
|
||||||
{# If changelog exists add class border-bottom #}
|
<p class="text-muted">Find out how to open a support ticket should you need to contact a Customer Service Representative.</p>
|
||||||
<div class="col-lg-6 pt-5">
|
<h5 class="text-muted pt-3 text-uppercase fw_semibold">Top Links</h5>
|
||||||
<div class="o_cat_banner mb-4 p-lg-4 o-bg-violet-light">
|
|
||||||
<i class="i-doc-services"></i>
|
|
||||||
</div>
|
|
||||||
<h3>Services</h3>
|
|
||||||
<p>Find out how to open a support ticket should you need to contact a Customer Service Representative.</p>
|
|
||||||
<h5 class="pt-3 text-uppercase fw_semibold">Top Links</h5>
|
|
||||||
<ul class="list-unstyled">
|
<ul class="list-unstyled">
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ pathto('services/support/where_can_i_get_support') }}" class="stretched-link">
|
<a href="{{ pathto('services/support/where_can_i_get_support') }}" class="stretched-link">
|
||||||
@ -132,14 +115,12 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
{# If changelog exists add class border-bottom #}
|
</div>
|
||||||
<div class="col-lg-6 pt-5">
|
<div class="row gx-lg-5">
|
||||||
<div class="o_cat_banner mb-4 p-lg-4">
|
<div class="col-lg-6">
|
||||||
<i class="i-doc-contribute"></i>
|
<h2 class="border-top pt-4"><i class="i-doc-contribute d-lg-none me-2"></i>Contributing</h2>
|
||||||
</div>
|
<p class="text-muted">You want to contribute to Odoo but don't know where to start? The tutorials and guidelines are there to help you make Odoo even better.</p>
|
||||||
<h3>Contributing</h3>
|
<h5 class="text-muted pt-3 text-uppercase fw_semibold">Top Links</h5>
|
||||||
<p>You want to contribute to Odoo but don't know where to start? The tutorials and guidelines are there to help you make Odoo even better.</p>
|
|
||||||
<h5 class="pt-3 text-uppercase fw_semibold">Top Links</h5>
|
|
||||||
<ul class="list-unstyled">
|
<ul class="list-unstyled">
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ pathto('contributing/documentation/introduction_guide') }}" class="stretched-link">
|
<a href="{{ pathto('contributing/documentation/introduction_guide') }}" class="stretched-link">
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<div class="o_versions row gx-2 me-3">
|
<div class="o_versions row gx-2 me-3">
|
||||||
<div class="col col-form-label">
|
<div class="col col-form-label">
|
||||||
<label class="fw_bold small me-2">Version</label>
|
<label class="fw_bold small ms-2">Version</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
|
@ -47,14 +47,21 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
document.addEventListener('scroll', () => {
|
||||||
|
// Allow to hide the searchbar when the page is scrolled in mobile.
|
||||||
|
_flagHeaderWithScrollPosition();
|
||||||
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mobile: Toggle open/close sidebar on click of nav button (&& on swipe left to right?).
|
* Add/Remove the class `o_header_scrolled` on the header according to the scroll position.
|
||||||
*
|
|
||||||
*
|
|
||||||
* `o_active_toc_entry` class, and their related (parent) TOC entry list (<ul> elements) receive
|
|
||||||
* the `show` (Bootstrap) class.
|
|
||||||
* Also, the deepest TOC entry receives the `o_deepest_active_toc_entry` class, and its child
|
|
||||||
* Sidebar receives the `o-mobile-show` class.
|
|
||||||
*/
|
*/
|
||||||
|
const _flagHeaderWithScrollPosition = () => {
|
||||||
|
const header = document.querySelector('.o_main_header');
|
||||||
|
if (this.scrollY > 0) {
|
||||||
|
header.classList.add('o_header_scrolled');
|
||||||
|
} else {
|
||||||
|
header.classList.remove('o_header_scrolled');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
@ -22,6 +22,9 @@
|
|||||||
|
|
||||||
// Allow to hide the TOC entry referring the title (<h1> heading)
|
// Allow to hide the TOC entry referring the title (<h1> heading)
|
||||||
_flagFirstHeadingRef();
|
_flagFirstHeadingRef();
|
||||||
|
|
||||||
|
// Show hidden menu when the css classes have been properly specified
|
||||||
|
this.pageToc.removeAttribute('hidden');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -173,7 +173,7 @@ $o-inverse-dark: #5b7687;
|
|||||||
$o-inverse-darker: #485761;
|
$o-inverse-darker: #485761;
|
||||||
|
|
||||||
$color-alpha: #00A19B;
|
$color-alpha: #00A19B;
|
||||||
$color-alpha-dark: #00807D;
|
$color-alpha-dark: #017e84;
|
||||||
$color-alpha-light: #26d1af;
|
$color-alpha-light: #26d1af;
|
||||||
$color-alpha-lightest: #2aebc4;
|
$color-alpha-lightest: #2aebc4;
|
||||||
|
|
||||||
@ -205,8 +205,6 @@ $gray-light: #d5d5d5;
|
|||||||
$gray: #888888;
|
$gray: #888888;
|
||||||
$gray-dark: #707070;
|
$gray-dark: #707070;
|
||||||
$gray-darker: #282F33;
|
$gray-darker: #282F33;
|
||||||
$gray-darkest: shade-color($gray-darker, 30%);
|
|
||||||
|
|
||||||
|
|
||||||
$primary: $color-alpha-dark;
|
$primary: $color-alpha-dark;
|
||||||
$secondary: $o-violet-dark;
|
$secondary: $o-violet-dark;
|
||||||
|
@ -14,15 +14,18 @@ body {
|
|||||||
a:not(:hover), a.o_logo {
|
a:not(:hover), a.o_logo {
|
||||||
text-decoration: none !important;
|
text-decoration: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
dd {
|
dd {
|
||||||
margin-left: 1rem;
|
margin-left: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
// This fixes the scroll position on all elements, including refs
|
// This fixes the scroll position on all elements, including refs
|
||||||
:target {
|
:target {
|
||||||
&:before {
|
&:before {
|
||||||
@include o-scroll-padding()
|
@include o-scroll-padding()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
abbr[title="Pull Request"] {
|
abbr[title="Pull Request"] {
|
||||||
@include o-easter-egg();
|
@include o-easter-egg();
|
||||||
}
|
}
|
||||||
@ -37,7 +40,7 @@ body {
|
|||||||
// Header with logo, searchbar and switchers
|
// Header with logo, searchbar and switchers
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
header.o_main_header{
|
header.o_main_header {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: $o-header-mobile-height;
|
height: $o-header-mobile-height;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
@ -50,13 +53,16 @@ header.o_main_header{
|
|||||||
height: $o-header-height;
|
height: $o-header-height;
|
||||||
padding-right: 3rem;
|
padding-right: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.o_logo_wrapper {
|
.o_logo_wrapper {
|
||||||
padding: 0 1rem;
|
padding: 0 1rem;
|
||||||
|
|
||||||
> .o_logo {
|
> .o_logo {
|
||||||
img {
|
img {
|
||||||
margin-bottom: -2px;
|
margin-bottom: -2px;
|
||||||
vertical-align: baseline;
|
vertical-align: baseline;
|
||||||
}
|
}
|
||||||
|
|
||||||
span {
|
span {
|
||||||
@include font-size($font-size-base);
|
@include font-size($font-size-base);
|
||||||
color: $o-violet;
|
color: $o-violet;
|
||||||
@ -73,36 +79,56 @@ header.o_main_header{
|
|||||||
}
|
}
|
||||||
.o_search_wrapper {
|
.o_search_wrapper {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
opacity: 1;
|
||||||
|
@include transition(opacity .3s);
|
||||||
|
|
||||||
@include media-breakpoint-down(lg) {
|
@include media-breakpoint-down(lg) {
|
||||||
display: block;
|
display: block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
top: calc(100% + 30px);
|
top: calc(100% + 15px);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.o_header_scrolled {
|
||||||
|
.o_search_wrapper {
|
||||||
|
@include media-breakpoint-down(lg) {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.highlight-link {
|
.highlight-link {
|
||||||
|
@media only screen and (max-width: 1242px) and (min-width: 992px){
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
padding: 0 1rem;
|
padding: 0 1rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
align-self: center;
|
align-self: center;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
@include font-size($font-size-secondary);
|
@include font-size($font-size-secondary);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.navbar-toggler {
|
.navbar-toggler {
|
||||||
border: none;
|
border: none;
|
||||||
|
|
||||||
&[aria-expanded="true"] {
|
&[aria-expanded="true"] {
|
||||||
.icon-bar {
|
.icon-bar {
|
||||||
&:nth-of-type(1) {
|
&:nth-of-type(1) {
|
||||||
@include o-transform(rotate(45deg));;
|
@include o-transform(rotate(45deg));;
|
||||||
@include o-transform-origin(10%, 10%)
|
@include o-transform-origin(10%, 10%)
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-of-type(2) {
|
&:nth-of-type(2) {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
filter: alpha(opacity=0);
|
filter: alpha(opacity=0);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-of-type(3) {
|
&:nth-of-type(3) {
|
||||||
@include o-transform(rotate(-45deg));
|
@include o-transform(rotate(-45deg));
|
||||||
@include o-transform-origin(10%, 90%)
|
@include o-transform-origin(10%, 90%)
|
||||||
@ -115,20 +141,25 @@ header.o_main_header{
|
|||||||
height: 2px;
|
height: 2px;
|
||||||
background-color: $gray-dark;
|
background-color: $gray-dark;
|
||||||
@include o-transition(all, .2s);
|
@include o-transition(all, .2s);
|
||||||
|
|
||||||
&+ .icon-bar {
|
&+ .icon-bar {
|
||||||
margin-top: 4px;
|
margin-top: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-of-type(1) {
|
&:nth-of-type(1) {
|
||||||
@include o-transform(rotate(0));
|
@include o-transform(rotate(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-of-type(2) {
|
&:nth-of-type(2) {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
filter: alpha(opacity=100);
|
filter: alpha(opacity=100);
|
||||||
}
|
}
|
||||||
|
|
||||||
&:nth-of-type(3) {
|
&:nth-of-type(3) {
|
||||||
@include o-transform(rotate(0));
|
@include o-transform(rotate(0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:focus {
|
&:focus {
|
||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
outline:none;
|
outline:none;
|
||||||
@ -149,7 +180,8 @@ header.o_main_header{
|
|||||||
@include media-breakpoint-up(lg) {
|
@include media-breakpoint-up(lg) {
|
||||||
max-width: 500px;
|
max-width: 500px;
|
||||||
}
|
}
|
||||||
.btn{
|
|
||||||
|
.btn {
|
||||||
@include o-position-absolute($top: 50%, $right: 1rem);
|
@include o-position-absolute($top: 50%, $right: 1rem);
|
||||||
@include o-transform (translateY(-50%)) ;
|
@include o-transform (translateY(-50%)) ;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@ -170,6 +202,7 @@ header.o_main_header{
|
|||||||
position: fixed;
|
position: fixed;
|
||||||
top: -100%;
|
top: -100%;
|
||||||
left:0;
|
left:0;
|
||||||
|
|
||||||
&.show {
|
&.show {
|
||||||
top: $o-header-mobile-height;
|
top: $o-header-mobile-height;
|
||||||
}
|
}
|
||||||
@ -181,7 +214,7 @@ header.o_main_header{
|
|||||||
padding-left: 3rem;
|
padding-left: 3rem;
|
||||||
}
|
}
|
||||||
@include o-transition(all, .3s);
|
@include o-transition(all, .3s);
|
||||||
padding-top: 1rem;
|
padding-top: 4rem;
|
||||||
padding-left: 1rem;
|
padding-left: 1rem;
|
||||||
background-color: lighten($o-violet-dark, 70%) ;
|
background-color: lighten($o-violet-dark, 70%) ;
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
@ -193,37 +226,35 @@ header.o_main_header{
|
|||||||
padding-bottom: .5rem;
|
padding-bottom: .5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.toctree-l1 > ul {
|
|
||||||
padding-left: 1.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul {
|
ul {
|
||||||
.o_deepest_active_toc_entry {
|
.o_deepest_active_toc_entry {
|
||||||
background-color: $gray-lightest;
|
background-color: $gray-lighter;
|
||||||
|
border-left: 3px solid $gray-lighter;
|
||||||
|
margin-left: -3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
> .toctree-l1 {
|
> .toctree-l1 {
|
||||||
|
&[class*="o_menu_"] > .o_toc_entry_wrapper > i:before {
|
||||||
&[class*="o_menu_"] > .o_toc_entry_wrapper > i {
|
@include o-inline-icon($i-doc-apps, 0 5px 0 0);
|
||||||
opacity: .75;
|
color: $o-violet-dark;
|
||||||
&:before {
|
|
||||||
@include o-inline-icon($i-doc-apps, 0 1rem 0 0);
|
|
||||||
color: $o-violet-dark;
|
|
||||||
margin-right: 0.5rem;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&.o_menu_applications > .o_toc_entry_wrapper > i:before{
|
&.o_menu_applications > .o_toc_entry_wrapper > i:before{
|
||||||
content:'#{$i-doc-apps}';
|
content:'#{$i-doc-apps}';
|
||||||
}
|
}
|
||||||
|
|
||||||
&.o_menu_administration > .o_toc_entry_wrapper > i:before{
|
&.o_menu_administration > .o_toc_entry_wrapper > i:before{
|
||||||
content:'#{$i-doc-admin}';
|
content:'#{$i-doc-admin}';
|
||||||
}
|
}
|
||||||
|
|
||||||
&.o_menu_developer > .o_toc_entry_wrapper > i:before{
|
&.o_menu_developer > .o_toc_entry_wrapper > i:before{
|
||||||
content:'#{$i-doc-dev}';
|
content:'#{$i-doc-dev}';
|
||||||
}
|
}
|
||||||
|
|
||||||
&.o_menu_services > .o_toc_entry_wrapper > i:before{
|
&.o_menu_services > .o_toc_entry_wrapper > i:before{
|
||||||
content:'#{$i-doc-services}';
|
content:'#{$i-doc-services}';
|
||||||
}
|
}
|
||||||
|
|
||||||
&.o_menu_contributing > .o_toc_entry_wrapper > i:before{
|
&.o_menu_contributing > .o_toc_entry_wrapper > i:before{
|
||||||
content:'#{$i-doc-contribute}';
|
content:'#{$i-doc-contribute}';
|
||||||
}
|
}
|
||||||
@ -232,12 +263,15 @@ header.o_main_header{
|
|||||||
}
|
}
|
||||||
scrollbar-width: thin;
|
scrollbar-width: thin;
|
||||||
scrollbar-color: $o-violet-darker transparent;
|
scrollbar-color: $o-violet-darker transparent;
|
||||||
|
|
||||||
&::-webkit-scrollbar {
|
&::-webkit-scrollbar {
|
||||||
width: 5px;
|
width: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&::-webkit-scrollbar-track {
|
&::-webkit-scrollbar-track {
|
||||||
background: $white;
|
background: $white;
|
||||||
}
|
}
|
||||||
|
|
||||||
&::-webkit-scrollbar-thumb {
|
&::-webkit-scrollbar-thumb {
|
||||||
background-color: $o-violet-darker ;
|
background-color: $o-violet-darker ;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
@ -250,21 +284,28 @@ header.o_main_header{
|
|||||||
padding-left: 1rem;
|
padding-left: 1rem;
|
||||||
|
|
||||||
li {
|
li {
|
||||||
padding-left: .2rem;
|
&.toctree_l2 {
|
||||||
|
padding-left: .2rem;
|
||||||
|
}
|
||||||
> a.reference {
|
> a.reference {
|
||||||
padding-left: 1.2rem;
|
padding-left: .8rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: .5rem 0;
|
padding: .4rem 0;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
opacity: .75;
|
opacity: .75;
|
||||||
|
|
||||||
&.current, &:hover {
|
&.current, &:hover {
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
> .o_toc_entry_wrapper i {
|
||||||
|
opacity: .75;
|
||||||
|
}
|
||||||
|
|
||||||
&:not(.toctree-l1) {
|
&:not(.toctree-l1) {
|
||||||
.o_toc_entry_wrapper {
|
.o_toc_entry_wrapper {
|
||||||
&:not(.o_page_toc_title) {
|
&:not(.o_page_toc_title) {
|
||||||
@ -276,6 +317,7 @@ header.o_main_header{
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-right: .2rem;
|
margin-right: .2rem;
|
||||||
@include o-transition(rotate, .3s);
|
@include o-transition(rotate, .3s);
|
||||||
|
font-size: .75rem;
|
||||||
font-weight: $fw_bold;
|
font-weight: $fw_bold;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
|
|
||||||
@ -285,19 +327,21 @@ header.o_main_header{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.o_active_toc_entry {
|
&.o_active_toc_entry {
|
||||||
&:not(.toctree-l1) > .o_toc_entry_wrapper {
|
&:not(.toctree-l1) > .o_toc_entry_wrapper {
|
||||||
i[class^="i-"]:not(.collapsed) {
|
i[class^="i-"]:not(.collapsed) {
|
||||||
@include o-transform(rotate(90deg));
|
@include o-transform(rotate(90deg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
> a , > .o_toc_entry_wrapper a {
|
> a , > .o_toc_entry_wrapper a, > .o_toc_entry_wrapper i {
|
||||||
font-weight: $fw_bold;
|
font-weight: $fw_bold;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
> ul { //is first ul in toc
|
> ul { //is first ul in toc
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
}
|
}
|
||||||
@ -332,11 +376,12 @@ header.o_main_header{
|
|||||||
|
|
||||||
a {
|
a {
|
||||||
font-weight: $fw_regular;
|
font-weight: $fw_regular;
|
||||||
color: $gray-darkest;
|
color: $gray-darker;
|
||||||
}
|
}
|
||||||
|
|
||||||
.o_page_toc_title {
|
.o_page_toc_title {
|
||||||
display:none;
|
display:none;
|
||||||
|
|
||||||
+ ul {
|
+ ul {
|
||||||
padding-left: 0;
|
padding-left: 0;
|
||||||
}
|
}
|
||||||
@ -349,7 +394,6 @@ header.o_main_header{
|
|||||||
|
|
||||||
#wrap {
|
#wrap {
|
||||||
margin-top: $o-header-mobile-height;
|
margin-top: $o-header-mobile-height;
|
||||||
|
|
||||||
@include media-breakpoint-up(lg) {
|
@include media-breakpoint-up(lg) {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
@ -378,7 +422,6 @@ header.o_main_header{
|
|||||||
padding-top: 7rem;
|
padding-top: 7rem;
|
||||||
}
|
}
|
||||||
padding-bottom: 3rem;
|
padding-bottom: 3rem;
|
||||||
|
|
||||||
@include media-breakpoint-up(lg) {
|
@include media-breakpoint-up(lg) {
|
||||||
left: $o-side-nav-width;
|
left: $o-side-nav-width;
|
||||||
max-width: calc(100vw - (#{$o-side-nav-width} + var(--bs-gutter-x, 1.5rem)) - #{$o-on-page-width});
|
max-width: calc(100vw - (#{$o-side-nav-width} + var(--bs-gutter-x, 1.5rem)) - #{$o-on-page-width});
|
||||||
@ -404,14 +447,16 @@ header.o_main_header{
|
|||||||
margin: -3rem -3rem 3rem;
|
margin: -3rem -3rem 3rem;
|
||||||
padding: 2rem 3rem;
|
padding: 2rem 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-primary {
|
.btn-primary {
|
||||||
background-color: #00A09D;
|
background-color: #00A09D;
|
||||||
border-color: #00A09D;
|
border-color: #00A09D;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.row:first-of-type h2.border-top {
|
||||||
p, h5 {
|
@include media-breakpoint-up(lg) {
|
||||||
color: $gray;
|
border-top: 0 solid transparent !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
h5 {
|
h5 {
|
||||||
@ -424,33 +469,14 @@ header.o_main_header{
|
|||||||
padding-bottom: .5rem;
|
padding-bottom: .5rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
&:before {
|
&:before {
|
||||||
@include o-inline-icon($i-article, 0 .2rem 0 0);
|
@include o-inline-icon($i-article, 0 .2rem 0 0);
|
||||||
color: $gray-light;
|
color: $gray-light;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.o_cat_banner {
|
|
||||||
background-color: $o-violet;
|
|
||||||
border-radius: 5px;
|
|
||||||
text-align: center;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-size: 90%;
|
|
||||||
background-position: center;
|
|
||||||
i {
|
|
||||||
font-size: 100px;
|
|
||||||
color: $white;
|
|
||||||
}
|
|
||||||
&.o-bg-violet-light {
|
|
||||||
background-color: lighten($o-violet, 20%);
|
|
||||||
}
|
|
||||||
&:not(.shadow){
|
|
||||||
background-image: url('img/bg-cat.svg');
|
|
||||||
}
|
|
||||||
&.shadow {
|
|
||||||
box-shadow: 0px 2px 25px rgba(19, 28, 40, .08) !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.o_changelog {
|
.o_changelog {
|
||||||
.row:last-of-type > .border-bottom {
|
.row:last-of-type > .border-bottom {
|
||||||
border: none !important;
|
border: none !important;
|
||||||
@ -459,7 +485,6 @@ header.o_main_header{
|
|||||||
}
|
}
|
||||||
|
|
||||||
// pages with full width: Legal
|
// pages with full width: Legal
|
||||||
|
|
||||||
&.o_fullwidth_page {
|
&.o_fullwidth_page {
|
||||||
.toctree-l1 > a {
|
.toctree-l1 > a {
|
||||||
display: block;
|
display: block;
|
||||||
@ -472,11 +497,9 @@ header.o_main_header{
|
|||||||
}
|
}
|
||||||
|
|
||||||
// pages with column for code on the right
|
// pages with column for code on the right
|
||||||
|
|
||||||
&.o_has_code_column {
|
&.o_has_code_column {
|
||||||
|
|
||||||
article.doc-body {
|
article.doc-body {
|
||||||
> *{
|
> * {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -507,13 +530,11 @@ header.o_main_header{
|
|||||||
@include o-code-col();
|
@include o-code-col();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.o_git_link {
|
.o_git_link {
|
||||||
right: calc(#{$o-codecol-width} + 2rem);
|
right: calc(#{$o-codecol-width} + 2rem);
|
||||||
}
|
}
|
||||||
section {
|
|
||||||
|
|
||||||
|
section {
|
||||||
> * {
|
> * {
|
||||||
width: $o-halfpage-width;
|
width: $o-halfpage-width;
|
||||||
float: left;
|
float: left;
|
||||||
@ -554,13 +575,34 @@ header.o_main_header{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
article.doc-body {
|
&.o_hide_toc {
|
||||||
position: relative;
|
|
||||||
|
|
||||||
// hide ugly toctree on "in between" pages (e.g.: /applications.html, /administration.html, ...)
|
|
||||||
.toctree-wrapper {
|
.toctree-wrapper {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.toctree-wrapper {
|
||||||
|
> ul {
|
||||||
|
padding-left: 0;
|
||||||
|
list-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toctree-l1 > a[href="#"] {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
font-weight: 600;
|
||||||
|
border-bottom: 2px solid $gray-darker;
|
||||||
|
}
|
||||||
|
|
||||||
|
a[href="#"] {
|
||||||
|
pointer-events: none;
|
||||||
|
cursor: default;
|
||||||
|
color: $gray-darker;
|
||||||
|
font-weight: $fw_regular;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
article.doc-body {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
.o_git_link {
|
.o_git_link {
|
||||||
@include font-size($font-size-secondary);
|
@include font-size($font-size-secondary);
|
||||||
@ -572,6 +614,7 @@ header.o_main_header{
|
|||||||
margin-right: .2rem;
|
margin-right: .2rem;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.command {
|
.command {
|
||||||
font-family: var(--bs-font-monospace);
|
font-family: var(--bs-font-monospace);
|
||||||
}
|
}
|
||||||
@ -611,7 +654,7 @@ header.o_main_header{
|
|||||||
> h2 {
|
> h2 {
|
||||||
font-family: $font-family-serif;
|
font-family: $font-family-serif;
|
||||||
color: $gray-darker;
|
color: $gray-darker;
|
||||||
margin-top: 3rem;
|
margin-top: 2rem;
|
||||||
margin-bottom: 1rem;
|
margin-bottom: 1rem;
|
||||||
padding-bottom: .3rem;
|
padding-bottom: .3rem;
|
||||||
border-bottom: 1px solid $gray-light;
|
border-bottom: 1px solid $gray-light;
|
||||||
@ -647,14 +690,17 @@ header.o_main_header{
|
|||||||
}
|
}
|
||||||
|
|
||||||
.figure {
|
.figure {
|
||||||
|
|
||||||
.caption, .caption-text {
|
.caption, .caption-text {
|
||||||
font-weight: $fw_semibold;
|
font-weight: $fw_semibold;
|
||||||
color: $gray;
|
color: $gray;
|
||||||
}
|
}
|
||||||
.caption, .caption-text, .legend, .legend p{
|
|
||||||
|
.caption, .caption-text, .legend, .legend p {
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@include media-breakpoint-up(md) {
|
@include media-breakpoint-up(md) {
|
||||||
&:not([class^="col"]) .legend {
|
&:not([class^="col"]) .legend {
|
||||||
max-width: 60%;
|
max-width: 60%;
|
||||||
@ -666,9 +712,11 @@ header.o_main_header{
|
|||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
font-size: 0;
|
font-size: 0;
|
||||||
visibility: hidden !important;
|
visibility: hidden !important;
|
||||||
|
|
||||||
&:before {
|
&:before {
|
||||||
content: "\a0";
|
content: "\a0";
|
||||||
}
|
}
|
||||||
|
|
||||||
&:after {
|
&:after {
|
||||||
content: '#{$i-link}';
|
content: '#{$i-link}';
|
||||||
font-family: icomoon !important;
|
font-family: icomoon !important;
|
||||||
@ -680,11 +728,13 @@ header.o_main_header{
|
|||||||
@include o-transition(all, .1s)
|
@include o-transition(all, .1s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*:hover > a.headerlink:after{
|
|
||||||
|
*:hover > a.headerlink:after {
|
||||||
// This makes permalinks only visible on hover.
|
// This makes permalinks only visible on hover.
|
||||||
visibility: visible;
|
visibility: visible;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
table.table {
|
table.table {
|
||||||
@include media-breakpoint-down(lg){
|
@include media-breakpoint-down(lg){
|
||||||
display: block;
|
display: block;
|
||||||
@ -693,10 +743,8 @@ header.o_main_header{
|
|||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
div[class^="highlight"] {
|
div[class^="highlight"] {
|
||||||
@ -704,7 +752,6 @@ header.o_main_header{
|
|||||||
overflow-x: auto;
|
overflow-x: auto;
|
||||||
border: 1px solid $gray-light;
|
border: 1px solid $gray-light;
|
||||||
margin: 1px 0 24px 0;
|
margin: 1px 0 24px 0;
|
||||||
/* max-width: 90vw; */
|
|
||||||
|
|
||||||
div[class^="highlight"] {
|
div[class^="highlight"] {
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
@ -719,7 +766,7 @@ header.o_main_header{
|
|||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// fixes on pages
|
|
||||||
.guilabel, .menuselection {
|
.guilabel, .menuselection {
|
||||||
font-weight: $fw_semibold;
|
font-weight: $fw_semibold;
|
||||||
}
|
}
|
||||||
@ -763,19 +810,7 @@ header.o_main_header{
|
|||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
// restyle numbers on lists
|
|
||||||
ol {
|
ol {
|
||||||
/* list-style: none;
|
|
||||||
counter-reset: a;
|
|
||||||
> li {
|
|
||||||
position: relative;
|
|
||||||
counter-increment: a;
|
|
||||||
&:before {
|
|
||||||
content: counter(a) '.';
|
|
||||||
font-weight: $fw_semibold;
|
|
||||||
@include o-position-absolute(auto, auto, auto, -1.8rem);
|
|
||||||
}
|
|
||||||
} */
|
|
||||||
ol {
|
ol {
|
||||||
list-style: lower-alpha;
|
list-style: lower-alpha;
|
||||||
> li:before {
|
> li:before {
|
||||||
@ -804,7 +839,7 @@ header.o_main_header{
|
|||||||
background-color: $white !important;
|
background-color: $white !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
> p , > ul{
|
> p , > ul {
|
||||||
margin-bottom: .5rem;
|
margin-bottom: .5rem;
|
||||||
}
|
}
|
||||||
> *:last-child {
|
> *:last-child {
|
||||||
@ -849,8 +884,6 @@ header.o_main_header{
|
|||||||
content: '#{$i-note}';
|
content: '#{$i-note}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
&.alert-tip, &.tip {
|
&.alert-tip, &.tip {
|
||||||
@ -909,7 +942,8 @@ header.o_main_header{
|
|||||||
@include media-breakpoint-up(lg){
|
@include media-breakpoint-up(lg){
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
width: calc(50% - 1rem);
|
width: calc(50% - 1rem);
|
||||||
}s
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: $o-violet-dark;
|
color: $o-violet-dark;
|
||||||
}
|
}
|
||||||
@ -932,7 +966,7 @@ footer {
|
|||||||
.o_get_help {
|
.o_get_help {
|
||||||
padding-top: 3rem;
|
padding-top: 3rem;
|
||||||
padding-bottom: 3rem;
|
padding-bottom: 3rem;
|
||||||
background: $gray-100;
|
background: $gray-lighter;
|
||||||
@include media-breakpoint-up(lg) {
|
@include media-breakpoint-up(lg) {
|
||||||
padding-left: calc(#{$o-side-nav-width} + 3rem)
|
padding-left: calc(#{$o-side-nav-width} + 3rem)
|
||||||
}
|
}
|
||||||
@ -945,4 +979,4 @@ footer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|