MuK IT GmbH
5 years ago
47 changed files with 3045 additions and 3343 deletions
-
776muk_web_theme/LICENSE
-
247muk_web_theme/README.rst
-
17muk_web_theme/__init__.py
-
21muk_web_theme/__manifest__.py
-
59muk_web_theme/data/res_company.xml
-
247muk_web_theme/doc/index.rst
-
49muk_web_theme/models/__init__.py
-
69muk_web_theme/models/ir_http.py
-
17muk_web_theme/models/res_company.py
-
305muk_web_theme/models/res_config_settings.py
-
17muk_web_theme/models/res_users.py
-
85muk_web_theme/static/src/js/chrome/actions.js
-
199muk_web_theme/static/src/js/chrome/apps.js
-
147muk_web_theme/static/src/js/chrome/appsbar.js
-
19muk_web_theme/static/src/js/chrome/menu.js
-
95muk_web_theme/static/src/js/chrome/pager.js
-
95muk_web_theme/static/src/js/chrome/sidebar.js
-
267muk_web_theme/static/src/js/core/search.js
-
131muk_web_theme/static/src/js/fields/relational.js
-
91muk_web_theme/static/src/js/views/form_renderer.js
-
105muk_web_theme/static/src/js/views/form_view.js
-
209muk_web_theme/static/src/js/views/list_renderer.js
-
81muk_web_theme/static/src/js/views/search_view.js
-
231muk_web_theme/static/src/scss/apps.scss
-
19muk_web_theme/static/src/scss/appsbar.scss
-
67muk_web_theme/static/src/scss/colors.scss
-
19muk_web_theme/static/src/scss/control_panel.scss
-
75muk_web_theme/static/src/scss/fields.scss
-
117muk_web_theme/static/src/scss/fonts.scss
-
383muk_web_theme/static/src/scss/form_view.scss
-
147muk_web_theme/static/src/scss/layout.scss
-
19muk_web_theme/static/src/scss/list_view.scss
-
85muk_web_theme/static/src/scss/mixins.scss
-
247muk_web_theme/static/src/scss/navbar.scss
-
49muk_web_theme/static/src/scss/notification.scss
-
71muk_web_theme/static/src/scss/settings.scss
-
119muk_web_theme/static/src/scss/variables.scss
-
147muk_web_theme/static/src/xml/apps.xml
-
89muk_web_theme/static/src/xml/appsbar.xml
-
177muk_web_theme/static/src/xml/navbar.xml
-
75muk_web_theme/static/src/xml/shortcuts.xml
-
67muk_web_theme/static/src/xml/sidebar.xml
-
193muk_web_theme/static/src/xml/views.xml
-
159muk_web_theme/template/assets.xml
-
67muk_web_theme/template/web.xml
-
333muk_web_theme/views/res_config_settings_view.xml
-
85muk_web_theme/views/res_users.xml
@ -1,619 +1,165 @@ |
|||||
GNU AFFERO GENERAL PUBLIC LICENSE |
|
||||
Version 3, 19 November 2007 |
|
||||
|
GNU LESSER GENERAL PUBLIC LICENSE |
||||
|
Version 3, 29 June 2007 |
||||
|
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> |
|
||||
|
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> |
||||
Everyone is permitted to copy and distribute verbatim copies |
Everyone is permitted to copy and distribute verbatim copies |
||||
of this license document, but changing it is not allowed. |
of this license document, but changing it is not allowed. |
||||
|
|
||||
Preamble |
|
||||
|
|
||||
The GNU Affero General Public License is a free, copyleft license for |
|
||||
software and other kinds of works, specifically designed to ensure |
|
||||
cooperation with the community in the case of network server software. |
|
||||
|
|
||||
The licenses for most software and other practical works are designed |
|
||||
to take away your freedom to share and change the works. By contrast, |
|
||||
our General Public Licenses are intended to guarantee your freedom to |
|
||||
share and change all versions of a program--to make sure it remains free |
|
||||
software for all its users. |
|
||||
|
|
||||
When we speak of free software, we are referring to freedom, not |
|
||||
price. Our General Public Licenses are designed to make sure that you |
|
||||
have the freedom to distribute copies of free software (and charge for |
|
||||
them if you wish), that you receive source code or can get it if you |
|
||||
want it, that you can change the software or use pieces of it in new |
|
||||
free programs, and that you know you can do these things. |
|
||||
|
|
||||
Developers that use our General Public Licenses protect your rights |
|
||||
with two steps: (1) assert copyright on the software, and (2) offer |
|
||||
you this License which gives you legal permission to copy, distribute |
|
||||
and/or modify the software. |
|
||||
|
|
||||
A secondary benefit of defending all users' freedom is that |
|
||||
improvements made in alternate versions of the program, if they |
|
||||
receive widespread use, become available for other developers to |
|
||||
incorporate. Many developers of free software are heartened and |
|
||||
encouraged by the resulting cooperation. However, in the case of |
|
||||
software used on network servers, this result may fail to come about. |
|
||||
The GNU General Public License permits making a modified version and |
|
||||
letting the public access it on a server without ever releasing its |
|
||||
source code to the public. |
|
||||
|
|
||||
The GNU Affero General Public License is designed specifically to |
|
||||
ensure that, in such cases, the modified source code becomes available |
|
||||
to the community. It requires the operator of a network server to |
|
||||
provide the source code of the modified version running there to the |
|
||||
users of that server. Therefore, public use of a modified version, on |
|
||||
a publicly accessible server, gives the public access to the source |
|
||||
code of the modified version. |
|
||||
|
|
||||
An older license, called the Affero General Public License and |
|
||||
published by Affero, was designed to accomplish similar goals. This is |
|
||||
a different license, not a version of the Affero GPL, but Affero has |
|
||||
released a new version of the Affero GPL which permits relicensing under |
|
||||
this license. |
|
||||
|
|
||||
The precise terms and conditions for copying, distribution and |
|
||||
modification follow. |
|
||||
|
|
||||
TERMS AND CONDITIONS |
|
||||
|
|
||||
0. Definitions. |
|
||||
|
|
||||
"This License" refers to version 3 of the GNU Affero General Public License. |
|
||||
|
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of |
|
||||
works, such as semiconductor masks. |
|
||||
|
|
||||
"The Program" refers to any copyrightable work licensed under this |
|
||||
License. Each licensee is addressed as "you". "Licensees" and |
|
||||
"recipients" may be individuals or organizations. |
|
||||
|
|
||||
To "modify" a work means to copy from or adapt all or part of the work |
|
||||
in a fashion requiring copyright permission, other than the making of an |
|
||||
exact copy. The resulting work is called a "modified version" of the |
|
||||
earlier work or a work "based on" the earlier work. |
|
||||
|
|
||||
A "covered work" means either the unmodified Program or a work based |
|
||||
on the Program. |
|
||||
|
|
||||
To "propagate" a work means to do anything with it that, without |
|
||||
permission, would make you directly or secondarily liable for |
|
||||
infringement under applicable copyright law, except executing it on a |
|
||||
computer or modifying a private copy. Propagation includes copying, |
|
||||
distribution (with or without modification), making available to the |
|
||||
public, and in some countries other activities as well. |
|
||||
|
|
||||
To "convey" a work means any kind of propagation that enables other |
|
||||
parties to make or receive copies. Mere interaction with a user through |
|
||||
a computer network, with no transfer of a copy, is not conveying. |
|
||||
|
|
||||
An interactive user interface displays "Appropriate Legal Notices" |
|
||||
to the extent that it includes a convenient and prominently visible |
|
||||
feature that (1) displays an appropriate copyright notice, and (2) |
|
||||
tells the user that there is no warranty for the work (except to the |
|
||||
extent that warranties are provided), that licensees may convey the |
|
||||
work under this License, and how to view a copy of this License. If |
|
||||
the interface presents a list of user commands or options, such as a |
|
||||
menu, a prominent item in the list meets this criterion. |
|
||||
|
|
||||
1. Source Code. |
|
||||
|
|
||||
The "source code" for a work means the preferred form of the work |
|
||||
for making modifications to it. "Object code" means any non-source |
|
||||
form of a work. |
|
||||
|
|
||||
A "Standard Interface" means an interface that either is an official |
|
||||
standard defined by a recognized standards body, or, in the case of |
|
||||
interfaces specified for a particular programming language, one that |
|
||||
is widely used among developers working in that language. |
|
||||
|
|
||||
The "System Libraries" of an executable work include anything, other |
|
||||
than the work as a whole, that (a) is included in the normal form of |
|
||||
packaging a Major Component, but which is not part of that Major |
|
||||
Component, and (b) serves only to enable use of the work with that |
|
||||
Major Component, or to implement a Standard Interface for which an |
|
||||
implementation is available to the public in source code form. A |
|
||||
"Major Component", in this context, means a major essential component |
|
||||
(kernel, window system, and so on) of the specific operating system |
|
||||
(if any) on which the executable work runs, or a compiler used to |
|
||||
produce the work, or an object code interpreter used to run it. |
|
||||
|
|
||||
The "Corresponding Source" for a work in object code form means all |
|
||||
the source code needed to generate, install, and (for an executable |
|
||||
work) run the object code and to modify the work, including scripts to |
|
||||
control those activities. However, it does not include the work's |
|
||||
System Libraries, or general-purpose tools or generally available free |
|
||||
programs which are used unmodified in performing those activities but |
|
||||
which are not part of the work. For example, Corresponding Source |
|
||||
includes interface definition files associated with source files for |
|
||||
the work, and the source code for shared libraries and dynamically |
|
||||
linked subprograms that the work is specifically designed to require, |
|
||||
such as by intimate data communication or control flow between those |
|
||||
subprograms and other parts of the work. |
|
||||
|
|
||||
The Corresponding Source need not include anything that users |
|
||||
can regenerate automatically from other parts of the Corresponding |
|
||||
Source. |
|
||||
|
|
||||
The Corresponding Source for a work in source code form is that |
|
||||
same work. |
|
||||
|
|
||||
2. Basic Permissions. |
|
||||
|
|
||||
All rights granted under this License are granted for the term of |
|
||||
copyright on the Program, and are irrevocable provided the stated |
|
||||
conditions are met. This License explicitly affirms your unlimited |
|
||||
permission to run the unmodified Program. The output from running a |
|
||||
covered work is covered by this License only if the output, given its |
|
||||
content, constitutes a covered work. This License acknowledges your |
|
||||
rights of fair use or other equivalent, as provided by copyright law. |
|
||||
|
|
||||
You may make, run and propagate covered works that you do not |
|
||||
convey, without conditions so long as your license otherwise remains |
|
||||
in force. You may convey covered works to others for the sole purpose |
|
||||
of having them make modifications exclusively for you, or provide you |
|
||||
with facilities for running those works, provided that you comply with |
|
||||
the terms of this License in conveying all material for which you do |
|
||||
not control copyright. Those thus making or running the covered works |
|
||||
for you must do so exclusively on your behalf, under your direction |
|
||||
and control, on terms that prohibit them from making any copies of |
|
||||
your copyrighted material outside their relationship with you. |
|
||||
|
|
||||
Conveying under any other circumstances is permitted solely under |
|
||||
the conditions stated below. Sublicensing is not allowed; section 10 |
|
||||
makes it unnecessary. |
|
||||
|
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law. |
|
||||
|
|
||||
No covered work shall be deemed part of an effective technological |
|
||||
measure under any applicable law fulfilling obligations under article |
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or |
|
||||
similar laws prohibiting or restricting circumvention of such |
|
||||
measures. |
|
||||
|
|
||||
When you convey a covered work, you waive any legal power to forbid |
|
||||
circumvention of technological measures to the extent such circumvention |
|
||||
is effected by exercising rights under this License with respect to |
|
||||
the covered work, and you disclaim any intention to limit operation or |
|
||||
modification of the work as a means of enforcing, against the work's |
|
||||
users, your or third parties' legal rights to forbid circumvention of |
|
||||
technological measures. |
|
||||
|
|
||||
4. Conveying Verbatim Copies. |
|
||||
|
|
||||
You may convey verbatim copies of the Program's source code as you |
|
||||
receive it, in any medium, provided that you conspicuously and |
|
||||
appropriately publish on each copy an appropriate copyright notice; |
|
||||
keep intact all notices stating that this License and any |
|
||||
non-permissive terms added in accord with section 7 apply to the code; |
|
||||
keep intact all notices of the absence of any warranty; and give all |
|
||||
recipients a copy of this License along with the Program. |
|
||||
|
|
||||
You may charge any price or no price for each copy that you convey, |
|
||||
and you may offer support or warranty protection for a fee. |
|
||||
|
|
||||
5. Conveying Modified Source Versions. |
|
||||
|
|
||||
You may convey a work based on the Program, or the modifications to |
|
||||
produce it from the Program, in the form of source code under the |
|
||||
terms of section 4, provided that you also meet all of these conditions: |
|
||||
|
|
||||
a) The work must carry prominent notices stating that you modified |
|
||||
it, and giving a relevant date. |
|
||||
|
|
||||
b) The work must carry prominent notices stating that it is |
|
||||
released under this License and any conditions added under section |
|
||||
7. This requirement modifies the requirement in section 4 to |
|
||||
"keep intact all notices". |
|
||||
|
|
||||
c) You must license the entire work, as a whole, under this |
|
||||
License to anyone who comes into possession of a copy. This |
|
||||
License will therefore apply, along with any applicable section 7 |
|
||||
additional terms, to the whole of the work, and all its parts, |
|
||||
regardless of how they are packaged. This License gives no |
|
||||
permission to license the work in any other way, but it does not |
|
||||
invalidate such permission if you have separately received it. |
|
||||
|
|
||||
d) If the work has interactive user interfaces, each must display |
|
||||
Appropriate Legal Notices; however, if the Program has interactive |
|
||||
interfaces that do not display Appropriate Legal Notices, your |
|
||||
work need not make them do so. |
|
||||
|
|
||||
A compilation of a covered work with other separate and independent |
|
||||
works, which are not by their nature extensions of the covered work, |
|
||||
and which are not combined with it such as to form a larger program, |
|
||||
in or on a volume of a storage or distribution medium, is called an |
|
||||
"aggregate" if the compilation and its resulting copyright are not |
|
||||
used to limit the access or legal rights of the compilation's users |
|
||||
beyond what the individual works permit. Inclusion of a covered work |
|
||||
in an aggregate does not cause this License to apply to the other |
|
||||
parts of the aggregate. |
|
||||
|
|
||||
6. Conveying Non-Source Forms. |
|
||||
|
|
||||
You may convey a covered work in object code form under the terms |
|
||||
of sections 4 and 5, provided that you also convey the |
|
||||
machine-readable Corresponding Source under the terms of this License, |
|
||||
in one of these ways: |
|
||||
|
|
||||
a) Convey the object code in, or embodied in, a physical product |
|
||||
(including a physical distribution medium), accompanied by the |
|
||||
Corresponding Source fixed on a durable physical medium |
|
||||
customarily used for software interchange. |
|
||||
|
|
||||
b) Convey the object code in, or embodied in, a physical product |
|
||||
(including a physical distribution medium), accompanied by a |
|
||||
written offer, valid for at least three years and valid for as |
|
||||
long as you offer spare parts or customer support for that product |
|
||||
model, to give anyone who possesses the object code either (1) a |
|
||||
copy of the Corresponding Source for all the software in the |
|
||||
product that is covered by this License, on a durable physical |
|
||||
medium customarily used for software interchange, for a price no |
|
||||
more than your reasonable cost of physically performing this |
|
||||
conveying of source, or (2) access to copy the |
|
||||
Corresponding Source from a network server at no charge. |
|
||||
|
|
||||
c) Convey individual copies of the object code with a copy of the |
|
||||
written offer to provide the Corresponding Source. This |
|
||||
alternative is allowed only occasionally and noncommercially, and |
|
||||
only if you received the object code with such an offer, in accord |
|
||||
with subsection 6b. |
|
||||
|
|
||||
d) Convey the object code by offering access from a designated |
|
||||
place (gratis or for a charge), and offer equivalent access to the |
|
||||
Corresponding Source in the same way through the same place at no |
|
||||
further charge. You need not require recipients to copy the |
|
||||
Corresponding Source along with the object code. If the place to |
|
||||
copy the object code is a network server, the Corresponding Source |
|
||||
may be on a different server (operated by you or a third party) |
|
||||
that supports equivalent copying facilities, provided you maintain |
|
||||
clear directions next to the object code saying where to find the |
|
||||
Corresponding Source. Regardless of what server hosts the |
|
||||
Corresponding Source, you remain obligated to ensure that it is |
|
||||
available for as long as needed to satisfy these requirements. |
|
||||
|
|
||||
e) Convey the object code using peer-to-peer transmission, provided |
|
||||
you inform other peers where the object code and Corresponding |
|
||||
Source of the work are being offered to the general public at no |
|
||||
charge under subsection 6d. |
|
||||
|
|
||||
A separable portion of the object code, whose source code is excluded |
|
||||
from the Corresponding Source as a System Library, need not be |
|
||||
included in conveying the object code work. |
|
||||
|
|
||||
A "User Product" is either (1) a "consumer product", which means any |
|
||||
tangible personal property which is normally used for personal, family, |
|
||||
or household purposes, or (2) anything designed or sold for incorporation |
|
||||
into a dwelling. In determining whether a product is a consumer product, |
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular |
|
||||
product received by a particular user, "normally used" refers to a |
|
||||
typical or common use of that class of product, regardless of the status |
|
||||
of the particular user or of the way in which the particular user |
|
||||
actually uses, or expects or is expected to use, the product. A product |
|
||||
is a consumer product regardless of whether the product has substantial |
|
||||
commercial, industrial or non-consumer uses, unless such uses represent |
|
||||
the only significant mode of use of the product. |
|
||||
|
|
||||
"Installation Information" for a User Product means any methods, |
|
||||
procedures, authorization keys, or other information required to install |
|
||||
and execute modified versions of a covered work in that User Product from |
|
||||
a modified version of its Corresponding Source. The information must |
|
||||
suffice to ensure that the continued functioning of the modified object |
|
||||
code is in no case prevented or interfered with solely because |
|
||||
modification has been made. |
|
||||
|
|
||||
If you convey an object code work under this section in, or with, or |
|
||||
specifically for use in, a User Product, and the conveying occurs as |
|
||||
part of a transaction in which the right of possession and use of the |
|
||||
User Product is transferred to the recipient in perpetuity or for a |
|
||||
fixed term (regardless of how the transaction is characterized), the |
|
||||
Corresponding Source conveyed under this section must be accompanied |
|
||||
by the Installation Information. But this requirement does not apply |
|
||||
if neither you nor any third party retains the ability to install |
|
||||
modified object code on the User Product (for example, the work has |
|
||||
been installed in ROM). |
|
||||
|
|
||||
The requirement to provide Installation Information does not include a |
|
||||
requirement to continue to provide support service, warranty, or updates |
|
||||
for a work that has been modified or installed by the recipient, or for |
|
||||
the User Product in which it has been modified or installed. Access to a |
|
||||
network may be denied when the modification itself materially and |
|
||||
adversely affects the operation of the network or violates the rules and |
|
||||
protocols for communication across the network. |
|
||||
|
|
||||
Corresponding Source conveyed, and Installation Information provided, |
|
||||
in accord with this section must be in a format that is publicly |
|
||||
documented (and with an implementation available to the public in |
|
||||
source code form), and must require no special password or key for |
|
||||
unpacking, reading or copying. |
|
||||
|
|
||||
7. Additional Terms. |
|
||||
|
|
||||
"Additional permissions" are terms that supplement the terms of this |
|
||||
License by making exceptions from one or more of its conditions. |
|
||||
Additional permissions that are applicable to the entire Program shall |
|
||||
be treated as though they were included in this License, to the extent |
|
||||
that they are valid under applicable law. If additional permissions |
|
||||
apply only to part of the Program, that part may be used separately |
|
||||
under those permissions, but the entire Program remains governed by |
|
||||
this License without regard to the additional permissions. |
|
||||
|
|
||||
When you convey a copy of a covered work, you may at your option |
|
||||
remove any additional permissions from that copy, or from any part of |
|
||||
it. (Additional permissions may be written to require their own |
|
||||
removal in certain cases when you modify the work.) You may place |
|
||||
additional permissions on material, added by you to a covered work, |
|
||||
for which you have or can give appropriate copyright permission. |
|
||||
|
|
||||
Notwithstanding any other provision of this License, for material you |
|
||||
add to a covered work, you may (if authorized by the copyright holders of |
|
||||
that material) supplement the terms of this License with terms: |
|
||||
|
|
||||
a) Disclaiming warranty or limiting liability differently from the |
|
||||
terms of sections 15 and 16 of this License; or |
|
||||
|
|
||||
b) Requiring preservation of specified reasonable legal notices or |
|
||||
author attributions in that material or in the Appropriate Legal |
|
||||
Notices displayed by works containing it; or |
|
||||
|
|
||||
c) Prohibiting misrepresentation of the origin of that material, or |
|
||||
requiring that modified versions of such material be marked in |
|
||||
reasonable ways as different from the original version; or |
|
||||
|
|
||||
d) Limiting the use for publicity purposes of names of licensors or |
|
||||
authors of the material; or |
|
||||
|
|
||||
e) Declining to grant rights under trademark law for use of some |
|
||||
trade names, trademarks, or service marks; or |
|
||||
|
|
||||
f) Requiring indemnification of licensors and authors of that |
|
||||
material by anyone who conveys the material (or modified versions of |
|
||||
it) with contractual assumptions of liability to the recipient, for |
|
||||
any liability that these contractual assumptions directly impose on |
|
||||
those licensors and authors. |
|
||||
|
|
||||
All other non-permissive additional terms are considered "further |
|
||||
restrictions" within the meaning of section 10. If the Program as you |
|
||||
received it, or any part of it, contains a notice stating that it is |
|
||||
governed by this License along with a term that is a further |
|
||||
restriction, you may remove that term. If a license document contains |
|
||||
a further restriction but permits relicensing or conveying under this |
|
||||
License, you may add to a covered work material governed by the terms |
|
||||
of that license document, provided that the further restriction does |
|
||||
not survive such relicensing or conveying. |
|
||||
|
|
||||
If you add terms to a covered work in accord with this section, you |
|
||||
must place, in the relevant source files, a statement of the |
|
||||
additional terms that apply to those files, or a notice indicating |
|
||||
where to find the applicable terms. |
|
||||
|
|
||||
Additional terms, permissive or non-permissive, may be stated in the |
|
||||
form of a separately written license, or stated as exceptions; |
|
||||
the above requirements apply either way. |
|
||||
|
|
||||
8. Termination. |
|
||||
|
|
||||
You may not propagate or modify a covered work except as expressly |
|
||||
provided under this License. Any attempt otherwise to propagate or |
|
||||
modify it is void, and will automatically terminate your rights under |
|
||||
this License (including any patent licenses granted under the third |
|
||||
paragraph of section 11). |
|
||||
|
|
||||
However, if you cease all violation of this License, then your |
|
||||
license from a particular copyright holder is reinstated (a) |
|
||||
provisionally, unless and until the copyright holder explicitly and |
|
||||
finally terminates your license, and (b) permanently, if the copyright |
|
||||
holder fails to notify you of the violation by some reasonable means |
|
||||
prior to 60 days after the cessation. |
|
||||
|
|
||||
Moreover, your license from a particular copyright holder is |
|
||||
reinstated permanently if the copyright holder notifies you of the |
|
||||
violation by some reasonable means, this is the first time you have |
|
||||
received notice of violation of this License (for any work) from that |
|
||||
copyright holder, and you cure the violation prior to 30 days after |
|
||||
your receipt of the notice. |
|
||||
|
|
||||
Termination of your rights under this section does not terminate the |
|
||||
licenses of parties who have received copies or rights from you under |
|
||||
this License. If your rights have been terminated and not permanently |
|
||||
reinstated, you do not qualify to receive new licenses for the same |
|
||||
material under section 10. |
|
||||
|
|
||||
9. Acceptance Not Required for Having Copies. |
|
||||
|
|
||||
You are not required to accept this License in order to receive or |
|
||||
run a copy of the Program. Ancillary propagation of a covered work |
|
||||
occurring solely as a consequence of using peer-to-peer transmission |
|
||||
to receive a copy likewise does not require acceptance. However, |
|
||||
nothing other than this License grants you permission to propagate or |
|
||||
modify any covered work. These actions infringe copyright if you do |
|
||||
not accept this License. Therefore, by modifying or propagating a |
|
||||
covered work, you indicate your acceptance of this License to do so. |
|
||||
|
|
||||
10. Automatic Licensing of Downstream Recipients. |
|
||||
|
|
||||
Each time you convey a covered work, the recipient automatically |
|
||||
receives a license from the original licensors, to run, modify and |
|
||||
propagate that work, subject to this License. You are not responsible |
|
||||
for enforcing compliance by third parties with this License. |
|
||||
|
|
||||
An "entity transaction" is a transaction transferring control of an |
|
||||
organization, or substantially all assets of one, or subdividing an |
|
||||
organization, or merging organizations. If propagation of a covered |
|
||||
work results from an entity transaction, each party to that |
|
||||
transaction who receives a copy of the work also receives whatever |
|
||||
licenses to the work the party's predecessor in interest had or could |
|
||||
give under the previous paragraph, plus a right to possession of the |
|
||||
Corresponding Source of the work from the predecessor in interest, if |
|
||||
the predecessor has it or can get it with reasonable efforts. |
|
||||
|
|
||||
You may not impose any further restrictions on the exercise of the |
|
||||
rights granted or affirmed under this License. For example, you may |
|
||||
not impose a license fee, royalty, or other charge for exercise of |
|
||||
rights granted under this License, and you may not initiate litigation |
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that |
|
||||
any patent claim is infringed by making, using, selling, offering for |
|
||||
sale, or importing the Program or any portion of it. |
|
||||
|
|
||||
11. Patents. |
|
||||
|
|
||||
A "contributor" is a copyright holder who authorizes use under this |
|
||||
License of the Program or a work on which the Program is based. The |
|
||||
work thus licensed is called the contributor's "contributor version". |
|
||||
|
|
||||
A contributor's "essential patent claims" are all patent claims |
|
||||
owned or controlled by the contributor, whether already acquired or |
|
||||
hereafter acquired, that would be infringed by some manner, permitted |
|
||||
by this License, of making, using, or selling its contributor version, |
|
||||
but do not include claims that would be infringed only as a |
|
||||
consequence of further modification of the contributor version. For |
|
||||
purposes of this definition, "control" includes the right to grant |
|
||||
patent sublicenses in a manner consistent with the requirements of |
|
||||
this License. |
|
||||
|
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free |
|
||||
patent license under the contributor's essential patent claims, to |
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and |
|
||||
propagate the contents of its contributor version. |
|
||||
|
|
||||
In the following three paragraphs, a "patent license" is any express |
|
||||
agreement or commitment, however denominated, not to enforce a patent |
|
||||
(such as an express permission to practice a patent or covenant not to |
|
||||
sue for patent infringement). To "grant" such a patent license to a |
|
||||
party means to make such an agreement or commitment not to enforce a |
|
||||
patent against the party. |
|
||||
|
|
||||
If you convey a covered work, knowingly relying on a patent license, |
|
||||
and the Corresponding Source of the work is not available for anyone |
|
||||
to copy, free of charge and under the terms of this License, through a |
|
||||
publicly available network server or other readily accessible means, |
|
||||
then you must either (1) cause the Corresponding Source to be so |
|
||||
available, or (2) arrange to deprive yourself of the benefit of the |
|
||||
patent license for this particular work, or (3) arrange, in a manner |
|
||||
consistent with the requirements of this License, to extend the patent |
|
||||
license to downstream recipients. "Knowingly relying" means you have |
|
||||
actual knowledge that, but for the patent license, your conveying the |
|
||||
covered work in a country, or your recipient's use of the covered work |
|
||||
in a country, would infringe one or more identifiable patents in that |
|
||||
country that you have reason to believe are valid. |
|
||||
|
|
||||
If, pursuant to or in connection with a single transaction or |
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a |
|
||||
covered work, and grant a patent license to some of the parties |
|
||||
receiving the covered work authorizing them to use, propagate, modify |
|
||||
or convey a specific copy of the covered work, then the patent license |
|
||||
you grant is automatically extended to all recipients of the covered |
|
||||
work and works based on it. |
|
||||
|
|
||||
A patent license is "discriminatory" if it does not include within |
|
||||
the scope of its coverage, prohibits the exercise of, or is |
|
||||
conditioned on the non-exercise of one or more of the rights that are |
|
||||
specifically granted under this License. You may not convey a covered |
|
||||
work if you are a party to an arrangement with a third party that is |
|
||||
in the business of distributing software, under which you make payment |
|
||||
to the third party based on the extent of your activity of conveying |
|
||||
the work, and under which the third party grants, to any of the |
|
||||
parties who would receive the covered work from you, a discriminatory |
|
||||
patent license (a) in connection with copies of the covered work |
|
||||
conveyed by you (or copies made from those copies), or (b) primarily |
|
||||
for and in connection with specific products or compilations that |
|
||||
contain the covered work, unless you entered into that arrangement, |
|
||||
or that patent license was granted, prior to 28 March 2007. |
|
||||
|
|
||||
Nothing in this License shall be construed as excluding or limiting |
|
||||
any implied license or other defenses to infringement that may |
|
||||
otherwise be available to you under applicable patent law. |
|
||||
|
|
||||
12. No Surrender of Others' Freedom. |
|
||||
|
|
||||
If conditions are imposed on you (whether by court order, agreement or |
|
||||
otherwise) that contradict the conditions of this License, they do not |
|
||||
excuse you from the conditions of this License. If you cannot convey a |
|
||||
covered work so as to satisfy simultaneously your obligations under this |
|
||||
License and any other pertinent obligations, then as a consequence you may |
|
||||
not convey it at all. For example, if you agree to terms that obligate you |
|
||||
to collect a royalty for further conveying from those to whom you convey |
|
||||
the Program, the only way you could satisfy both those terms and this |
|
||||
License would be to refrain entirely from conveying the Program. |
|
||||
|
|
||||
13. Remote Network Interaction; Use with the GNU General Public License. |
|
||||
|
|
||||
Notwithstanding any other provision of this License, if you modify the |
|
||||
Program, your modified version must prominently offer all users |
|
||||
interacting with it remotely through a computer network (if your version |
|
||||
supports such interaction) an opportunity to receive the Corresponding |
|
||||
Source of your version by providing access to the Corresponding Source |
|
||||
from a network server at no charge, through some standard or customary |
|
||||
means of facilitating copying of software. This Corresponding Source |
|
||||
shall include the Corresponding Source for any work covered by version 3 |
|
||||
of the GNU General Public License that is incorporated pursuant to the |
|
||||
following paragraph. |
|
||||
|
|
||||
Notwithstanding any other provision of this License, you have |
|
||||
permission to link or combine any covered work with a work licensed |
|
||||
under version 3 of the GNU General Public License into a single |
|
||||
combined work, and to convey the resulting work. The terms of this |
|
||||
License will continue to apply to the part which is the covered work, |
|
||||
but the work with which it is combined will remain governed by version |
|
||||
3 of the GNU General Public License. |
|
||||
|
|
||||
14. Revised Versions of this License. |
|
||||
|
|
||||
The Free Software Foundation may publish revised and/or new versions of |
|
||||
the GNU Affero General Public License from time to time. Such new versions |
|
||||
will be similar in spirit to the present version, but may differ in detail to |
|
||||
address new problems or concerns. |
|
||||
|
|
||||
Each version is given a distinguishing version number. If the |
|
||||
Program specifies that a certain numbered version of the GNU Affero General |
|
||||
Public License "or any later version" applies to it, you have the |
|
||||
option of following the terms and conditions either of that numbered |
|
||||
version or of any later version published by the Free Software |
|
||||
Foundation. If the Program does not specify a version number of the |
|
||||
GNU Affero General Public License, you may choose any version ever published |
|
||||
by the Free Software Foundation. |
|
||||
|
|
||||
If the Program specifies that a proxy can decide which future |
|
||||
versions of the GNU Affero General Public License can be used, that proxy's |
|
||||
public statement of acceptance of a version permanently authorizes you |
|
||||
to choose that version for the Program. |
|
||||
|
|
||||
Later license versions may give you additional or different |
|
||||
permissions. However, no additional obligations are imposed on any |
|
||||
author or copyright holder as a result of your choosing to follow a |
|
||||
later version. |
|
||||
|
|
||||
15. Disclaimer of Warranty. |
|
||||
|
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY |
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT |
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY |
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, |
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM |
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF |
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION. |
|
||||
|
|
||||
16. Limitation of Liability. |
|
||||
|
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS |
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY |
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE |
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF |
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD |
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), |
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF |
|
||||
SUCH DAMAGES. |
|
||||
|
|
||||
17. Interpretation of Sections 15 and 16. |
|
||||
|
|
||||
If the disclaimer of warranty and limitation of liability provided |
|
||||
above cannot be given local legal effect according to their terms, |
|
||||
reviewing courts shall apply local law that most closely approximates |
|
||||
an absolute waiver of all civil liability in connection with the |
|
||||
Program, unless a warranty or assumption of liability accompanies a |
|
||||
copy of the Program in return for a fee. |
|
||||
|
|
||||
END OF TERMS AND CONDITIONS |
|
||||
|
|
||||
|
This version of the GNU Lesser General Public License incorporates |
||||
|
the terms and conditions of version 3 of the GNU General Public |
||||
|
License, supplemented by the additional permissions listed below. |
||||
|
|
||||
|
0. Additional Definitions. |
||||
|
|
||||
|
As used herein, "this License" refers to version 3 of the GNU Lesser |
||||
|
General Public License, and the "GNU GPL" refers to version 3 of the GNU |
||||
|
General Public License. |
||||
|
|
||||
|
"The Library" refers to a covered work governed by this License, |
||||
|
other than an Application or a Combined Work as defined below. |
||||
|
|
||||
|
An "Application" is any work that makes use of an interface provided |
||||
|
by the Library, but which is not otherwise based on the Library. |
||||
|
Defining a subclass of a class defined by the Library is deemed a mode |
||||
|
of using an interface provided by the Library. |
||||
|
|
||||
|
A "Combined Work" is a work produced by combining or linking an |
||||
|
Application with the Library. The particular version of the Library |
||||
|
with which the Combined Work was made is also called the "Linked |
||||
|
Version". |
||||
|
|
||||
|
The "Minimal Corresponding Source" for a Combined Work means the |
||||
|
Corresponding Source for the Combined Work, excluding any source code |
||||
|
for portions of the Combined Work that, considered in isolation, are |
||||
|
based on the Application, and not on the Linked Version. |
||||
|
|
||||
|
The "Corresponding Application Code" for a Combined Work means the |
||||
|
object code and/or source code for the Application, including any data |
||||
|
and utility programs needed for reproducing the Combined Work from the |
||||
|
Application, but excluding the System Libraries of the Combined Work. |
||||
|
|
||||
|
1. Exception to Section 3 of the GNU GPL. |
||||
|
|
||||
|
You may convey a covered work under sections 3 and 4 of this License |
||||
|
without being bound by section 3 of the GNU GPL. |
||||
|
|
||||
|
2. Conveying Modified Versions. |
||||
|
|
||||
|
If you modify a copy of the Library, and, in your modifications, a |
||||
|
facility refers to a function or data to be supplied by an Application |
||||
|
that uses the facility (other than as an argument passed when the |
||||
|
facility is invoked), then you may convey a copy of the modified |
||||
|
version: |
||||
|
|
||||
|
a) under this License, provided that you make a good faith effort to |
||||
|
ensure that, in the event an Application does not supply the |
||||
|
function or data, the facility still operates, and performs |
||||
|
whatever part of its purpose remains meaningful, or |
||||
|
|
||||
|
b) under the GNU GPL, with none of the additional permissions of |
||||
|
this License applicable to that copy. |
||||
|
|
||||
|
3. Object Code Incorporating Material from Library Header Files. |
||||
|
|
||||
|
The object code form of an Application may incorporate material from |
||||
|
a header file that is part of the Library. You may convey such object |
||||
|
code under terms of your choice, provided that, if the incorporated |
||||
|
material is not limited to numerical parameters, data structure |
||||
|
layouts and accessors, or small macros, inline functions and templates |
||||
|
(ten or fewer lines in length), you do both of the following: |
||||
|
|
||||
|
a) Give prominent notice with each copy of the object code that the |
||||
|
Library is used in it and that the Library and its use are |
||||
|
covered by this License. |
||||
|
|
||||
|
b) Accompany the object code with a copy of the GNU GPL and this license |
||||
|
document. |
||||
|
|
||||
|
4. Combined Works. |
||||
|
|
||||
|
You may convey a Combined Work under terms of your choice that, |
||||
|
taken together, effectively do not restrict modification of the |
||||
|
portions of the Library contained in the Combined Work and reverse |
||||
|
engineering for debugging such modifications, if you also do each of |
||||
|
the following: |
||||
|
|
||||
|
a) Give prominent notice with each copy of the Combined Work that |
||||
|
the Library is used in it and that the Library and its use are |
||||
|
covered by this License. |
||||
|
|
||||
|
b) Accompany the Combined Work with a copy of the GNU GPL and this license |
||||
|
document. |
||||
|
|
||||
|
c) For a Combined Work that displays copyright notices during |
||||
|
execution, include the copyright notice for the Library among |
||||
|
these notices, as well as a reference directing the user to the |
||||
|
copies of the GNU GPL and this license document. |
||||
|
|
||||
|
d) Do one of the following: |
||||
|
|
||||
|
0) Convey the Minimal Corresponding Source under the terms of this |
||||
|
License, and the Corresponding Application Code in a form |
||||
|
suitable for, and under terms that permit, the user to |
||||
|
recombine or relink the Application with a modified version of |
||||
|
the Linked Version to produce a modified Combined Work, in the |
||||
|
manner specified by section 6 of the GNU GPL for conveying |
||||
|
Corresponding Source. |
||||
|
|
||||
|
1) Use a suitable shared library mechanism for linking with the |
||||
|
Library. A suitable mechanism is one that (a) uses at run time |
||||
|
a copy of the Library already present on the user's computer |
||||
|
system, and (b) will operate properly with a modified version |
||||
|
of the Library that is interface-compatible with the Linked |
||||
|
Version. |
||||
|
|
||||
|
e) Provide Installation Information, but only if you would otherwise |
||||
|
be required to provide such information under section 6 of the |
||||
|
GNU GPL, and only to the extent that such information is |
||||
|
necessary to install and execute a modified version of the |
||||
|
Combined Work produced by recombining or relinking the |
||||
|
Application with a modified version of the Linked Version. (If |
||||
|
you use option 4d0, the Installation Information must accompany |
||||
|
the Minimal Corresponding Source and Corresponding Application |
||||
|
Code. If you use option 4d1, you must provide the Installation |
||||
|
Information in the manner specified by section 6 of the GNU GPL |
||||
|
for conveying Corresponding Source.) |
||||
|
|
||||
|
5. Combined Libraries. |
||||
|
|
||||
|
You may place library facilities that are a work based on the |
||||
|
Library side by side in a single library together with other library |
||||
|
facilities that are not Applications and are not covered by this |
||||
|
License, and convey such a combined library under terms of your |
||||
|
choice, if you do both of the following: |
||||
|
|
||||
|
a) Accompany the combined library with a copy of the same work based |
||||
|
on the Library, uncombined with any other library facilities, |
||||
|
conveyed under the terms of this License. |
||||
|
|
||||
|
b) Give prominent notice with the combined library that part of it |
||||
|
is a work based on the Library, and explaining where to find the |
||||
|
accompanying uncombined form of the same work. |
||||
|
|
||||
|
6. Revised Versions of the GNU Lesser General Public License. |
||||
|
|
||||
|
The Free Software Foundation may publish revised and/or new versions |
||||
|
of the GNU Lesser General Public License from time to time. Such new |
||||
|
versions will be similar in spirit to the present version, but may |
||||
|
differ in detail to address new problems or concerns. |
||||
|
|
||||
|
Each version is given a distinguishing version number. If the |
||||
|
Library as you received it specifies that a certain numbered version |
||||
|
of the GNU Lesser General Public License "or any later version" |
||||
|
applies to it, you have the option of following the terms and |
||||
|
conditions either of that published version or of any later version |
||||
|
published by the Free Software Foundation. If the Library as you |
||||
|
received it does not specify a version number of the GNU Lesser |
||||
|
General Public License, you may choose any version of the GNU Lesser |
||||
|
General Public License ever published by the Free Software Foundation. |
||||
|
|
||||
|
If the Library as you received it specifies that a proxy can decide |
||||
|
whether future versions of the GNU Lesser General Public License shall |
||||
|
apply, that proxy's public statement of acceptance of any version is |
||||
|
permanent authorization for you to choose that version for the |
||||
|
Library. |
@ -1,123 +1,124 @@ |
|||||
============= |
|
||||
MuK Web Theme |
|
||||
============= |
|
||||
|
|
||||
This module offers a mobile compatible design for Odoo Community. Furthermore |
|
||||
it allows the user to define some design preferences. So he can choose the |
|
||||
size of the sidebar and the position of the chatter. In addition, the background |
|
||||
image of the app menu can be set for each company. |
|
||||
|
|
||||
Installation |
|
||||
============ |
|
||||
|
|
||||
To install this module, you need to: |
|
||||
|
|
||||
Download the module and add it to your Odoo addons folder. Afterward, log on to |
|
||||
your Odoo server and go to the Apps menu. Trigger the debug mode and update the |
|
||||
list by clicking on the "Update Apps List" link. Now install the module by |
|
||||
clicking on the install button. |
|
||||
|
|
||||
Another way to install this module is via the package management for Python |
|
||||
(`PyPI <https://pypi.org/project/pip/>`_). |
|
||||
|
|
||||
To install our modules using the package manager make sure |
|
||||
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed |
|
||||
correctly. Then open a console and install the module by entering the following |
|
||||
command: |
|
||||
|
|
||||
``pip install --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
|
||||
|
|
||||
The module name consists of the Odoo version and the module name, where |
|
||||
underscores are replaced by a dash. |
|
||||
|
|
||||
**Module:** |
|
||||
|
|
||||
``odoo<version>-addon-<module_name>`` |
|
||||
|
|
||||
**Example:** |
|
||||
|
|
||||
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo11-addon-muk-utils`` |
|
||||
|
|
||||
Once the installation has been successfully completed, the app is already in the |
|
||||
correct folder. Log on to your Odoo server and go to the Apps menu. Trigger the |
|
||||
debug mode and update the list by clicking on the "Update Apps List" link. Now |
|
||||
install the module by clicking on the install button. |
|
||||
|
|
||||
The biggest advantage of this variant is that you can now also update the app |
|
||||
using the "pip" command. To do this, enter the following command in your console: |
|
||||
|
|
||||
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
|
||||
|
|
||||
When the process is finished, restart your server and update the application in |
|
||||
Odoo. The steps are the same as for the installation only the button has changed |
|
||||
from "Install" to "Upgrade". |
|
||||
|
|
||||
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_ |
|
||||
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_. |
|
||||
|
|
||||
For modules licensed under OPL-1, you will receive access data when you purchase |
|
||||
the module. If the modules were not purchased directly from |
|
||||
`MuK IT <https://www.mukit.at/>`_ please contact our support (support@mukit.at) |
|
||||
with a confirmation of purchase to receive the corresponding access data. |
|
||||
|
|
||||
Upgrade |
|
||||
============ |
|
||||
|
|
||||
To upgrade this module, you need to: |
|
||||
|
|
||||
Download the module and add it to your Odoo addons folder. Restart the server |
|
||||
and log on to your Odoo server. Select the Apps menu and upgrade the module by |
|
||||
clicking on the upgrade button. |
|
||||
|
|
||||
If you installed the module using the "pip" command, you can also update the |
|
||||
module in the same way. Just type the following command into the console: |
|
||||
|
|
||||
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
|
||||
|
|
||||
When the process is finished, restart your server and update the application in |
|
||||
Odoo, just like you would normally. |
|
||||
|
|
||||
Configuration |
|
||||
============= |
|
||||
|
|
||||
No additional configuration is needed to use this module. |
|
||||
|
|
||||
Usage |
|
||||
============= |
|
||||
|
|
||||
After the module is installed, the design is adjusted accordingly. |
|
||||
|
|
||||
Credits |
|
||||
======= |
|
||||
|
|
||||
Contributors |
|
||||
------------ |
|
||||
|
|
||||
* Mathias Markl <mathias.markl@mukit.at> |
|
||||
|
|
||||
Images |
|
||||
------------ |
|
||||
|
|
||||
Some pictures are based on or inspired by: |
|
||||
|
|
||||
* `Freepik <https://www.flaticon.com/authors/freepik>`_ |
|
||||
|
|
||||
Projects |
|
||||
------------ |
|
||||
|
|
||||
Parts of the module are based on or inspired by: |
|
||||
|
|
||||
* `Web Responsive <https://github.com/OCA/web>`_ |
|
||||
* `Openworx Backend Theme <https://github.com/Openworx/backend_theme>`_ |
|
||||
|
|
||||
Author & Maintainer |
|
||||
------------------- |
|
||||
|
|
||||
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_. |
|
||||
|
|
||||
MuK IT is an Austrian company specialized in customizing and extending Odoo. |
|
||||
We develop custom solutions for your individual needs to help you focus on |
|
||||
your strength and expertise to grow your business. |
|
||||
|
|
||||
If you want to get in touch please contact us via mail |
|
||||
(sale@mukit.at) or visit our website (https://mukit.at). |
|
||||
|
============= |
||||
|
MuK Web Theme |
||||
|
============= |
||||
|
|
||||
|
This module offers a mobile compatible design for Odoo Community. Furthermore |
||||
|
it allows the user to define some design preferences. So he can choose the |
||||
|
size of the sidebar and the position of the chatter. In addition, the background |
||||
|
image of the app menu can be set for each company. |
||||
|
|
||||
|
Installation |
||||
|
============ |
||||
|
|
||||
|
To install this module, you need to: |
||||
|
|
||||
|
Download the module and add it to your Odoo addons folder. Afterward, log on to |
||||
|
your Odoo server and go to the Apps menu. Trigger the debug mode and update the |
||||
|
list by clicking on the "Update Apps List" link. Now install the module by |
||||
|
clicking on the install button. |
||||
|
|
||||
|
Another way to install this module is via the package management for Python |
||||
|
(`PyPI <https://pypi.org/project/pip/>`_). |
||||
|
|
||||
|
To install our modules using the package manager make sure |
||||
|
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed |
||||
|
correctly. Then open a console and install the module by entering the following |
||||
|
command: |
||||
|
|
||||
|
``pip install --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
||||
|
|
||||
|
The module name consists of the Odoo version and the module name, where |
||||
|
underscores are replaced by a dash. |
||||
|
|
||||
|
**Module:** |
||||
|
|
||||
|
``odoo<version>-addon-<module_name>`` |
||||
|
|
||||
|
**Example:** |
||||
|
|
||||
|
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo11-addon-muk-utils`` |
||||
|
|
||||
|
Once the installation has been successfully completed, the app is already in the |
||||
|
correct folder. Log on to your Odoo server and go to the Apps menu. Trigger the |
||||
|
debug mode and update the list by clicking on the "Update Apps List" link. Now |
||||
|
install the module by clicking on the install button. |
||||
|
|
||||
|
The biggest advantage of this variant is that you can now also update the app |
||||
|
using the "pip" command. To do this, enter the following command in your console: |
||||
|
|
||||
|
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
||||
|
|
||||
|
When the process is finished, restart your server and update the application in |
||||
|
Odoo. The steps are the same as for the installation only the button has changed |
||||
|
from "Install" to "Upgrade". |
||||
|
|
||||
|
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_ |
||||
|
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_. |
||||
|
|
||||
|
For modules licensed under OPL-1, you will receive access data when you purchase |
||||
|
the module. If the modules were not purchased directly from |
||||
|
`MuK IT <https://www.mukit.at/>`_ please contact our support (support@mukit.at) |
||||
|
with a confirmation of purchase to receive the corresponding access data. |
||||
|
|
||||
|
Upgrade |
||||
|
============ |
||||
|
|
||||
|
To upgrade this module, you need to: |
||||
|
|
||||
|
Download the module and add it to your Odoo addons folder. Restart the server |
||||
|
and log on to your Odoo server. Select the Apps menu and upgrade the module by |
||||
|
clicking on the upgrade button. |
||||
|
|
||||
|
If you installed the module using the "pip" command, you can also update the |
||||
|
module in the same way. Just type the following command into the console: |
||||
|
|
||||
|
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
||||
|
|
||||
|
When the process is finished, restart your server and update the application in |
||||
|
Odoo, just like you would normally. |
||||
|
|
||||
|
Configuration |
||||
|
============= |
||||
|
|
||||
|
No additional configuration is needed to use this module. |
||||
|
|
||||
|
Usage |
||||
|
============= |
||||
|
|
||||
|
After the module is installed, the design is adjusted accordingly. |
||||
|
|
||||
|
Credits |
||||
|
======= |
||||
|
|
||||
|
Contributors |
||||
|
------------ |
||||
|
|
||||
|
* Mathias Markl <mathias.markl@mukit.at> |
||||
|
|
||||
|
Images |
||||
|
------------ |
||||
|
|
||||
|
Some pictures are based on or inspired by: |
||||
|
|
||||
|
* `Freepik <https://www.flaticon.com/authors/freepik>`_ |
||||
|
|
||||
|
Projects |
||||
|
------------ |
||||
|
|
||||
|
Parts of the module are inspired by: |
||||
|
|
||||
|
* `Web Responsive <https://github.com/OCA/web>`_ |
||||
|
* `List Range Selection <https://github.com/OCA/web>`_ |
||||
|
* `Openworx Backend Theme <https://github.com/Openworx/backend_theme>`_ |
||||
|
|
||||
|
Author & Maintainer |
||||
|
------------------- |
||||
|
|
||||
|
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_. |
||||
|
|
||||
|
MuK IT is an Austrian company specialized in customizing and extending Odoo. |
||||
|
We develop custom solutions for your individual needs to help you focus on |
||||
|
your strength and expertise to grow your business. |
||||
|
|
||||
|
If you want to get in touch please contact us via mail |
||||
|
(sale@mukit.at) or visit our website (https://mukit.at). |
@ -1,27 +1,32 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
|
|
||||
<!-- |
|
||||
Copyright (C) 2018 MuK IT GmbH |
|
||||
|
|
||||
This program is free software: you can redistribute it and/or modify |
|
||||
it under the terms of the GNU Affero General Public License as |
|
||||
published by the Free Software Foundation, either version 3 of the |
|
||||
License, or (at your option) any later version. |
|
||||
|
|
||||
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 Affero General Public License for more details. |
|
||||
|
|
||||
You should have received a copy of the GNU Affero General Public License |
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
--> |
|
||||
|
|
||||
<odoo noupdate="1"> |
|
||||
|
|
||||
<record id="base.main_company" model="res.company"> |
|
||||
<field name="background_image" type="base64" file="muk_web_theme/static/src/img/background.png" /> |
|
||||
</record> |
|
||||
|
|
||||
</odoo> |
|
||||
|
|
||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
|
||||
|
<!-- |
||||
|
|
||||
|
Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
|
||||
|
This file is part of MuK Backend Theme |
||||
|
(see https://mukit.at). |
||||
|
|
||||
|
This program is free software: you can redistribute it and/or modify |
||||
|
it under the terms of the GNU Lesser General Public License as published by |
||||
|
the Free Software Foundation, either version 3 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
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 for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU Lesser General Public License |
||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
--> |
||||
|
|
||||
|
<odoo noupdate="1"> |
||||
|
|
||||
|
<record id="base.main_company" model="res.company"> |
||||
|
<field name="background_image" type="base64" file="muk_web_theme/static/src/img/background.png" /> |
||||
|
</record> |
||||
|
|
||||
|
</odoo> |
||||
|
|
@ -1,123 +1,124 @@ |
|||||
============= |
|
||||
MuK Web Theme |
|
||||
============= |
|
||||
|
|
||||
This module offers a mobile compatible design for Odoo Community. Furthermore |
|
||||
it allows the user to define some design preferences. So he can choose the |
|
||||
size of the sidebar and the position of the chatter. In addition, the background |
|
||||
image of the app menu can be set for each company. |
|
||||
|
|
||||
Installation |
|
||||
============ |
|
||||
|
|
||||
To install this module, you need to: |
|
||||
|
|
||||
Download the module and add it to your Odoo addons folder. Afterward, log on to |
|
||||
your Odoo server and go to the Apps menu. Trigger the debug mode and update the |
|
||||
list by clicking on the "Update Apps List" link. Now install the module by |
|
||||
clicking on the install button. |
|
||||
|
|
||||
Another way to install this module is via the package management for Python |
|
||||
(`PyPI <https://pypi.org/project/pip/>`_). |
|
||||
|
|
||||
To install our modules using the package manager make sure |
|
||||
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed |
|
||||
correctly. Then open a console and install the module by entering the following |
|
||||
command: |
|
||||
|
|
||||
``pip install --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
|
||||
|
|
||||
The module name consists of the Odoo version and the module name, where |
|
||||
underscores are replaced by a dash. |
|
||||
|
|
||||
**Module:** |
|
||||
|
|
||||
``odoo<version>-addon-<module_name>`` |
|
||||
|
|
||||
**Example:** |
|
||||
|
|
||||
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo11-addon-muk-utils`` |
|
||||
|
|
||||
Once the installation has been successfully completed, the app is already in the |
|
||||
correct folder. Log on to your Odoo server and go to the Apps menu. Trigger the |
|
||||
debug mode and update the list by clicking on the "Update Apps List" link. Now |
|
||||
install the module by clicking on the install button. |
|
||||
|
|
||||
The biggest advantage of this variant is that you can now also update the app |
|
||||
using the "pip" command. To do this, enter the following command in your console: |
|
||||
|
|
||||
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
|
||||
|
|
||||
When the process is finished, restart your server and update the application in |
|
||||
Odoo. The steps are the same as for the installation only the button has changed |
|
||||
from "Install" to "Upgrade". |
|
||||
|
|
||||
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_ |
|
||||
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_. |
|
||||
|
|
||||
For modules licensed under OPL-1, you will receive access data when you purchase |
|
||||
the module. If the modules were not purchased directly from |
|
||||
`MuK IT <https://www.mukit.at/>`_ please contact our support (support@mukit.at) |
|
||||
with a confirmation of purchase to receive the corresponding access data. |
|
||||
|
|
||||
Upgrade |
|
||||
============ |
|
||||
|
|
||||
To upgrade this module, you need to: |
|
||||
|
|
||||
Download the module and add it to your Odoo addons folder. Restart the server |
|
||||
and log on to your Odoo server. Select the Apps menu and upgrade the module by |
|
||||
clicking on the upgrade button. |
|
||||
|
|
||||
If you installed the module using the "pip" command, you can also update the |
|
||||
module in the same way. Just type the following command into the console: |
|
||||
|
|
||||
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
|
||||
|
|
||||
When the process is finished, restart your server and update the application in |
|
||||
Odoo, just like you would normally. |
|
||||
|
|
||||
Configuration |
|
||||
============= |
|
||||
|
|
||||
No additional configuration is needed to use this module. |
|
||||
|
|
||||
Usage |
|
||||
============= |
|
||||
|
|
||||
After the module is installed, the design is adjusted accordingly. |
|
||||
|
|
||||
Credits |
|
||||
======= |
|
||||
|
|
||||
Contributors |
|
||||
------------ |
|
||||
|
|
||||
* Mathias Markl <mathias.markl@mukit.at> |
|
||||
|
|
||||
Images |
|
||||
------------ |
|
||||
|
|
||||
Some pictures are based on or inspired by: |
|
||||
|
|
||||
* `Freepik <https://www.flaticon.com/authors/freepik>`_ |
|
||||
|
|
||||
Projects |
|
||||
------------ |
|
||||
|
|
||||
Parts of the module are based on or inspired by: |
|
||||
|
|
||||
* `Web Responsive <https://github.com/OCA/web>`_ |
|
||||
* `Openworx Backend Theme <https://github.com/Openworx/backend_theme>`_ |
|
||||
|
|
||||
Author & Maintainer |
|
||||
------------------- |
|
||||
|
|
||||
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_. |
|
||||
|
|
||||
MuK IT is an Austrian company specialized in customizing and extending Odoo. |
|
||||
We develop custom solutions for your individual needs to help you focus on |
|
||||
your strength and expertise to grow your business. |
|
||||
|
|
||||
If you want to get in touch please contact us via mail |
|
||||
(sale@mukit.at) or visit our website (https://mukit.at). |
|
||||
|
============= |
||||
|
MuK Web Theme |
||||
|
============= |
||||
|
|
||||
|
This module offers a mobile compatible design for Odoo Community. Furthermore |
||||
|
it allows the user to define some design preferences. So he can choose the |
||||
|
size of the sidebar and the position of the chatter. In addition, the background |
||||
|
image of the app menu can be set for each company. |
||||
|
|
||||
|
Installation |
||||
|
============ |
||||
|
|
||||
|
To install this module, you need to: |
||||
|
|
||||
|
Download the module and add it to your Odoo addons folder. Afterward, log on to |
||||
|
your Odoo server and go to the Apps menu. Trigger the debug mode and update the |
||||
|
list by clicking on the "Update Apps List" link. Now install the module by |
||||
|
clicking on the install button. |
||||
|
|
||||
|
Another way to install this module is via the package management for Python |
||||
|
(`PyPI <https://pypi.org/project/pip/>`_). |
||||
|
|
||||
|
To install our modules using the package manager make sure |
||||
|
`odoo-autodiscover <https://pypi.org/project/odoo-autodiscover/>`_ is installed |
||||
|
correctly. Then open a console and install the module by entering the following |
||||
|
command: |
||||
|
|
||||
|
``pip install --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
||||
|
|
||||
|
The module name consists of the Odoo version and the module name, where |
||||
|
underscores are replaced by a dash. |
||||
|
|
||||
|
**Module:** |
||||
|
|
||||
|
``odoo<version>-addon-<module_name>`` |
||||
|
|
||||
|
**Example:** |
||||
|
|
||||
|
``sudo -H pip3 install --extra-index-url https://nexus.mukit.at/repository/odoo/simple odoo11-addon-muk-utils`` |
||||
|
|
||||
|
Once the installation has been successfully completed, the app is already in the |
||||
|
correct folder. Log on to your Odoo server and go to the Apps menu. Trigger the |
||||
|
debug mode and update the list by clicking on the "Update Apps List" link. Now |
||||
|
install the module by clicking on the install button. |
||||
|
|
||||
|
The biggest advantage of this variant is that you can now also update the app |
||||
|
using the "pip" command. To do this, enter the following command in your console: |
||||
|
|
||||
|
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
||||
|
|
||||
|
When the process is finished, restart your server and update the application in |
||||
|
Odoo. The steps are the same as for the installation only the button has changed |
||||
|
from "Install" to "Upgrade". |
||||
|
|
||||
|
You can also view available Apps directly in our `repository <https://nexus.mukit.at/#browse/browse:odoo>`_ |
||||
|
and find a more detailed installation guide on our `website <https://mukit.at/page/open-source>`_. |
||||
|
|
||||
|
For modules licensed under OPL-1, you will receive access data when you purchase |
||||
|
the module. If the modules were not purchased directly from |
||||
|
`MuK IT <https://www.mukit.at/>`_ please contact our support (support@mukit.at) |
||||
|
with a confirmation of purchase to receive the corresponding access data. |
||||
|
|
||||
|
Upgrade |
||||
|
============ |
||||
|
|
||||
|
To upgrade this module, you need to: |
||||
|
|
||||
|
Download the module and add it to your Odoo addons folder. Restart the server |
||||
|
and log on to your Odoo server. Select the Apps menu and upgrade the module by |
||||
|
clicking on the upgrade button. |
||||
|
|
||||
|
If you installed the module using the "pip" command, you can also update the |
||||
|
module in the same way. Just type the following command into the console: |
||||
|
|
||||
|
``pip install --upgrade --extra-index-url https://nexus.mukit.at/repository/odoo/simple <module>`` |
||||
|
|
||||
|
When the process is finished, restart your server and update the application in |
||||
|
Odoo, just like you would normally. |
||||
|
|
||||
|
Configuration |
||||
|
============= |
||||
|
|
||||
|
No additional configuration is needed to use this module. |
||||
|
|
||||
|
Usage |
||||
|
============= |
||||
|
|
||||
|
After the module is installed, the design is adjusted accordingly. |
||||
|
|
||||
|
Credits |
||||
|
======= |
||||
|
|
||||
|
Contributors |
||||
|
------------ |
||||
|
|
||||
|
* Mathias Markl <mathias.markl@mukit.at> |
||||
|
|
||||
|
Images |
||||
|
------------ |
||||
|
|
||||
|
Some pictures are based on or inspired by: |
||||
|
|
||||
|
* `Freepik <https://www.flaticon.com/authors/freepik>`_ |
||||
|
|
||||
|
Projects |
||||
|
------------ |
||||
|
|
||||
|
Parts of the module are inspired by: |
||||
|
|
||||
|
* `Web Responsive <https://github.com/OCA/web>`_ |
||||
|
* `List Range Selection <https://github.com/OCA/web>`_ |
||||
|
* `Openworx Backend Theme <https://github.com/Openworx/backend_theme>`_ |
||||
|
|
||||
|
Author & Maintainer |
||||
|
------------------- |
||||
|
|
||||
|
This module is maintained by the `MuK IT GmbH <https://www.mukit.at/>`_. |
||||
|
|
||||
|
MuK IT is an Austrian company specialized in customizing and extending Odoo. |
||||
|
We develop custom solutions for your individual needs to help you focus on |
||||
|
your strength and expertise to grow your business. |
||||
|
|
||||
|
If you want to get in touch please contact us via mail |
||||
|
(sale@mukit.at) or visit our website (https://mukit.at). |
@ -1,23 +1,26 @@ |
|||||
################################################################################### |
|
||||
# |
|
||||
# Copyright (C) 2018 MuK IT GmbH |
|
||||
# |
|
||||
# This program is free software: you can redistribute it and/or modify |
|
||||
# it under the terms of the GNU Affero General Public License as |
|
||||
# published by the Free Software Foundation, either version 3 of the |
|
||||
# License, or (at your option) any later version. |
|
||||
# |
|
||||
# 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 Affero General Public License for more details. |
|
||||
# |
|
||||
# You should have received a copy of the GNU Affero General Public License |
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
# |
|
||||
################################################################################### |
|
||||
|
|
||||
from . import res_company |
|
||||
from . import res_users |
|
||||
from . import ir_http |
|
||||
from . import res_config_settings |
|
||||
|
################################################################################### |
||||
|
# |
||||
|
# Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
# |
||||
|
# This file is part of MuK Backend Theme |
||||
|
# (see https://mukit.at). |
||||
|
# |
||||
|
# This program is free software: you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU Lesser General Public License as published by |
||||
|
# the Free Software Foundation, either version 3 of the License, or |
||||
|
# (at your option) any later version. |
||||
|
# |
||||
|
# 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 for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU Lesser General Public License |
||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
################################################################################### |
||||
|
|
||||
|
from . import res_company |
||||
|
from . import res_users |
||||
|
from . import ir_http |
||||
|
from . import res_config_settings |
@ -1,33 +1,36 @@ |
|||||
################################################################################### |
|
||||
# |
|
||||
# Copyright (C) 2018 MuK IT GmbH |
|
||||
# |
|
||||
# This program is free software: you can redistribute it and/or modify |
|
||||
# it under the terms of the GNU Affero General Public License as |
|
||||
# published by the Free Software Foundation, either version 3 of the |
|
||||
# License, or (at your option) any later version. |
|
||||
# |
|
||||
# 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 Affero General Public License for more details. |
|
||||
# |
|
||||
# You should have received a copy of the GNU Affero General Public License |
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
# |
|
||||
################################################################################### |
|
||||
|
|
||||
from odoo import models |
|
||||
from odoo.http import request |
|
||||
|
|
||||
|
|
||||
class IrHttp(models.AbstractModel): |
|
||||
|
|
||||
_inherit = 'ir.http' |
|
||||
|
|
||||
def session_info(self): |
|
||||
result = super(IrHttp, self).session_info() |
|
||||
params = request.env['ir.config_parameter'].sudo() |
|
||||
blend_mode = params.get_param('muk_web_theme.background_blend_mode') |
|
||||
result.update(muk_web_theme_background_blend_mode=blend_mode or 'normal') |
|
||||
return result |
|
||||
|
################################################################################### |
||||
|
# |
||||
|
# Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
# |
||||
|
# This file is part of MuK Backend Theme |
||||
|
# (see https://mukit.at). |
||||
|
# |
||||
|
# This program is free software: you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU Lesser General Public License as published by |
||||
|
# the Free Software Foundation, either version 3 of the License, or |
||||
|
# (at your option) any later version. |
||||
|
# |
||||
|
# 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 for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU Lesser General Public License |
||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
################################################################################### |
||||
|
|
||||
|
from odoo import models |
||||
|
from odoo.http import request |
||||
|
|
||||
|
|
||||
|
class IrHttp(models.AbstractModel): |
||||
|
|
||||
|
_inherit = 'ir.http' |
||||
|
|
||||
|
def session_info(self): |
||||
|
result = super(IrHttp, self).session_info() |
||||
|
params = request.env['ir.config_parameter'].sudo() |
||||
|
blend_mode = params.get_param('muk_web_theme.background_blend_mode') |
||||
|
result.update(muk_web_theme_background_blend_mode=blend_mode or 'normal') |
||||
|
return result |
@ -1,152 +1,155 @@ |
|||||
################################################################################### |
|
||||
# |
|
||||
# Copyright (C) 2017 MuK IT GmbH |
|
||||
# |
|
||||
# This program is free software: you can redistribute it and/or modify |
|
||||
# it under the terms of the GNU Affero General Public License as |
|
||||
# published by the Free Software Foundation, either version 3 of the |
|
||||
# License, or (at your option) any later version. |
|
||||
# |
|
||||
# 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 Affero General Public License for more details. |
|
||||
# |
|
||||
# You should have received a copy of the GNU Affero General Public License |
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
# |
|
||||
################################################################################### |
|
||||
|
|
||||
import re |
|
||||
import uuid |
|
||||
import base64 |
|
||||
|
|
||||
from odoo import api, fields, models |
|
||||
|
|
||||
XML_ID = "muk_web_theme._assets_primary_variables" |
|
||||
SCSS_URL = "/muk_web_theme/static/src/scss/colors.scss" |
|
||||
|
|
||||
class ResConfigSettings(models.TransientModel): |
|
||||
|
|
||||
_inherit = 'res.config.settings' |
|
||||
|
|
||||
#---------------------------------------------------------- |
|
||||
# Database |
|
||||
#---------------------------------------------------------- |
|
||||
|
|
||||
module_muk_web_theme_mail = fields.Boolean( |
|
||||
string="Theme Mail", |
|
||||
help="Optimizes the mail chatter for the theme.") |
|
||||
|
|
||||
module_muk_web_theme_branding = fields.Boolean( |
|
||||
string="Theme Branding", |
|
||||
help="Customize the theme according to your needs.") |
|
||||
|
|
||||
module_muk_web_theme_website = fields.Boolean( |
|
||||
string="Theme Website", |
|
||||
help="Add theme styled website navigation.") |
|
||||
|
|
||||
module_muk_web_theme_mobile = fields.Boolean( |
|
||||
string="Theme Mobile", |
|
||||
help="Allow Odoo to be used as a PWA app.") |
|
||||
|
|
||||
theme_background_image = fields.Binary( |
|
||||
related="company_id.background_image", |
|
||||
readonly=False) |
|
||||
|
|
||||
theme_background_blend_mode = fields.Selection( |
|
||||
related="company_id.background_blend_mode", |
|
||||
readonly=False) |
|
||||
|
|
||||
theme_default_sidebar_preference = fields.Selection( |
|
||||
related="company_id.default_sidebar_preference", |
|
||||
readonly=False) |
|
||||
|
|
||||
theme_default_chatter_preference = fields.Selection( |
|
||||
related="company_id.default_chatter_preference", |
|
||||
readonly=False) |
|
||||
|
|
||||
theme_color_brand = fields.Char( |
|
||||
string="Theme Brand Color") |
|
||||
|
|
||||
theme_color_primary = fields.Char( |
|
||||
string="Theme Primary Color") |
|
||||
|
|
||||
theme_color_required = fields.Char( |
|
||||
string="Theme Required Color") |
|
||||
|
|
||||
theme_color_menu = fields.Char( |
|
||||
string="Theme Menu Color") |
|
||||
|
|
||||
theme_color_appbar_color = fields.Char( |
|
||||
string="Theme AppBar Color") |
|
||||
|
|
||||
theme_color_appbar_background = fields.Char( |
|
||||
string="Theme AppBar Background") |
|
||||
|
|
||||
#---------------------------------------------------------- |
|
||||
# Functions |
|
||||
#---------------------------------------------------------- |
|
||||
|
|
||||
@api.multi |
|
||||
def set_values(self): |
|
||||
res = super(ResConfigSettings, self).set_values() |
|
||||
param = self.env['ir.config_parameter'].sudo() |
|
||||
variables = [ |
|
||||
'o-brand-odoo', |
|
||||
'o-brand-primary', |
|
||||
'mk-required-color', |
|
||||
'mk-apps-color', |
|
||||
'mk-appbar-color', |
|
||||
'mk-appbar-background', |
|
||||
] |
|
||||
colors = self.env['muk_utils.scss_editor'].get_values( |
|
||||
SCSS_URL, XML_ID, variables |
|
||||
) |
|
||||
colors_changed = [] |
|
||||
colors_changed.append(self.theme_color_brand != colors['o-brand-odoo']) |
|
||||
colors_changed.append(self.theme_color_primary != colors['o-brand-primary']) |
|
||||
colors_changed.append(self.theme_color_required != colors['mk-required-color']) |
|
||||
colors_changed.append(self.theme_color_menu != colors['mk-apps-color']) |
|
||||
colors_changed.append(self.theme_color_appbar_color != colors['mk-appbar-color']) |
|
||||
colors_changed.append(self.theme_color_appbar_background != colors['mk-appbar-background']) |
|
||||
if(any(colors_changed)): |
|
||||
variables = [ |
|
||||
{'name': 'o-brand-odoo', 'value': self.theme_color_brand or "#243742"}, |
|
||||
{'name': 'o-brand-primary', 'value': self.theme_color_primary or "#5D8DA8"}, |
|
||||
{'name': 'mk-required-color', 'value': self.theme_color_required or "#d1dfe6"}, |
|
||||
{'name': 'mk-apps-color', 'value': self.theme_color_menu or "#f8f9fa"}, |
|
||||
{'name': 'mk-appbar-color', 'value': self.theme_color_appbar_color or "#dee2e6"}, |
|
||||
{'name': 'mk-appbar-background', 'value': self.theme_color_appbar_background or "#000000"}, |
|
||||
] |
|
||||
self.env['muk_utils.scss_editor'].replace_values( |
|
||||
SCSS_URL, XML_ID, variables |
|
||||
) |
|
||||
param.set_param('muk_web_theme.background_blend_mode', self.theme_background_blend_mode) |
|
||||
return res |
|
||||
|
|
||||
@api.model |
|
||||
def get_values(self): |
|
||||
res = super(ResConfigSettings, self).get_values() |
|
||||
params = self.env['ir.config_parameter'].sudo() |
|
||||
variables = [ |
|
||||
'o-brand-odoo', |
|
||||
'o-brand-primary', |
|
||||
'mk-required-color', |
|
||||
'mk-apps-color', |
|
||||
'mk-appbar-color', |
|
||||
'mk-appbar-background', |
|
||||
] |
|
||||
colors = self.env['muk_utils.scss_editor'].get_values( |
|
||||
SCSS_URL, XML_ID, variables |
|
||||
) |
|
||||
res.update({ |
|
||||
'theme_color_brand': colors['o-brand-odoo'], |
|
||||
'theme_color_primary': colors['o-brand-primary'], |
|
||||
'theme_color_required': colors['mk-required-color'], |
|
||||
'theme_color_menu': colors['mk-apps-color'], |
|
||||
'theme_color_appbar_color': colors['mk-appbar-color'], |
|
||||
'theme_color_appbar_background': colors['mk-appbar-background'], |
|
||||
'theme_background_blend_mode': params.get_param('muk_web_theme.background_blend_mode', 'normal'), |
|
||||
}) |
|
||||
|
################################################################################### |
||||
|
# |
||||
|
# Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
# |
||||
|
# This file is part of MuK Backend Theme |
||||
|
# (see https://mukit.at). |
||||
|
# |
||||
|
# This program is free software: you can redistribute it and/or modify |
||||
|
# it under the terms of the GNU Lesser General Public License as published by |
||||
|
# the Free Software Foundation, either version 3 of the License, or |
||||
|
# (at your option) any later version. |
||||
|
# |
||||
|
# 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 for more details. |
||||
|
# |
||||
|
# You should have received a copy of the GNU Lesser General Public License |
||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
# |
||||
|
################################################################################### |
||||
|
|
||||
|
import re |
||||
|
import uuid |
||||
|
import base64 |
||||
|
|
||||
|
from odoo import api, fields, models |
||||
|
|
||||
|
XML_ID = "muk_web_theme._assets_primary_variables" |
||||
|
SCSS_URL = "/muk_web_theme/static/src/scss/colors.scss" |
||||
|
|
||||
|
class ResConfigSettings(models.TransientModel): |
||||
|
|
||||
|
_inherit = 'res.config.settings' |
||||
|
|
||||
|
#---------------------------------------------------------- |
||||
|
# Database |
||||
|
#---------------------------------------------------------- |
||||
|
|
||||
|
module_muk_web_theme_mail = fields.Boolean( |
||||
|
string="Theme Mail", |
||||
|
help="Optimizes the mail chatter for the theme.") |
||||
|
|
||||
|
module_muk_web_theme_branding = fields.Boolean( |
||||
|
string="Theme Branding", |
||||
|
help="Customize the theme according to your needs.") |
||||
|
|
||||
|
module_muk_web_theme_website = fields.Boolean( |
||||
|
string="Theme Website", |
||||
|
help="Add theme styled website navigation.") |
||||
|
|
||||
|
module_muk_web_theme_mobile = fields.Boolean( |
||||
|
string="Theme Mobile", |
||||
|
help="Allow Odoo to be used as a PWA app.") |
||||
|
|
||||
|
theme_background_image = fields.Binary( |
||||
|
related="company_id.background_image", |
||||
|
readonly=False) |
||||
|
|
||||
|
theme_background_blend_mode = fields.Selection( |
||||
|
related="company_id.background_blend_mode", |
||||
|
readonly=False) |
||||
|
|
||||
|
theme_default_sidebar_preference = fields.Selection( |
||||
|
related="company_id.default_sidebar_preference", |
||||
|
readonly=False) |
||||
|
|
||||
|
theme_default_chatter_preference = fields.Selection( |
||||
|
related="company_id.default_chatter_preference", |
||||
|
readonly=False) |
||||
|
|
||||
|
theme_color_brand = fields.Char( |
||||
|
string="Theme Brand Color") |
||||
|
|
||||
|
theme_color_primary = fields.Char( |
||||
|
string="Theme Primary Color") |
||||
|
|
||||
|
theme_color_required = fields.Char( |
||||
|
string="Theme Required Color") |
||||
|
|
||||
|
theme_color_menu = fields.Char( |
||||
|
string="Theme Menu Color") |
||||
|
|
||||
|
theme_color_appbar_color = fields.Char( |
||||
|
string="Theme AppBar Color") |
||||
|
|
||||
|
theme_color_appbar_background = fields.Char( |
||||
|
string="Theme AppBar Background") |
||||
|
|
||||
|
#---------------------------------------------------------- |
||||
|
# Functions |
||||
|
#---------------------------------------------------------- |
||||
|
|
||||
|
@api.multi |
||||
|
def set_values(self): |
||||
|
res = super(ResConfigSettings, self).set_values() |
||||
|
param = self.env['ir.config_parameter'].sudo() |
||||
|
variables = [ |
||||
|
'o-brand-odoo', |
||||
|
'o-brand-primary', |
||||
|
'mk-required-color', |
||||
|
'mk-apps-color', |
||||
|
'mk-appbar-color', |
||||
|
'mk-appbar-background', |
||||
|
] |
||||
|
colors = self.env['muk_utils.scss_editor'].get_values( |
||||
|
SCSS_URL, XML_ID, variables |
||||
|
) |
||||
|
colors_changed = [] |
||||
|
colors_changed.append(self.theme_color_brand != colors['o-brand-odoo']) |
||||
|
colors_changed.append(self.theme_color_primary != colors['o-brand-primary']) |
||||
|
colors_changed.append(self.theme_color_required != colors['mk-required-color']) |
||||
|
colors_changed.append(self.theme_color_menu != colors['mk-apps-color']) |
||||
|
colors_changed.append(self.theme_color_appbar_color != colors['mk-appbar-color']) |
||||
|
colors_changed.append(self.theme_color_appbar_background != colors['mk-appbar-background']) |
||||
|
if(any(colors_changed)): |
||||
|
variables = [ |
||||
|
{'name': 'o-brand-odoo', 'value': self.theme_color_brand or "#243742"}, |
||||
|
{'name': 'o-brand-primary', 'value': self.theme_color_primary or "#5D8DA8"}, |
||||
|
{'name': 'mk-required-color', 'value': self.theme_color_required or "#d1dfe6"}, |
||||
|
{'name': 'mk-apps-color', 'value': self.theme_color_menu or "#f8f9fa"}, |
||||
|
{'name': 'mk-appbar-color', 'value': self.theme_color_appbar_color or "#dee2e6"}, |
||||
|
{'name': 'mk-appbar-background', 'value': self.theme_color_appbar_background or "#000000"}, |
||||
|
] |
||||
|
self.env['muk_utils.scss_editor'].replace_values( |
||||
|
SCSS_URL, XML_ID, variables |
||||
|
) |
||||
|
param.set_param('muk_web_theme.background_blend_mode', self.theme_background_blend_mode) |
||||
|
return res |
||||
|
|
||||
|
@api.model |
||||
|
def get_values(self): |
||||
|
res = super(ResConfigSettings, self).get_values() |
||||
|
params = self.env['ir.config_parameter'].sudo() |
||||
|
variables = [ |
||||
|
'o-brand-odoo', |
||||
|
'o-brand-primary', |
||||
|
'mk-required-color', |
||||
|
'mk-apps-color', |
||||
|
'mk-appbar-color', |
||||
|
'mk-appbar-background', |
||||
|
] |
||||
|
colors = self.env['muk_utils.scss_editor'].get_values( |
||||
|
SCSS_URL, XML_ID, variables |
||||
|
) |
||||
|
res.update({ |
||||
|
'theme_color_brand': colors['o-brand-odoo'], |
||||
|
'theme_color_primary': colors['o-brand-primary'], |
||||
|
'theme_color_required': colors['mk-required-color'], |
||||
|
'theme_color_menu': colors['mk-apps-color'], |
||||
|
'theme_color_appbar_color': colors['mk-appbar-color'], |
||||
|
'theme_color_appbar_background': colors['mk-appbar-background'], |
||||
|
'theme_background_blend_mode': params.get_param('muk_web_theme.background_blend_mode', 'normal'), |
||||
|
}) |
||||
return res |
return res |
@ -1,42 +1,45 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
odoo.define('muk_web_theme.ActionManager', function (require) { |
|
||||
"use strict"; |
|
||||
|
|
||||
var core = require('web.core'); |
|
||||
var config = require("web.config"); |
|
||||
|
|
||||
var ActionManager = require('web.ActionManager'); |
|
||||
|
|
||||
var _t = core._t; |
|
||||
var QWeb = core.qweb; |
|
||||
|
|
||||
ActionManager.include({ |
|
||||
_handleAction: function (action) { |
|
||||
return this._super.apply(this, arguments).always($.proxy(this, '_hideMenusByAction', action)); |
|
||||
}, |
|
||||
_hideMenusByAction: function (action) { |
|
||||
var unique_selection = '[data-action-id=' + action.id + ']'; |
|
||||
$(_.str.sprintf('.o_menu_apps .dropdown:has(.dropdown-menu.show:has(%s)) > a', unique_selection)).dropdown('toggle'); |
|
||||
$(_.str.sprintf('.o_menu_sections.show:has(%s)', unique_selection)).collapse('hide'); |
|
||||
}, |
|
||||
}); |
|
||||
|
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at).
|
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
odoo.define('muk_web_theme.ActionManager', function (require) { |
||||
|
"use strict"; |
||||
|
|
||||
|
var core = require('web.core'); |
||||
|
var config = require("web.config"); |
||||
|
|
||||
|
var ActionManager = require('web.ActionManager'); |
||||
|
|
||||
|
var _t = core._t; |
||||
|
var QWeb = core.qweb; |
||||
|
|
||||
|
ActionManager.include({ |
||||
|
_handleAction: function (action) { |
||||
|
return this._super.apply(this, arguments).always($.proxy(this, '_hideMenusByAction', action)); |
||||
|
}, |
||||
|
_hideMenusByAction: function (action) { |
||||
|
var unique_selection = '[data-action-id=' + action.id + ']'; |
||||
|
$(_.str.sprintf('.o_menu_apps .dropdown:has(.dropdown-menu.show:has(%s)) > a', unique_selection)).dropdown('toggle'); |
||||
|
$(_.str.sprintf('.o_menu_sections.show:has(%s)', unique_selection)).collapse('hide'); |
||||
|
}, |
||||
|
}); |
||||
|
|
||||
}); |
}); |
@ -1,99 +1,102 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
odoo.define('muk_web_theme.AppsMenu', function (require) { |
|
||||
"use strict"; |
|
||||
|
|
||||
var core = require('web.core'); |
|
||||
var config = require("web.config"); |
|
||||
var session = require("web.session"); |
|
||||
|
|
||||
var AppsMenu = require("web.AppsMenu"); |
|
||||
var MenuSearchMixin = require("muk_web_theme.MenuSearchMixin"); |
|
||||
|
|
||||
var _t = core._t; |
|
||||
var QWeb = core.qweb; |
|
||||
|
|
||||
AppsMenu.include(_.extend({}, MenuSearchMixin, { |
|
||||
events: _.extend({}, AppsMenu.prototype.events, { |
|
||||
"keydown .mk_search_input input": "_onSearchResultsNavigate", |
|
||||
"click .mk_menu_search_result": "_onSearchResultChosen", |
|
||||
"shown.bs.dropdown": "_onMenuShown", |
|
||||
"hidden.bs.dropdown": "_onMenuHidden", |
|
||||
"hide.bs.dropdown": "_onMenuHide", |
|
||||
}), |
|
||||
init: function (parent, menuData) { |
|
||||
this._super.apply(this, arguments); |
|
||||
for (var n in this._apps) { |
|
||||
this._apps[n].web_icon_data = menuData.children[n].web_icon_data; |
|
||||
} |
|
||||
this._searchableMenus = _.reduce( |
|
||||
menuData.children, this._findNames.bind(this), {} |
|
||||
); |
|
||||
this._search_def = $.Deferred(); |
|
||||
}, |
|
||||
start: function () { |
|
||||
this._setBackgroundImage(); |
|
||||
this.$search_container = this.$(".mk_search_container"); |
|
||||
this.$search_input = this.$(".mk_search_input input"); |
|
||||
this.$search_results = this.$(".mk_search_results"); |
|
||||
return this._super.apply(this, arguments); |
|
||||
}, |
|
||||
_onSearchResultChosen: function (event) { |
|
||||
event.preventDefault(); |
|
||||
var $result = $(event.currentTarget), |
|
||||
text = $result.text().trim(), |
|
||||
data = $result.data(), |
|
||||
suffix = ~text.indexOf("/") ? "/" : ""; |
|
||||
this.trigger_up("menu_clicked", { |
|
||||
action_id: data.actionId, |
|
||||
id: data.menuId, |
|
||||
previous_menu_id: data.parentId, |
|
||||
}); |
|
||||
var app = _.find(this._apps, function (_app) { |
|
||||
return text.indexOf(_app.name + suffix) === 0; |
|
||||
}); |
|
||||
core.bus.trigger("change_menu_section", app.menuID); |
|
||||
}, |
|
||||
_onAppsMenuItemClicked: function (event) { |
|
||||
this._super.apply(this, arguments); |
|
||||
event.preventDefault(); |
|
||||
}, |
|
||||
_setBackgroundImage: function () { |
|
||||
var url = session.url('/web/image', { |
|
||||
model: 'res.company', |
|
||||
id: session.company_id, |
|
||||
field: 'background_image', |
|
||||
}); |
|
||||
this.$('.dropdown-menu').css({ |
|
||||
"background-size": "cover", |
|
||||
"background-image": "url(" + url + ")" |
|
||||
}); |
|
||||
if (session.muk_web_theme_background_blend_mode) { |
|
||||
this.$('.o-app-name').css({ |
|
||||
"mix-blend-mode": session.muk_web_theme_background_blend_mode, |
|
||||
}); |
|
||||
} |
|
||||
}, |
|
||||
_onMenuHide: function(event) { |
|
||||
return $('.oe_wait').length === 0 && !this.$('input').is(':focus'); |
|
||||
}, |
|
||||
})); |
|
||||
|
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at).
|
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
odoo.define('muk_web_theme.AppsMenu', function (require) { |
||||
|
"use strict"; |
||||
|
|
||||
|
var core = require('web.core'); |
||||
|
var config = require("web.config"); |
||||
|
var session = require("web.session"); |
||||
|
|
||||
|
var AppsMenu = require("web.AppsMenu"); |
||||
|
var MenuSearchMixin = require("muk_web_theme.MenuSearchMixin"); |
||||
|
|
||||
|
var _t = core._t; |
||||
|
var QWeb = core.qweb; |
||||
|
|
||||
|
AppsMenu.include(_.extend({}, MenuSearchMixin, { |
||||
|
events: _.extend({}, AppsMenu.prototype.events, { |
||||
|
"keydown .mk_search_input input": "_onSearchResultsNavigate", |
||||
|
"click .mk_menu_search_result": "_onSearchResultChosen", |
||||
|
"shown.bs.dropdown": "_onMenuShown", |
||||
|
"hidden.bs.dropdown": "_onMenuHidden", |
||||
|
"hide.bs.dropdown": "_onMenuHide", |
||||
|
}), |
||||
|
init: function (parent, menuData) { |
||||
|
this._super.apply(this, arguments); |
||||
|
for (var n in this._apps) { |
||||
|
this._apps[n].web_icon_data = menuData.children[n].web_icon_data; |
||||
|
} |
||||
|
this._searchableMenus = _.reduce( |
||||
|
menuData.children, this._findNames.bind(this), {} |
||||
|
); |
||||
|
this._search_def = $.Deferred(); |
||||
|
}, |
||||
|
start: function () { |
||||
|
this._setBackgroundImage(); |
||||
|
this.$search_container = this.$(".mk_search_container"); |
||||
|
this.$search_input = this.$(".mk_search_input input"); |
||||
|
this.$search_results = this.$(".mk_search_results"); |
||||
|
return this._super.apply(this, arguments); |
||||
|
}, |
||||
|
_onSearchResultChosen: function (event) { |
||||
|
event.preventDefault(); |
||||
|
var $result = $(event.currentTarget), |
||||
|
text = $result.text().trim(), |
||||
|
data = $result.data(), |
||||
|
suffix = ~text.indexOf("/") ? "/" : ""; |
||||
|
this.trigger_up("menu_clicked", { |
||||
|
action_id: data.actionId, |
||||
|
id: data.menuId, |
||||
|
previous_menu_id: data.parentId, |
||||
|
}); |
||||
|
var app = _.find(this._apps, function (_app) { |
||||
|
return text.indexOf(_app.name + suffix) === 0; |
||||
|
}); |
||||
|
core.bus.trigger("change_menu_section", app.menuID); |
||||
|
}, |
||||
|
_onAppsMenuItemClicked: function (event) { |
||||
|
this._super.apply(this, arguments); |
||||
|
event.preventDefault(); |
||||
|
}, |
||||
|
_setBackgroundImage: function () { |
||||
|
var url = session.url('/web/image', { |
||||
|
model: 'res.company', |
||||
|
id: session.company_id, |
||||
|
field: 'background_image', |
||||
|
}); |
||||
|
this.$('.dropdown-menu').css({ |
||||
|
"background-size": "cover", |
||||
|
"background-image": "url(" + url + ")" |
||||
|
}); |
||||
|
if (session.muk_web_theme_background_blend_mode) { |
||||
|
this.$('.o-app-name').css({ |
||||
|
"mix-blend-mode": session.muk_web_theme_background_blend_mode, |
||||
|
}); |
||||
|
} |
||||
|
}, |
||||
|
_onMenuHide: function(event) { |
||||
|
return $('.oe_wait').length === 0 && !this.$('input').is(':focus'); |
||||
|
}, |
||||
|
})); |
||||
|
|
||||
}); |
}); |
@ -1,73 +1,76 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
odoo.define('muk_web_theme.AppsBar', function (require) { |
|
||||
"use strict"; |
|
||||
|
|
||||
var core = require('web.core'); |
|
||||
var config = require("web.config"); |
|
||||
|
|
||||
var Widget = require('web.Widget'); |
|
||||
|
|
||||
var _t = core._t; |
|
||||
var QWeb = core.qweb; |
|
||||
|
|
||||
var AppsBar = Widget.extend({ |
|
||||
events: _.extend({}, Widget.prototype.events, { |
|
||||
'click .nav-link': '_onAppsMenuItemClicked', |
|
||||
}), |
|
||||
template: "muk_web_theme.AppsBarMenu", |
|
||||
init: function (parent, menu) { |
|
||||
this._super.apply(this, arguments); |
|
||||
this._apps = _.map(menu.children, function (app) { |
|
||||
return { |
|
||||
actionID: parseInt(app.action.split(',')[1]), |
|
||||
web_icon_data: app.web_icon_data, |
|
||||
menuID: app.id, |
|
||||
name: app.name, |
|
||||
xmlID: app.xmlid, |
|
||||
}; |
|
||||
}); |
|
||||
}, |
|
||||
getApps: function () { |
|
||||
return this._apps; |
|
||||
}, |
|
||||
_openApp: function (app) { |
|
||||
this.trigger_up('app_clicked', { |
|
||||
action_id: app.actionID, |
|
||||
menu_id: app.menuID, |
|
||||
}); |
|
||||
}, |
|
||||
_onAppsMenuItemClicked: function (ev) { |
|
||||
var $target = $(ev.currentTarget); |
|
||||
var actionID = $target.data('action-id'); |
|
||||
var menuID = $target.data('menu-id'); |
|
||||
var app = _.findWhere(this._apps, { |
|
||||
actionID: actionID, |
|
||||
menuID: menuID |
|
||||
}); |
|
||||
this._openApp(app); |
|
||||
ev.preventDefault(); |
|
||||
$target.blur(); |
|
||||
}, |
|
||||
}); |
|
||||
|
|
||||
return AppsBar; |
|
||||
|
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at).
|
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
odoo.define('muk_web_theme.AppsBar', function (require) { |
||||
|
"use strict"; |
||||
|
|
||||
|
var core = require('web.core'); |
||||
|
var config = require("web.config"); |
||||
|
|
||||
|
var Widget = require('web.Widget'); |
||||
|
|
||||
|
var _t = core._t; |
||||
|
var QWeb = core.qweb; |
||||
|
|
||||
|
var AppsBar = Widget.extend({ |
||||
|
events: _.extend({}, Widget.prototype.events, { |
||||
|
'click .nav-link': '_onAppsMenuItemClicked', |
||||
|
}), |
||||
|
template: "muk_web_theme.AppsBarMenu", |
||||
|
init: function (parent, menu) { |
||||
|
this._super.apply(this, arguments); |
||||
|
this._apps = _.map(menu.children, function (app) { |
||||
|
return { |
||||
|
actionID: parseInt(app.action.split(',')[1]), |
||||
|
web_icon_data: app.web_icon_data, |
||||
|
menuID: app.id, |
||||
|
name: app.name, |
||||
|
xmlID: app.xmlid, |
||||
|
}; |
||||
|
}); |
||||
|
}, |
||||
|
getApps: function () { |
||||
|
return this._apps; |
||||
|
}, |
||||
|
_openApp: function (app) { |
||||
|
this.trigger_up('app_clicked', { |
||||
|
action_id: app.actionID, |
||||
|
menu_id: app.menuID, |
||||
|
}); |
||||
|
}, |
||||
|
_onAppsMenuItemClicked: function (ev) { |
||||
|
var $target = $(ev.currentTarget); |
||||
|
var actionID = $target.data('action-id'); |
||||
|
var menuID = $target.data('menu-id'); |
||||
|
var app = _.findWhere(this._apps, { |
||||
|
actionID: actionID, |
||||
|
menuID: menuID |
||||
|
}); |
||||
|
this._openApp(app); |
||||
|
ev.preventDefault(); |
||||
|
$target.blur(); |
||||
|
}, |
||||
|
}); |
||||
|
|
||||
|
return AppsBar; |
||||
|
|
||||
}); |
}); |
@ -1,47 +1,50 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
odoo.define('muk_web_theme.Pager', function (require) { |
|
||||
"use strict"; |
|
||||
|
|
||||
var core = require('web.core'); |
|
||||
var config = require("web.config"); |
|
||||
|
|
||||
var Pager = require('web.Pager'); |
|
||||
|
|
||||
var _t = core._t; |
|
||||
var QWeb = core.qweb; |
|
||||
|
|
||||
Pager.include({ |
|
||||
_render: function () { |
|
||||
this._super.apply(this, arguments); |
|
||||
if (this.state.size !== 0 && config.device.isMobile) { |
|
||||
this.$value.html(Math.ceil(this.state.current_max / this.state.limit)); |
|
||||
this.$limit.html(Math.ceil(this.state.size / this.state.limit)); |
|
||||
} |
|
||||
}, |
|
||||
_onEdit: function (event) { |
|
||||
if (!config.device.isMobile) { |
|
||||
this._super.apply(this, arguments); |
|
||||
} |
|
||||
event.stopPropagation(); |
|
||||
}, |
|
||||
}); |
|
||||
|
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at).
|
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
odoo.define('muk_web_theme.Pager', function (require) { |
||||
|
"use strict"; |
||||
|
|
||||
|
var core = require('web.core'); |
||||
|
var config = require("web.config"); |
||||
|
|
||||
|
var Pager = require('web.Pager'); |
||||
|
|
||||
|
var _t = core._t; |
||||
|
var QWeb = core.qweb; |
||||
|
|
||||
|
Pager.include({ |
||||
|
_render: function () { |
||||
|
this._super.apply(this, arguments); |
||||
|
if (this.state.size !== 0 && config.device.isMobile) { |
||||
|
this.$value.html(Math.ceil(this.state.current_max / this.state.limit)); |
||||
|
this.$limit.html(Math.ceil(this.state.size / this.state.limit)); |
||||
|
} |
||||
|
}, |
||||
|
_onEdit: function (event) { |
||||
|
if (!config.device.isMobile) { |
||||
|
this._super.apply(this, arguments); |
||||
|
} |
||||
|
event.stopPropagation(); |
||||
|
}, |
||||
|
}); |
||||
|
|
||||
}); |
}); |
@ -1,47 +1,50 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
odoo.define('muk_web_theme.Sidebar', function (require) { |
|
||||
"use strict"; |
|
||||
|
|
||||
var core = require('web.core'); |
|
||||
var config = require("web.config"); |
|
||||
|
|
||||
var Sidebar = require('web.Sidebar'); |
|
||||
|
|
||||
var _t = core._t; |
|
||||
var QWeb = core.qweb; |
|
||||
|
|
||||
Sidebar.include({ |
|
||||
init: function () { |
|
||||
this._super.apply(this, arguments); |
|
||||
if (config.device.isMobile) { |
|
||||
_.each(this.sections, function(element) { |
|
||||
if(element.name === 'print') { |
|
||||
element.icon = 'fa fa-print'; |
|
||||
} |
|
||||
if(element.name === 'other') { |
|
||||
element.icon = 'fa fa-cogs'; |
|
||||
} |
|
||||
}); |
|
||||
} |
|
||||
}, |
|
||||
}); |
|
||||
|
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at).
|
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
odoo.define('muk_web_theme.Sidebar', function (require) { |
||||
|
"use strict"; |
||||
|
|
||||
|
var core = require('web.core'); |
||||
|
var config = require("web.config"); |
||||
|
|
||||
|
var Sidebar = require('web.Sidebar'); |
||||
|
|
||||
|
var _t = core._t; |
||||
|
var QWeb = core.qweb; |
||||
|
|
||||
|
Sidebar.include({ |
||||
|
init: function () { |
||||
|
this._super.apply(this, arguments); |
||||
|
if (config.device.isMobile) { |
||||
|
_.each(this.sections, function(element) { |
||||
|
if(element.name === 'print') { |
||||
|
element.icon = 'fa fa-print'; |
||||
|
} |
||||
|
if(element.name === 'other') { |
||||
|
element.icon = 'fa fa-cogs'; |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
}, |
||||
|
}); |
||||
|
|
||||
}); |
}); |
@ -1,133 +1,136 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
odoo.define('muk_web_theme.MenuSearchMixin', function (require) { |
|
||||
"use strict"; |
|
||||
|
|
||||
var core = require('web.core'); |
|
||||
var config = require("web.config"); |
|
||||
var session = require("web.session"); |
|
||||
|
|
||||
var _t = core._t; |
|
||||
var QWeb = core.qweb; |
|
||||
|
|
||||
var MenuSearchMixin = { |
|
||||
_findNames: function (memo, menu) { |
|
||||
if (menu.action) { |
|
||||
var key = menu.parent_id ? menu.parent_id[1] + "/" : ""; |
|
||||
memo[key + menu.name] = menu; |
|
||||
} |
|
||||
if (menu.children.length) { |
|
||||
_.reduce(menu.children, this._findNames.bind(this), memo); |
|
||||
} |
|
||||
return memo; |
|
||||
}, |
|
||||
_menuInfo: function (key) { |
|
||||
var original = this._searchableMenus[key]; |
|
||||
return _.extend({ |
|
||||
action_id: parseInt(original.action.split(',')[1], 10), |
|
||||
}, original); |
|
||||
}, |
|
||||
_searchFocus: function () { |
|
||||
if (!config.device.isMobile) { |
|
||||
this.$search_input.focus(); |
|
||||
} else { |
|
||||
this.$search_input.blur(); |
|
||||
} |
|
||||
}, |
|
||||
_searchReset: function () { |
|
||||
this.$search_container.removeClass("has-results"); |
|
||||
this.$search_results.empty(); |
|
||||
this.$search_input.val(""); |
|
||||
}, |
|
||||
_searchMenusSchedule: function () { |
|
||||
this._search_def.reject(); |
|
||||
this._search_def = $.Deferred(); |
|
||||
setTimeout(this._search_def.resolve.bind(this._search_def), 50); |
|
||||
this._search_def.done(this._searchMenus.bind(this)); |
|
||||
}, |
|
||||
_searchMenus: function () { |
|
||||
var query = this.$search_input.val(); |
|
||||
if (query === "") { |
|
||||
this.$search_container.removeClass("has-results"); |
|
||||
this.$search_results.empty(); |
|
||||
return; |
|
||||
} |
|
||||
var results = fuzzy.filter(query, _.keys(this._searchableMenus), { |
|
||||
pre: "<b>", |
|
||||
post: "</b>", |
|
||||
}); |
|
||||
this.$search_container.toggleClass("has-results", Boolean(results.length)); |
|
||||
this.$search_results.html(QWeb.render("muk_web_theme.MenuSearchResults", { |
|
||||
results: results, |
|
||||
widget: this, |
|
||||
})); |
|
||||
}, |
|
||||
_onSearchResultsNavigate: function (event) { |
|
||||
if (this.$search_results.html().trim() === "") { |
|
||||
this._searchMenusSchedule(); |
|
||||
return; |
|
||||
} |
|
||||
var all = this.$search_results.find(".mk_menu_search_result"); |
|
||||
var key = event.key || String.fromCharCode(event.which); |
|
||||
var pre_focused = all.filter(".active") || $(all[0]); |
|
||||
var offset = all.index(pre_focused); |
|
||||
if (key === "Tab") { |
|
||||
event.preventDefault(); |
|
||||
key = event.shiftKey ? "ArrowUp" : "ArrowDown"; |
|
||||
} |
|
||||
switch (key) { |
|
||||
case "Enter": |
|
||||
pre_focused.click(); |
|
||||
break; |
|
||||
case "ArrowUp": |
|
||||
offset--; |
|
||||
break; |
|
||||
case "ArrowDown": |
|
||||
offset++; |
|
||||
break; |
|
||||
default: |
|
||||
this._searchMenusSchedule(); |
|
||||
return; |
|
||||
} |
|
||||
if (offset < 0) { |
|
||||
offset = all.length + offset; |
|
||||
} else if (offset >= all.length) { |
|
||||
offset -= all.length; |
|
||||
} |
|
||||
var new_focused = $(all[offset]); |
|
||||
pre_focused.removeClass("active"); |
|
||||
new_focused.addClass("active"); |
|
||||
this.$search_results.scrollTo(new_focused, { |
|
||||
offset: { |
|
||||
top: this.$search_results.height() * -0.5, |
|
||||
}, |
|
||||
}); |
|
||||
}, |
|
||||
_onMenuShown: function(event) { |
|
||||
this._searchFocus(); |
|
||||
}, |
|
||||
_onMenuHidden: function(event) { |
|
||||
this._searchReset(); |
|
||||
}, |
|
||||
}; |
|
||||
|
|
||||
return MenuSearchMixin; |
|
||||
|
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at).
|
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
odoo.define('muk_web_theme.MenuSearchMixin', function (require) { |
||||
|
"use strict"; |
||||
|
|
||||
|
var core = require('web.core'); |
||||
|
var config = require("web.config"); |
||||
|
var session = require("web.session"); |
||||
|
|
||||
|
var _t = core._t; |
||||
|
var QWeb = core.qweb; |
||||
|
|
||||
|
var MenuSearchMixin = { |
||||
|
_findNames: function (memo, menu) { |
||||
|
if (menu.action) { |
||||
|
var key = menu.parent_id ? menu.parent_id[1] + "/" : ""; |
||||
|
memo[key + menu.name] = menu; |
||||
|
} |
||||
|
if (menu.children.length) { |
||||
|
_.reduce(menu.children, this._findNames.bind(this), memo); |
||||
|
} |
||||
|
return memo; |
||||
|
}, |
||||
|
_menuInfo: function (key) { |
||||
|
var original = this._searchableMenus[key]; |
||||
|
return _.extend({ |
||||
|
action_id: parseInt(original.action.split(',')[1], 10), |
||||
|
}, original); |
||||
|
}, |
||||
|
_searchFocus: function () { |
||||
|
if (!config.device.isMobile) { |
||||
|
this.$search_input.focus(); |
||||
|
} else { |
||||
|
this.$search_input.blur(); |
||||
|
} |
||||
|
}, |
||||
|
_searchReset: function () { |
||||
|
this.$search_container.removeClass("has-results"); |
||||
|
this.$search_results.empty(); |
||||
|
this.$search_input.val(""); |
||||
|
}, |
||||
|
_searchMenusSchedule: function () { |
||||
|
this._search_def.reject(); |
||||
|
this._search_def = $.Deferred(); |
||||
|
setTimeout(this._search_def.resolve.bind(this._search_def), 50); |
||||
|
this._search_def.done(this._searchMenus.bind(this)); |
||||
|
}, |
||||
|
_searchMenus: function () { |
||||
|
var query = this.$search_input.val(); |
||||
|
if (query === "") { |
||||
|
this.$search_container.removeClass("has-results"); |
||||
|
this.$search_results.empty(); |
||||
|
return; |
||||
|
} |
||||
|
var results = fuzzy.filter(query, _.keys(this._searchableMenus), { |
||||
|
pre: "<b>", |
||||
|
post: "</b>", |
||||
|
}); |
||||
|
this.$search_container.toggleClass("has-results", Boolean(results.length)); |
||||
|
this.$search_results.html(QWeb.render("muk_web_theme.MenuSearchResults", { |
||||
|
results: results, |
||||
|
widget: this, |
||||
|
})); |
||||
|
}, |
||||
|
_onSearchResultsNavigate: function (event) { |
||||
|
if (this.$search_results.html().trim() === "") { |
||||
|
this._searchMenusSchedule(); |
||||
|
return; |
||||
|
} |
||||
|
var all = this.$search_results.find(".mk_menu_search_result"); |
||||
|
var key = event.key || String.fromCharCode(event.which); |
||||
|
var pre_focused = all.filter(".active") || $(all[0]); |
||||
|
var offset = all.index(pre_focused); |
||||
|
if (key === "Tab") { |
||||
|
event.preventDefault(); |
||||
|
key = event.shiftKey ? "ArrowUp" : "ArrowDown"; |
||||
|
} |
||||
|
switch (key) { |
||||
|
case "Enter": |
||||
|
pre_focused.click(); |
||||
|
break; |
||||
|
case "ArrowUp": |
||||
|
offset--; |
||||
|
break; |
||||
|
case "ArrowDown": |
||||
|
offset++; |
||||
|
break; |
||||
|
default: |
||||
|
this._searchMenusSchedule(); |
||||
|
return; |
||||
|
} |
||||
|
if (offset < 0) { |
||||
|
offset = all.length + offset; |
||||
|
} else if (offset >= all.length) { |
||||
|
offset -= all.length; |
||||
|
} |
||||
|
var new_focused = $(all[offset]); |
||||
|
pre_focused.removeClass("active"); |
||||
|
new_focused.addClass("active"); |
||||
|
this.$search_results.scrollTo(new_focused, { |
||||
|
offset: { |
||||
|
top: this.$search_results.height() * -0.5, |
||||
|
}, |
||||
|
}); |
||||
|
}, |
||||
|
_onMenuShown: function(event) { |
||||
|
this._searchFocus(); |
||||
|
}, |
||||
|
_onMenuHidden: function(event) { |
||||
|
this._searchReset(); |
||||
|
}, |
||||
|
}; |
||||
|
|
||||
|
return MenuSearchMixin; |
||||
|
|
||||
}); |
}); |
@ -1,65 +1,68 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
odoo.define('muk_web_theme.relational_fields', function (require) { |
|
||||
"use strict"; |
|
||||
|
|
||||
var core = require('web.core'); |
|
||||
var config = require("web.config"); |
|
||||
var fields = require('web.relational_fields'); |
|
||||
|
|
||||
var _t = core._t; |
|
||||
var QWeb = core.qweb; |
|
||||
|
|
||||
fields.FieldStatus.include({ |
|
||||
_setState: function () { |
|
||||
this._super.apply(this, arguments); |
|
||||
if (config.device.isMobile) { |
|
||||
_.map(this.status_information, function (value) { |
|
||||
value.fold = true; |
|
||||
}); |
|
||||
} |
|
||||
}, |
|
||||
}); |
|
||||
|
|
||||
fields.FieldOne2Many.include({ |
|
||||
_renderButtons: function () { |
|
||||
var result = this._super.apply(this, arguments); |
|
||||
if (config.device.isMobile && this.$buttons) { |
|
||||
var $buttons = this.$buttons.find('.btn-secondary'); |
|
||||
$buttons.addClass('btn-primary mk_mobile_add'); |
|
||||
$buttons.removeClass('btn-secondary'); |
|
||||
} |
|
||||
return result; |
|
||||
} |
|
||||
}); |
|
||||
|
|
||||
fields.FieldMany2Many.include({ |
|
||||
_renderButtons: function () { |
|
||||
var result = this._super.apply(this, arguments); |
|
||||
if (config.device.isMobile && this.$buttons) { |
|
||||
var $buttons = this.$buttons.find('.btn-secondary'); |
|
||||
$buttons.addClass('btn-primary mk_mobile_add'); |
|
||||
$buttons.removeClass('btn-secondary'); |
|
||||
} |
|
||||
return result; |
|
||||
} |
|
||||
}); |
|
||||
|
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at).
|
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
odoo.define('muk_web_theme.relational_fields', function (require) { |
||||
|
"use strict"; |
||||
|
|
||||
|
var core = require('web.core'); |
||||
|
var config = require("web.config"); |
||||
|
var fields = require('web.relational_fields'); |
||||
|
|
||||
|
var _t = core._t; |
||||
|
var QWeb = core.qweb; |
||||
|
|
||||
|
fields.FieldStatus.include({ |
||||
|
_setState: function () { |
||||
|
this._super.apply(this, arguments); |
||||
|
if (config.device.isMobile) { |
||||
|
_.map(this.status_information, function (value) { |
||||
|
value.fold = true; |
||||
|
}); |
||||
|
} |
||||
|
}, |
||||
|
}); |
||||
|
|
||||
|
fields.FieldOne2Many.include({ |
||||
|
_renderButtons: function () { |
||||
|
var result = this._super.apply(this, arguments); |
||||
|
if (config.device.isMobile && this.$buttons) { |
||||
|
var $buttons = this.$buttons.find('.btn-secondary'); |
||||
|
$buttons.addClass('btn-primary mk_mobile_add'); |
||||
|
$buttons.removeClass('btn-secondary'); |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
|
fields.FieldMany2Many.include({ |
||||
|
_renderButtons: function () { |
||||
|
var result = this._super.apply(this, arguments); |
||||
|
if (config.device.isMobile && this.$buttons) { |
||||
|
var $buttons = this.$buttons.find('.btn-secondary'); |
||||
|
$buttons.addClass('btn-primary mk_mobile_add'); |
||||
|
$buttons.removeClass('btn-secondary'); |
||||
|
} |
||||
|
return result; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
}); |
}); |
@ -1,45 +1,48 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
odoo.define('muk_web_theme.FormRenderer', function (require) { |
|
||||
"use strict"; |
|
||||
|
|
||||
var dom = require('web.dom'); |
|
||||
var core = require('web.core'); |
|
||||
var config = require("web.config"); |
|
||||
|
|
||||
var FormRenderer = require('web.FormRenderer'); |
|
||||
|
|
||||
var _t = core._t; |
|
||||
var QWeb = core.qweb; |
|
||||
|
|
||||
FormRenderer.include({ |
|
||||
_renderHeaderButtons: function () { |
|
||||
var $buttons = this._super.apply(this, arguments); |
|
||||
if (config.device.isMobile && this.state.model !== "res.config.settings") { |
|
||||
var $dropdown = $(QWeb.render('muk_web_theme.MenuStatusbarButtons')); |
|
||||
$buttons.addClass("dropdown-menu").appendTo($dropdown); |
|
||||
$buttons.children().addClass("dropdown-item"); |
|
||||
return $dropdown; |
|
||||
} |
|
||||
return $buttons; |
|
||||
}, |
|
||||
}); |
|
||||
|
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at).
|
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
odoo.define('muk_web_theme.FormRenderer', function (require) { |
||||
|
"use strict"; |
||||
|
|
||||
|
var dom = require('web.dom'); |
||||
|
var core = require('web.core'); |
||||
|
var config = require("web.config"); |
||||
|
|
||||
|
var FormRenderer = require('web.FormRenderer'); |
||||
|
|
||||
|
var _t = core._t; |
||||
|
var QWeb = core.qweb; |
||||
|
|
||||
|
FormRenderer.include({ |
||||
|
_renderHeaderButtons: function () { |
||||
|
var $buttons = this._super.apply(this, arguments); |
||||
|
if (config.device.isMobile && this.state.model !== "res.config.settings") { |
||||
|
var $dropdown = $(QWeb.render('muk_web_theme.MenuStatusbarButtons')); |
||||
|
$buttons.addClass("dropdown-menu").appendTo($dropdown); |
||||
|
$buttons.children().addClass("dropdown-item"); |
||||
|
return $dropdown; |
||||
|
} |
||||
|
return $buttons; |
||||
|
}, |
||||
|
}); |
||||
|
|
||||
}); |
}); |
@ -1,51 +1,54 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
odoo.define('muk_web_theme.FormView', function (require) { |
|
||||
"use strict"; |
|
||||
|
|
||||
var dom = require('web.dom'); |
|
||||
var core = require('web.core'); |
|
||||
var config = require("web.config"); |
|
||||
|
|
||||
var FormView = require('web.FormView'); |
|
||||
var QuickCreateFormView = require('web.QuickCreateFormView'); |
|
||||
|
|
||||
var _t = core._t; |
|
||||
var QWeb = core.qweb; |
|
||||
|
|
||||
FormView.include({ |
|
||||
init: function () { |
|
||||
this._super.apply(this, arguments); |
|
||||
if (config.device.isMobile) { |
|
||||
this.controllerParams.disableAutofocus = true; |
|
||||
} |
|
||||
}, |
|
||||
}); |
|
||||
|
|
||||
QuickCreateFormView.include({ |
|
||||
init: function () { |
|
||||
this._super.apply(this, arguments); |
|
||||
if (config.device.isMobile) { |
|
||||
this.controllerParams.disableAutofocus = true; |
|
||||
} |
|
||||
}, |
|
||||
}); |
|
||||
|
|
||||
}); |
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at).
|
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
odoo.define('muk_web_theme.FormView', function (require) { |
||||
|
"use strict"; |
||||
|
|
||||
|
var dom = require('web.dom'); |
||||
|
var core = require('web.core'); |
||||
|
var config = require("web.config"); |
||||
|
|
||||
|
var FormView = require('web.FormView'); |
||||
|
var QuickCreateFormView = require('web.QuickCreateFormView'); |
||||
|
|
||||
|
var _t = core._t; |
||||
|
var QWeb = core.qweb; |
||||
|
|
||||
|
FormView.include({ |
||||
|
init: function () { |
||||
|
this._super.apply(this, arguments); |
||||
|
if (config.device.isMobile) { |
||||
|
this.controllerParams.disableAutofocus = true; |
||||
|
} |
||||
|
}, |
||||
|
}); |
||||
|
|
||||
|
QuickCreateFormView.include({ |
||||
|
init: function () { |
||||
|
this._super.apply(this, arguments); |
||||
|
if (config.device.isMobile) { |
||||
|
this.controllerParams.disableAutofocus = true; |
||||
|
} |
||||
|
}, |
||||
|
}); |
||||
|
|
||||
|
}); |
@ -1,104 +1,107 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
odoo.define('muk_web_theme.ListRenderer', function (require) { |
|
||||
"use strict"; |
|
||||
|
|
||||
var dom = require('web.dom'); |
|
||||
var core = require('web.core'); |
|
||||
var config = require("web.config"); |
|
||||
|
|
||||
var ListRenderer = require('web.ListRenderer'); |
|
||||
|
|
||||
var _t = core._t; |
|
||||
var QWeb = core.qweb; |
|
||||
|
|
||||
ListRenderer.include({ |
|
||||
_range_history: [], |
|
||||
_render: function() { |
|
||||
var res = this._super.apply(this, arguments); |
|
||||
this.$table = this.$el.find('.o_list_view'); |
|
||||
return res; |
|
||||
}, |
|
||||
_getRangeSelection: function() { |
|
||||
var self = this; |
|
||||
var start = null, end = null; |
|
||||
this.$el.find('td.o_list_record_selector input').each(function (i, el) { |
|
||||
var id = $(el).closest('tr').data('id'); |
|
||||
var checked = self._range_history.indexOf(id) !== -1; |
|
||||
if (checked && $(el).is(':checked')) { |
|
||||
if (start == null) { |
|
||||
start = i; |
|
||||
} else { |
|
||||
end = i; |
|
||||
} |
|
||||
} |
|
||||
}); |
|
||||
var new_range = this._getSelectionByRange(start, end); |
|
||||
var current_selection = this.selection; |
|
||||
current_selection = _.uniq(current_selection.concat(new_range)); |
|
||||
return current_selection; |
|
||||
}, |
|
||||
_getSelectionByRange: function(start, end) { |
|
||||
var result = []; |
|
||||
this.$el.find('td.o_list_record_selector input').closest('tr').each(function (i, el) { |
|
||||
var record_id = $(el).data('id'); |
|
||||
if (start != null && end != null && i >= start && i <= end) { |
|
||||
result.push(record_id); |
|
||||
} else if(start != null && end == null && start == i) { |
|
||||
result.push(record_id); |
|
||||
} |
|
||||
}); |
|
||||
return result; |
|
||||
}, |
|
||||
_pushRangeHistory: function(id) { |
|
||||
if (this._range_history.length === 2) { |
|
||||
this._range_history = []; |
|
||||
} |
|
||||
this._range_history.push(id); |
|
||||
}, |
|
||||
_deselectTable: function() { |
|
||||
window.getSelection().removeAllRanges(); |
|
||||
}, |
|
||||
_onSelectRecord: function(event) { |
|
||||
var res = this._super.apply(this, arguments); |
|
||||
var element = $(event.currentTarget); |
|
||||
if (/firefox/i.test(navigator.userAgent) && event.shiftKey) { |
|
||||
element.find('input').prop('checked', !element.find('input').prop('checked')); |
|
||||
} |
|
||||
if (element.find('input').prop('checked')) { |
|
||||
this._pushRangeHistory(element.closest('tr').data('id')); |
|
||||
} |
|
||||
if (event.shiftKey) { |
|
||||
var selection = this._getRangeSelection(); |
|
||||
var $rows = this.$el.find('td.o_list_record_selector input').closest('tr'); |
|
||||
$rows.each(function () { |
|
||||
var record_id = $(this).data('id'); |
|
||||
if (selection.indexOf(record_id) !== -1) { |
|
||||
$(this).find('td.o_list_record_selector input').prop('checked', true); |
|
||||
} |
|
||||
}); |
|
||||
this._updateSelection(); |
|
||||
this._deselectTable(); |
|
||||
} |
|
||||
return res; |
|
||||
} |
|
||||
}); |
|
||||
|
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at).
|
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
odoo.define('muk_web_theme.ListRenderer', function (require) { |
||||
|
"use strict"; |
||||
|
|
||||
|
var dom = require('web.dom'); |
||||
|
var core = require('web.core'); |
||||
|
var config = require("web.config"); |
||||
|
|
||||
|
var ListRenderer = require('web.ListRenderer'); |
||||
|
|
||||
|
var _t = core._t; |
||||
|
var QWeb = core.qweb; |
||||
|
|
||||
|
ListRenderer.include({ |
||||
|
_range_history: [], |
||||
|
_render: function() { |
||||
|
var res = this._super.apply(this, arguments); |
||||
|
this.$table = this.$el.find('.o_list_view'); |
||||
|
return res; |
||||
|
}, |
||||
|
_getRangeSelection: function() { |
||||
|
var self = this; |
||||
|
var start = null, end = null; |
||||
|
this.$el.find('td.o_list_record_selector input').each(function (i, el) { |
||||
|
var id = $(el).closest('tr').data('id'); |
||||
|
var checked = self._range_history.indexOf(id) !== -1; |
||||
|
if (checked && $(el).is(':checked')) { |
||||
|
if (start == null) { |
||||
|
start = i; |
||||
|
} else { |
||||
|
end = i; |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
var new_range = this._getSelectionByRange(start, end); |
||||
|
var current_selection = this.selection; |
||||
|
current_selection = _.uniq(current_selection.concat(new_range)); |
||||
|
return current_selection; |
||||
|
}, |
||||
|
_getSelectionByRange: function(start, end) { |
||||
|
var result = []; |
||||
|
this.$el.find('td.o_list_record_selector input').closest('tr').each(function (i, el) { |
||||
|
var record_id = $(el).data('id'); |
||||
|
if (start != null && end != null && i >= start && i <= end) { |
||||
|
result.push(record_id); |
||||
|
} else if(start != null && end == null && start == i) { |
||||
|
result.push(record_id); |
||||
|
} |
||||
|
}); |
||||
|
return result; |
||||
|
}, |
||||
|
_pushRangeHistory: function(id) { |
||||
|
if (this._range_history.length === 2) { |
||||
|
this._range_history = []; |
||||
|
} |
||||
|
this._range_history.push(id); |
||||
|
}, |
||||
|
_deselectTable: function() { |
||||
|
window.getSelection().removeAllRanges(); |
||||
|
}, |
||||
|
_onSelectRecord: function(event) { |
||||
|
var res = this._super.apply(this, arguments); |
||||
|
var element = $(event.currentTarget); |
||||
|
if (/firefox/i.test(navigator.userAgent) && event.shiftKey) { |
||||
|
element.find('input').prop('checked', !element.find('input').prop('checked')); |
||||
|
} |
||||
|
if (element.find('input').prop('checked')) { |
||||
|
this._pushRangeHistory(element.closest('tr').data('id')); |
||||
|
} |
||||
|
if (event.shiftKey) { |
||||
|
var selection = this._getRangeSelection(); |
||||
|
var $rows = this.$el.find('td.o_list_record_selector input').closest('tr'); |
||||
|
$rows.each(function () { |
||||
|
var record_id = $(this).data('id'); |
||||
|
if (selection.indexOf(record_id) !== -1) { |
||||
|
$(this).find('td.o_list_record_selector input').prop('checked', true); |
||||
|
} |
||||
|
}); |
||||
|
this._updateSelection(); |
||||
|
this._deselectTable(); |
||||
|
} |
||||
|
return res; |
||||
|
} |
||||
|
}); |
||||
|
|
||||
}); |
}); |
@ -1,40 +1,43 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
odoo.define('muk_web_theme.SearchView', function (require) { |
|
||||
"use strict"; |
|
||||
|
|
||||
var core = require('web.core'); |
|
||||
var config = require("web.config"); |
|
||||
|
|
||||
var SearchView = require('web.SearchView'); |
|
||||
|
|
||||
var _t = core._t; |
|
||||
var QWeb = core.qweb; |
|
||||
|
|
||||
SearchView.include({ |
|
||||
start: function () { |
|
||||
if (config.device.isMobile) { |
|
||||
this.$('.o_enable_searchview').text(_t("Search")); |
|
||||
} |
|
||||
return this._super.apply(this, arguments); |
|
||||
}, |
|
||||
}); |
|
||||
|
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at).
|
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
odoo.define('muk_web_theme.SearchView', function (require) { |
||||
|
"use strict"; |
||||
|
|
||||
|
var core = require('web.core'); |
||||
|
var config = require("web.config"); |
||||
|
|
||||
|
var SearchView = require('web.SearchView'); |
||||
|
|
||||
|
var _t = core._t; |
||||
|
var QWeb = core.qweb; |
||||
|
|
||||
|
SearchView.include({ |
||||
|
start: function () { |
||||
|
if (config.device.isMobile) { |
||||
|
this.$('.o_enable_searchview').text(_t("Search")); |
||||
|
} |
||||
|
return this._super.apply(this, arguments); |
||||
|
}, |
||||
|
}); |
||||
|
|
||||
}); |
}); |
@ -1,115 +1,118 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
.o_menu_apps { |
|
||||
.full { |
|
||||
width: 46px; |
|
||||
font-size: 18px; |
|
||||
text-align: center; |
|
||||
} |
|
||||
.dropdown-menu.show { |
|
||||
@include mk-full-screen-sections(); |
|
||||
align-content: flex-start; |
|
||||
overflow: inital; |
|
||||
display: flex; |
|
||||
flex-direction: row; |
|
||||
flex-wrap: wrap; |
|
||||
justify-content: flex-start; |
|
||||
@include media-breakpoint-up(lg) { |
|
||||
padding: { |
|
||||
left: 20vw; |
|
||||
right: 20vw; |
|
||||
} |
|
||||
} |
|
||||
.o_app { |
|
||||
display: flex; |
|
||||
margin-top: 20px; |
|
||||
align-items: center; |
|
||||
flex-direction: column; |
|
||||
justify-content: flex-start; |
|
||||
width: percentage(1/3); |
|
||||
@include media-breakpoint-up(sm) { |
|
||||
width: percentage(1/4); |
|
||||
} |
|
||||
@include media-breakpoint-up(md) { |
|
||||
width: percentage(1/6); |
|
||||
} |
|
||||
&:hover, &:focus, &:active, &.active { |
|
||||
background: none; |
|
||||
.o-app-icon { |
|
||||
box-shadow: 0 8px 15px -10px black; |
|
||||
transform: translateY(-1px); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
.has-results ~ .o_app { |
|
||||
display: none; |
|
||||
} |
|
||||
.o-app-icon { |
|
||||
height: auto; |
|
||||
max-width: 7rem; |
|
||||
width: 100%; |
|
||||
flex-basis: 0; |
|
||||
} |
|
||||
.o-app-name { |
|
||||
color: $mk-apps-color; |
|
||||
} |
|
||||
.form-row { |
|
||||
width: 100%; |
|
||||
} |
|
||||
.mk_search_container { |
|
||||
margin-top: 25px; |
|
||||
.mk_search_input { |
|
||||
input:focus { |
|
||||
box-shadow: none; |
|
||||
border: 1px solid $gray-400; |
|
||||
} |
|
||||
} |
|
||||
&.has-results { |
|
||||
height: 100%; |
|
||||
.mk_search_input { |
|
||||
height: 3em; |
|
||||
} |
|
||||
.mk_search_results { |
|
||||
height: calc(100% - 3em); |
|
||||
.mk_menu_search_result { |
|
||||
display: block; |
|
||||
cursor: pointer; |
|
||||
align-items: center; |
|
||||
padding-left: 3rem; |
|
||||
padding-right: 1rem; |
|
||||
background-position: left; |
|
||||
background-repeat: no-repeat; |
|
||||
background-size: contain; |
|
||||
white-space: nowrap; |
|
||||
overflow: hidden; |
|
||||
text-overflow: ellipsis; |
|
||||
color: $mk-apps-color; |
|
||||
&:hover, &:active, &.active { |
|
||||
background-color: rgba(255, 255, 255, 0.05); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@include media-breakpoint-down(md) { |
|
||||
padding-right: 5px; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at). |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
.o_menu_apps { |
||||
|
.full { |
||||
|
width: 46px; |
||||
|
font-size: 18px; |
||||
|
text-align: center; |
||||
|
} |
||||
|
.dropdown-menu.show { |
||||
|
@include mk-full-screen-sections(); |
||||
|
align-content: flex-start; |
||||
|
overflow: inital; |
||||
|
display: flex; |
||||
|
flex-direction: row; |
||||
|
flex-wrap: wrap; |
||||
|
justify-content: flex-start; |
||||
|
@include media-breakpoint-up(lg) { |
||||
|
padding: { |
||||
|
left: 20vw; |
||||
|
right: 20vw; |
||||
|
} |
||||
|
} |
||||
|
.o_app { |
||||
|
display: flex; |
||||
|
margin-top: 20px; |
||||
|
align-items: center; |
||||
|
flex-direction: column; |
||||
|
justify-content: flex-start; |
||||
|
width: percentage(1/3); |
||||
|
@include media-breakpoint-up(sm) { |
||||
|
width: percentage(1/4); |
||||
|
} |
||||
|
@include media-breakpoint-up(md) { |
||||
|
width: percentage(1/6); |
||||
|
} |
||||
|
&:hover, &:focus, &:active, &.active { |
||||
|
background: none; |
||||
|
.o-app-icon { |
||||
|
box-shadow: 0 8px 15px -10px black; |
||||
|
transform: translateY(-1px); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.has-results ~ .o_app { |
||||
|
display: none; |
||||
|
} |
||||
|
.o-app-icon { |
||||
|
height: auto; |
||||
|
max-width: 7rem; |
||||
|
width: 100%; |
||||
|
flex-basis: 0; |
||||
|
} |
||||
|
.o-app-name { |
||||
|
color: $mk-apps-color; |
||||
|
} |
||||
|
.form-row { |
||||
|
width: 100%; |
||||
|
} |
||||
|
.mk_search_container { |
||||
|
margin-top: 25px; |
||||
|
.mk_search_input { |
||||
|
input:focus { |
||||
|
box-shadow: none; |
||||
|
border: 1px solid $gray-400; |
||||
|
} |
||||
|
} |
||||
|
&.has-results { |
||||
|
height: 100%; |
||||
|
.mk_search_input { |
||||
|
height: 3em; |
||||
|
} |
||||
|
.mk_search_results { |
||||
|
height: calc(100% - 3em); |
||||
|
.mk_menu_search_result { |
||||
|
display: block; |
||||
|
cursor: pointer; |
||||
|
align-items: center; |
||||
|
padding-left: 3rem; |
||||
|
padding-right: 1rem; |
||||
|
background-position: left; |
||||
|
background-repeat: no-repeat; |
||||
|
background-size: contain; |
||||
|
white-space: nowrap; |
||||
|
overflow: hidden; |
||||
|
text-overflow: ellipsis; |
||||
|
color: $mk-apps-color; |
||||
|
&:hover, &:active, &.active { |
||||
|
background-color: rgba(255, 255, 255, 0.05); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
@include media-breakpoint-down(md) { |
||||
|
padding-right: 5px; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
} |
} |
@ -1,32 +1,35 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
$o-brand-odoo: #243742; |
|
||||
$o-brand-primary: #5D8DA8; |
|
||||
|
|
||||
$mk-required-color: #d1dfe6; |
|
||||
|
|
||||
$mk-apps-color: #f8f9fa; |
|
||||
|
|
||||
$mk-appbar-color: #dee2e6; |
|
||||
$mk-appbar-background: #000000; |
|
||||
|
|
||||
$mk-brand-gradient-start: lighten($o-brand-odoo, 10%); |
|
||||
$mk-brand-gradient-end: lighten($o-brand-odoo, 20%); |
|
||||
|
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at). |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
$o-brand-odoo: #243742; |
||||
|
$o-brand-primary: #5D8DA8; |
||||
|
|
||||
|
$mk-required-color: #d1dfe6; |
||||
|
|
||||
|
$mk-apps-color: #f8f9fa; |
||||
|
|
||||
|
$mk-appbar-color: #dee2e6; |
||||
|
$mk-appbar-background: #000000; |
||||
|
|
||||
|
$mk-brand-gradient-start: lighten($o-brand-odoo, 10%); |
||||
|
$mk-brand-gradient-end: lighten($o-brand-odoo, 20%); |
||||
|
|
@ -1,37 +1,40 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
.o_field_widget { |
|
||||
&.o_field_many2one .o_external_button { |
|
||||
color: $o-brand-odoo |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
.o_required_modifier { |
|
||||
&.o_input, .o_input { |
|
||||
background-color: $mk-required-color !important; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
@include media-breakpoint-down(sm) { |
|
||||
.o_form_view .mk_mobile_add { |
|
||||
margin-left: 0 !important; |
|
||||
margin-bottom: 10px !important; |
|
||||
} |
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at). |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
.o_field_widget { |
||||
|
&.o_field_many2one .o_external_button { |
||||
|
color: $o-brand-odoo |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.o_required_modifier { |
||||
|
&.o_input, .o_input { |
||||
|
background-color: $mk-required-color !important; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@include media-breakpoint-down(sm) { |
||||
|
.o_form_view .mk_mobile_add { |
||||
|
margin-left: 0 !important; |
||||
|
margin-bottom: 10px !important; |
||||
|
} |
||||
} |
} |
@ -1,57 +1,60 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
$font-path-noto: '../fonts/Noto'; |
|
||||
$font-path-roboto: '../fonts/Roboto'; |
|
||||
|
|
||||
@mixin mk-roboto-font-face($name, $weight, $style) { |
|
||||
@font-face { |
|
||||
font-family: 'Noto'; |
|
||||
src: url('#{$font-path-noto}/Noto-#{$name}.eot'); |
|
||||
src: url('#{$font-path-noto}/Noto-#{$name}.eot?#iefix') format('embedded-opentype'), |
|
||||
url('#{$font-path-noto}/Noto-#{$name}.woff') format('woff'), |
|
||||
url('#{$font-path-noto}/Noto-#{$name}.ttf') format('truetype'), |
|
||||
url('#{$font-path-noto}/Noto-#{$name}.svg#Noto') format('svg'); |
|
||||
font-weight: $weight; |
|
||||
font-style: $style; |
|
||||
} |
|
||||
@font-face { |
|
||||
font-family: 'Roboto'; |
|
||||
src: url('#{$font-path-roboto}/Roboto-#{$name}.eot'); |
|
||||
src: url('#{$font-path-roboto}/Roboto-#{$name}.eot?#iefix') format('embedded-opentype'), |
|
||||
url('#{$font-path-roboto}/Roboto-#{$name}.woff') format('woff'), |
|
||||
url('#{$font-path-roboto}/Roboto-#{$name}.ttf') format('truetype'), |
|
||||
url('#{$font-path-roboto}/Roboto-#{$name}.svg#Roboto') format('svg'); |
|
||||
font-weight: $weight; |
|
||||
font-style: $style; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
@include mk-roboto-font-face('Thin', 100, normal); |
|
||||
@include mk-roboto-font-face('ThinItalic', 100, italic); |
|
||||
@include mk-roboto-font-face('Light', 300, normal); |
|
||||
@include mk-roboto-font-face('LightItalic', 300, italic); |
|
||||
@include mk-roboto-font-face('Regular', 400, normal); |
|
||||
@include mk-roboto-font-face('Italic', 400, italic); |
|
||||
@include mk-roboto-font-face('Medium', 500, normal); |
|
||||
@include mk-roboto-font-face('MediumItalic', 500, italic); |
|
||||
@include mk-roboto-font-face('Bold', 700, normal); |
|
||||
@include mk-roboto-font-face('BoldItalic', 700, italic); |
|
||||
@include mk-roboto-font-face('Black', 900, normal); |
|
||||
@include mk-roboto-font-face('BlackItalic', 900, italic); |
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at). |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
$font-path-noto: '../fonts/Noto'; |
||||
|
$font-path-roboto: '../fonts/Roboto'; |
||||
|
|
||||
|
@mixin mk-roboto-font-face($name, $weight, $style) { |
||||
|
@font-face { |
||||
|
font-family: 'Noto'; |
||||
|
src: url('#{$font-path-noto}/Noto-#{$name}.eot'); |
||||
|
src: url('#{$font-path-noto}/Noto-#{$name}.eot?#iefix') format('embedded-opentype'), |
||||
|
url('#{$font-path-noto}/Noto-#{$name}.woff') format('woff'), |
||||
|
url('#{$font-path-noto}/Noto-#{$name}.ttf') format('truetype'), |
||||
|
url('#{$font-path-noto}/Noto-#{$name}.svg#Noto') format('svg'); |
||||
|
font-weight: $weight; |
||||
|
font-style: $style; |
||||
|
} |
||||
|
@font-face { |
||||
|
font-family: 'Roboto'; |
||||
|
src: url('#{$font-path-roboto}/Roboto-#{$name}.eot'); |
||||
|
src: url('#{$font-path-roboto}/Roboto-#{$name}.eot?#iefix') format('embedded-opentype'), |
||||
|
url('#{$font-path-roboto}/Roboto-#{$name}.woff') format('woff'), |
||||
|
url('#{$font-path-roboto}/Roboto-#{$name}.ttf') format('truetype'), |
||||
|
url('#{$font-path-roboto}/Roboto-#{$name}.svg#Roboto') format('svg'); |
||||
|
font-weight: $weight; |
||||
|
font-style: $style; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
@include mk-roboto-font-face('Thin', 100, normal); |
||||
|
@include mk-roboto-font-face('ThinItalic', 100, italic); |
||||
|
@include mk-roboto-font-face('Light', 300, normal); |
||||
|
@include mk-roboto-font-face('LightItalic', 300, italic); |
||||
|
@include mk-roboto-font-face('Regular', 400, normal); |
||||
|
@include mk-roboto-font-face('Italic', 400, italic); |
||||
|
@include mk-roboto-font-face('Medium', 500, normal); |
||||
|
@include mk-roboto-font-face('MediumItalic', 500, italic); |
||||
|
@include mk-roboto-font-face('Bold', 700, normal); |
||||
|
@include mk-roboto-font-face('BoldItalic', 700, italic); |
||||
|
@include mk-roboto-font-face('Black', 900, normal); |
||||
|
@include mk-roboto-font-face('BlackItalic', 900, italic); |
@ -1,191 +1,194 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
.o_form_view { |
|
||||
.o_form_sheet_bg { |
|
||||
background: $o-webclient-background-color; |
|
||||
border-bottom: 1px solid gray('300'); |
|
||||
> .o_form_sheet { |
|
||||
@include mk-container-widths(); |
|
||||
background-color: $o-view-background-color; |
|
||||
border: 1px solid gray('400'); |
|
||||
box-shadow: 0 5px 20px -15px black; |
|
||||
max-width: calc(100% - #{$o-horizontal-padding*2}); |
|
||||
} |
|
||||
.o_form_statusbar { |
|
||||
position: sticky; |
|
||||
z-index: 1; |
|
||||
top: 0; |
|
||||
} |
|
||||
.oe_button_box { |
|
||||
.btn.oe_stat_button > .o_button_icon { |
|
||||
color: $o-brand-odoo; |
|
||||
} |
|
||||
.btn.oe_stat_button > .o_stat_info { |
|
||||
padding-right: 3px; |
|
||||
} |
|
||||
&, & + .oe_avatar { |
|
||||
+ .oe_title { |
|
||||
max-width: calc(100% - 420px); |
|
||||
width: initial !important; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
.oe_title { |
|
||||
max-width: 100%; |
|
||||
width: initial; |
|
||||
|
|
||||
span { |
|
||||
max-width: 100%; |
|
||||
text-overflow: ellipsis; |
|
||||
white-space: nowrap; |
|
||||
overflow: hidden; |
|
||||
width: initial; |
|
||||
} |
|
||||
span:active { |
|
||||
white-space: normal; |
|
||||
} |
|
||||
} |
|
||||
.o_notebook { |
|
||||
.nav-tabs { |
|
||||
overflow-x : auto; |
|
||||
overflow-y: hidden; |
|
||||
flex-flow: nowrap; |
|
||||
.nav-item { |
|
||||
white-space: nowrap; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@include media-breakpoint-down(sm) { |
|
||||
.o_form_sheet, .oe_chatter { |
|
||||
min-width: 100% !important; |
|
||||
max-width: 100% !important; |
|
||||
} |
|
||||
.o_group { |
|
||||
@for $i from 1 through $o-form-group-cols { |
|
||||
.o_group_col_#{$i} { |
|
||||
width: 100% !important; |
|
||||
} |
|
||||
} |
|
||||
.o_field_widget.o_text_overflow { |
|
||||
width: auto !important; |
|
||||
} |
|
||||
} |
|
||||
.o_statusbar_buttons_dropdown { |
|
||||
border: { |
|
||||
bottom: 0; |
|
||||
radius: 0; |
|
||||
top: 0; |
|
||||
} |
|
||||
height: 100%; |
|
||||
} |
|
||||
.o_statusbar_buttons > .btn { |
|
||||
border-radius: 0; |
|
||||
border: 0; |
|
||||
width: 100%; |
|
||||
margin-bottom: 0.2rem; |
|
||||
&:last-child { |
|
||||
margin-bottom: 0; |
|
||||
} |
|
||||
} |
|
||||
.o_statusbar_status { |
|
||||
.o_arrow_button:first-child::before { |
|
||||
content: none; |
|
||||
display: none; |
|
||||
} |
|
||||
} |
|
||||
.app_settings_block { |
|
||||
.row { |
|
||||
margin: 0; |
|
||||
} |
|
||||
} |
|
||||
.o_notebook .nav-tabs { |
|
||||
&::-webkit-scrollbar { |
|
||||
display: none; |
|
||||
} |
|
||||
} |
|
||||
.o_cp_buttons { |
|
||||
width: 100%; |
|
||||
div, .o-kanban-button-new { |
|
||||
width: 100%; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@include media-breakpoint-down(xs) { |
|
||||
.oe_button_box { |
|
||||
float: none; |
|
||||
display: block; |
|
||||
border-radius: 0; |
|
||||
text-align: right; |
|
||||
margin-top: -17px; |
|
||||
margin-bottom: $o-sheet-vpadding; |
|
||||
margin-left: -$o-horizontal-padding; |
|
||||
width: calc(100% + #{$o-horizontal-padding*2}); |
|
||||
border-top: 1px solid $o-form-lightsecondary; |
|
||||
border-bottom: 1px solid $o-form-lightsecondary; |
|
||||
> .btn.oe_stat_button { |
|
||||
border: none; |
|
||||
background: none; |
|
||||
flex: 0 0 auto !important; |
|
||||
width: percentage(1/3) !important; |
|
||||
border-right: 1px solid $o-form-lightsecondary; |
|
||||
} |
|
||||
> .btn.o_button_more { |
|
||||
flex: 1 1 auto !important; |
|
||||
border-right: none; |
|
||||
} |
|
||||
> .o_dropdown_more { |
|
||||
flex: 0 0 auto !important; |
|
||||
width: percentage(1/3) !important; |
|
||||
} |
|
||||
&, & + .oe_avatar { |
|
||||
+ .oe_title { |
|
||||
width: 100%; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
.oe_title { |
|
||||
width: 100% !important; |
|
||||
max-width: 100% !important; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
.mk_chatter_position_sided { |
|
||||
@include media-breakpoint-up(xxl, $o-extra-grid-breakpoints) { |
|
||||
.o_form_view:not(.o_form_nosheet) { |
|
||||
display: flex; |
|
||||
flex-flow: row nowrap; |
|
||||
height: 100%; |
|
||||
.o_form_sheet_bg { |
|
||||
min-width: $mk-form-min-width; |
|
||||
flex: 1 1 auto; |
|
||||
overflow: auto; |
|
||||
} |
|
||||
> .o_chatter { |
|
||||
flex: 1 1 auto; |
|
||||
overflow: auto; |
|
||||
min-width: $mk-chatter-min-width; |
|
||||
max-width: $mk-chatter-max-width; |
|
||||
border-left: 1px solid gray('400'); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at). |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
.o_form_view { |
||||
|
.o_form_sheet_bg { |
||||
|
background: $o-webclient-background-color; |
||||
|
border-bottom: 1px solid gray('300'); |
||||
|
> .o_form_sheet { |
||||
|
@include mk-container-widths(); |
||||
|
background-color: $o-view-background-color; |
||||
|
border: 1px solid gray('400'); |
||||
|
box-shadow: 0 5px 20px -15px black; |
||||
|
max-width: calc(100% - #{$o-horizontal-padding*2}); |
||||
|
} |
||||
|
.o_form_statusbar { |
||||
|
position: sticky; |
||||
|
z-index: 1; |
||||
|
top: 0; |
||||
|
} |
||||
|
.oe_button_box { |
||||
|
.btn.oe_stat_button > .o_button_icon { |
||||
|
color: $o-brand-odoo; |
||||
|
} |
||||
|
.btn.oe_stat_button > .o_stat_info { |
||||
|
padding-right: 3px; |
||||
|
} |
||||
|
&, & + .oe_avatar { |
||||
|
+ .oe_title { |
||||
|
max-width: calc(100% - 420px); |
||||
|
width: initial !important; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.oe_title { |
||||
|
max-width: 100%; |
||||
|
width: initial; |
||||
|
|
||||
|
span { |
||||
|
max-width: 100%; |
||||
|
text-overflow: ellipsis; |
||||
|
white-space: nowrap; |
||||
|
overflow: hidden; |
||||
|
width: initial; |
||||
|
} |
||||
|
span:active { |
||||
|
white-space: normal; |
||||
|
} |
||||
|
} |
||||
|
.o_notebook { |
||||
|
.nav-tabs { |
||||
|
overflow-x : auto; |
||||
|
overflow-y: hidden; |
||||
|
flex-flow: nowrap; |
||||
|
.nav-item { |
||||
|
white-space: nowrap; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
@include media-breakpoint-down(sm) { |
||||
|
.o_form_sheet, .oe_chatter { |
||||
|
min-width: 100% !important; |
||||
|
max-width: 100% !important; |
||||
|
} |
||||
|
.o_group { |
||||
|
@for $i from 1 through $o-form-group-cols { |
||||
|
.o_group_col_#{$i} { |
||||
|
width: 100% !important; |
||||
|
} |
||||
|
} |
||||
|
.o_field_widget.o_text_overflow { |
||||
|
width: auto !important; |
||||
|
} |
||||
|
} |
||||
|
.o_statusbar_buttons_dropdown { |
||||
|
border: { |
||||
|
bottom: 0; |
||||
|
radius: 0; |
||||
|
top: 0; |
||||
|
} |
||||
|
height: 100%; |
||||
|
} |
||||
|
.o_statusbar_buttons > .btn { |
||||
|
border-radius: 0; |
||||
|
border: 0; |
||||
|
width: 100%; |
||||
|
margin-bottom: 0.2rem; |
||||
|
&:last-child { |
||||
|
margin-bottom: 0; |
||||
|
} |
||||
|
} |
||||
|
.o_statusbar_status { |
||||
|
.o_arrow_button:first-child::before { |
||||
|
content: none; |
||||
|
display: none; |
||||
|
} |
||||
|
} |
||||
|
.app_settings_block { |
||||
|
.row { |
||||
|
margin: 0; |
||||
|
} |
||||
|
} |
||||
|
.o_notebook .nav-tabs { |
||||
|
&::-webkit-scrollbar { |
||||
|
display: none; |
||||
|
} |
||||
|
} |
||||
|
.o_cp_buttons { |
||||
|
width: 100%; |
||||
|
div, .o-kanban-button-new { |
||||
|
width: 100%; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
@include media-breakpoint-down(xs) { |
||||
|
.oe_button_box { |
||||
|
float: none; |
||||
|
display: block; |
||||
|
border-radius: 0; |
||||
|
text-align: right; |
||||
|
margin-top: -17px; |
||||
|
margin-bottom: $o-sheet-vpadding; |
||||
|
margin-left: -$o-horizontal-padding; |
||||
|
width: calc(100% + #{$o-horizontal-padding*2}); |
||||
|
border-top: 1px solid $o-form-lightsecondary; |
||||
|
border-bottom: 1px solid $o-form-lightsecondary; |
||||
|
> .btn.oe_stat_button { |
||||
|
border: none; |
||||
|
background: none; |
||||
|
flex: 0 0 auto !important; |
||||
|
width: percentage(1/3) !important; |
||||
|
border-right: 1px solid $o-form-lightsecondary; |
||||
|
} |
||||
|
> .btn.o_button_more { |
||||
|
flex: 1 1 auto !important; |
||||
|
border-right: none; |
||||
|
} |
||||
|
> .o_dropdown_more { |
||||
|
flex: 0 0 auto !important; |
||||
|
width: percentage(1/3) !important; |
||||
|
} |
||||
|
&, & + .oe_avatar { |
||||
|
+ .oe_title { |
||||
|
width: 100%; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.oe_title { |
||||
|
width: 100% !important; |
||||
|
max-width: 100% !important; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.mk_chatter_position_sided { |
||||
|
@include media-breakpoint-up(xxl, $o-extra-grid-breakpoints) { |
||||
|
.o_form_view:not(.o_form_nosheet) { |
||||
|
display: flex; |
||||
|
flex-flow: row nowrap; |
||||
|
height: 100%; |
||||
|
.o_form_sheet_bg { |
||||
|
min-width: $mk-form-min-width; |
||||
|
flex: 1 1 auto; |
||||
|
overflow: auto; |
||||
|
} |
||||
|
> .o_chatter { |
||||
|
flex: 1 1 auto; |
||||
|
overflow: auto; |
||||
|
min-width: $mk-chatter-min-width; |
||||
|
max-width: $mk-chatter-max-width; |
||||
|
border-left: 1px solid gray('400'); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
} |
} |
@ -1,72 +1,75 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
//---------------------------------------------------------- |
|
||||
// Helper |
|
||||
//---------------------------------------------------------- |
|
||||
|
|
||||
$mk-brand-gradient: linear-gradient(to right bottom, $mk-brand-gradient-start, $mk-brand-gradient-end); |
|
||||
|
|
||||
//---------------------------------------------------------- |
|
||||
// Web Client |
|
||||
//---------------------------------------------------------- |
|
||||
|
|
||||
.o_web_client { |
|
||||
.o_main .o_main_content { |
|
||||
@include media-breakpoint-down(sm) { |
|
||||
overflow: auto; |
|
||||
.o_content { |
|
||||
overflow: initial; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
.o_loading { |
|
||||
position: fixed; |
|
||||
right: 0; |
|
||||
bottom: 0; |
|
||||
color: white; |
|
||||
padding: 5px; |
|
||||
opacity: 0.8; |
|
||||
z-index: 1052; |
|
||||
border-radius: 0; |
|
||||
background-color: $o-brand-odoo; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
.oe_wait { |
|
||||
cursor: progress; |
|
||||
} |
|
||||
|
|
||||
//---------------------------------------------------------- |
|
||||
// Views |
|
||||
//---------------------------------------------------------- |
|
||||
|
|
||||
.o_content, .modal-content { |
|
||||
max-width: 100%; |
|
||||
} |
|
||||
|
|
||||
//---------------------------------------------------------- |
|
||||
// Tooltips |
|
||||
//---------------------------------------------------------- |
|
||||
|
|
||||
.o_tooltip { |
|
||||
&.o_animated { |
|
||||
display: none; |
|
||||
} |
|
||||
} |
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at). |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
//---------------------------------------------------------- |
||||
|
// Helper |
||||
|
//---------------------------------------------------------- |
||||
|
|
||||
|
$mk-brand-gradient: linear-gradient(to right bottom, $mk-brand-gradient-start, $mk-brand-gradient-end); |
||||
|
|
||||
|
//---------------------------------------------------------- |
||||
|
// Web Client |
||||
|
//---------------------------------------------------------- |
||||
|
|
||||
|
.o_web_client { |
||||
|
.o_main .o_main_content { |
||||
|
@include media-breakpoint-down(sm) { |
||||
|
overflow: auto; |
||||
|
.o_content { |
||||
|
overflow: initial; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.o_loading { |
||||
|
position: fixed; |
||||
|
right: 0; |
||||
|
bottom: 0; |
||||
|
color: white; |
||||
|
padding: 5px; |
||||
|
opacity: 0.8; |
||||
|
z-index: 1052; |
||||
|
border-radius: 0; |
||||
|
background-color: $o-brand-odoo; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
.oe_wait { |
||||
|
cursor: progress; |
||||
|
} |
||||
|
|
||||
|
//---------------------------------------------------------- |
||||
|
// Views |
||||
|
//---------------------------------------------------------- |
||||
|
|
||||
|
.o_content, .modal-content { |
||||
|
max-width: 100%; |
||||
|
} |
||||
|
|
||||
|
//---------------------------------------------------------- |
||||
|
// Tooltips |
||||
|
//---------------------------------------------------------- |
||||
|
|
||||
|
.o_tooltip { |
||||
|
&.o_animated { |
||||
|
display: none; |
||||
|
} |
||||
|
} |
@ -1,42 +1,45 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
@mixin mk-full-screen-sections { |
|
||||
width: 100vw; |
|
||||
z-index: 1002; |
|
||||
display: flex; |
|
||||
flex-direction: column; |
|
||||
height: calc(100vh - #{$o-navbar-height}); |
|
||||
max-height: calc(100vh - #{$o-navbar-height}); |
|
||||
top: $o-navbar-height !important; |
|
||||
transform: none !important; |
|
||||
position: fixed !important; |
|
||||
overflow-x: hidden; |
|
||||
overflow-y: auto; |
|
||||
box-shadow: none; |
|
||||
border: none; |
|
||||
} |
|
||||
|
|
||||
@mixin mk-container-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) { |
|
||||
@each $breakpoint, $container-max-width in $max-widths { |
|
||||
@include media-breakpoint-up($breakpoint, $breakpoints) { |
|
||||
width: $container-max-width; |
|
||||
} |
|
||||
} |
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at). |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
@mixin mk-full-screen-sections { |
||||
|
width: 100vw; |
||||
|
z-index: 1002; |
||||
|
display: flex; |
||||
|
flex-direction: column; |
||||
|
height: calc(100vh - #{$o-navbar-height}); |
||||
|
max-height: calc(100vh - #{$o-navbar-height}); |
||||
|
top: $o-navbar-height !important; |
||||
|
transform: none !important; |
||||
|
position: fixed !important; |
||||
|
overflow-x: hidden; |
||||
|
overflow-y: auto; |
||||
|
box-shadow: none; |
||||
|
border: none; |
||||
|
} |
||||
|
|
||||
|
@mixin mk-container-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) { |
||||
|
@each $breakpoint, $container-max-width in $max-widths { |
||||
|
@include media-breakpoint-up($breakpoint, $breakpoints) { |
||||
|
width: $container-max-width; |
||||
|
} |
||||
|
} |
||||
} |
} |
@ -1,123 +1,126 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
@include media-breakpoint-down(sm) { |
|
||||
.o_main_navbar { |
|
||||
display: flex; |
|
||||
> .dropdown { |
|
||||
display: flex; |
|
||||
.navbar-toggler { |
|
||||
color: white; |
|
||||
} |
|
||||
.o_menu_sections, .o_menu_systray { |
|
||||
padding: 0; |
|
||||
} |
|
||||
} |
|
||||
.o_menu_systray { |
|
||||
margin-left: auto; |
|
||||
} |
|
||||
.o_debug_manager { |
|
||||
.dropdown-menu.show { |
|
||||
@include mk-full-screen-sections(); |
|
||||
} |
|
||||
} |
|
||||
.o_user_menu, .o_switch_company_menu { |
|
||||
> .dropdown-toggle { |
|
||||
padding: 0 10px; |
|
||||
white-space: nowrap; |
|
||||
&::before, &::after { |
|
||||
content: normal; |
|
||||
} |
|
||||
} |
|
||||
.dropdown-menu.show { |
|
||||
@include mk-full-screen-sections(); |
|
||||
} |
|
||||
} |
|
||||
.o_user_menu img { |
|
||||
margin-bottom: 3px; |
|
||||
} |
|
||||
.o_menu_brand, .o_menu_sections, .oe_topbar_name { |
|
||||
display: none; |
|
||||
} |
|
||||
.o-menu-toggle { |
|
||||
cursor: pointer; |
|
||||
padding: 0 $o-horizontal-padding; |
|
||||
} |
|
||||
.o_mail_systray_dropdown.show { |
|
||||
@include mk-full-screen-sections(); |
|
||||
.o_mail_preview_image { |
|
||||
align-items: center; |
|
||||
display: flex; |
|
||||
flex-direction: row; |
|
||||
img { |
|
||||
display: block; |
|
||||
height: auto; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
.dropdown-menu .dropdown-item { |
|
||||
padding: { |
|
||||
bottom: 0.5rem; |
|
||||
top: 0.5rem; |
|
||||
} |
|
||||
} |
|
||||
.o_menu_sections.show { |
|
||||
@include mk-full-screen-sections(); |
|
||||
background: $mk-brand-gradient; |
|
||||
.dropdown-toggle, .dropdown-item { |
|
||||
padding: 0; |
|
||||
color: white; |
|
||||
height: 46px; |
|
||||
line-height: 46px; |
|
||||
background: none; |
|
||||
span { |
|
||||
padding-left: 15px; |
|
||||
font-size: initial; |
|
||||
} |
|
||||
} |
|
||||
.mk_menu_mobile_section { |
|
||||
.fa { |
|
||||
padding-top: 14px; |
|
||||
padding-right: 15px; |
|
||||
} |
|
||||
.dropdown-menu { |
|
||||
padding: 0; |
|
||||
width: 100%; |
|
||||
border: none; |
|
||||
min-width: auto; |
|
||||
box-shadow: none; |
|
||||
background: none; |
|
||||
position: static; |
|
||||
overflow: visible; |
|
||||
} |
|
||||
@for $index from 1 through 5 { |
|
||||
.o_menu_entry_lvl_#{$index} { |
|
||||
margin-left: ($index - 1) * 1.5rem; |
|
||||
} |
|
||||
} |
|
||||
@for $index from 2 through 5 { |
|
||||
.o_menu_header_lvl_#{$index} { |
|
||||
margin-left: ($index - 1) * 1.5rem; |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
} |
|
||||
} |
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at). |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
@include media-breakpoint-down(sm) { |
||||
|
.o_main_navbar { |
||||
|
display: flex; |
||||
|
> .dropdown { |
||||
|
display: flex; |
||||
|
.navbar-toggler { |
||||
|
color: white; |
||||
|
} |
||||
|
.o_menu_sections, .o_menu_systray { |
||||
|
padding: 0; |
||||
|
} |
||||
|
} |
||||
|
.o_menu_systray { |
||||
|
margin-left: auto; |
||||
|
} |
||||
|
.o_debug_manager { |
||||
|
.dropdown-menu.show { |
||||
|
@include mk-full-screen-sections(); |
||||
|
} |
||||
|
} |
||||
|
.o_user_menu, .o_switch_company_menu { |
||||
|
> .dropdown-toggle { |
||||
|
padding: 0 10px; |
||||
|
white-space: nowrap; |
||||
|
&::before, &::after { |
||||
|
content: normal; |
||||
|
} |
||||
|
} |
||||
|
.dropdown-menu.show { |
||||
|
@include mk-full-screen-sections(); |
||||
|
} |
||||
|
} |
||||
|
.o_user_menu img { |
||||
|
margin-bottom: 3px; |
||||
|
} |
||||
|
.o_menu_brand, .o_menu_sections, .oe_topbar_name { |
||||
|
display: none; |
||||
|
} |
||||
|
.o-menu-toggle { |
||||
|
cursor: pointer; |
||||
|
padding: 0 $o-horizontal-padding; |
||||
|
} |
||||
|
.o_mail_systray_dropdown.show { |
||||
|
@include mk-full-screen-sections(); |
||||
|
.o_mail_preview_image { |
||||
|
align-items: center; |
||||
|
display: flex; |
||||
|
flex-direction: row; |
||||
|
img { |
||||
|
display: block; |
||||
|
height: auto; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
.dropdown-menu .dropdown-item { |
||||
|
padding: { |
||||
|
bottom: 0.5rem; |
||||
|
top: 0.5rem; |
||||
|
} |
||||
|
} |
||||
|
.o_menu_sections.show { |
||||
|
@include mk-full-screen-sections(); |
||||
|
background: $mk-brand-gradient; |
||||
|
.dropdown-toggle, .dropdown-item { |
||||
|
padding: 0; |
||||
|
color: white; |
||||
|
height: 46px; |
||||
|
line-height: 46px; |
||||
|
background: none; |
||||
|
span { |
||||
|
padding-left: 15px; |
||||
|
font-size: initial; |
||||
|
} |
||||
|
} |
||||
|
.mk_menu_mobile_section { |
||||
|
.fa { |
||||
|
padding-top: 14px; |
||||
|
padding-right: 15px; |
||||
|
} |
||||
|
.dropdown-menu { |
||||
|
padding: 0; |
||||
|
width: 100%; |
||||
|
border: none; |
||||
|
min-width: auto; |
||||
|
box-shadow: none; |
||||
|
background: none; |
||||
|
position: static; |
||||
|
overflow: visible; |
||||
|
} |
||||
|
@for $index from 1 through 5 { |
||||
|
.o_menu_entry_lvl_#{$index} { |
||||
|
margin-left: ($index - 1) * 1.5rem; |
||||
|
} |
||||
|
} |
||||
|
@for $index from 2 through 5 { |
||||
|
.o_menu_header_lvl_#{$index} { |
||||
|
margin-left: ($index - 1) * 1.5rem; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
} |
} |
@ -1,24 +1,27 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
.o_notification_manager { |
|
||||
.o_buttons { |
|
||||
padding: 5px; |
|
||||
} |
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at). |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
.o_notification_manager { |
||||
|
.o_buttons { |
||||
|
padding: 5px; |
||||
|
} |
||||
} |
} |
@ -1,35 +1,38 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
@include media-breakpoint-down(sm) { |
|
||||
.o_base_settings .o_statusbar_buttons { |
|
||||
.btn { |
|
||||
width: auto !important; |
|
||||
border: solid 1px transparent; |
|
||||
margin: 4px 3px 4px 0 !important; |
|
||||
padding: $btn-padding-y-sm $btn-padding-x-sm !important; |
|
||||
} |
|
||||
.btn-primary { |
|
||||
border-color: $o-brand-primary; |
|
||||
} |
|
||||
.btn-secondary { |
|
||||
border-color: $border-color; |
|
||||
} |
|
||||
} |
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at). |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
@include media-breakpoint-down(sm) { |
||||
|
.o_base_settings .o_statusbar_buttons { |
||||
|
.btn { |
||||
|
width: auto !important; |
||||
|
border: solid 1px transparent; |
||||
|
margin: 4px 3px 4px 0 !important; |
||||
|
padding: $btn-padding-y-sm $btn-padding-x-sm !important; |
||||
|
} |
||||
|
.btn-primary { |
||||
|
border-color: $o-brand-primary; |
||||
|
} |
||||
|
.btn-secondary { |
||||
|
border-color: $border-color; |
||||
|
} |
||||
|
} |
||||
} |
} |
@ -1,59 +1,62 @@ |
|||||
/********************************************************************************** |
|
||||
* |
|
||||
* Copyright (C) 2017 MuK IT GmbH |
|
||||
* |
|
||||
* This program is free software: you can redistribute it and/or modify |
|
||||
* it under the terms of the GNU Affero General Public License as |
|
||||
* published by the Free Software Foundation, either version 3 of the |
|
||||
* License, or (at your option) any later version. |
|
||||
* |
|
||||
* 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 Affero General Public License for more details. |
|
||||
* |
|
||||
* You should have received a copy of the GNU Affero General Public License |
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
* |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
//---------------------------------------------------------- |
|
||||
// Fonts |
|
||||
//---------------------------------------------------------- |
|
||||
|
|
||||
$font-family-sans-serif: 'Roboto', 'Noto'; |
|
||||
|
|
||||
//---------------------------------------------------------- |
|
||||
// Components |
|
||||
//---------------------------------------------------------- |
|
||||
|
|
||||
$border-radius: 0; |
|
||||
$border-radius-lg: 0; |
|
||||
$border-radius-sm: 0; |
|
||||
|
|
||||
//---------------------------------------------------------- |
|
||||
// Links |
|
||||
//---------------------------------------------------------- |
|
||||
|
|
||||
$link-color: darken($o-brand-primary, 8%); |
|
||||
|
|
||||
//---------------------------------------------------------- |
|
||||
// AppBarMenu |
|
||||
//---------------------------------------------------------- |
|
||||
|
|
||||
$mk-sidebar-large-width: 146px; |
|
||||
$mk-sidebar-small-width: 46px; |
|
||||
|
|
||||
//---------------------------------------------------------- |
|
||||
// Sided Chatter |
|
||||
//---------------------------------------------------------- |
|
||||
|
|
||||
$mk-form-min-width: 835px; |
|
||||
$mk-chatter-min-width: 550px; |
|
||||
$mk-chatter-max-width: 600px; |
|
||||
|
|
||||
//---------------------------------------------------------- |
|
||||
// List View |
|
||||
//---------------------------------------------------------- |
|
||||
|
|
||||
|
/********************************************************************************** |
||||
|
* |
||||
|
* Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
* |
||||
|
* This file is part of MuK Backend Theme |
||||
|
* (see https://mukit.at). |
||||
|
* |
||||
|
* This program is free software: you can redistribute it and/or modify |
||||
|
* it under the terms of the GNU Lesser General Public License as published by |
||||
|
* the Free Software Foundation, either version 3 of the License, or |
||||
|
* (at your option) any later version. |
||||
|
* |
||||
|
* 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 for more details. |
||||
|
* |
||||
|
* You should have received a copy of the GNU Lesser General Public License |
||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
* |
||||
|
**********************************************************************************/ |
||||
|
|
||||
|
//---------------------------------------------------------- |
||||
|
// Fonts |
||||
|
//---------------------------------------------------------- |
||||
|
|
||||
|
$font-family-sans-serif: 'Roboto', 'Noto'; |
||||
|
|
||||
|
//---------------------------------------------------------- |
||||
|
// Components |
||||
|
//---------------------------------------------------------- |
||||
|
|
||||
|
$border-radius: 0; |
||||
|
$border-radius-lg: 0; |
||||
|
$border-radius-sm: 0; |
||||
|
|
||||
|
//---------------------------------------------------------- |
||||
|
// Links |
||||
|
//---------------------------------------------------------- |
||||
|
|
||||
|
$link-color: darken($o-brand-primary, 8%); |
||||
|
|
||||
|
//---------------------------------------------------------- |
||||
|
// AppBarMenu |
||||
|
//---------------------------------------------------------- |
||||
|
|
||||
|
$mk-sidebar-large-width: 146px; |
||||
|
$mk-sidebar-small-width: 46px; |
||||
|
|
||||
|
//---------------------------------------------------------- |
||||
|
// Sided Chatter |
||||
|
//---------------------------------------------------------- |
||||
|
|
||||
|
$mk-form-min-width: 835px; |
||||
|
$mk-chatter-min-width: 550px; |
||||
|
$mk-chatter-max-width: 600px; |
||||
|
|
||||
|
//---------------------------------------------------------- |
||||
|
// List View |
||||
|
//---------------------------------------------------------- |
||||
|
|
||||
$o-list-footer-bg-color: $o-brand-odoo; |
$o-list-footer-bg-color: $o-brand-odoo; |
@ -1,72 +1,77 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
|
|
||||
<!-- |
|
||||
Copyright (C) 2018 MuK IT GmbH |
|
||||
|
|
||||
This program is free software: you can redistribute it and/or modify |
|
||||
it under the terms of the GNU Affero General Public License as |
|
||||
published by the Free Software Foundation, either version 3 of the |
|
||||
License, or (at your option) any later version. |
|
||||
|
|
||||
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 Affero General Public License for more details. |
|
||||
|
|
||||
You should have received a copy of the GNU Affero General Public License |
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
--> |
|
||||
|
|
||||
<templates id="template" xml:space="preserve"> |
|
||||
|
|
||||
<t t-extend="AppsMenu"> |
|
||||
<t t-jquery=".o_app" t-operation="attributes"> |
|
||||
<attribute name="t-attf-href">#menu_id=#{app.menuID}&action_id=#{app.actionID}</attribute> |
|
||||
</t> |
|
||||
<t t-jquery=".full" t-operation="attributes"> |
|
||||
<attribute name="accesskey">h</attribute> |
|
||||
</t> |
|
||||
<t t-jquery=".full > i" t-operation="attributes"> |
|
||||
<attribute name="class">fa fa-th</attribute> |
|
||||
</t> |
|
||||
<t t-jquery="[t-as=app]" t-operation="before"> |
|
||||
<div class="mk_search_container form-row align-items-center mb-4 col-12"> |
|
||||
<div class="mk_search_input col-md-10 ml-auto mr-auto mb-2"> |
|
||||
<div class="input-group"> |
|
||||
<div class="input-group-prepend"> |
|
||||
<div class="input-group-text"> |
|
||||
<i class="fa fa-search"/> |
|
||||
</div> |
|
||||
</div> |
|
||||
<input type="text" placeholder="Search menus..." class="form-control"/> |
|
||||
</div> |
|
||||
</div> |
|
||||
<div class="mk_search_results col-md-10 ml-auto mr-auto"/> |
|
||||
</div> |
|
||||
</t> |
|
||||
<t t-jquery=".o_app > t" t-operation="replace"> |
|
||||
<t t-call="muk_web_theme.AppIcon"/> |
|
||||
</t> |
|
||||
</t> |
|
||||
|
|
||||
<t t-name="muk_web_theme.AppIcon"> |
|
||||
<img class="o-app-icon" t-attf-src="data:image/png;base64,#{app.web_icon_data}"/> |
|
||||
<span class="o-app-name"> |
|
||||
<t t-esc="app.name"/> |
|
||||
</span> |
|
||||
</t> |
|
||||
|
|
||||
<t t-name="muk_web_theme.MenuSearchResults"> |
|
||||
<t t-foreach="results" t-as="result"> |
|
||||
<t t-set="menu" t-value="widget._menuInfo(result.original)"/> |
|
||||
<a t-attf-class="mk_menu_search_result dropdown-item col-12 ml-auto mr-auto #{result_first ? 'active' : ''}" |
|
||||
t-attf-style="background-image: #{menu.web_icon_data ? 'url(data:image/png;base64,' + menu.web_icon_data + ')' : 'none'}" |
|
||||
t-attf-href="#menu_id=#{menu.id}&action_id=#{menu.action_id}" |
|
||||
t-att-data-menu-id="menu.id" |
|
||||
t-att-data-action-id="menu.action_id" |
|
||||
t-att-data-parent-id="menu.parent_id[0]" |
|
||||
t-raw="result.string"/> |
|
||||
</t> |
|
||||
</t> |
|
||||
|
|
||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
|
||||
|
<!-- |
||||
|
|
||||
|
Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
|
||||
|
This file is part of MuK Backend Theme |
||||
|
(see https://mukit.at). |
||||
|
|
||||
|
This program is free software: you can redistribute it and/or modify |
||||
|
it under the terms of the GNU Lesser General Public License as published by |
||||
|
the Free Software Foundation, either version 3 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
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 for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU Lesser General Public License |
||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
--> |
||||
|
|
||||
|
<templates id="template" xml:space="preserve"> |
||||
|
|
||||
|
<t t-extend="AppsMenu"> |
||||
|
<t t-jquery=".o_app" t-operation="attributes"> |
||||
|
<attribute name="t-attf-href">#menu_id=#{app.menuID}&action_id=#{app.actionID}</attribute> |
||||
|
</t> |
||||
|
<t t-jquery=".full" t-operation="attributes"> |
||||
|
<attribute name="accesskey">h</attribute> |
||||
|
</t> |
||||
|
<t t-jquery=".full > i" t-operation="attributes"> |
||||
|
<attribute name="class">fa fa-th</attribute> |
||||
|
</t> |
||||
|
<t t-jquery="[t-as=app]" t-operation="before"> |
||||
|
<div class="mk_search_container form-row align-items-center mb-4 col-12"> |
||||
|
<div class="mk_search_input col-md-10 ml-auto mr-auto mb-2"> |
||||
|
<div class="input-group"> |
||||
|
<div class="input-group-prepend"> |
||||
|
<div class="input-group-text"> |
||||
|
<i class="fa fa-search"/> |
||||
|
</div> |
||||
|
</div> |
||||
|
<input type="text" placeholder="Search menus..." class="form-control"/> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="mk_search_results col-md-10 ml-auto mr-auto"/> |
||||
|
</div> |
||||
|
</t> |
||||
|
<t t-jquery=".o_app > t" t-operation="replace"> |
||||
|
<t t-call="muk_web_theme.AppIcon"/> |
||||
|
</t> |
||||
|
</t> |
||||
|
|
||||
|
<t t-name="muk_web_theme.AppIcon"> |
||||
|
<img class="o-app-icon" t-attf-src="data:image/png;base64,#{app.web_icon_data}"/> |
||||
|
<span class="o-app-name"> |
||||
|
<t t-esc="app.name"/> |
||||
|
</span> |
||||
|
</t> |
||||
|
|
||||
|
<t t-name="muk_web_theme.MenuSearchResults"> |
||||
|
<t t-foreach="results" t-as="result"> |
||||
|
<t t-set="menu" t-value="widget._menuInfo(result.original)"/> |
||||
|
<a t-attf-class="mk_menu_search_result dropdown-item col-12 ml-auto mr-auto #{result_first ? 'active' : ''}" |
||||
|
t-attf-style="background-image: #{menu.web_icon_data ? 'url(data:image/png;base64,' + menu.web_icon_data + ')' : 'none'}" |
||||
|
t-attf-href="#menu_id=#{menu.id}&action_id=#{menu.action_id}" |
||||
|
t-att-data-menu-id="menu.id" |
||||
|
t-att-data-action-id="menu.action_id" |
||||
|
t-att-data-parent-id="menu.parent_id[0]" |
||||
|
t-raw="result.string"/> |
||||
|
</t> |
||||
|
</t> |
||||
|
|
||||
</templates> |
</templates> |
@ -1,43 +1,48 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
|
|
||||
<!-- |
|
||||
Copyright (C) 2018 MuK IT GmbH |
|
||||
|
|
||||
This program is free software: you can redistribute it and/or modify |
|
||||
it under the terms of the GNU Affero General Public License as |
|
||||
published by the Free Software Foundation, either version 3 of the |
|
||||
License, or (at your option) any later version. |
|
||||
|
|
||||
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 Affero General Public License for more details. |
|
||||
|
|
||||
You should have received a copy of the GNU Affero General Public License |
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
--> |
|
||||
|
|
||||
<templates id="template" xml:space="preserve"> |
|
||||
|
|
||||
<t t-name="muk_web_theme.AppsBarMenu"> |
|
||||
<div class="mk_apps_sidebar"> |
|
||||
<ul class="mk_apps_sidebar_menu"> |
|
||||
<t t-foreach="widget.getApps()" t-as="app"> |
|
||||
<li class="nav-item"> |
|
||||
<a t-attf-href="#menu_id=#{app.menuID}&action_id=#{app.actionID}" |
|
||||
t-att-data-menu-id="app.menuID" |
|
||||
t-att-data-menu-xmlid="app.xmlID" |
|
||||
t-att-data-action-id="app.actionID" |
|
||||
class="nav-link" role="menuitem"> |
|
||||
<img class="mk_apps_sidebar_icon" t-attf-src="data:image/png;base64,#{app.web_icon_data}"/> |
|
||||
<span class="mk_apps_sidebar_name"> |
|
||||
<t t-esc="app.name"/> |
|
||||
</span> |
|
||||
</a> |
|
||||
</li> |
|
||||
</t> |
|
||||
</ul> |
|
||||
</div> |
|
||||
</t> |
|
||||
|
|
||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
|
||||
|
<!-- |
||||
|
|
||||
|
Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
|
||||
|
This file is part of MuK Backend Theme |
||||
|
(see https://mukit.at). |
||||
|
|
||||
|
This program is free software: you can redistribute it and/or modify |
||||
|
it under the terms of the GNU Lesser General Public License as published by |
||||
|
the Free Software Foundation, either version 3 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
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 for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU Lesser General Public License |
||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
--> |
||||
|
|
||||
|
<templates id="template" xml:space="preserve"> |
||||
|
|
||||
|
<t t-name="muk_web_theme.AppsBarMenu"> |
||||
|
<div class="mk_apps_sidebar"> |
||||
|
<ul class="mk_apps_sidebar_menu"> |
||||
|
<t t-foreach="widget.getApps()" t-as="app"> |
||||
|
<li class="nav-item"> |
||||
|
<a t-attf-href="#menu_id=#{app.menuID}&action_id=#{app.actionID}" |
||||
|
t-att-data-menu-id="app.menuID" |
||||
|
t-att-data-menu-xmlid="app.xmlID" |
||||
|
t-att-data-action-id="app.actionID" |
||||
|
class="nav-link" role="menuitem"> |
||||
|
<img class="mk_apps_sidebar_icon" t-attf-src="data:image/png;base64,#{app.web_icon_data}"/> |
||||
|
<span class="mk_apps_sidebar_name"> |
||||
|
<t t-esc="app.name"/> |
||||
|
</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
</t> |
||||
|
</ul> |
||||
|
</div> |
||||
|
</t> |
||||
|
|
||||
</templates> |
</templates> |
@ -1,87 +1,92 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
|
|
||||
<!-- |
|
||||
Copyright (C) 2018 MuK IT GmbH |
|
||||
|
|
||||
This program is free software: you can redistribute it and/or modify |
|
||||
it under the terms of the GNU Affero General Public License as |
|
||||
published by the Free Software Foundation, either version 3 of the |
|
||||
License, or (at your option) any later version. |
|
||||
|
|
||||
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 Affero General Public License for more details. |
|
||||
|
|
||||
You should have received a copy of the GNU Affero General Public License |
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
--> |
|
||||
|
|
||||
<templates id="template" xml:space="preserve"> |
|
||||
|
|
||||
<t t-extend="Menu"> |
|
||||
<t t-jquery=".o_menu_systray" t-operation="after"> |
|
||||
<button class="mk_menu_sections_toggle d-md-none" data-toggle="collapse" |
|
||||
data-target=".o_main_navbar > .o_menu_sections"> |
|
||||
<i class="fa fa-bars"/> |
|
||||
</button> |
|
||||
</t> |
|
||||
<t t-jquery=".o_menu_systray" t-operation="after"> |
|
||||
<div class="mk_apps_sidebar_panel" /> |
|
||||
</t> |
|
||||
</t> |
|
||||
|
|
||||
<t t-name="muk_web_theme.MobileMenu.link"> |
|
||||
<t t-set="depth" t-value="(depth || 0) + 1"/> |
|
||||
<t t-if="!menu.children.length"> |
|
||||
<li> |
|
||||
<a role="menuitem" t-attf-class="dropdown-item o_menu_entry_lvl_#{depth}" |
|
||||
t-attf-href="#menu_id=#{menu.id}&action=#{menu.action ? menu.action.split(',')[1] : ''}" |
|
||||
t-att-data-action-model="menu.action ? menu.action.split(',')[0] : ''" |
|
||||
t-att-data-action-id="menu.action ? menu.action.split(',')[1] : ''" |
|
||||
t-att-data-menu="menu.id" |
|
||||
t-att-data-menu-xmlid="menu.xmlid" |
|
||||
data-toggle="collapse" data-target="#o_navbar_collapse.in"> |
|
||||
<span> |
|
||||
<t t-esc="menu.name"/> |
|
||||
</span> |
|
||||
</a> |
|
||||
</li> |
|
||||
</t> |
|
||||
<t t-else=""> |
|
||||
<li class="mk_menu_mobile_section clearfix"> |
|
||||
<a role="button" href="#" t-attf-class="dropdown-toggle o-no-caret o_menu_header_lvl_#{depth}" |
|
||||
t-att-data-menu-xmlid="menu.xmlid" data-toggle="dropdown" aria-expanded="false"> |
|
||||
<span> |
|
||||
<t t-esc="menu.name"/> |
|
||||
</span> |
|
||||
<span class="fa fa-chevron-right float-right"/> |
|
||||
<span class="fa fa-chevron-down float-right" style="display: none;"/> |
|
||||
</a> |
|
||||
<ul class="dropdown-menu" role="menu"> |
|
||||
<t t-foreach="menu.children" t-as="submenu"> |
|
||||
<t t-call="muk_web_theme.MobileMenu.link"> |
|
||||
<t t-set="menu" t-value="submenu"/> |
|
||||
</t> |
|
||||
</t> |
|
||||
</ul> |
|
||||
</li> |
|
||||
</t> |
|
||||
</t> |
|
||||
|
|
||||
<t t-name="muk_web_theme.MobileMenu.sections"> |
|
||||
<t t-set="isMobile" t-value="true"/> |
|
||||
<t t-foreach="menu_data.children" t-as="topmenu"> |
|
||||
<section t-att-class="topmenu.id"> |
|
||||
<t t-if="topmenu.children.length"> |
|
||||
<t t-foreach="topmenu.children" t-as="submenu"> |
|
||||
<t t-call="muk_web_theme.MobileMenu.link"> |
|
||||
<t t-set="menu" t-value="submenu"/> |
|
||||
</t> |
|
||||
</t> |
|
||||
</t> |
|
||||
</section> |
|
||||
</t> |
|
||||
</t> |
|
||||
|
|
||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
|
||||
|
<!-- |
||||
|
|
||||
|
Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
|
||||
|
This file is part of MuK Backend Theme |
||||
|
(see https://mukit.at). |
||||
|
|
||||
|
This program is free software: you can redistribute it and/or modify |
||||
|
it under the terms of the GNU Lesser General Public License as published by |
||||
|
the Free Software Foundation, either version 3 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
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 for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU Lesser General Public License |
||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
--> |
||||
|
|
||||
|
<templates id="template" xml:space="preserve"> |
||||
|
|
||||
|
<t t-extend="Menu"> |
||||
|
<t t-jquery=".o_menu_systray" t-operation="after"> |
||||
|
<button class="mk_menu_sections_toggle d-md-none" data-toggle="collapse" |
||||
|
data-target=".o_main_navbar > .o_menu_sections"> |
||||
|
<i class="fa fa-bars"/> |
||||
|
</button> |
||||
|
</t> |
||||
|
<t t-jquery=".o_menu_systray" t-operation="after"> |
||||
|
<div class="mk_apps_sidebar_panel" /> |
||||
|
</t> |
||||
|
</t> |
||||
|
|
||||
|
<t t-name="muk_web_theme.MobileMenu.link"> |
||||
|
<t t-set="depth" t-value="(depth || 0) + 1"/> |
||||
|
<t t-if="!menu.children.length"> |
||||
|
<li> |
||||
|
<a role="menuitem" t-attf-class="dropdown-item o_menu_entry_lvl_#{depth}" |
||||
|
t-attf-href="#menu_id=#{menu.id}&action=#{menu.action ? menu.action.split(',')[1] : ''}" |
||||
|
t-att-data-action-model="menu.action ? menu.action.split(',')[0] : ''" |
||||
|
t-att-data-action-id="menu.action ? menu.action.split(',')[1] : ''" |
||||
|
t-att-data-menu="menu.id" |
||||
|
t-att-data-menu-xmlid="menu.xmlid" |
||||
|
data-toggle="collapse" data-target="#o_navbar_collapse.in"> |
||||
|
<span> |
||||
|
<t t-esc="menu.name"/> |
||||
|
</span> |
||||
|
</a> |
||||
|
</li> |
||||
|
</t> |
||||
|
<t t-else=""> |
||||
|
<li class="mk_menu_mobile_section clearfix"> |
||||
|
<a role="button" href="#" t-attf-class="dropdown-toggle o-no-caret o_menu_header_lvl_#{depth}" |
||||
|
t-att-data-menu-xmlid="menu.xmlid" data-toggle="dropdown" aria-expanded="false"> |
||||
|
<span> |
||||
|
<t t-esc="menu.name"/> |
||||
|
</span> |
||||
|
<span class="fa fa-chevron-right float-right"/> |
||||
|
<span class="fa fa-chevron-down float-right" style="display: none;"/> |
||||
|
</a> |
||||
|
<ul class="dropdown-menu" role="menu"> |
||||
|
<t t-foreach="menu.children" t-as="submenu"> |
||||
|
<t t-call="muk_web_theme.MobileMenu.link"> |
||||
|
<t t-set="menu" t-value="submenu"/> |
||||
|
</t> |
||||
|
</t> |
||||
|
</ul> |
||||
|
</li> |
||||
|
</t> |
||||
|
</t> |
||||
|
|
||||
|
<t t-name="muk_web_theme.MobileMenu.sections"> |
||||
|
<t t-set="isMobile" t-value="true"/> |
||||
|
<t t-foreach="menu_data.children" t-as="topmenu"> |
||||
|
<section t-att-class="topmenu.id"> |
||||
|
<t t-if="topmenu.children.length"> |
||||
|
<t t-foreach="topmenu.children" t-as="submenu"> |
||||
|
<t t-call="muk_web_theme.MobileMenu.link"> |
||||
|
<t t-set="menu" t-value="submenu"/> |
||||
|
</t> |
||||
|
</t> |
||||
|
</t> |
||||
|
</section> |
||||
|
</t> |
||||
|
</t> |
||||
|
|
||||
</templates> |
</templates> |
@ -1,36 +1,41 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
|
|
||||
<!-- |
|
||||
Copyright (C) 2018 MuK IT GmbH |
|
||||
|
|
||||
This program is free software: you can redistribute it and/or modify |
|
||||
it under the terms of the GNU Affero General Public License as |
|
||||
published by the Free Software Foundation, either version 3 of the |
|
||||
License, or (at your option) any later version. |
|
||||
|
|
||||
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 Affero General Public License for more details. |
|
||||
|
|
||||
You should have received a copy of the GNU Affero General Public License |
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
--> |
|
||||
|
|
||||
<templates id="template" xml:space="preserve"> |
|
||||
|
|
||||
<t t-extend="UserMenu.shortcuts"> |
|
||||
<t t-jquery="tbody" t-operation="prepend"> |
|
||||
<tr> |
|
||||
<td align="left">Open the apps menu</td> |
|
||||
<td> |
|
||||
<span class="o_key">Alt</span> + <span class="o_key">h</span> |
|
||||
</td> |
|
||||
<td> |
|
||||
<span class="o_key">Control</span> + <span class="o_key">Alt</span> + <span class="o_key">h</span> |
|
||||
</td> |
|
||||
</tr> |
|
||||
</t> |
|
||||
</t> |
|
||||
|
|
||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
|
||||
|
<!-- |
||||
|
|
||||
|
Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
|
||||
|
This file is part of MuK Backend Theme |
||||
|
(see https://mukit.at). |
||||
|
|
||||
|
This program is free software: you can redistribute it and/or modify |
||||
|
it under the terms of the GNU Lesser General Public License as published by |
||||
|
the Free Software Foundation, either version 3 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
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 for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU Lesser General Public License |
||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
--> |
||||
|
|
||||
|
<templates id="template" xml:space="preserve"> |
||||
|
|
||||
|
<t t-extend="UserMenu.shortcuts"> |
||||
|
<t t-jquery="tbody" t-operation="prepend"> |
||||
|
<tr> |
||||
|
<td align="left">Open the apps menu</td> |
||||
|
<td> |
||||
|
<span class="o_key">Alt</span> + <span class="o_key">h</span> |
||||
|
</td> |
||||
|
<td> |
||||
|
<span class="o_key">Control</span> + <span class="o_key">Alt</span> + <span class="o_key">h</span> |
||||
|
</td> |
||||
|
</tr> |
||||
|
</t> |
||||
|
</t> |
||||
|
|
||||
</templates> |
</templates> |
@ -1,32 +1,37 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
|
|
||||
<!-- |
|
||||
Copyright (C) 2018 MuK IT GmbH |
|
||||
|
|
||||
This program is free software: you can redistribute it and/or modify |
|
||||
it under the terms of the GNU Affero General Public License as |
|
||||
published by the Free Software Foundation, either version 3 of the |
|
||||
License, or (at your option) any later version. |
|
||||
|
|
||||
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 Affero General Public License for more details. |
|
||||
|
|
||||
You should have received a copy of the GNU Affero General Public License |
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
--> |
|
||||
|
|
||||
<templates id="template" xml:space="preserve"> |
|
||||
|
|
||||
<t t-extend="Sidebar"> |
|
||||
<t t-jquery="button" t-operation="replace"> |
|
||||
<button t-if="section.name != 'buttons'" data-toggle="dropdown" aria-expanded="false" |
|
||||
t-attf-class="o_dropdown_toggler_btn btn btn-secondary dropdown-toggle #{section.icon}"> |
|
||||
<t t-if="section.name == 'files'" t-raw="widget.items[section.name].length || ''"/> |
|
||||
<t t-if="!section.icon" t-esc="section.label"/> |
|
||||
</button> |
|
||||
</t> |
|
||||
</t> |
|
||||
|
|
||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
|
||||
|
<!-- |
||||
|
|
||||
|
Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
|
||||
|
This file is part of MuK Backend Theme |
||||
|
(see https://mukit.at). |
||||
|
|
||||
|
This program is free software: you can redistribute it and/or modify |
||||
|
it under the terms of the GNU Lesser General Public License as published by |
||||
|
the Free Software Foundation, either version 3 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
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 for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU Lesser General Public License |
||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
--> |
||||
|
|
||||
|
<templates id="template" xml:space="preserve"> |
||||
|
|
||||
|
<t t-extend="Sidebar"> |
||||
|
<t t-jquery="button" t-operation="replace"> |
||||
|
<button t-if="section.name != 'buttons'" data-toggle="dropdown" aria-expanded="false" |
||||
|
t-attf-class="o_dropdown_toggler_btn btn btn-secondary dropdown-toggle #{section.icon}"> |
||||
|
<t t-if="section.name == 'files'" t-raw="widget.items[section.name].length || ''"/> |
||||
|
<t t-if="!section.icon" t-esc="section.label"/> |
||||
|
</button> |
||||
|
</t> |
||||
|
</t> |
||||
|
|
||||
</templates> |
</templates> |
@ -1,95 +1,100 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
|
|
||||
<!-- |
|
||||
Copyright (C) 2018 MuK IT GmbH |
|
||||
|
|
||||
This program is free software: you can redistribute it and/or modify |
|
||||
it under the terms of the GNU Affero General Public License as |
|
||||
published by the Free Software Foundation, either version 3 of the |
|
||||
License, or (at your option) any later version. |
|
||||
|
|
||||
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 Affero General Public License for more details. |
|
||||
|
|
||||
You should have received a copy of the GNU Affero General Public License |
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
--> |
|
||||
|
|
||||
<templates id="template" xml:space="preserve"> |
|
||||
|
|
||||
<t t-name="muk_web_theme.MenuStatusbarButtons"> |
|
||||
<div class="dropdown"> |
|
||||
<button class="o_statusbar_buttons_dropdown btn btn-secondary dropdown-toggle" type="button" |
|
||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> |
|
||||
Actions |
|
||||
</button> |
|
||||
</div> |
|
||||
</t> |
|
||||
|
|
||||
<t t-name="muk_web_theme.IconButton"> |
|
||||
<i t-attf-class="d-inline d-sm-none fa fa-#{icon}" t-att-title="label"/> |
|
||||
<span class="d-none d-sm-inline" t-esc="label"/> |
|
||||
</t> |
|
||||
|
|
||||
<t t-extend="FormView.buttons"> |
|
||||
<t t-jquery=".o_form_button_edit" t-operation="inner"> |
|
||||
<t t-call="muk_web_theme.IconButton"> |
|
||||
<t t-set="icon" t-value="'pencil'"/> |
|
||||
<t t-set="label">Edit</t> |
|
||||
</t> |
|
||||
</t> |
|
||||
<t t-jquery=".o_form_button_create" t-operation="inner"> |
|
||||
<t t-call="muk_web_theme.IconButton"> |
|
||||
<t t-set="icon" t-value="'plus'"/> |
|
||||
<t t-set="label">Create</t> |
|
||||
</t> |
|
||||
</t> |
|
||||
<t t-jquery=".o_form_button_save" t-operation="inner"> |
|
||||
<t t-call="muk_web_theme.IconButton"> |
|
||||
<t t-set="icon" t-value="'floppy-o'"/> |
|
||||
<t t-set="label">Save</t> |
|
||||
</t> |
|
||||
</t> |
|
||||
<t t-jquery=".o_form_button_cancel" t-operation="inner"> |
|
||||
<t t-call="muk_web_theme.IconButton"> |
|
||||
<t t-set="icon" t-value="'times'"/> |
|
||||
<t t-set="label">Discard</t> |
|
||||
</t> |
|
||||
</t> |
|
||||
</t> |
|
||||
|
|
||||
<t t-extend="ListView.buttons"> |
|
||||
<t t-jquery=".o_list_button_add" t-operation="inner"> |
|
||||
<t t-call="muk_web_theme.IconButton"> |
|
||||
<t t-set="icon" t-value="'plus'"/> |
|
||||
<t t-set="label">Create</t> |
|
||||
</t> |
|
||||
</t> |
|
||||
|
|
||||
<t t-jquery=".o_list_button_save" t-operation="inner"> |
|
||||
<t t-call="muk_web_theme.IconButton"> |
|
||||
<t t-set="icon" t-value="'floppy-o'"/> |
|
||||
<t t-set="label">Save</t> |
|
||||
</t> |
|
||||
</t> |
|
||||
|
|
||||
<t t-jquery=".o_list_button_discard" t-operation="inner"> |
|
||||
<t t-call="muk_web_theme.IconButton"> |
|
||||
<t t-set="icon" t-value="'times'"/> |
|
||||
<t t-set="label">Discard</t> |
|
||||
</t> |
|
||||
</t> |
|
||||
</t> |
|
||||
|
|
||||
<t t-extend="KanbanView.buttons"> |
|
||||
<t t-jquery="button" t-operation="inner"> |
|
||||
<t t-call="muk_web_theme.IconButton"> |
|
||||
<t t-set="icon" t-value="'plus'"/> |
|
||||
<t t-set="label" t-value="create_text || _t('Create')"/> |
|
||||
</t> |
|
||||
</t> |
|
||||
</t> |
|
||||
|
|
||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
|
||||
|
<!-- |
||||
|
|
||||
|
Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
|
||||
|
This file is part of MuK Backend Theme |
||||
|
(see https://mukit.at). |
||||
|
|
||||
|
This program is free software: you can redistribute it and/or modify |
||||
|
it under the terms of the GNU Lesser General Public License as published by |
||||
|
the Free Software Foundation, either version 3 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
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 for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU Lesser General Public License |
||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
--> |
||||
|
|
||||
|
<templates id="template" xml:space="preserve"> |
||||
|
|
||||
|
<t t-name="muk_web_theme.MenuStatusbarButtons"> |
||||
|
<div class="dropdown"> |
||||
|
<button class="o_statusbar_buttons_dropdown btn btn-secondary dropdown-toggle" type="button" |
||||
|
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> |
||||
|
Actions |
||||
|
</button> |
||||
|
</div> |
||||
|
</t> |
||||
|
|
||||
|
<t t-name="muk_web_theme.IconButton"> |
||||
|
<i t-attf-class="d-inline d-sm-none fa fa-#{icon}" t-att-title="label"/> |
||||
|
<span class="d-none d-sm-inline" t-esc="label"/> |
||||
|
</t> |
||||
|
|
||||
|
<t t-extend="FormView.buttons"> |
||||
|
<t t-jquery=".o_form_button_edit" t-operation="inner"> |
||||
|
<t t-call="muk_web_theme.IconButton"> |
||||
|
<t t-set="icon" t-value="'pencil'"/> |
||||
|
<t t-set="label">Edit</t> |
||||
|
</t> |
||||
|
</t> |
||||
|
<t t-jquery=".o_form_button_create" t-operation="inner"> |
||||
|
<t t-call="muk_web_theme.IconButton"> |
||||
|
<t t-set="icon" t-value="'plus'"/> |
||||
|
<t t-set="label">Create</t> |
||||
|
</t> |
||||
|
</t> |
||||
|
<t t-jquery=".o_form_button_save" t-operation="inner"> |
||||
|
<t t-call="muk_web_theme.IconButton"> |
||||
|
<t t-set="icon" t-value="'floppy-o'"/> |
||||
|
<t t-set="label">Save</t> |
||||
|
</t> |
||||
|
</t> |
||||
|
<t t-jquery=".o_form_button_cancel" t-operation="inner"> |
||||
|
<t t-call="muk_web_theme.IconButton"> |
||||
|
<t t-set="icon" t-value="'times'"/> |
||||
|
<t t-set="label">Discard</t> |
||||
|
</t> |
||||
|
</t> |
||||
|
</t> |
||||
|
|
||||
|
<t t-extend="ListView.buttons"> |
||||
|
<t t-jquery=".o_list_button_add" t-operation="inner"> |
||||
|
<t t-call="muk_web_theme.IconButton"> |
||||
|
<t t-set="icon" t-value="'plus'"/> |
||||
|
<t t-set="label">Create</t> |
||||
|
</t> |
||||
|
</t> |
||||
|
|
||||
|
<t t-jquery=".o_list_button_save" t-operation="inner"> |
||||
|
<t t-call="muk_web_theme.IconButton"> |
||||
|
<t t-set="icon" t-value="'floppy-o'"/> |
||||
|
<t t-set="label">Save</t> |
||||
|
</t> |
||||
|
</t> |
||||
|
|
||||
|
<t t-jquery=".o_list_button_discard" t-operation="inner"> |
||||
|
<t t-call="muk_web_theme.IconButton"> |
||||
|
<t t-set="icon" t-value="'times'"/> |
||||
|
<t t-set="label">Discard</t> |
||||
|
</t> |
||||
|
</t> |
||||
|
</t> |
||||
|
|
||||
|
<t t-extend="KanbanView.buttons"> |
||||
|
<t t-jquery="button" t-operation="inner"> |
||||
|
<t t-call="muk_web_theme.IconButton"> |
||||
|
<t t-set="icon" t-value="'plus'"/> |
||||
|
<t t-set="label" t-value="create_text || _t('Create')"/> |
||||
|
</t> |
||||
|
</t> |
||||
|
</t> |
||||
|
|
||||
</templates> |
</templates> |
@ -1,77 +1,82 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
|
|
||||
<!-- |
|
||||
Copyright (C) 2018 MuK IT GmbH |
|
||||
|
|
||||
This program is free software: you can redistribute it and/or modify |
|
||||
it under the terms of the GNU Affero General Public License as |
|
||||
published by the Free Software Foundation, either version 3 of the |
|
||||
License, or (at your option) any later version. |
|
||||
|
|
||||
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 Affero General Public License for more details. |
|
||||
|
|
||||
You should have received a copy of the GNU Affero General Public License |
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
--> |
|
||||
|
|
||||
<odoo> |
|
||||
|
|
||||
<template id="_assets_utils" name="Mixins" inherit_id="web._assets_utils" priority="15"> |
|
||||
<xpath expr="//link[last()]" position="after"> |
|
||||
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/mixins.scss"/> |
|
||||
</xpath> |
|
||||
</template> |
|
||||
|
|
||||
<template id="_assets_primary_variables" name="Colors" inherit_id="web._assets_primary_variables" priority="15"> |
|
||||
<xpath expr="//link[last()]" position="after"> |
|
||||
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/colors.scss"/> |
|
||||
</xpath> |
|
||||
</template> |
|
||||
|
|
||||
<template id="_assets_backend_helpers" name="Variables" inherit_id="web._assets_backend_helpers" priority="15"> |
|
||||
<xpath expr="//link[@href='/web/static/src/scss/bootstrap_overridden.scss']" position="after"> |
|
||||
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/variables.scss"/> |
|
||||
</xpath> |
|
||||
</template> |
|
||||
|
|
||||
<template id="assets_common" name="Common Assets" inherit_id="web_editor.assets_common"> |
|
||||
<xpath expr="//link[last()]" position="after"> |
|
||||
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/fonts.scss"/> |
|
||||
</xpath> |
|
||||
<xpath expr="//script[last()]" position="after"> |
|
||||
<script type="text/javascript" src="/muk_web_theme/static/src/js/core/search.js" /> |
|
||||
</xpath> |
|
||||
</template> |
|
||||
|
|
||||
<template id="assets_backend" name="Backend Assets" inherit_id="web.assets_backend"> |
|
||||
<xpath expr="//link[last()]" position="after"> |
|
||||
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/layout.scss"/> |
|
||||
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/navbar.scss"/> |
|
||||
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/apps.scss"/> |
|
||||
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/appsbar.scss"/> |
|
||||
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/control_panel.scss"/> |
|
||||
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/list_view.scss"/> |
|
||||
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/form_view.scss"/> |
|
||||
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/fields.scss"/> |
|
||||
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/notification.scss"/> |
|
||||
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/settings.scss"/> |
|
||||
</xpath> |
|
||||
<xpath expr="//script[last()]" position="after"> |
|
||||
<script type="text/javascript" src="/muk_web_theme/static/src/js/chrome/actions.js" /> |
|
||||
<script type="text/javascript" src="/muk_web_theme/static/src/js/chrome/menu.js" /> |
|
||||
<script type="text/javascript" src="/muk_web_theme/static/src/js/chrome/apps.js" /> |
|
||||
<script type="text/javascript" src="/muk_web_theme/static/src/js/chrome/appsbar.js" /> |
|
||||
<script type="text/javascript" src="/muk_web_theme/static/src/js/chrome/sidebar.js" /> |
|
||||
<script type="text/javascript" src="/muk_web_theme/static/src/js/chrome/pager.js" /> |
|
||||
<script type="text/javascript" src="/muk_web_theme/static/src/js/fields/relational.js" /> |
|
||||
<script type="text/javascript" src="/muk_web_theme/static/src/js/views/search_view.js" /> |
|
||||
<script type="text/javascript" src="/muk_web_theme/static/src/js/views/form_view.js" /> |
|
||||
<script type="text/javascript" src="/muk_web_theme/static/src/js/views/form_renderer.js" /> |
|
||||
<script type="text/javascript" src="/muk_web_theme/static/src/js/views/list_renderer.js" /> |
|
||||
</xpath> |
|
||||
</template> |
|
||||
|
|
||||
</odoo> |
|
||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
|
||||
|
<!-- |
||||
|
|
||||
|
Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
|
||||
|
This file is part of MuK Backend Theme |
||||
|
(see https://mukit.at). |
||||
|
|
||||
|
This program is free software: you can redistribute it and/or modify |
||||
|
it under the terms of the GNU Lesser General Public License as published by |
||||
|
the Free Software Foundation, either version 3 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
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 for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU Lesser General Public License |
||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
--> |
||||
|
|
||||
|
<odoo> |
||||
|
|
||||
|
<template id="_assets_utils" name="Mixins" inherit_id="web._assets_utils" priority="15"> |
||||
|
<xpath expr="//link[last()]" position="after"> |
||||
|
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/mixins.scss"/> |
||||
|
</xpath> |
||||
|
</template> |
||||
|
|
||||
|
<template id="_assets_primary_variables" name="Colors" inherit_id="web._assets_primary_variables" priority="15"> |
||||
|
<xpath expr="//link[last()]" position="after"> |
||||
|
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/colors.scss"/> |
||||
|
</xpath> |
||||
|
</template> |
||||
|
|
||||
|
<template id="_assets_backend_helpers" name="Variables" inherit_id="web._assets_backend_helpers" priority="15"> |
||||
|
<xpath expr="//link[@href='/web/static/src/scss/bootstrap_overridden.scss']" position="after"> |
||||
|
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/variables.scss"/> |
||||
|
</xpath> |
||||
|
</template> |
||||
|
|
||||
|
<template id="assets_common" name="Common Assets" inherit_id="web_editor.assets_common"> |
||||
|
<xpath expr="//link[last()]" position="after"> |
||||
|
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/fonts.scss"/> |
||||
|
</xpath> |
||||
|
<xpath expr="//script[last()]" position="after"> |
||||
|
<script type="text/javascript" src="/muk_web_theme/static/src/js/core/search.js" /> |
||||
|
</xpath> |
||||
|
</template> |
||||
|
|
||||
|
<template id="assets_backend" name="Backend Assets" inherit_id="web.assets_backend"> |
||||
|
<xpath expr="//link[last()]" position="after"> |
||||
|
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/layout.scss"/> |
||||
|
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/navbar.scss"/> |
||||
|
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/apps.scss"/> |
||||
|
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/appsbar.scss"/> |
||||
|
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/control_panel.scss"/> |
||||
|
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/list_view.scss"/> |
||||
|
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/form_view.scss"/> |
||||
|
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/fields.scss"/> |
||||
|
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/notification.scss"/> |
||||
|
<link rel="stylesheet" type="text/scss" href="/muk_web_theme/static/src/scss/settings.scss"/> |
||||
|
</xpath> |
||||
|
<xpath expr="//script[last()]" position="after"> |
||||
|
<script type="text/javascript" src="/muk_web_theme/static/src/js/chrome/actions.js" /> |
||||
|
<script type="text/javascript" src="/muk_web_theme/static/src/js/chrome/menu.js" /> |
||||
|
<script type="text/javascript" src="/muk_web_theme/static/src/js/chrome/apps.js" /> |
||||
|
<script type="text/javascript" src="/muk_web_theme/static/src/js/chrome/appsbar.js" /> |
||||
|
<script type="text/javascript" src="/muk_web_theme/static/src/js/chrome/sidebar.js" /> |
||||
|
<script type="text/javascript" src="/muk_web_theme/static/src/js/chrome/pager.js" /> |
||||
|
<script type="text/javascript" src="/muk_web_theme/static/src/js/fields/relational.js" /> |
||||
|
<script type="text/javascript" src="/muk_web_theme/static/src/js/views/search_view.js" /> |
||||
|
<script type="text/javascript" src="/muk_web_theme/static/src/js/views/form_view.js" /> |
||||
|
<script type="text/javascript" src="/muk_web_theme/static/src/js/views/form_renderer.js" /> |
||||
|
<script type="text/javascript" src="/muk_web_theme/static/src/js/views/list_renderer.js" /> |
||||
|
</xpath> |
||||
|
</template> |
||||
|
|
||||
|
</odoo> |
@ -1,31 +1,36 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
|
|
||||
<!-- |
|
||||
Copyright (C) 2018 MuK IT GmbH |
|
||||
|
|
||||
This program is free software: you can redistribute it and/or modify |
|
||||
it under the terms of the GNU Affero General Public License as |
|
||||
published by the Free Software Foundation, either version 3 of the |
|
||||
License, or (at your option) any later version. |
|
||||
|
|
||||
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 Affero General Public License for more details. |
|
||||
|
|
||||
You should have received a copy of the GNU Affero General Public License |
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
--> |
|
||||
|
|
||||
<odoo> |
|
||||
|
|
||||
<template id="webclient_bootstrap" name="Web Client" inherit_id="web.webclient_bootstrap"> |
|
||||
<xpath expr="//t[@t-set='body_classname']" position="after"> |
|
||||
<t t-set="body_classname" t-value="'o_web_client mk_sidebar_type_' + request.env.user.sidebar_type or 'large'"/> |
|
||||
</xpath> |
|
||||
<xpath expr="//*[hasclass('o_main')]" position="attributes"> |
|
||||
<attribute name="t-attf-class">o_main mk_chatter_position_#{request.env.user.chatter_position or 'normal'}</attribute> |
|
||||
</xpath> |
|
||||
</template> |
|
||||
|
|
||||
</odoo> |
|
||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
|
||||
|
<!-- |
||||
|
|
||||
|
Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
|
||||
|
This file is part of MuK Backend Theme |
||||
|
(see https://mukit.at). |
||||
|
|
||||
|
This program is free software: you can redistribute it and/or modify |
||||
|
it under the terms of the GNU Lesser General Public License as published by |
||||
|
the Free Software Foundation, either version 3 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
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 for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU Lesser General Public License |
||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
--> |
||||
|
|
||||
|
<odoo> |
||||
|
|
||||
|
<template id="webclient_bootstrap" name="Web Client" inherit_id="web.webclient_bootstrap"> |
||||
|
<xpath expr="//t[@t-set='body_classname']" position="after"> |
||||
|
<t t-set="body_classname" t-value="'o_web_client mk_sidebar_type_' + request.env.user.sidebar_type or 'large'"/> |
||||
|
</xpath> |
||||
|
<xpath expr="//*[hasclass('o_main')]" position="attributes"> |
||||
|
<attribute name="t-attf-class">o_main mk_chatter_position_#{request.env.user.chatter_position or 'normal'}</attribute> |
||||
|
</xpath> |
||||
|
</template> |
||||
|
|
||||
|
</odoo> |
@ -1,164 +1,169 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
|
|
||||
<!-- |
|
||||
Copyright (C) 2017 MuK IT GmbH |
|
||||
|
|
||||
This program is free software: you can redistribute it and/or modify |
|
||||
it under the terms of the GNU Affero General Public License as |
|
||||
published by the Free Software Foundation, either version 3 of the |
|
||||
License, or (at your option) any later version. |
|
||||
|
|
||||
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 Affero General Public License for more details. |
|
||||
|
|
||||
You should have received a copy of the GNU Affero General Public License |
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
--> |
|
||||
|
|
||||
<odoo> |
|
||||
|
|
||||
<record id="res_config_settings_view_form" model="ir.ui.view"> |
|
||||
<field name="name">res.config.settings.view.form</field> |
|
||||
<field name="model">res.config.settings</field> |
|
||||
<field name="inherit_id" ref="base_setup.res_config_settings_view_form"/> |
|
||||
<field name="arch" type="xml"> |
|
||||
<div id="business_documents" position="after"> |
|
||||
<h2 id="web_theme_title">Backend Theme</h2> |
|
||||
<div class="row mt16 o_settings_container" name="web_theme"> |
|
||||
<div class="col-12 col-lg-6 o_setting_box"> |
|
||||
<div class="o_setting_left_pane"> |
|
||||
</div> |
|
||||
<div class="o_setting_right_pane"> |
|
||||
<span class="o_form_label">Default Preferences</span> |
|
||||
<div class="text-muted"> |
|
||||
Set the default theme preferences |
|
||||
</div> |
|
||||
<div class="content-group"> |
|
||||
<div class="mt16 row"> |
|
||||
<label for="theme_default_sidebar_preference" string="Sidebar" class="col-3 o_light_label"/> |
|
||||
<field name="theme_default_sidebar_preference" class="col-5"/> |
|
||||
<div class="w-100"></div> |
|
||||
<label for="theme_default_chatter_preference" string="Chatter" class="col-3 o_light_label"/> |
|
||||
<field name="theme_default_chatter_preference" class="col-5"/> |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
<div class="col-12 col-lg-6 o_setting_box"> |
|
||||
<div class="o_setting_left_pane"> |
|
||||
</div> |
|
||||
<div class="o_setting_right_pane"> |
|
||||
<span class="o_form_label">Theme Colors</span> |
|
||||
<div class="text-muted"> |
|
||||
Set the main theme colors |
|
||||
</div> |
|
||||
<div class="content-group"> |
|
||||
<div class="mt16 row"> |
|
||||
<label for="theme_color_brand" string="Brand" class="col-3 o_light_label"/> |
|
||||
<field name="theme_color_brand" widget="color" class="oe_inline"/> |
|
||||
<div class="w-100"></div> |
|
||||
<label for="theme_color_primary" string="Primary" class="col-3 o_light_label"/> |
|
||||
<field name="theme_color_primary" widget="color" class="oe_inline"/> |
|
||||
<div class="w-100"></div> |
|
||||
<label for="theme_color_required" string="Required" class="col-3 o_light_label"/> |
|
||||
<field name="theme_color_required" widget="color" class="oe_inline"/> |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
<div class="col-12 col-lg-6 o_setting_box"> |
|
||||
<div class="o_setting_left_pane"> |
|
||||
</div> |
|
||||
<div class="o_setting_right_pane"> |
|
||||
<span class="o_form_label">Background Image</span> |
|
||||
<span class="fa fa-lg fa-building-o" title="Values set here are company-specific." aria-label="Values set here are company-specific." groups="base.group_multi_company" role="img"/> |
|
||||
<div class="text-muted"> |
|
||||
Set the background image for the apps menu |
|
||||
</div> |
|
||||
<div class="content-group"> |
|
||||
<div class="mt16 row"> |
|
||||
<field name="theme_background_image" widget="image" class="ml-4" required="1"/> |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
<div class="col-12 col-lg-6 o_setting_box"> |
|
||||
<div class="o_setting_left_pane"> |
|
||||
</div> |
|
||||
<div class="o_setting_right_pane"> |
|
||||
<span class="o_form_label">Menu Colors</span> |
|
||||
<div class="text-muted"> |
|
||||
Set the main menu colors |
|
||||
</div> |
|
||||
<div class="content-group"> |
|
||||
<div class="mt16 row"> |
|
||||
<label for="theme_color_appbar_color" string="Menu Color" class="col-3 o_light_label"/> |
|
||||
<field name="theme_color_appbar_color" widget="color" class="oe_inline"/> |
|
||||
<div class="w-100"></div> |
|
||||
<label for="theme_color_appbar_background" string="Background" class="col-3 o_light_label"/> |
|
||||
<field name="theme_color_appbar_background" widget="color" class="oe_inline"/> |
|
||||
<div class="w-100"></div> |
|
||||
<label for="theme_color_menu" string="Apps Color" class="col-3 o_light_label"/> |
|
||||
<field name="theme_color_menu" widget="color" class="oe_inline"/> |
|
||||
<div class="w-100"></div> |
|
||||
<label for="theme_background_blend_mode" string="Apps Blend" class="col-3 o_light_label"/> |
|
||||
<field name="theme_background_blend_mode" class="col-5"/> |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
<h2 id="web_theme_extension_title">Backend Theme Extensions</h2> |
|
||||
<div class="row mt16 o_settings_container" name="web_theme_extension"> |
|
||||
<div class="col-12 col-lg-6 o_setting_box"> |
|
||||
<div class="o_setting_left_pane"> |
|
||||
<field name="module_muk_web_theme_mail"/> |
|
||||
</div> |
|
||||
<div class="o_setting_right_pane"> |
|
||||
<label for="module_muk_web_theme_mail"/> |
|
||||
<div class="text-muted"> |
|
||||
Optimizes the mail chatter for the theme |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
<div class="col-12 col-lg-6 o_setting_box"> |
|
||||
<div class="o_setting_left_pane"> |
|
||||
<field name="module_muk_web_theme_branding"/> |
|
||||
</div> |
|
||||
<div class="o_setting_right_pane"> |
|
||||
<label for="module_muk_web_theme_branding"/> |
|
||||
<div class="text-muted"> |
|
||||
Customize the theme according to your needs |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
<div class="col-12 col-lg-6 o_setting_box"> |
|
||||
<div class="o_setting_left_pane"> |
|
||||
<field name="module_muk_web_theme_website"/> |
|
||||
</div> |
|
||||
<div class="o_setting_right_pane"> |
|
||||
<label for="module_muk_web_theme_website"/> |
|
||||
<div class="text-muted"> |
|
||||
Add theme styled website navigation |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
<div class="col-12 col-lg-6 o_setting_box"> |
|
||||
<div class="o_setting_left_pane"> |
|
||||
<field name="module_muk_web_theme_mobile"/> |
|
||||
</div> |
|
||||
<div class="o_setting_right_pane"> |
|
||||
<label for="module_muk_web_theme_mobile"/> |
|
||||
<div class="text-muted"> |
|
||||
Allow Odoo to be used as a PWA app |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</div> |
|
||||
</field> |
|
||||
</record> |
|
||||
|
|
||||
</odoo> |
|
||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
|
||||
|
<!-- |
||||
|
|
||||
|
Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
|
||||
|
This file is part of MuK Backend Theme |
||||
|
(see https://mukit.at). |
||||
|
|
||||
|
This program is free software: you can redistribute it and/or modify |
||||
|
it under the terms of the GNU Lesser General Public License as published by |
||||
|
the Free Software Foundation, either version 3 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
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 for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU Lesser General Public License |
||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
--> |
||||
|
|
||||
|
<odoo> |
||||
|
|
||||
|
<record id="res_config_settings_view_form" model="ir.ui.view"> |
||||
|
<field name="name">res.config.settings.view.form</field> |
||||
|
<field name="model">res.config.settings</field> |
||||
|
<field name="inherit_id" ref="base_setup.res_config_settings_view_form"/> |
||||
|
<field name="arch" type="xml"> |
||||
|
<div id="business_documents" position="after"> |
||||
|
<h2 id="web_theme_title">Backend Theme</h2> |
||||
|
<div class="row mt16 o_settings_container" name="web_theme"> |
||||
|
<div class="col-12 col-lg-6 o_setting_box"> |
||||
|
<div class="o_setting_left_pane"> |
||||
|
</div> |
||||
|
<div class="o_setting_right_pane"> |
||||
|
<span class="o_form_label">Default Preferences</span> |
||||
|
<div class="text-muted"> |
||||
|
Set the default theme preferences |
||||
|
</div> |
||||
|
<div class="content-group"> |
||||
|
<div class="mt16 row"> |
||||
|
<label for="theme_default_sidebar_preference" string="Sidebar" class="col-3 o_light_label"/> |
||||
|
<field name="theme_default_sidebar_preference" class="col-5"/> |
||||
|
<div class="w-100"></div> |
||||
|
<label for="theme_default_chatter_preference" string="Chatter" class="col-3 o_light_label"/> |
||||
|
<field name="theme_default_chatter_preference" class="col-5"/> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="col-12 col-lg-6 o_setting_box"> |
||||
|
<div class="o_setting_left_pane"> |
||||
|
</div> |
||||
|
<div class="o_setting_right_pane"> |
||||
|
<span class="o_form_label">Theme Colors</span> |
||||
|
<div class="text-muted"> |
||||
|
Set the main theme colors |
||||
|
</div> |
||||
|
<div class="content-group"> |
||||
|
<div class="mt16 row"> |
||||
|
<label for="theme_color_brand" string="Brand" class="col-3 o_light_label"/> |
||||
|
<field name="theme_color_brand" widget="color" class="oe_inline"/> |
||||
|
<div class="w-100"></div> |
||||
|
<label for="theme_color_primary" string="Primary" class="col-3 o_light_label"/> |
||||
|
<field name="theme_color_primary" widget="color" class="oe_inline"/> |
||||
|
<div class="w-100"></div> |
||||
|
<label for="theme_color_required" string="Required" class="col-3 o_light_label"/> |
||||
|
<field name="theme_color_required" widget="color" class="oe_inline"/> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="col-12 col-lg-6 o_setting_box"> |
||||
|
<div class="o_setting_left_pane"> |
||||
|
</div> |
||||
|
<div class="o_setting_right_pane"> |
||||
|
<span class="o_form_label">Background Image</span> |
||||
|
<span class="fa fa-lg fa-building-o" title="Values set here are company-specific." aria-label="Values set here are company-specific." groups="base.group_multi_company" role="img"/> |
||||
|
<div class="text-muted"> |
||||
|
Set the background image for the apps menu |
||||
|
</div> |
||||
|
<div class="content-group"> |
||||
|
<div class="mt16 row"> |
||||
|
<field name="theme_background_image" widget="image" class="ml-4" required="1"/> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="col-12 col-lg-6 o_setting_box"> |
||||
|
<div class="o_setting_left_pane"> |
||||
|
</div> |
||||
|
<div class="o_setting_right_pane"> |
||||
|
<span class="o_form_label">Menu Colors</span> |
||||
|
<div class="text-muted"> |
||||
|
Set the main menu colors |
||||
|
</div> |
||||
|
<div class="content-group"> |
||||
|
<div class="mt16 row"> |
||||
|
<label for="theme_color_appbar_color" string="Menu Color" class="col-3 o_light_label"/> |
||||
|
<field name="theme_color_appbar_color" widget="color" class="oe_inline"/> |
||||
|
<div class="w-100"></div> |
||||
|
<label for="theme_color_appbar_background" string="Background" class="col-3 o_light_label"/> |
||||
|
<field name="theme_color_appbar_background" widget="color" class="oe_inline"/> |
||||
|
<div class="w-100"></div> |
||||
|
<label for="theme_color_menu" string="Apps Color" class="col-3 o_light_label"/> |
||||
|
<field name="theme_color_menu" widget="color" class="oe_inline"/> |
||||
|
<div class="w-100"></div> |
||||
|
<label for="theme_background_blend_mode" string="Apps Blend" class="col-3 o_light_label"/> |
||||
|
<field name="theme_background_blend_mode" class="col-5"/> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<h2 id="web_theme_extension_title">Backend Theme Extensions</h2> |
||||
|
<div class="row mt16 o_settings_container" name="web_theme_extension"> |
||||
|
<div class="col-12 col-lg-6 o_setting_box"> |
||||
|
<div class="o_setting_left_pane"> |
||||
|
<field name="module_muk_web_theme_mail"/> |
||||
|
</div> |
||||
|
<div class="o_setting_right_pane"> |
||||
|
<label for="module_muk_web_theme_mail"/> |
||||
|
<div class="text-muted"> |
||||
|
Optimizes the mail chatter for the theme |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="col-12 col-lg-6 o_setting_box"> |
||||
|
<div class="o_setting_left_pane"> |
||||
|
<field name="module_muk_web_theme_branding"/> |
||||
|
</div> |
||||
|
<div class="o_setting_right_pane"> |
||||
|
<label for="module_muk_web_theme_branding"/> |
||||
|
<div class="text-muted"> |
||||
|
Customize the theme according to your needs |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="col-12 col-lg-6 o_setting_box"> |
||||
|
<div class="o_setting_left_pane"> |
||||
|
<field name="module_muk_web_theme_website"/> |
||||
|
</div> |
||||
|
<div class="o_setting_right_pane"> |
||||
|
<label for="module_muk_web_theme_website"/> |
||||
|
<div class="text-muted"> |
||||
|
Add theme styled website navigation |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="col-12 col-lg-6 o_setting_box"> |
||||
|
<div class="o_setting_left_pane"> |
||||
|
<field name="module_muk_web_theme_mobile"/> |
||||
|
</div> |
||||
|
<div class="o_setting_right_pane"> |
||||
|
<label for="module_muk_web_theme_mobile"/> |
||||
|
<div class="text-muted"> |
||||
|
Allow Odoo to be used as a PWA app |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
</odoo> |
@ -1,40 +1,45 @@ |
|||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||
|
|
||||
<!-- |
|
||||
Copyright (C) 2018 MuK IT GmbH |
|
||||
|
|
||||
This program is free software: you can redistribute it and/or modify |
|
||||
it under the terms of the GNU Affero General Public License as |
|
||||
published by the Free Software Foundation, either version 3 of the |
|
||||
License, or (at your option) any later version. |
|
||||
|
|
||||
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 Affero General Public License for more details. |
|
||||
|
|
||||
You should have received a copy of the GNU Affero General Public License |
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
||||
--> |
|
||||
|
|
||||
<odoo> |
|
||||
|
|
||||
<record id="res_users_preferences" model="ir.ui.view"> |
|
||||
<field name="name">res.users.preferences</field> |
|
||||
<field name="model">res.users</field> |
|
||||
<field name="inherit_id" ref="base.view_users_form_simple_modif" /> |
|
||||
<field name="arch" type="xml"> |
|
||||
<xpath expr="//group[@name='preference_email']/parent::group" position="after"> |
|
||||
<group string="Theme Preferences" name="preference_theme"> |
|
||||
<group > |
|
||||
<field name="sidebar_type" readonly="0"/> |
|
||||
</group> |
|
||||
<group > |
|
||||
<field name="chatter_position" readonly="0" /> |
|
||||
</group> |
|
||||
</group> |
|
||||
</xpath> |
|
||||
</field> |
|
||||
</record> |
|
||||
|
|
||||
</odoo> |
|
||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
|
||||
|
<!-- |
||||
|
|
||||
|
Copyright (c) 2017-2019 MuK IT GmbH. |
||||
|
|
||||
|
This file is part of MuK Backend Theme |
||||
|
(see https://mukit.at). |
||||
|
|
||||
|
This program is free software: you can redistribute it and/or modify |
||||
|
it under the terms of the GNU Lesser General Public License as published by |
||||
|
the Free Software Foundation, either version 3 of the License, or |
||||
|
(at your option) any later version. |
||||
|
|
||||
|
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 for more details. |
||||
|
|
||||
|
You should have received a copy of the GNU Lesser General Public License |
||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
|
|
||||
|
--> |
||||
|
|
||||
|
<odoo> |
||||
|
|
||||
|
<record id="res_users_preferences" model="ir.ui.view"> |
||||
|
<field name="name">res.users.preferences</field> |
||||
|
<field name="model">res.users</field> |
||||
|
<field name="inherit_id" ref="base.view_users_form_simple_modif" /> |
||||
|
<field name="arch" type="xml"> |
||||
|
<xpath expr="//group[@name='preference_email']/parent::group" position="after"> |
||||
|
<group string="Theme Preferences" name="preference_theme"> |
||||
|
<group > |
||||
|
<field name="sidebar_type" readonly="0"/> |
||||
|
</group> |
||||
|
<group > |
||||
|
<field name="chatter_position" readonly="0" /> |
||||
|
</group> |
||||
|
</group> |
||||
|
</xpath> |
||||
|
</field> |
||||
|
</record> |
||||
|
|
||||
|
</odoo> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue