From fcd017503b095d01acdf8cd210ae543b7600ac61 Mon Sep 17 00:00:00 2001 From: MuK IT GmbH Date: Sat, 13 Jul 2019 16:20:26 +0000 Subject: [PATCH] publish muk_web_theme - 12.0 --- muk_web_theme/LICENSE | 776 ++++-------------- muk_web_theme/README.rst | 247 +++--- muk_web_theme/__init__.py | 17 +- muk_web_theme/__manifest__.py | 21 +- muk_web_theme/data/res_company.xml | 59 +- muk_web_theme/doc/index.rst | 247 +++--- muk_web_theme/models/__init__.py | 49 +- muk_web_theme/models/ir_http.py | 69 +- muk_web_theme/models/res_company.py | 17 +- muk_web_theme/models/res_config_settings.py | 305 +++---- muk_web_theme/models/res_users.py | 17 +- muk_web_theme/static/src/js/chrome/actions.js | 85 +- muk_web_theme/static/src/js/chrome/apps.js | 199 ++--- muk_web_theme/static/src/js/chrome/appsbar.js | 147 ++-- muk_web_theme/static/src/js/chrome/menu.js | 19 +- muk_web_theme/static/src/js/chrome/pager.js | 95 +-- muk_web_theme/static/src/js/chrome/sidebar.js | 95 +-- muk_web_theme/static/src/js/core/search.js | 267 +++--- .../static/src/js/fields/relational.js | 131 +-- .../static/src/js/views/form_renderer.js | 91 +- .../static/src/js/views/form_view.js | 105 +-- .../static/src/js/views/list_renderer.js | 209 ++--- .../static/src/js/views/search_view.js | 81 +- muk_web_theme/static/src/scss/apps.scss | 231 +++--- muk_web_theme/static/src/scss/appsbar.scss | 19 +- muk_web_theme/static/src/scss/colors.scss | 67 +- .../static/src/scss/control_panel.scss | 19 +- muk_web_theme/static/src/scss/fields.scss | 75 +- muk_web_theme/static/src/scss/fonts.scss | 117 +-- muk_web_theme/static/src/scss/form_view.scss | 383 ++++----- muk_web_theme/static/src/scss/layout.scss | 147 ++-- muk_web_theme/static/src/scss/list_view.scss | 19 +- muk_web_theme/static/src/scss/mixins.scss | 85 +- muk_web_theme/static/src/scss/navbar.scss | 247 +++--- .../static/src/scss/notification.scss | 49 +- muk_web_theme/static/src/scss/settings.scss | 71 +- muk_web_theme/static/src/scss/variables.scss | 119 +-- muk_web_theme/static/src/xml/apps.xml | 147 ++-- muk_web_theme/static/src/xml/appsbar.xml | 89 +- muk_web_theme/static/src/xml/navbar.xml | 177 ++-- muk_web_theme/static/src/xml/shortcuts.xml | 75 +- muk_web_theme/static/src/xml/sidebar.xml | 67 +- muk_web_theme/static/src/xml/views.xml | 193 ++--- muk_web_theme/template/assets.xml | 159 ++-- muk_web_theme/template/web.xml | 67 +- .../views/res_config_settings_view.xml | 333 ++++---- muk_web_theme/views/res_users.xml | 85 +- 47 files changed, 3045 insertions(+), 3343 deletions(-) diff --git a/muk_web_theme/LICENSE b/muk_web_theme/LICENSE index faf7bf4..153d416 100644 --- a/muk_web_theme/LICENSE +++ b/muk_web_theme/LICENSE @@ -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. + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies 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 \ No newline at end of file + + 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. \ No newline at end of file diff --git a/muk_web_theme/README.rst b/muk_web_theme/README.rst index 76c46c9..1955512 100644 --- a/muk_web_theme/README.rst +++ b/muk_web_theme/README.rst @@ -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 `_). - -To install our modules using the package manager make sure -`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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -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 `_ 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 `` - -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 - -Images ------------- - -Some pictures are based on or inspired by: - -* `Freepik `_ - -Projects ------------- - -Parts of the module are based on or inspired by: - -* `Web Responsive `_ -* `Openworx Backend Theme `_ - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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 `_). + +To install our modules using the package manager make sure +`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 `` + +The module name consists of the Odoo version and the module name, where +underscores are replaced by a dash. + +**Module:** + +``odoo-addon-`` + +**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 `` + +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 `_ +and find a more detailed installation guide on our `website `_. + +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 `_ 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 `` + +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 + +Images +------------ + +Some pictures are based on or inspired by: + +* `Freepik `_ + +Projects +------------ + +Parts of the module are inspired by: + +* `Web Responsive `_ +* `List Range Selection `_ +* `Openworx Backend Theme `_ + +Author & Maintainer +------------------- + +This module is maintained by the `MuK IT GmbH `_. + +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). diff --git a/muk_web_theme/__init__.py b/muk_web_theme/__init__.py index d1c1448..2fe7983 100644 --- a/muk_web_theme/__init__.py +++ b/muk_web_theme/__init__.py @@ -1,19 +1,22 @@ ################################################################################### # -# Copyright (C) 2018 MuK IT GmbH +# 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 Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. +# 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 Affero General Public License for more details. +# GNU Lesser 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 . +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . # ################################################################################### diff --git a/muk_web_theme/__manifest__.py b/muk_web_theme/__manifest__.py index 224a3da..b920dbd 100644 --- a/muk_web_theme/__manifest__.py +++ b/muk_web_theme/__manifest__.py @@ -1,27 +1,30 @@ ################################################################################### # -# Copyright (C) 2018 MuK IT GmbH +# 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 Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. +# 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 Affero General Public License for more details. +# GNU Lesser 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 . +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . # ################################################################################### { "name": "MuK Backend Theme", "summary": "Odoo Community Backend Theme", - "version": "12.0.1.6.10", + "version": "12.0.2.0.0", "category": "Themes/Backend", - "license": "AGPL-3", + "license": "LGPL-3", "author": "MuK IT", "website": "http://www.mukit.at", 'live_test_url': 'https://mukit.at/r/SgN', diff --git a/muk_web_theme/data/res_company.xml b/muk_web_theme/data/res_company.xml index 623df9f..2d1a17e 100644 --- a/muk_web_theme/data/res_company.xml +++ b/muk_web_theme/data/res_company.xml @@ -1,27 +1,32 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/muk_web_theme/doc/index.rst b/muk_web_theme/doc/index.rst index 76c46c9..1955512 100644 --- a/muk_web_theme/doc/index.rst +++ b/muk_web_theme/doc/index.rst @@ -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 `_). - -To install our modules using the package manager make sure -`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 `` - -The module name consists of the Odoo version and the module name, where -underscores are replaced by a dash. - -**Module:** - -``odoo-addon-`` - -**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 `` - -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 `_ -and find a more detailed installation guide on our `website `_. - -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 `_ 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 `` - -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 - -Images ------------- - -Some pictures are based on or inspired by: - -* `Freepik `_ - -Projects ------------- - -Parts of the module are based on or inspired by: - -* `Web Responsive `_ -* `Openworx Backend Theme `_ - -Author & Maintainer -------------------- - -This module is maintained by the `MuK IT GmbH `_. - -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 `_). + +To install our modules using the package manager make sure +`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 `` + +The module name consists of the Odoo version and the module name, where +underscores are replaced by a dash. + +**Module:** + +``odoo-addon-`` + +**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 `` + +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 `_ +and find a more detailed installation guide on our `website `_. + +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 `_ 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 `` + +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 + +Images +------------ + +Some pictures are based on or inspired by: + +* `Freepik `_ + +Projects +------------ + +Parts of the module are inspired by: + +* `Web Responsive `_ +* `List Range Selection `_ +* `Openworx Backend Theme `_ + +Author & Maintainer +------------------- + +This module is maintained by the `MuK IT GmbH `_. + +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). diff --git a/muk_web_theme/models/__init__.py b/muk_web_theme/models/__init__.py index 350b9fe..cfb3fe5 100644 --- a/muk_web_theme/models/__init__.py +++ b/muk_web_theme/models/__init__.py @@ -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 . -# -################################################################################### - -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 . +# +################################################################################### + +from . import res_company +from . import res_users +from . import ir_http +from . import res_config_settings diff --git a/muk_web_theme/models/ir_http.py b/muk_web_theme/models/ir_http.py index 49ac088..7dd2c09 100644 --- a/muk_web_theme/models/ir_http.py +++ b/muk_web_theme/models/ir_http.py @@ -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 . -# -################################################################################### - -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 . +# +################################################################################### + +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 diff --git a/muk_web_theme/models/res_company.py b/muk_web_theme/models/res_company.py index fd10e48..7062ef4 100644 --- a/muk_web_theme/models/res_company.py +++ b/muk_web_theme/models/res_company.py @@ -1,19 +1,22 @@ ################################################################################### # -# Copyright (C) 2018 MuK IT GmbH +# 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 Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. +# 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 Affero General Public License for more details. +# GNU Lesser 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 . +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . # ################################################################################### diff --git a/muk_web_theme/models/res_config_settings.py b/muk_web_theme/models/res_config_settings.py index 83a2c89..8097476 100644 --- a/muk_web_theme/models/res_config_settings.py +++ b/muk_web_theme/models/res_config_settings.py @@ -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 . -# -################################################################################### - -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 . +# +################################################################################### + +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 \ No newline at end of file diff --git a/muk_web_theme/models/res_users.py b/muk_web_theme/models/res_users.py index 7e5bc34..fa7e815 100644 --- a/muk_web_theme/models/res_users.py +++ b/muk_web_theme/models/res_users.py @@ -1,19 +1,22 @@ ################################################################################### # -# Copyright (C) 2018 MuK IT GmbH +# 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 Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. +# 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 Affero General Public License for more details. +# GNU Lesser 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 . +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . # ################################################################################### diff --git a/muk_web_theme/static/src/js/chrome/actions.js b/muk_web_theme/static/src/js/chrome/actions.js index ef60201..ae8d883 100644 --- a/muk_web_theme/static/src/js/chrome/actions.js +++ b/muk_web_theme/static/src/js/chrome/actions.js @@ -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 . -* -**********************************************************************************/ - -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 . +* +**********************************************************************************/ + +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'); + }, +}); + }); \ No newline at end of file diff --git a/muk_web_theme/static/src/js/chrome/apps.js b/muk_web_theme/static/src/js/chrome/apps.js index 6852716..dea2e15 100644 --- a/muk_web_theme/static/src/js/chrome/apps.js +++ b/muk_web_theme/static/src/js/chrome/apps.js @@ -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 . -* -**********************************************************************************/ - -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 . +* +**********************************************************************************/ + +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'); + }, +})); + }); \ No newline at end of file diff --git a/muk_web_theme/static/src/js/chrome/appsbar.js b/muk_web_theme/static/src/js/chrome/appsbar.js index b98f8d5..c4e3645 100644 --- a/muk_web_theme/static/src/js/chrome/appsbar.js +++ b/muk_web_theme/static/src/js/chrome/appsbar.js @@ -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 . -* -**********************************************************************************/ - -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 . +* +**********************************************************************************/ + +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; + }); \ No newline at end of file diff --git a/muk_web_theme/static/src/js/chrome/menu.js b/muk_web_theme/static/src/js/chrome/menu.js index 8f451e0..689dff0 100644 --- a/muk_web_theme/static/src/js/chrome/menu.js +++ b/muk_web_theme/static/src/js/chrome/menu.js @@ -1,19 +1,22 @@ /********************************************************************************** -* -* Copyright (C) 2017 MuK IT GmbH +* +* 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 Affero General Public License as -* published by the Free Software Foundation, either version 3 of the -* License, or (at your option) any later version. +* 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 Affero General Public License for more details. +* GNU Lesser 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 . +* You should have received a copy of the GNU Lesser General Public License +* along with this program. If not, see . * **********************************************************************************/ diff --git a/muk_web_theme/static/src/js/chrome/pager.js b/muk_web_theme/static/src/js/chrome/pager.js index 5ef4266..7f56107 100644 --- a/muk_web_theme/static/src/js/chrome/pager.js +++ b/muk_web_theme/static/src/js/chrome/pager.js @@ -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 . -* -**********************************************************************************/ - -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 . +* +**********************************************************************************/ + +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(); + }, +}); + }); \ No newline at end of file diff --git a/muk_web_theme/static/src/js/chrome/sidebar.js b/muk_web_theme/static/src/js/chrome/sidebar.js index 448fa54..af7c128 100644 --- a/muk_web_theme/static/src/js/chrome/sidebar.js +++ b/muk_web_theme/static/src/js/chrome/sidebar.js @@ -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 . -* -**********************************************************************************/ - -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 . +* +**********************************************************************************/ + +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'; + } + }); + } + }, +}); + }); \ No newline at end of file diff --git a/muk_web_theme/static/src/js/core/search.js b/muk_web_theme/static/src/js/core/search.js index c428357..6343671 100644 --- a/muk_web_theme/static/src/js/core/search.js +++ b/muk_web_theme/static/src/js/core/search.js @@ -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 . -* -**********************************************************************************/ - -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: "", - post: "", - }); - 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 . +* +**********************************************************************************/ + +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: "", + post: "", + }); + 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; + }); \ No newline at end of file diff --git a/muk_web_theme/static/src/js/fields/relational.js b/muk_web_theme/static/src/js/fields/relational.js index 3dd267c..4f29831 100644 --- a/muk_web_theme/static/src/js/fields/relational.js +++ b/muk_web_theme/static/src/js/fields/relational.js @@ -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 . -* -**********************************************************************************/ - -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 . +* +**********************************************************************************/ + +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; + } +}); + }); \ No newline at end of file diff --git a/muk_web_theme/static/src/js/views/form_renderer.js b/muk_web_theme/static/src/js/views/form_renderer.js index e4ee8de..6bba0df 100644 --- a/muk_web_theme/static/src/js/views/form_renderer.js +++ b/muk_web_theme/static/src/js/views/form_renderer.js @@ -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 . -* -**********************************************************************************/ - -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 . +* +**********************************************************************************/ + +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; + }, +}); + }); \ No newline at end of file diff --git a/muk_web_theme/static/src/js/views/form_view.js b/muk_web_theme/static/src/js/views/form_view.js index 5e7175c..f8d01e5 100644 --- a/muk_web_theme/static/src/js/views/form_view.js +++ b/muk_web_theme/static/src/js/views/form_view.js @@ -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 . -* -**********************************************************************************/ - -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 . +* +**********************************************************************************/ + +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; + } + }, +}); + +}); diff --git a/muk_web_theme/static/src/js/views/list_renderer.js b/muk_web_theme/static/src/js/views/list_renderer.js index 1a413ee..b5eb947 100644 --- a/muk_web_theme/static/src/js/views/list_renderer.js +++ b/muk_web_theme/static/src/js/views/list_renderer.js @@ -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 . -* -**********************************************************************************/ - -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 . +* +**********************************************************************************/ + +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; + } +}); + }); \ No newline at end of file diff --git a/muk_web_theme/static/src/js/views/search_view.js b/muk_web_theme/static/src/js/views/search_view.js index 81a57a7..94d4239 100644 --- a/muk_web_theme/static/src/js/views/search_view.js +++ b/muk_web_theme/static/src/js/views/search_view.js @@ -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 . -* -**********************************************************************************/ - -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 . +* +**********************************************************************************/ + +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); + }, +}); + }); \ No newline at end of file diff --git a/muk_web_theme/static/src/scss/apps.scss b/muk_web_theme/static/src/scss/apps.scss index 11ff559..e9b1739 100644 --- a/muk_web_theme/static/src/scss/apps.scss +++ b/muk_web_theme/static/src/scss/apps.scss @@ -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 . -* -**********************************************************************************/ - -.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 . +* +**********************************************************************************/ + +.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; + } + } + } } \ No newline at end of file diff --git a/muk_web_theme/static/src/scss/appsbar.scss b/muk_web_theme/static/src/scss/appsbar.scss index 4678f90..f651eac 100644 --- a/muk_web_theme/static/src/scss/appsbar.scss +++ b/muk_web_theme/static/src/scss/appsbar.scss @@ -1,19 +1,22 @@ /********************************************************************************** -* -* Copyright (C) 2017 MuK IT GmbH +* +* 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 Affero General Public License as -* published by the Free Software Foundation, either version 3 of the -* License, or (at your option) any later version. +* 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 Affero General Public License for more details. +* GNU Lesser 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 . +* You should have received a copy of the GNU Lesser General Public License +* along with this program. If not, see . * **********************************************************************************/ diff --git a/muk_web_theme/static/src/scss/colors.scss b/muk_web_theme/static/src/scss/colors.scss index 16fe7cb..c484d4e 100644 --- a/muk_web_theme/static/src/scss/colors.scss +++ b/muk_web_theme/static/src/scss/colors.scss @@ -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 . -* -**********************************************************************************/ - -$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 . +* +**********************************************************************************/ + +$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%); + diff --git a/muk_web_theme/static/src/scss/control_panel.scss b/muk_web_theme/static/src/scss/control_panel.scss index 82febe9..733d8a7 100644 --- a/muk_web_theme/static/src/scss/control_panel.scss +++ b/muk_web_theme/static/src/scss/control_panel.scss @@ -1,19 +1,22 @@ /********************************************************************************** -* -* Copyright (C) 2017 MuK IT GmbH +* +* 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 Affero General Public License as -* published by the Free Software Foundation, either version 3 of the -* License, or (at your option) any later version. +* 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 Affero General Public License for more details. +* GNU Lesser 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 . +* You should have received a copy of the GNU Lesser General Public License +* along with this program. If not, see . * **********************************************************************************/ diff --git a/muk_web_theme/static/src/scss/fields.scss b/muk_web_theme/static/src/scss/fields.scss index d466be5..cf06fad 100644 --- a/muk_web_theme/static/src/scss/fields.scss +++ b/muk_web_theme/static/src/scss/fields.scss @@ -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 . -* -**********************************************************************************/ - -.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 . +* +**********************************************************************************/ + +.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; + } } \ No newline at end of file diff --git a/muk_web_theme/static/src/scss/fonts.scss b/muk_web_theme/static/src/scss/fonts.scss index 82bb2c2..23a5862 100644 --- a/muk_web_theme/static/src/scss/fonts.scss +++ b/muk_web_theme/static/src/scss/fonts.scss @@ -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 . -* -**********************************************************************************/ - -$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 . +* +**********************************************************************************/ + +$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); diff --git a/muk_web_theme/static/src/scss/form_view.scss b/muk_web_theme/static/src/scss/form_view.scss index 8b090b6..5144d6b 100644 --- a/muk_web_theme/static/src/scss/form_view.scss +++ b/muk_web_theme/static/src/scss/form_view.scss @@ -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 . -* -**********************************************************************************/ - -.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 . +* +**********************************************************************************/ + +.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'); + } + } + } } \ No newline at end of file diff --git a/muk_web_theme/static/src/scss/layout.scss b/muk_web_theme/static/src/scss/layout.scss index fbee233..8e887ef 100644 --- a/muk_web_theme/static/src/scss/layout.scss +++ b/muk_web_theme/static/src/scss/layout.scss @@ -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 . -* -**********************************************************************************/ - -//---------------------------------------------------------- -// 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 . +* +**********************************************************************************/ + +//---------------------------------------------------------- +// 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; + } +} diff --git a/muk_web_theme/static/src/scss/list_view.scss b/muk_web_theme/static/src/scss/list_view.scss index 6aff11b..6887432 100644 --- a/muk_web_theme/static/src/scss/list_view.scss +++ b/muk_web_theme/static/src/scss/list_view.scss @@ -1,19 +1,22 @@ /********************************************************************************** -* -* Copyright (C) 2017 MuK IT GmbH +* +* 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 Affero General Public License as -* published by the Free Software Foundation, either version 3 of the -* License, or (at your option) any later version. +* 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 Affero General Public License for more details. +* GNU Lesser 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 . +* You should have received a copy of the GNU Lesser General Public License +* along with this program. If not, see . * **********************************************************************************/ diff --git a/muk_web_theme/static/src/scss/mixins.scss b/muk_web_theme/static/src/scss/mixins.scss index 05ccd04..1329c0a 100644 --- a/muk_web_theme/static/src/scss/mixins.scss +++ b/muk_web_theme/static/src/scss/mixins.scss @@ -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 . -* -**********************************************************************************/ - -@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 . +* +**********************************************************************************/ + +@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; + } + } } \ No newline at end of file diff --git a/muk_web_theme/static/src/scss/navbar.scss b/muk_web_theme/static/src/scss/navbar.scss index 787f154..9ea91fc 100644 --- a/muk_web_theme/static/src/scss/navbar.scss +++ b/muk_web_theme/static/src/scss/navbar.scss @@ -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 . -* -**********************************************************************************/ - -@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 . +* +**********************************************************************************/ + +@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; + } + } + } + + } + } } \ No newline at end of file diff --git a/muk_web_theme/static/src/scss/notification.scss b/muk_web_theme/static/src/scss/notification.scss index 64dcf57..3bb6d2c 100644 --- a/muk_web_theme/static/src/scss/notification.scss +++ b/muk_web_theme/static/src/scss/notification.scss @@ -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 . -* -**********************************************************************************/ - -.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 . +* +**********************************************************************************/ + +.o_notification_manager { + .o_buttons { + padding: 5px; + } } \ No newline at end of file diff --git a/muk_web_theme/static/src/scss/settings.scss b/muk_web_theme/static/src/scss/settings.scss index 0f9ced6..b4b6e28 100644 --- a/muk_web_theme/static/src/scss/settings.scss +++ b/muk_web_theme/static/src/scss/settings.scss @@ -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 . -* -**********************************************************************************/ - -@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 . +* +**********************************************************************************/ + +@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; + } + } } \ No newline at end of file diff --git a/muk_web_theme/static/src/scss/variables.scss b/muk_web_theme/static/src/scss/variables.scss index 06c3715..49d0281 100644 --- a/muk_web_theme/static/src/scss/variables.scss +++ b/muk_web_theme/static/src/scss/variables.scss @@ -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 . -* -**********************************************************************************/ - -//---------------------------------------------------------- -// 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 . +* +**********************************************************************************/ + +//---------------------------------------------------------- +// 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; \ No newline at end of file diff --git a/muk_web_theme/static/src/xml/apps.xml b/muk_web_theme/static/src/xml/apps.xml index 3b55aa5..70c912f 100644 --- a/muk_web_theme/static/src/xml/apps.xml +++ b/muk_web_theme/static/src/xml/apps.xml @@ -1,72 +1,77 @@ - - - - - - - - - #menu_id=#{app.menuID}&action_id=#{app.actionID} - - - h - - - fa fa-th - - -
-
-
-
-
- -
-
- -
-
-
-
- - - - - - - - - - - - - - - - - - - - + + + + + + + + + #menu_id=#{app.menuID}&action_id=#{app.actionID} + + + h + + + fa fa-th + + +
+
+
+
+
+ +
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + +
+ + + \ No newline at end of file diff --git a/muk_web_theme/static/src/xml/appsbar.xml b/muk_web_theme/static/src/xml/appsbar.xml index 20dfa07..36d7859 100644 --- a/muk_web_theme/static/src/xml/appsbar.xml +++ b/muk_web_theme/static/src/xml/appsbar.xml @@ -1,43 +1,48 @@ - - - - - - - - - - + + + + + + + +
+ +
+
+
\ No newline at end of file diff --git a/muk_web_theme/static/src/xml/navbar.xml b/muk_web_theme/static/src/xml/navbar.xml index ed67cc8..6f7e23f 100644 --- a/muk_web_theme/static/src/xml/navbar.xml +++ b/muk_web_theme/static/src/xml/navbar.xml @@ -1,87 +1,92 @@ - - - - - - - - - - - -
- - - - - - -
  • - - - - - -
  • -
    - -
  • - - -
  • -
    -
    - - - - -
    - - - - - - - -
    -
    -
    - + + + + + + + + + + + +
    + + + + + + +
  • + + + + + +
  • +
    + +
  • + + +
  • +
    +
    + + + + +
    + + + + + + + +
    +
    +
    + \ No newline at end of file diff --git a/muk_web_theme/static/src/xml/shortcuts.xml b/muk_web_theme/static/src/xml/shortcuts.xml index a3ea7ac..2fafc34 100644 --- a/muk_web_theme/static/src/xml/shortcuts.xml +++ b/muk_web_theme/static/src/xml/shortcuts.xml @@ -1,36 +1,41 @@ - - - - - - - - - - Open the apps menu - - Alt + h - - - Control + Alt + h - - - - - + + + + + + + + + + Open the apps menu + + Alt + h + + + Control + Alt + h + + + + + \ No newline at end of file diff --git a/muk_web_theme/static/src/xml/sidebar.xml b/muk_web_theme/static/src/xml/sidebar.xml index d7fe158..626bb69 100644 --- a/muk_web_theme/static/src/xml/sidebar.xml +++ b/muk_web_theme/static/src/xml/sidebar.xml @@ -1,32 +1,37 @@ - - - - - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/muk_web_theme/static/src/xml/views.xml b/muk_web_theme/static/src/xml/views.xml index b28be18..a0c1600 100644 --- a/muk_web_theme/static/src/xml/views.xml +++ b/muk_web_theme/static/src/xml/views.xml @@ -1,95 +1,100 @@ - - - - - - - - - - - - - - - - - - - - Edit - - - - - - Create - - - - - - Save - - - - - - Discard - - - - - - - - - Create - - - - - - - Save - - - - - - - Discard - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + Edit + + + + + + Create + + + + + + Save + + + + + + Discard + + + + + + + + + Create + + + + + + + Save + + + + + + + Discard + + + + + + + + + + + + + \ No newline at end of file diff --git a/muk_web_theme/template/assets.xml b/muk_web_theme/template/assets.xml index 841e32a..830aaff 100644 --- a/muk_web_theme/template/assets.xml +++ b/muk_web_theme/template/assets.xml @@ -1,77 +1,82 @@ - - - - - - - - - - - - -