Merge branch 'master' into pr_batch_masks
@ -1,674 +0,0 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is 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. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
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.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
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 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. Use with the GNU Affero General Public License.
|
||||
|
||||
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 Affero 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 special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU 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 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 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 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
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<http://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||
@ -1,335 +0,0 @@
|
||||
# ChangeLog MULTICOMPANY
|
||||
|
||||
## 12.0.1
|
||||
|
||||
NEW add stock warehouse sharing list
|
||||
NEW add triggers create, update, delete
|
||||
FIX uniformize trigger
|
||||
FIX uniformize extrafields management
|
||||
|
||||
## 12.0.0
|
||||
|
||||
FIX compatibility with Dolibarr 12
|
||||
FIX look and feel V12
|
||||
|
||||
## 11.0.2
|
||||
|
||||
NEW add stock warehouse sharing list
|
||||
|
||||
## 11.0.1
|
||||
|
||||
FIX form is not printed to addgroups on user card in Dolibarr 11.0
|
||||
|
||||
## 11.0.0
|
||||
|
||||
FIX compatibility with Dolibarr 11
|
||||
FIX better warning for upgrade message
|
||||
|
||||
## 10.0.3
|
||||
|
||||
NEW add templates of entities management
|
||||
NEW pre-format modules and shares of new entities with templates
|
||||
NEW possibility to duplicate usergroup rights by entities in transversal mode
|
||||
NEW add label of current entity in right top menu
|
||||
|
||||
## 10.0.1.3
|
||||
|
||||
FIX compatibility with Two-Factor Authentication module
|
||||
|
||||
## 10.0.1.2
|
||||
|
||||
FIX missing rename facture ref field (ref instead facnumber)
|
||||
|
||||
## 10.0.1.1
|
||||
|
||||
FIX wrong Font Awesome css class for check/uncheck button
|
||||
|
||||
## 10.0.1
|
||||
|
||||
FIX wrong sql request for show users in transversal mode
|
||||
|
||||
## 10.0.0
|
||||
|
||||
NEW add dropdown menu (look and feel v10)
|
||||
NEW change logo and background of entity in login page
|
||||
FIX compatibility with Dolibarr 10
|
||||
|
||||
## 9.0.4
|
||||
|
||||
FIX wrong sql request for show users in transversal mode
|
||||
|
||||
## 9.0.3
|
||||
|
||||
FIX display rights of allowed entity for user when it's not entity 1 on perms card
|
||||
|
||||
## 9.0.2
|
||||
|
||||
FIX better test for compatibility with multiple Dolibarr versions
|
||||
|
||||
## 9.0.1
|
||||
|
||||
FIX superadmin can always edit groups of another entities
|
||||
FIX need php 5.6 min
|
||||
FIX possibility to hide html title with constant MULTICOMPANY\_HIDE\_HTML\_TITLE
|
||||
FIX translation
|
||||
|
||||
## 9.0.0
|
||||
|
||||
NEW add customer invoices sharing
|
||||
NEW add proposal numbering sharing
|
||||
NEW an external plugin can easily include its own sharing settings
|
||||
NEW add buttons to stay in entity card
|
||||
FIX compatibility between proposal sharing and proposalnumber sharing
|
||||
FIX compatibility between invoice sharing and invoicenumber sharing
|
||||
FIX possibility to use a different referrer for numbering sharing
|
||||
FIX compatibility with Dolibarr 9
|
||||
|
||||
## 8.0.6
|
||||
|
||||
FIX backport from newest version for avoid error
|
||||
|
||||
## 8.0.5.4
|
||||
|
||||
FIX display rights of allowed entity for user when it's not entity 1 on perms card
|
||||
|
||||
## 8.0.5.3
|
||||
|
||||
FIX Make retrocompatibility for external modules using old method
|
||||
|
||||
## 8.0.5.2
|
||||
|
||||
FIX when using switchentityautoopen, this avoid to have the autopen always after first use
|
||||
|
||||
## 8.0.5.1
|
||||
|
||||
FIX missing cashdesk module authentication
|
||||
|
||||
## 8.0.5
|
||||
|
||||
FIX better check entities in user permissions tab
|
||||
|
||||
## 8.0.4
|
||||
|
||||
FIX autoopen of the "switch entity popup" was broken (used by DoliDroid)
|
||||
FIX version checking refactorization
|
||||
|
||||
## 8.0.3
|
||||
|
||||
FIX missing "printUserPasswordField" hook for mc authentication
|
||||
|
||||
## 8.0.2
|
||||
|
||||
FIX use POST instead GET for avoid false positive error with firewall (datatables)
|
||||
FIX avoid error when SHMOP cache is used
|
||||
|
||||
## 8.0.1
|
||||
|
||||
FIX Look and feel v8
|
||||
|
||||
## 8.0.0
|
||||
|
||||
NEW can share leave requests - holidays
|
||||
NEW ad possibility to change third party entity
|
||||
NEW add customer proposals sharing with read/write permissions
|
||||
NEW add read/write permissions for products/services sharing
|
||||
NEW add entity field in products/services list
|
||||
NEW add entity field in third parties list
|
||||
NEW add entity field in customer proposals list
|
||||
NEW add entity information in banner of elements sharing
|
||||
NEW add warning message when hide the entity in login page
|
||||
NEW add warning message if user not linked with group/entity (transversal mode)
|
||||
NEW change icons add specific icon by theme
|
||||
NEW Can set a parameter switchentityautoopen=1 on any urls to force open of the switch entity box, with no need to click:
|
||||
- This is required to provide a compatibility with native android application when menu is not managed by Dolibarr but by the android application
|
||||
|
||||
NEW change multiselect library
|
||||
NEW add product reseller prices sharing
|
||||
NEW add new parameters for enable and make visible an entity by default
|
||||
|
||||
FIX compatibility with Dolibarr 8
|
||||
FIX better redirection when you switch to another entity
|
||||
FIX better user/group management in transversal mode
|
||||
FIX many improvements and fixes for look and performance
|
||||
|
||||
## 7.0.4
|
||||
|
||||
FIX use POST instead GET for avoid false positive error with firewall (datatables)
|
||||
FIX avoid error when SHMOP cache is used
|
||||
|
||||
## 7.0.3
|
||||
|
||||
Fix: datatables error when "multicompany" directory is in root of dolibarr
|
||||
Fix: use REQUEST_URI by default when switch to another entity
|
||||
Fix: use dol_include_once() by default
|
||||
|
||||
## 7.0.2
|
||||
|
||||
Fix: broken feature when dropdown list in login page is hidden
|
||||
|
||||
## 7.0.1
|
||||
|
||||
Fix: hide dictionnaries sharings for the moment
|
||||
|
||||
## 7.0.0
|
||||
|
||||
Fix: compatibility with Dolibarr 7
|
||||
New: add cache system (memcached)
|
||||
New: use datatables for entities list
|
||||
New: add multiselect entities for rights management in transverse mode
|
||||
|
||||
## 6.0.1
|
||||
|
||||
Fix: compatibility with Dolibarr 7
|
||||
|
||||
## 6.0.0
|
||||
|
||||
Fix: compatibility with Dolibarr 6
|
||||
New: add members sharing
|
||||
New: add possibility to customizing dictionnaries by entity (llx\_c\_paiement and llc\_c\_payment\_term)
|
||||
New: getEntity function use true $shared value by default
|
||||
New: big refactorization of transverse mode
|
||||
|
||||
Improvements to the transverse mode:
|
||||
- A module activated in the main entity is no longer activated in the child entities, each entity can have its own modules activated.
|
||||
- You can define different rights per entity in the same group.
|
||||
- You can customize/supplement the rights of a user by entity
|
||||
|
||||
For developers:
|
||||
* You can remove $multicompany_transverse_mode in conf.php
|
||||
* Use $conf->global->MULTICOMPANY\_TRANSVERSE\_MODE instead $conf->multicompany->transverse_mode
|
||||
* Use getEntity('xxx') instead getEntity('xxx', 1) and use getEntity('xxx', 0) instead getEntity('xxx')
|
||||
* Use getEntity('thirdparty') instead getEntity('societe')
|
||||
* Use getEntity('member') instead getEntity('adherent')
|
||||
* Use getEntity('bankaccount') instead getEntity('bank_account')
|
||||
|
||||
## 5.0.0
|
||||
|
||||
Fix: compatibility with Dolibarr 5
|
||||
New: add expense report sharing
|
||||
|
||||
## 4.0.0
|
||||
|
||||
Fix: compatibility with Dolibarr 4
|
||||
New: add project sharing
|
||||
|
||||
## 3.8.2
|
||||
|
||||
Fix: compatibility with transverse modes
|
||||
|
||||
## 3.8.1
|
||||
|
||||
Fix: folder sharing was not working when more than 2 entities
|
||||
|
||||
## 3.8.0
|
||||
|
||||
Fix: compatibility with Dolibarr 3.8.x
|
||||
|
||||
## 3.7.3
|
||||
|
||||
Fix: folder sharing was not working when more than 2 entities
|
||||
|
||||
## 3.7.2
|
||||
|
||||
New: add transifex management
|
||||
New: change the development platform
|
||||
|
||||
## 3.7.1
|
||||
|
||||
New: add extrafields
|
||||
Fix: more bugs
|
||||
|
||||
## 3.7.0
|
||||
|
||||
Fix: compatibility with Dolibarr 3.7.x
|
||||
New: add invoice number sharing
|
||||
New: add script to move master entity with another entity
|
||||
New: add about page
|
||||
|
||||
## 3.6.2
|
||||
|
||||
Fix: folder sharing was not working when more than 2 entities
|
||||
|
||||
## 3.6.1
|
||||
|
||||
Fix: add stock sharing parameters
|
||||
|
||||
## 3.6.0
|
||||
|
||||
Fix: compatibility with Dolibarr 3.6.x
|
||||
Fix: show entities combobox only in transverse mode or with admin users
|
||||
Fix: automatic connection to the entity of the user if the drop down list of entities is hidden (use different login strictly by entity)
|
||||
New: add multicompany function login
|
||||
|
||||
## 3.5.0
|
||||
|
||||
Fix: compatibility with Dolibarr 3.5.0
|
||||
|
||||
## 3.4.0
|
||||
|
||||
New: add bank sharing
|
||||
New: add product prices sharing
|
||||
New: add agenda sharing
|
||||
New: add stock sharing
|
||||
New: add Hungary translation
|
||||
Fix: compatibility with Dolibarr 3.4
|
||||
Fix: grant access for user card in transverse mode
|
||||
Fix: sharing services was not functional if the module product was not activated
|
||||
Fix: more bugs
|
||||
|
||||
## 3.2.2
|
||||
|
||||
New: add Netherland translation
|
||||
Fix: minor bugs and uniformize code
|
||||
Fix: add check method for login
|
||||
Fix: check permission in combobox
|
||||
Fix: remove constantes already defined by module
|
||||
Fix: compatibility with bureau2crea theme
|
||||
Fix: possibility to force entity un login page
|
||||
Fix: bad rights verification
|
||||
|
||||
## 3.2.1
|
||||
|
||||
no release
|
||||
|
||||
## 3.2.0
|
||||
|
||||
New: add sharing system for products/services and thirdparties/contacts between entities
|
||||
New: add category sharing between entities
|
||||
Fix: problem with user card access and wrong carriage return
|
||||
Fix: show login page options with hook manager
|
||||
Fix: update es\_ES and ca\_ES translations
|
||||
Fix: replace serialize by json
|
||||
Fix: security
|
||||
Fix: more bugs
|
||||
|
||||
## 3.1.2
|
||||
|
||||
Fix: invalid path if you do not use the custom directory
|
||||
|
||||
## 3.1.1
|
||||
|
||||
Fix: convert current admin to superadmin
|
||||
The administrator of the primary entity was not converted into superadministrator when activating the module,
|
||||
this happened during an update of a version of Dolibarr < 3.1 to >= 3.1
|
||||
|
||||
## 3.1.0
|
||||
|
||||
New: change logo
|
||||
New: add italian translation
|
||||
New: stay connected for switch entity
|
||||
New: add options tab in module configuration
|
||||
New: possibility to hide combobox in login page
|
||||
New: add transverse mode
|
||||
* Off mode: The rights and groups are managed in each entity: users belong to the entity for their rights
|
||||
* One mode: Groups can only belong to the entity = 0 and that the user belongs to a particular entity
|
||||
|
||||
Fix: translation
|
||||
|
||||
## 3.0.1
|
||||
|
||||
New: add spanish translation
|
||||
Fix: minor bugfix
|
||||
|
||||
## 3.0.0
|
||||
|
||||
First release of this module
|
||||
@ -1,16 +0,0 @@
|
||||
INSTALL
|
||||
-------
|
||||
|
||||
Since version 3 it is possible to define an alternative root directory,
|
||||
This allows you to store, same place, plug-ins and custom templates.
|
||||
Just create a directory at the root of Dolibarr (eg custom),
|
||||
then declare it in the file conf.php :
|
||||
|
||||
examples :
|
||||
|
||||
$dolibarr_main_url_root='http://myserver';
|
||||
$dolibarr_main_document_root='/path/of/dolibarr/htdocs';
|
||||
$dolibarr_main_url_root_alt='/custom';
|
||||
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom';
|
||||
|
||||
Copy "multicompany" directory to the root of "custom" directory.
|
||||
@ -1,11 +0,0 @@
|
||||
Thank you for your contribution
|
||||
|
||||
Developer:
|
||||
Régis Houssin <regis.houssin@inodbox.com>
|
||||
https://www.inodbox.com
|
||||
|
||||
Development platform:
|
||||
https://git.framasoft.org/inodbox/multicompany
|
||||
|
||||
Translation platform:
|
||||
https://www.transifex.com/inodbox/multicompany/
|
||||
@ -1,36 +0,0 @@
|
||||
Module for Multi-Company Management
|
||||
=========
|
||||
|
||||
This module enables multi-company to handle multiple entities on a single installation Dolibarr.
|
||||
|
||||
The sharing of the base product, customer base/contacts and user base and more...
|
||||
|
||||
This module required Dolibarr >= 9.0.0 stable installation
|
||||
|
||||
Thank you for your contribution
|
||||
|
||||
Contact
|
||||
--------
|
||||
This module is developped by Régis Houssin (<regis.houssin@inodbox.com>)
|
||||
|
||||
Website:
|
||||
<a href="https://www.inodbox.com/" target="_blank">www.inodbox.com</a>
|
||||
|
||||
Heypster french social network:
|
||||
<a href="https://www.heypster.com/fr/profile/21956" target="_blank">iNodbox</a>
|
||||
|
||||
Development platform:
|
||||
<a href="https://git.framasoft.org/inodbox/multicompany/" target="_blank">git.framasoft.org/inodbox/multicompany/</a>
|
||||
|
||||
Translation platform:
|
||||
<a href="https://www.transifex.com/inodbox/multicompany/" target="_blank">www.transifex.com/inodbox/multicompany/</a>
|
||||
|
||||
Licence
|
||||
-------
|
||||
GPLv3 or (at your option) any later version.
|
||||
|
||||
See COPYING for more information.
|
||||
|
||||
Other Licences
|
||||
--------------
|
||||
Uses Michel Fortin's PHP Markdown Licensed under BSD to display this README.
|
||||
@ -1,14 +0,0 @@
|
||||
Merci pour votre contribution
|
||||
|
||||
Développeur :
|
||||
Régis Houssin <regis.houssin@inodbox.com>
|
||||
https://www.inodbox.com
|
||||
|
||||
Heypster réseau social français
|
||||
https://www.heypster.com/fr/profile/21956
|
||||
|
||||
Plateforme de développement :
|
||||
https://git.framasoft.org/inodbox/multicompany
|
||||
|
||||
Plateforme de traduction :
|
||||
https://www.transifex.com/inodbox/multicompany/
|
||||
@ -1,76 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2011-2018 Regis Houssin <regis.houssin@inodbox.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file /multicompany/admin/about.php
|
||||
* \ingroup multicompany
|
||||
* \brief About Page
|
||||
*/
|
||||
|
||||
$res=@include("../../main.inc.php"); // For root directory
|
||||
if (! $res && file_exists($_SERVER['DOCUMENT_ROOT']."/main.inc.php"))
|
||||
$res=@include($_SERVER['DOCUMENT_ROOT']."/main.inc.php"); // Use on dev env only
|
||||
if (! $res) $res=@include("../../../main.inc.php"); // For "custom" directory
|
||||
|
||||
|
||||
// Libraries
|
||||
dol_include_once('/multicompany/lib/multicompany.lib.php');
|
||||
dol_include_once('/multicompany/lib/PHP_Markdown/markdown.php');
|
||||
|
||||
// Translations
|
||||
$langs->loadLangs(array('admin', 'multicompany@multicompany'));
|
||||
|
||||
// Security check
|
||||
if (empty($user->admin) || ! empty($user->entity)) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
$help_url='EN:Module_MultiCompany|FR:Module_MultiSociété';
|
||||
llxHeader('', $langs->trans("Module5000Name"), $help_url);
|
||||
|
||||
// Subheader
|
||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||
print load_fiche_titre($langs->trans("MultiCompanySetup"), $linkback, 'multicompany@multicompany',0,'multicompany_title');
|
||||
|
||||
// Configuration header
|
||||
$head = multicompany_prepare_head();
|
||||
dol_fiche_head($head, 'about', $langs->trans("Module5000Name"));
|
||||
|
||||
// About page goes here
|
||||
|
||||
$buffer = file_get_contents(dol_buildpath('/multicompany/README.md',0));
|
||||
print Markdown($buffer);
|
||||
|
||||
print '<br>';
|
||||
|
||||
$url = 'https://www.inodbox.com/';
|
||||
$link = '<a href="'.$url.'" target="_blank">iNodbox</a>';
|
||||
print $langs->trans("MulticompanyMoreModules", $link).'<br><br>';
|
||||
print '<a href="'.$url.'" target="_blank"><img border="0" width="180" src="'.dol_buildpath('/multicompany/img/inodbox.png',1).'"></a>';
|
||||
print '<br><br><br>';
|
||||
|
||||
print '<a target="_blank" href="'.dol_buildpath('/multicompany/COPYING',1).'"><img src="'.dol_buildpath('/multicompany/img/gplv3.png',1).'"/></a>';
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
llxFooter();
|
||||
|
||||
$db->close();
|
||||
@ -1,103 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2014-2018 Regis Houssin <regis.houssin@inodbox.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file /multicompany/admin/options.php
|
||||
* \ingroup multicompany
|
||||
* \brief Page to setup options for Multicompany module
|
||||
*/
|
||||
|
||||
|
||||
$res=@include("../../main.inc.php"); // For root directory
|
||||
if (! $res && file_exists($_SERVER['DOCUMENT_ROOT']."/main.inc.php"))
|
||||
$res=@include($_SERVER['DOCUMENT_ROOT']."/main.inc.php"); // Use on dev env only
|
||||
if (! $res) $res=@include("../../../main.inc.php"); // For "custom" directory
|
||||
|
||||
dol_include_once('/multicompany/lib/multicompany.lib.php');
|
||||
require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
|
||||
|
||||
$langs->loadLangs(array('admin', 'multicompany@multicompany'));
|
||||
|
||||
// Security check
|
||||
if (empty($user->admin) || ! empty($user->entity)) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
$action = GETPOST('action','alpha');
|
||||
|
||||
|
||||
/*
|
||||
* Action
|
||||
*/
|
||||
|
||||
if ($action == 'setvalue')
|
||||
{
|
||||
$result=dolibarr_set_const($db, "MULTICOMPANY_MEMCACHED_SERVER",GETPOST('MULTICOMPANY_MEMCACHED_SERVER', 'alpha'),'chaine',0,'',0);
|
||||
|
||||
if ($result >= 0)
|
||||
{
|
||||
setEventMessage($langs->trans("SetupSaved"));
|
||||
|
||||
// Force new value
|
||||
$conf->global->MULTICOMPANY_MEMCACHED_SERVER=GETPOST('MULTICOMPANY_MEMCACHED_SERVER', 'alpha');
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_print_error($db);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
$form=new Form($db);
|
||||
|
||||
$arrayofjs=array(
|
||||
'/multicompany/core/js/lib_head.js'
|
||||
);
|
||||
|
||||
$help_url='EN:Module_MultiCompany|FR:Module_MultiSociété';
|
||||
llxHeader('', $langs->trans("MultiCompanySetup"), $help_url, '', '', '', $arrayofjs);
|
||||
|
||||
|
||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||
print load_fiche_titre($langs->trans("MultiCompanySetup"),$linkback,'multicompany@multicompany',0,'multicompany_title');
|
||||
|
||||
$head=multicompany_prepare_head();
|
||||
dol_fiche_head($head, 'caches', $langs->trans("ModuleSetup"), -1);
|
||||
|
||||
print '<div>'.info_admin($langs->trans("MulticompanyCacheSystemInfo"), 0, 0, '1', 'clearboth').'</div>';
|
||||
|
||||
print '<form method="POST" action="'.$_SERVER["PHP_SELF"].'">';
|
||||
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
|
||||
print '<input type="hidden" name="action" value="setvalue">';
|
||||
|
||||
dol_include_once('/multicompany/admin/tpl/caches.tpl.php');
|
||||
|
||||
print '</div>';
|
||||
|
||||
// Boutons actions
|
||||
print '<div class="tabsAction">';
|
||||
print '<input type="submit" id="save" name="save" class="butAction linkobject" value="'.$langs->trans("Save").'" />';
|
||||
print '</form>'."\n";
|
||||
print '</div>';
|
||||
|
||||
llxFooter();
|
||||
$db->close();
|
||||
@ -1,131 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2009-2018 Regis Houssin <regis.houssin@inodbox.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file multicompany/admin/multicompany.php
|
||||
* \ingroup multicompany
|
||||
* \brief Page d'administration/configuration du module Multi-societe
|
||||
*/
|
||||
|
||||
$res=@include("../../main.inc.php"); // For root directory
|
||||
if (! $res && file_exists($_SERVER['DOCUMENT_ROOT']."/main.inc.php"))
|
||||
$res=@include($_SERVER['DOCUMENT_ROOT']."/main.inc.php"); // Use on dev env only
|
||||
if (! $res) $res=@include("../../../main.inc.php"); // For "custom" directory
|
||||
|
||||
dol_include_once('/multicompany/class/actions_multicompany.class.php', 'ActionsMulticompany');
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formadmin.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/html.formcompany.class.php';
|
||||
|
||||
$langs->loadLangs(array('admin', 'languages', 'multicompany@multicompany'));
|
||||
|
||||
if (! $user->admin || $user->entity) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
$action=GETPOST('action', 'alpha');
|
||||
|
||||
$object = new ActionsMulticompany($db);
|
||||
|
||||
$form=new Form($db);
|
||||
$formadmin=new FormAdmin($db);
|
||||
$formcompany=new FormCompany($db);
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
|
||||
$object->doAdminActions($action);
|
||||
|
||||
//$test = new DaoMulticompany($db);
|
||||
//$test->deleteEntityRecords(4);
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
$extrajs='';
|
||||
$extracss='';
|
||||
|
||||
if (empty($action) || $action == "update" || $action == "add") {
|
||||
$extrajs = array(
|
||||
'/multicompany/inc/datatables/js/jquery.dataTables.min.js',
|
||||
//'/multicompany/inc/datatables/responsive/js/dataTables.responsive.min.js',
|
||||
'/multicompany/inc/datatables/buttons/js/dataTables.buttons.min.js',
|
||||
'/multicompany/inc/datatables/buttons/js/buttons.colVis.min.js',
|
||||
'/multicompany/inc/datatables/buttons/js/buttons.html5.min.js'
|
||||
);
|
||||
$extracss = array(
|
||||
'/multicompany/inc/datatables/css/jquery.dataTables.min.css',
|
||||
//'/multicompany/inc/datatables/responsive/css/responsive.dataTables.min.css',
|
||||
'/multicompany/inc/datatables/buttons/css/buttons.dataTables.min.css'
|
||||
);
|
||||
} else if (! empty($conf->global->MULTICOMPANY_SHARINGS_ENABLED)) {
|
||||
$extrajs = array(
|
||||
'/multicompany/inc/multiselect/js/multiselect.min.js',
|
||||
//'/multicompany/inc/multiselect/js/multiselect.js'
|
||||
);
|
||||
$extracss = array(
|
||||
'/multicompany/inc/multiselect/css/bootstrap-iso.min.css'
|
||||
);
|
||||
}
|
||||
|
||||
$help_url='EN:Module_MultiCompany|FR:Module_MultiSociété';
|
||||
llxHeader('', $langs->trans("MultiCompanySetup"), $help_url, '', '', '', $extrajs, $extracss);
|
||||
|
||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||
print load_fiche_titre($langs->trans("MultiCompanySetup"), $linkback, 'multicompany@multicompany', 0, 'multicompany_title');
|
||||
|
||||
$head = multicompany_prepare_head();
|
||||
dol_fiche_head($head, 'entities', $object->getTitle($action), -1);
|
||||
|
||||
$level = checkMultiCompanyVersion();
|
||||
if ($level === 1 || $level === -1)
|
||||
{
|
||||
$text = $langs->trans("MultiCompanyIsOlderThanDolibarr");
|
||||
if ($level === -1) $text = $langs->trans("DolibarrIsOlderThanMulticompany");
|
||||
|
||||
print '<div class="multicompany_checker">';
|
||||
dol_htmloutput_mesg($text, '', 'warning', 1);
|
||||
print '</div>';
|
||||
|
||||
}
|
||||
|
||||
// Assign template values
|
||||
$object->assign_values($action);
|
||||
|
||||
// Isolate Boostrap for avoid conflicts
|
||||
if (! empty($conf->global->MULTICOMPANY_SHARINGS_ENABLED) && ! empty($action) && $action != "update" && $action != "add") {
|
||||
print '<div class="bootstrap-iso">';
|
||||
}
|
||||
|
||||
// Show the template
|
||||
$object->display();
|
||||
|
||||
// Isolate Boostrap for avoid conflicts
|
||||
if (! empty($conf->global->MULTICOMPANY_SHARINGS_ENABLED) && ! empty($action) && $action != "update" && $action != "add") {
|
||||
print '</div>';
|
||||
}
|
||||
|
||||
// Card end
|
||||
dol_fiche_end();
|
||||
// Footer
|
||||
llxFooter();
|
||||
// Close database handler
|
||||
$db->close();
|
||||
@ -1,115 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2014 Florian HENRY <florian.henry@open-concept.pro>
|
||||
* Copyright (C) 2016-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file multicompany/admin/multicompany.php
|
||||
* \ingroup multicompany
|
||||
* \brief Page to setup extra fields of entities
|
||||
*/
|
||||
|
||||
// Dolibarr environment
|
||||
$res=@include("../../main.inc.php"); // For root directory
|
||||
if (! $res && file_exists($_SERVER['DOCUMENT_ROOT']."/main.inc.php"))
|
||||
$res=@include($_SERVER['DOCUMENT_ROOT']."/main.inc.php"); // Use on dev env only
|
||||
if (! $res) $res=@include("../../../main.inc.php"); // For "custom" directory
|
||||
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
|
||||
dol_include_once('/multicompany/lib/multicompany.lib.php');
|
||||
|
||||
// Security check
|
||||
if (empty($user->admin) || ! empty($user->entity)) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
$langs->loadLangs(array('admin', 'other'));
|
||||
|
||||
$extrafields = new ExtraFields($db);
|
||||
$form = new Form($db);
|
||||
|
||||
// List of supported format
|
||||
$tmptype2label = ExtraFields::$type2label;
|
||||
$type2label = array('');
|
||||
foreach ($tmptype2label as $key => $val) $type2label[$key] = $langs->transnoentitiesnoconv($val);
|
||||
|
||||
$action = GETPOST('action', 'alpha');
|
||||
$attrname = GETPOST('attrname', 'alpha');
|
||||
$elementtype = 'entity'; // Must be the $table_element of the class that manage extrafield
|
||||
|
||||
|
||||
/*
|
||||
* Actions
|
||||
*/
|
||||
|
||||
require DOL_DOCUMENT_ROOT . '/core/actions_extrafields.inc.php';
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
$textobject = $langs->transnoentitiesnoconv("Entities");
|
||||
|
||||
$help_url='EN:Module_MultiCompany|FR:Module_MultiSociété';
|
||||
llxHeader('', $langs->trans("MultiCompanySetup"), $help_url);
|
||||
|
||||
$linkback = '<a href="' . DOL_URL_ROOT . '/admin/modules.php">' . $langs->trans("BackToModuleList") . '</a>';
|
||||
print load_fiche_titre($langs->trans("MultiCompanySetup"), $linkback, 'multicompany@multicompany',0,'multicompany_title');
|
||||
|
||||
// Configuration header
|
||||
$head = multicompany_prepare_head();
|
||||
dol_fiche_head($head, 'attributes', $langs->trans("ModuleSetup"), -1);
|
||||
|
||||
require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php';
|
||||
|
||||
dol_fiche_end();
|
||||
|
||||
// Buttons
|
||||
if ($action != 'create' && $action != 'edit') {
|
||||
print '<div class="tabsAction">';
|
||||
print '<a class="butAction" href="' . $_SERVER["PHP_SELF"] . '?action=create">' . $langs->trans("NewAttribute") . '</a>';
|
||||
print '</div>';
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
/* */
|
||||
/* Creation d'un champ optionnel */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
if ($action == 'create') {
|
||||
print "<br>";
|
||||
print load_fiche_titre($langs->trans('NewAttribute'));
|
||||
|
||||
require DOL_DOCUMENT_ROOT . '/core/tpl/admin_extrafields_add.tpl.php';
|
||||
}
|
||||
|
||||
/* ************************************************************************* */
|
||||
/* */
|
||||
/* Edition d'un champ optionnel */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
if ($action == 'edit' && ! empty($attrname)) {
|
||||
print "<br>";
|
||||
print load_fiche_titre($langs->trans("FieldEdition", $attrname));
|
||||
|
||||
require DOL_DOCUMENT_ROOT . '/core/tpl/admin_extrafields_edit.tpl.php';
|
||||
}
|
||||
|
||||
// End of page
|
||||
llxFooter();
|
||||
$db->close();
|
||||
@ -1,494 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2011-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file multicompany/admin/parameters.php
|
||||
* \ingroup multicompany
|
||||
* \brief Page d'administration/configuration du module Multi-Company
|
||||
*/
|
||||
|
||||
$res=@include("../../main.inc.php"); // For root directory
|
||||
if (! $res && file_exists($_SERVER['DOCUMENT_ROOT']."/main.inc.php"))
|
||||
$res=@include($_SERVER['DOCUMENT_ROOT']."/main.inc.php"); // Use on dev env only
|
||||
if (! $res) $res=@include("../../../main.inc.php"); // For "custom" directory
|
||||
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php';
|
||||
dol_include_once('/multicompany/class/actions_multicompany.class.php', 'ActionsMulticompany');
|
||||
|
||||
$langs->loadLangs(array('admin', 'multicompany@multicompany'));
|
||||
|
||||
// Security check
|
||||
if (empty($user->admin) || ! empty($user->entity)) {
|
||||
accessforbidden();
|
||||
}
|
||||
|
||||
$action=GETPOST('action','alpha');
|
||||
|
||||
$object = new ActionsMulticompany($db);
|
||||
|
||||
|
||||
/*
|
||||
* Action
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
$extrajs = array(
|
||||
'/multicompany/core/js/lib_head.js'
|
||||
);
|
||||
|
||||
$help_url='EN:Module_MultiCompany|FR:Module_MultiSociété';
|
||||
llxHeader('', $langs->trans("MultiCompanySetup"), $help_url,'','','',$extrajs);
|
||||
|
||||
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
|
||||
print load_fiche_titre($langs->trans("MultiCompanySetup"),$linkback,'multicompany@multicompany',0,'multicompany_title');
|
||||
|
||||
$head = multicompany_prepare_head();
|
||||
dol_fiche_head($head, 'options', $langs->trans("ModuleSetup"), -1);
|
||||
|
||||
$level = checkMultiCompanyVersion();
|
||||
if ($level === 1 || $level === -1)
|
||||
{
|
||||
$text = $langs->trans("MultiCompanyIsOlderThanDolibarr");
|
||||
if ($level === -1) $text = $langs->trans("DolibarrIsOlderThanMulticompany");
|
||||
|
||||
print '<div class="multicompany_checker">';
|
||||
dol_htmloutput_mesg($text, '', 'warning', 1);
|
||||
print '</div>';
|
||||
|
||||
}
|
||||
|
||||
$form=new Form($db);
|
||||
|
||||
$hidden=true;
|
||||
$checkconfig = checkMulticompanyAutentication();
|
||||
if ($checkconfig !== true) {
|
||||
if (! empty($conf->global->MULTICOMPANY_HIDE_LOGIN_COMBOBOX)) {
|
||||
$hidden=false;
|
||||
}
|
||||
print '<div id="mc_hide_login_combobox_error"'.($hidden ? ' style="display:none;"' : '').'>'.get_htmloutput_mesg($langs->trans("ErrorMulticompanyConfAuthentication"),'','error',1).'</div>';
|
||||
} else {
|
||||
if (empty($conf->global->MULTICOMPANY_HIDE_LOGIN_COMBOBOX)) {
|
||||
$hidden=false;
|
||||
}
|
||||
print '<div id="dol_hide_login_combobox_error"'.($hidden ? ' style="display:none;"' : '').'>'.get_htmloutput_mesg($langs->trans("ErrorDolibarrConfAuthentication"),'','error',1).'</div>';
|
||||
}
|
||||
|
||||
print '<table class="noborder" width="100%">';
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>'.$langs->trans("Parameters").'</td>'."\n";
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="center" width="100">'.$langs->trans("Value").'</td>'."\n";
|
||||
print '</tr>';
|
||||
|
||||
/*
|
||||
* System parameters
|
||||
*/
|
||||
|
||||
// Login page combobox activation
|
||||
print '<tr class="oddeven">';
|
||||
print '<td><span class="fa fa-cogs"></span><span class="multiselect-title">'.$langs->trans("HideLoginCombobox").'</span></td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="center" width="100">';
|
||||
if ($checkconfig !== true) {
|
||||
$input = array(
|
||||
'showhide' => array(
|
||||
'#mc_hide_login_combobox_error'
|
||||
)
|
||||
);
|
||||
} else {
|
||||
$input = array(
|
||||
'hideshow' => array(
|
||||
'#dol_hide_login_combobox_error'
|
||||
)
|
||||
);
|
||||
}
|
||||
$input['hideshow'][] = '#changeloginlogo';
|
||||
$input['hideshow'][] = '#changeloginbackground';
|
||||
$input['del'] = array('MULTICOMPANY_LOGIN_LOGO_BY_ENTITY', 'MULTICOMPANY_LOGIN_BACKGROUND_BY_ENTITY');
|
||||
print ajax_mcconstantonoff('MULTICOMPANY_HIDE_LOGIN_COMBOBOX', $input, 0);
|
||||
print '</td></tr>';
|
||||
|
||||
// Replace entity logo in login page
|
||||
print '<tr id="changeloginlogo" class="oddeven"'.(! empty($conf->global->MULTICOMPANY_HIDE_LOGIN_COMBOBOX) ? ' style="display:none;"' : '').'>';
|
||||
print '<td><span class="fa fa-cogs"></span><span class="multiselect-title">'.$langs->trans("EntityLogoInLoginPage").'</span></td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
|
||||
print '<td align="center" width="100">';
|
||||
$input = array(
|
||||
'showhide' => array(
|
||||
'#changeloginbackground'
|
||||
),
|
||||
'del' => array(
|
||||
'MULTICOMPANY_LOGIN_BACKGROUND_BY_ENTITY'
|
||||
)
|
||||
);
|
||||
print ajax_mcconstantonoff('MULTICOMPANY_LOGIN_LOGO_BY_ENTITY', $input, 0);
|
||||
print '</td></tr>';
|
||||
|
||||
// Replace entity background in login page
|
||||
print '<tr id="changeloginbackground" class="oddeven"'.(empty($conf->global->MULTICOMPANY_LOGIN_LOGO_BY_ENTITY) ? ' style="display:none;"' : '').'>';
|
||||
print '<td><span class="fa fa-cogs"></span><span class="multiselect-title">'.$langs->trans("EntityBackgroundInLoginPage").'</span></td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="center" width="100">';
|
||||
print ajax_mcconstantonoff('MULTICOMPANY_LOGIN_BACKGROUND_BY_ENTITY', '', 0);
|
||||
print '</td></tr>';
|
||||
|
||||
// Disable the new dropdown menu
|
||||
print '<tr id="disabledropdownmenu" class="oddeven">';
|
||||
print '<td><span class="fa fa-cogs"></span><span class="multiselect-title">'.$langs->trans("DisableSwitchEntityDropdownMenu").'</span></td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="center" width="100">';
|
||||
$input = array(
|
||||
'reload' => true
|
||||
);
|
||||
print ajax_mcconstantonoff('MULTICOMPANY_DROPDOWN_MENU_DISABLED', $input, 0);
|
||||
print '</td></tr>';
|
||||
|
||||
// Hide/View top menu entity label
|
||||
print '<tr id="showtopmenuentitylabel" class="oddeven">';
|
||||
print '<td><span class="fa fa-cogs"></span><span class="multiselect-title">'.$langs->trans("ShowTopMenuEntityLabel").'</span></td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="center" width="100">';
|
||||
$input = array(
|
||||
'reload' => true
|
||||
);
|
||||
print ajax_mcconstantonoff('MULTICOMPANY_NO_TOP_MENU_ENTITY_LABEL', $input, 0, 1);
|
||||
print '</td></tr>';
|
||||
|
||||
// Active by default during create
|
||||
print '<tr class="oddeven">';
|
||||
print '<td><span class="fa fa-cogs"></span><span class="multiselect-title">'.$langs->trans("EntityActiveByDefault").'</span></td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="center" width="100">';
|
||||
$input = array(
|
||||
'showhide' => array(
|
||||
'#visiblebydefault'
|
||||
),
|
||||
'del' => array(
|
||||
'MULTICOMPANY_VISIBLE_BY_DEFAULT'
|
||||
)
|
||||
);
|
||||
print ajax_mcconstantonoff('MULTICOMPANY_ACTIVE_BY_DEFAULT', $input, 0);
|
||||
print '</td></tr>';
|
||||
|
||||
// Visible by default during create
|
||||
print '<tr id="visiblebydefault" class="oddeven"'.(empty($conf->global->MULTICOMPANY_ACTIVE_BY_DEFAULT) ? ' style="display:none;"' : '').'>';
|
||||
print '<td><span class="fa fa-cogs"></span><span class="multiselect-title">'.$langs->trans("EntityVisibleByDefault").'</span></td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="center" width="100">';
|
||||
print ajax_mcconstantonoff('MULTICOMPANY_VISIBLE_BY_DEFAULT', '', 0);
|
||||
print '</td></tr>';
|
||||
|
||||
// Template management
|
||||
$text = img_picto('', 'info','class="linkobject"');
|
||||
$htmltext = $langs->trans("TemplateOfEntityManagementInfo");
|
||||
|
||||
print '<tr id="template" class="oddeven">';
|
||||
print '<td><span class="fa fa-cogs"></span><span class="multiselect-title">'.$langs->trans("TemplateOfEntityManagement").' '.$form->textwithtooltip('',$htmltext,2,1,$text).'</span></td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="center" width="100">';
|
||||
print ajax_mcconstantonoff('MULTICOMPANY_TEMPLATE_MANAGEMENT', '', 0);
|
||||
print '</td></tr>';
|
||||
|
||||
/*
|
||||
* Sharings parameters
|
||||
*/
|
||||
print '<tr class="liste_titre">';
|
||||
print '<td>'.$langs->trans("Parameters").'</td>'."\n";
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="center" width="100">'.$langs->trans("Value").'</td>'."\n";
|
||||
print '</tr>';
|
||||
|
||||
/* Mode de gestion des droits :
|
||||
* Mode Off : mode Off : pyramidale. Les droits et les groupes sont gérés dans chaque entité : les utilisateurs appartiennent au groupe de l'entity pour obtenir leurs droits
|
||||
* Mode On : mode On : transversale : Les groupes ne peuvent appartenir qu'a l'entity = 0 et c'est l'utilisateur qui appartient à tel ou tel entity
|
||||
*/
|
||||
|
||||
$text = img_picto('', 'info','class="linkobject"');
|
||||
$htmltext = $langs->trans("GroupModeTransversalInfoFull");
|
||||
|
||||
print '<tr class="oddeven">';
|
||||
print '<td><span class="fa fa-users"></span><span class="multiselect-title">'.$langs->trans("GroupModeTransversal").' '.$form->textwithtooltip('',$htmltext,2,1,$text).'</span></td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
|
||||
print '<td align="center" width="100">';
|
||||
$input = array(
|
||||
'alert' => array(
|
||||
'set' => array(
|
||||
'info' => true,
|
||||
'height' => 200,
|
||||
'yesButton' => $langs->trans('Ok'),
|
||||
'title' => $langs->transnoentities('GroupModeTransversalTitle'),
|
||||
'content' => img_warning().' '.$langs->trans('GroupModeTransversalInfo')
|
||||
)
|
||||
)
|
||||
);
|
||||
print ajax_mcconstantonoff('MULTICOMPANY_TRANSVERSE_MODE', $input, 0);
|
||||
print '</td></tr>';
|
||||
|
||||
// Enable global sharings
|
||||
if (! empty($conf->societe->enabled)
|
||||
|| ! empty($conf->product->enabled)
|
||||
|| ! empty($conf->service->enabled)
|
||||
|| ! empty($conf->categorie->enabled)
|
||||
|| ! empty($conf->adherent->enabled)
|
||||
|| ! empty($conf->agenda->enabled))
|
||||
{
|
||||
print '<tr class="oddeven">';
|
||||
print '<td><span class="fa fa-project-diagram"></span><span class="multiselect-title">'.$langs->trans("EnableGlobalSharings").'</span></td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
|
||||
print '<td align="center" width="100">';
|
||||
$input = array(
|
||||
'alert' => array(
|
||||
'set' => array(
|
||||
'info' => true,
|
||||
'yesButton' => $langs->trans('Ok'),
|
||||
'title' => $langs->transnoentities('GlobalSharings'),
|
||||
'content' => img_warning().' '.$langs->trans('GlobalSharingsInfo')
|
||||
)
|
||||
),
|
||||
'showhide' => array(
|
||||
'#shareelementtitle',
|
||||
'#sharethirdparty'
|
||||
),
|
||||
'hide' => array(
|
||||
'#shareelementtitle',
|
||||
'#shareobjecttitle',
|
||||
'#sharethirdparty'
|
||||
),
|
||||
'del' => array(
|
||||
'MULTICOMPANY_THIRDPARTY_SHARING_ENABLED'
|
||||
)
|
||||
);
|
||||
foreach ($object->sharingelements as $key => $values)
|
||||
{
|
||||
if (! isset($values['disable'])) {
|
||||
if (isset($values['input']) && isset($values['input']['global'])) {
|
||||
if (isset($values['input']['global']['showhide']) && $values['input']['global']['showhide'] === true) {
|
||||
if (! isset($input['showhide'])) $input['showhide'] = array();
|
||||
array_push($input['showhide'], '#share'.$key);
|
||||
}
|
||||
if (isset($values['input']['global']['hide']) && $values['input']['global']['hide'] === true) {
|
||||
if (! isset($input['hide'])) $input['hide'] = array();
|
||||
array_push($input['hide'], '#share'.$key);
|
||||
}
|
||||
if (isset($values['input']['global']['del']) && $values['input']['global']['del'] === true) {
|
||||
if (! isset($input['del'])) $input['del'] = array();
|
||||
array_push($input['del'], 'MULTICOMPANY_'.strtoupper($key).'_SHARING_ENABLED');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
print ajax_mcconstantonoff('MULTICOMPANY_SHARINGS_ENABLED', $input, 0);
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
$text = img_picto('', 'info','class="linkobject"');
|
||||
$htmltext = $langs->trans("GlobalSharingsInfo");
|
||||
|
||||
print '<tr class="liste_titre" id="shareelementtitle"'.(empty($conf->global->MULTICOMPANY_SHARINGS_ENABLED) ? ' style="display:none;"' : '').'>';
|
||||
print '<td>'.$langs->trans("ActivatingShares").' '.$form->textwithtooltip('',$htmltext,2,1,$text).'</td>'."\n";
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="center" width="100">'.$langs->trans("Value").'</td>'."\n";
|
||||
print '</tr>';
|
||||
|
||||
// Share thirparties and contacts
|
||||
if (! empty($conf->societe->enabled))
|
||||
{
|
||||
print '<tr id="sharethirdparty" class="oddeven"'.(empty($conf->global->MULTICOMPANY_SHARINGS_ENABLED) ? ' style="display:none;"' : '').'>';
|
||||
print '<td><span class="fa fa-'.$object->sharingelements['thirdparty']['icon'].'"></span><span class="multiselect-title">'.$langs->trans("ShareThirdpartiesAndContacts").'</span></td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
|
||||
print '<td align="center" width="100">';
|
||||
$input = array(
|
||||
'showhide' => array(
|
||||
'#shareobjecttitle'
|
||||
)
|
||||
);
|
||||
foreach ($object->sharingelements as $key => $values)
|
||||
{
|
||||
if (! isset($values['disable']) && ($values['type'] === 'object' || $values['type'] === 'objectnumber'))
|
||||
{
|
||||
if (isset($values['input']) && isset($values['input']['thirdparty'])) {
|
||||
if (isset($values['input']['thirdparty']['showhide']) && $values['input']['thirdparty']['showhide'] === true) {
|
||||
if (! isset($input['showhide'])) $input['showhide'] = array();
|
||||
array_push($input['showhide'], '#share'.$key);
|
||||
}
|
||||
if (isset($values['input']['thirdparty']['hide']) && $values['input']['thirdparty']['hide'] === true) {
|
||||
if (! isset($input['hide'])) $input['hide'] = array();
|
||||
array_push($input['hide'], '#share'.$key);
|
||||
}
|
||||
if (isset($values['input']['thirdparty']['del']) && $values['input']['thirdparty']['del'] === true) {
|
||||
if (! isset($input['del'])) $input['del'] = array();
|
||||
array_push($input['del'], 'MULTICOMPANY_'.strtoupper($key).'_SHARING_ENABLED');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
print ajax_mcconstantonoff('MULTICOMPANY_THIRDPARTY_SHARING_ENABLED', $input, 0);
|
||||
print '</td></tr>';
|
||||
}
|
||||
|
||||
// Elements sharings
|
||||
$text = img_picto('', 'info','class="linkobject"');
|
||||
|
||||
foreach ($object->sharingelements as $element => $params)
|
||||
{
|
||||
if (! isset($params['disable']) && $params['type'] === 'element')
|
||||
{
|
||||
$tooltip = null;
|
||||
$display = ! empty($conf->global->MULTICOMPANY_SHARINGS_ENABLED);
|
||||
$module = ((isset($object->sharingmodulename[$element]) && !empty($object->sharingmodulename[$element])) ? $object->sharingmodulename[$element] : $element);
|
||||
$enabled = (! empty($params['enable']) ? dol_eval($params['enable'], 1) : $conf->$module->enabled);
|
||||
if (! empty($enabled))
|
||||
{
|
||||
$icon = (! empty($params['icon'])?$params['icon']:'cogs');
|
||||
|
||||
if (! empty($params['lang'])) {
|
||||
$langs->load($params['lang']);
|
||||
}
|
||||
|
||||
if (! empty($params['tooltip'])) {
|
||||
$htmltext = $langs->trans($params['tooltip']);
|
||||
$tooltip = $form->textwithtooltip('', $htmltext, 2, 1, $text);
|
||||
}
|
||||
|
||||
if (! empty($params['display'])) {
|
||||
$display = ($display && dol_eval($params['display'], 1));
|
||||
}
|
||||
|
||||
$display = ($display ? '' : ' style="display:none;"');
|
||||
|
||||
print '<tr id="share'.$element.'" class="oddeven"'.$display.'>';
|
||||
print '<td><span class="fa fa-'.$icon.'"></span>';
|
||||
print '<span class="multiselect-title">'.$langs->trans("Share".ucfirst($element)).(! empty($tooltip) ? ' '.$tooltip : '').'</span></td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
|
||||
print '<td align="center" width="100">';
|
||||
|
||||
$input = array();
|
||||
foreach ($object->sharingelements as $key => $values) {
|
||||
if (! isset($values['disable']) && isset($values['input']) && isset($values['input'][$element])) {
|
||||
if (isset($values['input'][$element]['showhide']) && $values['input'][$element]['showhide'] === true) {
|
||||
if (! isset($input['showhide'])) $input['showhide'] = array();
|
||||
array_push($input['showhide'], '#share'.$key);
|
||||
}
|
||||
if (isset($values['input'][$element]['hide']) && $values['input'][$element]['hide'] === true) {
|
||||
if (! isset($input['hide'])) $input['hide'] = array();
|
||||
array_push($input['hide'], '#share'.$key);
|
||||
}
|
||||
if (isset($values['input'][$element]['del']) && $values['input'][$element]['del'] === true) {
|
||||
if (! isset($input['del'])) $input['del'] = array();
|
||||
array_push($input['del'], 'MULTICOMPANY_'.strtoupper($key).'_SHARING_ENABLED');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print ajax_mcconstantonoff('MULTICOMPANY_'.strtoupper($element).'_SHARING_ENABLED', $input, 0);
|
||||
print '</td></tr>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Objects sharings
|
||||
$text = img_picto('', 'info','class="linkobject"');
|
||||
$htmltext = $langs->trans("ObjectSharingsInfo");
|
||||
$display=(! empty($conf->global->MULTICOMPANY_SHARINGS_ENABLED) && ! empty($conf->global->MULTICOMPANY_THIRDPARTY_SHARING_ENABLED) ? '' : ' style="display:none;"');
|
||||
print '<tr class="liste_titre" id="shareobjecttitle"'.$display.'>';
|
||||
print '<td>'.$langs->trans("ActivatingObjectShares").' '.$form->textwithtooltip('', $htmltext, 2, 1, $text).'</td>'."\n";
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="center" width="100">'.$langs->trans("Value").'</td>'."\n";
|
||||
print '</tr>';
|
||||
|
||||
foreach ($object->sharingelements as $element => $params)
|
||||
{
|
||||
if (! isset($params['disable']) && ($params['type'] === 'object' || $params['type'] === 'objectnumber'))
|
||||
{
|
||||
$tooltip = null;
|
||||
$display = ! empty($conf->global->MULTICOMPANY_SHARINGS_ENABLED);
|
||||
$module = ((isset($object->sharingmodulename[$element]) && !empty($object->sharingmodulename[$element])) ? $object->sharingmodulename[$element] : $element);
|
||||
$enabled = (! empty($params['enable']) ? dol_eval($params['enable'], 1) : $conf->$module->enabled);
|
||||
if (! empty($enabled))
|
||||
{
|
||||
$icon = (! empty($params['icon'])?$params['icon']:'cogs');
|
||||
|
||||
if (! empty($params['lang'])) {
|
||||
$langs->load($params['lang']);
|
||||
}
|
||||
|
||||
if (! empty($params['tooltip'])) {
|
||||
$htmltext = $langs->trans($params['tooltip']);
|
||||
$tooltip = $form->textwithtooltip('', $htmltext, 2, 1, $text);
|
||||
}
|
||||
|
||||
if (! empty($params['display'])) {
|
||||
$display = ($display && dol_eval($params['display'], 1));
|
||||
}
|
||||
|
||||
$display = ($display ? '' : ' style="display:none;"');
|
||||
|
||||
print '<tr id="share'.$element.'" class="oddeven"'.$display.'>';
|
||||
print '<td><span class="fa fa-'.$icon.'"></span>';
|
||||
print '<span class="multiselect-title">'.$langs->trans("Share".ucfirst($element)).(! empty($tooltip) ? ' '.$tooltip : '').'</span></td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
|
||||
print '<td align="center" width="100">';
|
||||
$input = array();
|
||||
print ajax_mcconstantonoff('MULTICOMPANY_'.strtoupper($element).'_SHARING_ENABLED', $input, 0);
|
||||
print '</td></tr>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dictionnaries
|
||||
if (1==2 && ! empty($object->sharingdicts))
|
||||
{
|
||||
$text = img_picto('', 'info','class="linkobject"');
|
||||
$htmltext = $langs->trans("DictsSharingsInfo");
|
||||
|
||||
print '<tr class="liste_titre" id="dictsharetitle">';
|
||||
print '<td>'.$langs->trans("ActivatingDictsShares").' '.$form->textwithtooltip('',$htmltext,2,1,$text).'</td>'."\n";
|
||||
print '<td align="center" width="20"> </td>';
|
||||
print '<td align="center" width="100">'.$langs->trans("Value").'</td>'."\n";
|
||||
print '</tr>';
|
||||
|
||||
foreach ($object->sharingdicts as $dict => $data)
|
||||
{
|
||||
print '<tr id="share'.$dict.'" class="oddeven">';
|
||||
print '<td>'.$langs->trans("Share".ucfirst($dict)).'</td>';
|
||||
print '<td align="center" width="20"> </td>';
|
||||
|
||||
print '<td align="center" width="100">';
|
||||
print ajax_mcconstantonoff('MULTICOMPANY_'.strtoupper($dict).'_SHARING_DISABLED', '', 0);
|
||||
print '</td></tr>';
|
||||
}
|
||||
}
|
||||
|
||||
print '</table>';
|
||||
|
||||
// Card end
|
||||
dol_fiche_end();
|
||||
// Footer
|
||||
llxFooter();
|
||||
// Close database handler
|
||||
$db->close();
|
||||
@ -1,118 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2014-2018 Regis Houssin <regis.houssin@inodbox.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
global $form;
|
||||
?>
|
||||
|
||||
<!-- START PHP TEMPLATE ADMIN CACHES -->
|
||||
<div class="table-border centpercent">
|
||||
<div class="table-border-row <?php echo $var?"pair":"impair"; ?>">
|
||||
<div class="tagtd padding-left5 seventy-percent" align="left"><b><?php echo $langs->trans("MulticompanySession"); ?></b><br><i><?php echo $langs->trans('MulticompanySessionDescription'); ?></i><br><br></div>
|
||||
<div class="tagtd valign-middle text-align-left">
|
||||
<div class="float-left"></div>
|
||||
</div>
|
||||
<div class="tagtd valign-middle button-align-right">
|
||||
<?php
|
||||
$input = array(
|
||||
'del' => array('MULTICOMPANY_MEMCACHED_ENABLED','MULTICOMPANY_SHMOP_ENABLED'),
|
||||
'disabled' => array('MULTICOMPANY_MEMCACHED_SERVER')
|
||||
);
|
||||
echo ajax_mcconstantonoff('MULTICOMPANY_SESSION_ENABLED', $input, 0);
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $var=!$var; ?>
|
||||
<div class="table-border centpercent">
|
||||
<div class="table-border-row <?php echo $var?"pair":"impair"; ?>">
|
||||
<div class="tagtd padding-left5 seventy-percent" align="left"><b><?php echo $langs->trans("MulticompanyMemcached"); ?></b><br><i><?php echo $langs->trans('MulticompanyMemcachedDescription'); ?></i><br><br></div>
|
||||
<div class="tagtd valign-middle text-align-left">
|
||||
<div class="float-left">
|
||||
<?php
|
||||
if (class_exists("Memcached") || class_exists("Memcache"))
|
||||
{
|
||||
if (class_exists("Memcached")) $m=new Memcached();
|
||||
elseif (class_exists("Memcache")) $m=new Memcache();
|
||||
|
||||
$serveraddress = (!empty($conf->global->MULTICOMPANY_MEMCACHED_SERVER)?$conf->global->MULTICOMPANY_MEMCACHED_SERVER:(!empty($conf->global->MEMCACHED_SERVER)?$conf->global->MEMCACHED_SERVER:'127.0.0.1:11211'));
|
||||
|
||||
$tmparray=explode(':',$serveraddress);
|
||||
$server=$tmparray[0];
|
||||
$port=$tmparray[1]?$tmparray[1]:11211;
|
||||
|
||||
$result=$m->addServer($server, $port);
|
||||
$arraycache=$m->getStats();
|
||||
|
||||
if (is_array($arraycache))
|
||||
echo $form->textwithtooltip('',$langs->trans("MemcachedServerIsReady"),2,1,img_picto('','tick'),'',3);
|
||||
else
|
||||
echo $form->textwithtooltip('',$langs->trans("MemcachedServerIsNotReady"),2,1,img_warning(''),'',3);
|
||||
|
||||
echo ' <input size="40" type="text" id="MULTICOMPANY_MEMCACHED_SERVER" name="MULTICOMPANY_MEMCACHED_SERVER" value="'.$serveraddress.'"'.(empty($conf->global->MULTICOMPANY_MEMCACHED_ENABLED) ? ' disabled="disabled"' : '').' />';
|
||||
}
|
||||
else
|
||||
echo img_warning($langs->trans("MulticompanyMemcachedUnavailable")).' '.$langs->trans("MulticompanyMemcachedUnavailable");
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tagtd valign-middle button-align-right">
|
||||
<?php
|
||||
if (class_exists("Memcached") || class_exists("Memcache"))
|
||||
{
|
||||
$input = array(
|
||||
'del' => array('MULTICOMPANY_SHMOP_ENABLED','MULTICOMPANY_SESSION_ENABLED'),
|
||||
'disabledenabled' => array('MULTICOMPANY_MEMCACHED_SERVER')
|
||||
);
|
||||
echo ajax_mcconstantonoff('MULTICOMPANY_MEMCACHED_ENABLED', $input, 0);
|
||||
}
|
||||
else
|
||||
echo '<span>'.img_picto($langs->trans("Disabled"),'switch_off', 'class="button-not-allowed"').'</span>';
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $var=!$var; ?>
|
||||
<div class="table-border centpercent">
|
||||
<div class="table-border-row <?php echo $var?"pair":"impair"; ?>">
|
||||
<div class="tagtd padding-left5 seventy-percent" align="left"><b><?php echo $langs->trans("MulticompanyShmop"); ?></b><br><i><?php echo $langs->trans('MulticompanyShmopDescription'); ?></i><br><br></div>
|
||||
<div class="tagtd valign-middle text-align-left">
|
||||
<div class="float-left">
|
||||
<?php
|
||||
if (function_exists("shmop_read"))
|
||||
echo img_picto($langs->trans("MulticompanyShmopAvailable"),'tick').' '.$langs->trans("MulticompanyShmopAvailable");
|
||||
else
|
||||
echo img_warning($langs->trans("MulticompanyShmopUnavailable")).' '.$langs->trans("MulticompanyShmopUnavailable");
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="tagtd valign-middle button-align-right">
|
||||
<?php
|
||||
if (function_exists("shmop_read"))
|
||||
{
|
||||
$input = array(
|
||||
'del' => array('MULTICOMPANY_MEMCACHED_ENABLED','MULTICOMPANY_SESSION_ENABLED'),
|
||||
'disabled' => array('MULTICOMPANY_MEMCACHED_SERVER')
|
||||
);
|
||||
echo ajax_mcconstantonoff('MULTICOMPANY_SHMOP_ENABLED', $input, 0);
|
||||
}
|
||||
else
|
||||
echo '<span>'.img_picto($langs->trans("Disabled"),'switch_off', 'class="button-not-allowed"').'</span>';
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END PHP TEMPLATE ADMIN CACHES -->
|
||||
@ -1,386 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2009-2019 Regis Houssin <regis.houssin@inodbox.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
*/
|
||||
?>
|
||||
|
||||
<!-- BEGIN PHP TEMPLATE -->
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function () {
|
||||
$("#selectcountry_id").change(function() {
|
||||
document.form_entity.action.value="<?php echo $this->tpl['action']; ?>";
|
||||
document.form_entity.submit();
|
||||
});
|
||||
<?php if (! empty($conf->global->MULTICOMPANY_TEMPLATE_MANAGEMENT)) { ?>
|
||||
$("#template").change(function() {
|
||||
var template = $(this).val();
|
||||
if (template == '1') {
|
||||
$('#usetemplate').val(null).trigger('change');
|
||||
$("#usetemplate").prop('disabled', true);
|
||||
} else {
|
||||
$("#usetemplate").prop('disabled', false);
|
||||
}
|
||||
});
|
||||
$("#form_entity").on('change', '#template, #usetemplate', function() {
|
||||
var fieldvalue = $(this).val();
|
||||
if (fieldvalue > '0') {
|
||||
$("tr.template-field").show();
|
||||
} else {
|
||||
$("tr.template-field").hide();
|
||||
}
|
||||
});
|
||||
$("#form_entity").on('change', '#usetemplate', function() {
|
||||
var id = $(this).val();
|
||||
if (id > '0') {
|
||||
<?php
|
||||
// reset before change values
|
||||
foreach($this->sharingelements as $element => $params) {
|
||||
if (! empty($this->tpl['multiselect_from_' . $element])) { ?>
|
||||
var element = '<?php echo $element; ?>';
|
||||
$('#multiselect_shared_' + element + '_rightAll').click();
|
||||
<?php } } ?>
|
||||
$.get( "<?php echo dol_buildpath('/multicompany/core/ajax/functions.php',1); ?>", {
|
||||
'action': 'getEntityOptions',
|
||||
'id': id
|
||||
},
|
||||
function (result) {
|
||||
if (result.status == "success") {
|
||||
$.each(result.options.sharings, function( element, entities ) {
|
||||
if (entities != null) {
|
||||
$.each(entities, function( key, entity ) {
|
||||
//console.log(element);
|
||||
//console.log(entity);
|
||||
$('#multiselect_shared_' + element + ' option[value=' + entity + ']').remove();
|
||||
$('#multiselect_shared_' + element + '_to').append( $("<option></option>").attr("value", entity).text(result.labels[entity]) );
|
||||
$('#multiselect_shared_' + element + '_to option').addClass( "multiselect-option" );
|
||||
$('#multiselect_shared_' + element + '_to').html( $('#multiselect_shared_' + element + '_to option').sort(function(x, y) {
|
||||
return $(x).val() < $(y).val() ? -1 : 1;
|
||||
}));
|
||||
});
|
||||
if (result.options.addtoallother) {
|
||||
$.each(result.options.addtoallother, function( element, value ) {
|
||||
$('#addtoallother_' + element).val(value).change();
|
||||
})
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$.jnotify("<?php echo $langs->transnoentities("ErrorGetEntitySharings"); ?>", "error", true);
|
||||
}
|
||||
}
|
||||
);
|
||||
} else {
|
||||
<?php
|
||||
foreach($this->sharingelements as $element => $params) {
|
||||
if (! empty($this->tpl['multiselect_from_' . $element])) {
|
||||
?>
|
||||
var element = '<?php echo $element; ?>';
|
||||
$('#multiselect_shared_' + element + '_rightAll').click();
|
||||
<?php } } ?>
|
||||
}
|
||||
});
|
||||
<?php } ?>
|
||||
<?php
|
||||
if (! empty($conf->global->MULTICOMPANY_SHARINGS_ENABLED)) {
|
||||
foreach($this->sharingelements as $element => $params) {
|
||||
if ($params['type'] === 'element' && ! empty($this->tpl['multiselect_from_' . $element])) {
|
||||
?>
|
||||
$('#multiselect_shared_<?php echo $element; ?>').multiselect({
|
||||
keepRenderingSort: true,
|
||||
right: '#multiselect_to_<?php echo $element; ?>',
|
||||
rightAll: '#multiselect_shared_<?php echo $element; ?>_leftAll',
|
||||
rightSelected: '#multiselect_shared_<?php echo $element; ?>_leftSelected',
|
||||
leftSelected: '#multiselect_shared_<?php echo $element; ?>_rightSelected',
|
||||
leftAll: '#multiselect_shared_<?php echo $element; ?>_rightAll',
|
||||
search: {
|
||||
left: '<input type="text" name="q" class="form-control" placeholder="<?php echo $langs->trans("Search").'...'; ?>" />',
|
||||
right: '<input type="text" name="q" class="form-control" placeholder="<?php echo $langs->trans("Search").'...'; ?>" />',
|
||||
},
|
||||
fireSearch: function(value) {
|
||||
return value.length > 2;
|
||||
},
|
||||
<?php if ($element == 'thirdparty') { ?>
|
||||
afterMoveToLeft: function($left, $right, $options) {
|
||||
var sharingobjects = <?php echo json_encode($object->sharingelements); ?>;
|
||||
$.each(sharingobjects, function( element, param ) {
|
||||
if (! param.disable && param.type !== 'element') {
|
||||
var elements = $('#multiselect_shared_' + element + '_to option');
|
||||
if (elements && elements.length) {
|
||||
$.each(elements, function( key, share) {
|
||||
$.each($options, function( index, entity ) {
|
||||
if (entity.value == share.value) {
|
||||
$('#multiselect_shared_' + element + '_to option[value=' + entity.value + ']').remove();
|
||||
$('#multiselect_shared_' + element).append($("<option></option>").attr("value", entity.value).text(entity.text));
|
||||
$('#multiselect_shared_' + element).html($('#multiselect_shared_' + element + ' option').sort(function(x, y) {
|
||||
return $(x).val() < $(y).val() ? -1 : 1;
|
||||
}));
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
afterMoveToRight: function($left, $right, $options) {
|
||||
$('#multiselect_shared_<?php echo $element; ?>_to').html($('#multiselect_shared_<?php echo $element; ?>_to option').sort(function(x, y) {
|
||||
return $(x).val() < $(y).val() ? -1 : 1;
|
||||
}));
|
||||
}
|
||||
<?php } ?>
|
||||
});
|
||||
<?php } } ?>
|
||||
<?php
|
||||
foreach($this->sharingelements as $element => $params) {
|
||||
if ($params['type'] !== 'element' && ! empty($this->tpl['multiselect_from_' . $element])) {
|
||||
$mandatory = (! empty($params['mandatory'])?$params['mandatory']:'thirdparty');
|
||||
?>
|
||||
$('#multiselect_shared_<?php echo $element; ?>').multiselect({
|
||||
keepRenderingSort: true,
|
||||
right: '#multiselect_to_<?php echo $element; ?>',
|
||||
rightAll: '#multiselect_shared_<?php echo $element; ?>_leftAll',
|
||||
rightSelected: '#multiselect_shared_<?php echo $element; ?>_leftSelected',
|
||||
leftSelected: '#multiselect_shared_<?php echo $element; ?>_rightSelected',
|
||||
leftAll: '#multiselect_shared_<?php echo $element; ?>_rightAll',
|
||||
search: {
|
||||
left: '<input type="text" name="q" class="form-control" placeholder="<?php echo $langs->trans("Search").'...'; ?>" />',
|
||||
right: '<input type="text" name="q" class="form-control" placeholder="<?php echo $langs->trans("Search").'...'; ?>" />',
|
||||
},
|
||||
fireSearch: function(value) {
|
||||
return value.length > 2;
|
||||
},
|
||||
afterMoveToRight: function($left, $right, $options) {
|
||||
var mandatory = '<?php echo $mandatory; ?>';
|
||||
var elements = $('#multiselect_shared_' + mandatory + ' option');
|
||||
if (elements && elements.length) {
|
||||
$.each(elements, function( key, share) {
|
||||
$.each($options, function( index, entity ) {
|
||||
if (entity.value == share.value) {
|
||||
$('#multiselect_shared_' + mandatory + ' option[value=' + entity.value + ']').remove();
|
||||
$('#multiselect_shared_' + mandatory + '_to').append($("<option></option>").attr("value", entity.value).text(entity.text));
|
||||
$('#multiselect_shared_' + mandatory + '_to').html($('#multiselect_shared_' + mandatory + '_to option').sort(function(x, y) {
|
||||
return $(x).val() < $(y).val() ? -1 : 1;
|
||||
}));
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
afterMoveToLeft: function($left, $right, $options) {
|
||||
$('#multiselect_shared_<?php echo $element; ?>').html($('#multiselect_shared_<?php echo $element; ?> option').sort(function(x, y) {
|
||||
return $(x).val() < $(y).val() ? -1 : 1;
|
||||
}));
|
||||
}
|
||||
});
|
||||
<?php } } } ?>
|
||||
});
|
||||
</script>
|
||||
<form id="form_entity" name="form_entity" action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="POST">
|
||||
<input type="hidden" name="token" value="<?php echo $_SESSION['newtoken']; ?>" />
|
||||
|
||||
<?php if ($this->tpl['action'] === 'create') { ?>
|
||||
<input type="hidden" name="action" value="add" />
|
||||
<?php } else { ?>
|
||||
<input type="hidden" name="action" value="update" />
|
||||
<input type="hidden" name="id" value="<?php echo $this->tpl['id']; ?>" />
|
||||
<?php } ?>
|
||||
|
||||
<table class="noborder">
|
||||
<tr class="liste_titre">
|
||||
<td width="35%"><span class="fa fa-edit"></span><span class="multiselect-title"><?php echo $langs->trans("CompanyInfo"); ?></span></td>
|
||||
<td><?php echo $langs->trans("Value"); ?></td>
|
||||
</tr>
|
||||
<tr class="oddeven">
|
||||
<td><span class="fieldrequired"><?php echo $langs->trans("Label"); ?></span></td>
|
||||
<td><input name="label" size="40" value="<?php echo $this->tpl['label']; ?>" /></td>
|
||||
</tr>
|
||||
<tr class="oddeven">
|
||||
<td><span class="fieldrequired"><?php echo $langs->trans("CompanyName"); ?></span></td>
|
||||
<td><input name="name" size="40" value="<?php echo $this->tpl['name']; ?>" /></td>
|
||||
</tr>
|
||||
<?php
|
||||
if (! empty($conf->global->MULTICOMPANY_TEMPLATE_MANAGEMENT)) {
|
||||
if ($this->tpl['action'] === 'create') { ?>
|
||||
<tr class="oddeven">
|
||||
<td><?php echo $langs->trans("TemplateOfCompany"); ?></td>
|
||||
<td><?php echo $this->tpl['template']; ?></td>
|
||||
</tr>
|
||||
<tr class="oddeven">
|
||||
<td><?php echo $langs->trans("SelectTemplateOfCompany"); ?></td>
|
||||
<td><?php echo $this->tpl['select_template']; ?></td>
|
||||
</tr>
|
||||
<?php } elseif ($this->tpl['template'] === 1) { ?>
|
||||
<tr class="oddeven">
|
||||
<td colspan="2" class="error"><?php echo $langs->trans("WarningThisIsATemplate"); ?></td>
|
||||
</tr>
|
||||
<?php } } ?>
|
||||
<tr class="oddeven">
|
||||
<td><?php echo $langs->trans("CompanyAddress"); ?></td>
|
||||
<td><textarea name="address" cols="80" rows="<?php echo ROWS_3; ?>"><?php echo $this->tpl['address']; ?></textarea></td>
|
||||
</tr>
|
||||
<tr class="oddeven">
|
||||
<td><?php echo $langs->trans("CompanyZip"); ?></td>
|
||||
<td><?php echo $this->tpl['select_zip']; ?></td>
|
||||
</tr>
|
||||
<tr class="oddeven">
|
||||
<td><?php echo $langs->trans("CompanyTown"); ?></td>
|
||||
<td><?php echo $this->tpl['select_town']; ?></td>
|
||||
</tr>
|
||||
<tr class="oddeven">
|
||||
<td><?php echo $langs->trans("Country"); ?></td>
|
||||
<td><?php echo $this->tpl['select_country'].$this->tpl['info_admin']; ?></td>
|
||||
</tr>
|
||||
<tr class="oddeven">
|
||||
<td><?php echo $langs->trans("State"); ?></td>
|
||||
<td><?php echo $this->tpl['select_state']; ?></td>
|
||||
</tr>
|
||||
<tr class="oddeven">
|
||||
<td><?php echo $langs->trans("CompanyCurrency"); ?></td>
|
||||
<td><?php echo $this->tpl['select_currency']; ?></td>
|
||||
</tr>
|
||||
<tr class="oddeven">
|
||||
<td><?php echo $langs->trans("DefaultLanguage"); ?></td>
|
||||
<td><?php echo $this->tpl['select_language']; ?></td>
|
||||
</tr>
|
||||
<tr class="oddeven">
|
||||
<td class="tdtop"><?php echo $langs->trans("Description"); ?></td>
|
||||
<td><textarea class="flat" name="description" cols="80" rows="<?php echo ROWS_3; ?>"><?php echo $this->tpl['description']; ?></textarea></td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
if (! empty($this->tpl['extrafields']->attribute_label)) {
|
||||
print $this->dao->showOptionals($this->tpl['extrafields'], 'edit');
|
||||
}
|
||||
if (! empty($conf->global->MULTICOMPANY_SHARINGS_ENABLED)) {
|
||||
|
||||
foreach($this->sharingelements as $element => $params) {
|
||||
if ($params['type'] === 'element' && ! empty($this->tpl['multiselect_from_' . $element])) {
|
||||
$uppername = strtoupper($element);
|
||||
$icon = (! empty($params['icon'])?$params['icon']:'edit');
|
||||
?>
|
||||
<tr class="liste_titre">
|
||||
<td colspan="2"><span class="fa fa-<?php echo $icon; ?>"></span><span class="multiselect-title"><?php echo $langs->trans($uppername . "Sharing"); ?></span></td>
|
||||
</tr>
|
||||
<tr class="oddeven">
|
||||
<td class="tdtop"><?php echo $langs->trans($uppername . "SharingDescription"); ?></td>
|
||||
<td>
|
||||
<div class="row">
|
||||
<div class="col-sm-5">
|
||||
<div class="multiselect-selected-title"><span class="fa fa-globe"></span><span class="multiselect-selected-title-text"><?php echo $langs->trans("EntitiesSelected"); ?></span></div>
|
||||
<?php echo $this->tpl['multiselect_to_' . $element]; ?>
|
||||
</div>
|
||||
<div class="col-xs-2 multiselect-menu">
|
||||
<!-- <button type="button" id="multiselect_shared_<?php //echo $element; ?>_undo" class="btn btn-primary btn-block"><?php //echo $langs->trans("Undo"); ?></button> -->
|
||||
<button type="button" id="multiselect_shared_<?php echo $element; ?>_leftAll" class="btn btn-block multiselect-menu-btn-color"><i class="glyphicon glyphicon-backward"></i></button>
|
||||
<button type="button" id="multiselect_shared_<?php echo $element; ?>_leftSelected" class="btn btn-block multiselect-menu-btn-color"><i class="glyphicon glyphicon-chevron-left"></i></button>
|
||||
<button type="button" id="multiselect_shared_<?php echo $element; ?>_rightSelected" class="btn btn-block multiselect-menu-btn-color"><i class="glyphicon glyphicon-chevron-right"></i></button>
|
||||
<button type="button" id="multiselect_shared_<?php echo $element; ?>_rightAll" class="btn btn-block multiselect-menu-btn-color"><i class="glyphicon glyphicon-forward"></i></button>
|
||||
<!-- <button type="button" id="multiselect_shared_<?php //echo $element; ?>_redo" class="btn btn-warning btn-block"><?php //echo $langs->trans("Redo"); ?></button> -->
|
||||
</div>
|
||||
<div class="col-xs-5">
|
||||
<div class="multiselect-available-title"><span class="fa fa-globe"></span><span class="multiselect-available-title-text"><?php echo $langs->trans("EntitiesAvailable"); ?></span></div>
|
||||
<?php echo $this->tpl['multiselect_from_' . $element]; ?>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php if (! empty($conf->global->MULTICOMPANY_TEMPLATE_MANAGEMENT)) { ?>
|
||||
<tr class="oddeven template-field<?php echo ($this->tpl['template'] === 1 ? '' : ' hideobject') ?>">
|
||||
<td class="tdtop"><?php echo $langs->trans("AddNewEntityInAllOtherEntities"); ?></td>
|
||||
<td><?php echo $this->tpl['addtoallother_' . $element]; ?></td>
|
||||
</tr>
|
||||
<tr class="multiselect-separator template-field<?php echo ($this->tpl['template'] === 1 ? '' : ' hideobject') ?>"><td colspan="2"> </td></tr>
|
||||
<?php } ?>
|
||||
|
||||
<?php } } ?>
|
||||
|
||||
<?php
|
||||
foreach($this->sharingelements as $element => $params) {
|
||||
if ($params['type'] !== 'element' && ! empty($this->tpl['multiselect_from_' . $element])) {
|
||||
$uppername = strtoupper($element);
|
||||
$icon = (! empty($params['icon'])?$params['icon']:'edit');
|
||||
?>
|
||||
<tr class="liste_titre">
|
||||
<td colspan="2"><span class="fa fa-<?php echo $icon; ?>"></span><span class="multiselect-title"><?php echo $langs->trans($uppername . "Sharing"); ?></span></td>
|
||||
</tr>
|
||||
<tr class="oddeven">
|
||||
<td class="tdtop"><?php echo $langs->trans($uppername . "SharingDescription"); ?></td>
|
||||
<td>
|
||||
<div class="row">
|
||||
<div class="col-sm-5">
|
||||
<div class="multiselect-selected-title"><span class="fa fa-globe"></span><span class="multiselect-selected-title-text"><?php echo $langs->trans("EntitiesSelected"); ?></span></div>
|
||||
<?php echo $this->tpl['multiselect_to_' . $element]; ?>
|
||||
</div>
|
||||
<div class="col-xs-2 multiselect-menu">
|
||||
<!-- <button type="button" id="multiselect_shared_<?php //echo $element; ?>_undo" class="btn btn-primary btn-block"><?php //echo $langs->trans("Undo"); ?></button> -->
|
||||
<button type="button" id="multiselect_shared_<?php echo $element; ?>_leftAll" class="btn btn-block multiselect-menu-btn-color"><i class="glyphicon glyphicon-backward"></i></button>
|
||||
<button type="button" id="multiselect_shared_<?php echo $element; ?>_leftSelected" class="btn btn-block multiselect-menu-btn-color"><i class="glyphicon glyphicon-chevron-left"></i></button>
|
||||
<button type="button" id="multiselect_shared_<?php echo $element; ?>_rightSelected" class="btn btn-block multiselect-menu-btn-color"><i class="glyphicon glyphicon-chevron-right"></i></button>
|
||||
<button type="button" id="multiselect_shared_<?php echo $element; ?>_rightAll" class="btn btn-block multiselect-menu-btn-color"><i class="glyphicon glyphicon-forward"></i></button>
|
||||
<!-- <button type="button" id="multiselect_shared_<?php //echo $element; ?>_redo" class="btn btn-warning btn-block"><?php //echo $langs->trans("Redo"); ?></button> -->
|
||||
</div>
|
||||
<div class="col-xs-5">
|
||||
<div class="multiselect-available-title"><span class="fa fa-globe"></span><span class="multiselect-available-title-text"><?php echo $langs->trans("EntitiesAvailable"); ?></span></div>
|
||||
<?php echo $this->tpl['multiselect_from_' . $element]; ?>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<?php if ($element === 'proposalnumber' && ! empty($conf->global->MULTICOMPANY_PROPOSALNUMBER_SHARING_ENABLED)) { ?>
|
||||
<tr class="oddeven">
|
||||
<td class="tdtop"><?php echo $langs->trans("ReferringEntityForProposalNumber"); ?></td>
|
||||
<td><?php echo $this->tpl['select_proposalnumber_entity']; ?></td>
|
||||
</tr>
|
||||
<tr class="multiselect-separator"><td colspan="2"> </td></tr>
|
||||
<?php } ?>
|
||||
|
||||
<?php if ($element === 'invoicenumber' && ! empty($conf->global->MULTICOMPANY_INVOICENUMBER_SHARING_ENABLED)) { ?>
|
||||
<tr class="oddeven">
|
||||
<td class="tdtop"><?php echo $langs->trans("ReferringEntityForInvoiceNumber"); ?></td>
|
||||
<td><?php echo $this->tpl['select_invoicenumber_entity']; ?></td>
|
||||
</tr>
|
||||
<tr class="multiselect-separator"><td colspan="2"> </td></tr>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (! empty($conf->global->MULTICOMPANY_TEMPLATE_MANAGEMENT)) { ?>
|
||||
<tr class="oddeven template-field<?php echo ($this->tpl['template'] === 1 ? '' : ' hideobject') ?>">
|
||||
<td class="tdtop"><?php echo $langs->trans("AddNewEntityInAllOtherEntities"); ?></td>
|
||||
<td><?php echo $this->tpl['addtoallother_' . $element]; ?></td>
|
||||
</tr>
|
||||
<tr class="multiselect-separator template-field<?php echo ($this->tpl['template'] === 1 ? '' : ' hideobject') ?>"><td colspan="2"> </td></tr>
|
||||
<?php } ?>
|
||||
|
||||
<?php } } } ?>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="tabsAction">
|
||||
<?php if ($this->tpl['action'] === 'create') { ?>
|
||||
<input type="submit" class="butAction linkobject" name="add" value="<?php echo $langs->trans('Add'); ?>" />
|
||||
<input type="submit" class="butAction linkobject" name="addandstay" value="<?php echo $langs->trans("AddAndStay"); ?>" />
|
||||
<?php } else { ?>
|
||||
<input type="submit" class="butAction linkobject" name="updateandstay" value="<?php echo $langs->trans('UpdateAndStay'); ?>" />
|
||||
<input type="submit" class="butAction linkobject" name="update" value="<?php echo $langs->trans('Update'); ?>" />
|
||||
<input type="submit" class="butAction linkobject" name="cancelandstay" value="<?php echo $langs->trans("CancelAndStay"); ?>" />
|
||||
<?php } ?>
|
||||
<input type="submit" class="butAction linkobject" name="cancel" value="<?php echo $langs->trans("Cancel"); ?>" />
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<!-- END PHP TEMPLATE -->
|
||||
@ -1,230 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2017-2019 Regis Houssin <regis.houssin@inodbox.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
dol_include_once('/multicompany/admin/tpl/switch.tpl.php');
|
||||
|
||||
$colHidden = (! empty($conf->global->MULTICOMPANY_COLHIDDEN) ? implode(",", json_decode($conf->global->MULTICOMPANY_COLHIDDEN, true)) : null);
|
||||
$colOrder = (! empty($conf->global->MULTICOMPANY_COLORDER) ? json_decode($conf->global->MULTICOMPANY_COLORDER, true) : array('id' => 0, 'direction' => 'asc'));
|
||||
|
||||
$columns = array();
|
||||
|
||||
$columns['id'] = array(
|
||||
'label' => 'ID',
|
||||
'sortable' => true,
|
||||
'searchable' => true,
|
||||
'priority' => 12,
|
||||
'center' => 'dt-center'
|
||||
);
|
||||
$columns['label'] = array(
|
||||
'label' => 'Label',
|
||||
'sortable' => true,
|
||||
'searchable' => true,
|
||||
'priority' => 1,
|
||||
);
|
||||
$columns['description'] = array(
|
||||
'label' => 'Description',
|
||||
'sortable' => true,
|
||||
'searchable' => true,
|
||||
'priority' => 11,
|
||||
);
|
||||
$columns['name'] = array(
|
||||
'label' => 'Name',
|
||||
'priority' => 10,
|
||||
'center' => 'dt-center'
|
||||
);
|
||||
$columns['zip'] = array(
|
||||
'label' => 'Zip',
|
||||
'priority' => 9,
|
||||
'center' => 'dt-center'
|
||||
);
|
||||
$columns['town'] = array(
|
||||
'label' => 'Town',
|
||||
'priority' => 8,
|
||||
'center' => 'dt-center'
|
||||
);
|
||||
$columns['country'] = array(
|
||||
'label' => 'Country',
|
||||
'priority' => 7,
|
||||
'center' => 'dt-center'
|
||||
);
|
||||
$columns['currency'] = array(
|
||||
'label' => 'Currency',
|
||||
'priority' => 6,
|
||||
'center' => 'dt-center'
|
||||
);
|
||||
$columns['language'] = array(
|
||||
'label' => 'DefaultLanguageShort',
|
||||
'priority' => 5,
|
||||
'center' => 'dt-center'
|
||||
);
|
||||
if (! empty($this->tpl['extrafields']->attribute_label)) {
|
||||
foreach ($this->tpl['extrafields']->attribute_label as $key => $value)
|
||||
{
|
||||
$columns[$key] = array(
|
||||
'label' => $value,
|
||||
'center' => 'dt-center'
|
||||
);
|
||||
}
|
||||
}
|
||||
$columns['visible'] = array(
|
||||
'label' => 'Visible',
|
||||
'width' => '20px',
|
||||
'priority' => 3,
|
||||
'center' => 'dt-center'
|
||||
);
|
||||
$columns['active'] = array(
|
||||
'label' => 'Status',
|
||||
'width' => '20px',
|
||||
'priority' => 2,
|
||||
'center' => 'dt-center'
|
||||
);
|
||||
$columns['tools'] = array(
|
||||
'label' => 'Tools',
|
||||
'width' => '50px',
|
||||
'priority' => 4,
|
||||
'center' => 'dt-center'
|
||||
);
|
||||
|
||||
//var_dump($columns);
|
||||
|
||||
?>
|
||||
|
||||
<!-- BEGIN PHP TEMPLATE -->
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$("#multicompany_entity_list").dataTable( {
|
||||
"dom": 'B<"clear">lfrtip',
|
||||
//"responsive": true,
|
||||
"buttons": [
|
||||
{
|
||||
"extend": "colvis",
|
||||
"text": "<?php echo $langs->transnoentities('ShowHideColumns'); ?>"
|
||||
}
|
||||
],
|
||||
"pagingType": "full_numbers",
|
||||
"columns": [
|
||||
<?php foreach($columns as $key => $values) { ?>
|
||||
{
|
||||
"name": "entity_<?php echo $key; ?>",
|
||||
"data": "entity_<?php echo $key; ?>",
|
||||
<?php if (! empty($values['sortable'])) { ?>
|
||||
"sortable": true,
|
||||
<?php } ?>
|
||||
<?php if (! empty($values['searchable'])) { ?>
|
||||
"searchable": true,
|
||||
<?php } ?>
|
||||
<?php if (! empty($values['width'])) { ?>
|
||||
"width": "<?php echo $values['width']; ?>",
|
||||
<?php } ?>
|
||||
<?php if (! empty($values['center'])) { ?>
|
||||
"class": "<?php echo $values['center']; ?>",
|
||||
<?php } ?>
|
||||
<?php //if (! empty($values['priority'])) { ?>
|
||||
//"responsivePriority": <?php //echo $values['priority']; ?>,
|
||||
<?php //} ?>
|
||||
},
|
||||
<?php } ?>
|
||||
],
|
||||
"columnDefs": [
|
||||
{ "targets": '_all', "sortable": false },
|
||||
{ "targets": '_all', "searchable": false },
|
||||
<?php if (! empty($colHidden)) { ?>
|
||||
{ "visible": false, "targets": [ <?php echo $colHidden; ?> ] }
|
||||
<?php } ?>
|
||||
],
|
||||
"language": {
|
||||
"lengthMenu": "<?php echo $langs->transnoentities('Showing'); ?> _MENU_ <?php echo $langs->transnoentities('LineEntries'); ?>",
|
||||
"search": "<?php echo $langs->transnoentities('Search'); ?>:",
|
||||
"processing": "<?php echo $langs->transnoentities('Processing'); ?>",
|
||||
"zeroRecords": "<?php echo $langs->transnoentities('NoRecordsToDisplay'); ?>",
|
||||
"infoEmpty": "<?php echo $langs->transnoentities('NoEntriesToShow'); ?>",
|
||||
"infoFiltered": "(<?php echo $langs->transnoentities('FilteredFrom'); ?> _MAX_ <?php echo $langs->transnoentities('TotalEntries'); ?>)",
|
||||
"info": "<?php echo $langs->transnoentities('ShowingOf'); ?> _START_ <?php echo $langs->transnoentities('To'); ?> _END_ <?php echo $langs->transnoentities('TotalOf'); ?> _TOTAL_ <?php echo $langs->transnoentities('LineEntries'); ?>",
|
||||
"paginate": {
|
||||
"first": "<?php echo $langs->transnoentities('First'); ?>",
|
||||
"last": "<?php echo $langs->transnoentities('Last'); ?>",
|
||||
"previous": "<?php echo $langs->transnoentities('Previous'); ?>",
|
||||
"next": "<?php echo $langs->transnoentities('Next'); ?>"
|
||||
}
|
||||
},
|
||||
"processing": true,
|
||||
"serverSide": true,
|
||||
"deferRender": true,
|
||||
"pageLength": 25,
|
||||
<?php if (! empty($colOrder)) { ?>
|
||||
"order": [[ <?php echo $colOrder['id']; ?>,"<?php echo $colOrder['direction']; ?>" ]],
|
||||
<?php } ?>
|
||||
"ajax": {
|
||||
"url": "<?php echo dol_buildpath('/multicompany/core/ajax/list.php', 1); ?>",
|
||||
"type": "POST"
|
||||
}
|
||||
});
|
||||
$('#multicompany_entity_list').on( 'order.dt', function ( e, settings, column ) {
|
||||
//console.log(column);
|
||||
var newid = column[0]['col'];
|
||||
var newdir = column[0]['dir'];
|
||||
var currentid = <?php echo $colOrder['id']; ?>;
|
||||
var currentdir = "<?php echo $colOrder['direction']; ?>";
|
||||
if (currentid != newid || currentdir != newdir) {
|
||||
$.get( "<?php echo dol_buildpath('/multicompany/core/ajax/functions.php',1); ?>", {
|
||||
"action" : "setColOrder",
|
||||
"id" : newid,
|
||||
"dir" : newdir
|
||||
},
|
||||
function (result) {
|
||||
|
||||
}
|
||||
);
|
||||
}
|
||||
});
|
||||
$('#multicompany_entity_list').on( 'column-visibility.dt', function ( e, settings, column, state ) {
|
||||
//console.log('Column '+ column +' has changed to '+ (state ? 'visible' : 'hidden'));
|
||||
$.get( "<?php echo dol_buildpath('/multicompany/core/ajax/functions.php',1); ?>", {
|
||||
"action" : "setColHidden",
|
||||
"id" : column,
|
||||
"state" : (state ? 'visible' : 'hidden')
|
||||
},
|
||||
function (result) {
|
||||
|
||||
}
|
||||
);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<table width="100%" id="multicompany_entity_list">
|
||||
<thead>
|
||||
<tr>
|
||||
<?php
|
||||
foreach($columns as $key => $values) {
|
||||
//$moreattr = (! empty($values['priority'])?'data-priority="'.$values['priority'].'"':'');
|
||||
echo getTitleFieldOfList($values['label'], 1, '', '', '', '', $moreattr, '', '', 'entity_' . $key . ' ');
|
||||
}
|
||||
?>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="5" class="dataTables_empty"><?php echo $langs->trans('LoadingDataFromServer'); ?></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<div class="tabsAction">
|
||||
<a class="butAction" href="<?php echo $_SERVER["PHP_SELF"]; ?>?action=create"><?php echo $langs->trans('AddEntity'); ?></a>
|
||||
</div>
|
||||
<!-- END PHP TEMPLATE -->
|
||||
@ -1,122 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2017-2019 Regis Houssin <regis.houssin@inodbox.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
*/
|
||||
?>
|
||||
|
||||
<!-- BEGIN MULTICOMPANY AJAX TEMPLATE -->
|
||||
<div id="dialog-delete" title="<?php echo $langs->trans('DeleteAnEntity'); ?>" class="hideobject">
|
||||
<p><?php echo img_warning().' '.$langs->trans('ConfirmDeleteEntity'); ?></p>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$("#multicompany_entity_list").on('click', '.multicompany-button-active-on, .multicompany-button-visible-on', function() {
|
||||
var button = $(this);
|
||||
var type = button.attr('id').match(/^[a-z]+/g);
|
||||
var id = parseInt(button.attr('id').match(/[0-9]+$/g));
|
||||
$.get( "<?php echo dol_buildpath('/multicompany/core/ajax/functions.php',1); ?>", {
|
||||
'action': 'setStatusDisable',
|
||||
'type': type[0],
|
||||
'id': id
|
||||
},
|
||||
function (result) {
|
||||
if (result == 1) {
|
||||
var csstype = (type == 'activetemplate' ? 'active' : type);
|
||||
var title = '<?php echo $langs->transnoentities("Disabled"); ?>';
|
||||
button.attr('title', title).attr('alt', title);
|
||||
button.removeClass('fa-check-square multicompany-button-' + csstype + '-on');
|
||||
button.addClass('fa-square multicompany-button-' + csstype + '-off');
|
||||
if (type == 'active') {
|
||||
$('#visible_' + id).attr('title', title).attr('alt', title);
|
||||
$('#visible_' + id).removeClass('fa-check-square multicompany-button-visible-on');
|
||||
$('#visible_' + id).removeClass('multicompany-button-visible-off');
|
||||
$('#visible_' + id).addClass('fa-square multicompany-button-disabled');
|
||||
}
|
||||
} else {
|
||||
$.jnotify("<?php echo $langs->trans("ErrorEntityStatusDisable"); ?>", "error", true);
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
$("#multicompany_entity_list").on('click', '.multicompany-button-active-off, .multicompany-button-visible-off', function() {
|
||||
var button = $(this);
|
||||
var type = button.attr('id').match(/^[a-z]+/g);
|
||||
var id = parseInt(button.attr('id').match(/[0-9]+$/g));
|
||||
$.get( "<?php echo dol_buildpath('/multicompany/core/ajax/functions.php',1); ?>", {
|
||||
'action': 'setStatusEnable',
|
||||
'type': type[0],
|
||||
'id': id
|
||||
},
|
||||
function (result) {
|
||||
if (result == 1) {
|
||||
var csstype = (type == 'activetemplate' ? 'active' : type);
|
||||
var title = '<?php echo $langs->transnoentities("Enabled"); ?>';
|
||||
button.attr('title', title).attr('alt', title);
|
||||
button.removeClass('fa-square multicompany-button-' + csstype + '-off');
|
||||
button.addClass('fa-check-square multicompany-button-' + csstype + '-on');
|
||||
if (type == 'active') {
|
||||
$('#visible_' + id).removeClass('fa-check-square').removeClass('multicompany-button-disabled');
|
||||
$('#visible_' + id).addClass('fa-square multicompany-button-visible-off');
|
||||
}
|
||||
} else {
|
||||
$.jnotify("<?php echo $langs->trans("ErrorEntityStatusEnable"); ?>", "error", true);
|
||||
}
|
||||
}
|
||||
);
|
||||
});
|
||||
$("#multicompany_entity_list").on('click', '.multicompany-button-delete', function() {
|
||||
var button = $(this);
|
||||
var id = parseInt(button.attr('id').match(/[0-9]+$/g));
|
||||
$('#dialog-delete').dialog({
|
||||
resizable: false,
|
||||
height: 170,
|
||||
width: 400,
|
||||
modal: true,
|
||||
open: function() {
|
||||
$('.ui-dialog-buttonset > button:last').focus();
|
||||
},
|
||||
buttons: {
|
||||
'<?php echo $langs->trans('Delete'); ?>': function() {
|
||||
$(this).dialog('close');
|
||||
$.get( "<?php echo dol_buildpath('/multicompany/core/ajax/functions.php',1); ?>", {
|
||||
"action" : "deleteEntity",
|
||||
"id" : id
|
||||
},
|
||||
function (result) {
|
||||
if (result == 1) {
|
||||
$('#multicompany_entity_list').dataTable().fnDraw();
|
||||
$.jnotify("<?php echo $langs->trans("ConfirmedEntityDeleted"); ?>", "ok");
|
||||
} else {
|
||||
$.jnotify("<?php echo $langs->trans("ErrorEntityDeleted"); ?>", "error", true);
|
||||
}
|
||||
}
|
||||
);
|
||||
},
|
||||
'<?php echo $langs->trans('Cancel'); ?>': function() {
|
||||
$(this).dialog('close');
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
$("#multicompany_entity_list").on('click', '.multicompany-button-setup', function() {
|
||||
var button = $(this);
|
||||
var id = parseInt(button.attr('id').match(/([0-9]+)$/g));
|
||||
window.location.href = "<?php echo $_SERVER["PHP_SELF"].'?action=edit&id=' ?>" + id;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!-- END MULTICOMPANY AJAX TEMPLATE -->
|
||||
@ -1,334 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2017-2018 Regis Houssin <regis.houssin@inodbox.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
use Luracast\Restler\RestException;
|
||||
|
||||
dol_include_once('/multicompany/class/dao_multicompany.class.php', 'DaoMulticompany');
|
||||
|
||||
/**
|
||||
* API class for multicompany
|
||||
*
|
||||
* @access protected
|
||||
* @class DolibarrApiAccess {@requires user,external}
|
||||
*/
|
||||
class Multicompany extends DolibarrApi
|
||||
{
|
||||
/**
|
||||
* @var array $FIELDS Mandatory fields, checked when create and update object
|
||||
*/
|
||||
static $FIELDS = array(
|
||||
'label'
|
||||
);
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
function __construct()
|
||||
{
|
||||
global $db, $conf;
|
||||
$this->db = $db;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get properties of an entity
|
||||
*
|
||||
* Return an array with entity informations
|
||||
*
|
||||
* @param int $id ID of entity
|
||||
* @return array|mixed data without useless information
|
||||
*
|
||||
* @throws RestException
|
||||
*/
|
||||
function get($id)
|
||||
{
|
||||
if (! DolibarrApiAccess::$user->rights->multicompany->read) {
|
||||
throw new RestException(401);
|
||||
}
|
||||
|
||||
// The DaoMulticompany::fetch() method uses the global variable $user.
|
||||
global $user;
|
||||
$user = DolibarrApiAccess::$user;
|
||||
|
||||
$multicompany = new DaoMulticompany($this->db);
|
||||
$result = $multicompany->fetch($id);
|
||||
if ( ! $result ) {
|
||||
throw new RestException(404, 'entity not found');
|
||||
}
|
||||
|
||||
return $this->_cleanObjectDatas($multicompany);
|
||||
}
|
||||
|
||||
/**
|
||||
* List entities
|
||||
*
|
||||
* Get a list of entities
|
||||
*
|
||||
* @param string $sortfield Sort field
|
||||
* @param string $sortorder Sort order
|
||||
* @param int $limit Limit for list
|
||||
* @param int $page Page number
|
||||
* @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.label:like:'SO-%') and (t.visible:=:'1')"
|
||||
* @return array Array of entities objects
|
||||
*
|
||||
* @throws RestException
|
||||
*/
|
||||
function index($sortfield = "t.rowid", $sortorder = 'ASC', $limit = 0, $page = 0, $sqlfilters = '') {
|
||||
global $db, $conf;
|
||||
|
||||
$obj_ret = array();
|
||||
|
||||
if(! DolibarrApiAccess::$user->rights->multicompany->read) {
|
||||
throw new RestException(401);
|
||||
}
|
||||
|
||||
$sql = "SELECT t.rowid";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."entity as t";
|
||||
$sql.= ' WHERE t.active = 1';
|
||||
|
||||
// Add sql filters
|
||||
if ($sqlfilters)
|
||||
{
|
||||
if (! DolibarrApi::_checkFilters($sqlfilters))
|
||||
{
|
||||
throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters);
|
||||
}
|
||||
$regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)';
|
||||
$sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")";
|
||||
}
|
||||
|
||||
$sql.= $db->order($sortfield, $sortorder);
|
||||
if ($limit) {
|
||||
if ($page < 0)
|
||||
{
|
||||
$page = 0;
|
||||
}
|
||||
$offset = $limit * $page;
|
||||
|
||||
$sql.= $db->plimit($limit + 1, $offset);
|
||||
}
|
||||
|
||||
$result = $db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
// The DaoMulticompany::fetch() method uses the global variable $user.
|
||||
global $user;
|
||||
$user = DolibarrApiAccess::$user;
|
||||
|
||||
$i=0;
|
||||
$num = $db->num_rows($result);
|
||||
$min = min($num, ($limit <= 0 ? $num : $limit));
|
||||
while ($i < $min)
|
||||
{
|
||||
$obj = $db->fetch_object($result);
|
||||
$multicompany= new DaoMulticompany($this->db);
|
||||
if ($multicompany->fetch($obj->rowid)) {
|
||||
$obj_ret[] = $this->_cleanObjectDatas($multicompany);
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
else {
|
||||
throw new RestException(503, 'Error when retrieve entities list : '.$db->lasterror());
|
||||
}
|
||||
if ( ! count($obj_ret)) {
|
||||
throw new RestException(404, 'No entities found');
|
||||
}
|
||||
|
||||
return $obj_ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create entity object
|
||||
*
|
||||
* @param array $request_data Request data
|
||||
* @return int ID of entity
|
||||
*/
|
||||
/*function post($request_data = null)
|
||||
{
|
||||
if (! DolibarrApiAccess::$user->rights->adherent->configurer) {
|
||||
throw new RestException(401);
|
||||
}
|
||||
// Check mandatory fields
|
||||
$result = $this->_validate($request_data);
|
||||
|
||||
$membertype = new AdherentType($this->db);
|
||||
foreach($request_data as $field => $value) {
|
||||
$membertype->$field = $value;
|
||||
}
|
||||
if ($membertype->create(DolibarrApiAccess::$user) < 0) {
|
||||
throw new RestException(500, 'Error creating member type', array_merge(array($membertype->error), $membertype->errors));
|
||||
}
|
||||
return $membertype->id;
|
||||
}*/
|
||||
|
||||
/**
|
||||
* Update entity
|
||||
*
|
||||
* @param int $id ID of entity to update
|
||||
* @param array $request_data Datas
|
||||
* @return int
|
||||
*/
|
||||
/*function put($id, $request_data = null)
|
||||
{
|
||||
if (! DolibarrApiAccess::$user->rights->adherent->configurer) {
|
||||
throw new RestException(401);
|
||||
}
|
||||
|
||||
$membertype = new AdherentType($this->db);
|
||||
$result = $membertype->fetch($id);
|
||||
if( ! $result ) {
|
||||
throw new RestException(404, 'member type not found');
|
||||
}
|
||||
|
||||
if( ! DolibarrApi::_checkAccessToResource('member',$membertype->id,'adherent_type')) {
|
||||
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||
}
|
||||
|
||||
foreach($request_data as $field => $value) {
|
||||
if ($field == 'id') continue;
|
||||
// Process the status separately because it must be updated using
|
||||
// the validate() and resiliate() methods of the class AdherentType.
|
||||
$membertype->$field = $value;
|
||||
}
|
||||
|
||||
// If there is no error, update() returns the number of affected rows
|
||||
// so if the update is a no op, the return value is zero.
|
||||
if ($membertype->update(DolibarrApiAccess::$user) >= 0)
|
||||
return $this->get($id);
|
||||
|
||||
return false;
|
||||
}*/
|
||||
|
||||
/**
|
||||
* Delete entity
|
||||
*
|
||||
* @param int $id entity ID
|
||||
* @return array
|
||||
*/
|
||||
/*function delete($id)
|
||||
{
|
||||
if (! DolibarrApiAccess::$user->rights->adherent->configurer) {
|
||||
throw new RestException(401);
|
||||
}
|
||||
$membertype = new AdherentType($this->db);
|
||||
$result = $membertype->fetch($id);
|
||||
if( ! $result ) {
|
||||
throw new RestException(404, 'member type not found');
|
||||
}
|
||||
|
||||
if ( ! DolibarrApi::_checkAccessToResource('member',$membertype->id,'adherent_type')) {
|
||||
throw new RestException(401, 'Access not allowed for login '.DolibarrApiAccess::$user->login);
|
||||
}
|
||||
|
||||
if (! $membertype->delete($membertype->id)) {
|
||||
throw new RestException(401,'error when deleting member type');
|
||||
}
|
||||
|
||||
return array(
|
||||
'success' => array(
|
||||
'code' => 200,
|
||||
'message' => 'member type deleted'
|
||||
)
|
||||
);
|
||||
}*/
|
||||
|
||||
/**
|
||||
* Validate fields before creating an object
|
||||
*
|
||||
* @param array|null $data Data to validate
|
||||
* @return array
|
||||
*
|
||||
* @throws RestException
|
||||
*/
|
||||
function _validate($data)
|
||||
{
|
||||
$membertype = array();
|
||||
foreach (MembersTypes::$FIELDS as $field) {
|
||||
if (!isset($data[$field]))
|
||||
throw new RestException(400, "$field field missing");
|
||||
$membertype[$field] = $data[$field];
|
||||
}
|
||||
return $membertype;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clean sensible object datas
|
||||
*
|
||||
* @param object $object Object to clean
|
||||
* @return array Array of cleaned object properties
|
||||
*/
|
||||
function _cleanObjectDatas($object) {
|
||||
|
||||
$object = parent::_cleanObjectDatas($object);
|
||||
|
||||
// Remove constants
|
||||
foreach($object as $key => $value)
|
||||
{
|
||||
if (preg_match('/^MAIN_/', $key))
|
||||
{
|
||||
unset($object->$key);
|
||||
}
|
||||
}
|
||||
|
||||
unset($object->language);
|
||||
unset($object->fk_tables);
|
||||
unset($object->import_key);
|
||||
unset($object->array_options);
|
||||
unset($object->linkedObjectsIds);
|
||||
unset($object->context);
|
||||
unset($object->canvas);
|
||||
unset($object->fk_project);
|
||||
unset($object->contact);
|
||||
unset($object->contact_id);
|
||||
unset($object->thirdparty);
|
||||
unset($object->user);
|
||||
unset($object->origin);
|
||||
unset($object->origin_id);
|
||||
unset($object->ref_ext);
|
||||
unset($object->barcode_type);
|
||||
unset($object->barcode_type_code);
|
||||
unset($object->barcode_type_label);
|
||||
unset($object->barcode_type_coder);
|
||||
unset($object->mode_reglement_id);
|
||||
unset($object->cond_reglement_id);
|
||||
unset($object->cond_reglement);
|
||||
unset($object->fk_delivery_address);
|
||||
unset($object->shipping_method_id);
|
||||
unset($object->modelpdf);
|
||||
unset($object->fk_account);
|
||||
unset($object->note_public);
|
||||
unset($object->note_private);
|
||||
unset($object->fk_incoterms);
|
||||
unset($object->libelle_incoterms);
|
||||
unset($object->location_incoterms);
|
||||
unset($object->name);
|
||||
unset($object->lastname);
|
||||
unset($object->firstname);
|
||||
unset($object->civility_id);
|
||||
unset($object->total_ht);
|
||||
unset($object->total_tva);
|
||||
unset($object->total_localtax1);
|
||||
unset($object->total_localtax2);
|
||||
unset($object->total_ttc);
|
||||
unset($object->ref);
|
||||
unset($object->statut);
|
||||
unset($object->note);
|
||||
|
||||
return $object;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,990 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2009-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
* Copyright (C) 2011 Herve Prot <herve.prot@symeos.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file htdocs/multicompany/dao_multicompany.class.php
|
||||
* \ingroup multicompany
|
||||
* \brief File Class multicompany
|
||||
*/
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/commonobject.class.php';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
|
||||
|
||||
/**
|
||||
* \class DaoMulticompany
|
||||
* \brief Class of the module multicompany
|
||||
*/
|
||||
class DaoMulticompany extends CommonObject
|
||||
{
|
||||
public $element = 'entity'; // !< Id that identify managed objects
|
||||
public $table_element = 'entity'; // !< Name of table without prefix where object is stored
|
||||
|
||||
public $id;
|
||||
public $label;
|
||||
public $description;
|
||||
|
||||
public $options=array();
|
||||
public $options_json;
|
||||
|
||||
public $entity=array();
|
||||
public $entities=array();
|
||||
|
||||
public $fk_tables=array();
|
||||
|
||||
public $visible;
|
||||
public $active;
|
||||
public $currency;
|
||||
public $language;
|
||||
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param DoliDB $db Database handler
|
||||
*/
|
||||
public function __construct($db)
|
||||
{
|
||||
$this->db = $db;
|
||||
|
||||
$this->fk_tables = array(
|
||||
'societe' => array(
|
||||
'key' => 'fk_soc',
|
||||
'childs' => array(
|
||||
'societe_address',
|
||||
'societe_commerciaux',
|
||||
'societe_log',
|
||||
'societe_prices',
|
||||
'societe_remise',
|
||||
'societe_remise_except',
|
||||
'societe_rib',
|
||||
'socpeople'
|
||||
)
|
||||
),
|
||||
'product' => array(
|
||||
'key' => 'fk_product',
|
||||
'childs' => array(
|
||||
'product_ca',
|
||||
'product_lang',
|
||||
'product_price',
|
||||
'product_stock',
|
||||
'product_fournisseur_price' => array(
|
||||
'key' => 'fk_product_fournisseur',
|
||||
'childs' => array('product_fournisseur_price_log')
|
||||
),
|
||||
)
|
||||
),
|
||||
'projet' => array(
|
||||
'key' => 'fk_projet',
|
||||
'childs' => array(
|
||||
'projet_task' => array(
|
||||
'key' => 'fk_task',
|
||||
'childs' => array('projet_task_time')
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch entity
|
||||
*
|
||||
* @param int $id
|
||||
* @return int
|
||||
*/
|
||||
public function fetch($id)
|
||||
{
|
||||
global $user;
|
||||
|
||||
//clearCache($id);
|
||||
if ($cache = getCache($id))
|
||||
{
|
||||
foreach ($cache as $key => $value)
|
||||
{
|
||||
$this->$key = $value;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql = "SELECT rowid, label, description, options, visible, active";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."entity";
|
||||
$sql.= " WHERE rowid = ".$id;
|
||||
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
if ($this->db->num_rows($result))
|
||||
{
|
||||
$obj = $this->db->fetch_object($result);
|
||||
|
||||
$this->id = $obj->rowid;
|
||||
$this->label = $obj->label;
|
||||
$this->description = $obj->description;
|
||||
$this->options = json_decode($obj->options, true);
|
||||
$this->visible = $obj->visible;
|
||||
$this->active = $obj->active;
|
||||
|
||||
if (is_array($this->options) && ! empty($this->options) && is_array($this->options['sharings']))
|
||||
{
|
||||
// for backward compatibility
|
||||
if (array_key_exists('referent', $this->options['sharings']))
|
||||
{
|
||||
if (empty($this->options['referent']))
|
||||
{
|
||||
$this->options['referent'] = $this->options['sharings']['referent'];
|
||||
}
|
||||
unset($this->options['sharings']['referent']);
|
||||
}
|
||||
|
||||
// for backward compatibility
|
||||
if (array_key_exists('societe', $this->options['sharings']))
|
||||
{
|
||||
if (empty($this->options['sharings']['thirdparty']))
|
||||
{
|
||||
$this->options['sharings']['thirdparty'] = $this->options['sharings']['societe'];
|
||||
}
|
||||
unset($this->options['sharings']['societe']);
|
||||
}
|
||||
|
||||
// for backward compatibility
|
||||
if (array_key_exists('bank_account', $this->options['sharings']))
|
||||
{
|
||||
if (empty($this->options['sharings']['bankaccount']))
|
||||
{
|
||||
$this->options['sharings']['bankaccount'] = $this->options['sharings']['bank_account'];
|
||||
}
|
||||
unset($this->options['sharings']['bank_account']);
|
||||
}
|
||||
}
|
||||
|
||||
$this->fetch_optionals();
|
||||
|
||||
$cache = array(
|
||||
'id' => $this->id,
|
||||
'label' => $this->label,
|
||||
'description' => $this->description,
|
||||
'options' => $this->options,
|
||||
'visible' => $this->visible,
|
||||
'active' => $this->active,
|
||||
'array_options' => $this->array_options
|
||||
);
|
||||
|
||||
setCache($this->id, $cache);
|
||||
}
|
||||
else
|
||||
{
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return -3;
|
||||
}
|
||||
}
|
||||
|
||||
if (! empty($user->login))
|
||||
{
|
||||
$this->getConstants();
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create entity
|
||||
*
|
||||
* @param User $user Object of user that ask creation
|
||||
* @param int $call_trigger false = no, true = yes
|
||||
* @return int >= 0 if OK, < 0 if KO
|
||||
*/
|
||||
public function create(User $user, $call_trigger = true)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$error=0;
|
||||
|
||||
// Clean parameters
|
||||
$this->label = trim($this->label);
|
||||
$this->description = trim($this->description);
|
||||
$this->options_json = json_encode($this->options);
|
||||
|
||||
dol_syslog(get_class($this)."::create ".$this->label);
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
$now=dol_now();
|
||||
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."entity (";
|
||||
$sql.= "label";
|
||||
$sql.= ", description";
|
||||
$sql.= ", datec";
|
||||
$sql.= ", fk_user_creat";
|
||||
$sql.= ", options";
|
||||
$sql.= ", visible";
|
||||
$sql.= ", active";
|
||||
$sql.= ") VALUES (";
|
||||
$sql.= "'".$this->db->escape($this->label)."'";
|
||||
$sql.= ", '".$this->db->escape($this->description)."'";
|
||||
$sql.= ", '".$this->db->idate($now)."'";
|
||||
$sql.= ", ".$user->id;
|
||||
$sql.= ", '".$this->db->escape($this->options_json)."'";
|
||||
$sql.= ", ".(! empty($this->visible)?$this->db->escape($this->visible):0);
|
||||
$sql.= ", ".(! empty($this->active)?$this->db->escape($this->active):0);
|
||||
$sql.= ")";
|
||||
|
||||
dol_syslog(get_class($this)."::create sql=".$sql, LOG_DEBUG);
|
||||
$result=$this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."entity");
|
||||
|
||||
if (! $error) {
|
||||
|
||||
if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) {
|
||||
$result = $this->insertExtraFields();
|
||||
if ($result < 0) {
|
||||
$error ++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dol_syslog(get_class($this)."::Create success id=".$this->id);
|
||||
}
|
||||
|
||||
if (!$error && $call_trigger)
|
||||
{
|
||||
// Call trigger
|
||||
$result = $this->call_trigger('MULTICOMPANY_CREATE', $user);
|
||||
if ($result < 0) $error++;
|
||||
// End call triggers
|
||||
}
|
||||
|
||||
if (empty($error)) {
|
||||
$this->db->commit();
|
||||
return $this->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_syslog(get_class($this)."::Create echec ".$this->error);
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update entity
|
||||
*
|
||||
* @param int $id Id of entity (deprecated, use 0 here and call update on an object loaded by a fetch)
|
||||
* @param User $user User who requests the update
|
||||
* @param int $call_trigger false = no, true = yes
|
||||
* @return int <0 if KO, >=0 if OK
|
||||
*/
|
||||
public function update($id, User $user, $call_trigger = true)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$error=0;
|
||||
|
||||
if (empty($id)) $id = $this->id;
|
||||
|
||||
// Clean parameters
|
||||
$this->label = trim($this->label);
|
||||
$this->description = trim($this->description);
|
||||
$this->options_json = json_encode($this->options);
|
||||
|
||||
dol_syslog(get_class($this)."::update id=".$id." label=".$this->label);
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."entity SET";
|
||||
$sql.= " label = '" . $this->db->escape($this->label) ."'";
|
||||
$sql.= ", description = '" . $this->db->escape($this->description) ."'";
|
||||
$sql.= ", options = '" . $this->db->escape($this->options_json) ."'";
|
||||
$sql.= " WHERE rowid = " . $id;
|
||||
|
||||
dol_syslog(get_class($this)."::create sql=".$sql, LOG_DEBUG);
|
||||
$result=$this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
dol_syslog(get_class($this)."::Update success id=".$id);
|
||||
|
||||
if (! $error) {
|
||||
|
||||
if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) {
|
||||
$result = $this->insertExtraFields();
|
||||
if ($result < 0) {
|
||||
$error ++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$error && $call_trigger)
|
||||
{
|
||||
// Call trigger
|
||||
$result = $this->call_trigger('MULTICOMPANY_MODIFY', $user);
|
||||
if ($result < 0) $error++;
|
||||
// End call triggers
|
||||
}
|
||||
|
||||
if (empty($error)) {
|
||||
$this->db->commit();
|
||||
clearCache($id);
|
||||
clearCache('constants_' . $id);
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_syslog(get_class($this)."::Update echec ".$this->error, LOG_ERR);
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete entity
|
||||
*
|
||||
* @param int $id Id of entity to delete
|
||||
* @param int $call_trigger false = no, true = yes
|
||||
* @return int <0 if KO, >0 if OK
|
||||
*/
|
||||
public function delete($id, $call_trigger = true)
|
||||
{
|
||||
global $user;
|
||||
|
||||
$error=0;
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
if (!$error && $call_trigger)
|
||||
{
|
||||
// Call trigger
|
||||
$result = $this->call_trigger('MULTICOMPANY_DELETE', $user);
|
||||
if ($result < 0) $error++;
|
||||
// End call triggers
|
||||
}
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."const";
|
||||
$sql.= " WHERE entity = " . $id;
|
||||
dol_syslog(get_class($this)."::Delete sql=".$sql, LOG_DEBUG);
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
// TODO remove records of all tables
|
||||
}
|
||||
else
|
||||
{
|
||||
$error++;
|
||||
$this->error .= $this->db->lasterror();
|
||||
dol_syslog(get_class($this)."::Delete erreur -1 ".$this->error, LOG_ERR);
|
||||
}
|
||||
}
|
||||
|
||||
// Removed extrafields
|
||||
if (!$error)
|
||||
{
|
||||
$result = $this->deleteExtraFields();
|
||||
if ($result < 0)
|
||||
{
|
||||
$error++;
|
||||
dol_syslog(get_class($this)."::delete error -2 ".$this->error, LOG_ERR);
|
||||
}
|
||||
}
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."entity";
|
||||
$sql.= " WHERE rowid = " . $id;
|
||||
dol_syslog(get_class($this)."::Delete sql=".$sql, LOG_DEBUG);
|
||||
if (!$this->db->query($sql)) {
|
||||
$error++;
|
||||
$this->error .= $this->db->lasterror();
|
||||
dol_syslog(get_class($this)."::Delete erreur -1 ".$this->error, LOG_ERR);
|
||||
}
|
||||
}
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
dol_syslog(get_class($this)."::Delete success id=".$id);
|
||||
$this->db->commit();
|
||||
clearCache($id);
|
||||
clearCache('constants_' . $id);
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_syslog(get_class($this)."::Delete echec ".$this->error);
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
public function getConstants()
|
||||
{
|
||||
$key = 'constants_' . $this->id;
|
||||
//clearCache('constants_' . $this->id);
|
||||
|
||||
if ($cache = getCache($key))
|
||||
{
|
||||
foreach ($cache as $key => $value)
|
||||
{
|
||||
$this->$key = $value;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$cache=array();
|
||||
|
||||
$sql = "SELECT ";
|
||||
$sql.= $this->db->decrypt('name')." as name";
|
||||
$sql.= ", ".$this->db->decrypt('value')." as value";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."const";
|
||||
$sql.= " WHERE entity = ".$this->id;
|
||||
$sql.= " AND ".$this->db->decrypt('name')." LIKE 'MAIN_%'";
|
||||
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
$num=$this->db->num_rows($result);
|
||||
$i=0;
|
||||
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $this->db->fetch_object($result);
|
||||
|
||||
if ($obj->name === 'MAIN_INFO_SOCIETE_COUNTRY')
|
||||
{
|
||||
$tmp = explode(':', $obj->value);
|
||||
$this->country_id = $tmp[0];
|
||||
$cache['country_id'] = $this->country_id;
|
||||
$this->country_code = $tmp[1];
|
||||
$cache['country_code'] = $this->country_code;
|
||||
}
|
||||
else if ($obj->name === 'MAIN_MONNAIE')
|
||||
{
|
||||
$this->currency_code = $obj->value;
|
||||
$cache['currency_code'] = $this->currency_code;
|
||||
}
|
||||
else if ($obj->name === 'MAIN_LANG_DEFAULT')
|
||||
{
|
||||
$this->language_code = $obj->value;
|
||||
$cache['language_code'] = $this->language_code;
|
||||
}
|
||||
else if ($obj->name === 'MAIN_INFO_SOCIETE_NOM')
|
||||
{
|
||||
$this->name = $obj->value;
|
||||
$cache['name'] = $this->name;
|
||||
}
|
||||
else if ($obj->name === 'MAIN_INFO_SOCIETE_ZIP')
|
||||
{
|
||||
$this->zip = $obj->value;
|
||||
$cache['zip'] = $this->zip;
|
||||
}
|
||||
else if ($obj->name === 'MAIN_INFO_SOCIETE_ADDRESS')
|
||||
{
|
||||
$this->address = $obj->value;
|
||||
$cache['address'] = $this->address;
|
||||
}
|
||||
else if ($obj->name === 'MAIN_INFO_SOCIETE_TOWN')
|
||||
{
|
||||
$this->town = $obj->value;
|
||||
$cache['town'] = $this->town;
|
||||
}
|
||||
else if ($obj->name === 'MAIN_INFO_SOCIETE_STATE')
|
||||
{
|
||||
$this->state_id = $obj->value;
|
||||
$cache['state_id'] = $this->state_id;
|
||||
}
|
||||
|
||||
$constname = $obj->name;
|
||||
$this->$constname = $obj->value;
|
||||
$cache[$constname] = $this->$constname;
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
setCache($key, $cache);
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove all records of an entity
|
||||
*
|
||||
* @param int $id Entity id
|
||||
* @return int
|
||||
*/
|
||||
private function deleteEntityRecords($id)
|
||||
{
|
||||
$error=1;
|
||||
|
||||
$this->db->begin();
|
||||
|
||||
$tables = $this->db->DDLListTables($this->db->database_name);
|
||||
if (is_array($tables) && ! empty($tables))
|
||||
{
|
||||
foreach($tables as $table)
|
||||
{
|
||||
$fields = $this->db->DDLInfoTable($table);
|
||||
foreach ($fields as $field)
|
||||
{
|
||||
if (is_array($field) && in_array('entity', $field))
|
||||
{
|
||||
$tablewithoutprefix = str_replace(MAIN_DB_PREFIX, '', $table);
|
||||
$objIds = $this->getIdByForeignKey($tablewithoutprefix, $id);
|
||||
if (! empty($objIds))
|
||||
{
|
||||
if (array_key_exists($tablewithoutprefix, $this->fk_tables))
|
||||
{
|
||||
// Level 0
|
||||
$foreignKey = $this->fk_tables[$tablewithoutprefix]['key'];
|
||||
foreach($this->fk_tables[$tablewithoutprefix]['childs'] as $childTable => $child)
|
||||
{
|
||||
// Level 1
|
||||
if (! is_int($childTable) && is_array($child))
|
||||
{
|
||||
echo 'childTableLevel1='.$childTable.'<br>';
|
||||
$objLevel1Ids = array();
|
||||
foreach($objIds as $rowid)
|
||||
{
|
||||
$ret = $this->getIdByForeignKey($childTable, $rowid, $foreignKey);
|
||||
if (!empty($ret))
|
||||
$objLevel1Ids = array_merge($objLevel1Ids, $ret);
|
||||
}
|
||||
|
||||
sort($objLevel1Ids);
|
||||
//var_dump($objLevel1Ids);
|
||||
|
||||
// Level 2
|
||||
foreach($child['childs'] as $childLevel2)
|
||||
{
|
||||
echo 'childTableLevel2='.$childLevel2.'<br>';
|
||||
foreach($objLevel1Ids as $rowid)
|
||||
{
|
||||
$sql = "DELETE FROM " . MAIN_DB_PREFIX . $childLevel2;
|
||||
$sql.= " WHERE " . $child['key'] . " = " . $rowid;
|
||||
//echo $sql.'<br>';
|
||||
//dol_syslog(get_class($this)."::deleteEntityRecords sql=" . $sql, LOG_DEBUG);
|
||||
/*if (!$this->db->query($sql)) {
|
||||
$error++;
|
||||
$this->error .= $this->db->lasterror();
|
||||
dol_syslog(get_class($this)."::deleteEntityRecords error -1 " . $this->error, LOG_ERR);
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
foreach($objIds as $rowid)
|
||||
{
|
||||
$sql = "DELETE FROM " . MAIN_DB_PREFIX . $childTable;
|
||||
$sql.= " WHERE " . $foreignKey . " = " . $rowid;
|
||||
//echo $sql.'<br>';
|
||||
//dol_syslog(get_class($this)."::deleteEntityRecords sql=" . $sql, LOG_DEBUG);
|
||||
/*if (!$this->db->query($sql)) {
|
||||
$error++;
|
||||
$this->error .= $this->db->lasterror();
|
||||
dol_syslog(get_class($this)."::deleteEntityRecords error -1 " . $this->error, LOG_ERR);
|
||||
}*/
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach($objIds as $rowid)
|
||||
{
|
||||
$sql = "DELETE FROM " . MAIN_DB_PREFIX . $child;
|
||||
$sql.= " WHERE " . $foreignKey . " = " . $rowid;
|
||||
//echo $sql.'<br>';
|
||||
//dol_syslog(get_class($this)."::deleteEntityRecords sql=" . $sql, LOG_DEBUG);
|
||||
/*if (!$this->db->query($sql)) {
|
||||
$error++;
|
||||
$this->error .= $this->db->lasterror();
|
||||
dol_syslog(get_class($this)."::deleteEntityRecords error -1 " . $this->error, LOG_ERR);
|
||||
}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
echo 'with childs = '.$table.'<br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'without childs = '.$table.'<br>';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
dol_syslog(get_class($this)."::deleteEntityRecords success entity=".$id);
|
||||
$this->db->commit();
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_syslog(get_class($this)."::deleteEntityRecords echec ".$this->error);
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all rowid from a table by couple foreign key / id
|
||||
*
|
||||
* @param string $table
|
||||
* @param int $id
|
||||
* @param string $foreignkey
|
||||
* @param string $fieldname
|
||||
* @return int[]
|
||||
*/
|
||||
private function getIdByForeignKey($table, $id, $foreignkey = 'entity', $fieldname = 'rowid')
|
||||
{
|
||||
$objIds=array();
|
||||
$foreignkey = (! empty($foreignkey) ? $foreignkey : 'entity');
|
||||
$fieldname = (! empty($fieldname) ? $fieldname : 'rowid');
|
||||
|
||||
$sql = "SELECT " . $fieldname . " FROM " . MAIN_DB_PREFIX . $table;
|
||||
$sql.= " WHERE " . $foreignkey . " = " . $id;
|
||||
//echo $sql.'<br>';
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$i = 0;
|
||||
$num = $this->db->num_rows($resql);
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
$objIds[] = $obj->$fieldname;
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
return $objIds;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set status of an entity
|
||||
*
|
||||
* @param int $id Id of entity
|
||||
* @param string $type Type of status (visible or active)
|
||||
* @param string $value Value of status (0: disable, 1: enable)
|
||||
* @return int
|
||||
*/
|
||||
public function setEntity($id, $type='active', $value)
|
||||
{
|
||||
$this->db->begin();
|
||||
|
||||
$sql = "UPDATE ".MAIN_DB_PREFIX."entity";
|
||||
$sql.= " SET " . $this->db->escape($type) . " = " . (int) $value;
|
||||
$sql.= " WHERE rowid = " . (int) $id;
|
||||
|
||||
dol_syslog(get_class($this)."::setEntity sql=".$sql, LOG_DEBUG);
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
$this->db->commit();
|
||||
clearCache($id);
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* List of entities
|
||||
*
|
||||
* @param int $login If use in login page or not
|
||||
* @param array $exclude Entity ids to exclude
|
||||
* @param bool $onlyactive sort only active entities
|
||||
* @return void
|
||||
*/
|
||||
public function getEntities($login = false, $exclude = false, $onlyactive = false)
|
||||
{
|
||||
global $conf, $user;
|
||||
|
||||
$this->entities=array();
|
||||
|
||||
if ($login || empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE) || (! empty($user->admin) && empty($user->entity)))
|
||||
{
|
||||
$sql = "SELECT DISTINCT(rowid), rang"; // Distinct parce que si user dans plusieurs groupes d'une entité, la liste d'entités de la petite terre affiche plusieurs fois la même entité
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."entity";
|
||||
if (! empty($user->admin) && empty($user->entity) && is_array($exclude) && ! empty($exclude))
|
||||
{
|
||||
$exclude = implode(",", $exclude);
|
||||
$sql.= " WHERE rowid NOT IN (" . $exclude .")";
|
||||
if (! empty($onlyactive)) $sql.= " AND active = 1";
|
||||
}
|
||||
else if (! empty($onlyactive)) {
|
||||
$sql.= " WHERE active = 1";
|
||||
}
|
||||
if (!$login) {
|
||||
$sql.= " ORDER BY rowid";
|
||||
}
|
||||
else {
|
||||
$sql.= " ORDER BY rang DESC, rowid ASC";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql = "SELECT DISTINCT(entity) as rowid"; // Distinct parce que si user dans plusieurs groupes d'une entité, la liste d'entités de la petite terre affiche plusieurs fois la même entité
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."usergroup_user";
|
||||
$sql.= " WHERE fk_user = ".$user->id;
|
||||
$sql.= " ORDER BY entity";
|
||||
}
|
||||
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
$num = $this->db->num_rows($result);
|
||||
$i = 0;
|
||||
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $this->db->fetch_object($result);
|
||||
|
||||
$objectstatic = new self($this->db);
|
||||
$ret = $objectstatic->fetch($obj->rowid);
|
||||
|
||||
$this->entities[$i] = $objectstatic;
|
||||
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check user $userid belongs to at least one group created into entity $id
|
||||
*
|
||||
* @param int $entity
|
||||
* @param int $userid
|
||||
* @return int
|
||||
*/
|
||||
public function verifyRight($entity, $userid)
|
||||
{
|
||||
global $conf;
|
||||
|
||||
$tmpuser=new User($this->db);
|
||||
$tmpuser->fetch($userid);
|
||||
//$tmpuser->fetch($userid, '', '',0, $entity); // TODO check compatibility with DAV authentication
|
||||
|
||||
if ($tmpuser->id)
|
||||
{
|
||||
if (empty($tmpuser->entity)) return 1; // superadmin always allowed
|
||||
if ($tmpuser->entity == $entity && $tmpuser->admin) return 1; // entity admin allowed
|
||||
if (empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE))
|
||||
{
|
||||
if ($tmpuser->entity == $entity) return 1; // user allowed if belong to entity
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql = "SELECT count(rowid) as nb";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."usergroup_user";
|
||||
$sql.= " WHERE fk_user=".$userid;
|
||||
$sql.= " AND entity=".$entity;
|
||||
//echo $sql;
|
||||
|
||||
dol_syslog(get_class($this)."::verifyRight sql=".$sql, LOG_DEBUG);
|
||||
$result = $this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
$obj = $this->db->fetch_object($result);
|
||||
return $obj->nb; // user allowed if at least in one group
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get constants values of an entity
|
||||
*
|
||||
* @param int $entity Entity id
|
||||
* @param string $constname Specific contant
|
||||
* @return array Array of constants
|
||||
*/
|
||||
public function getEntityConfig($entity, $constname=null)
|
||||
{
|
||||
$const=array();
|
||||
|
||||
$sql = "SELECT ".$this->db->decrypt('value')." as value";
|
||||
$sql.= ", ".$this->db->decrypt('name')." as name";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."const";
|
||||
$sql.= " WHERE entity = " . $entity;
|
||||
if (! empty($constname)) {
|
||||
if (preg_match('/\_\*$/', $constname))
|
||||
{
|
||||
$constname = str_replace('*', '', $constname);
|
||||
$sql.= " AND ".$this->db->decrypt('name')." LIKE '" . $this->db->escape($constname) ."%'";
|
||||
}
|
||||
else
|
||||
{
|
||||
$sql.= " AND ".$this->db->decrypt('name')." = '" . $this->db->escape($constname) ."'";
|
||||
}
|
||||
}
|
||||
|
||||
dol_syslog(get_class($this)."::getEntityConfig sql=".$sql, LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$i = 0;
|
||||
$num = $this->db->num_rows($resql);
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $this->db->fetch_object($resql);
|
||||
|
||||
$const[$obj->name] = $obj->value;
|
||||
|
||||
$i++;
|
||||
}
|
||||
|
||||
}
|
||||
return $const;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get group rights by entity
|
||||
*
|
||||
* @param int $group
|
||||
* @param int $entity
|
||||
* @return array[]
|
||||
*/
|
||||
public function getGroupRightsByEntity($group, $entity)
|
||||
{
|
||||
$permsgroupbyentity = array();
|
||||
|
||||
$sql = "SELECT DISTINCT r.id, r.libelle, r.module, gr.entity";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."rights_def as r,";
|
||||
$sql.= " ".MAIN_DB_PREFIX."usergroup_rights as gr";
|
||||
$sql.= " WHERE gr.fk_id = r.id";
|
||||
$sql.= " AND gr.entity = " . (int) $entity;
|
||||
$sql.= " AND gr.fk_usergroup = " . (int) $group;
|
||||
|
||||
dol_syslog(get_class($this)."::getGroupRightsByEntity sql=".$sql, LOG_DEBUG);
|
||||
$result=$this->db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
$num = $this->db->num_rows($result);
|
||||
$i = 0;
|
||||
|
||||
while ($i < $num)
|
||||
{
|
||||
$obj = $this->db->fetch_object($result);
|
||||
array_push($permsgroupbyentity, $obj->id);
|
||||
$i++;
|
||||
}
|
||||
|
||||
$this->db->free($result);
|
||||
|
||||
return $permsgroupbyentity;
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_print_error($db);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get list of groups
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getListOfGroups()
|
||||
{
|
||||
$ret=array();
|
||||
|
||||
$sql = "SELECT g.rowid";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."usergroup as g";
|
||||
$sql.= " GROUP BY g.rowid";
|
||||
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
while ($obj = $this->db->fetch_object($resql))
|
||||
{
|
||||
$ret[] = $obj->rowid;
|
||||
}
|
||||
|
||||
$this->db->free($result);
|
||||
|
||||
return $ret;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->lasterror();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param unknown $groupid
|
||||
* @param unknown $template
|
||||
* @return User[]|number
|
||||
*/
|
||||
public function getListOfUsersInGroupByTemplate($groupid, $template)
|
||||
{
|
||||
$ret=array();
|
||||
|
||||
$sql = "SELECT u.rowid, ug.entity as usergroup_entity";
|
||||
$sql.= " FROM ".MAIN_DB_PREFIX."user as u";
|
||||
$sql.= ", ".MAIN_DB_PREFIX."usergroup_user as ug";
|
||||
$sql.= " WHERE ug.fk_user = u.rowid";
|
||||
$sql.= " AND ug.fk_usergroup = " . (int) $groupid;
|
||||
$sql.= " AND ug.entity = " . (int) $template;
|
||||
|
||||
dol_syslog(get_class($this)."::getListOfUsersInGroupByEntity groupid=".$groupid." template=".$template, LOG_DEBUG);
|
||||
$resql = $this->db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
while ($obj = $this->db->fetch_object($resql))
|
||||
{
|
||||
if (! array_key_exists($obj->rowid, $ret))
|
||||
{
|
||||
$newuser=new User($this->db);
|
||||
$newuser->fetch($obj->rowid);
|
||||
$ret[$obj->rowid]=$newuser;
|
||||
}
|
||||
}
|
||||
|
||||
$this->db->free($resql);
|
||||
|
||||
return $ret;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->lasterror();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,412 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2017-2018 Regis Houssin <regis.houssin@inodbox.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file /multicompany/class/ssp.class.php
|
||||
* \ingroup multicompany
|
||||
* \brief File of class to manage DataTables server-side processing
|
||||
*/
|
||||
|
||||
/**
|
||||
* \class SSP
|
||||
* \brief DataTables server-side processing class
|
||||
*/
|
||||
class SSP
|
||||
{
|
||||
/**
|
||||
* Create the data output array for the DataTables rows
|
||||
*
|
||||
* @param array $columns Column information array
|
||||
* @param array $data Data from the SQL get
|
||||
* @return array Formatted data in a row based format
|
||||
*/
|
||||
static function data_output ( $columns, $data )
|
||||
{
|
||||
$out = array();
|
||||
|
||||
for ( $i=0, $ien=count($data) ; $i<$ien ; $i++ ) {
|
||||
$row = array();
|
||||
|
||||
for ( $j=0, $jen=count($columns) ; $j<$jen ; $j++ ) {
|
||||
$column = $columns[$j];
|
||||
|
||||
// Is there a formatter?
|
||||
if ( isset( $column['formatter'] ) ) {
|
||||
$row[ $column['dt'] ] = $column['formatter']( $data[$i][ $column['db'] ], $data[$i] );
|
||||
}
|
||||
else {
|
||||
$row[ $column['dt'] ] = $data[$i][ $columns[$j]['db'] ];
|
||||
}
|
||||
}
|
||||
|
||||
$out[] = $row;
|
||||
}
|
||||
|
||||
return $out;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Paging
|
||||
*
|
||||
* Construct the LIMIT clause for server-side processing SQL query
|
||||
*
|
||||
* @param array $request Data sent to server by DataTables
|
||||
* @param array $columns Column information array
|
||||
* @return string SQL limit clause
|
||||
*/
|
||||
static function limit ( $request, $columns, $db )
|
||||
{
|
||||
$limit = '';
|
||||
|
||||
if ( isset($request['start']) && $request['length'] != -1 ) {
|
||||
$limit = $db->plimit(intval($request['length']), intval($request['start']));
|
||||
}
|
||||
|
||||
return $limit;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Ordering
|
||||
*
|
||||
* Construct the ORDER BY clause for server-side processing SQL query
|
||||
*
|
||||
* @param array $request Data sent to server by DataTables
|
||||
* @param array $columns Column information array
|
||||
* @return string SQL order by clause
|
||||
*/
|
||||
static function order ( $request, $columns, $db )
|
||||
{
|
||||
$order = '';
|
||||
$sortfield = array();
|
||||
$sortorder = array();
|
||||
|
||||
if ( isset($request['order']) && count($request['order']) ) {
|
||||
$dtColumns = self::pluck( $columns, 'dt' );
|
||||
for ( $i=0, $ien=count($request['order']) ; $i<$ien ; $i++ ) {
|
||||
// Convert the column index into the column data property
|
||||
$columnIdx = intval($request['order'][$i]['column']);
|
||||
$requestColumn = $request['columns'][$columnIdx];
|
||||
|
||||
$columnIdx = array_search( $requestColumn['data'], $dtColumns );
|
||||
$column = $columns[ $columnIdx ];
|
||||
|
||||
if ( $requestColumn['orderable'] == 'true' ) {
|
||||
$dir = $request['order'][$i]['dir'] === 'asc' ? 'ASC' : 'DESC';
|
||||
$sortfield[] = $column['db'];
|
||||
$sortorder[] = $dir;
|
||||
}
|
||||
}
|
||||
|
||||
$order = $db->order(implode(', ', $sortfield), implode(', ', $sortorder));
|
||||
}
|
||||
|
||||
return $order;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Searching / Filtering
|
||||
*
|
||||
* Construct the WHERE clause for server-side processing SQL query.
|
||||
*
|
||||
* NOTE this does not match the built-in DataTables filtering which does it
|
||||
* word by word on any field. It's possible to do here performance on large
|
||||
* databases would be very poor
|
||||
*
|
||||
* @param array $request Data sent to server by DataTables
|
||||
* @param array $columns Column information array
|
||||
* @param array $bindings Array of values for PDO bindings, used in the
|
||||
* sql_exec() function
|
||||
* @return string SQL where clause
|
||||
*/
|
||||
static function filter ( $request, $columns, $db )
|
||||
{
|
||||
$globalSearch = array();
|
||||
$columnSearch = array();
|
||||
$dtColumns = self::pluck( $columns, 'dt' );
|
||||
|
||||
if ( isset($request['search']) && $request['search']['value'] != '' ) {
|
||||
$str = $request['search']['value'];
|
||||
|
||||
for ( $i=0, $ien=count($request['columns']) ; $i<$ien ; $i++ ) {
|
||||
$requestColumn = $request['columns'][$i];
|
||||
$columnIdx = array_search( $requestColumn['data'], $dtColumns );
|
||||
$column = $columns[ $columnIdx ];
|
||||
|
||||
if ( $requestColumn['searchable'] == 'true' ) {
|
||||
$globalSearch[] = $column['db']." LIKE '%" . $db->escape($str)."%'";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Individual column filtering
|
||||
if ( isset( $request['columns'] ) ) {
|
||||
for ( $i=0, $ien=count($request['columns']) ; $i<$ien ; $i++ ) {
|
||||
$requestColumn = $request['columns'][$i];
|
||||
$columnIdx = array_search( $requestColumn['data'], $dtColumns );
|
||||
$column = $columns[ $columnIdx ];
|
||||
|
||||
$str = $requestColumn['search']['value'];
|
||||
|
||||
if ( $requestColumn['searchable'] == 'true' &&
|
||||
$str != '' ) {
|
||||
$columnSearch[] = $column['db']." LIKE '%" . $db->escape($str)."%'";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Combine the filters into a single string
|
||||
$where = '';
|
||||
|
||||
if ( count( $globalSearch ) ) {
|
||||
$where = '('.implode(' OR ', $globalSearch).')';
|
||||
}
|
||||
|
||||
if ( count( $columnSearch ) ) {
|
||||
$where = $where === '' ?
|
||||
implode(' AND ', $columnSearch) :
|
||||
$where .' AND '. implode(' AND ', $columnSearch);
|
||||
}
|
||||
|
||||
if ( $where !== '' ) {
|
||||
$where = 'WHERE '.$where;
|
||||
}
|
||||
|
||||
return $where;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Perform the SQL queries needed for an server-side processing requested,
|
||||
* utilising the helper functions of this class, limit(), order() and
|
||||
* filter() among others. The returned array is ready to be encoded as JSON
|
||||
* in response to an SSP request, or can be modified if needed before
|
||||
* sending back to the client.
|
||||
*
|
||||
* @param array $request Data sent to server by DataTables
|
||||
* @param string $table SQL table to query
|
||||
* @param string $primaryKey Primary key of the table
|
||||
* @param array $columns Column information array
|
||||
* @return array Server-side processing response array
|
||||
*/
|
||||
static function simple ( $request, $db, $table, $primaryKey, $columns )
|
||||
{
|
||||
// Build the SQL query string from the request
|
||||
$limit = self::limit( $request, $columns, $db );
|
||||
$order = self::order( $request, $columns, $db );
|
||||
$where = self::filter( $request, $columns, $db );
|
||||
|
||||
// Main query to actually get the data
|
||||
$sql =
|
||||
"SELECT ".implode(", ", self::pluck($columns, 'db'))."
|
||||
FROM $table
|
||||
$where
|
||||
$order
|
||||
$limit";
|
||||
|
||||
$data = self::sql_exec($db, $sql);
|
||||
//print_r($data);
|
||||
|
||||
// Data set length after filtering
|
||||
$resFilterLength = self::sql_exec($db,
|
||||
"SELECT COUNT({$primaryKey})
|
||||
FROM $table
|
||||
$where"
|
||||
);
|
||||
$recordsFiltered = $resFilterLength[0][0];
|
||||
|
||||
// Total data set length
|
||||
$resTotalLength = self::sql_exec($db,
|
||||
"SELECT COUNT({$primaryKey})
|
||||
FROM $table"
|
||||
);
|
||||
$recordsTotal = $resTotalLength[0][0];
|
||||
|
||||
/*
|
||||
* Output
|
||||
*/
|
||||
return array(
|
||||
"draw" => isset ( $request['draw'] ) ?
|
||||
intval( $request['draw'] ) :
|
||||
0,
|
||||
"recordsTotal" => intval( $recordsTotal ),
|
||||
"recordsFiltered" => intval( $recordsFiltered ),
|
||||
"data" => self::data_output( $columns, $data )
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* The difference between this method and the `simple` one, is that you can
|
||||
* apply additional `where` conditions to the SQL queries. These can be in
|
||||
* one of two forms:
|
||||
*
|
||||
* * 'Result condition' - This is applied to the result set, but not the
|
||||
* overall paging information query - i.e. it will not effect the number
|
||||
* of records that a user sees they can have access to. This should be
|
||||
* used when you want apply a filtering condition that the user has sent.
|
||||
* * 'All condition' - This is applied to all queries that are made and
|
||||
* reduces the number of records that the user can access. This should be
|
||||
* used in conditions where you don't want the user to ever have access to
|
||||
* particular records (for example, restricting by a login id).
|
||||
*
|
||||
* @param array $request Data sent to server by DataTables
|
||||
* @param string $table SQL table to query
|
||||
* @param string $primaryKey Primary key of the table
|
||||
* @param array $columns Column information array
|
||||
* @param string $whereResult WHERE condition to apply to the result set
|
||||
* @param string $whereAll WHERE condition to apply to all queries
|
||||
* @return array Server-side processing response array
|
||||
*/
|
||||
static function complex ( $request, $db, $table, $primaryKey, $columns, $whereResult=null, $whereAll=null )
|
||||
{
|
||||
$whereAllSql = '';
|
||||
|
||||
// Build the SQL query string from the request
|
||||
$limit = self::limit( $request, $columns, $db );
|
||||
$order = self::order( $request, $columns, $db );
|
||||
$where = self::filter( $request, $columns, $db );
|
||||
|
||||
$whereResult = self::_flatten( $whereResult );
|
||||
$whereAll = self::_flatten( $whereAll );
|
||||
|
||||
if ( $whereResult ) {
|
||||
$where = $where ?
|
||||
$where .' AND '.$whereResult :
|
||||
'WHERE '.$whereResult;
|
||||
}
|
||||
|
||||
if ( $whereAll ) {
|
||||
$where = $where ?
|
||||
$where .' AND '.$whereAll :
|
||||
'WHERE '.$whereAll;
|
||||
|
||||
$whereAllSql = 'WHERE '.$whereAll;
|
||||
}
|
||||
|
||||
// Main query to actually get the data
|
||||
$data = self::sql_exec($db,
|
||||
"SELECT ".implode(", ", self::pluck($columns, 'db'))."
|
||||
FROM $table
|
||||
$where
|
||||
$order
|
||||
$limit"
|
||||
);
|
||||
|
||||
// Data set length after filtering
|
||||
$resFilterLength = self::sql_exec($db,
|
||||
"SELECT COUNT({$primaryKey})
|
||||
FROM $table
|
||||
$where"
|
||||
);
|
||||
$recordsFiltered = $resFilterLength[0][0];
|
||||
|
||||
// Total data set length
|
||||
$resTotalLength = self::sql_exec($db,
|
||||
"SELECT COUNT({$primaryKey})
|
||||
FROM $table ".
|
||||
$whereAllSql
|
||||
);
|
||||
$recordsTotal = $resTotalLength[0][0];
|
||||
|
||||
/*
|
||||
* Output
|
||||
*/
|
||||
return array(
|
||||
"draw" => isset ( $request['draw'] ) ?
|
||||
intval( $request['draw'] ) :
|
||||
0,
|
||||
"recordsTotal" => intval( $recordsTotal ),
|
||||
"recordsFiltered" => intval( $recordsFiltered ),
|
||||
"data" => self::data_output( $columns, $data )
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Execute an SQL query on the database
|
||||
*
|
||||
* @param string $sql SQL query to execute.
|
||||
* @return array Result from the query (all rows)
|
||||
*/
|
||||
static function sql_exec ( $db, $sql )
|
||||
{
|
||||
$out=array();
|
||||
|
||||
$resql = $db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$i = 0;
|
||||
$num_rows=$db->num_rows($resql);
|
||||
while ($i < $num_rows)
|
||||
{
|
||||
$array = $db->fetch_array($resql);
|
||||
array_push($out, $array);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
return $out;
|
||||
}
|
||||
|
||||
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Internal methods
|
||||
*/
|
||||
|
||||
/**
|
||||
* Pull a particular property from each assoc. array in a numeric array,
|
||||
* returning and array of the property values from each item.
|
||||
*
|
||||
* @param array $a Array to get data from
|
||||
* @param string $prop Property to read
|
||||
* @return array Array of property values
|
||||
*/
|
||||
static function pluck ( $a, $prop )
|
||||
{
|
||||
$out = array();
|
||||
|
||||
for ( $i=0, $len=count($a) ; $i<$len ; $i++ ) {
|
||||
$out[] = $a[$i][$prop];
|
||||
}
|
||||
|
||||
return $out;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return a string from an array or a string
|
||||
*
|
||||
* @param array|string $a Array to join
|
||||
* @param string $join Glue for the concatenation
|
||||
* @return string Joined string
|
||||
*/
|
||||
static function _flatten ( $a, $join = ' AND ' )
|
||||
{
|
||||
if ( ! $a ) {
|
||||
return '';
|
||||
}
|
||||
else if ( $a && is_array($a) ) {
|
||||
return implode( $join, $a );
|
||||
}
|
||||
return $a;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,286 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2011-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
* Copyright (C) 2011 Herve Prot <herve.prot@symeos.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file multicompany/core/ajax/functions.php
|
||||
* \brief File to return ajax result
|
||||
*/
|
||||
|
||||
if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Disables token renewal
|
||||
if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1');
|
||||
if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1');
|
||||
if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1');
|
||||
//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1');
|
||||
//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1');
|
||||
if (! defined('NOREQUIREHOOK')) define('NOREQUIREHOOK',1);
|
||||
|
||||
if (isset($_GET['action']) && $_GET['action'] === 'getEntityLogo') {
|
||||
define("NOLOGIN",1); // This means this output page does not require to be logged.
|
||||
$entity=(! empty($_GET['id']) ? (int) $_GET['id'] : 1);
|
||||
if (is_numeric($entity)) define("DOLENTITY", $entity);
|
||||
}
|
||||
|
||||
$res=@include("../../../main.inc.php"); // For root directory
|
||||
if (! $res && file_exists($_SERVER['DOCUMENT_ROOT']."/main.inc.php"))
|
||||
$res=@include($_SERVER['DOCUMENT_ROOT']."/main.inc.php"); // Use on dev env only
|
||||
if (! $res) $res=@include("../../../../main.inc.php"); // For "custom" directory
|
||||
|
||||
dol_include_once('/multicompany/class/actions_multicompany.class.php', 'ActionsMulticompany');
|
||||
require_once DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php";
|
||||
|
||||
$id = GETPOST('id', 'int'); // id of entity
|
||||
$action = GETPOST('action', 'alpha'); // action method
|
||||
$type = GETPOST('type', 'alpha'); // type of action
|
||||
$element = GETPOST('element', 'alpha'); // type of element
|
||||
$fk_element = GETPOST('fk_element', 'int'); // id of element
|
||||
|
||||
$template = GETPOST('template', 'int');
|
||||
if (GETPOSTISSET('entities')) {
|
||||
$entities = json_decode(GETPOST('entities', 'none'), true);
|
||||
}
|
||||
|
||||
/*
|
||||
* View
|
||||
*/
|
||||
|
||||
// Ajout directives pour resoudre bug IE
|
||||
//header('Cache-Control: Public, must-revalidate');
|
||||
//header('Pragma: public');
|
||||
|
||||
//top_htmlhead("", "", 1); // Replaced with top_httphead. An ajax page does not need html header.
|
||||
top_httphead('application/json');
|
||||
|
||||
if (empty($conf->multicompany->enabled)) {
|
||||
echo json_encode(array('status' => 'error'));
|
||||
$db->close();
|
||||
exit();
|
||||
}
|
||||
|
||||
//print '<!-- Ajax page called with url '.$_SERVER["PHP_SELF"].'?'.$_SERVER["QUERY_STRING"].' -->'."\n";
|
||||
|
||||
// Registering the location of boxes
|
||||
if (! empty($action) && is_numeric($id))
|
||||
{
|
||||
if ($action == 'switchEntity' && ! empty($user->login))
|
||||
{
|
||||
dol_syslog("multicompany action=".$action." entity=".$id, LOG_DEBUG);
|
||||
|
||||
$object = new ActionsMulticompany($db);
|
||||
echo $object->switchEntity($id);
|
||||
}
|
||||
else if ($action == 'setStatusEnable' && ! empty($user->admin) && ! $user->entity)
|
||||
{
|
||||
dol_syslog("multicompany action=".$action." type=".$type." entity=".$id, LOG_DEBUG);
|
||||
|
||||
$object = new ActionsMulticompany($db);
|
||||
$fieldname = ($type == 'activetemplate' ? 'active' : $type);
|
||||
echo $object->setStatus($id, $fieldname, 1);
|
||||
}
|
||||
else if ($action == 'setStatusDisable' && ! empty($user->admin) && ! $user->entity)
|
||||
{
|
||||
dol_syslog("multicompany action=".$action." type=".$type." entity=".$id, LOG_DEBUG);
|
||||
|
||||
$object = new ActionsMulticompany($db);
|
||||
$fieldname = ($type == 'activetemplate' ? 'active' : $type);
|
||||
$ret = $object->setStatus($id, $fieldname, 0);
|
||||
if ($ret == 1 && $type == 'active') {
|
||||
$ret = $object->setStatus($id, 'visible', 0);
|
||||
}
|
||||
echo $ret;
|
||||
}
|
||||
else if ($action == 'deleteEntity' && $id != 1 && ! empty($user->admin) && ! $user->entity)
|
||||
{
|
||||
dol_syslog("multicompany action=".$action." entity=".$id, LOG_DEBUG);
|
||||
|
||||
$object = new ActionsMulticompany($db);
|
||||
echo $object->deleteEntity($id);
|
||||
}
|
||||
else if ($action == 'setColOrder' && ! empty($user->admin) && ! $user->entity)
|
||||
{
|
||||
$id = (int) $id;
|
||||
$direction = GETPOST('dir', 'aZ');
|
||||
$colOrder = array('id' => $id, 'direction' => $direction);
|
||||
|
||||
if (dolibarr_set_const($db, 'MULTICOMPANY_COLORDER', json_encode($colOrder), 'chaine', 0, '', 0) > 0) {
|
||||
$ret = json_encode(array('status' => 'success'));
|
||||
}
|
||||
else {
|
||||
$ret = json_encode(array('status' => 'error'));
|
||||
}
|
||||
|
||||
echo $ret;
|
||||
}
|
||||
else if ($action == 'setColHidden' && ! empty($user->admin) && ! $user->entity)
|
||||
{
|
||||
$state = GETPOST('state', 'aZ');
|
||||
$colHidden = (! empty($conf->global->MULTICOMPANY_COLHIDDEN) ? json_decode($conf->global->MULTICOMPANY_COLHIDDEN, true) : array());
|
||||
|
||||
if ($state == 'visible') {
|
||||
$colHidden = array_diff($colHidden, array(intval($id)));
|
||||
} else if ($state == 'hidden') {
|
||||
array_push($colHidden, intval($id));
|
||||
}
|
||||
|
||||
sort($colHidden);
|
||||
|
||||
if (dolibarr_set_const($db, 'MULTICOMPANY_COLHIDDEN', json_encode($colHidden), 'chaine', 0, '', 0) > 0) {
|
||||
$ret = json_encode(array('status' => 'success'));
|
||||
}
|
||||
else {
|
||||
$ret = json_encode(array('status' => 'error'));
|
||||
}
|
||||
|
||||
echo $ret;
|
||||
}
|
||||
else if ($action == 'modifyEntity' && ((! empty($user->admin) && ! $user->entity) || ! empty($user->rights->multicompany->thirdparty->write)))
|
||||
{
|
||||
if ($element == 'societe')
|
||||
{
|
||||
$object = new Societe($db);
|
||||
$ret = $object->fetch($fk_element);
|
||||
if ($ret > 0) {
|
||||
|
||||
$object->oldcopy = clone $object;
|
||||
|
||||
// To not set code if third party is not concerned. But if it had values, we keep them.
|
||||
if (empty($object->client) && empty($object->oldcopy->code_client)) $object->code_client='';
|
||||
if (empty($object->fournisseur) && empty($object->oldcopy->code_fournisseur)) $object->code_fournisseur='';
|
||||
|
||||
$object->entity = $id;
|
||||
|
||||
$ret = $object->update($object->id, $user, 0, $object->oldcopy->codeclient_modifiable(), $object->oldcopy->codefournisseur_modifiable(), 'update', 1);
|
||||
if ($ret > 0) {
|
||||
$ret = json_encode(array('status' => 'success'));
|
||||
}
|
||||
else {
|
||||
$ret = json_encode(array('status' => 'error', 'error' => $object->errors));
|
||||
}
|
||||
}
|
||||
else {
|
||||
$ret = json_encode(array('status' => 'error', 'error' => $object->errors));
|
||||
}
|
||||
}
|
||||
else if ($element == 'contact')
|
||||
{
|
||||
require_once DOL_DOCUMENT_ROOT.'/contact/class/contact.class.php';
|
||||
|
||||
$object = new Contact($db);
|
||||
$ret = $object->fetch($fk_element);
|
||||
if ($ret > 0) {
|
||||
|
||||
$object->entity = $id;
|
||||
|
||||
$ret = $object->update($object->id, $user, 1, 'update', 1);
|
||||
if ($ret > 0) {
|
||||
$ret = json_encode(array('status' => 'success'));
|
||||
}
|
||||
else {
|
||||
$ret = json_encode(array('status' => 'error', 'error' => $object->errors));
|
||||
}
|
||||
}
|
||||
else {
|
||||
$ret = json_encode(array('status' => 'error', 'error' => $object->errors));
|
||||
}
|
||||
}
|
||||
|
||||
echo $ret;
|
||||
}
|
||||
else if ($action === 'getEntityOptions' && ! empty($conf->global->MULTICOMPANY_TEMPLATE_MANAGEMENT) && ! empty($user->admin) && empty($user->entity))
|
||||
{
|
||||
$object = new ActionsMulticompany($db);
|
||||
$object->getInfo($id);
|
||||
|
||||
$entities = $object->getEntitiesList(false, false, true, true);
|
||||
|
||||
echo json_encode(
|
||||
array(
|
||||
'status' => 'success',
|
||||
'options' => $object->options,
|
||||
'labels' => $entities
|
||||
)
|
||||
);
|
||||
}
|
||||
else if ($action === 'duplicateUserGroupRights' && ! empty($conf->global->MULTICOMPANY_TEMPLATE_MANAGEMENT) && ! empty($user->admin) && empty($user->entity) && ! empty($template) && ! empty($entities))
|
||||
{
|
||||
$multicompany = new ActionsMulticompany($db);
|
||||
$ret = $multicompany->duplicateUserGroupRights($id, $template, $entities);
|
||||
if ($ret > 0)
|
||||
{
|
||||
echo json_encode(array('status' => 'success'));
|
||||
}
|
||||
else
|
||||
{
|
||||
echo json_encode(array(
|
||||
'status' => 'error',
|
||||
'id' => $id,
|
||||
'template' => $template,
|
||||
'entities' => $entities
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
else if ($action === 'getEntityLogo' && empty($conf->global->MULTICOMPANY_HIDE_LOGIN_COMBOBOX))
|
||||
{
|
||||
$urllogo = DOL_URL_ROOT.'/theme/login_logo.png';
|
||||
|
||||
if (! empty($mysoc->logo_small) && is_readable($conf->mycompany->dir_output.'/logos/thumbs/'.$mysoc->logo_small))
|
||||
{
|
||||
$urllogo = DOL_URL_ROOT.'/viewimage.php?cache=1&entity='.$id.'&modulepart=mycompany&file='.urlencode('logos/thumbs/'.$mysoc->logo_small);
|
||||
}
|
||||
elseif (! empty($mysoc->logo) && is_readable($conf->mycompany->dir_output.'/logos/'.$mysoc->logo))
|
||||
{
|
||||
$urllogo = DOL_URL_ROOT.'/viewimage.php?cache=1&entity='.$id.'&modulepart=mycompany&file='.urlencode('logos/'.$mysoc->logo);
|
||||
$width = 128;
|
||||
}
|
||||
elseif (is_readable(DOL_DOCUMENT_ROOT.'/theme/'.$conf->theme.'/img/dolibarr_logo.png'))
|
||||
{
|
||||
$urllogo = DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/dolibarr_logo.png';
|
||||
}
|
||||
elseif (is_readable(DOL_DOCUMENT_ROOT.'/theme/dolibarr_logo.png'))
|
||||
{
|
||||
$urllogo = DOL_URL_ROOT.'/theme/dolibarr_logo.png';
|
||||
}
|
||||
|
||||
$bgimg = null;
|
||||
$unsplashimg = null;
|
||||
|
||||
if (! empty($conf->global->MULTICOMPANY_LOGIN_BACKGROUND_BY_ENTITY))
|
||||
{
|
||||
if (! empty($conf->global->ADD_UNSPLASH_LOGIN_BACKGROUND))
|
||||
{
|
||||
$unsplashimg = $conf->global->ADD_UNSPLASH_LOGIN_BACKGROUND;
|
||||
}
|
||||
|
||||
if (! empty($conf->global->MAIN_LOGIN_BACKGROUND))
|
||||
{
|
||||
$bgimg = DOL_URL_ROOT.'/viewimage.php?cache=1&noalt=1&entity='.$id.'&modulepart=mycompany&file=logos/'.urlencode($conf->global->MAIN_LOGIN_BACKGROUND);
|
||||
}
|
||||
}
|
||||
|
||||
echo json_encode(array(
|
||||
'status' => 'success',
|
||||
'urllogo' => dol_html_entity_decode($urllogo, null),
|
||||
'bgimg' => dol_html_entity_decode($bgimg, null),
|
||||
'unsplashimg' => dol_html_entity_decode($unsplashimg, null)
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$db->close();
|
||||
@ -1,248 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2017-2019 Regis Houssin <regis.houssin@inodbox.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file /multicompany/core/ajax/list.php
|
||||
* \brief File to return datables output of entities list
|
||||
*/
|
||||
|
||||
if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Disables token renewal
|
||||
if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK','1');
|
||||
if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1');
|
||||
if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1');
|
||||
if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1');
|
||||
if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1');
|
||||
//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1');
|
||||
if (! defined('NOREQUIREHOOK')) define('NOREQUIREHOOK',1);
|
||||
|
||||
$res=@include("../../../main.inc.php"); // For root directory
|
||||
if (! $res && file_exists($_SERVER['DOCUMENT_ROOT']."/main.inc.php"))
|
||||
$res=@include($_SERVER['DOCUMENT_ROOT']."/main.inc.php"); // Use on dev env only
|
||||
if (! $res) $res=@include("../../../../main.inc.php"); // For "custom" directory
|
||||
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php';
|
||||
require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
|
||||
dol_include_once('/multicompany/class/dao_multicompany.class.php', 'DaoMulticompany');
|
||||
dol_include_once('/multicompany/lib/multicompany.lib.php');
|
||||
dol_include_once('/multicompany/class/ssp.class.php');
|
||||
|
||||
$langs->loadLangs(array('languages','admin','multicompany@multicompany'));
|
||||
|
||||
// Defini si peux lire/modifier permisssions
|
||||
$canreadEntity=! empty($user->admin);
|
||||
$caneditEntity=! empty($user->admin);
|
||||
$candeleteEntity=! empty($user->admin);
|
||||
|
||||
top_httphead('application/json');
|
||||
|
||||
//print '<!-- Ajax page called with url '.$_SERVER["PHP_SELF"].'?'.$_SERVER["QUERY_STRING"].' -->'."\n";
|
||||
|
||||
//print_r($_GET);
|
||||
|
||||
if (empty($user->admin) || empty($conf->multicompany->enabled)) {
|
||||
echo json_encode(array('status' => 'error'));
|
||||
$db->close();
|
||||
exit();
|
||||
}
|
||||
|
||||
$object = new DaoMulticompany($db);
|
||||
|
||||
$extrafields = new ExtraFields($db);
|
||||
// fetch optionals attributes and labels
|
||||
$extralabels = $extrafields->fetch_name_optionals_label($object->element);
|
||||
|
||||
$start = array('start' => GETPOST('start', 'int'));
|
||||
$length = array('length' => GETPOST('length', 'int'));
|
||||
$draw = array('draw' => GETPOST('draw', 'int'));
|
||||
$order = array('order' => GETPOST('order', 'array'));
|
||||
$columns = array('columns' => GETPOST('columns', 'array'));
|
||||
$search = array('search' => GETPOST('search', 'array'));
|
||||
|
||||
$request = $start + $length + $draw + $order + $columns + $search;
|
||||
//print_r($request);
|
||||
|
||||
// DB table to use
|
||||
$table = MAIN_DB_PREFIX . "entity";
|
||||
|
||||
// Table's primary key
|
||||
$primaryKey = 'rowid';
|
||||
|
||||
// Array of database columns which should be read and sent back to DataTables.
|
||||
// The `db` parameter represents the column name in the database, while the `dt`
|
||||
// parameter represents the DataTables column identifier. In this case simple
|
||||
// indexes
|
||||
$columns = array();
|
||||
|
||||
$columns[]= array( 'db' => 'rowid', 'dt' => 'entity_id' );
|
||||
$columns[]= array( 'db' => 'label', 'dt' => 'entity_label' );
|
||||
$columns[]= array( 'db' => 'description', 'dt' => 'entity_description' );
|
||||
$columns[]= array(
|
||||
'db' => 'rowid',
|
||||
'dt' => 'entity_name',
|
||||
'formatter' => function($value, $row) {
|
||||
if (! empty($value)) {
|
||||
global $object;
|
||||
$object->fetch($value);
|
||||
return $object->name;
|
||||
}
|
||||
}
|
||||
);
|
||||
$columns[]= array(
|
||||
'db' => 'rowid',
|
||||
'dt' => 'entity_zip',
|
||||
'formatter' => function($value, $row) {
|
||||
if (! empty($value)) {
|
||||
global $object;
|
||||
$object->fetch($value);
|
||||
return $object->zip;
|
||||
}
|
||||
}
|
||||
);
|
||||
$columns[]= array(
|
||||
'db' => 'rowid',
|
||||
'dt' => 'entity_town',
|
||||
'formatter' => function($value, $row) {
|
||||
if (! empty($value)) {
|
||||
global $object;
|
||||
$object->fetch($value);
|
||||
return $object->town;
|
||||
}
|
||||
}
|
||||
);
|
||||
$columns[]= array(
|
||||
'db' => 'rowid',
|
||||
'dt' => 'entity_country',
|
||||
'formatter' => function($value, $row) {
|
||||
if (! empty($value)) {
|
||||
global $object;
|
||||
$object->fetch($value);
|
||||
if ($cache = getCache('country_' . $object->country_id)) {
|
||||
$country = $cache;
|
||||
} else {
|
||||
$country = getCountry($object->country_id);
|
||||
setCache('country_' . $object->country_id, $country);
|
||||
}
|
||||
$img=picto_from_langcode($object->country_code, 'class="multicompany-flag-country"');
|
||||
return ($img?$img.' ':'') . $country;
|
||||
}
|
||||
}
|
||||
);
|
||||
$columns[]= array(
|
||||
'db' => 'rowid',
|
||||
'dt' => 'entity_currency',
|
||||
'formatter' => function($value, $row) {
|
||||
if (! empty($value)) {
|
||||
global $langs, $object;
|
||||
$object->fetch($value);
|
||||
return currency_name($object->currency_code) . ' (' . $langs->getCurrencySymbol($object->currency_code) . ')';
|
||||
}
|
||||
}
|
||||
);
|
||||
$columns[]= array(
|
||||
'db' => 'rowid',
|
||||
'dt' => 'entity_language',
|
||||
'formatter' => function($value, $row) {
|
||||
if (! empty($value)) {
|
||||
global $langs, $object;
|
||||
$object->fetch($value);
|
||||
$img=picto_from_langcode($object->language_code, 'class="multicompany-flag-language"');
|
||||
return ($img?$img.' ':'') . ($object->language_code=='auto'?$langs->trans("AutoDetectLang"):$langs->trans("Language_".$object->language_code));
|
||||
}
|
||||
}
|
||||
);
|
||||
if (! empty($extralabels)) {
|
||||
foreach ($extralabels as $key => $name)
|
||||
{
|
||||
$columns[]= array(
|
||||
'db' => 'rowid',
|
||||
'dt' => 'entity_'.$key,
|
||||
'formatter' => function($value, $row) use ($key) {
|
||||
global $object, $extrafields;
|
||||
unset($object->array_options['options_'.$key]); // For avoid duplicate data in next row
|
||||
$object->fetch_optionals();
|
||||
return $extrafields->showOutputField($key, $object->array_options['options_'.$key]);
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
$columns[]= array(
|
||||
'db' => 'visible',
|
||||
'dt' => 'entity_visible',
|
||||
'formatter' => function($value, $row) {
|
||||
global $langs;
|
||||
if (! empty($value)) {
|
||||
if ($value == 1) {
|
||||
return img_picto($langs->trans("Enabled"),'on','id="visible_' . $row['rowid'] . '"',false,0,0,'','multicompany-button-visible-on');
|
||||
} else {
|
||||
return '<span id="template_' . $row['rowid'] . '" class="fas fa-clone multicompany-button-template" title="'.$langs->transnoentities("TemplateOfEntity").'"></span>';
|
||||
}
|
||||
} else if (! empty($row['active'])) {
|
||||
return img_picto($langs->trans("Disabled"),'off','id="visible_' . $row['rowid'] . '"',false,0,0,'','multicompany-button-visible-off');
|
||||
} else {
|
||||
return img_picto($langs->trans("Disabled"),'off','id="visible_' . $row['rowid'] . '"',false,0,0,'','multicompany-button-disabled');
|
||||
}
|
||||
}
|
||||
);
|
||||
$columns[]= array(
|
||||
'db' => 'active',
|
||||
'dt' => 'entity_active',
|
||||
'formatter' => function($value, $row) {
|
||||
global $conf, $langs;
|
||||
if ($row['rowid'] == 1 || $conf->entity == $row['rowid']) {
|
||||
return img_picto($langs->trans("Enabled"),'on','id="active_' . $row['rowid'] . '"',false,0,0,'','multicompany-button-disabled');
|
||||
} else if (! empty($value)) {
|
||||
if ($row['visible'] == 2) {
|
||||
return img_picto($langs->trans("Enabled"),'on','id="activetemplate_' . $row['rowid'] . '"',false,0,0,'','multicompany-button-active-on');
|
||||
} else {
|
||||
return img_picto($langs->trans("Enabled"),'on','id="active_' . $row['rowid'] . '"',false,0,0,'','multicompany-button-active-on');
|
||||
}
|
||||
} else {
|
||||
if ($row['visible'] == 2) {
|
||||
return img_picto($langs->trans("Disabled"),'off','id="activetemplate_' . $row['rowid'] . '"',false,0,0,'','multicompany-button-active-off');
|
||||
} else {
|
||||
return img_picto($langs->trans("Disabled"),'off','id="active_' . $row['rowid'] . '"',false,0,0,'','multicompany-button-active-off');
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
$columns[]= array(
|
||||
'db' => 'rowid',
|
||||
'dt' => 'entity_tools',
|
||||
'formatter' => function($value, $row) {
|
||||
global $conf, $langs, $caneditEntity, $candeleteEntity;
|
||||
$ret='';
|
||||
if ($caneditEntity) {
|
||||
$ret.= img_edit($langs->transnoentities("Edit"),0, 'id="edit_' . $value . '" class="multicompany-button-setup"');
|
||||
}
|
||||
if ($candeleteEntity) {
|
||||
if ($value == 1 || $conf->entity == $value) {
|
||||
$ret.= img_delete($langs->transnoentities("Delete"), 'id="delete_' . $value . '" class="multicompany-button-disabled"');
|
||||
} else {
|
||||
$ret.= img_delete($langs->transnoentities("Delete"), 'id="delete_' . $value . '" class="multicompany-button-delete"');
|
||||
}
|
||||
}
|
||||
return $ret;
|
||||
}
|
||||
);
|
||||
|
||||
//var_dump($columns);
|
||||
echo json_encode(
|
||||
SSP::simple( $request, $db, $table, $primaryKey, $columns )
|
||||
);
|
||||
|
||||
$db->close();
|
||||
@ -1,214 +0,0 @@
|
||||
// Copyright (C) 2014-2019 Regis Houssin <regis.houssin@inodbox.com>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU 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 General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// or see http://www.gnu.org/
|
||||
|
||||
//
|
||||
// \file /multicompany/core/js/lib_head.js
|
||||
// \brief File that include javascript functions (included if option use_javascript activated)
|
||||
//
|
||||
|
||||
/*
|
||||
*
|
||||
*/
|
||||
function setMulticompanyConstant(url, code, input, entity) {
|
||||
$.get( url, {
|
||||
action: "set",
|
||||
name: code,
|
||||
entity: entity
|
||||
},
|
||||
function() {
|
||||
$("#set_" + code).hide();
|
||||
$("#del_" + code).show();
|
||||
$.each(input, function(type, data) {
|
||||
// Enable another element
|
||||
if (type == "enabled") {
|
||||
$.each(data, function(key, value) {
|
||||
var newvalue=(value.search("^#") < 0 ? "#" : "") + value;
|
||||
$(newvalue).removeAttr("disabled");
|
||||
});
|
||||
// Disable another element
|
||||
} else if (type == "disabled") {
|
||||
$.each(data, function(key, value) {
|
||||
var newvalue=(value.search("^#") < 0 ? "#" : "") + value;
|
||||
$(newvalue).attr("disabled", true);
|
||||
});
|
||||
// enable and disable another element
|
||||
} else if (type == "disabledenabled") {
|
||||
$.each(data, function(key, value) {
|
||||
var newvalue=(value.search("^#") < 0 ? "#" : "") + value;
|
||||
$(newvalue).removeAttr("disabled");
|
||||
});
|
||||
// Show another element
|
||||
} else if (type == "showhide" || type == "show") {
|
||||
$.each(data, function(key, value) {
|
||||
var newvalue=(value.search("^#") < 0 ? "#" : "") + value;
|
||||
$(newvalue).show();
|
||||
});
|
||||
} else if (type == "hideshow") {
|
||||
$.each(data, function(key, value) {
|
||||
var newvalue=(value.search("^#") < 0 ? "#" : "") + value;
|
||||
$(newvalue).hide();
|
||||
});
|
||||
// Set another constant
|
||||
} else if (type == "set" || type == "del") {
|
||||
$.each(data, function(key, value) {
|
||||
if (type == "set") {
|
||||
$("#set_" + value).hide();
|
||||
$("#del_" + value).show();
|
||||
$.get( url, {
|
||||
action: type,
|
||||
name: key,
|
||||
value: value,
|
||||
entity: entity
|
||||
});
|
||||
} else if (type == "del") {
|
||||
$("#del_" + value).hide();
|
||||
$("#set_" + value).show();
|
||||
$.get( url, {
|
||||
action: type,
|
||||
name: value,
|
||||
entity: entity
|
||||
});
|
||||
}
|
||||
});
|
||||
// reload the current page
|
||||
} else if (type == "reload") {
|
||||
var url = window.location.pathname;
|
||||
location.href=url;
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
*/
|
||||
function delMulticompanyConstant(url, code, input, entity) {
|
||||
$.get( url, {
|
||||
action: "del",
|
||||
name: code,
|
||||
entity: entity
|
||||
},
|
||||
function() {
|
||||
$("#del_" + code).hide();
|
||||
$("#set_" + code).show();
|
||||
$.each(input, function(type, data) {
|
||||
// Enable another element
|
||||
if (type == "enabled") {
|
||||
$.each(data, function(key, value) {
|
||||
var newvalue=(value.search("^#") < 0 ? "#" : "") + value;
|
||||
$(newvalue).removeAttr("disabled");
|
||||
});
|
||||
// Disable another element
|
||||
} else if (type == "disabled") {
|
||||
$.each(data, function(key, value) {
|
||||
var newvalue=(value.search("^#") < 0 ? "#" : "") + value;
|
||||
$(newvalue).attr("disabled", true);
|
||||
});
|
||||
// enable and disable another element
|
||||
} else if (type == "disabledenabled") {
|
||||
$.each(data, function(key, value) {
|
||||
var newvalue=(value.search("^#") < 0 ? "#" : "") + value;
|
||||
$(newvalue).attr("disabled", true);
|
||||
});
|
||||
} else if (type == "showhide" || type == "hide") {
|
||||
$.each(data, function(key, value) {
|
||||
var newvalue=(value.search("^#") < 0 ? "#" : "") + value;
|
||||
$(newvalue).hide();
|
||||
});
|
||||
} else if (type == "hideshow") {
|
||||
$.each(data, function(key, value) {
|
||||
var newvalue=(value.search("^#") < 0 ? "#" : "") + value;
|
||||
$(newvalue).show();
|
||||
});
|
||||
// Delete another constant
|
||||
} else if (type == "set" || type == "del") {
|
||||
$.each(data, function(key, value) {
|
||||
if (type == "set") {
|
||||
$("#set_" + value).hide();
|
||||
$("#del_" + value).show();
|
||||
$.get( url, {
|
||||
action: type,
|
||||
name: key,
|
||||
value: value,
|
||||
entity: entity
|
||||
});
|
||||
} else if (type == "del") {
|
||||
$("#del_" + value).hide();
|
||||
$("#set_" + value).show();
|
||||
$.get( url, {
|
||||
action: type,
|
||||
name: value,
|
||||
entity: entity
|
||||
});
|
||||
}
|
||||
});
|
||||
// reload the current page
|
||||
} else if (type == "reload") {
|
||||
var url = window.location.pathname;
|
||||
location.href=url;
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
*/
|
||||
function confirmMulticompanyConstantAction(action, url, code, input, box, entity, yesButton, noButton) {
|
||||
var boxConfirm = box;
|
||||
$("#confirm_" + code)
|
||||
.attr("title", boxConfirm.title)
|
||||
.html(boxConfirm.content)
|
||||
.dialog({
|
||||
resizable: false,
|
||||
height: 180,
|
||||
width: 500,
|
||||
modal: true,
|
||||
buttons: [
|
||||
{
|
||||
id : 'yesButton_' + code,
|
||||
text : yesButton,
|
||||
click : function() {
|
||||
if (action == "set") {
|
||||
setMulticompanyConstant(url, code, input, entity);
|
||||
} else if (action == "del") {
|
||||
delMulticompanyConstant(url, code, input, entity);
|
||||
}
|
||||
// Close dialog
|
||||
$(this).dialog("close");
|
||||
// Execute another method
|
||||
if (boxConfirm.method) {
|
||||
var fnName = boxConfirm.method;
|
||||
if (window.hasOwnProperty(fnName)) {
|
||||
window[fnName]();
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
id : 'noButton_' + code,
|
||||
text : noButton,
|
||||
click : function() {
|
||||
$(this).dialog("close");
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
// For information dialog box only, hide the noButton
|
||||
if (boxConfirm.info) {
|
||||
$("#noButton_" + code).button().hide();
|
||||
}
|
||||
}
|
||||
@ -1,166 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2014-2019 Regis Houssin <regis.houssin@inodbox.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file multicompany/core/login/functions_mc.php
|
||||
* \ingroup multicompany
|
||||
* \brief Authentication functions for Multicompany mode when combobox in login page is disabled
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Check validity of user/password/entity
|
||||
* If test is ko, reason must be filled into $_SESSION["dol_loginmesg"]
|
||||
*
|
||||
* @param string $usertotest Login
|
||||
* @param string $passwordtotest Password
|
||||
* @param int $entitytotest Number of instance (always 1 if module multicompany not enabled)
|
||||
* @return string Login if OK, '' if KO
|
||||
*/
|
||||
function check_user_password_mc($usertotest,$passwordtotest,$entitytotest=1)
|
||||
{
|
||||
global $db,$conf,$langs;
|
||||
global $mc;
|
||||
|
||||
dol_syslog("functions_mc::check_user_password_mc usertotest=".$usertotest);
|
||||
|
||||
$login='';
|
||||
|
||||
if (!empty($conf->multicompany->enabled))
|
||||
{
|
||||
$langs->loadLangs(array('main','errors','multicompany@multicompany'));
|
||||
|
||||
if (! empty($conf->global->MULTICOMPANY_HIDE_LOGIN_COMBOBOX))
|
||||
{
|
||||
$entity=$entitytotest;
|
||||
|
||||
if (!empty($usertotest))
|
||||
{
|
||||
// If test username/password asked, we define $test=false and $login var if ok, set $_SESSION["dol_loginmesg"] if ko
|
||||
$table = MAIN_DB_PREFIX."user";
|
||||
$usernamecol = 'login';
|
||||
$entitycol = 'entity';
|
||||
|
||||
$sql ='SELECT rowid, entity, pass, pass_crypted';
|
||||
$sql.=' FROM '.$table;
|
||||
$sql.=' WHERE '.$usernamecol." = '".$db->escape($usertotest)."'";
|
||||
$sql.=' AND statut = 1';
|
||||
|
||||
dol_syslog("functions_mc::check_user_password_mc sql=" . $sql);
|
||||
$resql=$db->query($sql);
|
||||
if ($resql)
|
||||
{
|
||||
$obj=$db->fetch_object($resql);
|
||||
if ($obj)
|
||||
{
|
||||
$passclear=$obj->pass;
|
||||
$passcrypted=$obj->pass_crypted;
|
||||
$passtyped=$passwordtotest;
|
||||
|
||||
$passok=false;
|
||||
|
||||
// Check crypted password
|
||||
$cryptType='';
|
||||
if (! empty($conf->global->DATABASE_PWD_ENCRYPTED)) $cryptType=$conf->global->DATABASE_PWD_ENCRYPTED;
|
||||
|
||||
// By default, we used MD5
|
||||
if (! in_array($cryptType,array('md5'))) $cryptType='md5';
|
||||
// Check crypted password according to crypt algorithm
|
||||
if ($cryptType == 'md5')
|
||||
{
|
||||
if (dol_verifyHash($passtyped, $passcrypted))
|
||||
{
|
||||
$passok=true;
|
||||
dol_syslog("functions_mc::check_user_password_mc Authentification ok - " . $cryptType . " of pass is ok");
|
||||
}
|
||||
}
|
||||
|
||||
// For compatibility with old versions
|
||||
if (! $passok)
|
||||
{
|
||||
if ((! $passcrypted || $passtyped)
|
||||
&& ($passclear && ($passtyped == $passclear)))
|
||||
{
|
||||
$passok=true;
|
||||
dol_syslog("functions_mc::check_user_password_mc Authentification ok - found pass in database");
|
||||
}
|
||||
}
|
||||
|
||||
if ($passok && !empty($obj->entity))
|
||||
{
|
||||
global $entitytotest;
|
||||
|
||||
$entitytotest = $obj->entity;
|
||||
|
||||
if (! empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE))
|
||||
{
|
||||
$sql = "SELECT uu.entity";
|
||||
$sql.= " FROM " . MAIN_DB_PREFIX . "usergroup_user as uu";
|
||||
$sql.= ", " . MAIN_DB_PREFIX . "entity as e";
|
||||
$sql.= " WHERE uu.entity = e.rowid AND e.visible < 2"; // Remove template of entity
|
||||
$sql.= " AND fk_user = " . $obj->rowid;
|
||||
|
||||
dol_syslog("functions_mc::check_user_password_mc sql=" . $sql, LOG_DEBUG);
|
||||
$result = $db->query($sql);
|
||||
if ($result)
|
||||
{
|
||||
while($array = $db->fetch_array($result)) // user allowed if at least in one group
|
||||
{
|
||||
$entitytotest = $array['entity'];
|
||||
break; // stop in first entity
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$ret=$mc->switchEntity($entitytotest, $obj->rowid);
|
||||
|
||||
if ($ret < 0) $passok=false;
|
||||
}
|
||||
|
||||
// Password ok ?
|
||||
if ($passok)
|
||||
{
|
||||
$login=$usertotest;
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_syslog("functions_mc::check_user_password_mc Authentification ko bad password pour '".$usertotest."'", LOG_ERR);
|
||||
$_SESSION["dol_loginmesg"]=$langs->trans("ErrorBadLoginPassword");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_syslog("functions_mc::check_user_password_mc Authentification ko user not found for '".$usertotest."'", LOG_ERR);
|
||||
$_SESSION["dol_loginmesg"]=$langs->trans("ErrorBadLoginPassword");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_syslog("functions_mc::check_user_password_mc Authentification ko db error for '".$usertotest."' error=".$db->lasterror(), LOG_ERR);
|
||||
$_SESSION["dol_loginmesg"]=$db->lasterror();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dol_syslog("functions_mc::check_user_password_mc Authentification ko, the drop-down list of entities on the login page must be hidden", LOG_ERR);
|
||||
$_SESSION["dol_loginmesg"]=$langs->trans("ErrorDropDownListOfEntitiesMustBeHidden");
|
||||
}
|
||||
}
|
||||
|
||||
return $login;
|
||||
}
|
||||
@ -1,587 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2009-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
* Copyright (C) 2011 Herve Prot <herve.prot@symeos.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \defgroup multicompany Module multicompany
|
||||
* \brief Descriptor file for module multicompany
|
||||
* \file htdocs/core/modules/modMultiCompany.class.php
|
||||
* \ingroup multicompany
|
||||
* \brief Description and activation file for module MultiCompany
|
||||
*/
|
||||
include_once DOL_DOCUMENT_ROOT . '/core/modules/DolibarrModules.class.php';
|
||||
|
||||
|
||||
/**
|
||||
* \class modMultiCompany
|
||||
* \brief Description and activation class for module MultiCompany
|
||||
*/
|
||||
class modMultiCompany extends DolibarrModules
|
||||
{
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @param DoliDB $db Database handler
|
||||
*/
|
||||
function __construct($db)
|
||||
{
|
||||
global $langs;
|
||||
|
||||
$this->db = $db;
|
||||
|
||||
// Id for module (must be unique).
|
||||
// Use here a free id (See in Home -> System information -> Dolibarr for list of used modules id).
|
||||
$this->numero = 5000;
|
||||
// Key text used to identify module (for permissions, menus, etc...)
|
||||
$this->rights_class = 'multicompany';
|
||||
|
||||
// Family can be 'crm','financial','hr','projects','products','ecm','technic','other'
|
||||
// It is used to group modules in module setup page
|
||||
$this->family = "base";
|
||||
// Gives the possibility to the module, to provide his own family info and position of this family.
|
||||
$this->familyinfo = array(
|
||||
'core' => array(
|
||||
'position' => '001',
|
||||
'label' => $langs->trans("iNodbox")
|
||||
)
|
||||
);
|
||||
// Module position in the family
|
||||
$this->module_position = 1;
|
||||
// Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module)
|
||||
$this->name = preg_replace('/^mod/i','',get_class($this));
|
||||
// Module description, used if translation string 'ModuleXXXDesc' not found (where XXX is value of numeric property 'numero' of module)
|
||||
$this->description = "Multi-Company Management";
|
||||
//$this->descriptionlong = "A very lon description. Can be a full HTML content";
|
||||
$this->editor_name = 'Régis Houssin';
|
||||
$this->editor_url = 'https://www.inodbox.com';
|
||||
// Can be enabled / disabled only in the main company with superadmin account
|
||||
$this->core_enabled = 1;
|
||||
// Possible values for version are: 'development', 'experimental', 'dolibarr' or version
|
||||
$this->version = '12.0.1';
|
||||
// Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase)
|
||||
$this->const_name = 'MAIN_MODULE_'.strtoupper($this->name);
|
||||
// Name of png file (without png) used for this module.
|
||||
// Png file must be in theme/yourtheme/img directory under name object_pictovalue.png.
|
||||
$this->picto='multicompany@multicompany';
|
||||
|
||||
// Data directories to create when module is enabled.
|
||||
$this->dirs = array();
|
||||
|
||||
// Config pages. Put here list of php page names stored in admmin directory used to setup module.
|
||||
$this->config_page_url = array("multicompany.php@multicompany");
|
||||
|
||||
// Defined all module parts (triggers, login, substitutions, menus, css, etc...)
|
||||
$this->module_parts = array(
|
||||
'login' => array(
|
||||
'data' => 1,
|
||||
'entity' => '0'
|
||||
),
|
||||
'triggers' => array(
|
||||
'data' => 1,
|
||||
'entity' => '0'
|
||||
),
|
||||
'hooks' => array(
|
||||
'data' => array(
|
||||
'login',
|
||||
'main',
|
||||
'mainloginpage',
|
||||
'cashdeskloginpage',
|
||||
'passwordforgottenpage',
|
||||
'toprightmenu',
|
||||
'adminmodules',
|
||||
'admincompany',
|
||||
'commonobject',
|
||||
'thirdpartycard',
|
||||
'thirdpartylist',
|
||||
'customerlist',
|
||||
'prospectlist',
|
||||
'supplierlist',
|
||||
'usercard',
|
||||
'userperms',
|
||||
'groupcard',
|
||||
'groupperms',
|
||||
'userlist',
|
||||
'userhome',
|
||||
'userdao',
|
||||
'contactlist',
|
||||
'contactprospectlist',
|
||||
'contactcustomerlist',
|
||||
'contactsupplierlist',
|
||||
'contactotherlist',
|
||||
'productcard',
|
||||
'pricesuppliercard',
|
||||
'propalcard',
|
||||
'propallist',
|
||||
'ordercard',
|
||||
'orderlist',
|
||||
'invoicecard',
|
||||
'invoicelist',
|
||||
'warehousecard',
|
||||
'stocklist'
|
||||
),
|
||||
'entity' => '0'
|
||||
),
|
||||
'css' => array(
|
||||
'data' => '/multicompany/css/multicompany.css.php',
|
||||
'entity' => '0'
|
||||
)
|
||||
);
|
||||
|
||||
// Dependencies
|
||||
$this->depends = array(); // List of modules id that must be enabled if this module is enabled
|
||||
$this->requiredby = array(); // List of modules id to disable if this one is disabled
|
||||
$this->phpmin = array(5,6); // Minimum version of PHP required by module
|
||||
$this->need_dolibarr_version = array(12,0,0); // Minimum version of Dolibarr required by module
|
||||
$this->langfiles = array("multicompany@multicompany");
|
||||
|
||||
// Constants
|
||||
// List of particular constants to add when module is enabled
|
||||
$this->const=array(
|
||||
1 => array('MULTICOMPANY_MAIN_VERSION', 'chaine', $this->version, '', 0, 'multicompany', 1),
|
||||
2 => array('MULTICOMPANY_EXTERNAL_MODULES_SHARING', 'chaine', '', '', 0, 'multicompany', 0),
|
||||
3 => array('MULTICOMPANY_NO_TOP_MENU_ENTITY_LABEL', 'chaine', 1, '', 0, 'multicompany', 0)
|
||||
);
|
||||
|
||||
// Boxes
|
||||
$this->boxes = array(); // List of boxes
|
||||
$r=0;
|
||||
|
||||
// Permissions
|
||||
$this->rights = array();
|
||||
$r=0;
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5001;
|
||||
$this->rights[$r][1] = 'Read entities (For superadmin users)';
|
||||
$this->rights[$r][2] = 'r';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'read';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5002;
|
||||
$this->rights[$r][1] = 'Create/modify entities (For superadmin users)';
|
||||
$this->rights[$r][2] = 'w';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'write';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5003;
|
||||
$this->rights[$r][1] = 'Delete entities (For superadmin users)';
|
||||
$this->rights[$r][2] = 'd';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'delete';
|
||||
|
||||
// Thirdparty sharing (501x)
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5011;
|
||||
$this->rights[$r][1] = 'Read shared third parties';
|
||||
$this->rights[$r][2] = 'r';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'thirdparty';
|
||||
$this->rights[$r][5] = 'read';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5012;
|
||||
$this->rights[$r][1] = 'Create/modify shared third parties';
|
||||
$this->rights[$r][2] = 'w';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'thirdparty';
|
||||
$this->rights[$r][5] = 'write';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5013;
|
||||
$this->rights[$r][1] = 'Delete shared third parties';
|
||||
$this->rights[$r][2] = 'd';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'thirdparty';
|
||||
$this->rights[$r][5] = 'delete';
|
||||
|
||||
// Contact sharing (502x)
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5021;
|
||||
$this->rights[$r][1] = 'Read shared contacts';
|
||||
$this->rights[$r][2] = 'r';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'contact';
|
||||
$this->rights[$r][5] = 'read';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5022;
|
||||
$this->rights[$r][1] = 'Create/modify shared contacts';
|
||||
$this->rights[$r][2] = 'w';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'contact';
|
||||
$this->rights[$r][5] = 'write';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5023;
|
||||
$this->rights[$r][1] = 'Delete shared contacts';
|
||||
$this->rights[$r][2] = 'd';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'contact';
|
||||
$this->rights[$r][5] = 'delete';
|
||||
|
||||
// Product/service sharing (503x)
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5031;
|
||||
$this->rights[$r][1] = 'Read shared products/services';
|
||||
$this->rights[$r][2] = 'r';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'product';
|
||||
$this->rights[$r][5] = 'read';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5032;
|
||||
$this->rights[$r][1] = 'Create/modify shared products/services';
|
||||
$this->rights[$r][2] = 'w';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'product';
|
||||
$this->rights[$r][5] = 'write';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5033;
|
||||
$this->rights[$r][1] = 'Delete shared products/services';
|
||||
$this->rights[$r][2] = 'd';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'product';
|
||||
$this->rights[$r][5] = 'delete';
|
||||
|
||||
// Proposal sharing (504x)
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5041;
|
||||
$this->rights[$r][1] = 'Read shared customer proposals';
|
||||
$this->rights[$r][2] = 'r';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'propal';
|
||||
$this->rights[$r][5] = 'read';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5042;
|
||||
$this->rights[$r][1] = 'Create/modify shared customer proposals';
|
||||
$this->rights[$r][2] = 'w';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'propal';
|
||||
$this->rights[$r][5] = 'write';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5043;
|
||||
$this->rights[$r][1] = 'Validate shared customer proposals';
|
||||
$this->rights[$r][2] = 'd';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'propal_advance';
|
||||
$this->rights[$r][5] = 'validate';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5044;
|
||||
$this->rights[$r][1] = 'Send shared customer proposals';
|
||||
$this->rights[$r][2] = 'd';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'propal_advance';
|
||||
$this->rights[$r][5] = 'send';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5045;
|
||||
$this->rights[$r][1] = 'Close shared customer proposals';
|
||||
$this->rights[$r][2] = 'd';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'propal';
|
||||
$this->rights[$r][5] = 'close';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5046;
|
||||
$this->rights[$r][1] = 'Delete shared customer proposals';
|
||||
$this->rights[$r][2] = 'd';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'propal';
|
||||
$this->rights[$r][5] = 'delete';
|
||||
|
||||
// Order sharing (505x)
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5051;
|
||||
$this->rights[$r][1] = 'Read shared customer orders';
|
||||
$this->rights[$r][2] = 'r';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'order';
|
||||
$this->rights[$r][5] = 'read';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5052;
|
||||
$this->rights[$r][1] = 'Close shared customer orders';
|
||||
$this->rights[$r][2] = 'w';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'order';
|
||||
$this->rights[$r][5] = 'write';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5054;
|
||||
$this->rights[$r][1] = 'Validate shared customer orders';
|
||||
$this->rights[$r][2] = 'd';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'order_advance';
|
||||
$this->rights[$r][5] = 'validate';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5056;
|
||||
$this->rights[$r][1] = 'Send shared customer orders';
|
||||
$this->rights[$r][2] = 'd';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'order_advance';
|
||||
$this->rights[$r][5] = 'send';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5057;
|
||||
$this->rights[$r][1] = 'Close shared customer orders';
|
||||
$this->rights[$r][2] = 'd';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'order';
|
||||
$this->rights[$r][5] = 'close';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5058;
|
||||
$this->rights[$r][1] = 'Cancel shared customer orders';
|
||||
$this->rights[$r][2] = 'd';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'order_advance';
|
||||
$this->rights[$r][5] = 'cancel';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5059;
|
||||
$this->rights[$r][1] = 'Delete shared customer orders';
|
||||
$this->rights[$r][2] = 'd';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'order';
|
||||
$this->rights[$r][5] = 'delete';
|
||||
|
||||
// Invoice sharing (506x)
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5061;
|
||||
$this->rights[$r][1] = 'Read shared customer invoices';
|
||||
$this->rights[$r][2] = 'a';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'invoice';
|
||||
$this->rights[$r][5] = 'read';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5062;
|
||||
$this->rights[$r][1] = 'Create/modify shared customer invoices';
|
||||
$this->rights[$r][2] = 'a';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'invoice';
|
||||
$this->rights[$r][5] = 'write';
|
||||
|
||||
// There is a particular permission for unvalidate because this may be not forbidden by some laws
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5063;
|
||||
$this->rights[$r][1] = 'Devalidate shared customer invoices';
|
||||
$this->rights[$r][2] = 'a';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'invoice_advance';
|
||||
$this->rights[$r][5] = 'unvalidate';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5064;
|
||||
$this->rights[$r][1] = 'Validate shared customer invoices';
|
||||
$this->rights[$r][2] = 'a';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'invoice_advance';
|
||||
$this->rights[$r][5] = 'validate';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5065;
|
||||
$this->rights[$r][1] = 'Send shared customer invoices';
|
||||
$this->rights[$r][2] = 'a';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'invoice_advance';
|
||||
$this->rights[$r][5] = 'send';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5066;
|
||||
$this->rights[$r][1] = 'Issue payments on shared customer invoices';
|
||||
$this->rights[$r][2] = 'a';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'invoice';
|
||||
$this->rights[$r][5] = 'payment';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5067;
|
||||
$this->rights[$r][1] = 'Re-open a fully paid shared customer invoices';
|
||||
$this->rights[$r][2] = 'r';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'invoice_advance';
|
||||
$this->rights[$r][5] = 'reopen';
|
||||
|
||||
$r++;
|
||||
$this->rights[$r][0] = 5069;
|
||||
$this->rights[$r][1] = 'Delete shared customer invoices';
|
||||
$this->rights[$r][2] = 'a';
|
||||
$this->rights[$r][3] = 0;
|
||||
$this->rights[$r][4] = 'invoice';
|
||||
$this->rights[$r][5] = 'delete';
|
||||
|
||||
// Main menu entries
|
||||
$this->menus = array(); // List of menus to add
|
||||
$r=0;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Function called when module is enabled.
|
||||
* The init function add constants, boxes, permissions and menus (defined in constructor) into Dolibarr database.
|
||||
* It also creates data directories.
|
||||
*
|
||||
* @param string $options Options when enabling module ('', 'newboxdefonly', 'noboxes')
|
||||
* 'noboxes' = Do not insert boxes
|
||||
* 'newboxdefonly' = For boxes, insert def of boxes only and not boxes activation
|
||||
* @return int 1 if OK, 0 if KO
|
||||
*/
|
||||
function init($options = '')
|
||||
{
|
||||
$sql = array();
|
||||
|
||||
$result=$this->load_tables();
|
||||
|
||||
$result=$this->setSuperAdmin();
|
||||
|
||||
$result=$this->setFirstEntity();
|
||||
|
||||
return $this->_init($sql, $options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Function called when module is disabled.
|
||||
* Remove from database constants, boxes and permissions from Dolibarr database.
|
||||
* Data directories are not deleted.
|
||||
*
|
||||
* @param string $options Options when enabling module ('', 'noboxes')
|
||||
* @return int 1 if OK, 0 if KO
|
||||
*/
|
||||
function remove($options = '')
|
||||
{
|
||||
$sql = array(
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."const WHERE name = ".$this->db->encrypt('MAIN_MODULE_MULTICOMPANY_CSS', 1),
|
||||
"DELETE FROM ".MAIN_DB_PREFIX."const WHERE name = ".$this->db->encrypt('MAIN_MODULE_MULTICOMPANY_LOGIN', 1)
|
||||
);
|
||||
|
||||
return $this->_remove($sql, $options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create tables and keys required by module
|
||||
* This function is called by this->init.
|
||||
* @return int <=0 if KO, >0 if OK
|
||||
*/
|
||||
function load_tables()
|
||||
{
|
||||
return $this->_load_tables('/multicompany/sql/');
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the first entity
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
function setSuperAdmin()
|
||||
{
|
||||
global $user;
|
||||
|
||||
$sql = 'SELECT count(rowid) FROM '.MAIN_DB_PREFIX.'user';
|
||||
$sql.= ' WHERE admin = 1 AND entity = 0';
|
||||
$res = $this->db->query($sql);
|
||||
if ($res) $num = $this->db->fetch_array($res);
|
||||
else dol_print_error($this->db);
|
||||
|
||||
if (empty($num[0]))
|
||||
{
|
||||
$this->db->begin();
|
||||
|
||||
$sql = 'UPDATE '.MAIN_DB_PREFIX.'user SET entity = 0';
|
||||
$sql.= ' WHERE admin = 1 AND rowid IN (1,'.$user->id.')';
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
$this->db->commit();
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the first entity
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
function setFirstEntity()
|
||||
{
|
||||
global $user, $langs;
|
||||
|
||||
$langs->load('multicompany@multicompany');
|
||||
|
||||
$sql = 'SELECT count(rowid) FROM '.MAIN_DB_PREFIX.'entity';
|
||||
$res = $this->db->query($sql);
|
||||
if ($res) $num = $this->db->fetch_array($res);
|
||||
else dol_print_error($this->db);
|
||||
|
||||
if (empty($num[0]))
|
||||
{
|
||||
$this->db->begin();
|
||||
|
||||
$now = dol_now();
|
||||
|
||||
$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'entity (';
|
||||
$sql.= 'label';
|
||||
$sql.= ', description';
|
||||
$sql.= ', datec';
|
||||
$sql.= ', fk_user_creat';
|
||||
$sql.= ') VALUES (';
|
||||
$sql.= '\''.$langs->trans("MasterEntity").'\'';
|
||||
$sql.= ', \''.$langs->trans("MasterEntityDesc").'\'';
|
||||
$sql.= ', \''.$this->db->idate($now).'\'';
|
||||
$sql.= ', '.$user->id;
|
||||
$sql.= ')';
|
||||
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
$this->db->commit();
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db->rollback();
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,86 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2010-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file /multicompany/core/triggers/interface_25_modMulticompany_MulticompanyWorkflow.class.php
|
||||
* \ingroup multicompany
|
||||
* \brief Trigger file for create multicompany data
|
||||
*/
|
||||
|
||||
require_once DOL_DOCUMENT_ROOT.'/core/triggers/dolibarrtriggers.class.php';
|
||||
|
||||
/**
|
||||
* \class InterfaceMulticompanyWorkflow
|
||||
* \brief Classe des fonctions triggers des actions personnalisees du module multicompany
|
||||
*/
|
||||
|
||||
class InterfaceMulticompanyWorkflow extends DolibarrTriggers
|
||||
{
|
||||
public $family = 'multicompany';
|
||||
|
||||
public $description = "Triggers of this module allows to create multicompany data";
|
||||
|
||||
/**
|
||||
* Version of the trigger
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $version = self::VERSION_DOLIBARR;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string Image of the trigger
|
||||
*/
|
||||
public $picto = 'multicompany@multicompany';
|
||||
|
||||
/**
|
||||
* Function called when a Dolibarrr business event is done.
|
||||
* All functions "runTrigger" are triggered if file is inside directory htdocs/core/triggers or htdocs/module/core/triggers (and declared)
|
||||
*
|
||||
* Following properties may be set before calling trigger. The may be completed by this trigger to be used for writing the event into database:
|
||||
* $object->id (id of entity)
|
||||
* $object->element (element type of object)
|
||||
*
|
||||
* @param string $action Event action code
|
||||
* @param Object $object Object
|
||||
* @param User $user Object user
|
||||
* @param Translate $langs Object langs
|
||||
* @param conf $conf Object conf
|
||||
* @return int <0 if KO, 0 if no triggered ran, >0 if OK
|
||||
*/
|
||||
public function runTrigger($action, $object, User $user, Translate $langs, Conf $conf)
|
||||
{
|
||||
// Mettre ici le code a executer en reaction de l'action
|
||||
// Les donnees de l'action sont stockees dans $object
|
||||
|
||||
/*if ($action == 'COMPANY_CREATE')
|
||||
{
|
||||
$entity = GETPOST('new_entity', 'int', 2); // limit to POST
|
||||
|
||||
if ($entity > 0)
|
||||
{
|
||||
dol_syslog("Trigger '".$this->name."' for action '$action' launched by ". __FILE__ .". id=".$object->rowid);
|
||||
|
||||
return $ret;
|
||||
}
|
||||
}*/
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,199 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2019 Regis Houssin <regis.houssin@inodbox.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
if (! defined('ISLOADEDBYSTEELSHEET')) die('Must be call by steelsheet');
|
||||
$colorbackhmenu1='60,70,100'; // topmenu
|
||||
?>
|
||||
/* <style type="text/css" > */
|
||||
/*
|
||||
Dropdown
|
||||
*/
|
||||
|
||||
.open>.mc-dropdown-menu { /*, #topmenu-login-dropdown:hover .dropdown-menu*/
|
||||
display: block;
|
||||
}
|
||||
|
||||
.mc-dropdown-menu {
|
||||
box-shadow: none;
|
||||
border-color: #eee;
|
||||
}
|
||||
.mc-dropdown-menu {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
z-index: 1000;
|
||||
display: none;
|
||||
float: left;
|
||||
min-width: 160px;
|
||||
padding: 5px 0;
|
||||
margin: 2px 0 0;
|
||||
font-size: 14px;
|
||||
text-align: left;
|
||||
list-style: none;
|
||||
background-color: #fff;
|
||||
-webkit-background-clip: padding-box;
|
||||
background-clip: padding-box;
|
||||
border: 1px solid #ccc;
|
||||
border: 1px solid rgba(0,0,0,.15);
|
||||
border-radius: 4px;
|
||||
-webkit-box-shadow: 0 6px 12px rgba(0,0,0,.175);
|
||||
box-shadow: 0 6px 12px rgba(0,0,0,.175);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* MENU Dropdown
|
||||
*/
|
||||
.login_block.usedropdown .logout-btn {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.login_block .open.mcdropdown, .login_block .mcdropdown:hover {
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.login_block .mc-dropdown-menu {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
left: auto;
|
||||
line-height:1.3em;
|
||||
}
|
||||
.login_block .mc-dropdown-menu .mc-body {
|
||||
border-bottom-right-radius: 4px;
|
||||
border-bottom-left-radius: 4px;
|
||||
}
|
||||
.mc-body {
|
||||
color: #333;
|
||||
}
|
||||
.side-nav-vert .mc-menu .mc-dropdown-menu {
|
||||
border-top-right-radius: 0;
|
||||
border-top-left-radius: 0;
|
||||
padding: 1px 0 0 0;
|
||||
border-top-width: 0;
|
||||
width: 300px;
|
||||
}
|
||||
.side-nav-vert .mc-menu .mc-dropdown-menu {
|
||||
margin-top: 0;
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
|
||||
.side-nav-vert .mc-menu .mc-dropdown-menu > .mc-header {
|
||||
height: 175px;
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.dropdown-mc-image {
|
||||
font-size: 90px;
|
||||
border-radius: 50%;
|
||||
vertical-align: middle;
|
||||
z-index: 5;
|
||||
height: 90px;
|
||||
width: 90px;
|
||||
/*border: 3px solid;*/
|
||||
border-color: transparent;
|
||||
border-color: rgba(255, 255, 255, 0.2);
|
||||
max-width: 100%;
|
||||
max-height :100%;
|
||||
}
|
||||
|
||||
.mc-dropdown-menu > .mc-header {
|
||||
background: rgb(<?php echo $colorbackhmenu1 ?>);
|
||||
}
|
||||
|
||||
.mc-dropdown-menu > .mc-footer {
|
||||
background-color: #f9f9f9;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.mc-footer:after {
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.mc-dropdown-menu > .mc-body {
|
||||
padding: 15px;
|
||||
border-bottom: 1px solid #f4f4f4;
|
||||
border-top: 1px solid #dddddd;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
#topmenu-mc-dropdown {
|
||||
padding: 0 5px 0 5px;
|
||||
}
|
||||
#topmenu-mc-dropdown a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
.topmenu-mc-label {
|
||||
font-family: roboto,arial,tahoma,verdana,helvetica;
|
||||
font-size: 13px;
|
||||
padding-left: 4px;
|
||||
}
|
||||
.atoplogin #mc-dropdown-icon-down, .atoplogin #mc-dropdown-icon-up {
|
||||
font-size: 0.7em;
|
||||
}
|
||||
.atoplogin #mc-dropdown-icon {
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
#topmenumcmoreinfo-btn {
|
||||
display: block;
|
||||
text-aling: right;
|
||||
color:#666;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#topmenumcmoreinfo {
|
||||
display: none;
|
||||
clear: both;
|
||||
font-size: 0.95em;
|
||||
}
|
||||
|
||||
.button-top-menu-dropdown {
|
||||
display: inline-block;
|
||||
padding: 6px 12px;
|
||||
margin-bottom: 0;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 1.42857143;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: middle;
|
||||
-ms-touch-action: manipulation;
|
||||
touch-action: manipulation;
|
||||
cursor: pointer;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
background-image: none;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.mc-footer .button-top-menu-dropdown {
|
||||
color: #666666;
|
||||
border-radius: 0;
|
||||
-webkit-box-shadow: none;
|
||||
-moz-box-shadow: none;
|
||||
box-shadow: none;
|
||||
border-width: 1px;
|
||||
background-color: #f4f4f4;
|
||||
border-color: #ddd;
|
||||
}
|
||||
@ -1,355 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2011-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU 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 General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
/**
|
||||
* \file /multicompany/css/multicompany.css.php
|
||||
* \brief Fichier de style CSS complementaire du module Multi-Company
|
||||
*/
|
||||
|
||||
//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); // Not disabled cause need to load personalized language
|
||||
//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); // Not disabled to increase speed. Language code is found on url.
|
||||
if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1');
|
||||
//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); // Not disabled cause need to do translations
|
||||
if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK',1);
|
||||
if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL',1);
|
||||
if (! defined('NOLOGIN')) define('NOLOGIN',1);
|
||||
if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU',1);
|
||||
if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML',1);
|
||||
if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1');
|
||||
if (! defined('NOREQUIREHOOK')) define('NOREQUIREHOOK','1'); // Disable "main.inc.php" hooks
|
||||
|
||||
define('ISLOADEDBYSTEELSHEET', '1');
|
||||
|
||||
session_cache_limiter(FALSE);
|
||||
|
||||
$res=@include '../../main.inc.php'; // For "root" directory
|
||||
if (! $res && file_exists($_SERVER['DOCUMENT_ROOT']."/main.inc.php"))
|
||||
$res=@include($_SERVER['DOCUMENT_ROOT']."/main.inc.php"); // Use on dev env only
|
||||
if (! $res) $res=@include '../../../main.inc.php'; // For "custom" directory
|
||||
|
||||
|
||||
// Define css type
|
||||
header('Content-type: text/css');
|
||||
// Important: Following code is to avoid page request by browser and PHP CPU at
|
||||
// each Dolibarr page access.
|
||||
if (empty($dolibarr_nocache)) header('Cache-Control: max-age=3600, public, must-revalidate');
|
||||
else header('Cache-Control: no-cache');
|
||||
|
||||
$dol_optimize_smallscreen=$conf->dol_optimize_smallscreen;
|
||||
|
||||
?>
|
||||
|
||||
.minwidth180 { min-width: 175px !important; }
|
||||
div.login_block_other { max-width: unset; }
|
||||
|
||||
#login_right #entity {
|
||||
min-width: 190px !important;
|
||||
}
|
||||
#login_right .multicompany-trinputlogin .select2-container {
|
||||
padding-left: inherit;
|
||||
}
|
||||
#login_right .nowrap {
|
||||
white-space: nowrap!important;
|
||||
}
|
||||
#login_right .multicompany-trinputlogin {
|
||||
padding-top: 10px
|
||||
}
|
||||
.icon-multicompany-blue {
|
||||
background-image: url(<?php echo dol_buildpath('/multicompany/img/object_multicompany.png',1); ?>);
|
||||
background-repeat: no-repeat;
|
||||
background-position: left center;
|
||||
}
|
||||
.icon-multicompany-white {
|
||||
background-image: url(<?php echo dol_buildpath('/multicompany/img/object_multicompany_eldy.png',1); ?>);
|
||||
background-repeat: no-repeat;
|
||||
background-position: left center;
|
||||
}
|
||||
.icon-multicompany-black {
|
||||
background-image: url(<?php echo dol_buildpath('/multicompany/img/object_multicompany_md.png',1); ?>);
|
||||
background-repeat: no-repeat;
|
||||
background-position: left center;
|
||||
}
|
||||
.multicompany_select {
|
||||
font-family: roboto,arial,tahoma,verdana,helvetica !important;
|
||||
}
|
||||
#multicompany_title .opacityhigh {
|
||||
opacity: 0.8 !important;
|
||||
}
|
||||
.multicompany_block .fa-globe,
|
||||
.modify-entity {
|
||||
cursor:pointer;
|
||||
}
|
||||
.modify-entity-disabled {
|
||||
cursor:not-allowed!important;
|
||||
}
|
||||
div.entity_box {
|
||||
margin-top: 10px;
|
||||
}
|
||||
div#login_right {
|
||||
min-width:0!important;
|
||||
}
|
||||
#changeentity, #entitythirdparty, #entitycontact, #referring_entity {
|
||||
width: 200px;
|
||||
}
|
||||
#select2-changeentity-container {
|
||||
color: #444!important;
|
||||
}
|
||||
#entity_box #entity, #search_entity {
|
||||
width: 135px;
|
||||
}
|
||||
#entity_box .select2-container {
|
||||
margin-left: 8px!important;
|
||||
}
|
||||
.padding-left5 {
|
||||
padding-left: 5px;
|
||||
}
|
||||
.padding-top3 {
|
||||
padding-top: 3px;
|
||||
}
|
||||
.padding-left15 {
|
||||
padding-left: 15px!important;
|
||||
}
|
||||
.fifty-percent {
|
||||
width: 50%;
|
||||
}
|
||||
.seventy-percent {
|
||||
width: 70%;
|
||||
}
|
||||
.float-right {
|
||||
float: right;
|
||||
}
|
||||
.float-left {
|
||||
float: left;
|
||||
}
|
||||
.valign-middle {
|
||||
vertical-align: middle;
|
||||
}
|
||||
.text-align-right {
|
||||
text-align: right;
|
||||
}
|
||||
.text-align-center {
|
||||
text-align: center;
|
||||
}
|
||||
.text-align-left {
|
||||
text-align: left;
|
||||
}
|
||||
.button-align-right {
|
||||
text-align: right;
|
||||
padding-right: 30px;
|
||||
}
|
||||
.button-not-allowed {
|
||||
cursor: not-allowed !important;
|
||||
opacity: 0.6;
|
||||
}
|
||||
div.mc-upgrade-alert {
|
||||
color: #302020;
|
||||
padding: 0.5em 0.5em 0.5em 0.5em;
|
||||
margin: 0.5em 1.5em 0.5em 1.5em;
|
||||
border: 1px solid #e0d0b0;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
background: #EFCFCF;
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
|
||||
}
|
||||
.dataTables_length select {
|
||||
font-size: unset;
|
||||
}
|
||||
table.dataTable thead tr {
|
||||
background-color: rgb(220,220,223)!important;
|
||||
}
|
||||
table.dataTable tbody tr.odd {
|
||||
background-color: #f8f8f8!important;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
table.dataTable tbody tr.even {
|
||||
background-color: #ffffff!important;
|
||||
border-bottom: 1px solid #ddd;
|
||||
}
|
||||
table.dataTable tbody tr:hover {
|
||||
background-color: #edf4fb!important;
|
||||
}
|
||||
.multicompany-entity-container {
|
||||
background: #e1e7e1;
|
||||
padding: 2px;
|
||||
margin-right: 10px;
|
||||
margin-bottom: 5px;
|
||||
border-radius: 10px;
|
||||
display: inline-block;
|
||||
}
|
||||
.multicompany-entity-card-container {
|
||||
background: #e1e7e1;
|
||||
padding-left: 4px!important;
|
||||
padding-right: 4px!important;
|
||||
margin-top: 5px !important;
|
||||
border-radius: 10px;
|
||||
display: inline-block;
|
||||
}
|
||||
.multicompany-entity-container:hover,
|
||||
.multicompany-entity-card-container:hover {
|
||||
background: #d5dbd5;
|
||||
}
|
||||
.multicompany-button-disabled,
|
||||
.multicompany-switch-disabled,
|
||||
.multicompany-switch-on-not-allowed,
|
||||
.multicompany-switch-off-not-allowed {
|
||||
margin: 5px;
|
||||
cursor: not-allowed;
|
||||
opacity: 0.5;
|
||||
}
|
||||
.multicompany-switch-on,
|
||||
.multicompany-switch-off,
|
||||
.multicompany-button-active-on,
|
||||
.multicompany-button-active-off,
|
||||
.multicompany-button-visible-on,
|
||||
.multicompany-button-visible-off {
|
||||
margin: 5px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.multicompany-button-template,
|
||||
.multicompany-button-lock-on {
|
||||
margin: 5px;
|
||||
}
|
||||
.multicompany-button-template {
|
||||
color: rgb(59, 91, 152);
|
||||
}
|
||||
.multicompany-button-setup {
|
||||
margin: 7px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.multicompany-button-clonerights {
|
||||
cursor: pointer;
|
||||
}
|
||||
.multicompany-button-delete {
|
||||
margin: 5px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.multicompany-flag-language,
|
||||
.multicompany-flag-country {
|
||||
margin-top: 5px;
|
||||
}
|
||||
#dialog-duplicate {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
.multiselect-title {
|
||||
padding-left: 5px;
|
||||
}
|
||||
.multiselect-available-title, .multiselect-selected-title {
|
||||
padding-bottom: 5px;
|
||||
color: #73808c;
|
||||
}
|
||||
.multiselect-available-title-text, .multiselect-selected-title-text {
|
||||
padding-left: 5px;
|
||||
}
|
||||
.multiselect-menu {
|
||||
/*padding-top: 23px;*/
|
||||
padding-top: 20px;
|
||||
}
|
||||
.multiselect-menu-btn-color {
|
||||
background-color: #e2e2e2!important;
|
||||
}
|
||||
.multiselect-menu-btn-color:hover {
|
||||
background-color: #f2f2f2!important;
|
||||
}
|
||||
.multiselect-select {
|
||||
overflow-y:auto;
|
||||
padding: 6px 6px!important;
|
||||
}
|
||||
.multiselect-option {
|
||||
background-color: #f2f2f2!important;
|
||||
cursor: pointer;
|
||||
border: 5px;
|
||||
}
|
||||
tr.multiselect-separator td {
|
||||
padding: 1px!important;
|
||||
line-height: 1px!important;
|
||||
height: 10px!important;
|
||||
}
|
||||
|
||||
[data-tooltip]:before {
|
||||
content: attr(data-tooltip);
|
||||
}
|
||||
[data-tooltip] {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
/*padding: 4px;*/
|
||||
}
|
||||
/* Tooltip styling */
|
||||
[data-tooltip]:before {
|
||||
content: attr(data-tooltip);
|
||||
display: none;
|
||||
position: absolute;
|
||||
background: #fff;
|
||||
color: #444;
|
||||
border-top: solid 1px #BBBBBB;
|
||||
border-left: solid 1px #BBBBBB;
|
||||
border-right: solid 1px #BBBBBB;
|
||||
border-bottom: solid 1px #BBBBBB;
|
||||
padding: 4px 10px;
|
||||
border-radius: 0;
|
||||
box-shadow: 0 0 4px grey;
|
||||
margin: 2px;
|
||||
font-stretch: condensed;
|
||||
min-width: 320px;
|
||||
}
|
||||
/* Dynamic horizontal centering */
|
||||
[data-tooltip-position="top"]:before,
|
||||
[data-tooltip-position="bottom"]:before {
|
||||
left: 50%;
|
||||
-ms-transform: translateX(-50%);
|
||||
-moz-transform: translateX(-50%);
|
||||
-webkit-transform: translateX(-50%);
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
/* Dynamic vertical centering */
|
||||
[data-tooltip-position="right"]:before,
|
||||
[data-tooltip-position="left"]:before {
|
||||
top: 50%;
|
||||
-ms-transform: translateY(-50%);
|
||||
-moz-transform: translateY(-50%);
|
||||
-webkit-transform: translateY(-50%);
|
||||
transform: translateY(-50%);
|
||||
}
|
||||
[data-tooltip-position="top"]:before {
|
||||
bottom: 100%;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
[data-tooltip-position="right"]:before {
|
||||
left: 100%;
|
||||
margin-left: 6px;
|
||||
}
|
||||
[data-tooltip-position="bottom"]:before {
|
||||
top: 100%;
|
||||
margin-top: 6px;
|
||||
}
|
||||
[data-tooltip-position="left"]:before {
|
||||
right: 100%;
|
||||
margin-right: 6px;
|
||||
}
|
||||
/* Show the tooltip when hovering */
|
||||
[data-tooltip]:hover:before,
|
||||
[data-tooltip]:hover:after {
|
||||
display: block;
|
||||
z-index: 3000;
|
||||
}
|
||||
|
||||
<?php
|
||||
if (($conf->global->MAIN_THEME === 'eldy' && empty($conf->global->MULTICOMPANY_DROPDOWN_MENU_DISABLED) && ! GETPOSTISSET('theme')) || (GETPOSTISSET('theme') && GETPOST('theme', 'aZ', 1) === 'eldy')) {
|
||||
include dol_buildpath('/multicompany/css/dropdown.inc.php');
|
||||
}
|
||||
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 972 B |
|
Before Width: | Height: | Size: 954 B |
@ -1,354 +0,0 @@
|
||||
@keyframes dtb-spinner {
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
@-o-keyframes dtb-spinner {
|
||||
100% {
|
||||
-o-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
@-ms-keyframes dtb-spinner {
|
||||
100% {
|
||||
-ms-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes dtb-spinner {
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
@-moz-keyframes dtb-spinner {
|
||||
100% {
|
||||
-moz-transform: rotate(360deg);
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
div.dt-button-info {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 400px;
|
||||
margin-top: -100px;
|
||||
margin-left: -200px;
|
||||
background-color: white;
|
||||
border: 2px solid #111;
|
||||
box-shadow: 3px 3px 8px rgba(0, 0, 0, 0.3);
|
||||
border-radius: 3px;
|
||||
text-align: center;
|
||||
z-index: 21;
|
||||
}
|
||||
div.dt-button-info h2 {
|
||||
padding: 0.5em;
|
||||
margin: 0;
|
||||
font-weight: normal;
|
||||
border-bottom: 1px solid #ddd;
|
||||
background-color: #f3f3f3;
|
||||
}
|
||||
div.dt-button-info > div {
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
button.dt-button,
|
||||
div.dt-button,
|
||||
a.dt-button {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
box-sizing: border-box;
|
||||
margin-right: 0.333em;
|
||||
padding: 0.5em 1em;
|
||||
border: 1px solid #999;
|
||||
border-radius: 2px;
|
||||
cursor: pointer;
|
||||
font-size: 0.88em;
|
||||
color: black;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
background-color: #e9e9e9;
|
||||
/* Fallback */
|
||||
background-image: -webkit-linear-gradient(top, white 0%, #e9e9e9 100%);
|
||||
/* Chrome 10+, Saf5.1+, iOS 5+ */
|
||||
background-image: -moz-linear-gradient(top, white 0%, #e9e9e9 100%);
|
||||
/* FF3.6 */
|
||||
background-image: -ms-linear-gradient(top, white 0%, #e9e9e9 100%);
|
||||
/* IE10 */
|
||||
background-image: -o-linear-gradient(top, white 0%, #e9e9e9 100%);
|
||||
/* Opera 11.10+ */
|
||||
background-image: linear-gradient(to bottom, white 0%, #e9e9e9 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='white', EndColorStr='#e9e9e9');
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
text-decoration: none;
|
||||
outline: none;
|
||||
}
|
||||
button.dt-button.disabled,
|
||||
div.dt-button.disabled,
|
||||
a.dt-button.disabled {
|
||||
color: #999;
|
||||
border: 1px solid #d0d0d0;
|
||||
cursor: default;
|
||||
background-color: #f9f9f9;
|
||||
/* Fallback */
|
||||
background-image: -webkit-linear-gradient(top, #ffffff 0%, #f9f9f9 100%);
|
||||
/* Chrome 10+, Saf5.1+, iOS 5+ */
|
||||
background-image: -moz-linear-gradient(top, #ffffff 0%, #f9f9f9 100%);
|
||||
/* FF3.6 */
|
||||
background-image: -ms-linear-gradient(top, #ffffff 0%, #f9f9f9 100%);
|
||||
/* IE10 */
|
||||
background-image: -o-linear-gradient(top, #ffffff 0%, #f9f9f9 100%);
|
||||
/* Opera 11.10+ */
|
||||
background-image: linear-gradient(to bottom, #ffffff 0%, #f9f9f9 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#ffffff', EndColorStr='#f9f9f9');
|
||||
}
|
||||
button.dt-button:active:not(.disabled), button.dt-button.active:not(.disabled),
|
||||
div.dt-button:active:not(.disabled),
|
||||
div.dt-button.active:not(.disabled),
|
||||
a.dt-button:active:not(.disabled),
|
||||
a.dt-button.active:not(.disabled) {
|
||||
background-color: #e2e2e2;
|
||||
/* Fallback */
|
||||
background-image: -webkit-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%);
|
||||
/* Chrome 10+, Saf5.1+, iOS 5+ */
|
||||
background-image: -moz-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%);
|
||||
/* FF3.6 */
|
||||
background-image: -ms-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%);
|
||||
/* IE10 */
|
||||
background-image: -o-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%);
|
||||
/* Opera 11.10+ */
|
||||
background-image: linear-gradient(to bottom, #f3f3f3 0%, #e2e2e2 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f3f3f3', EndColorStr='#e2e2e2');
|
||||
box-shadow: inset 1px 1px 3px #999999;
|
||||
}
|
||||
button.dt-button:active:not(.disabled):hover:not(.disabled), button.dt-button.active:not(.disabled):hover:not(.disabled),
|
||||
div.dt-button:active:not(.disabled):hover:not(.disabled),
|
||||
div.dt-button.active:not(.disabled):hover:not(.disabled),
|
||||
a.dt-button:active:not(.disabled):hover:not(.disabled),
|
||||
a.dt-button.active:not(.disabled):hover:not(.disabled) {
|
||||
box-shadow: inset 1px 1px 3px #999999;
|
||||
background-color: #cccccc;
|
||||
/* Fallback */
|
||||
background-image: -webkit-linear-gradient(top, #eaeaea 0%, #cccccc 100%);
|
||||
/* Chrome 10+, Saf5.1+, iOS 5+ */
|
||||
background-image: -moz-linear-gradient(top, #eaeaea 0%, #cccccc 100%);
|
||||
/* FF3.6 */
|
||||
background-image: -ms-linear-gradient(top, #eaeaea 0%, #cccccc 100%);
|
||||
/* IE10 */
|
||||
background-image: -o-linear-gradient(top, #eaeaea 0%, #cccccc 100%);
|
||||
/* Opera 11.10+ */
|
||||
background-image: linear-gradient(to bottom, #eaeaea 0%, #cccccc 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#eaeaea', EndColorStr='#cccccc');
|
||||
}
|
||||
button.dt-button:hover,
|
||||
div.dt-button:hover,
|
||||
a.dt-button:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
button.dt-button:hover:not(.disabled),
|
||||
div.dt-button:hover:not(.disabled),
|
||||
a.dt-button:hover:not(.disabled) {
|
||||
border: 1px solid #666;
|
||||
background-color: #e0e0e0;
|
||||
/* Fallback */
|
||||
background-image: -webkit-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%);
|
||||
/* Chrome 10+, Saf5.1+, iOS 5+ */
|
||||
background-image: -moz-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%);
|
||||
/* FF3.6 */
|
||||
background-image: -ms-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%);
|
||||
/* IE10 */
|
||||
background-image: -o-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%);
|
||||
/* Opera 11.10+ */
|
||||
background-image: linear-gradient(to bottom, #f9f9f9 0%, #e0e0e0 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f9f9f9', EndColorStr='#e0e0e0');
|
||||
}
|
||||
button.dt-button:focus:not(.disabled),
|
||||
div.dt-button:focus:not(.disabled),
|
||||
a.dt-button:focus:not(.disabled) {
|
||||
border: 1px solid #426c9e;
|
||||
text-shadow: 0 1px 0 #c4def1;
|
||||
outline: none;
|
||||
background-color: #79ace9;
|
||||
/* Fallback */
|
||||
background-image: -webkit-linear-gradient(top, #bddef4 0%, #79ace9 100%);
|
||||
/* Chrome 10+, Saf5.1+, iOS 5+ */
|
||||
background-image: -moz-linear-gradient(top, #bddef4 0%, #79ace9 100%);
|
||||
/* FF3.6 */
|
||||
background-image: -ms-linear-gradient(top, #bddef4 0%, #79ace9 100%);
|
||||
/* IE10 */
|
||||
background-image: -o-linear-gradient(top, #bddef4 0%, #79ace9 100%);
|
||||
/* Opera 11.10+ */
|
||||
background-image: linear-gradient(to bottom, #bddef4 0%, #79ace9 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#bddef4', EndColorStr='#79ace9');
|
||||
}
|
||||
|
||||
.dt-button embed {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
div.dt-buttons {
|
||||
position: relative;
|
||||
float: left;
|
||||
}
|
||||
div.dt-buttons.buttons-right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
div.dt-button-collection {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 150px;
|
||||
margin-top: 3px;
|
||||
padding: 8px 8px 4px 8px;
|
||||
border: 1px solid #ccc;
|
||||
border: 1px solid rgba(0, 0, 0, 0.4);
|
||||
background-color: white;
|
||||
overflow: hidden;
|
||||
z-index: 2002;
|
||||
border-radius: 5px;
|
||||
box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
|
||||
z-index: 2002;
|
||||
-webkit-column-gap: 8px;
|
||||
-moz-column-gap: 8px;
|
||||
-ms-column-gap: 8px;
|
||||
-o-column-gap: 8px;
|
||||
column-gap: 8px;
|
||||
}
|
||||
div.dt-button-collection button.dt-button,
|
||||
div.dt-button-collection div.dt-button,
|
||||
div.dt-button-collection a.dt-button {
|
||||
position: relative;
|
||||
left: 0;
|
||||
right: 0;
|
||||
display: block;
|
||||
float: none;
|
||||
margin-bottom: 4px;
|
||||
margin-right: 0;
|
||||
}
|
||||
div.dt-button-collection button.dt-button:active:not(.disabled), div.dt-button-collection button.dt-button.active:not(.disabled),
|
||||
div.dt-button-collection div.dt-button:active:not(.disabled),
|
||||
div.dt-button-collection div.dt-button.active:not(.disabled),
|
||||
div.dt-button-collection a.dt-button:active:not(.disabled),
|
||||
div.dt-button-collection a.dt-button.active:not(.disabled) {
|
||||
background-color: #dadada;
|
||||
/* Fallback */
|
||||
background-image: -webkit-linear-gradient(top, #f0f0f0 0%, #dadada 100%);
|
||||
/* Chrome 10+, Saf5.1+, iOS 5+ */
|
||||
background-image: -moz-linear-gradient(top, #f0f0f0 0%, #dadada 100%);
|
||||
/* FF3.6 */
|
||||
background-image: -ms-linear-gradient(top, #f0f0f0 0%, #dadada 100%);
|
||||
/* IE10 */
|
||||
background-image: -o-linear-gradient(top, #f0f0f0 0%, #dadada 100%);
|
||||
/* Opera 11.10+ */
|
||||
background-image: linear-gradient(to bottom, #f0f0f0 0%, #dadada 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f0f0f0', EndColorStr='#dadada');
|
||||
box-shadow: inset 1px 1px 3px #666;
|
||||
}
|
||||
div.dt-button-collection.fixed {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-left: -75px;
|
||||
border-radius: 0;
|
||||
}
|
||||
div.dt-button-collection.fixed.two-column {
|
||||
margin-left: -150px;
|
||||
}
|
||||
div.dt-button-collection.fixed.three-column {
|
||||
margin-left: -225px;
|
||||
}
|
||||
div.dt-button-collection.fixed.four-column {
|
||||
margin-left: -300px;
|
||||
}
|
||||
div.dt-button-collection > * {
|
||||
-webkit-column-break-inside: avoid;
|
||||
break-inside: avoid;
|
||||
}
|
||||
div.dt-button-collection.two-column {
|
||||
width: 300px;
|
||||
padding-bottom: 1px;
|
||||
-webkit-column-count: 2;
|
||||
-moz-column-count: 2;
|
||||
-ms-column-count: 2;
|
||||
-o-column-count: 2;
|
||||
column-count: 2;
|
||||
}
|
||||
div.dt-button-collection.three-column {
|
||||
width: 450px;
|
||||
padding-bottom: 1px;
|
||||
-webkit-column-count: 3;
|
||||
-moz-column-count: 3;
|
||||
-ms-column-count: 3;
|
||||
-o-column-count: 3;
|
||||
column-count: 3;
|
||||
}
|
||||
div.dt-button-collection.four-column {
|
||||
width: 600px;
|
||||
padding-bottom: 1px;
|
||||
-webkit-column-count: 4;
|
||||
-moz-column-count: 4;
|
||||
-ms-column-count: 4;
|
||||
-o-column-count: 4;
|
||||
column-count: 4;
|
||||
}
|
||||
|
||||
div.dt-button-background {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(0, 0, 0, 0.7);
|
||||
/* Fallback */
|
||||
background: -ms-radial-gradient(center, ellipse farthest-corner, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
|
||||
/* IE10 Consumer Preview */
|
||||
background: -moz-radial-gradient(center, ellipse farthest-corner, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
|
||||
/* Firefox */
|
||||
background: -o-radial-gradient(center, ellipse farthest-corner, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
|
||||
/* Opera */
|
||||
background: -webkit-gradient(radial, center center, 0, center center, 497, color-stop(0, rgba(0, 0, 0, 0.3)), color-stop(1, rgba(0, 0, 0, 0.7)));
|
||||
/* Webkit (Safari/Chrome 10) */
|
||||
background: -webkit-radial-gradient(center, ellipse farthest-corner, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
|
||||
/* Webkit (Chrome 11+) */
|
||||
background: radial-gradient(ellipse farthest-corner at center, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
|
||||
/* W3C Markup, IE10 Release Preview */
|
||||
z-index: 2001;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 640px) {
|
||||
div.dt-buttons {
|
||||
float: none !important;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
button.dt-button.processing,
|
||||
div.dt-button.processing,
|
||||
a.dt-button.processing {
|
||||
color: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
button.dt-button.processing:after,
|
||||
div.dt-button.processing:after,
|
||||
a.dt-button.processing:after {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: -8px 0 0 -8px;
|
||||
box-sizing: border-box;
|
||||
display: block;
|
||||
content: ' ';
|
||||
border: 2px solid #282828;
|
||||
border-radius: 50%;
|
||||
border-left-color: transparent;
|
||||
border-right-color: transparent;
|
||||
animation: dtb-spinner 1500ms infinite linear;
|
||||
-o-animation: dtb-spinner 1500ms infinite linear;
|
||||
-ms-animation: dtb-spinner 1500ms infinite linear;
|
||||
-webkit-animation: dtb-spinner 1500ms infinite linear;
|
||||
-moz-animation: dtb-spinner 1500ms infinite linear;
|
||||
}
|
||||
@ -1,27 +0,0 @@
|
||||
|
||||
div.dt-button-info {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 400px;
|
||||
margin-top: -100px;
|
||||
margin-left: -200px;
|
||||
background-color: white;
|
||||
border: 2px solid #111;
|
||||
box-shadow: 3px 3px 8px rgba( 0, 0, 0, 0.3);
|
||||
border-radius: 3px;
|
||||
text-align: center;
|
||||
z-index: 21;
|
||||
|
||||
h2 {
|
||||
padding: 0.5em;
|
||||
margin: 0;
|
||||
font-weight: normal;
|
||||
border-bottom: 1px solid #ddd;
|
||||
background-color: #f3f3f3;
|
||||
}
|
||||
|
||||
> div {
|
||||
padding: 1em;
|
||||
}
|
||||
}
|
||||
@ -1,136 +0,0 @@
|
||||
|
||||
@mixin dtb-two-stop-gradient($fromColor, $toColor) {
|
||||
background-color: $toColor; /* Fallback */
|
||||
background-image: -webkit-linear-gradient(top, $fromColor 0%, $toColor 100%); /* Chrome 10+, Saf5.1+, iOS 5+ */
|
||||
background-image: -moz-linear-gradient(top, $fromColor 0%, $toColor 100%); /* FF3.6 */
|
||||
background-image: -ms-linear-gradient(top, $fromColor 0%, $toColor 100%); /* IE10 */
|
||||
background-image: -o-linear-gradient(top, $fromColor 0%, $toColor 100%); /* Opera 11.10+ */
|
||||
background-image: linear-gradient(to bottom, $fromColor 0%, $toColor 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#{nth( $fromColor, 1 )}', EndColorStr='#{nth( $toColor, 1 )}');
|
||||
}
|
||||
|
||||
@mixin dtb-radial-gradient ($fromColor, $toColor ) {
|
||||
background: $toColor; /* Fallback */
|
||||
background: -ms-radial-gradient(center, ellipse farthest-corner, $fromColor 0%, $toColor 100%); /* IE10 Consumer Preview */
|
||||
background: -moz-radial-gradient(center, ellipse farthest-corner, $fromColor 0%, $toColor 100%); /* Firefox */
|
||||
background: -o-radial-gradient(center, ellipse farthest-corner, $fromColor 0%, $toColor 100%); /* Opera */
|
||||
background: -webkit-gradient(radial, center center, 0, center center, 497, color-stop(0, $fromColor), color-stop(1, $toColor)); /* Webkit (Safari/Chrome 10) */
|
||||
background: -webkit-radial-gradient(center, ellipse farthest-corner, $fromColor 0%, $toColor 100%); /* Webkit (Chrome 11+) */
|
||||
background: radial-gradient(ellipse farthest-corner at center, $fromColor 0%, $toColor 100%); /* W3C Markup, IE10 Release Preview */
|
||||
}
|
||||
|
||||
|
||||
@mixin dtb-fixed-collection {
|
||||
// Fixed positioning feature
|
||||
&.fixed {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
margin-left: -75px;
|
||||
border-radius: 0;
|
||||
|
||||
&.two-column {
|
||||
margin-left: -150px;
|
||||
}
|
||||
|
||||
&.three-column {
|
||||
margin-left: -225px;
|
||||
}
|
||||
|
||||
&.four-column {
|
||||
margin-left: -300px;
|
||||
}
|
||||
}
|
||||
|
||||
// Multi-column layout feature
|
||||
-webkit-column-gap: 8px;
|
||||
-moz-column-gap: 8px;
|
||||
-ms-column-gap: 8px;
|
||||
-o-column-gap: 8px;
|
||||
column-gap: 8px;
|
||||
|
||||
> * {
|
||||
-webkit-column-break-inside: avoid;
|
||||
break-inside: avoid;
|
||||
}
|
||||
|
||||
&.two-column {
|
||||
width: 300px;
|
||||
padding-bottom: 1px;
|
||||
|
||||
-webkit-column-count: 2;
|
||||
-moz-column-count: 2;
|
||||
-ms-column-count: 2;
|
||||
-o-column-count: 2;
|
||||
column-count: 2;
|
||||
}
|
||||
|
||||
&.three-column {
|
||||
width: 450px;
|
||||
padding-bottom: 1px;
|
||||
|
||||
-webkit-column-count: 3;
|
||||
-moz-column-count: 3;
|
||||
-ms-column-count: 3;
|
||||
-o-column-count: 3;
|
||||
column-count: 3;
|
||||
}
|
||||
|
||||
&.four-column {
|
||||
width: 600px;
|
||||
padding-bottom: 1px;
|
||||
|
||||
-webkit-column-count: 4;
|
||||
-moz-column-count: 4;
|
||||
-ms-column-count: 4;
|
||||
-o-column-count: 4;
|
||||
column-count: 4;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@mixin dtb-processing {
|
||||
color: rgba(0, 0, 0, 0.2);
|
||||
|
||||
&:after {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: -8px 0 0 -8px;
|
||||
box-sizing: border-box;
|
||||
|
||||
display: block;
|
||||
content: ' ';
|
||||
border: 2px solid rgb(40,40,40);
|
||||
border-radius: 50%;
|
||||
border-left-color: transparent;
|
||||
border-right-color: transparent;
|
||||
animation: dtb-spinner 1500ms infinite linear;
|
||||
-o-animation: dtb-spinner 1500ms infinite linear;
|
||||
-ms-animation: dtb-spinner 1500ms infinite linear;
|
||||
-webkit-animation: dtb-spinner 1500ms infinite linear;
|
||||
-moz-animation: dtb-spinner 1500ms infinite linear;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes dtb-spinner {
|
||||
100%{ transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
@-o-keyframes dtb-spinner {
|
||||
100%{ -o-transform: rotate(360deg); transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
@-ms-keyframes dtb-spinner {
|
||||
100%{ -ms-transform: rotate(360deg); transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
@-webkit-keyframes dtb-spinner {
|
||||
100%{ -webkit-transform: rotate(360deg); transform: rotate(360deg); }
|
||||
}
|
||||
|
||||
@-moz-keyframes dtb-spinner {
|
||||
100%{ -moz-transform: rotate(360deg); transform: rotate(360deg); }
|
||||
}
|
||||
@ -1,206 +0,0 @@
|
||||
/*!
|
||||
* Column visibility buttons for Buttons and DataTables.
|
||||
* 2016 SpryMedia Ltd - datatables.net/license
|
||||
*/
|
||||
|
||||
(function( factory ){
|
||||
if ( typeof define === 'function' && define.amd ) {
|
||||
// AMD
|
||||
define( ['jquery', 'datatables.net', 'datatables.net-buttons'], function ( $ ) {
|
||||
return factory( $, window, document );
|
||||
} );
|
||||
}
|
||||
else if ( typeof exports === 'object' ) {
|
||||
// CommonJS
|
||||
module.exports = function (root, $) {
|
||||
if ( ! root ) {
|
||||
root = window;
|
||||
}
|
||||
|
||||
if ( ! $ || ! $.fn.dataTable ) {
|
||||
$ = require('datatables.net')(root, $).$;
|
||||
}
|
||||
|
||||
if ( ! $.fn.dataTable.Buttons ) {
|
||||
require('datatables.net-buttons')(root, $);
|
||||
}
|
||||
|
||||
return factory( $, root, root.document );
|
||||
};
|
||||
}
|
||||
else {
|
||||
// Browser
|
||||
factory( jQuery, window, document );
|
||||
}
|
||||
}(function( $, window, document, undefined ) {
|
||||
'use strict';
|
||||
var DataTable = $.fn.dataTable;
|
||||
|
||||
|
||||
$.extend( DataTable.ext.buttons, {
|
||||
// A collection of column visibility buttons
|
||||
colvis: function ( dt, conf ) {
|
||||
return {
|
||||
extend: 'collection',
|
||||
text: function ( dt ) {
|
||||
return dt.i18n( 'buttons.colvis', 'Column visibility' );
|
||||
},
|
||||
className: 'buttons-colvis',
|
||||
buttons: [ {
|
||||
extend: 'columnsToggle',
|
||||
columns: conf.columns,
|
||||
columnText: conf.columnText
|
||||
} ]
|
||||
};
|
||||
},
|
||||
|
||||
// Selected columns with individual buttons - toggle column visibility
|
||||
columnsToggle: function ( dt, conf ) {
|
||||
var columns = dt.columns( conf.columns ).indexes().map( function ( idx ) {
|
||||
return {
|
||||
extend: 'columnToggle',
|
||||
columns: idx,
|
||||
columnText: conf.columnText
|
||||
};
|
||||
} ).toArray();
|
||||
|
||||
return columns;
|
||||
},
|
||||
|
||||
// Single button to toggle column visibility
|
||||
columnToggle: function ( dt, conf ) {
|
||||
return {
|
||||
extend: 'columnVisibility',
|
||||
columns: conf.columns,
|
||||
columnText: conf.columnText
|
||||
};
|
||||
},
|
||||
|
||||
// Selected columns with individual buttons - set column visibility
|
||||
columnsVisibility: function ( dt, conf ) {
|
||||
var columns = dt.columns( conf.columns ).indexes().map( function ( idx ) {
|
||||
return {
|
||||
extend: 'columnVisibility',
|
||||
columns: idx,
|
||||
visibility: conf.visibility,
|
||||
columnText: conf.columnText
|
||||
};
|
||||
} ).toArray();
|
||||
|
||||
return columns;
|
||||
},
|
||||
|
||||
// Single button to set column visibility
|
||||
columnVisibility: {
|
||||
columns: undefined, // column selector
|
||||
text: function ( dt, button, conf ) {
|
||||
return conf._columnText( dt, conf );
|
||||
},
|
||||
className: 'buttons-columnVisibility',
|
||||
action: function ( e, dt, button, conf ) {
|
||||
var col = dt.columns( conf.columns );
|
||||
var curr = col.visible();
|
||||
|
||||
col.visible( conf.visibility !== undefined ?
|
||||
conf.visibility :
|
||||
! (curr.length ? curr[0] : false )
|
||||
);
|
||||
},
|
||||
init: function ( dt, button, conf ) {
|
||||
var that = this;
|
||||
|
||||
dt
|
||||
.on( 'column-visibility.dt'+conf.namespace, function (e, settings) {
|
||||
if ( ! settings.bDestroying ) {
|
||||
that.active( dt.column( conf.columns ).visible() );
|
||||
}
|
||||
} )
|
||||
.on( 'column-reorder.dt'+conf.namespace, function (e, settings, details) {
|
||||
// Don't rename buttons based on column name if the button
|
||||
// controls more than one column!
|
||||
if ( dt.columns( conf.columns ).count() !== 1 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( typeof conf.columns === 'number' ) {
|
||||
conf.columns = details.mapping[ conf.columns ];
|
||||
}
|
||||
|
||||
var col = dt.column( conf.columns );
|
||||
|
||||
that.text( conf._columnText( dt, conf ) );
|
||||
that.active( col.visible() );
|
||||
} );
|
||||
|
||||
this.active( dt.column( conf.columns ).visible() );
|
||||
},
|
||||
destroy: function ( dt, button, conf ) {
|
||||
dt
|
||||
.off( 'column-visibility.dt'+conf.namespace )
|
||||
.off( 'column-reorder.dt'+conf.namespace );
|
||||
},
|
||||
|
||||
_columnText: function ( dt, conf ) {
|
||||
// Use DataTables' internal data structure until this is presented
|
||||
// is a public API. The other option is to use
|
||||
// `$( column(col).node() ).text()` but the node might not have been
|
||||
// populated when Buttons is constructed.
|
||||
var idx = dt.column( conf.columns ).index();
|
||||
var title = dt.settings()[0].aoColumns[ idx ].sTitle
|
||||
.replace(/\n/g," ") // remove new lines
|
||||
.replace( /<.*?>/g, "" ) // strip HTML
|
||||
.replace(/^\s+|\s+$/g,""); // trim
|
||||
|
||||
return conf.columnText ?
|
||||
conf.columnText( dt, idx, title ) :
|
||||
title;
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
colvisRestore: {
|
||||
className: 'buttons-colvisRestore',
|
||||
|
||||
text: function ( dt ) {
|
||||
return dt.i18n( 'buttons.colvisRestore', 'Restore visibility' );
|
||||
},
|
||||
|
||||
init: function ( dt, button, conf ) {
|
||||
conf._visOriginal = dt.columns().indexes().map( function ( idx ) {
|
||||
return dt.column( idx ).visible();
|
||||
} ).toArray();
|
||||
},
|
||||
|
||||
action: function ( e, dt, button, conf ) {
|
||||
dt.columns().every( function ( i ) {
|
||||
// Take into account that ColReorder might have disrupted our
|
||||
// indexes
|
||||
var idx = dt.colReorder && dt.colReorder.transpose ?
|
||||
dt.colReorder.transpose( i, 'toOriginal' ) :
|
||||
i;
|
||||
|
||||
this.visible( conf._visOriginal[ idx ] );
|
||||
} );
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
colvisGroup: {
|
||||
className: 'buttons-colvisGroup',
|
||||
|
||||
action: function ( e, dt, button, conf ) {
|
||||
dt.columns( conf.show ).visible( true, false );
|
||||
dt.columns( conf.hide ).visible( false, false );
|
||||
|
||||
dt.columns.adjust();
|
||||
},
|
||||
|
||||
show: [],
|
||||
|
||||
hide: []
|
||||
}
|
||||
} );
|
||||
|
||||
|
||||
return DataTable.Buttons;
|
||||
}));
|
||||
@ -1,6 +0,0 @@
|
||||
(function(g){"function"===typeof define&&define.amd?define(["jquery","datatables.net","datatables.net-buttons"],function(d){return g(d,window,document)}):"object"===typeof exports?module.exports=function(d,e){d||(d=window);if(!e||!e.fn.dataTable)e=require("datatables.net")(d,e).$;e.fn.dataTable.Buttons||require("datatables.net-buttons")(d,e);return g(e,d,d.document)}:g(jQuery,window,document)})(function(g,d,e,h){d=g.fn.dataTable;g.extend(d.ext.buttons,{colvis:function(b,a){return{extend:"collection",
|
||||
text:function(a){return a.i18n("buttons.colvis","Column visibility")},className:"buttons-colvis",buttons:[{extend:"columnsToggle",columns:a.columns,columnText:a.columnText}]}},columnsToggle:function(b,a){return b.columns(a.columns).indexes().map(function(b){return{extend:"columnToggle",columns:b,columnText:a.columnText}}).toArray()},columnToggle:function(b,a){return{extend:"columnVisibility",columns:a.columns,columnText:a.columnText}},columnsVisibility:function(b,a){return b.columns(a.columns).indexes().map(function(b){return{extend:"columnVisibility",
|
||||
columns:b,visibility:a.visibility,columnText:a.columnText}}).toArray()},columnVisibility:{columns:h,text:function(b,a,c){return c._columnText(b,c)},className:"buttons-columnVisibility",action:function(b,a,c,f){b=a.columns(f.columns);a=b.visible();b.visible(f.visibility!==h?f.visibility:!(a.length&&a[0]))},init:function(b,a,c){var f=this;b.on("column-visibility.dt"+c.namespace,function(a,d){d.bDestroying||f.active(b.column(c.columns).visible())}).on("column-reorder.dt"+c.namespace,function(a,d,e){1===
|
||||
b.columns(c.columns).count()&&("number"===typeof c.columns&&(c.columns=e.mapping[c.columns]),a=b.column(c.columns),f.text(c._columnText(b,c)),f.active(a.visible()))});this.active(b.column(c.columns).visible())},destroy:function(b,a,c){b.off("column-visibility.dt"+c.namespace).off("column-reorder.dt"+c.namespace)},_columnText:function(b,a){var c=b.column(a.columns).index(),f=b.settings()[0].aoColumns[c].sTitle.replace(/\n/g," ").replace(/<.*?>/g,"").replace(/^\s+|\s+$/g,"");return a.columnText?a.columnText(b,
|
||||
c,f):f}},colvisRestore:{className:"buttons-colvisRestore",text:function(b){return b.i18n("buttons.colvisRestore","Restore visibility")},init:function(b,a,c){c._visOriginal=b.columns().indexes().map(function(a){return b.column(a).visible()}).toArray()},action:function(b,a,c,d){a.columns().every(function(b){b=a.colReorder&&a.colReorder.transpose?a.colReorder.transpose(b,"toOriginal"):b;this.visible(d._visOriginal[b])})}},colvisGroup:{className:"buttons-colvisGroup",action:function(b,a,c,d){a.columns(d.show).visible(!0,
|
||||
!1);a.columns(d.hide).visible(!1,!1);a.columns.adjust()},show:[],hide:[]}});return d.Buttons});
|
||||
@ -1,194 +0,0 @@
|
||||
/*!
|
||||
* Print button for Buttons and DataTables.
|
||||
* 2016 SpryMedia Ltd - datatables.net/license
|
||||
*/
|
||||
|
||||
(function( factory ){
|
||||
if ( typeof define === 'function' && define.amd ) {
|
||||
// AMD
|
||||
define( ['jquery', 'datatables.net', 'datatables.net-buttons'], function ( $ ) {
|
||||
return factory( $, window, document );
|
||||
} );
|
||||
}
|
||||
else if ( typeof exports === 'object' ) {
|
||||
// CommonJS
|
||||
module.exports = function (root, $) {
|
||||
if ( ! root ) {
|
||||
root = window;
|
||||
}
|
||||
|
||||
if ( ! $ || ! $.fn.dataTable ) {
|
||||
$ = require('datatables.net')(root, $).$;
|
||||
}
|
||||
|
||||
if ( ! $.fn.dataTable.Buttons ) {
|
||||
require('datatables.net-buttons')(root, $);
|
||||
}
|
||||
|
||||
return factory( $, root, root.document );
|
||||
};
|
||||
}
|
||||
else {
|
||||
// Browser
|
||||
factory( jQuery, window, document );
|
||||
}
|
||||
}(function( $, window, document, undefined ) {
|
||||
'use strict';
|
||||
var DataTable = $.fn.dataTable;
|
||||
|
||||
|
||||
var _link = document.createElement( 'a' );
|
||||
|
||||
/**
|
||||
* Clone link and style tags, taking into account the need to change the source
|
||||
* path.
|
||||
*
|
||||
* @param {node} el Element to convert
|
||||
*/
|
||||
var _styleToAbs = function( el ) {
|
||||
var url;
|
||||
var clone = $(el).clone()[0];
|
||||
var linkHost;
|
||||
|
||||
if ( clone.nodeName.toLowerCase() === 'link' ) {
|
||||
clone.href = _relToAbs( clone.href );
|
||||
}
|
||||
|
||||
return clone.outerHTML;
|
||||
};
|
||||
|
||||
/**
|
||||
* Convert a URL from a relative to an absolute address so it will work
|
||||
* correctly in the popup window which has no base URL.
|
||||
*
|
||||
* @param {string} href URL
|
||||
*/
|
||||
var _relToAbs = function( href ) {
|
||||
// Assign to a link on the original page so the browser will do all the
|
||||
// hard work of figuring out where the file actually is
|
||||
_link.href = href;
|
||||
var linkHost = _link.host;
|
||||
|
||||
// IE doesn't have a trailing slash on the host
|
||||
// Chrome has it on the pathname
|
||||
if ( linkHost.indexOf('/') === -1 && _link.pathname.indexOf('/') !== 0) {
|
||||
linkHost += '/';
|
||||
}
|
||||
|
||||
return _link.protocol+"//"+linkHost+_link.pathname+_link.search;
|
||||
};
|
||||
|
||||
|
||||
DataTable.ext.buttons.print = {
|
||||
className: 'buttons-print',
|
||||
|
||||
text: function ( dt ) {
|
||||
return dt.i18n( 'buttons.print', 'Print' );
|
||||
},
|
||||
|
||||
action: function ( e, dt, button, config ) {
|
||||
var data = dt.buttons.exportData( config.exportOptions );
|
||||
var addRow = function ( d, tag ) {
|
||||
var str = '<tr>';
|
||||
|
||||
for ( var i=0, ien=d.length ; i<ien ; i++ ) {
|
||||
str += '<'+tag+'>'+d[i]+'</'+tag+'>';
|
||||
}
|
||||
|
||||
return str + '</tr>';
|
||||
};
|
||||
|
||||
// Construct a table for printing
|
||||
var html = '<table class="'+dt.table().node().className+'">';
|
||||
|
||||
if ( config.header ) {
|
||||
html += '<thead>'+ addRow( data.header, 'th' ) +'</thead>';
|
||||
}
|
||||
|
||||
html += '<tbody>';
|
||||
for ( var i=0, ien=data.body.length ; i<ien ; i++ ) {
|
||||
html += addRow( data.body[i], 'td' );
|
||||
}
|
||||
html += '</tbody>';
|
||||
|
||||
if ( config.footer && data.footer ) {
|
||||
html += '<tfoot>'+ addRow( data.footer, 'th' ) +'</tfoot>';
|
||||
}
|
||||
|
||||
// Open a new window for the printable table
|
||||
var win = window.open( '', '' );
|
||||
var title = config.title;
|
||||
|
||||
if ( typeof title === 'function' ) {
|
||||
title = title();
|
||||
}
|
||||
|
||||
if ( title.indexOf( '*' ) !== -1 ) {
|
||||
title= title.replace( '*', $('title').text() );
|
||||
}
|
||||
|
||||
win.document.close();
|
||||
|
||||
// Inject the title and also a copy of the style and link tags from this
|
||||
// document so the table can retain its base styling. Note that we have
|
||||
// to use string manipulation as IE won't allow elements to be created
|
||||
// in the host document and then appended to the new window.
|
||||
var head = '<title>'+title+'</title>';
|
||||
$('style, link').each( function () {
|
||||
head += _styleToAbs( this );
|
||||
} );
|
||||
|
||||
try {
|
||||
win.document.head.innerHTML = head; // Work around for Edge
|
||||
}
|
||||
catch (e) {
|
||||
$(win.document.head).html( head ); // Old IE
|
||||
}
|
||||
|
||||
// Inject the table and other surrounding information
|
||||
win.document.body.innerHTML =
|
||||
'<h1>'+title+'</h1>'+
|
||||
'<div>'+
|
||||
(typeof config.message === 'function' ?
|
||||
config.message( dt, button, config ) :
|
||||
config.message
|
||||
)+
|
||||
'</div>'+
|
||||
html;
|
||||
|
||||
$(win.document.body).addClass('dt-print-view');
|
||||
|
||||
$('img', win.document.body).each( function ( i, img ) {
|
||||
img.setAttribute( 'src', _relToAbs( img.getAttribute('src') ) );
|
||||
} );
|
||||
|
||||
if ( config.customize ) {
|
||||
config.customize( win );
|
||||
}
|
||||
|
||||
setTimeout( function () {
|
||||
if ( config.autoPrint ) {
|
||||
win.print(); // blocking - so close will not
|
||||
win.close(); // execute until this is done
|
||||
}
|
||||
}, 250 );
|
||||
},
|
||||
|
||||
title: '*',
|
||||
|
||||
message: '',
|
||||
|
||||
exportOptions: {},
|
||||
|
||||
header: true,
|
||||
|
||||
footer: false,
|
||||
|
||||
autoPrint: true,
|
||||
|
||||
customize: null
|
||||
};
|
||||
|
||||
|
||||
return DataTable.Buttons;
|
||||
}));
|
||||
@ -1,4 +0,0 @@
|
||||
(function(d){"function"===typeof define&&define.amd?define(["jquery","datatables.net","datatables.net-buttons"],function(f){return d(f,window,document)}):"object"===typeof exports?module.exports=function(f,b){f||(f=window);if(!b||!b.fn.dataTable)b=require("datatables.net")(f,b).$;b.fn.dataTable.Buttons||require("datatables.net-buttons")(f,b);return d(b,f,f.document)}:d(jQuery,window,document)})(function(d,f,b){var i=d.fn.dataTable,h=b.createElement("a"),m=function(a){h.href=a;a=h.host;-1===a.indexOf("/")&&
|
||||
0!==h.pathname.indexOf("/")&&(a+="/");return h.protocol+"//"+a+h.pathname+h.search};i.ext.buttons.print={className:"buttons-print",text:function(a){return a.i18n("buttons.print","Print")},action:function(a,b,h,e){var c=b.buttons.exportData(e.exportOptions),k=function(a,c){for(var b="<tr>",d=0,e=a.length;d<e;d++)b+="<"+c+">"+a[d]+"</"+c+">";return b+"</tr>"},a='<table class="'+b.table().node().className+'">';e.header&&(a+="<thead>"+k(c.header,"th")+"</thead>");for(var a=a+"<tbody>",l=0,i=c.body.length;l<
|
||||
i;l++)a+=k(c.body[l],"td");a+="</tbody>";e.footer&&c.footer&&(a+="<tfoot>"+k(c.footer,"th")+"</tfoot>");var g=f.open("",""),c=e.title;"function"===typeof c&&(c=c());-1!==c.indexOf("*")&&(c=c.replace("*",d("title").text()));g.document.close();var j="<title>"+c+"</title>";d("style, link").each(function(){var a=j,b=d(this).clone()[0];"link"===b.nodeName.toLowerCase()&&(b.href=m(b.href));j=a+b.outerHTML});try{g.document.head.innerHTML=j}catch(n){d(g.document.head).html(j)}g.document.body.innerHTML="<h1>"+
|
||||
c+"</h1><div>"+("function"===typeof e.message?e.message(b,h,e):e.message)+"</div>"+a;d(g.document.body).addClass("dt-print-view");d("img",g.document.body).each(function(a,b){b.setAttribute("src",m(b.getAttribute("src")))});e.customize&&e.customize(g);setTimeout(function(){e.autoPrint&&(g.print(),g.close())},250)},title:"*",message:"",exportOptions:{},header:!0,footer:!1,autoPrint:!0,customize:null};return i.Buttons});
|
||||
@ -1,37 +0,0 @@
|
||||
/*!
|
||||
Buttons for DataTables 1.3.1
|
||||
©2016 SpryMedia Ltd - datatables.net/license
|
||||
*/
|
||||
(function(d){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(n){return d(n,window,document)}):"object"===typeof exports?module.exports=function(n,o){n||(n=window);if(!o||!o.fn.dataTable)o=require("datatables.net")(n,o).$;return d(o,n,n.document)}:d(jQuery,window,document)})(function(d,n,o,l){var i=d.fn.dataTable,u=0,v=0,j=i.ext.buttons,m=function(a,b){"undefined"===typeof b&&(b={});!0===b&&(b={});d.isArray(b)&&(b={buttons:b});this.c=d.extend(!0,{},m.defaults,b);
|
||||
b.buttons&&(this.c.buttons=b.buttons);this.s={dt:new i.Api(a),buttons:[],listenKeys:"",namespace:"dtb"+u++};this.dom={container:d("<"+this.c.dom.container.tag+"/>").addClass(this.c.dom.container.className)};this._constructor()};d.extend(m.prototype,{action:function(a,b){var c=this._nodeToButton(a);if(b===l)return c.conf.action;c.conf.action=b;return this},active:function(a,b){var c=this._nodeToButton(a),e=this.c.dom.button.active,c=d(c.node);if(b===l)return c.hasClass(e);c.toggleClass(e,b===l?!0:
|
||||
b);return this},add:function(a,b){var c=this.s.buttons;if("string"===typeof b){for(var e=b.split("-"),c=this.s,d=0,h=e.length-1;d<h;d++)c=c.buttons[1*e[d]];c=c.buttons;b=1*e[e.length-1]}this._expandButton(c,a,!1,b);this._draw();return this},container:function(){return this.dom.container},disable:function(a){a=this._nodeToButton(a);d(a.node).addClass(this.c.dom.button.disabled);return this},destroy:function(){d("body").off("keyup."+this.s.namespace);var a=this.s.buttons.slice(),b,c;b=0;for(c=a.length;b<
|
||||
c;b++)this.remove(a[b].node);this.dom.container.remove();a=this.s.dt.settings()[0];b=0;for(c=a.length;b<c;b++)if(a.inst===this){a.splice(b,1);break}return this},enable:function(a,b){if(!1===b)return this.disable(a);var c=this._nodeToButton(a);d(c.node).removeClass(this.c.dom.button.disabled);return this},name:function(){return this.c.name},node:function(a){a=this._nodeToButton(a);return d(a.node)},processing:function(a,b){var c=this._nodeToButton(a);if(b===l)return d(c.node).hasClass("processing");
|
||||
d(c.node).toggleClass("processing",b);return this},remove:function(a){var b=this._nodeToButton(a),c=this._nodeToHost(a),e=this.s.dt;if(b.buttons.length)for(var g=b.buttons.length-1;0<=g;g--)this.remove(b.buttons[g].node);b.conf.destroy&&b.conf.destroy.call(e.button(a),e,d(a),b.conf);this._removeKey(b.conf);d(b.node).remove();a=d.inArray(b,c);c.splice(a,1);return this},text:function(a,b){var c=this._nodeToButton(a),e=this.c.dom.collection.buttonLiner,e=c.inCollection&&e&&e.tag?e.tag:this.c.dom.buttonLiner.tag,
|
||||
g=this.s.dt,h=d(c.node),f=function(a){return"function"===typeof a?a(g,h,c.conf):a};if(b===l)return f(c.conf.text);c.conf.text=b;e?h.children(e).html(f(b)):h.html(f(b));return this},_constructor:function(){var a=this,b=this.s.dt,c=b.settings()[0],e=this.c.buttons;c._buttons||(c._buttons=[]);c._buttons.push({inst:this,name:this.c.name});for(var c=0,g=e.length;c<g;c++)this.add(e[c]);b.on("destroy",function(){a.destroy()});d("body").on("keyup."+this.s.namespace,function(b){if(!o.activeElement||o.activeElement===
|
||||
o.body){var c=String.fromCharCode(b.keyCode).toLowerCase();a.s.listenKeys.toLowerCase().indexOf(c)!==-1&&a._keypress(c,b)}})},_addKey:function(a){a.key&&(this.s.listenKeys+=d.isPlainObject(a.key)?a.key.key:a.key)},_draw:function(a,b){a||(a=this.dom.container,b=this.s.buttons);a.children().detach();for(var c=0,e=b.length;c<e;c++)a.append(b[c].inserter),b[c].buttons&&b[c].buttons.length&&this._draw(b[c].collection,b[c].buttons)},_expandButton:function(a,b,c,e){for(var g=this.s.dt,h=0,b=!d.isArray(b)?
|
||||
[b]:b,f=0,r=b.length;f<r;f++){var k=this._resolveExtends(b[f]);if(k)if(d.isArray(k))this._expandButton(a,k,c,e);else{var p=this._buildButton(k,c);if(p){e!==l?(a.splice(e,0,p),e++):a.push(p);if(p.conf.buttons){var s=this.c.dom.collection;p.collection=d("<"+s.tag+"/>").addClass(s.className).attr("role","menu");p.conf._collection=p.collection;this._expandButton(p.buttons,p.conf.buttons,!0,e)}k.init&&k.init.call(g.button(p.node),g,d(p.node),k);h++}}}},_buildButton:function(a,b){var c=this.c.dom.button,
|
||||
e=this.c.dom.buttonLiner,g=this.c.dom.collection,h=this.s.dt,f=function(b){return"function"===typeof b?b(h,k,a):b};b&&g.button&&(c=g.button);b&&g.buttonLiner&&(e=g.buttonLiner);if(a.available&&!a.available(h,a))return!1;var r=function(a,b,c,e){e.action.call(b.button(c),a,b,c,e);d(b.table().node()).triggerHandler("buttons-action.dt",[b.button(c),b,c,e])},k=d("<"+c.tag+"/>").addClass(c.className).attr("tabindex",this.s.dt.settings()[0].iTabIndex).attr("aria-controls",this.s.dt.table().node().id).on("click.dtb",
|
||||
function(b){b.preventDefault();!k.hasClass(c.disabled)&&a.action&&r(b,h,k,a);k.blur()}).on("keyup.dtb",function(b){b.keyCode===13&&!k.hasClass(c.disabled)&&a.action&&r(b,h,k,a)});"a"===c.tag.toLowerCase()&&k.attr("href","#");e.tag?(g=d("<"+e.tag+"/>").html(f(a.text)).addClass(e.className),"a"===e.tag.toLowerCase()&&g.attr("href","#"),k.append(g)):k.html(f(a.text));!1===a.enabled&&k.addClass(c.disabled);a.className&&k.addClass(a.className);a.titleAttr&&k.attr("title",f(a.titleAttr));a.namespace||(a.namespace=
|
||||
".dt-button-"+v++);e=(e=this.c.dom.buttonContainer)&&e.tag?d("<"+e.tag+"/>").addClass(e.className).append(k):k;this._addKey(a);return{conf:a,node:k.get(0),inserter:e,buttons:[],inCollection:b,collection:null}},_nodeToButton:function(a,b){b||(b=this.s.buttons);for(var c=0,e=b.length;c<e;c++){if(b[c].node===a)return b[c];if(b[c].buttons.length){var d=this._nodeToButton(a,b[c].buttons);if(d)return d}}},_nodeToHost:function(a,b){b||(b=this.s.buttons);for(var c=0,e=b.length;c<e;c++){if(b[c].node===a)return b;
|
||||
if(b[c].buttons.length){var d=this._nodeToHost(a,b[c].buttons);if(d)return d}}},_keypress:function(a,b){var c=function(e){for(var g=0,h=e.length;g<h;g++){var f=e[g].conf,r=e[g].node;if(f.key)if(f.key===a)d(r).click();else if(d.isPlainObject(f.key)&&f.key.key===a&&(!f.key.shiftKey||b.shiftKey))if(!f.key.altKey||b.altKey)if(!f.key.ctrlKey||b.ctrlKey)(!f.key.metaKey||b.metaKey)&&d(r).click();e[g].buttons.length&&c(e[g].buttons)}};c(this.s.buttons)},_removeKey:function(a){if(a.key){var b=d.isPlainObject(a.key)?
|
||||
a.key.key:a.key,a=this.s.listenKeys.split(""),b=d.inArray(b,a);a.splice(b,1);this.s.listenKeys=a.join("")}},_resolveExtends:function(a){for(var b=this.s.dt,c,e,g=function(c){for(var e=0;!d.isPlainObject(c)&&!d.isArray(c);){if(c===l)return;if("function"===typeof c){if(c=c(b,a),!c)return!1}else if("string"===typeof c){if(!j[c])throw"Unknown button type: "+c;c=j[c]}e++;if(30<e)throw"Buttons: Too many iterations";}return d.isArray(c)?c:d.extend({},c)},a=g(a);a&&a.extend;){if(!j[a.extend])throw"Cannot extend unknown button type: "+
|
||||
a.extend;var h=g(j[a.extend]);if(d.isArray(h))return h;if(!h)return!1;c=h.className;a=d.extend({},h,a);c&&a.className!==c&&(a.className=c+" "+a.className);var f=a.postfixButtons;if(f){a.buttons||(a.buttons=[]);c=0;for(e=f.length;c<e;c++)a.buttons.push(f[c]);a.postfixButtons=null}if(f=a.prefixButtons){a.buttons||(a.buttons=[]);c=0;for(e=f.length;c<e;c++)a.buttons.splice(c,0,f[c]);a.prefixButtons=null}a.extend=h.extend}return a}});m.background=function(a,b,c){c===l&&(c=400);a?d("<div/>").addClass(b).css("display",
|
||||
"none").appendTo("body").fadeIn(c):d("body > div."+b).fadeOut(c,function(){d(this).removeClass(b).remove()})};m.instanceSelector=function(a,b){if(!a)return d.map(b,function(a){return a.inst});var c=[],e=d.map(b,function(a){return a.name}),g=function(a){if(d.isArray(a))for(var f=0,r=a.length;f<r;f++)g(a[f]);else"string"===typeof a?-1!==a.indexOf(",")?g(a.split(",")):(a=d.inArray(d.trim(a),e),-1!==a&&c.push(b[a].inst)):"number"===typeof a&&c.push(b[a].inst)};g(a);return c};m.buttonSelector=function(a,
|
||||
b){for(var c=[],e=function(a,b,c){for(var d,g,f=0,h=b.length;f<h;f++)if(d=b[f])g=c!==l?c+f:f+"",a.push({node:d.node,name:d.conf.name,idx:g}),d.buttons&&e(a,d.buttons,g+"-")},g=function(a,b){var f,h,i=[];e(i,b.s.buttons);f=d.map(i,function(a){return a.node});if(d.isArray(a)||a instanceof d){f=0;for(h=a.length;f<h;f++)g(a[f],b)}else if(null===a||a===l||"*"===a){f=0;for(h=i.length;f<h;f++)c.push({inst:b,node:i[f].node})}else if("number"===typeof a)c.push({inst:b,node:b.s.buttons[a].node});else if("string"===
|
||||
typeof a)if(-1!==a.indexOf(",")){i=a.split(",");f=0;for(h=i.length;f<h;f++)g(d.trim(i[f]),b)}else if(a.match(/^\d+(\-\d+)*$/))f=d.map(i,function(a){return a.idx}),c.push({inst:b,node:i[d.inArray(a,f)].node});else if(-1!==a.indexOf(":name")){var j=a.replace(":name","");f=0;for(h=i.length;f<h;f++)i[f].name===j&&c.push({inst:b,node:i[f].node})}else d(f).filter(a).each(function(){c.push({inst:b,node:this})});else"object"===typeof a&&a.nodeName&&(i=d.inArray(a,f),-1!==i&&c.push({inst:b,node:f[i]}))},h=
|
||||
0,f=a.length;h<f;h++)g(b,a[h]);return c};m.defaults={buttons:["copy","excel","csv","pdf","print"],name:"main",tabIndex:0,dom:{container:{tag:"div",className:"dt-buttons"},collection:{tag:"div",className:"dt-button-collection"},button:{tag:"a",className:"dt-button",active:"active",disabled:"disabled"},buttonLiner:{tag:"span",className:""}}};m.version="1.3.1";d.extend(j,{collection:{text:function(a){return a.i18n("buttons.collection","Collection")},className:"buttons-collection",action:function(a,b,
|
||||
c,e){var a=c.offset(),g=d(b.table().container()),h=!1;d("div.dt-button-background").length&&(h=d(".dt-button-collection").offset(),d("body").trigger("click.dtb-collection"));e._collection.addClass(e.collectionLayout).css("display","none").appendTo("body").fadeIn(e.fade);var f=e._collection.css("position");h&&"absolute"===f?e._collection.css({top:h.top,left:h.left}):"absolute"===f?(e._collection.css({top:a.top+c.outerHeight(),left:a.left}),c=a.left+e._collection.outerWidth(),g=g.offset().left+g.width(),
|
||||
c>g&&e._collection.css("left",a.left-(c-g))):(a=e._collection.height()/2,a>d(n).height()/2&&(a=d(n).height()/2),e._collection.css("marginTop",-1*a));e.background&&m.background(!0,e.backgroundClassName,e.fade);setTimeout(function(){d("div.dt-button-background").on("click.dtb-collection",function(){});d("body").on("click.dtb-collection",function(a){var c=d.fn.addBack?"addBack":"andSelf";if(!d(a.target).parents()[c]().filter(e._collection).length){e._collection.fadeOut(e.fade,function(){e._collection.detach()});
|
||||
d("div.dt-button-background").off("click.dtb-collection");m.background(false,e.backgroundClassName,e.fade);d("body").off("click.dtb-collection");b.off("buttons-action.b-internal")}})},10);if(e.autoClose)b.on("buttons-action.b-internal",function(){d("div.dt-button-background").click()})},background:!0,collectionLayout:"",backgroundClassName:"dt-button-background",autoClose:!1,fade:400},copy:function(a,b){if(j.copyHtml5)return"copyHtml5";if(j.copyFlash&&j.copyFlash.available(a,b))return"copyFlash"},
|
||||
csv:function(a,b){if(j.csvHtml5&&j.csvHtml5.available(a,b))return"csvHtml5";if(j.csvFlash&&j.csvFlash.available(a,b))return"csvFlash"},excel:function(a,b){if(j.excelHtml5&&j.excelHtml5.available(a,b))return"excelHtml5";if(j.excelFlash&&j.excelFlash.available(a,b))return"excelFlash"},pdf:function(a,b){if(j.pdfHtml5&&j.pdfHtml5.available(a,b))return"pdfHtml5";if(j.pdfFlash&&j.pdfFlash.available(a,b))return"pdfFlash"},pageLength:function(a){var a=a.settings()[0].aLengthMenu,b=d.isArray(a[0])?a[0]:a,
|
||||
c=d.isArray(a[0])?a[1]:a,e=function(a){return a.i18n("buttons.pageLength",{"-1":"Show all rows",_:"Show %d rows"},a.page.len())};return{extend:"collection",text:e,className:"buttons-page-length",autoClose:!0,buttons:d.map(b,function(a,b){return{text:c[b],className:"button-page-length",action:function(b,c){c.page.len(a).draw()},init:function(b,c,d){var e=this,c=function(){e.active(b.page.len()===a)};b.on("length.dt"+d.namespace,c);c()},destroy:function(a,b,c){a.off("length.dt"+c.namespace)}}}),init:function(a,
|
||||
b,c){var d=this;a.on("length.dt"+c.namespace,function(){d.text(e(a))})},destroy:function(a,b,c){a.off("length.dt"+c.namespace)}}}});i.Api.register("buttons()",function(a,b){b===l&&(b=a,a=l);this.selector.buttonGroup=a;var c=this.iterator(!0,"table",function(c){if(c._buttons)return m.buttonSelector(m.instanceSelector(a,c._buttons),b)},!0);c._groupSelector=a;return c});i.Api.register("button()",function(a,b){var c=this.buttons(a,b);1<c.length&&c.splice(1,c.length);return c});i.Api.registerPlural("buttons().active()",
|
||||
"button().active()",function(a){return a===l?this.map(function(a){return a.inst.active(a.node)}):this.each(function(b){b.inst.active(b.node,a)})});i.Api.registerPlural("buttons().action()","button().action()",function(a){return a===l?this.map(function(a){return a.inst.action(a.node)}):this.each(function(b){b.inst.action(b.node,a)})});i.Api.register(["buttons().enable()","button().enable()"],function(a){return this.each(function(b){b.inst.enable(b.node,a)})});i.Api.register(["buttons().disable()",
|
||||
"button().disable()"],function(){return this.each(function(a){a.inst.disable(a.node)})});i.Api.registerPlural("buttons().nodes()","button().node()",function(){var a=d();d(this.each(function(b){a=a.add(b.inst.node(b.node))}));return a});i.Api.registerPlural("buttons().processing()","button().processing()",function(a){return a===l?this.map(function(a){return a.inst.processing(a.node)}):this.each(function(b){b.inst.processing(b.node,a)})});i.Api.registerPlural("buttons().text()","button().text()",function(a){return a===
|
||||
l?this.map(function(a){return a.inst.text(a.node)}):this.each(function(b){b.inst.text(b.node,a)})});i.Api.registerPlural("buttons().trigger()","button().trigger()",function(){return this.each(function(a){a.inst.node(a.node).trigger("click")})});i.Api.registerPlural("buttons().containers()","buttons().container()",function(){var a=d(),b=this._groupSelector;this.iterator(!0,"table",function(c){if(c._buttons)for(var c=m.instanceSelector(b,c._buttons),d=0,g=c.length;d<g;d++)a=a.add(c[d].container())});
|
||||
return a});i.Api.register("button().add()",function(a,b){var c=this.context;c.length&&(c=m.instanceSelector(this._groupSelector,c[0]._buttons),c.length&&c[0].add(b,a));return this.button(this._groupSelector,a)});i.Api.register("buttons().destroy()",function(){this.pluck("inst").unique().each(function(a){a.destroy()});return this});i.Api.registerPlural("buttons().remove()","buttons().remove()",function(){this.each(function(a){a.inst.remove(a.node)});return this});var q;i.Api.register("buttons.info()",
|
||||
function(a,b,c){var e=this;if(!1===a)return d("#datatables_buttons_info").fadeOut(function(){d(this).remove()}),clearTimeout(q),q=null,this;q&&clearTimeout(q);d("#datatables_buttons_info").length&&d("#datatables_buttons_info").remove();d('<div id="datatables_buttons_info" class="dt-button-info"/>').html(a?"<h2>"+a+"</h2>":"").append(d("<div/>")["string"===typeof b?"html":"append"](b)).css("display","none").appendTo("body").fadeIn();c!==l&&0!==c&&(q=setTimeout(function(){e.buttons.info(!1)},c));return this});
|
||||
i.Api.register("buttons.exportData()",function(a){if(this.context.length){for(var b=new i.Api(this.context[0]),c=d.extend(!0,{},{rows:null,columns:"",modifier:{search:"applied",order:"applied"},orthogonal:"display",stripHtml:!0,stripNewlines:!0,decodeEntities:!0,trim:!0,format:{header:function(a){return e(a)},footer:function(a){return e(a)},body:function(a){return e(a)}}},a),e=function(a){if("string"!==typeof a)return a;a=a.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,"");c.stripHtml&&
|
||||
(a=a.replace(/<[^>]*>/g,""));c.trim&&(a=a.replace(/^\s+|\s+$/g,""));c.stripNewlines&&(a=a.replace(/\n/g," "));c.decodeEntities&&(t.innerHTML=a,a=t.value);return a},a=b.columns(c.columns).indexes().map(function(a){var d=b.column(a).header();return c.format.header(d.innerHTML,a,d)}).toArray(),g=b.table().footer()?b.columns(c.columns).indexes().map(function(a){var d=b.column(a).footer();return c.format.footer(d?d.innerHTML:"",a,d)}).toArray():null,h=b.rows(c.rows,c.modifier).indexes().toArray(),f=b.cells(h,
|
||||
c.columns),h=f.render(c.orthogonal).toArray(),f=f.nodes().toArray(),j=a.length,k=0<j?h.length/j:0,m=Array(k),l=0,n=0;n<k;n++){for(var o=Array(j),q=0;q<j;q++)o[q]=c.format.body(h[l],n,q,f[l]),l++;m[n]=o}return{header:a,footer:g,body:m}}});var t=d("<textarea/>")[0];d.fn.dataTable.Buttons=m;d.fn.DataTable.Buttons=m;d(o).on("init.dt plugin-init.dt",function(a,b){if("dt"===a.namespace){var c=b.oInit.buttons||i.defaults.buttons;c&&!b._buttons&&(new m(b,c)).container()}});i.ext.feature.push({fnInit:function(a){var a=
|
||||
new i.Api(a),b=a.init().buttons||i.defaults.buttons;return(new m(a,b)).container()},cFeature:"B"});return m});
|
||||
@ -1,455 +0,0 @@
|
||||
/*
|
||||
* Table styles
|
||||
*/
|
||||
table.dataTable {
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
clear: both;
|
||||
border-collapse: separate;
|
||||
border-spacing: 0;
|
||||
/*
|
||||
* Header and footer styles
|
||||
*/
|
||||
/*
|
||||
* Body styles
|
||||
*/
|
||||
}
|
||||
table.dataTable thead th,
|
||||
table.dataTable tfoot th {
|
||||
font-weight: bold;
|
||||
}
|
||||
table.dataTable thead th,
|
||||
table.dataTable thead td {
|
||||
padding: 10px 18px;
|
||||
border-bottom: 1px solid #111;
|
||||
}
|
||||
table.dataTable thead th:active,
|
||||
table.dataTable thead td:active {
|
||||
outline: none;
|
||||
}
|
||||
table.dataTable tfoot th,
|
||||
table.dataTable tfoot td {
|
||||
padding: 10px 18px 6px 18px;
|
||||
border-top: 1px solid #111;
|
||||
}
|
||||
table.dataTable thead .sorting,
|
||||
table.dataTable thead .sorting_asc,
|
||||
table.dataTable thead .sorting_desc,
|
||||
table.dataTable thead .sorting_asc_disabled,
|
||||
table.dataTable thead .sorting_desc_disabled {
|
||||
cursor: pointer;
|
||||
*cursor: hand;
|
||||
}
|
||||
table.dataTable thead .sorting,
|
||||
table.dataTable thead .sorting_asc,
|
||||
table.dataTable thead .sorting_desc,
|
||||
table.dataTable thead .sorting_asc_disabled,
|
||||
table.dataTable thead .sorting_desc_disabled {
|
||||
background-repeat: no-repeat;
|
||||
background-position: center right;
|
||||
}
|
||||
table.dataTable thead .sorting {
|
||||
background-image: url("../images/sort_both.png");
|
||||
}
|
||||
table.dataTable thead .sorting_asc {
|
||||
background-image: url("../images/sort_asc.png");
|
||||
}
|
||||
table.dataTable thead .sorting_desc {
|
||||
background-image: url("../images/sort_desc.png");
|
||||
}
|
||||
table.dataTable thead .sorting_asc_disabled {
|
||||
background-image: url("../images/sort_asc_disabled.png");
|
||||
}
|
||||
table.dataTable thead .sorting_desc_disabled {
|
||||
background-image: url("../images/sort_desc_disabled.png");
|
||||
}
|
||||
table.dataTable tbody tr {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
table.dataTable tbody tr.selected {
|
||||
background-color: #B0BED9;
|
||||
}
|
||||
table.dataTable tbody th,
|
||||
table.dataTable tbody td {
|
||||
padding: 8px 10px;
|
||||
}
|
||||
table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td {
|
||||
border-top: 1px solid #ddd;
|
||||
}
|
||||
table.dataTable.row-border tbody tr:first-child th,
|
||||
table.dataTable.row-border tbody tr:first-child td, table.dataTable.display tbody tr:first-child th,
|
||||
table.dataTable.display tbody tr:first-child td {
|
||||
border-top: none;
|
||||
}
|
||||
table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td {
|
||||
border-top: 1px solid #ddd;
|
||||
border-right: 1px solid #ddd;
|
||||
}
|
||||
table.dataTable.cell-border tbody tr th:first-child,
|
||||
table.dataTable.cell-border tbody tr td:first-child {
|
||||
border-left: 1px solid #ddd;
|
||||
}
|
||||
table.dataTable.cell-border tbody tr:first-child th,
|
||||
table.dataTable.cell-border tbody tr:first-child td {
|
||||
border-top: none;
|
||||
}
|
||||
table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
table.dataTable.stripe tbody tr.odd.selected, table.dataTable.display tbody tr.odd.selected {
|
||||
background-color: #acbad4;
|
||||
}
|
||||
table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover {
|
||||
background-color: #f6f6f6;
|
||||
}
|
||||
table.dataTable.hover tbody tr:hover.selected, table.dataTable.display tbody tr:hover.selected {
|
||||
background-color: #aab7d1;
|
||||
}
|
||||
table.dataTable.order-column tbody tr > .sorting_1,
|
||||
table.dataTable.order-column tbody tr > .sorting_2,
|
||||
table.dataTable.order-column tbody tr > .sorting_3, table.dataTable.display tbody tr > .sorting_1,
|
||||
table.dataTable.display tbody tr > .sorting_2,
|
||||
table.dataTable.display tbody tr > .sorting_3 {
|
||||
background-color: #fafafa;
|
||||
}
|
||||
table.dataTable.order-column tbody tr.selected > .sorting_1,
|
||||
table.dataTable.order-column tbody tr.selected > .sorting_2,
|
||||
table.dataTable.order-column tbody tr.selected > .sorting_3, table.dataTable.display tbody tr.selected > .sorting_1,
|
||||
table.dataTable.display tbody tr.selected > .sorting_2,
|
||||
table.dataTable.display tbody tr.selected > .sorting_3 {
|
||||
background-color: #acbad5;
|
||||
}
|
||||
table.dataTable.display tbody tr.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 {
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
table.dataTable.display tbody tr.odd > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 {
|
||||
background-color: #f3f3f3;
|
||||
}
|
||||
table.dataTable.display tbody tr.odd > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 {
|
||||
background-color: whitesmoke;
|
||||
}
|
||||
table.dataTable.display tbody tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_1 {
|
||||
background-color: #a6b4cd;
|
||||
}
|
||||
table.dataTable.display tbody tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_2 {
|
||||
background-color: #a8b5cf;
|
||||
}
|
||||
table.dataTable.display tbody tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_3 {
|
||||
background-color: #a9b7d1;
|
||||
}
|
||||
table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 {
|
||||
background-color: #fafafa;
|
||||
}
|
||||
table.dataTable.display tbody tr.even > .sorting_2, table.dataTable.order-column.stripe tbody tr.even > .sorting_2 {
|
||||
background-color: #fcfcfc;
|
||||
}
|
||||
table.dataTable.display tbody tr.even > .sorting_3, table.dataTable.order-column.stripe tbody tr.even > .sorting_3 {
|
||||
background-color: #fefefe;
|
||||
}
|
||||
table.dataTable.display tbody tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_1 {
|
||||
background-color: #acbad5;
|
||||
}
|
||||
table.dataTable.display tbody tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_2 {
|
||||
background-color: #aebcd6;
|
||||
}
|
||||
table.dataTable.display tbody tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_3 {
|
||||
background-color: #afbdd8;
|
||||
}
|
||||
table.dataTable.display tbody tr:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1 {
|
||||
background-color: #eaeaea;
|
||||
}
|
||||
table.dataTable.display tbody tr:hover > .sorting_2, table.dataTable.order-column.hover tbody tr:hover > .sorting_2 {
|
||||
background-color: #ececec;
|
||||
}
|
||||
table.dataTable.display tbody tr:hover > .sorting_3, table.dataTable.order-column.hover tbody tr:hover > .sorting_3 {
|
||||
background-color: #efefef;
|
||||
}
|
||||
table.dataTable.display tbody tr:hover.selected > .sorting_1, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1 {
|
||||
background-color: #a2aec7;
|
||||
}
|
||||
table.dataTable.display tbody tr:hover.selected > .sorting_2, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2 {
|
||||
background-color: #a3b0c9;
|
||||
}
|
||||
table.dataTable.display tbody tr:hover.selected > .sorting_3, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3 {
|
||||
background-color: #a5b2cb;
|
||||
}
|
||||
table.dataTable.no-footer {
|
||||
border-bottom: 1px solid #111;
|
||||
}
|
||||
table.dataTable.nowrap th, table.dataTable.nowrap td {
|
||||
white-space: nowrap;
|
||||
}
|
||||
table.dataTable.compact thead th,
|
||||
table.dataTable.compact thead td {
|
||||
padding: 4px 17px 4px 4px;
|
||||
}
|
||||
table.dataTable.compact tfoot th,
|
||||
table.dataTable.compact tfoot td {
|
||||
padding: 4px;
|
||||
}
|
||||
table.dataTable.compact tbody th,
|
||||
table.dataTable.compact tbody td {
|
||||
padding: 4px;
|
||||
}
|
||||
table.dataTable th.dt-left,
|
||||
table.dataTable td.dt-left {
|
||||
text-align: left;
|
||||
}
|
||||
table.dataTable th.dt-center,
|
||||
table.dataTable td.dt-center,
|
||||
table.dataTable td.dataTables_empty {
|
||||
text-align: center;
|
||||
}
|
||||
table.dataTable th.dt-right,
|
||||
table.dataTable td.dt-right {
|
||||
text-align: right;
|
||||
}
|
||||
table.dataTable th.dt-justify,
|
||||
table.dataTable td.dt-justify {
|
||||
text-align: justify;
|
||||
}
|
||||
table.dataTable th.dt-nowrap,
|
||||
table.dataTable td.dt-nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
table.dataTable thead th.dt-head-left,
|
||||
table.dataTable thead td.dt-head-left,
|
||||
table.dataTable tfoot th.dt-head-left,
|
||||
table.dataTable tfoot td.dt-head-left {
|
||||
text-align: left;
|
||||
}
|
||||
table.dataTable thead th.dt-head-center,
|
||||
table.dataTable thead td.dt-head-center,
|
||||
table.dataTable tfoot th.dt-head-center,
|
||||
table.dataTable tfoot td.dt-head-center {
|
||||
text-align: center;
|
||||
}
|
||||
table.dataTable thead th.dt-head-right,
|
||||
table.dataTable thead td.dt-head-right,
|
||||
table.dataTable tfoot th.dt-head-right,
|
||||
table.dataTable tfoot td.dt-head-right {
|
||||
text-align: right;
|
||||
}
|
||||
table.dataTable thead th.dt-head-justify,
|
||||
table.dataTable thead td.dt-head-justify,
|
||||
table.dataTable tfoot th.dt-head-justify,
|
||||
table.dataTable tfoot td.dt-head-justify {
|
||||
text-align: justify;
|
||||
}
|
||||
table.dataTable thead th.dt-head-nowrap,
|
||||
table.dataTable thead td.dt-head-nowrap,
|
||||
table.dataTable tfoot th.dt-head-nowrap,
|
||||
table.dataTable tfoot td.dt-head-nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
table.dataTable tbody th.dt-body-left,
|
||||
table.dataTable tbody td.dt-body-left {
|
||||
text-align: left;
|
||||
}
|
||||
table.dataTable tbody th.dt-body-center,
|
||||
table.dataTable tbody td.dt-body-center {
|
||||
text-align: center;
|
||||
}
|
||||
table.dataTable tbody th.dt-body-right,
|
||||
table.dataTable tbody td.dt-body-right {
|
||||
text-align: right;
|
||||
}
|
||||
table.dataTable tbody th.dt-body-justify,
|
||||
table.dataTable tbody td.dt-body-justify {
|
||||
text-align: justify;
|
||||
}
|
||||
table.dataTable tbody th.dt-body-nowrap,
|
||||
table.dataTable tbody td.dt-body-nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
table.dataTable,
|
||||
table.dataTable th,
|
||||
table.dataTable td {
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
/*
|
||||
* Control feature layout
|
||||
*/
|
||||
.dataTables_wrapper {
|
||||
position: relative;
|
||||
clear: both;
|
||||
*zoom: 1;
|
||||
zoom: 1;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_length {
|
||||
float: left;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_filter {
|
||||
float: right;
|
||||
text-align: right;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_filter input {
|
||||
margin-left: 0.5em;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_info {
|
||||
clear: both;
|
||||
float: left;
|
||||
padding-top: 0.755em;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_paginate {
|
||||
float: right;
|
||||
text-align: right;
|
||||
padding-top: 0.25em;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button {
|
||||
box-sizing: border-box;
|
||||
display: inline-block;
|
||||
min-width: 1.5em;
|
||||
padding: 0.5em 1em;
|
||||
margin-left: 2px;
|
||||
text-align: center;
|
||||
text-decoration: none !important;
|
||||
cursor: pointer;
|
||||
*cursor: hand;
|
||||
color: #333 !important;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 2px;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
|
||||
color: #333 !important;
|
||||
border: 1px solid #979797;
|
||||
background-color: white;
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #dcdcdc));
|
||||
/* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, white 0%, #dcdcdc 100%);
|
||||
/* Chrome10+,Safari5.1+ */
|
||||
background: -moz-linear-gradient(top, white 0%, #dcdcdc 100%);
|
||||
/* FF3.6+ */
|
||||
background: -ms-linear-gradient(top, white 0%, #dcdcdc 100%);
|
||||
/* IE10+ */
|
||||
background: -o-linear-gradient(top, white 0%, #dcdcdc 100%);
|
||||
/* Opera 11.10+ */
|
||||
background: linear-gradient(to bottom, white 0%, #dcdcdc 100%);
|
||||
/* W3C */
|
||||
}
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
|
||||
cursor: default;
|
||||
color: #666 !important;
|
||||
border: 1px solid transparent;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
|
||||
color: white !important;
|
||||
border: 1px solid #111;
|
||||
background-color: #585858;
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));
|
||||
/* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, #585858 0%, #111 100%);
|
||||
/* Chrome10+,Safari5.1+ */
|
||||
background: -moz-linear-gradient(top, #585858 0%, #111 100%);
|
||||
/* FF3.6+ */
|
||||
background: -ms-linear-gradient(top, #585858 0%, #111 100%);
|
||||
/* IE10+ */
|
||||
background: -o-linear-gradient(top, #585858 0%, #111 100%);
|
||||
/* Opera 11.10+ */
|
||||
background: linear-gradient(to bottom, #585858 0%, #111 100%);
|
||||
/* W3C */
|
||||
}
|
||||
.dataTables_wrapper .dataTables_paginate .paginate_button:active {
|
||||
outline: none;
|
||||
background-color: #2b2b2b;
|
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));
|
||||
/* Chrome,Safari4+ */
|
||||
background: -webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
|
||||
/* Chrome10+,Safari5.1+ */
|
||||
background: -moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
|
||||
/* FF3.6+ */
|
||||
background: -ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
|
||||
/* IE10+ */
|
||||
background: -o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
|
||||
/* Opera 11.10+ */
|
||||
background: linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);
|
||||
/* W3C */
|
||||
box-shadow: inset 0 0 3px #111;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_paginate .ellipsis {
|
||||
padding: 0 1em;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_processing {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
margin-left: -50%;
|
||||
margin-top: -25px;
|
||||
padding-top: 20px;
|
||||
text-align: center;
|
||||
font-size: 1.2em;
|
||||
background-color: white;
|
||||
background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), color-stop(100%, rgba(255, 255, 255, 0)));
|
||||
background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
|
||||
background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
|
||||
background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
|
||||
background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
|
||||
background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
|
||||
}
|
||||
.dataTables_wrapper .dataTables_length,
|
||||
.dataTables_wrapper .dataTables_filter,
|
||||
.dataTables_wrapper .dataTables_info,
|
||||
.dataTables_wrapper .dataTables_processing,
|
||||
.dataTables_wrapper .dataTables_paginate {
|
||||
color: #333;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_scroll {
|
||||
clear: both;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
|
||||
*margin-top: -1px;
|
||||
-webkit-overflow-scrolling: touch;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td {
|
||||
vertical-align: middle;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > th > div.dataTables_sizing,
|
||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > thead > tr > td > div.dataTables_sizing, .dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > th > div.dataTables_sizing,
|
||||
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody > table > tbody > tr > td > div.dataTables_sizing {
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
margin: 0 !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
.dataTables_wrapper.no-footer .dataTables_scrollBody {
|
||||
border-bottom: 1px solid #111;
|
||||
}
|
||||
.dataTables_wrapper.no-footer div.dataTables_scrollHead > table,
|
||||
.dataTables_wrapper.no-footer div.dataTables_scrollBody > table {
|
||||
border-bottom: none;
|
||||
}
|
||||
.dataTables_wrapper:after {
|
||||
visibility: hidden;
|
||||
display: block;
|
||||
content: "";
|
||||
clear: both;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 767px) {
|
||||
.dataTables_wrapper .dataTables_info,
|
||||
.dataTables_wrapper .dataTables_paginate {
|
||||
float: none;
|
||||
text-align: center;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_paginate {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 640px) {
|
||||
.dataTables_wrapper .dataTables_length,
|
||||
.dataTables_wrapper .dataTables_filter {
|
||||
float: none;
|
||||
text-align: center;
|
||||
}
|
||||
.dataTables_wrapper .dataTables_filter {
|
||||
margin-top: 0.5em;
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 160 B |
|
Before Width: | Height: | Size: 148 B |
|
Before Width: | Height: | Size: 201 B |
|
Before Width: | Height: | Size: 158 B |
|
Before Width: | Height: | Size: 146 B |
@ -1,167 +0,0 @@
|
||||
/*!
|
||||
DataTables 1.10.15
|
||||
©2008-2017 SpryMedia Ltd - datatables.net/license
|
||||
*/
|
||||
(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(E){return h(E,window,document)}):"object"===typeof exports?module.exports=function(E,H){E||(E=window);H||(H="undefined"!==typeof window?require("jquery"):require("jquery")(E));return h(H,E,E.document)}:h(jQuery,window,document)})(function(h,E,H,k){function Y(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()),
|
||||
d[c]=e,"o"===b[1]&&Y(a[e])});a._hungarianMap=d}function J(a,b,c){a._hungarianMap||Y(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),J(a[d],b[d],c)):b[d]=b[e]})}function Fa(a){var b=m.defaults.oLanguage,c=a.sZeroRecords;!a.sEmptyTable&&(c&&"No data available in table"===b.sEmptyTable)&&F(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(c&&"Loading..."===b.sLoadingRecords)&&F(a,a,"sZeroRecords","sLoadingRecords");
|
||||
a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&fb(a)}function gb(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":"");"boolean"===typeof a.scrollX&&(a.scrollX=
|
||||
a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b<c;b++)a[b]&&J(m.models.oSearch,a[b])}function hb(a){A(a,"orderable","bSortable");A(a,"orderData","aDataSort");A(a,"orderSequence","asSorting");A(a,"orderDataType","sortDataType");var b=a.aDataSort;"number"===typeof b&&!h.isArray(b)&&(a.aDataSort=[b])}function ib(a){if(!m.__browser){var b={};m.__browser=b;var c=h("<div/>").css({position:"fixed",top:0,left:-1*h(E).scrollLeft(),height:1,width:1,overflow:"hidden"}).append(h("<div/>").css({position:"absolute",
|
||||
top:1,left:1,width:100,overflow:"scroll"}).append(h("<div/>").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,m.__browser);a.oScroll.iBarWidth=m.__browser.barWidth}function jb(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!==
|
||||
e;)a.hasOwnProperty(d)&&(g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Ga(a,b){var c=m.defaults.column,d=a.aoColumns.length,c=h.extend({},m.models.oColumn,c,{nTh:b?b:H.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},m.models.oSearch,c[d]);la(a,d,h(b).data())}function la(a,b,c){var b=a.aoColumns[b],d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=
|
||||
e.attr("width")||null;var f=(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(hb(c),J(m.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),h.extend(b,c),F(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),F(b,c,"aDataSort"));var g=b.mData,j=R(g),i=b.mRender?R(b.mRender):null,c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")};
|
||||
b._bAttrSrc=h.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return S(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=
|
||||
d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function Z(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Ha(a);for(var c=0,d=b.length;c<d;c++)b[c].nTh.style.width=b[c].sWidth}b=a.oScroll;(""!==b.sY||""!==b.sX)&&ma(a);s(a,null,"column-sizing",[a])}function $(a,b){var c=na(a,"bVisible");return"number"===typeof c[b]?c[b]:null}function aa(a,b){var c=na(a,"bVisible"),c=h.inArray(b,
|
||||
c);return-1!==c?c:null}function ba(a){var b=0;h.each(a.aoColumns,function(a,d){d.bVisible&&"none"!==h(d.nTh).css("display")&&b++});return b}function na(a,b){var c=[];h.map(a.aoColumns,function(a,e){a[b]&&c.push(e)});return c}function Ia(a){var b=a.aoColumns,c=a.aoData,d=m.ext.type.detect,e,f,g,j,i,h,l,q,r;e=0;for(f=b.length;e<f;e++)if(l=b[e],r=[],!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){g=0;for(j=d.length;g<j;g++){i=0;for(h=c.length;i<h;i++){r[i]===k&&(r[i]=B(a,i,e,"type"));
|
||||
q=d[g](r[i],a);if(!q&&g!==d.length-1)break;if("html"===q)break}if(q){l.sType=q;break}}l.sType||(l.sType="string")}}function kb(a,b,c,d){var e,f,g,j,i,n,l=a.aoColumns;if(b)for(e=b.length-1;0<=e;e--){n=b[e];var q=n.targets!==k?n.targets:n.aTargets;h.isArray(q)||(q=[q]);f=0;for(g=q.length;f<g;f++)if("number"===typeof q[f]&&0<=q[f]){for(;l.length<=q[f];)Ga(a);d(q[f],n)}else if("number"===typeof q[f]&&0>q[f])d(l.length+q[f],n);else if("string"===typeof q[f]){j=0;for(i=l.length;j<i;j++)("_all"==q[f]||h(l[j].nTh).hasClass(q[f]))&&
|
||||
d(j,n)}}if(c){e=0;for(a=c.length;e<a;e++)d(e,c[e])}}function N(a,b,c,d){var e=a.aoData.length,f=h.extend(!0,{},m.models.oRow,{src:c?"dom":"data",idx:e});f._aData=b;a.aoData.push(f);for(var g=a.aoColumns,j=0,i=g.length;j<i;j++)g[j].sType=null;a.aiDisplayMaster.push(e);b=a.rowIdFn(b);b!==k&&(a.aIds[b]=f);(c||!a.oFeatures.bDeferRender)&&Ja(a,e,c,d);return e}function oa(a,b){var c;b instanceof h||(b=h(b));return b.map(function(b,e){c=Ka(a,e);return N(a,c.data,e,c.cells)})}function B(a,b,c,d){var e=a.iDraw,
|
||||
f=a.aoColumns[c],g=a.aoData[b]._aData,j=f.sDefaultContent,i=f.fnGetData(g,d,{settings:a,row:b,col:c});if(i===k)return a.iDrawError!=e&&null===j&&(K(a,0,"Requested unknown parameter "+("function"==typeof f.mData?"{function}":"'"+f.mData+"'")+" for row "+b+", column "+c,4),a.iDrawError=e),j;if((i===g||null===i)&&null!==j&&d!==k)i=j;else if("function"===typeof i)return i.call(g);return null===i&&"display"==d?"":i}function lb(a,b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,d,{settings:a,row:b,col:c})}
|
||||
function La(a){return h.map(a.match(/(\\.|[^\.])+/g)||[""],function(a){return a.replace(/\\\./g,".")})}function R(a){if(h.isPlainObject(a)){var b={};h.each(a,function(a,c){c&&(b[a]=R(c))});return function(a,c,f,g){var j=b[c]||b._;return j!==k?j(a,c,f,g):a}}if(null===a)return function(a){return a};if("function"===typeof a)return function(b,c,f,g){return a(b,c,f,g)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var c=function(a,b,f){var g,j;if(""!==f){j=La(f);
|
||||
for(var i=0,n=j.length;i<n;i++){f=j[i].match(ca);g=j[i].match(V);if(f){j[i]=j[i].replace(ca,"");""!==j[i]&&(a=a[j[i]]);g=[];j.splice(0,i+1);j=j.join(".");if(h.isArray(a)){i=0;for(n=a.length;i<n;i++)g.push(c(a[i],b,j))}a=f[0].substring(1,f[0].length-1);a=""===a?g:g.join(a);break}else if(g){j[i]=j[i].replace(V,"");a=a[j[i]]();continue}if(null===a||a[j[i]]===k)return k;a=a[j[i]]}}return a};return function(b,e){return c(b,e,a)}}return function(b){return b[a]}}function S(a){if(h.isPlainObject(a))return S(a._);
|
||||
if(null===a)return function(){};if("function"===typeof a)return function(b,d,e){a(b,"set",d,e)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var b=function(a,d,e){var e=La(e),f;f=e[e.length-1];for(var g,j,i=0,n=e.length-1;i<n;i++){g=e[i].match(ca);j=e[i].match(V);if(g){e[i]=e[i].replace(ca,"");a[e[i]]=[];f=e.slice();f.splice(0,i+1);g=f.join(".");if(h.isArray(d)){j=0;for(n=d.length;j<n;j++)f={},b(f,d[j],g),a[e[i]].push(f)}else a[e[i]]=d;return}j&&(e[i]=e[i].replace(V,
|
||||
""),a=a[e[i]](d));if(null===a[e[i]]||a[e[i]]===k)a[e[i]]={};a=a[e[i]]}if(f.match(V))a[f.replace(V,"")](d);else a[f.replace(ca,"")]=d};return function(c,d){return b(c,d,a)}}return function(b,d){b[a]=d}}function Ma(a){return D(a.aoData,"_aData")}function pa(a){a.aoData.length=0;a.aiDisplayMaster.length=0;a.aiDisplay.length=0;a.aIds={}}function qa(a,b,c){for(var d=-1,e=0,f=a.length;e<f;e++)a[e]==b?d=e:a[e]>b&&a[e]--; -1!=d&&c===k&&a.splice(d,1)}function da(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);
|
||||
c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=Ka(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c<f;c++)g(j[c],c)}}e._aSortData=null;e._aFilterData=null;g=a.aoColumns;if(d!==k)g[d].sType=null;else{c=0;for(f=g.length;c<f;c++)g[c].sType=null;Na(a,e)}}function Ka(a,b,c,d){var e=[],f=b.firstChild,g,j,i=0,n,l=a.aoColumns,q=a._rowReadObject,d=d!==k?d:q?{}:[],r=function(a,b){if("string"===typeof a){var c=a.indexOf("@");
|
||||
-1!==c&&(c=a.substring(c+1),S(a)(d,b.getAttribute(c)))}},m=function(a){if(c===k||c===i)j=l[i],n=h.trim(a.innerHTML),j&&j._bAttrSrc?(S(j.mData._)(d,n),r(j.mData.sort,a),r(j.mData.type,a),r(j.mData.filter,a)):q?(j._setter||(j._setter=S(j.mData)),j._setter(d,n)):d[i]=n;i++};if(f)for(;f;){g=f.nodeName.toUpperCase();if("TD"==g||"TH"==g)m(f),e.push(f);f=f.nextSibling}else{e=b.anCells;f=0;for(g=e.length;f<g;f++)m(e[f])}if(b=b.firstChild?b:b.nTr)(b=b.getAttribute("id"))&&S(a.rowId)(d,b);return{data:d,cells:e}}
|
||||
function Ja(a,b,c,d){var e=a.aoData[b],f=e._aData,g=[],j,i,n,l,q;if(null===e.nTr){j=c||H.createElement("tr");e.nTr=j;e.anCells=g;j._DT_RowIndex=b;Na(a,e);l=0;for(q=a.aoColumns.length;l<q;l++){n=a.aoColumns[l];i=c?d[l]:H.createElement(n.sCellType);i._DT_CellIndex={row:b,column:l};g.push(i);if((!c||n.mRender||n.mData!==l)&&(!h.isPlainObject(n.mData)||n.mData._!==l+".display"))i.innerHTML=B(a,b,l,"display");n.sClass&&(i.className+=" "+n.sClass);n.bVisible&&!c?j.appendChild(i):!n.bVisible&&c&&i.parentNode.removeChild(i);
|
||||
n.fnCreatedCell&&n.fnCreatedCell.call(a.oInstance,i,B(a,b,l),f,b,l)}s(a,"aoRowCreatedCallback",null,[j,f,b])}e.nTr.setAttribute("role","row")}function Na(a,b){var c=b.nTr,d=b._aData;if(c){var e=a.rowIdFn(d);e&&(c.id=e);d.DT_RowClass&&(e=d.DT_RowClass.split(" "),b.__rowc=b.__rowc?sa(b.__rowc.concat(e)):e,h(c).removeClass(b.__rowc.join(" ")).addClass(d.DT_RowClass));d.DT_RowAttr&&h(c).attr(d.DT_RowAttr);d.DT_RowData&&h(c).data(d.DT_RowData)}}function mb(a){var b,c,d,e,f,g=a.nTHead,j=a.nTFoot,i=0===
|
||||
h("th, td",g).length,n=a.oClasses,l=a.aoColumns;i&&(e=h("<tr/>").appendTo(g));b=0;for(c=l.length;b<c;b++)f=l[b],d=h(f.nTh).addClass(f.sClass),i&&d.appendTo(e),a.oFeatures.bSort&&(d.addClass(f.sSortingClass),!1!==f.bSortable&&(d.attr("tabindex",a.iTabIndex).attr("aria-controls",a.sTableId),Oa(a,f.nTh,b))),f.sTitle!=d[0].innerHTML&&d.html(f.sTitle),Pa(a,"header")(a,d,f,n);i&&ea(a.aoHeader,g);h(g).find(">tr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(n.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(n.sFooterTH);
|
||||
if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b<c;b++)f=l[b],f.nTf=a[b].cell,f.sClass&&h(f.nTf).addClass(f.sClass)}}function fa(a,b,c){var d,e,f,g=[],j=[],i=a.aoColumns.length,n;if(b){c===k&&(c=!1);d=0;for(e=b.length;d<e;d++){g[d]=b[d].slice();g[d].nTr=b[d].nTr;for(f=i-1;0<=f;f--)!a.aoColumns[f].bVisible&&!c&&g[d].splice(f,1);j.push([])}d=0;for(e=g.length;d<e;d++){if(a=g[d].nTr)for(;f=a.firstChild;)a.removeChild(f);f=0;for(b=g[d].length;f<b;f++)if(n=i=1,j[d][f]===k){a.appendChild(g[d][f].cell);
|
||||
for(j[d][f]=1;g[d+i]!==k&&g[d][f].cell==g[d+i][f].cell;)j[d+i][f]=1,i++;for(;g[d][f+n]!==k&&g[d][f].cell==g[d][f+n].cell;){for(c=0;c<i;c++)j[d+c][f+n]=1;n++}h(g[d][f].cell).attr("rowspan",i).attr("colspan",n)}}}}function O(a){var b=s(a,"aoPreDrawCallback","preDraw",[a]);if(-1!==h.inArray(!1,b))C(a,!1);else{var b=[],c=0,d=a.asStripeClasses,e=d.length,f=a.oLanguage,g=a.iInitDisplayStart,j="ssp"==y(a),i=a.aiDisplay;a.bDrawing=!0;g!==k&&-1!==g&&(a._iDisplayStart=j?g:g>=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=
|
||||
-1);var g=a._iDisplayStart,n=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&!nb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:n;for(j=j?0:g;j<f;j++){var l=i[j],q=a.aoData[l];null===q.nTr&&Ja(a,l);l=q.nTr;if(0!==e){var r=d[c%e];q._sRowStripe!=r&&(h(l).removeClass(q._sRowStripe).addClass(r),q._sRowStripe=r)}s(a,"aoRowCallback",null,[l,q._aData,c,j]);b.push(l);c++}}else c=f.sZeroRecords,1==a.iDraw&&"ajax"==y(a)?c=f.sLoadingRecords:
|
||||
f.sEmptyTable&&0===a.fnRecordsTotal()&&(c=f.sEmptyTable),b[0]=h("<tr/>",{"class":e?d[0]:""}).append(h("<td />",{valign:"top",colSpan:ba(a),"class":a.oClasses.sRowEmpty}).html(c))[0];s(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ma(a),g,n,i]);s(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ma(a),g,n,i]);d=h(a.nTBody);d.children().detach();d.append(h(b));s(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function T(a,b){var c=a.oFeatures,d=c.bFilter;
|
||||
c.bSort&&ob(a);d?ga(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;O(a);a._drawHold=!1}function pb(a){var b=a.oClasses,c=h(a.nTable),c=h("<div/>").insertBefore(c),d=a.oFeatures,e=h("<div/>",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,n,l,q,k=0;k<f.length;k++){g=null;j=f[k];if("<"==j){i=h("<div/>")[0];
|
||||
n=f[k+1];if("'"==n||'"'==n){l="";for(q=2;f[k+q]!=n;)l+=f[k+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(n=l.split("."),i.id=n[0].substr(1,n[0].length-1),i.className=n[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;k+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=qb(a);else if("f"==j&&d.bFilter)g=rb(a);else if("r"==j&&d.bProcessing)g=sb(a);else if("t"==j)g=tb(a);else if("i"==j&&d.bInfo)g=ub(a);else if("p"==
|
||||
j&&d.bPaginate)g=vb(a);else if(0!==m.ext.feature.length){i=m.ext.feature;q=0;for(n=i.length;q<n;q++)if(j==i[q].cFeature){g=i[q].fnInit(a);break}}g&&(i=a.aanFeatures,i[j]||(i[j]=[]),i[j].push(g),e.append(g))}c.replaceWith(e);a.nHolding=null}function ea(a,b){var c=h(b).children("tr"),d,e,f,g,j,i,n,l,q,k;a.splice(0,a.length);f=0;for(i=c.length;f<i;f++)a.push([]);f=0;for(i=c.length;f<i;f++){d=c[f];for(e=d.firstChild;e;){if("TD"==e.nodeName.toUpperCase()||"TH"==e.nodeName.toUpperCase()){l=1*e.getAttribute("colspan");
|
||||
q=1*e.getAttribute("rowspan");l=!l||0===l||1===l?1:l;q=!q||0===q||1===q?1:q;g=0;for(j=a[f];j[g];)g++;n=g;k=1===l?!0:!1;for(j=0;j<l;j++)for(g=0;g<q;g++)a[f+g][n+j]={cell:e,unique:k},a[f+g].nTr=d}e=e.nextSibling}}}function ta(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],ea(c,b)));for(var b=0,e=c.length;b<e;b++)for(var f=0,g=c[b].length;f<g;f++)if(c[b][f].unique&&(!d[f]||!a.bSortCellsTop))d[f]=c[b][f].cell;return d}function ua(a,b,c){s(a,"aoServerParams","serverParams",[b]);if(b&&h.isArray(b)){var d={},
|
||||
e=/(.*?)\[\]$/;h.each(b,function(a,b){var c=b.name.match(e);c?(c=c[0],d[c]||(d[c]=[]),d[c].push(b.value)):d[b.name]=b.value});b=d}var f,g=a.ajax,j=a.oInstance,i=function(b){s(a,null,"xhr",[a,b,a.jqXHR]);c(b)};if(h.isPlainObject(g)&&g.data){f=g.data;var n=h.isFunction(f)?f(b,a):f,b=h.isFunction(f)&&n?n:h.extend(!0,b,n);delete g.data}n={data:b,success:function(b){var c=b.error||b.sError;c&&K(a,0,c);a.json=b;i(b)},dataType:"json",cache:!1,type:a.sServerMethod,error:function(b,c){var d=s(a,null,"xhr",
|
||||
[a,null,a.jqXHR]);-1===h.inArray(!0,d)&&("parsererror"==c?K(a,0,"Invalid JSON response",1):4===b.readyState&&K(a,0,"Ajax error",7));C(a,!1)}};a.oAjaxData=b;s(a,null,"preXhr",[a,b]);a.fnServerData?a.fnServerData.call(j,a.sAjaxSource,h.map(b,function(a,b){return{name:b,value:a}}),i,a):a.sAjaxSource||"string"===typeof g?a.jqXHR=h.ajax(h.extend(n,{url:g||a.sAjaxSource})):h.isFunction(g)?a.jqXHR=g.call(j,b,i,a):(a.jqXHR=h.ajax(h.extend(n,g)),g.data=f)}function nb(a){return a.bAjaxDataGet?(a.iDraw++,C(a,
|
||||
!0),ua(a,wb(a),function(b){xb(a,b)}),!1):!0}function wb(a){var b=a.aoColumns,c=b.length,d=a.oFeatures,e=a.oPreviousSearch,f=a.aoPreSearchCols,g,j=[],i,n,l,k=W(a);g=a._iDisplayStart;i=!1!==d.bPaginate?a._iDisplayLength:-1;var r=function(a,b){j.push({name:a,value:b})};r("sEcho",a.iDraw);r("iColumns",c);r("sColumns",D(b,"sName").join(","));r("iDisplayStart",g);r("iDisplayLength",i);var ra={draw:a.iDraw,columns:[],order:[],start:g,length:i,search:{value:e.sSearch,regex:e.bRegex}};for(g=0;g<c;g++)n=b[g],
|
||||
l=f[g],i="function"==typeof n.mData?"function":n.mData,ra.columns.push({data:i,name:n.sName,searchable:n.bSearchable,orderable:n.bSortable,search:{value:l.sSearch,regex:l.bRegex}}),r("mDataProp_"+g,i),d.bFilter&&(r("sSearch_"+g,l.sSearch),r("bRegex_"+g,l.bRegex),r("bSearchable_"+g,n.bSearchable)),d.bSort&&r("bSortable_"+g,n.bSortable);d.bFilter&&(r("sSearch",e.sSearch),r("bRegex",e.bRegex));d.bSort&&(h.each(k,function(a,b){ra.order.push({column:b.col,dir:b.dir});r("iSortCol_"+a,b.col);r("sSortDir_"+
|
||||
a,b.dir)}),r("iSortingCols",k.length));b=m.ext.legacy.ajax;return null===b?a.sAjaxSource?j:ra:b?j:ra}function xb(a,b){var c=va(a,b),d=b.sEcho!==k?b.sEcho:b.draw,e=b.iTotalRecords!==k?b.iTotalRecords:b.recordsTotal,f=b.iTotalDisplayRecords!==k?b.iTotalDisplayRecords:b.recordsFiltered;if(d){if(1*d<a.iDraw)return;a.iDraw=1*d}pa(a);a._iRecordsTotal=parseInt(e,10);a._iRecordsDisplay=parseInt(f,10);d=0;for(e=c.length;d<e;d++)N(a,c[d]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=!1;O(a);a._bInitComplete||
|
||||
wa(a,b);a.bAjaxDataGet=!0;C(a,!1)}function va(a,b){var c=h.isPlainObject(a.ajax)&&a.ajax.dataSrc!==k?a.ajax.dataSrc:a.sAjaxDataProp;return"data"===c?b.aaData||b[c]:""!==c?R(c)(b):b}function rb(a){var b=a.oClasses,c=a.sTableId,d=a.oLanguage,e=a.oPreviousSearch,f=a.aanFeatures,g='<input type="search" class="'+b.sFilterInput+'"/>',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",g):j+g,b=h("<div/>",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h("<label/>").append(j)),f=function(){var b=!this.value?
|
||||
"":this.value;b!=e.sSearch&&(ga(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,O(a))},g=null!==a.searchDelay?a.searchDelay:"ssp"===y(a)?400:0,i=h("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT",g?Qa(f,g):f).on("keypress.DT",function(a){if(13==a.keyCode)return!1}).attr("aria-controls",c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{i[0]!==H.activeElement&&i.val(e.sSearch)}catch(d){}});
|
||||
return b[0]}function ga(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};Ia(a);if("ssp"!=y(a)){yb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b<e.length;b++)zb(a,e[b].sSearch,b,e[b].bEscapeRegex!==k?!e[b].bEscapeRegex:e[b].bRegex,e[b].bSmart,e[b].bCaseInsensitive);Ab(a)}else f(b);a.bFiltered=!0;s(a,null,"search",[a])}function Ab(a){for(var b=
|
||||
m.ext.search,c=a.aiDisplay,d,e,f=0,g=b.length;f<g;f++){for(var j=[],i=0,n=c.length;i<n;i++)e=c[i],d=a.aoData[e],b[f](a,d._aFilterData,e,d._aData,i)&&j.push(e);c.length=0;h.merge(c,j)}}function zb(a,b,c,d,e,f){if(""!==b){for(var g=[],j=a.aiDisplay,d=Ra(b,d,e,f),e=0;e<j.length;e++)b=a.aoData[j[e]]._aFilterData[c],d.test(b)&&g.push(j[e]);a.aiDisplay=g}}function yb(a,b,c,d,e,f){var d=Ra(b,d,e,f),f=a.oPreviousSearch.sSearch,g=a.aiDisplayMaster,j,e=[];0!==m.ext.search.length&&(c=!0);j=Bb(a);if(0>=b.length)a.aiDisplay=
|
||||
g.slice();else{if(j||c||f.length>b.length||0!==b.indexOf(f)||a.bSorted)a.aiDisplay=g.slice();b=a.aiDisplay;for(c=0;c<b.length;c++)d.test(a.aoData[b[c]]._sFilterRow)&&e.push(b[c]);a.aiDisplay=e}}function Ra(a,b,c,d){a=b?a:Sa(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',"")}).join(")(?=.*?")+").*$");return RegExp(a,d?"i":"")}function Bb(a){var b=a.aoColumns,c,d,e,f,g,j,i,h,l=m.ext.type.search;c=!1;
|
||||
d=0;for(f=a.aoData.length;d<f;d++)if(h=a.aoData[d],!h._aFilterData){j=[];e=0;for(g=b.length;e<g;e++)c=b[e],c.bSearchable?(i=B(a,d,e,"filter"),l[c.sType]&&(i=l[c.sType](i)),null===i&&(i=""),"string"!==typeof i&&i.toString&&(i=i.toString())):i="",i.indexOf&&-1!==i.indexOf("&")&&(xa.innerHTML=i,i=$b?xa.textContent:xa.innerText),i.replace&&(i=i.replace(/[\r\n]/g,"")),j.push(i);h._aFilterData=j;h._sFilterRow=j.join(" ");c=!0}return c}function Cb(a){return{search:a.sSearch,smart:a.bSmart,regex:a.bRegex,
|
||||
caseInsensitive:a.bCaseInsensitive}}function Db(a){return{sSearch:a.search,bSmart:a.smart,bRegex:a.regex,bCaseInsensitive:a.caseInsensitive}}function ub(a){var b=a.sTableId,c=a.aanFeatures.i,d=h("<div/>",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Eb,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",b+"_info"));return d[0]}function Eb(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+
|
||||
1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),j=g?c.sInfo:c.sInfoEmpty;g!==f&&(j+=" "+c.sInfoFiltered);j+=c.sInfoPostFix;j=Fb(a,j);c=c.fnInfoCallback;null!==c&&(j=c.call(a.oInstance,a,d,e,f,g,j));h(b).html(j)}}function Fb(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,
|
||||
f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/e)))}function ha(a){var b,c,d=a.iInitDisplayStart,e=a.aoColumns,f;c=a.oFeatures;var g=a.bDeferLoading;if(a.bInitialised){pb(a);mb(a);fa(a,a.aoHeader);fa(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Ha(a);b=0;for(c=e.length;b<c;b++)f=e[b],f.sWidth&&(f.nTh.style.width=v(f.sWidth));s(a,null,"preInit",[a]);T(a);e=y(a);if("ssp"!=e||g)"ajax"==e?ua(a,[],function(c){var f=va(a,c);for(b=0;b<f.length;b++)N(a,f[b]);a.iInitDisplayStart=
|
||||
d;T(a);C(a,!1);wa(a,c)},a):(C(a,!1),wa(a))}else setTimeout(function(){ha(a)},200)}function wa(a,b){a._bInitComplete=!0;(b||a.oInit.aaData)&&Z(a);s(a,null,"plugin-init",[a,b]);s(a,"aoInitComplete","init",[a,b])}function Ta(a,b){var c=parseInt(b,10);a._iDisplayLength=c;Ua(a);s(a,null,"length",[a,c])}function qb(a){for(var b=a.oClasses,c=a.sTableId,d=a.aLengthMenu,e=h.isArray(d[0]),f=e?d[0]:d,d=e?d[1]:d,e=h("<select/>",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}),g=0,j=f.length;g<j;g++)e[0][g]=
|
||||
new Option(d[g],f[g]);var i=h("<div><label/></div>").addClass(b.sLength);a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).on("change.DT",function(){Ta(a,h(this).val());O(a)});h(a.nTable).on("length.dt.DT",function(b,c,d){a===c&&h("select",i).val(d)});return i[0]}function vb(a){var b=a.sPaginationType,c=m.ext.pager[b],d="function"===typeof c,e=function(a){O(a)},b=h("<div/>").addClass(a.oClasses.sPaging+
|
||||
b)[0],f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;l<k;l++)Pa(a,"pageButton")(a,f.p[l],l,h,b,i)}else c.fnUpdate(a,e)},sName:"pagination"}));return b}function Va(a,b,c){var d=a._iDisplayStart,e=a._iDisplayLength,f=a.fnRecordsDisplay();0===f||-1===e?d=0:"number"===typeof b?(d=b*e,d>f&&
|
||||
(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==b?d+e<f&&(d+=e):"last"==b?d=Math.floor((f-1)/e)*e:K(a,0,"Unknown paging action: "+b,5);b=a._iDisplayStart!==d;a._iDisplayStart=d;b&&(s(a,null,"page",[a]),c&&O(a));return b}function sb(a){return h("<div/>",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",b?"block":"none");
|
||||
s(a,null,"processing",[a,b])}function tb(a){var b=h(a.nTable);b.attr("role","grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),n=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("<div/>",{"class":f.sScrollWrapper}).append(h("<div/>",{"class":f.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",
|
||||
{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("<div/>",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:v(d)}).append(b));l&&i.append(h("<div/>",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",{"class":f.sScrollFootInner}).append(n.removeAttr("id").css("margin-left",
|
||||
0).append("bottom"===j?g:null).append(b.children("tfoot")))));var b=i.children(),k=b[0],f=b[1],r=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(r.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=r;a.aoDrawCallback.push({fn:ma,sName:"scrolling"});return i[0]}function ma(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,n=j.children("table"),
|
||||
j=a.nScrollBody,l=h(j),q=j.style,r=h(a.nScrollFoot).children("div"),m=r.children("table"),p=h(a.nTHead),o=h(a.nTable),t=o[0],s=t.style,u=a.nTFoot?h(a.nTFoot):null,x=a.oBrowser,U=x.bScrollOversize,ac=D(a.aoColumns,"nTh"),P,L,Q,w,Wa=[],y=[],z=[],A=[],B,C=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};L=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==L&&a.scrollBarVis!==k)a.scrollBarVis=L,Z(a);else{a.scrollBarVis=L;o.children("thead, tfoot").remove();
|
||||
u&&(Q=u.clone().prependTo(o),P=u.find("tr"),Q=Q.find("tr"));w=p.clone().prependTo(o);p=p.find("tr");L=w.find("tr");w.find("th, td").removeAttr("tabindex");c||(q.width="100%",f[0].style.width="100%");h.each(ta(a,w),function(b,c){B=$(a,b);c.style.width=a.aoColumns[B].sWidth});u&&I(function(a){a.style.width=""},Q);f=o.outerWidth();if(""===c){s.width="100%";if(U&&(o.find("tbody").height()>j.offsetHeight||"scroll"==l.css("overflow-y")))s.width=v(o.outerWidth()-b);f=o.outerWidth()}else""!==d&&(s.width=
|
||||
v(d),f=o.outerWidth());I(C,L);I(function(a){z.push(a.innerHTML);Wa.push(v(h(a).css("width")))},L);I(function(a,b){if(h.inArray(a,ac)!==-1)a.style.width=Wa[b]},p);h(L).height(0);u&&(I(C,Q),I(function(a){A.push(a.innerHTML);y.push(v(h(a).css("width")))},Q),I(function(a,b){a.style.width=y[b]},P),h(Q).height(0));I(function(a,b){a.innerHTML='<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+z[b]+"</div>";a.style.width=Wa[b]},L);u&&I(function(a,b){a.innerHTML='<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+
|
||||
A[b]+"</div>";a.style.width=y[b]},Q);if(o.outerWidth()<f){P=j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(U&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))s.width=v(P-b);(""===c||""!==d)&&K(a,1,"Possible column misalignment",6)}else P="100%";q.width=v(P);g.width=v(P);u&&(a.nScrollFoot.style.width=v(P));!e&&U&&(q.height=v(t.offsetHeight+b));c=o.outerWidth();n[0].style.width=v(c);i.width=v(c);d=o.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+
|
||||
(x.bScrollbarLeft?"Left":"Right");i[e]=d?b+"px":"0px";u&&(m[0].style.width=v(c),r[0].style.width=v(c),r[0].style[e]=d?b+"px":"0px");o.children("colgroup").insertBefore(o.children("thead"));l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=0}}function I(a,b,c){for(var d=0,e=0,f=b.length,g,j;e<f;){g=b[e].firstChild;for(j=c?c[e].firstChild:null;g;)1===g.nodeType&&(c?a(g,j,d):a(g,d),d++),g=g.nextSibling,j=c?j.nextSibling:null;e++}}function Ha(a){var b=a.nTable,c=a.aoColumns,d=a.oScroll,
|
||||
e=d.sY,f=d.sX,g=d.sXInner,j=c.length,i=na(a,"bVisible"),n=h("th",a.nTHead),l=b.getAttribute("width"),k=b.parentNode,r=!1,m,p,o=a.oBrowser,d=o.bScrollOversize;(m=b.style.width)&&-1!==m.indexOf("%")&&(l=m);for(m=0;m<i.length;m++)p=c[i[m]],null!==p.sWidth&&(p.sWidth=Gb(p.sWidthOrig,k),r=!0);if(d||!r&&!f&&!e&&j==ba(a)&&j==n.length)for(m=0;m<j;m++)i=$(a,m),null!==i&&(c[i].sWidth=v(n.eq(m).width()));else{j=h(b).clone().css("visibility","hidden").removeAttr("id");j.find("tbody tr").remove();var t=h("<tr/>").appendTo(j.find("tbody"));
|
||||
j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");n=ta(a,j.find("thead")[0]);for(m=0;m<i.length;m++)p=c[i[m]],n[m].style.width=null!==p.sWidthOrig&&""!==p.sWidthOrig?v(p.sWidthOrig):"",p.sWidthOrig&&f&&h(n[m]).append(h("<div/>").css({width:p.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(m=0;m<i.length;m++)r=i[m],p=c[r],h(Hb(a,r)).clone(!1).append(p.sContentPadding).appendTo(t);h("[name]",
|
||||
j).removeAttr("name");p=h("<div/>").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()<k.clientWidth&&l&&j.width(k.clientWidth)):e?j.width(k.clientWidth):l&&j.width(l);for(m=e=0;m<i.length;m++)k=h(n[m]),g=k.outerWidth()-k.width(),k=o.bBounding?Math.ceil(n[m].getBoundingClientRect().width):k.outerWidth(),e+=k,c[i[m]].sWidth=v(k-g);b.style.width=v(e);p.remove()}l&&(b.style.width=
|
||||
v(l));if((l||f)&&!a._reszEvt)b=function(){h(E).on("resize.DT-"+a.sInstance,Qa(function(){Z(a)}))},d?setTimeout(b,1E3):b(),a._reszEvt=!0}function Gb(a,b){if(!a)return 0;var c=h("<div/>").css("width",v(a)).appendTo(b||H.body),d=c[0].offsetWidth;c.remove();return d}function Hb(a,b){var c=Ib(a,b);if(0>c)return null;var d=a.aoData[c];return!d.nTr?h("<td/>").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Ib(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;f<g;f++)c=B(a,f,b,"display")+"",c=c.replace(bc,
|
||||
""),c=c.replace(/ /g," "),c.length>d&&(d=c.length,e=f);return e}function v(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function W(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var n=[];f=function(a){a.length&&!h.isArray(a[0])?n.push(a):h.merge(n,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;a<n.length;a++){i=n[a][0];f=e[i].aDataSort;b=0;for(c=f.length;b<c;b++)g=f[b],j=e[g].sType||
|
||||
"string",n[a]._idx===k&&(n[a]._idx=h.inArray(n[a][1],e[g].asSorting)),d.push({src:i,col:g,dir:n[a][1],index:n[a]._idx,type:j,formatter:m.ext.type.order[j+"-pre"]})}return d}function ob(a){var b,c,d=[],e=m.ext.type.order,f=a.aoData,g=0,j,i=a.aiDisplayMaster,h;Ia(a);h=W(a);b=0;for(c=h.length;b<c;b++)j=h[b],j.formatter&&g++,Jb(a,j.col);if("ssp"!=y(a)&&0!==h.length){b=0;for(c=i.length;b<c;b++)d[i[b]]=b;g===h.length?i.sort(function(a,b){var c,e,g,j,i=h.length,k=f[a]._aSortData,m=f[b]._aSortData;for(g=
|
||||
0;g<i;g++)if(j=h[g],c=k[j.col],e=m[j.col],c=c<e?-1:c>e?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];return c<e?-1:c>e?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,m=f[a]._aSortData,p=f[b]._aSortData;for(j=0;j<k;j++)if(i=h[j],c=m[i.col],g=p[i.col],i=e[i.type+"-"+i.dir]||e["string-"+i.dir],c=i(c,g),0!==c)return c;c=d[a];g=d[b];return c<g?-1:c>g?1:0})}a.bSorted=!0}function Kb(a){for(var b,c,d=a.aoColumns,e=W(a),a=a.oLanguage.oAria,f=0,g=d.length;f<g;f++){c=d[f];var j=c.asSorting;b=c.sTitle.replace(/<.*?>/g,
|
||||
"");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0<e.length&&e[0].col==f?(i.setAttribute("aria-sort","asc"==e[0].dir?"ascending":"descending"),c=j[e[0].index+1]||j[0]):c=j[0],b+="asc"===c?a.sSortAscending:a.sSortDescending);i.setAttribute("aria-label",b)}}function Xa(a,b,c,d){var e=a.aaSorting,f=a.aoColumns[b].asSorting,g=function(a,b){var c=a._idx;c===k&&(c=h.inArray(a[1],f));return c+1<f.length?c+1:b?null:0};"number"===typeof e[0]&&(e=a.aaSorting=[e]);c&&a.oFeatures.bSortMulti?(c=h.inArray(b,
|
||||
D(e,"0")),-1!==c?(b=g(e[c],!0),null===b&&1===e.length&&(b=0),null===b?e.splice(c,1):(e[c][1]=f[b],e[c]._idx=b)):(e.push([b,f[0],0]),e[e.length-1]._idx=0)):e.length&&e[0][0]==b?(b=g(e[0]),e.length=1,e[0][1]=f[b],e[0]._idx=b):(e.length=0,e.push([b,f[0]]),e[0]._idx=0);T(a);"function"==typeof d&&d(a)}function Oa(a,b,c,d){var e=a.aoColumns[c];Ya(b,{},function(b){!1!==e.bSortable&&(a.oFeatures.bProcessing?(C(a,!0),setTimeout(function(){Xa(a,c,b.shiftKey,d);"ssp"!==y(a)&&C(a,!1)},0)):Xa(a,c,b.shiftKey,d))})}
|
||||
function ya(a){var b=a.aLastSort,c=a.oClasses.sSortColumn,d=W(a),e=a.oFeatures,f,g;if(e.bSort&&e.bSortClasses){e=0;for(f=b.length;e<f;e++)g=b[e].src,h(D(a.aoData,"anCells",g)).removeClass(c+(2>e?e+1:3));e=0;for(f=d.length;e<f;e++)g=d[e].src,h(D(a.aoData,"anCells",g)).addClass(c+(2>e?e+1:3))}a.aLastSort=d}function Jb(a,b){var c=a.aoColumns[b],d=m.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,aa(a,b)));for(var f,g=m.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j<i;j++)if(c=a.aoData[j],
|
||||
c._aSortData||(c._aSortData=[]),!c._aSortData[b]||d)f=d?e[j]:B(a,j,b,"sort"),c._aSortData[b]=g?g(f):f}function za(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b={time:+new Date,start:a._iDisplayStart,length:a._iDisplayLength,order:h.extend(!0,[],a.aaSorting),search:Cb(a.oPreviousSearch),columns:h.map(a.aoColumns,function(b,d){return{visible:b.bVisible,search:Cb(a.aoPreSearchCols[d])}})};s(a,"aoStateSaveParams","stateSaveParams",[a,b]);a.oSavedState=b;a.fnStateSaveCallback.call(a.oInstance,a,
|
||||
b)}}function Lb(a,b,c){var d,e,f=a.aoColumns,b=function(b){if(b&&b.time){var g=s(a,"aoStateLoadParams","stateLoadParams",[a,b]);if(-1===h.inArray(!1,g)&&(g=a.iStateDuration,!(0<g&&b.time<+new Date-1E3*g)&&!(b.columns&&f.length!==b.columns.length))){a.oLoadedState=h.extend(!0,{},b);b.start!==k&&(a._iDisplayStart=b.start,a.iInitDisplayStart=b.start);b.length!==k&&(a._iDisplayLength=b.length);b.order!==k&&(a.aaSorting=[],h.each(b.order,function(b,c){a.aaSorting.push(c[0]>=f.length?[0,c[1]]:c)}));b.search!==
|
||||
k&&h.extend(a.oPreviousSearch,Db(b.search));if(b.columns){d=0;for(e=b.columns.length;d<e;d++)g=b.columns[d],g.visible!==k&&(f[d].bVisible=g.visible),g.search!==k&&h.extend(a.aoPreSearchCols[d],Db(g.search))}s(a,"aoStateLoaded","stateLoaded",[a,b])}}c()};if(a.oFeatures.bStateSave){var g=a.fnStateLoadCallback.call(a.oInstance,a,b);g!==k&&b(g)}else c()}function Aa(a){var b=m.settings,a=h.inArray(a,D(b,"nTable"));return-1!==a?b[a]:null}function K(a,b,c,d){c="DataTables warning: "+(a?"table id="+a.sTableId+
|
||||
" - ":"")+c;d&&(c+=". For more information about this error, please see http://datatables.net/tn/"+d);if(b)E.console&&console.log&&console.log(c);else if(b=m.ext,b=b.sErrMode||b.errMode,a&&s(a,null,"error",[a,d,c]),"alert"==b)alert(c);else{if("throw"==b)throw Error(c);"function"==typeof b&&b(a,d,c)}}function F(a,b,c,d){h.isArray(c)?h.each(c,function(c,d){h.isArray(d)?F(a,b,d[0],d[1]):F(a,b,d)}):(d===k&&(d=c),b[c]!==k&&(a[d]=b[c]))}function Mb(a,b,c){var d,e;for(e in b)b.hasOwnProperty(e)&&(d=b[e],
|
||||
h.isPlainObject(d)?(h.isPlainObject(a[e])||(a[e]={}),h.extend(!0,a[e],d)):a[e]=c&&"data"!==e&&"aaData"!==e&&h.isArray(d)?d.slice():d);return a}function Ya(a,b,c){h(a).on("click.DT",b,function(b){a.blur();c(b)}).on("keypress.DT",b,function(a){13===a.which&&(a.preventDefault(),c(a))}).on("selectstart.DT",function(){return!1})}function z(a,b,c,d){c&&a[b].push({fn:c,sName:d})}function s(a,b,c,d){var e=[];b&&(e=h.map(a[b].slice().reverse(),function(b){return b.fn.apply(a.oInstance,d)}));null!==c&&(b=h.Event(c+
|
||||
".dt"),h(a.nTable).trigger(b,d),e.push(b.result));return e}function Ua(a){var b=a._iDisplayStart,c=a.fnDisplayEnd(),d=a._iDisplayLength;b>=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Pa(a,b){var c=a.renderer,d=m.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===typeof c?d[c]||d._:d._}function y(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function ia(a,b){var c=[],c=Nb.numbers_length,d=Math.floor(c/2);b<=c?c=X(0,b):a<=d?(c=X(0,
|
||||
c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=X(b-(c-2),b):(c=X(a-d+2,a+d-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function fb(a){h.each({num:function(b){return Ba(b,a)},"num-fmt":function(b){return Ba(b,a,Za)},"html-num":function(b){return Ba(b,a,Ca)},"html-num-fmt":function(b){return Ba(b,a,Ca,Za)}},function(b,c){x.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(x.type.search[b+a]=x.type.search.html)})}function Ob(a){return function(){var b=
|
||||
[Aa(this[m.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return m.ext.internal[a].apply(this,b)}}var m=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new t(Aa(this[x.iApiIndex])):new t(this)};this.fnAddData=function(a,b){var c=this.api(!0),d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()};this.fnAdjustColumnSizing=
|
||||
function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1):(""!==d.sX||""!==d.sY)&&ma(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};
|
||||
this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a,c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():c.row(a).data()||null}return c.data().toArray()};this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();
|
||||
return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};this.fnPageChange=function(a,b){var c=this.api(!0).page(a);(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return Aa(this[x.iApiIndex])};
|
||||
this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();(d===k||d)&&h.draw();return 0};this.fnVersionCheck=x.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=x.internal;for(var e in m.ext.internal)e&&(this[e]=Ob(e));this.each(function(){var e={},g=1<d?Mb(e,a,!0):
|
||||
a,j=0,i,e=this.getAttribute("id"),n=!1,l=m.defaults,q=h(this);if("table"!=this.nodeName.toLowerCase())K(null,0,"Non-table node initialisation ("+this.nodeName+")",2);else{gb(l);hb(l.column);J(l,l,!0);J(l.column,l.column,!0);J(l,h.extend(g,q.data()));var r=m.settings,j=0;for(i=r.length;j<i;j++){var p=r[j];if(p.nTable==this||p.nTHead.parentNode==this||p.nTFoot&&p.nTFoot.parentNode==this){var t=g.bRetrieve!==k?g.bRetrieve:l.bRetrieve;if(c||t)return p.oInstance;if(g.bDestroy!==k?g.bDestroy:l.bDestroy){p.oInstance.fnDestroy();
|
||||
break}else{K(p,0,"Cannot reinitialise DataTable",3);return}}if(p.sTableId==this.id){r.splice(j,1);break}}if(null===e||""===e)this.id=e="DataTables_Table_"+m.ext._unique++;var o=h.extend(!0,{},m.models.oSettings,{sDestroyWidth:q[0].style.width,sInstance:e,sTableId:e});o.nTable=this;o.oApi=b.internal;o.oInit=g;r.push(o);o.oInstance=1===b.length?b:q.dataTable();gb(g);g.oLanguage&&Fa(g.oLanguage);g.aLengthMenu&&!g.iDisplayLength&&(g.iDisplayLength=h.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]);
|
||||
g=Mb(h.extend(!0,{},l),g);F(o.oFeatures,g,"bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" "));F(o,g,["asStripeClasses","ajax","fnServerData","fnFormatNumber","sServerMethod","aaSorting","aaSortingFixed","aLengthMenu","sPaginationType","sAjaxSource","sAjaxDataProp","iStateDuration","sDom","bSortCellsTop","iTabIndex","fnStateLoadCallback","fnStateSaveCallback","renderer","searchDelay","rowId",["iCookieDuration","iStateDuration"],
|
||||
["oSearch","oPreviousSearch"],["aoSearchCols","aoPreSearchCols"],["iDisplayLength","_iDisplayLength"],["bJQueryUI","bJUI"]]);F(o.oScroll,g,[["sScrollX","sX"],["sScrollXInner","sXInner"],["sScrollY","sY"],["bScrollCollapse","bCollapse"]]);F(o.oLanguage,g,"fnInfoCallback");z(o,"aoDrawCallback",g.fnDrawCallback,"user");z(o,"aoServerParams",g.fnServerParams,"user");z(o,"aoStateSaveParams",g.fnStateSaveParams,"user");z(o,"aoStateLoadParams",g.fnStateLoadParams,"user");z(o,"aoStateLoaded",g.fnStateLoaded,
|
||||
"user");z(o,"aoRowCallback",g.fnRowCallback,"user");z(o,"aoRowCreatedCallback",g.fnCreatedRow,"user");z(o,"aoHeaderCallback",g.fnHeaderCallback,"user");z(o,"aoFooterCallback",g.fnFooterCallback,"user");z(o,"aoInitComplete",g.fnInitComplete,"user");z(o,"aoPreDrawCallback",g.fnPreDrawCallback,"user");o.rowIdFn=R(g.rowId);ib(o);var u=o.oClasses;g.bJQueryUI?(h.extend(u,m.ext.oJUIClasses,g.oClasses),g.sDom===l.sDom&&"lfrtip"===l.sDom&&(o.sDom='<"H"lfr>t<"F"ip>'),o.renderer)?h.isPlainObject(o.renderer)&&
|
||||
!o.renderer.header&&(o.renderer.header="jqueryui"):o.renderer="jqueryui":h.extend(u,m.ext.classes,g.oClasses);q.addClass(u.sTable);o.iInitDisplayStart===k&&(o.iInitDisplayStart=g.iDisplayStart,o._iDisplayStart=g.iDisplayStart);null!==g.iDeferLoading&&(o.bDeferLoading=!0,e=h.isArray(g.iDeferLoading),o._iRecordsDisplay=e?g.iDeferLoading[0]:g.iDeferLoading,o._iRecordsTotal=e?g.iDeferLoading[1]:g.iDeferLoading);var v=o.oLanguage;h.extend(!0,v,g.oLanguage);v.sUrl&&(h.ajax({dataType:"json",url:v.sUrl,success:function(a){Fa(a);
|
||||
J(l.oLanguage,a);h.extend(true,v,a);ha(o)},error:function(){ha(o)}}),n=!0);null===g.asStripeClasses&&(o.asStripeClasses=[u.sStripeOdd,u.sStripeEven]);var e=o.asStripeClasses,x=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(e,function(a){return x.hasClass(a)}))&&(h("tbody tr",this).removeClass(e.join(" ")),o.asDestroyStripes=e.slice());e=[];r=this.getElementsByTagName("thead");0!==r.length&&(ea(o.aoHeader,r[0]),e=ta(o));if(null===g.aoColumns){r=[];j=0;for(i=e.length;j<i;j++)r.push(null)}else r=
|
||||
g.aoColumns;j=0;for(i=r.length;j<i;j++)Ga(o,e?e[j]:null);kb(o,g.aoColumnDefs,r,function(a,b){la(o,a,b)});if(x.length){var w=function(a,b){return a.getAttribute("data-"+b)!==null?b:null};h(x[0]).children("th, td").each(function(a,b){var c=o.aoColumns[a];if(c.mData===a){var d=w(b,"sort")||w(b,"order"),e=w(b,"filter")||w(b,"search");if(d!==null||e!==null){c.mData={_:a+".display",sort:d!==null?a+".@data-"+d:k,type:d!==null?a+".@data-"+d:k,filter:e!==null?a+".@data-"+e:k};la(o,a)}}})}var U=o.oFeatures,
|
||||
e=function(){if(g.aaSorting===k){var a=o.aaSorting;j=0;for(i=a.length;j<i;j++)a[j][1]=o.aoColumns[j].asSorting[0]}ya(o);U.bSort&&z(o,"aoDrawCallback",function(){if(o.bSorted){var a=W(o),b={};h.each(a,function(a,c){b[c.src]=c.dir});s(o,null,"order",[o,a,b]);Kb(o)}});z(o,"aoDrawCallback",function(){(o.bSorted||y(o)==="ssp"||U.bDeferRender)&&ya(o)},"sc");var a=q.children("caption").each(function(){this._captionSide=h(this).css("caption-side")}),b=q.children("thead");b.length===0&&(b=h("<thead/>").appendTo(q));
|
||||
o.nTHead=b[0];b=q.children("tbody");b.length===0&&(b=h("<tbody/>").appendTo(q));o.nTBody=b[0];b=q.children("tfoot");if(b.length===0&&a.length>0&&(o.oScroll.sX!==""||o.oScroll.sY!==""))b=h("<tfoot/>").appendTo(q);if(b.length===0||b.children().length===0)q.addClass(u.sNoFooter);else if(b.length>0){o.nTFoot=b[0];ea(o.aoFooter,o.nTFoot)}if(g.aaData)for(j=0;j<g.aaData.length;j++)N(o,g.aaData[j]);else(o.bDeferLoading||y(o)=="dom")&&oa(o,h(o.nTBody).children("tr"));o.aiDisplay=o.aiDisplayMaster.slice();
|
||||
o.bInitialised=true;n===false&&ha(o)};g.bStateSave?(U.bStateSave=!0,z(o,"aoDrawCallback",za,"state_save"),Lb(o,g,e)):e()}});b=null;return this},x,t,p,u,$a={},Pb=/[\r\n]/g,Ca=/<.*?>/g,cc=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,dc=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"),Za=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi,M=function(a){return!a||!0===a||"-"===a?!0:!1},Qb=function(a){var b=parseInt(a,10);return!isNaN(b)&&
|
||||
isFinite(a)?b:null},Rb=function(a,b){$a[b]||($a[b]=RegExp(Sa(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace($a[b],"."):a},ab=function(a,b,c){var d="string"===typeof a;if(M(a))return!0;b&&d&&(a=Rb(a,b));c&&d&&(a=a.replace(Za,""));return!isNaN(parseFloat(a))&&isFinite(a)},Sb=function(a,b,c){return M(a)?!0:!(M(a)||"string"===typeof a)?null:ab(a.replace(Ca,""),b,c)?!0:null},D=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e<f;e++)a[e]&&a[e][b]&&d.push(a[e][b][c]);else for(;e<
|
||||
f;e++)a[e]&&d.push(a[e][b]);return d},ja=function(a,b,c,d){var e=[],f=0,g=b.length;if(d!==k)for(;f<g;f++)a[b[f]][c]&&e.push(a[b[f]][c][d]);else for(;f<g;f++)e.push(a[b[f]][c]);return e},X=function(a,b){var c=[],d;b===k?(b=0,d=a):(d=b,b=a);for(var e=b;e<d;e++)c.push(e);return c},Tb=function(a){for(var b=[],c=0,d=a.length;c<d;c++)a[c]&&b.push(a[c]);return b},sa=function(a){var b;a:{if(!(2>a.length)){b=a.slice().sort();for(var c=b[0],d=1,e=b.length;d<e;d++){if(b[d]===c){b=!1;break a}c=b[d]}}b=!0}if(b)return a.slice();
|
||||
b=[];var e=a.length,f,g=0,d=0;a:for(;d<e;d++){c=a[d];for(f=0;f<g;f++)if(b[f]===c)continue a;b.push(c);g++}return b};m.util={throttle:function(a,b){var c=b!==k?b:200,d,e;return function(){var b=this,g=+new Date,h=arguments;d&&g<d+c?(clearTimeout(e),e=setTimeout(function(){d=k;a.apply(b,h)},c)):(d=g,a.apply(b,h))}},escapeRegex:function(a){return a.replace(dc,"\\$1")}};var A=function(a,b,c){a[b]!==k&&(a[c]=a[b])},ca=/\[.*?\]$/,V=/\(\)$/,Sa=m.util.escapeRegex,xa=h("<div>")[0],$b=xa.textContent!==k,bc=
|
||||
/<.*?>/g,Qa=m.util.throttle,Ub=[],w=Array.prototype,ec=function(a){var b,c,d=m.settings,e=h.map(d,function(a){return a.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&"table"===a.nodeName.toLowerCase())return b=h.inArray(a,e),-1!==b?[d[b]]:null;if(a&&"function"===typeof a.settings)return a.settings().toArray();"string"===typeof a?c=h(a):a instanceof h&&(c=a)}else return[];if(c)return c.map(function(){b=h.inArray(this,e);return-1!==b?d[b]:null}).toArray()};t=function(a,b){if(!(this instanceof
|
||||
t))return new t(a,b);var c=[],d=function(a){(a=ec(a))&&(c=c.concat(a))};if(h.isArray(a))for(var e=0,f=a.length;e<f;e++)d(a[e]);else d(a);this.context=sa(c);b&&h.merge(this,b);this.selector={rows:null,cols:null,opts:null};t.extend(this,this,Ub)};m.Api=t;h.extend(t.prototype,{any:function(){return 0!==this.count()},concat:w.concat,context:[],count:function(){return this.flatten().length},each:function(a){for(var b=0,c=this.length;b<c;b++)a.call(this,this[b],b,this);return this},eq:function(a){var b=
|
||||
this.context;return b.length>a?new t(b[a],this[a]):null},filter:function(a){var b=[];if(w.filter)b=w.filter.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)a.call(this,this[c],c,this)&&b.push(this[c]);return new t(this.context,b)},flatten:function(){var a=[];return new t(this.context,a.concat.apply(a,this.toArray()))},join:w.join,indexOf:w.indexOf||function(a,b){for(var c=b||0,d=this.length;c<d;c++)if(this[c]===a)return c;return-1},iterator:function(a,b,c,d){var e=[],f,g,h,i,n,l=this.context,
|
||||
m,p,u=this.selector;"string"===typeof a&&(d=c,c=b,b=a,a=!1);g=0;for(h=l.length;g<h;g++){var s=new t(l[g]);if("table"===b)f=c.call(s,l[g],g),f!==k&&e.push(f);else if("columns"===b||"rows"===b)f=c.call(s,l[g],this[g],g),f!==k&&e.push(f);else if("column"===b||"column-rows"===b||"row"===b||"cell"===b){p=this[g];"column-rows"===b&&(m=Da(l[g],u.opts));i=0;for(n=p.length;i<n;i++)f=p[i],f="cell"===b?c.call(s,l[g],f.row,f.column,g,i):c.call(s,l[g],f,g,i,m),f!==k&&e.push(f)}}return e.length||d?(a=new t(l,a?
|
||||
e.concat.apply([],e):e),b=a.selector,b.rows=u.rows,b.cols=u.cols,b.opts=u.opts,a):this},lastIndexOf:w.lastIndexOf||function(a,b){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(a){var b=[];if(w.map)b=w.map.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)b.push(a.call(this,this[c],c));return new t(this.context,b)},pluck:function(a){return this.map(function(b){return b[a]})},pop:w.pop,push:w.push,reduce:w.reduce||function(a,b){return jb(this,a,b,0,this.length,
|
||||
1)},reduceRight:w.reduceRight||function(a,b){return jb(this,a,b,this.length-1,-1,-1)},reverse:w.reverse,selector:null,shift:w.shift,slice:function(){return new t(this.context,this)},sort:w.sort,splice:w.splice,toArray:function(){return w.slice.call(this)},to$:function(){return h(this)},toJQuery:function(){return h(this)},unique:function(){return new t(this.context,sa(this))},unshift:w.unshift});t.extend=function(a,b,c){if(c.length&&b&&(b instanceof t||b.__dt_wrapper)){var d,e,f,g=function(a,b,c){return function(){var d=
|
||||
b.apply(a,arguments);t.extend(d,d,c.methodExt);return d}};d=0;for(e=c.length;d<e;d++)f=c[d],b[f.name]="function"===typeof f.val?g(a,f.val,f):h.isPlainObject(f.val)?{}:f.val,b[f.name].__dt_wrapper=!0,t.extend(a,b[f.name],f.propExt)}};t.register=p=function(a,b){if(h.isArray(a))for(var c=0,d=a.length;c<d;c++)t.register(a[c],b);else for(var e=a.split("."),f=Ub,g,j,c=0,d=e.length;c<d;c++){g=(j=-1!==e[c].indexOf("()"))?e[c].replace("()",""):e[c];var i;a:{i=0;for(var n=f.length;i<n;i++)if(f[i].name===g){i=
|
||||
f[i];break a}i=null}i||(i={name:g,val:{},methodExt:[],propExt:[]},f.push(i));c===d-1?i.val=b:f=j?i.methodExt:i.propExt}};t.registerPlural=u=function(a,b,c){t.register(a,c);t.register(b,function(){var a=c.apply(this,arguments);return a===this?this:a instanceof t?a.length?h.isArray(a[0])?new t(a.context,a[0]):a[0]:k:a})};p("tables()",function(a){var b;if(a){b=t;var c=this.context;if("number"===typeof a)a=[c[a]];else var d=h.map(c,function(a){return a.nTable}),a=h(d).filter(a).map(function(){var a=h.inArray(this,
|
||||
d);return c[a]}).toArray();b=new b(a)}else b=this;return b});p("table()",function(a){var a=this.tables(a),b=a.context;return b.length?new t(b[0]):a});u("tables().nodes()","table().node()",function(){return this.iterator("table",function(a){return a.nTable},1)});u("tables().body()","table().body()",function(){return this.iterator("table",function(a){return a.nTBody},1)});u("tables().header()","table().header()",function(){return this.iterator("table",function(a){return a.nTHead},1)});u("tables().footer()",
|
||||
"table().footer()",function(){return this.iterator("table",function(a){return a.nTFoot},1)});u("tables().containers()","table().container()",function(){return this.iterator("table",function(a){return a.nTableWrapper},1)});p("draw()",function(a){return this.iterator("table",function(b){"page"===a?O(b):("string"===typeof a&&(a="full-hold"===a?!1:!0),T(b,!1===a))})});p("page()",function(a){return a===k?this.page.info().page:this.iterator("table",function(b){Va(b,a)})});p("page.info()",function(){if(0===
|
||||
this.context.length)return k;var a=this.context[0],b=a._iDisplayStart,c=a.oFeatures.bPaginate?a._iDisplayLength:-1,d=a.fnRecordsDisplay(),e=-1===c;return{page:e?0:Math.floor(b/c),pages:e?1:Math.ceil(d/c),start:b,end:a.fnDisplayEnd(),length:c,recordsTotal:a.fnRecordsTotal(),recordsDisplay:d,serverSide:"ssp"===y(a)}});p("page.len()",function(a){return a===k?0!==this.context.length?this.context[0]._iDisplayLength:k:this.iterator("table",function(b){Ta(b,a)})});var Vb=function(a,b,c){if(c){var d=new t(a);
|
||||
d.one("draw",function(){c(d.ajax.json())})}if("ssp"==y(a))T(a,b);else{C(a,!0);var e=a.jqXHR;e&&4!==e.readyState&&e.abort();ua(a,[],function(c){pa(a);for(var c=va(a,c),d=0,e=c.length;d<e;d++)N(a,c[d]);T(a,b);C(a,!1)})}};p("ajax.json()",function(){var a=this.context;if(0<a.length)return a[0].json});p("ajax.params()",function(){var a=this.context;if(0<a.length)return a[0].oAjaxData});p("ajax.reload()",function(a,b){return this.iterator("table",function(c){Vb(c,!1===b,a)})});p("ajax.url()",function(a){var b=
|
||||
this.context;if(a===k){if(0===b.length)return k;b=b[0];return b.ajax?h.isPlainObject(b.ajax)?b.ajax.url:b.ajax:b.sAjaxSource}return this.iterator("table",function(b){h.isPlainObject(b.ajax)?b.ajax.url=a:b.ajax=a})});p("ajax.url().load()",function(a,b){return this.iterator("table",function(c){Vb(c,!1===b,a)})});var bb=function(a,b,c,d,e){var f=[],g,j,i,n,l,m;i=typeof b;if(!b||"string"===i||"function"===i||b.length===k)b=[b];i=0;for(n=b.length;i<n;i++){j=b[i]&&b[i].split&&!b[i].match(/[\[\(:]/)?b[i].split(","):
|
||||
[b[i]];l=0;for(m=j.length;l<m;l++)(g=c("string"===typeof j[l]?h.trim(j[l]):j[l]))&&g.length&&(f=f.concat(g))}a=x.selector[a];if(a.length){i=0;for(n=a.length;i<n;i++)f=a[i](d,e,f)}return sa(f)},cb=function(a){a||(a={});a.filter&&a.search===k&&(a.search=a.filter);return h.extend({search:"none",order:"current",page:"all"},a)},db=function(a){for(var b=0,c=a.length;b<c;b++)if(0<a[b].length)return a[0]=a[b],a[0].length=1,a.length=1,a.context=[a.context[b]],a;a.length=0;return a},Da=function(a,b){var c,
|
||||
d,e,f=[],g=a.aiDisplay;c=a.aiDisplayMaster;var j=b.search;d=b.order;e=b.page;if("ssp"==y(a))return"removed"===j?[]:X(0,c.length);if("current"==e){c=a._iDisplayStart;for(d=a.fnDisplayEnd();c<d;c++)f.push(g[c])}else if("current"==d||"applied"==d)f="none"==j?c.slice():"applied"==j?g.slice():h.map(c,function(a){return-1===h.inArray(a,g)?a:null});else if("index"==d||"original"==d){c=0;for(d=a.aoData.length;c<d;c++)"none"==j?f.push(c):(e=h.inArray(c,g),(-1===e&&"removed"==j||0<=e&&"applied"==j)&&f.push(c))}return f};
|
||||
p("rows()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=cb(b),c=this.iterator("table",function(c){var e=b,f;return bb("row",a,function(a){var b=Qb(a);if(b!==null&&!e)return[b];f||(f=Da(c,e));if(b!==null&&h.inArray(b,f)!==-1)return[b];if(a===null||a===k||a==="")return f;if(typeof a==="function")return h.map(f,function(b){var e=c.aoData[b];return a(b,e._aData,e.nTr)?b:null});b=Tb(ja(c.aoData,f,"nTr"));if(a.nodeName){if(a._DT_RowIndex!==k)return[a._DT_RowIndex];if(a._DT_CellIndex)return[a._DT_CellIndex.row];
|
||||
b=h(a).closest("*[data-dt-row]");return b.length?[b.data("dt-row")]:[]}if(typeof a==="string"&&a.charAt(0)==="#"){var i=c.aIds[a.replace(/^#/,"")];if(i!==k)return[i.idx]}return h(b).filter(a).map(function(){return this._DT_RowIndex}).toArray()},c,e)},1);c.selector.rows=a;c.selector.opts=b;return c});p("rows().nodes()",function(){return this.iterator("row",function(a,b){return a.aoData[b].nTr||k},1)});p("rows().data()",function(){return this.iterator(!0,"rows",function(a,b){return ja(a.aoData,b,"_aData")},
|
||||
1)});u("rows().cache()","row().cache()",function(a){return this.iterator("row",function(b,c){var d=b.aoData[c];return"search"===a?d._aFilterData:d._aSortData},1)});u("rows().invalidate()","row().invalidate()",function(a){return this.iterator("row",function(b,c){da(b,c,a)})});u("rows().indexes()","row().index()",function(){return this.iterator("row",function(a,b){return b},1)});u("rows().ids()","row().id()",function(a){for(var b=[],c=this.context,d=0,e=c.length;d<e;d++)for(var f=0,g=this[d].length;f<
|
||||
g;f++){var h=c[d].rowIdFn(c[d].aoData[this[d][f]]._aData);b.push((!0===a?"#":"")+h)}return new t(c,b)});u("rows().remove()","row().remove()",function(){var a=this;this.iterator("row",function(b,c,d){var e=b.aoData,f=e[c],g,h,i,n,l;e.splice(c,1);g=0;for(h=e.length;g<h;g++)if(i=e[g],l=i.anCells,null!==i.nTr&&(i.nTr._DT_RowIndex=g),null!==l){i=0;for(n=l.length;i<n;i++)l[i]._DT_CellIndex.row=g}qa(b.aiDisplayMaster,c);qa(b.aiDisplay,c);qa(a[d],c,!1);Ua(b);c=b.rowIdFn(f._aData);c!==k&&delete b.aIds[c]});
|
||||
this.iterator("table",function(a){for(var c=0,d=a.aoData.length;c<d;c++)a.aoData[c].idx=c});return this});p("rows.add()",function(a){var b=this.iterator("table",function(b){var c,f,g,h=[];f=0;for(g=a.length;f<g;f++)c=a[f],c.nodeName&&"TR"===c.nodeName.toUpperCase()?h.push(oa(b,c)[0]):h.push(N(b,c));return h},1),c=this.rows(-1);c.pop();h.merge(c,b);return c});p("row()",function(a,b){return db(this.rows(a,b))});p("row().data()",function(a){var b=this.context;if(a===k)return b.length&&this.length?b[0].aoData[this[0]]._aData:
|
||||
k;b[0].aoData[this[0]]._aData=a;da(b[0],this[0],"data");return this});p("row().node()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]].nTr||null:null});p("row.add()",function(a){a instanceof h&&a.length&&(a=a[0]);var b=this.iterator("table",function(b){return a.nodeName&&"TR"===a.nodeName.toUpperCase()?oa(b,a)[0]:N(b,a)});return this.row(b[0])});var eb=function(a,b){var c=a.context;if(c.length&&(c=c[0].aoData[b!==k?b:a[0]])&&c._details)c._details.remove(),c._detailsShow=
|
||||
k,c._details=k},Wb=function(a,b){var c=a.context;if(c.length&&a.length){var d=c[0].aoData[a[0]];if(d._details){(d._detailsShow=b)?d._details.insertAfter(d.nTr):d._details.detach();var e=c[0],f=new t(e),g=e.aoData;f.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details");0<D(g,"_details").length&&(f.on("draw.dt.DT_details",function(a,b){e===b&&f.rows({page:"current"}).eq(0).each(function(a){a=g[a];a._detailsShow&&a._details.insertAfter(a.nTr)})}),f.on("column-visibility.dt.DT_details",
|
||||
function(a,b){if(e===b)for(var c,d=ba(b),f=0,h=g.length;f<h;f++)c=g[f],c._details&&c._details.children("td[colspan]").attr("colspan",d)}),f.on("destroy.dt.DT_details",function(a,b){if(e===b)for(var c=0,d=g.length;c<d;c++)g[c]._details&&eb(f,c)}))}}};p("row().child()",function(a,b){var c=this.context;if(a===k)return c.length&&this.length?c[0].aoData[this[0]]._details:k;if(!0===a)this.child.show();else if(!1===a)eb(this);else if(c.length&&this.length){var d=c[0],c=c[0].aoData[this[0]],e=[],f=function(a,
|
||||
b){if(h.isArray(a)||a instanceof h)for(var c=0,k=a.length;c<k;c++)f(a[c],b);else a.nodeName&&"tr"===a.nodeName.toLowerCase()?e.push(a):(c=h("<tr><td/></tr>").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=ba(d),e.push(c[0]))};f(a,b);c._details&&c._details.detach();c._details=h(e);c._detailsShow&&c._details.insertAfter(c.nTr)}return this});p(["row().child.show()","row().child().show()"],function(){Wb(this,!0);return this});p(["row().child.hide()","row().child().hide()"],function(){Wb(this,!1);
|
||||
return this});p(["row().child.remove()","row().child().remove()"],function(){eb(this);return this});p("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var fc=/^([^:]+):(name|visIdx|visible)$/,Xb=function(a,b,c,d,e){for(var c=[],d=0,f=e.length;d<f;d++)c.push(B(a,e[d],b));return c};p("columns()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=cb(b),c=this.iterator("table",function(c){var e=a,f=b,g=c.aoColumns,
|
||||
j=D(g,"sName"),i=D(g,"nTh");return bb("column",e,function(a){var b=Qb(a);if(a==="")return X(g.length);if(b!==null)return[b>=0?b:g.length+b];if(typeof a==="function"){var e=Da(c,f);return h.map(g,function(b,f){return a(f,Xb(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(fc):"";if(k)switch(k[2]){case "visIdx":case "visible":b=parseInt(k[1],10);if(b<0){var m=h.map(g,function(a,b){return a.bVisible?b:null});return[m[m.length+b]]}return[$(c,b)];case "name":return h.map(j,function(a,b){return a===
|
||||
k[1]?b:null});default:return[]}if(a.nodeName&&a._DT_CellIndex)return[a._DT_CellIndex.column];b=h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray();if(b.length||!a.nodeName)return b;b=h(a).closest("*[data-dt-column]");return b.length?[b.data("dt-column")]:[]},c,f)},1);c.selector.cols=a;c.selector.opts=b;return c});u("columns().header()","column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});u("columns().footer()","column().footer()",
|
||||
function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});u("columns().data()","column().data()",function(){return this.iterator("column-rows",Xb,1)});u("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},1)});u("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,d,e,f){return ja(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});u("columns().nodes()",
|
||||
"column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ja(a.aoData,e,"anCells",b)},1)});u("columns().visible()","column().visible()",function(a,b){var c=this.iterator("column",function(b,c){if(a===k)return b.aoColumns[c].bVisible;var f=b.aoColumns,g=f[c],j=b.aoData,i,n,l;if(a!==k&&g.bVisible!==a){if(a){var m=h.inArray(!0,D(f,"bVisible"),c+1);i=0;for(n=j.length;i<n;i++)l=j[i].nTr,f=j[i].anCells,l&&l.insertBefore(f[c],f[m]||null)}else h(D(b.aoData,"anCells",c)).detach();
|
||||
g.bVisible=a;fa(b,b.aoHeader);fa(b,b.aoFooter);za(b)}});a!==k&&(this.iterator("column",function(c,e){s(c,null,"column-visibility",[c,e,a,b])}),(b===k||b)&&this.columns.adjust());return c});u("columns().indexes()","column().index()",function(a){return this.iterator("column",function(b,c){return"visible"===a?aa(b,c):c},1)});p("columns.adjust()",function(){return this.iterator("table",function(a){Z(a)},1)});p("column.index()",function(a,b){if(0!==this.context.length){var c=this.context[0];if("fromVisible"===
|
||||
a||"toData"===a)return $(c,b);if("fromData"===a||"toVisible"===a)return aa(c,b)}});p("column()",function(a,b){return db(this.columns(a,b))});p("cells()",function(a,b,c){h.isPlainObject(a)&&(a.row===k?(c=a,a=null):(c=b,b=null));h.isPlainObject(b)&&(c=b,b=null);if(null===b||b===k)return this.iterator("table",function(b){var d=a,e=cb(c),f=b.aoData,g=Da(b,e),j=Tb(ja(f,g,"anCells")),i=h([].concat.apply([],j)),l,n=b.aoColumns.length,m,p,u,t,s,v;return bb("cell",d,function(a){var c=typeof a==="function";
|
||||
if(a===null||a===k||c){m=[];p=0;for(u=g.length;p<u;p++){l=g[p];for(t=0;t<n;t++){s={row:l,column:t};if(c){v=f[l];a(s,B(b,l,t),v.anCells?v.anCells[t]:null)&&m.push(s)}else m.push(s)}}return m}if(h.isPlainObject(a))return[a];c=i.filter(a).map(function(a,b){return{row:b._DT_CellIndex.row,column:b._DT_CellIndex.column}}).toArray();if(c.length||!a.nodeName)return c;v=h(a).closest("*[data-dt-row]");return v.length?[{row:v.data("dt-row"),column:v.data("dt-column")}]:[]},b,e)});var d=this.columns(b,c),e=this.rows(a,
|
||||
c),f,g,j,i,n,l=this.iterator("table",function(a,b){f=[];g=0;for(j=e[b].length;g<j;g++){i=0;for(n=d[b].length;i<n;i++)f.push({row:e[b][g],column:d[b][i]})}return f},1);h.extend(l.selector,{cols:b,rows:a,opts:c});return l});u("cells().nodes()","cell().node()",function(){return this.iterator("cell",function(a,b,c){return(a=a.aoData[b])&&a.anCells?a.anCells[c]:k},1)});p("cells().data()",function(){return this.iterator("cell",function(a,b,c){return B(a,b,c)},1)});u("cells().cache()","cell().cache()",function(a){a=
|
||||
"search"===a?"_aFilterData":"_aSortData";return this.iterator("cell",function(b,c,d){return b.aoData[c][a][d]},1)});u("cells().render()","cell().render()",function(a){return this.iterator("cell",function(b,c,d){return B(b,c,d,a)},1)});u("cells().indexes()","cell().index()",function(){return this.iterator("cell",function(a,b,c){return{row:b,column:c,columnVisible:aa(a,c)}},1)});u("cells().invalidate()","cell().invalidate()",function(a){return this.iterator("cell",function(b,c,d){da(b,c,a,d)})});p("cell()",
|
||||
function(a,b,c){return db(this.cells(a,b,c))});p("cell().data()",function(a){var b=this.context,c=this[0];if(a===k)return b.length&&c.length?B(b[0],c[0].row,c[0].column):k;lb(b[0],c[0].row,c[0].column,a);da(b[0],c[0].row,"data",c[0].column);return this});p("order()",function(a,b){var c=this.context;if(a===k)return 0!==c.length?c[0].aaSorting:k;"number"===typeof a?a=[[a,b]]:a.length&&!h.isArray(a[0])&&(a=Array.prototype.slice.call(arguments));return this.iterator("table",function(b){b.aaSorting=a.slice()})});
|
||||
p("order.listener()",function(a,b,c){return this.iterator("table",function(d){Oa(d,a,b,c)})});p("order.fixed()",function(a){if(!a){var b=this.context,b=b.length?b[0].aaSortingFixed:k;return h.isArray(b)?{pre:b}:b}return this.iterator("table",function(b){b.aaSortingFixed=h.extend(!0,{},a)})});p(["columns().order()","column().order()"],function(a){var b=this;return this.iterator("table",function(c,d){var e=[];h.each(b[d],function(b,c){e.push([c,a])});c.aaSorting=e})});p("search()",function(a,b,c,d){var e=
|
||||
this.context;return a===k?0!==e.length?e[0].oPreviousSearch.sSearch:k:this.iterator("table",function(e){e.oFeatures.bFilter&&ga(e,h.extend({},e.oPreviousSearch,{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),1)})});u("columns().search()","column().search()",function(a,b,c,d){return this.iterator("column",function(e,f){var g=e.aoPreSearchCols;if(a===k)return g[f].sSearch;e.oFeatures.bFilter&&(h.extend(g[f],{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?
|
||||
!0:c,bCaseInsensitive:null===d?!0:d}),ga(e,e.oPreviousSearch,1))})});p("state()",function(){return this.context.length?this.context[0].oSavedState:null});p("state.clear()",function(){return this.iterator("table",function(a){a.fnStateSaveCallback.call(a.oInstance,a,{})})});p("state.loaded()",function(){return this.context.length?this.context[0].oLoadedState:null});p("state.save()",function(){return this.iterator("table",function(a){za(a)})});m.versionCheck=m.fnVersionCheck=function(a){for(var b=m.version.split("."),
|
||||
a=a.split("."),c,d,e=0,f=a.length;e<f;e++)if(c=parseInt(b[e],10)||0,d=parseInt(a[e],10)||0,c!==d)return c>d;return!0};m.isDataTable=m.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;if(a instanceof m.Api)return!0;h.each(m.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot?h("table",e.nScrollFoot)[0]:null;if(e.nTable===b||f===b||g===b)c=!0});return c};m.tables=m.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(m.settings,
|
||||
function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable});return b?new t(c):c};m.camelToHungarian=J;p("$()",function(a,b){var c=this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){p(b+"()",function(){var a=Array.prototype.slice.call(arguments);a[0]=h.map(a[0].split(/\s/),function(a){return!a.match(/\.dt\b/)?a+".dt":a}).join(" ");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});p("clear()",function(){return this.iterator("table",
|
||||
function(a){pa(a)})});p("settings()",function(){return new t(this.context,this.context)});p("init()",function(){var a=this.context;return a.length?a[0].oInit:null});p("data()",function(){return this.iterator("table",function(a){return D(a.aoData,"_aData")}).flatten()});p("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),
|
||||
p;b.bDestroying=!0;s(b,"aoDestroyCallback","destroy",[b]);a||(new t(b)).columns().visible(!0);k.off(".DT").find(":not(tbody *)").off(".DT");h(E).off(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j));b.aaSorting=[];b.aaSortingFixed=[];ya(b);h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);b.bJUI&&(h("th span."+d.sSortIcon+
|
||||
", td span."+d.sSortIcon,g).detach(),h("th, td",g).each(function(){var a=h("div."+d.sSortJUIWrapper,this);h(this).append(a.contents());a.detach()}));f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width",b.sDestroyWidth).removeClass(d.sTable),(p=b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%p])}));c=h.inArray(b,m.settings);-1!==c&&m.settings.splice(c,1)})});h.each(["column",
|
||||
"row","cell"],function(a,b){p(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,m){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,m)})})});p("i18n()",function(a,b,c){var d=this.context[0],a=R(a)(d.oLanguage);a===k&&(a=b);c!==k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:a._);return a.replace("%d",c)});m.version="1.10.15";m.settings=[];m.models={};m.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};m.models.oRow={nTr:null,anCells:null,
|
||||
_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};m.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};m.defaults=
|
||||
{aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bJQueryUI:!1,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,
|
||||
this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+
|
||||
"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",
|
||||
sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},m.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};
|
||||
Y(m.defaults);m.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};Y(m.defaults.column);m.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,
|
||||
bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],
|
||||
aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k,fnServerData:null,
|
||||
aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,bJUI:null,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==y(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=
|
||||
this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};m.ext=x={buttons:{},classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},
|
||||
header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:m.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:m.version};h.extend(x,{afnFiltering:x.search,aTypes:x.type.detect,ofnSearch:x.type.search,oSort:x.type.order,afnSortData:x.order,aoFeatures:x.feature,oApi:x.internal,oStdClasses:x.classes,oPagination:x.pager});h.extend(m.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",
|
||||
sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",
|
||||
sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sJUIHeader:"",sJUIFooter:""});var Ea="",Ea="",G=Ea+"ui-state-default",ka=Ea+"css_right ui-icon ui-icon-",Yb=Ea+"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix";h.extend(m.ext.oJUIClasses,
|
||||
m.ext.classes,{sPageButton:"fg-button ui-button "+G,sPageButtonActive:"ui-state-disabled",sPageButtonDisabled:"ui-state-disabled",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sSortAsc:G+" sorting_asc",sSortDesc:G+" sorting_desc",sSortable:G+" sorting",sSortableAsc:G+" sorting_asc_disabled",sSortableDesc:G+" sorting_desc_disabled",sSortableNone:G+" sorting_disabled",sSortJUIAsc:ka+"triangle-1-n",sSortJUIDesc:ka+"triangle-1-s",sSortJUI:ka+"carat-2-n-s",
|
||||
sSortJUIAscAllowed:ka+"carat-1-n",sSortJUIDescAllowed:ka+"carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead "+G,sScrollFoot:"dataTables_scrollFoot "+G,sHeaderTH:G,sFooterTH:G,sJUIHeader:Yb+" ui-corner-tl ui-corner-tr",sJUIFooter:Yb+" ui-corner-bl ui-corner-br"});var Nb=m.ext.pager;h.extend(Nb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[ia(a,
|
||||
b)]},simple_numbers:function(a,b){return["previous",ia(a,b),"next"]},full_numbers:function(a,b){return["first","previous",ia(a,b),"next","last"]},first_last_numbers:function(a,b){return["first",ia(a,b),"last"]},_numbers:ia,numbers_length:7});h.extend(!0,m.ext.renderer,{pageButton:{_:function(a,b,c,d,e,f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||{},m,l,p=0,r=function(b,d){var k,t,u,s,v=function(b){Va(a,b.data.action,true)};k=0;for(t=d.length;k<t;k++){s=d[k];if(h.isArray(s)){u=
|
||||
h("<"+(s.DT_el||"div")+"/>").appendTo(b);r(u,s)}else{m=null;l="";switch(s){case "ellipsis":b.append('<span class="ellipsis">…</span>');break;case "first":m=j.sFirst;l=s+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":m=j.sPrevious;l=s+(e>0?"":" "+g.sPageButtonDisabled);break;case "next":m=j.sNext;l=s+(e<f-1?"":" "+g.sPageButtonDisabled);break;case "last":m=j.sLast;l=s+(e<f-1?"":" "+g.sPageButtonDisabled);break;default:m=s+1;l=e===s?g.sPageButtonActive:""}if(m!==null){u=h("<a>",{"class":g.sPageButton+
|
||||
" "+l,"aria-controls":a.sTableId,"aria-label":i[s],"data-dt-idx":p,tabindex:a.iTabIndex,id:c===0&&typeof s==="string"?a.sTableId+"_"+s:null}).html(m).appendTo(b);Ya(u,{action:s},v);p++}}}},t;try{t=h(b).find(H.activeElement).data("dt-idx")}catch(u){}r(h(b).empty(),d);t!==k&&h(b).find("[data-dt-idx="+t+"]").focus()}}});h.extend(m.ext.type.detect,[function(a,b){var c=b.oLanguage.sDecimal;return ab(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&!cc.test(a))return null;var b=Date.parse(a);
|
||||
return null!==b&&!isNaN(b)||M(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return ab(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Sb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Sb(a,c,!0)?"html-num-fmt"+c:null},function(a){return M(a)||"string"===typeof a&&-1!==a.indexOf("<")?"html":null}]);h.extend(m.ext.type.search,{html:function(a){return M(a)?a:"string"===typeof a?a.replace(Pb," ").replace(Ca,""):""},string:function(a){return M(a)?
|
||||
a:"string"===typeof a?a.replace(Pb," "):a}});var Ba=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Rb(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(x.type.order,{"date-pre":function(a){return Date.parse(a)||-Infinity},"html-pre":function(a){return M(a)?"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():a+""},"string-pre":function(a){return M(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return a<
|
||||
b?-1:a>b?1:0},"string-desc":function(a,b){return a<b?1:a>b?-1:0}});fb("");h.extend(!0,m.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass)}})},jqueryui:function(a,b,c,d){h("<div/>").addClass(d.sSortJUIWrapper).append(b.contents()).append(h("<span/>").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);
|
||||
h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]=="asc"?d.sSortJUIAsc:h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});var Zb=function(a){return"string"===typeof a?a.replace(/</g,"<").replace(/>/g,">").replace(/"/g,
|
||||
"""):a};m.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return Zb(f);h=h.toFixed(c);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,a)+f+(e||"")}}},text:function(){return{display:Zb}}};h.extend(m.ext.internal,{_fnExternApiFunc:Ob,_fnBuildAjax:ua,_fnAjaxUpdate:nb,_fnAjaxParameters:wb,_fnAjaxUpdateDraw:xb,
|
||||
_fnAjaxDataSrc:va,_fnAddColumn:Ga,_fnColumnOptions:la,_fnAdjustColumnSizing:Z,_fnVisibleToColumnIndex:$,_fnColumnIndexToVisible:aa,_fnVisbleColumns:ba,_fnGetColumns:na,_fnColumnTypes:Ia,_fnApplyColumnDefs:kb,_fnHungarianMap:Y,_fnCamelToHungarian:J,_fnLanguageCompat:Fa,_fnBrowserDetect:ib,_fnAddData:N,_fnAddTr:oa,_fnNodeToDataIndex:function(a,b){return b._DT_RowIndex!==k?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:lb,
|
||||
_fnSplitObjNotation:La,_fnGetObjectDataFn:R,_fnSetObjectDataFn:S,_fnGetDataMaster:Ma,_fnClearTable:pa,_fnDeleteIndex:qa,_fnInvalidate:da,_fnGetRowElements:Ka,_fnCreateTr:Ja,_fnBuildHead:mb,_fnDrawHead:fa,_fnDraw:O,_fnReDraw:T,_fnAddOptionsHtml:pb,_fnDetectHeader:ea,_fnGetUniqueThs:ta,_fnFeatureHtmlFilter:rb,_fnFilterComplete:ga,_fnFilterCustom:Ab,_fnFilterColumn:zb,_fnFilter:yb,_fnFilterCreateSearch:Ra,_fnEscapeRegex:Sa,_fnFilterData:Bb,_fnFeatureHtmlInfo:ub,_fnUpdateInfo:Eb,_fnInfoMacros:Fb,_fnInitialise:ha,
|
||||
_fnInitComplete:wa,_fnLengthChange:Ta,_fnFeatureHtmlLength:qb,_fnFeatureHtmlPaginate:vb,_fnPageChange:Va,_fnFeatureHtmlProcessing:sb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:tb,_fnScrollDraw:ma,_fnApplyToChildren:I,_fnCalculateColumnWidths:Ha,_fnThrottle:Qa,_fnConvertToWidth:Gb,_fnGetWidestNode:Hb,_fnGetMaxLenString:Ib,_fnStringToCss:v,_fnSortFlatten:W,_fnSort:ob,_fnSortAria:Kb,_fnSortListener:Xa,_fnSortAttachListener:Oa,_fnSortingClasses:ya,_fnSortData:Jb,_fnSaveState:za,_fnLoadState:Lb,_fnSettingsFromNode:Aa,
|
||||
_fnLog:K,_fnMap:F,_fnBindAction:Ya,_fnCallbackReg:z,_fnCallbackFire:s,_fnLengthOverflow:Ua,_fnRenderer:Pa,_fnDataSource:y,_fnRowAttributes:Na,_fnCalculateEnd:function(){}});h.fn.dataTable=m;m.$=h;h.fn.dataTableSettings=m.settings;h.fn.dataTableExt=m.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};h.each(m,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable});
|
||||
@ -1,178 +0,0 @@
|
||||
table.dataTable.dtr-inline.collapsed > tbody > tr > td.child,
|
||||
table.dataTable.dtr-inline.collapsed > tbody > tr > th.child,
|
||||
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty {
|
||||
cursor: default !important;
|
||||
}
|
||||
table.dataTable.dtr-inline.collapsed > tbody > tr > td.child:before,
|
||||
table.dataTable.dtr-inline.collapsed > tbody > tr > th.child:before,
|
||||
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dataTables_empty:before {
|
||||
display: none !important;
|
||||
}
|
||||
table.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child,
|
||||
table.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child {
|
||||
position: relative;
|
||||
padding-left: 30px;
|
||||
cursor: pointer;
|
||||
}
|
||||
table.dataTable.dtr-inline.collapsed > tbody > tr > td:first-child:before,
|
||||
table.dataTable.dtr-inline.collapsed > tbody > tr > th:first-child:before {
|
||||
top: 9px;
|
||||
left: 4px;
|
||||
height: 14px;
|
||||
width: 14px;
|
||||
display: block;
|
||||
position: absolute;
|
||||
color: white;
|
||||
border: 2px solid white;
|
||||
border-radius: 14px;
|
||||
box-shadow: 0 0 3px #444;
|
||||
box-sizing: content-box;
|
||||
text-align: center;
|
||||
font-family: 'Courier New', Courier, monospace;
|
||||
line-height: 14px;
|
||||
content: '+';
|
||||
background-color: #31b131;
|
||||
}
|
||||
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td:first-child:before,
|
||||
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th:first-child:before {
|
||||
content: '-';
|
||||
background-color: #d33333;
|
||||
}
|
||||
table.dataTable.dtr-inline.collapsed > tbody > tr.child td:before {
|
||||
display: none;
|
||||
}
|
||||
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child,
|
||||
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child {
|
||||
padding-left: 27px;
|
||||
}
|
||||
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > td:first-child:before,
|
||||
table.dataTable.dtr-inline.collapsed.compact > tbody > tr > th:first-child:before {
|
||||
top: 5px;
|
||||
left: 4px;
|
||||
height: 14px;
|
||||
width: 14px;
|
||||
border-radius: 14px;
|
||||
line-height: 14px;
|
||||
text-indent: 3px;
|
||||
}
|
||||
table.dataTable.dtr-column > tbody > tr > td.control,
|
||||
table.dataTable.dtr-column > tbody > tr > th.control {
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
}
|
||||
table.dataTable.dtr-column > tbody > tr > td.control:before,
|
||||
table.dataTable.dtr-column > tbody > tr > th.control:before {
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
height: 16px;
|
||||
width: 16px;
|
||||
margin-top: -10px;
|
||||
margin-left: -10px;
|
||||
display: block;
|
||||
position: absolute;
|
||||
color: white;
|
||||
border: 2px solid white;
|
||||
border-radius: 14px;
|
||||
box-shadow: 0 0 3px #444;
|
||||
box-sizing: content-box;
|
||||
text-align: center;
|
||||
font-family: 'Courier New', Courier, monospace;
|
||||
line-height: 14px;
|
||||
content: '+';
|
||||
background-color: #31b131;
|
||||
}
|
||||
table.dataTable.dtr-column > tbody > tr.parent td.control:before,
|
||||
table.dataTable.dtr-column > tbody > tr.parent th.control:before {
|
||||
content: '-';
|
||||
background-color: #d33333;
|
||||
}
|
||||
table.dataTable > tbody > tr.child {
|
||||
padding: 0.5em 1em;
|
||||
}
|
||||
table.dataTable > tbody > tr.child:hover {
|
||||
background: transparent !important;
|
||||
}
|
||||
table.dataTable > tbody > tr.child ul.dtr-details {
|
||||
display: inline-block;
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
table.dataTable > tbody > tr.child ul.dtr-details li {
|
||||
border-bottom: 1px solid #efefef;
|
||||
padding: 0.5em 0;
|
||||
}
|
||||
table.dataTable > tbody > tr.child ul.dtr-details li:first-child {
|
||||
padding-top: 0;
|
||||
}
|
||||
table.dataTable > tbody > tr.child ul.dtr-details li:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
table.dataTable > tbody > tr.child span.dtr-title {
|
||||
display: inline-block;
|
||||
min-width: 75px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div.dtr-modal {
|
||||
position: fixed;
|
||||
box-sizing: border-box;
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
z-index: 100;
|
||||
padding: 10em 1em;
|
||||
}
|
||||
div.dtr-modal div.dtr-modal-display {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
width: 50%;
|
||||
height: 50%;
|
||||
overflow: auto;
|
||||
margin: auto;
|
||||
z-index: 102;
|
||||
overflow: auto;
|
||||
background-color: #f5f5f7;
|
||||
border: 1px solid black;
|
||||
border-radius: 0.5em;
|
||||
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
div.dtr-modal div.dtr-modal-content {
|
||||
position: relative;
|
||||
padding: 1em;
|
||||
}
|
||||
div.dtr-modal div.dtr-modal-close {
|
||||
position: absolute;
|
||||
top: 6px;
|
||||
right: 6px;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
border: 1px solid #eaeaea;
|
||||
background-color: #f9f9f9;
|
||||
text-align: center;
|
||||
border-radius: 3px;
|
||||
cursor: pointer;
|
||||
z-index: 12;
|
||||
}
|
||||
div.dtr-modal div.dtr-modal-close:hover {
|
||||
background-color: #eaeaea;
|
||||
}
|
||||
div.dtr-modal div.dtr-modal-background {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 101;
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
@media screen and (max-width: 767px) {
|
||||
div.dtr-modal div.dtr-modal-display {
|
||||
width: 95%;
|
||||
}
|
||||
}
|
||||
@ -1 +0,0 @@
|
||||
table.dataTable.dtr-inline.collapsed>tbody>tr>td.child,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty{cursor:default !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th.child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>td.dataTables_empty:before{display:none !important}table.dataTable.dtr-inline.collapsed>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed>tbody>tr>th:first-child{position:relative;padding-left:30px;cursor:pointer}table.dataTable.dtr-inline.collapsed>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr>th:first-child:before{top:9px;left:4px;height:14px;width:14px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#31b131}table.dataTable.dtr-inline.collapsed>tbody>tr.parent>td:first-child:before,table.dataTable.dtr-inline.collapsed>tbody>tr.parent>th:first-child:before{content:'-';background-color:#d33333}table.dataTable.dtr-inline.collapsed>tbody>tr.child td:before{display:none}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child{padding-left:27px}table.dataTable.dtr-inline.collapsed.compact>tbody>tr>td:first-child:before,table.dataTable.dtr-inline.collapsed.compact>tbody>tr>th:first-child:before{top:5px;left:4px;height:14px;width:14px;border-radius:14px;line-height:14px;text-indent:3px}table.dataTable.dtr-column>tbody>tr>td.control,table.dataTable.dtr-column>tbody>tr>th.control{position:relative;cursor:pointer}table.dataTable.dtr-column>tbody>tr>td.control:before,table.dataTable.dtr-column>tbody>tr>th.control:before{top:50%;left:50%;height:16px;width:16px;margin-top:-10px;margin-left:-10px;display:block;position:absolute;color:white;border:2px solid white;border-radius:14px;box-shadow:0 0 3px #444;box-sizing:content-box;text-align:center;font-family:'Courier New', Courier, monospace;line-height:14px;content:'+';background-color:#31b131}table.dataTable.dtr-column>tbody>tr.parent td.control:before,table.dataTable.dtr-column>tbody>tr.parent th.control:before{content:'-';background-color:#d33333}table.dataTable>tbody>tr.child{padding:0.5em 1em}table.dataTable>tbody>tr.child:hover{background:transparent !important}table.dataTable>tbody>tr.child ul.dtr-details{display:inline-block;list-style-type:none;margin:0;padding:0}table.dataTable>tbody>tr.child ul.dtr-details li{border-bottom:1px solid #efefef;padding:0.5em 0}table.dataTable>tbody>tr.child ul.dtr-details li:first-child{padding-top:0}table.dataTable>tbody>tr.child ul.dtr-details li:last-child{border-bottom:none}table.dataTable>tbody>tr.child span.dtr-title{display:inline-block;min-width:75px;font-weight:bold}div.dtr-modal{position:fixed;box-sizing:border-box;top:0;left:0;height:100%;width:100%;z-index:100;padding:10em 1em}div.dtr-modal div.dtr-modal-display{position:absolute;top:0;left:0;bottom:0;right:0;width:50%;height:50%;overflow:auto;margin:auto;z-index:102;overflow:auto;background-color:#f5f5f7;border:1px solid black;border-radius:0.5em;box-shadow:0 12px 30px rgba(0,0,0,0.6)}div.dtr-modal div.dtr-modal-content{position:relative;padding:1em}div.dtr-modal div.dtr-modal-close{position:absolute;top:6px;right:6px;width:22px;height:22px;border:1px solid #eaeaea;background-color:#f9f9f9;text-align:center;border-radius:3px;cursor:pointer;z-index:12}div.dtr-modal div.dtr-modal-close:hover{background-color:#eaeaea}div.dtr-modal div.dtr-modal-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:101;background:rgba(0,0,0,0.6)}@media screen and (max-width: 767px){div.dtr-modal div.dtr-modal-display{width:95%}}
|
||||
@ -1,26 +0,0 @@
|
||||
/*!
|
||||
Responsive 2.1.1
|
||||
2014-2016 SpryMedia Ltd - datatables.net/license
|
||||
*/
|
||||
(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(l){return c(l,window,document)}):"object"===typeof exports?module.exports=function(l,k){l||(l=window);if(!k||!k.fn.dataTable)k=require("datatables.net")(l,k).$;return c(k,l,l.document)}:c(jQuery,window,document)})(function(c,l,k,p){var m=c.fn.dataTable,j=function(b,a){if(!m.versionCheck||!m.versionCheck("1.10.3"))throw"DataTables Responsive requires DataTables 1.10.3 or newer";this.s={dt:new m.Api(b),columns:[],
|
||||
current:[]};this.s.dt.settings()[0].responsive||(a&&"string"===typeof a.details?a.details={type:a.details}:a&&!1===a.details?a.details={type:!1}:a&&!0===a.details&&(a.details={type:"inline"}),this.c=c.extend(!0,{},j.defaults,m.defaults.responsive,a),b.responsive=this,this._constructor())};c.extend(j.prototype,{_constructor:function(){var b=this,a=this.s.dt,d=a.settings()[0],e=c(l).width();a.settings()[0]._responsive=this;c(l).on("resize.dtr orientationchange.dtr",m.util.throttle(function(){var a=
|
||||
c(l).width();a!==e&&(b._resize(),e=a)}));d.oApi._fnCallbackReg(d,"aoRowCreatedCallback",function(e){-1!==c.inArray(!1,b.s.current)&&c(">td, >th",e).each(function(e){e=a.column.index("toData",e);!1===b.s.current[e]&&c(this).css("display","none")})});a.on("destroy.dtr",function(){a.off(".dtr");c(a.table().body()).off(".dtr");c(l).off("resize.dtr orientationchange.dtr");c.each(b.s.current,function(a,e){!1===e&&b._setColumnVis(a,!0)})});this.c.breakpoints.sort(function(a,b){return a.width<b.width?1:a.width>
|
||||
b.width?-1:0});this._classLogic();this._resizeAuto();d=this.c.details;!1!==d.type&&(b._detailsInit(),a.on("column-visibility.dtr",function(){b._classLogic();b._resizeAuto();b._resize()}),a.on("draw.dtr",function(){b._redrawChildren()}),c(a.table().node()).addClass("dtr-"+d.type));a.on("column-reorder.dtr",function(){b._classLogic();b._resizeAuto();b._resize()});a.on("column-sizing.dtr",function(){b._resizeAuto();b._resize()});a.on("preXhr.dtr",function(){var e=[];a.rows().every(function(){this.child.isShown()&&
|
||||
e.push(this.id(true))});a.one("draw.dtr",function(){a.rows(e).every(function(){b._detailsDisplay(this,false)})})});a.on("init.dtr",function(){b._resizeAuto();b._resize();c.inArray(false,b.s.current)&&a.columns.adjust()});this._resize()},_columnsVisiblity:function(b){var a=this.s.dt,d=this.s.columns,e,f,g=d.map(function(a,b){return{columnIdx:b,priority:a.priority}}).sort(function(a,b){return a.priority!==b.priority?a.priority-b.priority:a.columnIdx-b.columnIdx}),h=c.map(d,function(a){return a.auto&&
|
||||
null===a.minWidth?!1:!0===a.auto?"-":-1!==c.inArray(b,a.includeIn)}),n=0;e=0;for(f=h.length;e<f;e++)!0===h[e]&&(n+=d[e].minWidth);e=a.settings()[0].oScroll;e=e.sY||e.sX?e.iBarWidth:0;a=a.table().container().offsetWidth-e-n;e=0;for(f=h.length;e<f;e++)d[e].control&&(a-=d[e].minWidth);n=!1;e=0;for(f=g.length;e<f;e++){var i=g[e].columnIdx;"-"===h[i]&&(!d[i].control&&d[i].minWidth)&&(n||0>a-d[i].minWidth?(n=!0,h[i]=!1):h[i]=!0,a-=d[i].minWidth)}g=!1;e=0;for(f=d.length;e<f;e++)if(!d[e].control&&!d[e].never&&
|
||||
!h[e]){g=!0;break}e=0;for(f=d.length;e<f;e++)d[e].control&&(h[e]=g);-1===c.inArray(!0,h)&&(h[0]=!0);return h},_classLogic:function(){var b=this,a=this.c.breakpoints,d=this.s.dt,e=d.columns().eq(0).map(function(a){var b=this.column(a),e=b.header().className,a=d.settings()[0].aoColumns[a].responsivePriority;a===p&&(b=c(b.header()).data("priority"),a=b!==p?1*b:1E4);return{className:e,includeIn:[],auto:!1,control:!1,never:e.match(/\bnever\b/)?!0:!1,priority:a}}),f=function(a,b){var d=e[a].includeIn;-1===
|
||||
c.inArray(b,d)&&d.push(b)},g=function(c,d,i,g){if(i)if("max-"===i){g=b._find(d).width;d=0;for(i=a.length;d<i;d++)a[d].width<=g&&f(c,a[d].name)}else if("min-"===i){g=b._find(d).width;d=0;for(i=a.length;d<i;d++)a[d].width>=g&&f(c,a[d].name)}else{if("not-"===i){d=0;for(i=a.length;d<i;d++)-1===a[d].name.indexOf(g)&&f(c,a[d].name)}}else e[c].includeIn.push(d)};e.each(function(b,e){for(var d=b.className.split(" "),f=!1,j=0,l=d.length;j<l;j++){var k=c.trim(d[j]);if("all"===k){f=!0;b.includeIn=c.map(a,function(a){return a.name});
|
||||
return}if("none"===k||b.never){f=!0;return}if("control"===k){f=!0;b.control=!0;return}c.each(a,function(a,b){var d=b.name.split("-"),c=k.match(RegExp("(min\\-|max\\-|not\\-)?("+d[0]+")(\\-[_a-zA-Z0-9])?"));c&&(f=!0,c[2]===d[0]&&c[3]==="-"+d[1]?g(e,b.name,c[1],c[2]+c[3]):c[2]===d[0]&&!c[3]&&g(e,b.name,c[1],c[2]))})}f||(b.auto=!0)});this.s.columns=e},_detailsDisplay:function(b,a){var d=this,e=this.s.dt,f=this.c.details;if(f&&!1!==f.type){var g=f.display(b,a,function(){return f.renderer(e,b[0],d._detailsObj(b[0]))});
|
||||
(!0===g||!1===g)&&c(e.table().node()).triggerHandler("responsive-display.dt",[e,b,g,a])}},_detailsInit:function(){var b=this,a=this.s.dt,d=this.c.details;"inline"===d.type&&(d.target="td:first-child, th:first-child");a.on("draw.dtr",function(){b._tabIndexes()});b._tabIndexes();c(a.table().body()).on("keyup.dtr","td, th",function(b){b.keyCode===13&&c(this).data("dtr-keyboard")&&c(this).click()});var e=d.target;c(a.table().body()).on("click.dtr mousedown.dtr mouseup.dtr","string"===typeof e?e:"td, th",
|
||||
function(d){if(c(a.table().node()).hasClass("collapsed")&&c.inArray(c(this).closest("tr").get(0),a.rows().nodes().toArray())!==-1){if(typeof e==="number"){var g=e<0?a.columns().eq(0).length+e:e;if(a.cell(this).index().column!==g)return}g=a.row(c(this).closest("tr"));d.type==="click"?b._detailsDisplay(g,false):d.type==="mousedown"?c(this).css("outline","none"):d.type==="mouseup"&&c(this).blur().css("outline","")}})},_detailsObj:function(b){var a=this,d=this.s.dt;return c.map(this.s.columns,function(e,
|
||||
c){if(!e.never&&!e.control)return{title:d.settings()[0].aoColumns[c].sTitle,data:d.cell(b,c).render(a.c.orthogonal),hidden:d.column(c).visible()&&!a.s.current[c],columnIndex:c,rowIndex:b}})},_find:function(b){for(var a=this.c.breakpoints,d=0,c=a.length;d<c;d++)if(a[d].name===b)return a[d]},_redrawChildren:function(){var b=this,a=this.s.dt;a.rows({page:"current"}).iterator("row",function(c,e){a.row(e);b._detailsDisplay(a.row(e),!0)})},_resize:function(){var b=this,a=this.s.dt,d=c(l).width(),e=this.c.breakpoints,
|
||||
f=e[0].name,g=this.s.columns,h,j=this.s.current.slice();for(h=e.length-1;0<=h;h--)if(d<=e[h].width){f=e[h].name;break}var i=this._columnsVisiblity(f);this.s.current=i;e=!1;h=0;for(d=g.length;h<d;h++)if(!1===i[h]&&!g[h].never&&!g[h].control){e=!0;break}c(a.table().node()).toggleClass("collapsed",e);var k=!1;a.columns().eq(0).each(function(a,c){i[c]!==j[c]&&(k=!0,b._setColumnVis(a,i[c]))});k&&(this._redrawChildren(),c(a.table().node()).trigger("responsive-resize.dt",[a,this.s.current]))},_resizeAuto:function(){var b=
|
||||
this.s.dt,a=this.s.columns;if(this.c.auto&&-1!==c.inArray(!0,c.map(a,function(b){return b.auto}))){b.table().node();var d=b.table().node().cloneNode(!1),e=c(b.table().header().cloneNode(!1)).appendTo(d),f=c(b.table().body()).clone(!1,!1).empty().appendTo(d),g=b.columns().header().filter(function(a){return b.column(a).visible()}).to$().clone(!1).css("display","table-cell");c(f).append(c(b.rows({page:"current"}).nodes()).clone(!1)).find("th, td").css("display","");if(f=b.table().footer()){var f=c(f.cloneNode(!1)).appendTo(d),
|
||||
h=b.columns().footer().filter(function(a){return b.column(a).visible()}).to$().clone(!1).css("display","table-cell");c("<tr/>").append(h).appendTo(f)}c("<tr/>").append(g).appendTo(e);"inline"===this.c.details.type&&c(d).addClass("dtr-inline collapsed");c(d).find("[name]").removeAttr("name");d=c("<div/>").css({width:1,height:1,overflow:"hidden"}).append(d);d.insertBefore(b.table().node());g.each(function(c){c=b.column.index("fromVisible",c);a[c].minWidth=this.offsetWidth||0});d.remove()}},_setColumnVis:function(b,
|
||||
a){var d=this.s.dt,e=a?"":"none";c(d.column(b).header()).css("display",e);c(d.column(b).footer()).css("display",e);d.column(b).nodes().to$().css("display",e)},_tabIndexes:function(){var b=this.s.dt,a=b.cells({page:"current"}).nodes().to$(),d=b.settings()[0],e=this.c.details.target;a.filter("[data-dtr-keyboard]").removeData("[data-dtr-keyboard]");a="number"===typeof e?":eq("+e+")":e;"td:first-child, th:first-child"===a&&(a=">td:first-child, >th:first-child");c(a,b.rows({page:"current"}).nodes()).attr("tabIndex",
|
||||
d.iTabIndex).data("dtr-keyboard",1)}});j.breakpoints=[{name:"desktop",width:Infinity},{name:"tablet-l",width:1024},{name:"tablet-p",width:768},{name:"mobile-l",width:480},{name:"mobile-p",width:320}];j.display={childRow:function(b,a,d){if(a){if(c(b.node()).hasClass("parent"))return b.child(d(),"child").show(),!0}else{if(b.child.isShown())return b.child(!1),c(b.node()).removeClass("parent"),!1;b.child(d(),"child").show();c(b.node()).addClass("parent");return!0}},childRowImmediate:function(b,a,d){if(!a&&
|
||||
b.child.isShown()||!b.responsive.hasHidden())return b.child(!1),c(b.node()).removeClass("parent"),!1;b.child(d(),"child").show();c(b.node()).addClass("parent");return!0},modal:function(b){return function(a,d,e){if(d)c("div.dtr-modal-content").empty().append(e());else{var f=function(){g.remove();c(k).off("keypress.dtr")},g=c('<div class="dtr-modal"/>').append(c('<div class="dtr-modal-display"/>').append(c('<div class="dtr-modal-content"/>').append(e())).append(c('<div class="dtr-modal-close">×</div>').click(function(){f()}))).append(c('<div class="dtr-modal-background"/>').click(function(){f()})).appendTo("body");
|
||||
c(k).on("keyup.dtr",function(a){27===a.keyCode&&(a.stopPropagation(),f())})}b&&b.header&&c("div.dtr-modal-content").prepend("<h2>"+b.header(a)+"</h2>")}}};j.renderer={listHidden:function(){return function(b,a,d){return(b=c.map(d,function(a){return a.hidden?'<li data-dtr-index="'+a.columnIndex+'" data-dt-row="'+a.rowIndex+'" data-dt-column="'+a.columnIndex+'"><span class="dtr-title">'+a.title+'</span> <span class="dtr-data">'+a.data+"</span></li>":""}).join(""))?c('<ul data-dtr-index="'+a+'" class="dtr-details"/>').append(b):
|
||||
!1}},tableAll:function(b){b=c.extend({tableClass:""},b);return function(a,d,e){a=c.map(e,function(a){return'<tr data-dt-row="'+a.rowIndex+'" data-dt-column="'+a.columnIndex+'"><td>'+a.title+":</td> <td>"+a.data+"</td></tr>"}).join("");return c('<table class="'+b.tableClass+' dtr-details" width="100%"/>').append(a)}}};j.defaults={breakpoints:j.breakpoints,auto:!0,details:{display:j.display.childRow,renderer:j.renderer.listHidden(),target:0,type:"inline"},orthogonal:"display"};var o=c.fn.dataTable.Api;
|
||||
o.register("responsive()",function(){return this});o.register("responsive.index()",function(b){b=c(b);return{column:b.data("dtr-index"),row:b.parent().data("dtr-index")}});o.register("responsive.rebuild()",function(){return this.iterator("table",function(b){b._responsive&&b._responsive._classLogic()})});o.register("responsive.recalc()",function(){return this.iterator("table",function(b){b._responsive&&(b._responsive._resizeAuto(),b._responsive._resize())})});o.register("responsive.hasHidden()",function(){var b=
|
||||
this.context[0];return b._responsive?-1!==c.inArray(!1,b._responsive.s.current):!1});j.version="2.1.1";c.fn.dataTable.Responsive=j;c.fn.DataTable.Responsive=j;c(k).on("preInit.dt.dtr",function(b,a){if("dt"===b.namespace&&(c(a.nTable).hasClass("responsive")||c(a.nTable).hasClass("dt-responsive")||a.oInit.responsive||m.defaults.responsive)){var d=a.oInit.responsive;!1!==d&&new j(a,c.isPlainObject(d)?d:{})}});return j});
|
||||
@ -1,25 +0,0 @@
|
||||
# Change Log
|
||||
|
||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||
|
||||
<a name="2.5.1"></a>
|
||||
## [2.5.1](https://github.com/crlcu/multiselect/compare/v2.5.0...v2.5.1) (2018-04-27)
|
||||
|
||||
|
||||
### Patches
|
||||
|
||||
* change the value for the main path ([22414f8](https://github.com/crlcu/multiselect/commit/22414f8))
|
||||
|
||||
### Features
|
||||
|
||||
* add afterInit event ([22e1523](https://github.com/crlcu/multiselect/commit/22e1523))
|
||||
|
||||
|
||||
|
||||
<a name="2.5.0"></a>
|
||||
# [2.5.0](https://github.com/crlcu/multiselect/compare/v2.4.1...v2.5.0) (2018-02-06)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* now we can have different sort functions for left and right ([887ab4a](https://github.com/crlcu/multiselect/commit/887ab4a))
|
||||
@ -1,22 +0,0 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 Adrian Crisan (adrian.crisan88@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
@ -1,66 +0,0 @@
|
||||
multiselect
|
||||
===========
|
||||
|
||||
jQuery multiselect plugin with two sides. The user can select one or more items and send them to the other side.
|
||||
|
||||
# [Demo](http://crlcu.github.com/multiselect/)
|
||||
|
||||
## Requirements
|
||||
|
||||
- jQuery 1.7 or higher
|
||||
|
||||
## Quick start
|
||||
|
||||
Several quick start options are available:
|
||||
|
||||
- Clone the repo: `git clone https://github.com/crlcu/multiselect.git` or
|
||||
- Install with [Bower](http://bower.io): `bower install multiselect-two-sides`.
|
||||
|
||||
### Usage example
|
||||
|
||||
```html
|
||||
<div class="row">
|
||||
<div class="col-xs-5">
|
||||
<select name="from[]" id="multiselect" class="form-control" size="8" multiple="multiple">
|
||||
<option value="1">Item 1</option>
|
||||
<option value="3">Item 3</option>
|
||||
<option value="2">Item 2</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-2">
|
||||
<button type="button" id="multiselect_rightAll" class="btn btn-block"><i class="glyphicon glyphicon-forward"></i></button>
|
||||
<button type="button" id="multiselect_rightSelected" class="btn btn-block"><i class="glyphicon glyphicon-chevron-right"></i></button>
|
||||
<button type="button" id="multiselect_leftSelected" class="btn btn-block"><i class="glyphicon glyphicon-chevron-left"></i></button>
|
||||
<button type="button" id="multiselect_leftAll" class="btn btn-block"><i class="glyphicon glyphicon-backward"></i></button>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-5">
|
||||
<select name="to[]" id="multiselect_to" class="form-control" size="8" multiple="multiple"></select>
|
||||
</div>
|
||||
</div>
|
||||
```
|
||||
|
||||
```javascript
|
||||
<script type="text/javascript" src="path/to/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="path/to/multiselect.min.js"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
jQuery(document).ready(function($) {
|
||||
$('#multiselect').multiselect();
|
||||
});
|
||||
</script>
|
||||
```
|
||||
|
||||
## Bugs and feature requests
|
||||
|
||||
If your problem or idea is not [addressed](https://github.com/crlcu/multiselect/issues) yet, [please open a new issue](https://github.com/crlcu/multiselect/issues/new).
|
||||
|
||||
## Versioning
|
||||
|
||||
For transparency into release cycle and in striving to maintain backward compatibility, multiselect is maintained under [the Semantic Versioning guidelines](http://semver.org/).
|
||||
|
||||
|
||||
## License
|
||||
|
||||
The multiselect plugin is open-sourced software licensed under the [the MIT license](https://github.com/crlcu/multiselect/blob/master/LICENSE).
|
||||
@ -1,288 +0,0 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata></metadata>
|
||||
<defs>
|
||||
<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
|
||||
<font-face units-per-em="1200" ascent="960" descent="-240" />
|
||||
<missing-glyph horiz-adv-x="500" />
|
||||
<glyph horiz-adv-x="0" />
|
||||
<glyph horiz-adv-x="400" />
|
||||
<glyph unicode=" " />
|
||||
<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" />
|
||||
<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode=" " />
|
||||
<glyph unicode="¥" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" />
|
||||
<glyph unicode=" " horiz-adv-x="650" />
|
||||
<glyph unicode=" " horiz-adv-x="1300" />
|
||||
<glyph unicode=" " horiz-adv-x="650" />
|
||||
<glyph unicode=" " horiz-adv-x="1300" />
|
||||
<glyph unicode=" " horiz-adv-x="433" />
|
||||
<glyph unicode=" " horiz-adv-x="325" />
|
||||
<glyph unicode=" " horiz-adv-x="216" />
|
||||
<glyph unicode=" " horiz-adv-x="216" />
|
||||
<glyph unicode=" " horiz-adv-x="162" />
|
||||
<glyph unicode=" " horiz-adv-x="260" />
|
||||
<glyph unicode=" " horiz-adv-x="72" />
|
||||
<glyph unicode=" " horiz-adv-x="260" />
|
||||
<glyph unicode=" " horiz-adv-x="325" />
|
||||
<glyph unicode="€" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" />
|
||||
<glyph unicode="₽" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" />
|
||||
<glyph unicode="−" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="⌛" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" />
|
||||
<glyph unicode="◼" horiz-adv-x="500" d="M0 0z" />
|
||||
<glyph unicode="☁" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" />
|
||||
<glyph unicode="⛺" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " />
|
||||
<glyph unicode="✉" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" />
|
||||
<glyph unicode="✏" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" />
|
||||
<glyph unicode="" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" />
|
||||
<glyph unicode="" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" />
|
||||
<glyph unicode="" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" />
|
||||
<glyph unicode="" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" />
|
||||
<glyph unicode="" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" />
|
||||
<glyph unicode="" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" />
|
||||
<glyph unicode="" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" />
|
||||
<glyph unicode="" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" />
|
||||
<glyph unicode="" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" />
|
||||
<glyph unicode="" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" />
|
||||
<glyph unicode="" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" />
|
||||
<glyph unicode="" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" />
|
||||
<glyph unicode="" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
|
||||
<glyph unicode="" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" />
|
||||
<glyph unicode="" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" />
|
||||
<glyph unicode="" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" />
|
||||
<glyph unicode="" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" />
|
||||
<glyph unicode="" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" />
|
||||
<glyph unicode="" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" />
|
||||
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" />
|
||||
<glyph unicode="" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" />
|
||||
<glyph unicode="" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" />
|
||||
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " />
|
||||
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" />
|
||||
<glyph unicode="" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" />
|
||||
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
|
||||
<glyph unicode="" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" />
|
||||
<glyph unicode="" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" />
|
||||
<glyph unicode="" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" />
|
||||
<glyph unicode="" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" />
|
||||
<glyph unicode="" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" />
|
||||
<glyph unicode="" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" />
|
||||
<glyph unicode="" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" />
|
||||
<glyph unicode="" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" />
|
||||
<glyph unicode="" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" />
|
||||
<glyph unicode="" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" />
|
||||
<glyph unicode="" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" />
|
||||
<glyph unicode="" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
|
||||
<glyph unicode="" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
|
||||
<glyph unicode="" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" />
|
||||
<glyph unicode="" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" />
|
||||
<glyph unicode="" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" />
|
||||
<glyph unicode="" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" />
|
||||
<glyph unicode="" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" />
|
||||
<glyph unicode="" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" />
|
||||
<glyph unicode="" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" />
|
||||
<glyph unicode="" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" />
|
||||
<glyph unicode="" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" />
|
||||
<glyph unicode="" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" />
|
||||
<glyph unicode="" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" />
|
||||
<glyph unicode="" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" />
|
||||
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" />
|
||||
<glyph unicode="" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" />
|
||||
<glyph unicode="" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" />
|
||||
<glyph unicode="" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" />
|
||||
<glyph unicode="" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" />
|
||||
<glyph unicode="" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" />
|
||||
<glyph unicode="" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" />
|
||||
<glyph unicode="" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" />
|
||||
<glyph unicode="" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" />
|
||||
<glyph unicode="" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" />
|
||||
<glyph unicode="" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" />
|
||||
<glyph unicode="" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" />
|
||||
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" />
|
||||
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" />
|
||||
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" />
|
||||
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" />
|
||||
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
|
||||
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" />
|
||||
<glyph unicode="" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" />
|
||||
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" />
|
||||
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" />
|
||||
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" />
|
||||
<glyph unicode="" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" />
|
||||
<glyph unicode="" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" />
|
||||
<glyph unicode="" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" />
|
||||
<glyph unicode="" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" />
|
||||
<glyph unicode="" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" />
|
||||
<glyph unicode="" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" />
|
||||
<glyph unicode="" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
|
||||
<glyph unicode="" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" />
|
||||
<glyph unicode="" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" />
|
||||
<glyph unicode="" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" />
|
||||
<glyph unicode="" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
|
||||
<glyph unicode="" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
|
||||
<glyph unicode="" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" />
|
||||
<glyph unicode="" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" />
|
||||
<glyph unicode="" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" />
|
||||
<glyph unicode="" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" />
|
||||
<glyph unicode="" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
|
||||
<glyph unicode="" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" />
|
||||
<glyph unicode="" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" />
|
||||
<glyph unicode="" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" />
|
||||
<glyph unicode="" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
|
||||
<glyph unicode="" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" />
|
||||
<glyph unicode="" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
|
||||
<glyph unicode="" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" />
|
||||
<glyph unicode="" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
|
||||
<glyph unicode="" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" />
|
||||
<glyph unicode="" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" />
|
||||
<glyph unicode="" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" />
|
||||
<glyph unicode="" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" />
|
||||
<glyph unicode="" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" />
|
||||
<glyph unicode="" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" />
|
||||
<glyph unicode="" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" />
|
||||
<glyph unicode="" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" />
|
||||
<glyph unicode="" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" />
|
||||
<glyph unicode="" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" />
|
||||
<glyph unicode="" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" />
|
||||
<glyph unicode="" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" />
|
||||
<glyph unicode="" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
|
||||
<glyph unicode="" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" />
|
||||
<glyph unicode="" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
|
||||
<glyph unicode="" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" />
|
||||
<glyph unicode="" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" />
|
||||
<glyph unicode="" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" />
|
||||
<glyph unicode="" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" />
|
||||
<glyph unicode="" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" />
|
||||
<glyph unicode="" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" />
|
||||
<glyph unicode="" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" />
|
||||
<glyph unicode="" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" />
|
||||
<glyph unicode="" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" />
|
||||
<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
|
||||
<glyph unicode="" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " />
|
||||
<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " />
|
||||
<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" />
|
||||
<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" />
|
||||
<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
|
||||
<glyph unicode="" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
|
||||
<glyph unicode="" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" />
|
||||
<glyph unicode="" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
|
||||
<glyph unicode="" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" />
|
||||
<glyph unicode="" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" />
|
||||
<glyph unicode="" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
|
||||
<glyph unicode="" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" />
|
||||
<glyph unicode="" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
|
||||
<glyph unicode="" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" />
|
||||
<glyph unicode="" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
|
||||
<glyph unicode="" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
|
||||
<glyph unicode="" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
|
||||
<glyph unicode="" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" />
|
||||
<glyph unicode="" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
|
||||
<glyph unicode="" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
|
||||
<glyph unicode="" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" />
|
||||
<glyph unicode="" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" />
|
||||
<glyph unicode="" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" />
|
||||
<glyph unicode="" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" />
|
||||
<glyph unicode="" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" />
|
||||
<glyph unicode="" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" />
|
||||
<glyph unicode="" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" />
|
||||
<glyph unicode="" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" />
|
||||
<glyph unicode="" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" />
|
||||
<glyph unicode="" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" />
|
||||
<glyph unicode="" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" />
|
||||
<glyph unicode="" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" />
|
||||
<glyph unicode="" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " />
|
||||
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
|
||||
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
|
||||
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" />
|
||||
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" />
|
||||
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" />
|
||||
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" />
|
||||
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" />
|
||||
<glyph unicode="" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" />
|
||||
<glyph unicode="" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
|
||||
<glyph unicode="" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" />
|
||||
<glyph unicode="" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" />
|
||||
<glyph unicode="" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" />
|
||||
<glyph unicode="" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" />
|
||||
<glyph unicode="" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" />
|
||||
<glyph unicode="" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" />
|
||||
<glyph unicode="" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" />
|
||||
<glyph unicode="" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" />
|
||||
<glyph unicode="" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" />
|
||||
<glyph unicode="" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" />
|
||||
<glyph unicode="" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" />
|
||||
<glyph unicode="" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" />
|
||||
<glyph unicode="" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
|
||||
<glyph unicode="" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" />
|
||||
<glyph unicode="" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" />
|
||||
<glyph unicode="" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" />
|
||||
<glyph unicode="" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" />
|
||||
<glyph unicode="" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " />
|
||||
<glyph unicode="" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" />
|
||||
<glyph unicode="" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" />
|
||||
<glyph unicode="" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" />
|
||||
<glyph unicode="" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" />
|
||||
<glyph unicode="" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
|
||||
<glyph unicode="" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
|
||||
<glyph unicode="" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" />
|
||||
<glyph unicode="" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
|
||||
<glyph unicode="" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
|
||||
<glyph unicode="" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
|
||||
<glyph unicode="" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" />
|
||||
<glyph unicode="" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" />
|
||||
<glyph unicode="" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" />
|
||||
<glyph unicode="" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" />
|
||||
<glyph unicode="" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
|
||||
<glyph unicode="" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" />
|
||||
<glyph unicode="" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" />
|
||||
<glyph unicode="" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" />
|
||||
<glyph unicode="" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" />
|
||||
<glyph unicode="" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" />
|
||||
<glyph unicode="" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
|
||||
<glyph unicode="" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" />
|
||||
<glyph unicode="" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" />
|
||||
<glyph unicode="" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" />
|
||||
<glyph unicode="" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" />
|
||||
<glyph unicode="" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" />
|
||||
<glyph unicode="" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" />
|
||||
<glyph unicode="" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" />
|
||||
<glyph unicode="" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" />
|
||||
<glyph unicode="" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" />
|
||||
<glyph unicode="" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" />
|
||||
<glyph unicode="" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" />
|
||||
<glyph unicode="" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" />
|
||||
<glyph unicode="🔑" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
|
||||
<glyph unicode="🚪" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
|
||||
</font>
|
||||
</defs></svg>
|
||||
|
Before Width: | Height: | Size: 106 KiB |
@ -1,813 +0,0 @@
|
||||
/*
|
||||
* @license
|
||||
*
|
||||
* Multiselect v2.5.1
|
||||
* http://crlcu.github.io/multiselect/
|
||||
*
|
||||
* Copyright (c) 2016-2018 Adrian Crisan
|
||||
* Licensed under the MIT license (https://github.com/crlcu/multiselect/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
if (typeof jQuery === 'undefined') {
|
||||
throw new Error('multiselect requires jQuery');
|
||||
}
|
||||
|
||||
;(function ($) {
|
||||
'use strict';
|
||||
|
||||
var version = $.fn.jquery.split(' ')[0].split('.');
|
||||
|
||||
if (version[0] < 2 && version[1] < 7) {
|
||||
throw new Error('multiselect requires jQuery version 1.7 or higher');
|
||||
}
|
||||
})(jQuery);
|
||||
|
||||
;(function (factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module depending on jQuery.
|
||||
define(['jquery'], factory);
|
||||
} else {
|
||||
// No AMD. Register plugin with global jQuery object.
|
||||
factory(jQuery);
|
||||
}
|
||||
}(function ($) {
|
||||
'use strict';
|
||||
|
||||
var Multiselect = (function($) {
|
||||
/** Multiselect object constructor
|
||||
*
|
||||
* @class Multiselect
|
||||
* @constructor
|
||||
**/
|
||||
function Multiselect( $select, settings ) {
|
||||
var id = $select.prop('id');
|
||||
this.$left = $select;
|
||||
this.$right = $( settings.right ).length ? $( settings.right ) : $('#' + id + '_to');
|
||||
this.actions = {
|
||||
$leftAll: $( settings.leftAll ).length ? $( settings.leftAll ) : $('#' + id + '_leftAll'),
|
||||
$rightAll: $( settings.rightAll ).length ? $( settings.rightAll ) : $('#' + id + '_rightAll'),
|
||||
$leftSelected: $( settings.leftSelected ).length ? $( settings.leftSelected ) : $('#' + id + '_leftSelected'),
|
||||
$rightSelected: $( settings.rightSelected ).length ? $( settings.rightSelected ) : $('#' + id + '_rightSelected'),
|
||||
|
||||
$undo: $( settings.undo ).length ? $( settings.undo ) : $('#' + id + '_undo'),
|
||||
$redo: $( settings.redo ).length ? $( settings.redo ) : $('#' + id + '_redo'),
|
||||
|
||||
$moveUp: $( settings.moveUp ).length ? $( settings.moveUp ) : $('#' + id + '_move_up'),
|
||||
$moveDown: $( settings.moveDown ).length ? $( settings.moveDown ) : $('#' + id + '_move_down')
|
||||
};
|
||||
|
||||
delete settings.leftAll;
|
||||
delete settings.leftSelected;
|
||||
delete settings.right;
|
||||
delete settings.rightAll;
|
||||
delete settings.rightSelected;
|
||||
delete settings.undo;
|
||||
delete settings.redo;
|
||||
delete settings.moveUp;
|
||||
delete settings.moveDown;
|
||||
|
||||
this.options = {
|
||||
keepRenderingSort: settings.keepRenderingSort,
|
||||
submitAllLeft: settings.submitAllLeft !== undefined ? settings.submitAllLeft : true,
|
||||
submitAllRight: settings.submitAllRight !== undefined ? settings.submitAllRight : true,
|
||||
search: settings.search,
|
||||
ignoreDisabled: settings.ignoreDisabled !== undefined ? settings.ignoreDisabled : false,
|
||||
matchOptgroupBy: settings.matchOptgroupBy !== undefined ? settings.matchOptgroupBy : 'label'
|
||||
};
|
||||
|
||||
delete settings.keepRenderingSort, settings.submitAllLeft, settings.submitAllRight, settings.search, settings.ignoreDisabled, settings.matchOptgroupBy;
|
||||
|
||||
this.callbacks = settings;
|
||||
|
||||
if ( typeof this.callbacks.sort == 'function' ) {
|
||||
var sort = this.callbacks.sort;
|
||||
|
||||
this.callbacks.sort = {
|
||||
left: sort,
|
||||
right: sort,
|
||||
};
|
||||
}
|
||||
|
||||
this.init();
|
||||
}
|
||||
|
||||
Multiselect.prototype = {
|
||||
init: function() {
|
||||
var self = this;
|
||||
self.undoStack = [];
|
||||
self.redoStack = [];
|
||||
|
||||
if (self.options.keepRenderingSort) {
|
||||
self.skipInitSort = true;
|
||||
|
||||
if (self.callbacks.sort !== false) {
|
||||
self.callbacks.sort = {
|
||||
left: function(a, b) {
|
||||
return $(a).data('position') > $(b).data('position') ? 1 : -1;
|
||||
},
|
||||
right: function(a, b) {
|
||||
return $(a).data('position') > $(b).data('position') ? 1 : -1;
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
self.$left.attachIndex();
|
||||
|
||||
self.$right.each(function(i, select) {
|
||||
$(select).attachIndex();
|
||||
});
|
||||
}
|
||||
|
||||
if ( typeof self.callbacks.startUp == 'function' ) {
|
||||
self.callbacks.startUp( self.$left, self.$right );
|
||||
}
|
||||
|
||||
if ( !self.skipInitSort ) {
|
||||
if ( typeof self.callbacks.sort.left == 'function' ) {
|
||||
self.$left.mSort(self.callbacks.sort.left);
|
||||
}
|
||||
|
||||
if ( typeof self.callbacks.sort.right == 'function' ) {
|
||||
self.$right.each(function(i, select) {
|
||||
$(select).mSort(self.callbacks.sort.right);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Append left filter
|
||||
if (self.options.search && self.options.search.left) {
|
||||
self.options.search.$left = $(self.options.search.left);
|
||||
self.$left.before(self.options.search.$left);
|
||||
}
|
||||
|
||||
// Append right filter
|
||||
if (self.options.search && self.options.search.right) {
|
||||
self.options.search.$right = $(self.options.search.right);
|
||||
self.$right.before($(self.options.search.$right));
|
||||
}
|
||||
|
||||
// Initialize events
|
||||
self.events();
|
||||
if ( typeof self.callbacks.afterInit == 'function' ) {
|
||||
self.callbacks.afterInit();
|
||||
}
|
||||
},
|
||||
|
||||
events: function() {
|
||||
var self = this;
|
||||
|
||||
// Attach event to left filter
|
||||
if (self.options.search && self.options.search.$left) {
|
||||
self.options.search.$left.on('keyup', function(e) {
|
||||
if (self.callbacks.fireSearch(this.value)) {
|
||||
var $toShow = self.$left.find('option:search("' + this.value + '")').mShow();
|
||||
var $toHide = self.$left.find('option:not(:search("' + this.value + '"))').mHide();
|
||||
var $grpHide = self.$left.find('option').closest('optgroup').mHide();
|
||||
var $grpShow = self.$left.find('option:not(.hidden)').parent('optgroup').mShow();
|
||||
} else {
|
||||
self.$left.find('option, optgroup').mShow();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Attach event to right filter
|
||||
if (self.options.search && self.options.search.$right) {
|
||||
self.options.search.$right.on('keyup', function(e) {
|
||||
if (self.callbacks.fireSearch(this.value)) {
|
||||
var $toShow = self.$right.find('option:search("' + this.value + '")').mShow();
|
||||
var $toHide = self.$right.find('option:not(:search("' + this.value + '"))').mHide();
|
||||
var $grpHide = self.$right.find('option').closest('optgroup').mHide();
|
||||
var $grpShow = self.$right.find('option:not(.hidden)').parent('optgroup').mShow();
|
||||
} else {
|
||||
self.$right.find('option, optgroup').mShow();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Select all the options from left and right side when submiting the parent form
|
||||
self.$right.closest('form').on('submit', function(e) {
|
||||
if (self.options.search) {
|
||||
// Clear left search input
|
||||
if (self.options.search.$left) {
|
||||
self.options.search.$left.val('').trigger('keyup');
|
||||
}
|
||||
|
||||
// Clear right search input
|
||||
if (self.options.search.$right) {
|
||||
self.options.search.$right.val('').trigger('keyup');
|
||||
}
|
||||
}
|
||||
|
||||
self.$left.find('option').prop('selected', self.options.submitAllLeft);
|
||||
self.$right.find('option').prop('selected', self.options.submitAllRight);
|
||||
});
|
||||
|
||||
// Attach event for double clicking on options from left side
|
||||
self.$left.on('dblclick', 'option', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var $options = self.$left.find('option:selected');
|
||||
|
||||
if ( $options.length ) {
|
||||
self.moveToRight($options, e);
|
||||
}
|
||||
});
|
||||
|
||||
// Attach event for clicking on optgroup's from left side
|
||||
self.$left.on('click', 'optgroup', function(e) {
|
||||
if ($(e.target).prop('tagName') == 'OPTGROUP') {
|
||||
$(this)
|
||||
.children()
|
||||
.prop('selected', true);
|
||||
}
|
||||
});
|
||||
|
||||
// Attach event for pushing ENTER on options from left side
|
||||
self.$left.on('keypress', function(e) {
|
||||
if (e.keyCode === 13) {
|
||||
e.preventDefault();
|
||||
|
||||
var $options = self.$left.find('option:selected');
|
||||
|
||||
if ( $options.length ) {
|
||||
self.moveToRight($options, e);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Attach event for double clicking on options from right side
|
||||
self.$right.on('dblclick', 'option', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var $options = self.$right.find('option:selected');
|
||||
|
||||
if ( $options.length ) {
|
||||
self.moveToLeft($options, e);
|
||||
}
|
||||
});
|
||||
|
||||
// Attach event for clicking on optgroup's from right side
|
||||
self.$right.on('click', 'optgroup', function(e) {
|
||||
if ($(e.target).prop('tagName') == 'OPTGROUP') {
|
||||
$(this)
|
||||
.children()
|
||||
.prop('selected', true);
|
||||
}
|
||||
});
|
||||
|
||||
// Attach event for pushing BACKSPACE or DEL on options from right side
|
||||
self.$right.on('keydown', function(e) {
|
||||
if (e.keyCode === 8 || e.keyCode === 46) {
|
||||
e.preventDefault();
|
||||
|
||||
var $options = self.$right.find('option:selected');
|
||||
|
||||
if ( $options.length ) {
|
||||
self.moveToLeft($options, e);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// dblclick support for IE
|
||||
if ( navigator.userAgent.match(/MSIE/i) || navigator.userAgent.indexOf('Trident/') > 0 || navigator.userAgent.indexOf('Edge/') > 0) {
|
||||
self.$left.dblclick(function(e) {
|
||||
self.actions.$rightSelected.trigger('click');
|
||||
});
|
||||
|
||||
self.$right.dblclick(function(e) {
|
||||
self.actions.$leftSelected.trigger('click');
|
||||
});
|
||||
}
|
||||
|
||||
self.actions.$rightSelected.on('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var $options = self.$left.find('option:selected');
|
||||
|
||||
if ( $options.length ) {
|
||||
self.moveToRight($options, e);
|
||||
}
|
||||
|
||||
$(this).blur();
|
||||
});
|
||||
|
||||
self.actions.$leftSelected.on('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var $options = self.$right.find('option:selected');
|
||||
|
||||
if ( $options.length ) {
|
||||
self.moveToLeft($options, e);
|
||||
}
|
||||
|
||||
$(this).blur();
|
||||
});
|
||||
|
||||
self.actions.$rightAll.on('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var $options = self.$left.children(':not(span):not(.hidden)');
|
||||
|
||||
if ( $options.length ) {
|
||||
self.moveToRight($options, e);
|
||||
}
|
||||
|
||||
$(this).blur();
|
||||
});
|
||||
|
||||
self.actions.$leftAll.on('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var $options = self.$right.children(':not(span):not(.hidden)');
|
||||
|
||||
if ( $options.length ) {
|
||||
self.moveToLeft($options, e);
|
||||
}
|
||||
|
||||
$(this).blur();
|
||||
});
|
||||
|
||||
self.actions.$undo.on('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
self.undo(e);
|
||||
});
|
||||
|
||||
self.actions.$redo.on('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
self.redo(e);
|
||||
});
|
||||
|
||||
self.actions.$moveUp.on('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var $options = self.$right.find(':selected:not(span):not(.hidden)');
|
||||
|
||||
if ( $options.length ) {
|
||||
self.moveUp($options, e);
|
||||
}
|
||||
|
||||
$(this).blur();
|
||||
});
|
||||
|
||||
self.actions.$moveDown.on('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var $options = self.$right.find(':selected:not(span):not(.hidden)');
|
||||
|
||||
if ( $options.length ) {
|
||||
self.moveDown($options, e);
|
||||
}
|
||||
|
||||
$(this).blur();
|
||||
});
|
||||
},
|
||||
|
||||
moveToRight: function( $options, event, silent, skipStack ) {
|
||||
var self = this;
|
||||
|
||||
if ( typeof self.callbacks.moveToRight == 'function' ) {
|
||||
return self.callbacks.moveToRight( self, $options, event, silent, skipStack );
|
||||
}
|
||||
|
||||
if ( typeof self.callbacks.beforeMoveToRight == 'function' && !silent ) {
|
||||
if ( !self.callbacks.beforeMoveToRight( self.$left, self.$right, $options ) ) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
self.moveFromAtoB(self.$left, self.$right, $options, event, silent, skipStack);
|
||||
|
||||
if ( !skipStack ) {
|
||||
self.undoStack.push(['right', $options ]);
|
||||
self.redoStack = [];
|
||||
}
|
||||
|
||||
if ( typeof self.callbacks.sort.right == 'function' && !silent && !self.doNotSortRight ) {
|
||||
self.$right.mSort(self.callbacks.sort.right);
|
||||
}
|
||||
|
||||
if ( typeof self.callbacks.afterMoveToRight == 'function' && !silent ) {
|
||||
self.callbacks.afterMoveToRight( self.$left, self.$right, $options );
|
||||
}
|
||||
|
||||
return self;
|
||||
},
|
||||
|
||||
moveToLeft: function( $options, event, silent, skipStack ) {
|
||||
var self = this;
|
||||
|
||||
if ( typeof self.callbacks.moveToLeft == 'function' ) {
|
||||
return self.callbacks.moveToLeft( self, $options, event, silent, skipStack );
|
||||
}
|
||||
|
||||
if ( typeof self.callbacks.beforeMoveToLeft == 'function' && !silent ) {
|
||||
if ( !self.callbacks.beforeMoveToLeft( self.$left, self.$right, $options ) ) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
self.moveFromAtoB(self.$right, self.$left, $options, event, silent, skipStack);
|
||||
|
||||
if ( !skipStack ) {
|
||||
self.undoStack.push(['left', $options ]);
|
||||
self.redoStack = [];
|
||||
}
|
||||
|
||||
if ( typeof self.callbacks.sort.left == 'function' && !silent ) {
|
||||
self.$left.mSort(self.callbacks.sort.left);
|
||||
}
|
||||
|
||||
if ( typeof self.callbacks.afterMoveToLeft == 'function' && !silent ) {
|
||||
self.callbacks.afterMoveToLeft( self.$left, self.$right, $options );
|
||||
}
|
||||
|
||||
return self;
|
||||
},
|
||||
|
||||
moveFromAtoB: function( $source, $destination, $options, event, silent, skipStack ) {
|
||||
var self = this;
|
||||
|
||||
if ( typeof self.callbacks.moveFromAtoB == 'function' ) {
|
||||
return self.callbacks.moveFromAtoB(self, $source, $destination, $options, event, silent, skipStack);
|
||||
}
|
||||
|
||||
$options.each(function(index, option) {
|
||||
var $option = $(option);
|
||||
|
||||
if (self.options.ignoreDisabled && $option.is(':disabled')) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($option.is('optgroup') || $option.parent().is('optgroup')) {
|
||||
var $sourceGroup = $option.is('optgroup') ? $option : $option.parent();
|
||||
var optgroupSelector = 'optgroup[' + self.options.matchOptgroupBy + '="' + $sourceGroup.prop(self.options.matchOptgroupBy) + '"]';
|
||||
var $destinationGroup = $destination.find(optgroupSelector);
|
||||
|
||||
if (!$destinationGroup.length) {
|
||||
$destinationGroup = $sourceGroup.clone(true);
|
||||
$destinationGroup.empty();
|
||||
|
||||
$destination.move($destinationGroup);
|
||||
}
|
||||
|
||||
if ($option.is('optgroup')) {
|
||||
$destinationGroup.move($option.find('option'));
|
||||
} else {
|
||||
$destinationGroup.move($option);
|
||||
}
|
||||
|
||||
$sourceGroup.removeIfEmpty();
|
||||
} else {
|
||||
$destination.move($option);
|
||||
}
|
||||
});
|
||||
|
||||
return self;
|
||||
},
|
||||
|
||||
moveUp: function($options) {
|
||||
var self = this;
|
||||
|
||||
if ( typeof self.callbacks.beforeMoveUp == 'function' ) {
|
||||
if ( !self.callbacks.beforeMoveUp( $options ) ) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$options.first().prev().before($options);
|
||||
|
||||
if ( typeof self.callbacks.afterMoveUp == 'function' ) {
|
||||
self.callbacks.afterMoveUp( $options );
|
||||
}
|
||||
},
|
||||
|
||||
moveDown: function($options) {
|
||||
var self = this;
|
||||
|
||||
if ( typeof self.callbacks.beforeMoveDown == 'function' ) {
|
||||
if ( !self.callbacks.beforeMoveDown( $options ) ) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$options.last().next().after($options);
|
||||
|
||||
if ( typeof self.callbacks.afterMoveDown == 'function' ) {
|
||||
self.callbacks.afterMoveDown( $options );
|
||||
}
|
||||
},
|
||||
|
||||
undo: function(event) {
|
||||
var self = this;
|
||||
var last = self.undoStack.pop();
|
||||
|
||||
if ( last ) {
|
||||
self.redoStack.push(last);
|
||||
|
||||
switch(last[0]) {
|
||||
case 'left':
|
||||
self.moveToRight(last[1], event, false, true);
|
||||
break;
|
||||
case 'right':
|
||||
self.moveToLeft(last[1], event, false, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
redo: function(event) {
|
||||
var self = this;
|
||||
var last = self.redoStack.pop();
|
||||
|
||||
if ( last ) {
|
||||
self.undoStack.push(last);
|
||||
|
||||
switch(last[0]) {
|
||||
case 'left':
|
||||
self.moveToLeft(last[1], event, false, true);
|
||||
break;
|
||||
case 'right':
|
||||
self.moveToRight(last[1], event, false, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return Multiselect;
|
||||
})($);
|
||||
|
||||
$.multiselect = {
|
||||
defaults: {
|
||||
/** will be executed once - remove from $left all options that are already in $right
|
||||
*
|
||||
* @method startUp
|
||||
* @attribute $left jQuery object
|
||||
* @attribute $right jQuery object
|
||||
**/
|
||||
startUp: function( $left, $right ) {
|
||||
$right.find('option').each(function(index, rightOption) {
|
||||
if ($(rightOption).parent().prop('tagName') == 'OPTGROUP') {
|
||||
var optgroupSelector = 'optgroup[label="' + $(rightOption).parent().attr('label') + '"]';
|
||||
$left.find(optgroupSelector + ' option[value="' + rightOption.value + '"]').each(function(index, leftOption) {
|
||||
leftOption.remove();
|
||||
});
|
||||
$left.find(optgroupSelector).removeIfEmpty();
|
||||
} else {
|
||||
var $option = $left.find('option[value="' + rightOption.value + '"]');
|
||||
$option.remove();
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
/** will be executed after initialize plugin
|
||||
*
|
||||
* @method afterInit
|
||||
*
|
||||
* @default true
|
||||
* @return {boolean}
|
||||
**/
|
||||
afterInit: function(){ return true; },
|
||||
|
||||
/** will be executed each time before moving option[s] to right
|
||||
*
|
||||
* IMPORTANT : this method must return boolean value
|
||||
* true : continue to moveToRight method
|
||||
* false : stop
|
||||
*
|
||||
* @method beforeMoveToRight
|
||||
* @attribute $left jQuery object
|
||||
* @attribute $right jQuery object
|
||||
* @attribute $options HTML object (the option[s] which was selected to be moved)
|
||||
*
|
||||
* @default true
|
||||
* @return {boolean}
|
||||
**/
|
||||
beforeMoveToRight: function($left, $right, $options) { return true; },
|
||||
|
||||
/* will be executed each time after moving option[s] to right
|
||||
*
|
||||
* @method afterMoveToRight
|
||||
* @attribute $left jQuery object
|
||||
* @attribute $right jQuery object
|
||||
* @attribute $options HTML object (the option[s] which was selected to be moved)
|
||||
**/
|
||||
afterMoveToRight: function($left, $right, $options) {},
|
||||
|
||||
/** will be executed each time before moving option[s] to left
|
||||
*
|
||||
* IMPORTANT : this method must return boolean value
|
||||
* true : continue to moveToRight method
|
||||
* false : stop
|
||||
*
|
||||
* @method beforeMoveToLeft
|
||||
* @attribute $left jQuery object
|
||||
* @attribute $right jQuery object
|
||||
* @attribute $options HTML object (the option[s] which was selected to be moved)
|
||||
*
|
||||
* @default true
|
||||
* @return {boolean}
|
||||
**/
|
||||
beforeMoveToLeft: function($left, $right, $options) { return true; },
|
||||
|
||||
/* will be executed each time after moving option[s] to left
|
||||
*
|
||||
* @method afterMoveToLeft
|
||||
* @attribute $left jQuery object
|
||||
* @attribute $right jQuery object
|
||||
* @attribute $options HTML object (the option[s] which was selected to be moved)
|
||||
**/
|
||||
afterMoveToLeft: function($left, $right, $options) {},
|
||||
|
||||
/** will be executed each time before moving option[s] up
|
||||
*
|
||||
* IMPORTANT : this method must return boolean value
|
||||
* true : continue to moveUp method
|
||||
* false : stop
|
||||
*
|
||||
* @method beforeMoveUp
|
||||
* @attribute $options HTML object (the option[s] which was selected to be moved)
|
||||
*
|
||||
* @default true
|
||||
* @return {boolean}
|
||||
**/
|
||||
beforeMoveUp: function($options) { return true; },
|
||||
|
||||
/* will be executed each time after moving option[s] up
|
||||
*
|
||||
* @method afterMoveUp
|
||||
* @attribute $left jQuery object
|
||||
* @attribute $right jQuery object
|
||||
* @attribute $options HTML object (the option[s] which was selected to be moved)
|
||||
**/
|
||||
afterMoveUp: function($options) {},
|
||||
|
||||
/** will be executed each time before moving option[s] down
|
||||
*
|
||||
* IMPORTANT : this method must return boolean value
|
||||
* true : continue to moveUp method
|
||||
* false : stop
|
||||
*
|
||||
* @method beforeMoveDown
|
||||
* @attribute $options HTML object (the option[s] which was selected to be moved)
|
||||
*
|
||||
* @default true
|
||||
* @return {boolean}
|
||||
**/
|
||||
beforeMoveDown: function($options) { return true; },
|
||||
|
||||
/* will be executed each time after moving option[s] down
|
||||
*
|
||||
* @method afterMoveUp
|
||||
* @attribute $left jQuery object
|
||||
* @attribute $right jQuery object
|
||||
* @attribute $options HTML object (the option[s] which was selected to be moved)
|
||||
**/
|
||||
afterMoveDown: function($options) {},
|
||||
|
||||
/** sort options by option text
|
||||
*
|
||||
* @method sort
|
||||
* @attribute a HTML option
|
||||
* @attribute b HTML option
|
||||
*
|
||||
* @return 1/-1
|
||||
**/
|
||||
sort: function(a, b) {
|
||||
if (a.innerHTML == 'NA') {
|
||||
return 1;
|
||||
} else if (b.innerHTML == 'NA') {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return (a.innerHTML > b.innerHTML) ? 1 : -1;
|
||||
},
|
||||
|
||||
/* will tell if the search can start
|
||||
*
|
||||
* @method fireSearch
|
||||
* @attribute value String
|
||||
*
|
||||
* @return {boolean}
|
||||
**/
|
||||
fireSearch: function(value) {
|
||||
return value.length > 1;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var ua = window.navigator.userAgent;
|
||||
var isIE = (ua.indexOf("MSIE ") + ua.indexOf("Trident/") + ua.indexOf("Edge/")) > -3;
|
||||
var isSafari = ua.toLowerCase().indexOf("safari") > -1;
|
||||
var isFirefox = ua.toLowerCase().indexOf("firefox") > -1;
|
||||
|
||||
$.fn.multiselect = function( options ) {
|
||||
return this.each(function() {
|
||||
var $this = $(this),
|
||||
data = $this.data('crlcu.multiselect'),
|
||||
settings = $.extend({}, $.multiselect.defaults, $this.data(), (typeof options === 'object' && options));
|
||||
|
||||
if (!data) {
|
||||
$this.data('crlcu.multiselect', (data = new Multiselect($this, settings)));
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// append options
|
||||
// then set the selected attribute to false
|
||||
$.fn.move = function( $options ) {
|
||||
this
|
||||
.append($options)
|
||||
.find('option')
|
||||
.prop('selected', false);
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
$.fn.removeIfEmpty = function() {
|
||||
if (!this.children().length) {
|
||||
this.remove();
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
$.fn.mShow = function() {
|
||||
this.removeClass('hidden').show();
|
||||
|
||||
if (isIE || isSafari) {
|
||||
this.each(function(index, option) {
|
||||
// Remove <span> to make it compatible with IE
|
||||
if($(option).parent().is('span')) {
|
||||
$(option).parent().replaceWith(option);
|
||||
}
|
||||
|
||||
$(option).show();
|
||||
});
|
||||
}
|
||||
if(isFirefox){
|
||||
this.attr('disabled', false)
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
$.fn.mHide = function() {
|
||||
this.addClass('hidden').hide();
|
||||
|
||||
if (isIE || isSafari) {
|
||||
this.each(function(index, option) {
|
||||
// Wrap with <span> to make it compatible with IE
|
||||
if(!$(option).parent().is('span')) {
|
||||
$(option).wrap('<span>').hide();
|
||||
}
|
||||
});
|
||||
}
|
||||
if(isFirefox){
|
||||
this.attr('disabled', true)
|
||||
}
|
||||
return this;
|
||||
};
|
||||
|
||||
// sort options then reappend them to the select
|
||||
$.fn.mSort = function(callback) {
|
||||
this
|
||||
.children()
|
||||
.sort(callback)
|
||||
.appendTo(this);
|
||||
|
||||
this
|
||||
.find('optgroup')
|
||||
.each(function(i, group) {
|
||||
$(group).children()
|
||||
.sort(callback)
|
||||
.appendTo(group);
|
||||
})
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
// attach index to children
|
||||
$.fn.attachIndex = function() {
|
||||
this.children().each(function(index, option) {
|
||||
var $option = $(option);
|
||||
|
||||
if ($option.is('optgroup')) {
|
||||
$option.children().each(function(i, children) {
|
||||
$(children).data('position', i);
|
||||
});
|
||||
}
|
||||
|
||||
$option.data('position', index);
|
||||
});
|
||||
};
|
||||
|
||||
$.expr[":"].search = function(elem, index, meta) {
|
||||
var regex = new RegExp(meta[3], "i");
|
||||
|
||||
return $(elem).text().match(regex);
|
||||
}
|
||||
}));
|
||||
|
||||
@ -1,250 +0,0 @@
|
||||
# Copyright (C) 2009-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
CHARSET=UTF-8
|
||||
Module5000Name=Multi-Empresa
|
||||
Module5000Desc=Gestió de Multiempresa en una instal·lació simple
|
||||
Permission5001=Consulta entitats (per usuaris superadmin)
|
||||
Permission5002=Crea/modifica entitats (per usuaris superadmin)
|
||||
Permission5003=Elimina entitats (per usuaris superadmin)
|
||||
|
||||
# Third parties
|
||||
Permission5011=Consulta tercers compartits
|
||||
Permission5012=Crea/modifica tercers compartits
|
||||
Permission5013=Elimina tercers compartits
|
||||
|
||||
# Contacts
|
||||
Permission5021=Consulta contactes compartits
|
||||
Permission5022=Crea/modifica contactes compartits
|
||||
Permission5023=Elimina contactes compartits
|
||||
|
||||
# Products/Services
|
||||
Permission5031=Consulta productes/serveis compartits
|
||||
Permission5032=Crea/modifica productes/serveis compartits
|
||||
Permission5033=Elimina productes/serveis compartits
|
||||
|
||||
# Customer proposals
|
||||
Permission5041=Consulta pressupostos de client compartits
|
||||
Permission5042=Crea/modifica pressupostos de client compartits
|
||||
Permission5043=Valida pressupostos de client compartits
|
||||
Permission5044=Envia pressupostos de client compartits
|
||||
Permission5045=Tanca pressupostos de client compartits
|
||||
Permission5046=Elimina pressupostos de client compartits
|
||||
|
||||
# Customer orders
|
||||
Permission5051=Consulta comandes de client compartides
|
||||
Permission5052=Crea/modifica comandes de client compartides
|
||||
Permission5054=Valida comandes de client compartides
|
||||
Permission5056=Envia comandes de client compartides
|
||||
Permission5057=Tanca comandes de client compartides
|
||||
Permission5058=Anul·la comandes de client compartides
|
||||
Permission5059=Elimina comandes de client compartides
|
||||
|
||||
# Customer invoices
|
||||
Permission5061=Consulta factures de client compartides
|
||||
Permission5062=Crea/modifica factures de client compartides
|
||||
Permission5063=Desvalida factures de client compartides
|
||||
Permission5064=Valida factures de client compartides
|
||||
Permission5065=Envia factures de client compartides
|
||||
Permission5066=Gestiona pagaments en factures de client compartides
|
||||
Permission5067=Reobre factures de client compartides totalment pagades
|
||||
Permission5069=Elimina factures de client compartides
|
||||
|
||||
MasterEntity=Entitat mestra
|
||||
MasterEntityDesc=Entitat mestra, no pot ser eliminada
|
||||
SwitchToAnotherEntity=Canviar d'entitat
|
||||
SelectAnEntity=Selecciona una entitat:
|
||||
AllEntities=Totes les entitas
|
||||
|
||||
# Admin parameters tab
|
||||
EntitiesManagement=Gestió d'entitats
|
||||
ListOfEntities=Llistat d'entitats
|
||||
AddEntity=Afegir entitat
|
||||
EditEntity=Editar entitat
|
||||
EntityName=nom de l'entitat
|
||||
NoOtherEntityAvailable=No hi ha altres entitats disponibles
|
||||
DefaultLanguageShort=Idioma per defecte
|
||||
CommonParameters=Paràmetres comuns d'accions
|
||||
ReferringEntity=Entitat de referència per als valors de configuració
|
||||
ReferringEntityForProposalNumber=Entitat referida pels valors de configuració de la numeració de pressupostos
|
||||
ReferringEntityForInvoiceNumber=Entitat referida pels valors de configuració de la numeració de factures
|
||||
DeleteAnEntity=Eliminar una entitat
|
||||
ModifyEntity=Canviar entitat
|
||||
SwitchEntity=Canviar entitat
|
||||
AddAndStay=Afegeix i continua
|
||||
UpdateAndStay=Actualitza i continua
|
||||
CancelAndStay=Cancel·la i continua
|
||||
ConfirmDeleteEntity=Esteu segur de voler eliminar aquesta entitat?
|
||||
ConfirmedEntityDeleted=L'entitat ha estat eliminada.
|
||||
MulticompanyMoreModules=Altres móduls del mateix autor i hosting segur de Dolibarr són disponibles a %s
|
||||
MultiCompanyUpgradeIsNeeded=Utilitzes una nova versió del mòdul MULTICOMPANY, si us plau desactiveu i torneu a activar el mòdul per a que s'aplique l'actulització.
|
||||
MultiCompanyIsOlderThanDolibarr=Estàs utilitzant una versió antiga del mòdul Multicompany, actualitza'l si us plau!
|
||||
DolibarrIsOlderThanMulticompany=El teu mòdul Multicompany és més nou que el teu Dolibarr, actualitza el teu Dolibarr o utilitza una versió anterior de Multicompany!
|
||||
|
||||
THIRDPARTYSharing=Intercanviar tercers i contactes
|
||||
THIRDPARTYSharingDescription=Selecció d'entitats que intercanvien els seus tercers/contactes amb aquesta entitat.
|
||||
PRODUCTSharing=Intercanviar productes/serveis
|
||||
PRODUCTSharingDescription=Selecció d'entitats que intercanvien els seus productes/serveis amb aquesta entitat.
|
||||
PRODUCTPRICESharing=Compartir preu de productes/serveis
|
||||
PRODUCTPRICESharingDescription=Entitats que comparteixen preus de productes/serveis amb aquesta entitat.
|
||||
PRODUCTSUPPLIERPRICESharing=Intercanviar preus de proveïdor de productes/serveis
|
||||
PRODUCTSUPPLIERPRICESharingDescription=Selecció d'entitats que comparteixen preus de proveïdors de productes/serveis amb aquesta entitat.
|
||||
CATEGORYSharing=Intercanviar categories
|
||||
CATEGORYSharingDescription=Selecció d'entitats que intercanvien les seus categories amb aquesta entitat.
|
||||
AGENDASharing=Intercanviar agendes
|
||||
AGENDASharingDescription=Selecció d'entitats que intercanvien la agenda amb aquesta entitat.
|
||||
STOCKSharing=Intercanvi de stock
|
||||
STOCKSharingDescription=Conjunt d'entitats que comparteixen stock de productes amb aquesta entitat.
|
||||
BANKACCOUNTSharing=Intercanviar comptes bancaris
|
||||
BANKACCOUNTSharingDescription=Selecció d'entitats que intercanvien els seus comptes bancaris amb aquesta entitat.
|
||||
PROPOSALNUMBERSharing=Intercanvi de numeració de pressupostos
|
||||
PROPOSALNUMBERSharingDescription=Selecciona les entitats que comparteixen la numeració de pressupostos amb aquesta entitat.
|
||||
INVOICENUMBERSharing=Intercanvi de numeració de factures
|
||||
INVOICENUMBERSharingDescription=Conjunt d'entitats que comparteixen factures amb aquesta entitat.
|
||||
EXPENSEREPORTSharing=Intercanvi d'informe de despeses
|
||||
EXPENSEREPORTSharingDescription=Conjunt d'entitats que comparteixen informes de despeses amb aquesta entitat.
|
||||
PROJECTSharing=Intercanvi de projectes
|
||||
PROJECTSharingDescription=Conjunt d'entitats que comparteixen projectes amb aquesta entitat.
|
||||
MEMBERSharing=Intercanvi de membres
|
||||
MEMBERSharingDescription=Conjunt d'entitats que comparteixen membres amb aquesta entitat.
|
||||
MEMBER_TYPESharing=Intercanvi de tipus de membres
|
||||
MEMBER_TYPESharingDescription=Conjunt d'entitats que comparteixen tipus de membres amb aquesta entitat.
|
||||
HOLIDAYSharing=Intercanvi de vacances
|
||||
HOLIDAYSharingDescription=Selecció d'entitats que intercanvien vacances amb aquesta entitat.
|
||||
PROPOSALSharing=Intercanvi de pressupostos de clients
|
||||
PROPOSALSharingDescription=Selecciona les entitats que comparteixen la numeració de pressupostos de clients amb aquesta entitat.
|
||||
ORDERSharing=Intercanvi de comandes de clients
|
||||
ORDERSharingDescription=Selecciona les entitats que comparteixen la numeració de comandes de clients amb aquesta entitat.
|
||||
INVOICESharing=Intercanvi de factures de clients
|
||||
INVOICESharingDescription=Selecciona les entitats que comparteixen la numeració de factures de clients amb aquesta entitat.
|
||||
|
||||
# Admin options tab
|
||||
Options=Opcions
|
||||
Template=Plantilla
|
||||
DuplicateRights=Duplica els permisos de grups d'usuari
|
||||
DuplicateRightsInfo=Duplica els permisos d'aquest grup des d'una entitat o plantilla d'entitat cap a una o més entitats.
|
||||
SelectRightsOfEntityToDuplicate=Selecció de l'entitat que servirà com a model:
|
||||
SelectEntitiesToOverride=Selecciona les entitats que vols editar:
|
||||
TemplateOfEntity=Plantilla d'entitat
|
||||
ActivatingShares=Activar intercanvi
|
||||
EntityActiveByDefault=Activar les entitats per defecte quan són creades
|
||||
EntityVisibleByDefault=Fes que les entitats siguin visibles per defecte en el llistat desplegable quan siguin creades
|
||||
EntityLogoInLoginPage=Mostra del logo de l'entitat seleccionada en la pàgina d'inici de sessió
|
||||
EntityBackgroundInLoginPage=Mostra la imatge de fons de l'entitat seleccionada en la pàgina d'inici de sessió
|
||||
DisableSwitchEntityDropdownMenu=Deshabilita el nou menú desplegable de canvi d'entitat
|
||||
GroupModeTransversal=Activar gestió centralitzada d'usuaris i grups en l'entitat principal
|
||||
GroupModeTransversalTitle=Activar gestió centralitzada d'usuaris i grups
|
||||
GroupModeTransversalInfo=Per defecte, cada entitat és independent amb la seva pròpia gestió d'usuaris. Aquesta opció permet centralitzar la gestió d'usuaris i grups en l'entitat principal mitjançant l'assignació de drets relatius a un grup i a una entitat.
|
||||
GroupModeTransversalInfoFull=Per defecte, cada entitat és independent en la seva gestió. Esta opció fa posible centralitzar la gestió d'usuaris i grups en l'entitat principal mitjançant l'asignació de drets relatius a un grup i a una entitat. Cal crear grups d'usuari per gestionar els accessos a les entitats.
|
||||
HideLoginCombobox=Ocultar la selecció de l'entitat a la pàgina d'inici
|
||||
EnableGlobalSharings=Activar les funcions d'intercanvi entre entitats
|
||||
ShareProduct=Activar l'intercanvi de productes/serveis
|
||||
ProductSharingInfo=Aquesta opció et permet compartir productes/serveis entre entitats.<br>INFO: Si vols personalitzar el preu del producte en cada entitat, es requereix habilitar l'opció "Varis nivells de preus per producte/servei" en la configuració del mòdul Producte/Servei en cada entitat que utilitza aquesta compartició.<br>Si vols personalitzar les taxes d'IVA dels nivells de preus, has d'afegir aquesta constant:<br> "PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL" amb el valor 1 en cada entitat que utilitza aquesta compartició.
|
||||
ShareProductprice=Activar l'intercanvi de preus de productes/serveis
|
||||
ProductPriceSharingInfo=Aquesta opció et permet compartir els nivells de preu d'un producte.<br>IMPORTANT: Això requereix habilitar l'opció "Varis nivells de preus per producte/servei" en la configuració del mòdul Producte/Servei.
|
||||
ShareProductsupplierprice=Activar l'intercanvi de preus de compra de productes/serveis
|
||||
ShareThirdpartiesAndContacts=Activar l'intercanvi de tercers i contactes
|
||||
ShareCategory=Activar l'intercanvi de categories
|
||||
ShareAgenda=Activar l'intercanvi de l'agenda
|
||||
ShareStock=Activar l'intercanvi de stocks
|
||||
ShareBankaccount=Activar l'intercanvi de comptes bancaris
|
||||
ShareProposalnumber=Activar l'intercanvi de numeració de pressupostos
|
||||
ProposalNumberSharingInfo=Aquesta opció et permet tenir un increment general dels números de pressupost entre les entitats que utilitzen aquesta compartició. Necessitaràs seleccionar l'entitat referent pels valors de configuració del mòdul de numeració seleccionat.
|
||||
ShareOrdernumber=Activar l'intercanvi de numeració de comandes
|
||||
OrderNumberSharingInfo=Aquesta opció et permet tenir un increment general dels números de comanda entre les entitats que utilitzen aquesta compartició. Necessitaràs seleccionar l'entitat referent pels valors de configuració del mòdul de numeració seleccionat.
|
||||
ShareInvoicenumber=Activar l'intercanvi de numeració de factures
|
||||
InvoiceNumberSharingInfo=Aquesta opció et permet tenir un increment general dels números de factura entre les entitats que utilitzen aquesta compartició. Necessitaràs seleccionar l'entitat referent pels valors de configuració del mòdul de numeració seleccionat.
|
||||
ShareExpensereport=Activar l'intercanvi d'informes de despeses
|
||||
ShareProject=Activar intercanvi de projectes
|
||||
ShareMember=Activar l'intercanvi de socis
|
||||
ShareMember_type=Activar l'intercanvi de tipus de socis
|
||||
ShareHoliday=Activar l'intercanvi de vacances
|
||||
GlobalSharings=Sharing features
|
||||
GlobalSharingsInfo=En el moment que s'activen les opcions d'intercanvi, haurà de configurar cada entitat per permetre els intercanvis entre entitats.
|
||||
ActivatingDictsShares=Personalització de diccionaris
|
||||
DictsSharingsInfo=De manera predeterminada, totes les entitats utilitzen els diccionaris de l'entitat principal.<br>Pots activar la personalització d'un diccionari per tindre una versió diferent per entitat.
|
||||
ShareC_paiement=Activar personalització de mètodes de pagament per entitat (llx_c_paiement)
|
||||
ShareC_payment_term=Activar personalització de condicions de pagament per entitat (llx_c_payment_term)
|
||||
ActivatingObjectShares=Activar intercanvi d'objectes
|
||||
ObjectSharingsInfo=Després d'activar les opcions de compartició, serà necessari configurar cada entitat en la pestanya "Entorns" per permetre les comparticions entre entitats.
|
||||
ShareProposal=Intercanvi de pressupostos de clients
|
||||
ShareOrder=Intercanvi de comandes de clients
|
||||
ShareInvoice=Intercanvi de factures de clients
|
||||
TemplateOfEntityManagement=Plantilles de gestió d'entitats
|
||||
TemplateOfEntityManagementInfo=Aquesta opció et permet crear plantilles de funcionalitats per habilitar i preconfigurar mòduls, comparticions entre entitats, i permisos d'accés d'usuaris només amb el mode de centralització d'usuaris en l'entitat mestra.
|
||||
TemplateOfCompany=Defineix com a plantilla d'entitat
|
||||
SelectTemplateOfCompany=Utilitza una plantilla per aquesta nova entitat
|
||||
AddNewEntityInAllOtherEntities=Afegeix aquesta nova entitat en la compartició d'altres entitats
|
||||
WarningThisIsATemplate=Alerta ! Aquesta és una plantilla d'entitat no funcional i només estarà visible a super administradors
|
||||
WarningMulticompanyIsInDevelopMode=Alerta! Estàs en mode desenvolupament en el teu Dolibarr
|
||||
ShowTopMenuEntityLabel=Show entity label in top menu
|
||||
|
||||
# Admin caches tab
|
||||
MulticompanyCacheSystemInfo=L'ús de caché pot ser útil si tens un gran número d'entitats (=50+), això accelerarà la visualització de Dolibarr.
|
||||
MulticompanySession=PHP $_SESSION cache
|
||||
MulticompanySessionDescription=Les dades estan emmagatzemades en la variable global de PHP $_SESSION.<br>Aquesta caché no és compartida i està limitada a l'usuari actual.
|
||||
MulticompanyMemcached=Servidor Memcached
|
||||
MulticompanyMemcachedDescription=Aquesta opció et permet utilitzar un servidor Memcached per millorar la velocitat de visualització.<br>Es requereix un servidor Memcached i l'extensió PHP de Memcached o Memcache.
|
||||
MulticompanyMemcachedUnavailable=Memcached o Memcache no està disponible en el vostre PHP.
|
||||
MemcachedServerIsReady=El servidor Memcached està accessible
|
||||
MemcachedServerIsNotReady=El servidor Memcached noestà accessible, comprova l'adreça i el port.
|
||||
MulticompanyShmop=Memòria compartida (Shmop)
|
||||
MulticompanyShmopDescription=Shmop és un conjunt de funcions simples per gestionar la memòria compartida amb PHP.<br>(Llegir, escriure i eliminar segments de memòria compartida de UNIX)
|
||||
MulticompanyShmopAvailable=Shmop està disponible en el vostre PHP
|
||||
MulticompanyShmopUnavailable=Shmop no està disponible en el vostre PHP
|
||||
|
||||
# Select/Change entity
|
||||
GlobalEntityDesc=La modificació de l'entitat sols serà permesa si cap document ha estat creat (Pressupostos, comandes, factures...)
|
||||
ThirdpartyEntityDesc=Pots utilitzar l'entitat actual o assignar aquest tercer a un altra entitat
|
||||
ThirdpartyModifyEntity=Pots canviar la seva subscripció a l'entitat
|
||||
ThirdpartyModifyEntityDescription=Vols canviar l'entitat d'aquest tercer?
|
||||
ThirdpartyModifyEntitySuccess=L'entitat d'aquest tercer ha estat modificada correctament
|
||||
ContactModifyEntity=Pots canviar la seva subscripció a l'entitat
|
||||
ContactModifyEntityDescription=Vols canviar l'entitat d'aquest contacte?
|
||||
ContactModifyEntitySuccess=L'entitat d'aquest contacte ha estat modificada correctament
|
||||
ModifyEntityNotAllowed=La modificació d'aquesta entitat no està permesa
|
||||
|
||||
# Errors
|
||||
ErrorEntityLabelAlreadyExist=Error: L'etiqueta d'aquesta entitat ja existeix
|
||||
ErrorEntityIsNotValid=Error: Aquesta entitat no és vàlida
|
||||
ErrorNotDeleteMasterEntity=Error: No pots eliminar l'entitat mestra
|
||||
ErrorThirdpartyModifyEntity=Error: El canvi d'entitat d'aquest tercer no és pot finalitzar!
|
||||
ErrorDropDownListOfEntitiesMustBeHidden=La llista desplegable d'entitats en la pàgina d'accés estarà amagada!
|
||||
ErrorLinkUserGroupEntity=Has d'associar l'usuari amb un grup i amb una o més entitats per poder definir els permisos !!
|
||||
ErrorMulticompanyConfAuthentication=Es necessari habilitar l'autenticació Multicompany canviant aquesta línia al conf.php amb aquest valor: $dolibarr_main_authentication = 'mc';
|
||||
ErrorDolibarrConfAuthentication=Es necessari habilitar l'autenticació Dolibarr canviant aquesta línia al conf.php amb aquest valor: $dolibarr_main_authentication = 'dolibarr';
|
||||
|
||||
# Multiselect
|
||||
EntitiesSelected=Entitats seleccionades
|
||||
EntitiesAvailable=Entitats disponibles
|
||||
|
||||
# Datatables
|
||||
CloseDialog=Tanca
|
||||
LineEntries=línies
|
||||
Showing=Mostrant
|
||||
ShowingOf=Mostrant de
|
||||
TotalOf=total de
|
||||
Print=Imprimeix
|
||||
FilteredFrom=filtrat des de
|
||||
TotalEntries=entrades totals
|
||||
ShowHideColumns=Mostra/oculta columnes
|
||||
LoadingDataFromServer=Carregant dades del servidor
|
||||
NoRecordsToDisplay=No hi ha registres per mostrar
|
||||
NoEntriesToShow=No hi ha entrades per mostrar
|
||||
Processing=Processant...
|
||||
To=fins a
|
||||
First=Primer
|
||||
Last=Últim
|
||||
Tools=Eines
|
||||
@ -1,250 +0,0 @@
|
||||
# Copyright (C) 2009-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
CHARSET=UTF-8
|
||||
Module5000Name=Multi-Company
|
||||
Module5000Desc=Multi-company management on a single installation
|
||||
Permission5001=Read entities (For superadmin users)
|
||||
Permission5002=Create/modify entities (For superadmin users)
|
||||
Permission5003=Delete entities (For superadmin users)
|
||||
|
||||
# Third parties
|
||||
Permission5011=Read shared third parties
|
||||
Permission5012=Create/modify shared third parties
|
||||
Permission5013=Delete shared third parties
|
||||
|
||||
# Contacts
|
||||
Permission5021=Read shared contacts
|
||||
Permission5022=Create/modify shared contacts
|
||||
Permission5023=Delete shared contacts
|
||||
|
||||
# Products/Services
|
||||
Permission5031=Read shared products/services
|
||||
Permission5032=Create/modify shared products/services
|
||||
Permission5033=Delete shared products/services
|
||||
|
||||
# Customer proposals
|
||||
Permission5041=Read shared customer proposals
|
||||
Permission5042=Create/modify shared customer proposals
|
||||
Permission5043=Validate shared customer proposals
|
||||
Permission5044=Send shared customer proposals
|
||||
Permission5045=Close shared customer proposals
|
||||
Permission5046=Delete shared customer proposals
|
||||
|
||||
# Customer orders
|
||||
Permission5051=Read shared customer orders
|
||||
Permission5052=Create/modify shared customer orders
|
||||
Permission5054=Validate shared customer orders
|
||||
Permission5056=Send shared customer orders
|
||||
Permission5057=Close shared customer orders
|
||||
Permission5058=Cancel shared customer orders
|
||||
Permission5059=Delete shared customer orders
|
||||
|
||||
# Customer invoices
|
||||
Permission5061=Read shared customer invoices
|
||||
Permission5062=Create/modify shared customer invoices
|
||||
Permission5063=Devalidate shared customer invoices
|
||||
Permission5064=Validate shared customer invoices
|
||||
Permission5065=Send shared customer invoices
|
||||
Permission5066=Issue payments on shared customer invoices
|
||||
Permission5067=Re-open a fully paid shared customer invoices
|
||||
Permission5069=Delete shared customer invoices
|
||||
|
||||
MasterEntity=Master entity
|
||||
MasterEntityDesc=Master entity, can not be deleted
|
||||
SwitchToAnotherEntity=Switch to another entity
|
||||
SelectAnEntity=Select an entity:
|
||||
AllEntities=All entities
|
||||
|
||||
# Admin parameters tab
|
||||
EntitiesManagement=Entities management
|
||||
ListOfEntities=List of entities
|
||||
AddEntity=Add an entity
|
||||
EditEntity=Edit an entity
|
||||
EntityName=Entity name
|
||||
NoOtherEntityAvailable=No other entity available
|
||||
DefaultLanguageShort=Default language
|
||||
CommonParameters=Common parameters for shares
|
||||
ReferringEntity=Referring entity for configuration values
|
||||
ReferringEntityForProposalNumber=Referring entity for configuration values of proposal numbering
|
||||
ReferringEntityForInvoiceNumber=Referring entity for configuration values of invoice numbering
|
||||
DeleteAnEntity=Delete an entity
|
||||
ModifyEntity=Change entity
|
||||
SwitchEntity=Change entity
|
||||
AddAndStay=Add and stay
|
||||
UpdateAndStay=Update and stay
|
||||
CancelAndStay=Cancel and stay
|
||||
ConfirmDeleteEntity=Are you sure you want to delete this entity?
|
||||
ConfirmedEntityDeleted=The entity has been deleted.
|
||||
MulticompanyMoreModules=Other modules of the same author and Dolibarr secure web hosting are available on %s
|
||||
MultiCompanyUpgradeIsNeeded=You use a new version of MULTICOMPANY module, please deactivate and reactivate the module to apply the update.
|
||||
MultiCompanyIsOlderThanDolibarr=You are using an older version of the Multicompany module, please update it!
|
||||
DolibarrIsOlderThanMulticompany=Your Multicompany module is newer than your Dolibarr, please update your Dolibarr or use a previous version of Multicompany!
|
||||
|
||||
THIRDPARTYSharing=Sharing thirdparties and contacts
|
||||
THIRDPARTYSharingDescription=Selection of entities that share their database thirdparties/contacts with the entity.
|
||||
PRODUCTSharing=Share of products/services
|
||||
PRODUCTSharingDescription=Selection of entities that share their database products/services with this entity.
|
||||
PRODUCTPRICESharing=Share prices of products/services
|
||||
PRODUCTPRICESharingDescription=Selection of entities that share prices of products/services with this entity.
|
||||
PRODUCTSUPPLIERPRICESharing=Share supplier prices of products/services
|
||||
PRODUCTSUPPLIERPRICESharingDescription=Selection of entities that share supplier prices of products/services with this entity.
|
||||
CATEGORYSharing=Sharing categories
|
||||
CATEGORYSharingDescription=Selection of entities that share categories with this entity.
|
||||
AGENDASharing=Calendar sharing
|
||||
AGENDASharingDescription=Selection of entities that share the calendar with this entity.
|
||||
STOCKSharing=Stock sharing
|
||||
STOCKSharingDescription=Selection of entities that share products stock with this entity.
|
||||
BANKACCOUNTSharing=Bank account sharing
|
||||
BANKACCOUNTSharingDescription=Selection of entities that share bank accounts with this entity.
|
||||
PROPOSALNUMBERSharing=Proposal number sharing
|
||||
PROPOSALNUMBERSharingDescription=Selection of entities that share proposal number with this entity.
|
||||
INVOICENUMBERSharing=Invoice number sharing
|
||||
INVOICENUMBERSharingDescription=Selection of entities that share invoice number with this entity.
|
||||
EXPENSEREPORTSharing=Expense report sharing
|
||||
EXPENSEREPORTSharingDescription=Selection of entities that share the expense report with this entity.
|
||||
PROJECTSharing=Project sharing
|
||||
PROJECTSharingDescription=Selection of entities that share projects with this entity.
|
||||
MEMBERSharing=Member sharing
|
||||
MEMBERSharingDescription=Selection of entities that share members with this entity.
|
||||
MEMBER_TYPESharing=Members type sharing
|
||||
MEMBER_TYPESharingDescription=Selection of entities that share members type with this entity.
|
||||
HOLIDAYSharing=Holidays sharing
|
||||
HOLIDAYSharingDescription=Selection of entities that share holidays with this entity.
|
||||
PROPOSALSharing=Customers proposals sharing
|
||||
PROPOSALSharingDescription=Selection of entities that share customers proposals with this entity.
|
||||
ORDERSharing=Customers orders sharing
|
||||
ORDERSharingDescription=Selection of entities that share customers orders with this entity.
|
||||
INVOICESharing=Customers invoices sharing
|
||||
INVOICESharingDescription=Selection of entities that share customers invoices with this entity.
|
||||
|
||||
# Admin options tab
|
||||
Options=Options
|
||||
Template=Template
|
||||
DuplicateRights=Duplicate rights of user groups
|
||||
DuplicateRightsInfo=Duplicates the rights of this group from an entity or entity template to one or more other entities.
|
||||
SelectRightsOfEntityToDuplicate=Selection of the entity that will serve as a model:
|
||||
SelectEntitiesToOverride=Select the entities you want to edit:
|
||||
TemplateOfEntity=Template of entity
|
||||
ActivatingShares=Activating shares
|
||||
EntityActiveByDefault=Enable entities by default when they are created
|
||||
EntityVisibleByDefault=Make entities visible by default in the drop-down lists when they are created
|
||||
EntityLogoInLoginPage=Display of the logo of the selected entity on the login page
|
||||
EntityBackgroundInLoginPage=Display of the background of the selected entity on the login page
|
||||
DisableSwitchEntityDropdownMenu=Disable the new entity change drop-down menu.
|
||||
GroupModeTransversal=Enable centralized management of users and groups on the primary entity
|
||||
GroupModeTransversalTitle=Enable centralized management of users and groups
|
||||
GroupModeTransversalInfo=By default each entity is autonomous with its own user management. This option makes it possible to centralize the management of users and groups on the main entity by assigning rights to them relative to a group and to an entity.
|
||||
GroupModeTransversalInfoFull=By default each entity is autonomous with its own user management. This option makes it possible to centralize the management of users and groups on the main entity by assigning rights to them relative to a group and to an entity. Creating user groups is required to manage entity access rights.
|
||||
HideLoginCombobox=Hide the choice of entity in the login page
|
||||
EnableGlobalSharings=Enable features shared between entities
|
||||
ShareProduct=Enable sharing of products/services
|
||||
ProductSharingInfo=This option allows you to share products/services between entities.<br>INFO: If you want to be able to customize the price of the product in each entity, this requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration in each entity that uses this share.<br>If you want to personalize the VAT rates of the price levels, you have to add this constant:<br>"PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL" with as value 1 in each entity that uses this share.
|
||||
ShareProductprice=Enable sharing of products/services prices
|
||||
ProductPriceSharingInfo=This option allows you to share the price levels of a product.<br>IMPORTANT: This requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration.
|
||||
ShareProductsupplierprice=Enable sharing of products/services supplier prices
|
||||
ShareThirdpartiesAndContacts=Enable sharing of thirdparties and contacts
|
||||
ShareCategory=Enable sharing categories
|
||||
ShareAgenda=Enable sharing calendars
|
||||
ShareStock=Enable sharing of stocks
|
||||
ShareBankaccount=Enable sharing of bank accounts
|
||||
ShareProposalnumber=Enable sharing of proposals number
|
||||
ProposalNumberSharingInfo=This option allows you to have an overall incrementation of the proposal numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareOrdernumber=Enable sharing of orders number
|
||||
OrderNumberSharingInfo=This option allows you to have an overall incrementation of the order numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareInvoicenumber=Enable sharing of invoices number
|
||||
InvoiceNumberSharingInfo=This option allows you to have an overall incrementation of the invoice numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareExpensereport=Enable sharing of expenses reports
|
||||
ShareProject=Enable sharing of projects
|
||||
ShareMember=Enable sharing of members
|
||||
ShareMember_type=Enable sharing of members type
|
||||
ShareHoliday=Enable sharing of holidays
|
||||
GlobalSharings=Sharing features
|
||||
GlobalSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ActivatingDictsShares=Customizing dictionaries
|
||||
DictsSharingsInfo=By default, all entities use the dictionaries of the main entity.<br>You can activate the customization of a dictionary in order to have a different version by entity.
|
||||
ShareC_paiement=Enable customization of payment methods by entity (llx_c_paiement)
|
||||
ShareC_payment_term=Enable customization of payment terms by entity (llx_c_payment_term)
|
||||
ActivatingObjectShares=Activating objects sharing
|
||||
ObjectSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ShareProposal=Share customers proposals
|
||||
ShareOrder=Share customers orders
|
||||
ShareInvoice=Share customers invoices
|
||||
TemplateOfEntityManagement=Templates of entities management
|
||||
TemplateOfEntityManagementInfo=This option allows you to create feature templates to enable and pre-configure modules, shares between entities, and user access rights only with the user centralization mode on the primary entity.
|
||||
TemplateOfCompany=Define as a template of entity
|
||||
SelectTemplateOfCompany=Use a template for this new entity
|
||||
AddNewEntityInAllOtherEntities=Add this new entity in the sharing of other entities
|
||||
WarningThisIsATemplate=Warning ! This is a non-functional entity template and will only be visible to super administrators
|
||||
WarningMulticompanyIsInDevelopMode=Warning ! You are in development mode in your Dolibarr
|
||||
ShowTopMenuEntityLabel=Show entity label in top menu
|
||||
|
||||
# Admin caches tab
|
||||
MulticompanyCacheSystemInfo=The use of a cache can be useful if you have a large number of entities (≈50+), this will accelerate the display of Dolibarr.
|
||||
MulticompanySession=PHP $_SESSION cache
|
||||
MulticompanySessionDescription=The data is stored in the PHP $_SESSION global variable.<br>This cache is not shared and is limited to the current user.
|
||||
MulticompanyMemcached=Memcached server
|
||||
MulticompanyMemcachedDescription=This option allows you to use a Memcached server to improve the speed of display.<br>Requires a Memcached server and the Memcached or Memcache plugin for PHP.
|
||||
MulticompanyMemcachedUnavailable=Memcached or Memcache are not available on your PHP.
|
||||
MemcachedServerIsReady=The Memcached server is accessible
|
||||
MemcachedServerIsNotReady=The Memcached server is not accessible, check the address and port.
|
||||
MulticompanyShmop=Shared Memory (Shmop)
|
||||
MulticompanyShmopDescription=Shmop is a set of simple functions to manage shared memory with PHP.<br>(Read, write, create and delete UNIX shared memory Segments).
|
||||
MulticompanyShmopAvailable=Shmop is available on your PHP
|
||||
MulticompanyShmopUnavailable=Shmop is not available on your PHP
|
||||
|
||||
# Select/Change entity
|
||||
GlobalEntityDesc=Modification of the entity will only be permitted if no documents have been created. (Commercial proposal, orders, invoices, etc ...)
|
||||
ThirdpartyEntityDesc=You can use the current entity or assign that third party to another entity
|
||||
ThirdpartyModifyEntity=You can change its membership entity
|
||||
ThirdpartyModifyEntityDescription=Would you like to change the entity of that third party?
|
||||
ThirdpartyModifyEntitySuccess=The entity of this third party has been modified successfully
|
||||
ContactModifyEntity=You can change its membership entity
|
||||
ContactModifyEntityDescription=Would you like to change the entity of that contact?
|
||||
ContactModifyEntitySuccess=The entity of this contact has been modified successfully
|
||||
ModifyEntityNotAllowed=Modification of the entity is not permitted
|
||||
|
||||
# Errors
|
||||
ErrorEntityLabelAlreadyExist=Error: The label of that entity already exists.
|
||||
ErrorEntityIsNotValid=Error: This entity is not valid.
|
||||
ErrorNotDeleteMasterEntity=Error: Can not delete the master entity.
|
||||
ErrorThirdpartyModifyEntity=Error: Changing the entity of that third party can not be finalized!
|
||||
ErrorDropDownListOfEntitiesMustBeHidden=The drop-down list of entities on the login page must be hidden!
|
||||
ErrorLinkUserGroupEntity=You must associate user with a group and one or more entities in order to define permissions !!
|
||||
ErrorMulticompanyConfAuthentication=You need to enable Multicompany authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'mc';
|
||||
ErrorDolibarrConfAuthentication=You need to enable Dolibarr authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'dolibarr';
|
||||
|
||||
# Multiselect
|
||||
EntitiesSelected=Entities selected
|
||||
EntitiesAvailable=Entities available
|
||||
|
||||
# Datatables
|
||||
CloseDialog=Close
|
||||
LineEntries=lines
|
||||
Showing=Showing
|
||||
ShowingOf=Showing of
|
||||
TotalOf=total of
|
||||
Print=Print
|
||||
FilteredFrom=filtered from
|
||||
TotalEntries=total entries
|
||||
ShowHideColumns=Show/hide columns
|
||||
LoadingDataFromServer=Loading data from server
|
||||
NoRecordsToDisplay=No records to display
|
||||
NoEntriesToShow=No entries to show
|
||||
Processing=Processing...
|
||||
To=to
|
||||
First=First
|
||||
Last=Last
|
||||
Tools=Tools
|
||||
@ -1,250 +0,0 @@
|
||||
# Copyright (C) 2009-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
CHARSET=UTF-8
|
||||
Module5000Name=Multi-Company
|
||||
Module5000Desc=Multi-company management on a single installation
|
||||
Permission5001=Read entities (For superadmin users)
|
||||
Permission5002=Create/modify entities (For superadmin users)
|
||||
Permission5003=Delete entities (For superadmin users)
|
||||
|
||||
# Third parties
|
||||
Permission5011=Read shared third parties
|
||||
Permission5012=Create/modify shared third parties
|
||||
Permission5013=Delete shared third parties
|
||||
|
||||
# Contacts
|
||||
Permission5021=Read shared contacts
|
||||
Permission5022=Create/modify shared contacts
|
||||
Permission5023=Delete shared contacts
|
||||
|
||||
# Products/Services
|
||||
Permission5031=Read shared products/services
|
||||
Permission5032=Create/modify shared products/services
|
||||
Permission5033=Delete shared products/services
|
||||
|
||||
# Customer proposals
|
||||
Permission5041=Read shared customer proposals
|
||||
Permission5042=Create/modify shared customer proposals
|
||||
Permission5043=Validate shared customer proposals
|
||||
Permission5044=Send shared customer proposals
|
||||
Permission5045=Close shared customer proposals
|
||||
Permission5046=Delete shared customer proposals
|
||||
|
||||
# Customer orders
|
||||
Permission5051=Read shared customer orders
|
||||
Permission5052=Create/modify shared customer orders
|
||||
Permission5054=Validate shared customer orders
|
||||
Permission5056=Send shared customer orders
|
||||
Permission5057=Close shared customer orders
|
||||
Permission5058=Cancel shared customer orders
|
||||
Permission5059=Delete shared customer orders
|
||||
|
||||
# Customer invoices
|
||||
Permission5061=Read shared customer invoices
|
||||
Permission5062=Create/modify shared customer invoices
|
||||
Permission5063=Devalidate shared customer invoices
|
||||
Permission5064=Validate shared customer invoices
|
||||
Permission5065=Send shared customer invoices
|
||||
Permission5066=Issue payments on shared customer invoices
|
||||
Permission5067=Re-open a fully paid shared customer invoices
|
||||
Permission5069=Delete shared customer invoices
|
||||
|
||||
MasterEntity=Hauptentität
|
||||
MasterEntityDesc=Hauptentität, kann nicht gelöscht werden
|
||||
SwitchToAnotherEntity=Zu einer anderen Entität wechseln
|
||||
SelectAnEntity=Select an entity:
|
||||
AllEntities=Alle Entitäten
|
||||
|
||||
# Admin parameters tab
|
||||
EntitiesManagement=Entitäten-Verwaltung
|
||||
ListOfEntities=Liste der Entitäten
|
||||
AddEntity=Entität hinzufügen
|
||||
EditEntity=Entität bearbeiten
|
||||
EntityName=Entität-Name
|
||||
NoOtherEntityAvailable=No other entity available
|
||||
DefaultLanguageShort=Standard Sprache
|
||||
CommonParameters=Gemeinsame Parameter für Fereigaben
|
||||
ReferringEntity=Referenz-Entität für Konfigurationswerte
|
||||
ReferringEntityForProposalNumber=Referenz-Entität für Konfigurationswerte der Angebotsnummerierung
|
||||
ReferringEntityForInvoiceNumber=Referenz-Entität für Konfigurationswerte der Rechnungsnummerierung
|
||||
DeleteAnEntity=Entität löschen
|
||||
ModifyEntity=Entität ändern
|
||||
SwitchEntity=Entität wechseln
|
||||
AddAndStay=Hinzufügen und weitermachen
|
||||
UpdateAndStay=Aktualisieren und weitermachen
|
||||
CancelAndStay=Stornieren und weitermachen
|
||||
ConfirmDeleteEntity=Sind Sie sicher, dass Sie diese Entität löschen wollen?
|
||||
ConfirmedEntityDeleted=Die Entität wurde gelöscht
|
||||
MulticompanyMoreModules=Weitere Module desselben Autors und Dolibarr secure web hosting sind verfügbar unter %s
|
||||
MultiCompanyUpgradeIsNeeded=Sie verwenden eine neue Version des MULTICOMPANY-Moduls, bitte deaktivieren und reaktivieren Sie das Modul, um das Update anzuwenden.
|
||||
MultiCompanyIsOlderThanDolibarr=Sie verwenden eine ältere Version des Multicompany-Moduls, bitte aktualisieren Sie es!
|
||||
DolibarrIsOlderThanMulticompany=Ihr Multicompany-Modul ist neuer als Ihr Dolibarr, bitte aktualisieren Sie Ihr Dolibarr oder verwenden Sie eine frühere Version von Multicompany!
|
||||
|
||||
THIRDPARTYSharing=Freigabe von Dritten und Kontakten
|
||||
THIRDPARTYSharingDescription=Auswahl von Entitäten, die sich Datenbank-Dritte/Kontakte mit der Entität teilen.
|
||||
PRODUCTSharing=Freigabe der Produkte/Dienstleistungen
|
||||
PRODUCTSharingDescription=Auswahl von Entitäten, die sich Datenbankprodukte/Dienstleistungen mit dieser Entität teilen.
|
||||
PRODUCTPRICESharing=Freigabe von Produkten/Dienstleistungen
|
||||
PRODUCTPRICESharingDescription=Auswahl von Entitäten, die sich Preise von Produkten/Dienstleistungen mit dieser Entität teilen.
|
||||
PRODUCTSUPPLIERPRICESharing=Lieferantenpreise für Produkte/Dienstleistungen teilen
|
||||
PRODUCTSUPPLIERPRICESharingDescription=Auswahl von Entitäten, die sich Lieferantenpreise für Produkte/Dienstleistungen mit dieser Entität teilen.
|
||||
CATEGORYSharing=Teilen von Kategoriens
|
||||
CATEGORYSharingDescription=Auswahl von Entitäten, die sich Kategorien mit dieser Entität teilen.
|
||||
AGENDASharing=Kalenderfreigabe
|
||||
AGENDASharingDescription=Auswahl von Entitäten, die sich Kalender mit dieser Entität teilen.
|
||||
STOCKSharing=Freigabe von Lagerbeständen
|
||||
STOCKSharingDescription=Auswahl von Entitäten, die sich Lager-Produkte mit dieser Entität teilen.
|
||||
BANKACCOUNTSharing=Bankkonto teilen
|
||||
BANKACCOUNTSharingDescription=Auswahl der Entität4en, die sich Bankkonten mit dieser Entität teilen.
|
||||
PROPOSALNUMBERSharing=Teilen der Angebotsnummer
|
||||
PROPOSALNUMBERSharingDescription=Auswahl von Entitäten, die sich die Angebotsnummer mit dieser Entität teilen.
|
||||
INVOICENUMBERSharing=Rechnungsnummer teilen
|
||||
INVOICENUMBERSharingDescription=Auswahl von Entitäten, die sich die Rechnungsnummer mit dieser Entität teilen.
|
||||
EXPENSEREPORTSharing=Freigabe von Spesenabrechnungen
|
||||
EXPENSEREPORTSharingDescription=Auswahl der Entitäten, die sich die Spesenabrechnung mit dieser Entität teilen.
|
||||
PROJECTSharing=Projektfreigabe
|
||||
PROJECTSharingDescription=Auswahl von Entitäten, die sich Projekte mit dieser Entität teilen.
|
||||
MEMBERSharing=Mitgliederfreigabe
|
||||
MEMBERSharingDescription=Auswahl von Entitäten, die sich die Mitglieder mit dieser Entität teilen.
|
||||
MEMBER_TYPESharing=Freigabe Mitgliedertyp
|
||||
MEMBER_TYPESharingDescription=Auswahl der Entitäten, die sich die Mitgliedertypen mit dieser Entität teilen.
|
||||
HOLIDAYSharing=Freigabe Feiertage
|
||||
HOLIDAYSharingDescription=Auswahl von Entitäten, die sich Feiertage mit dieser Entität teilen.
|
||||
PROPOSALSharing=Freigabe Kundenangebote
|
||||
PROPOSALSharingDescription=Auswahl von Entitäten, die sich Kundenangebote mit dieser Entität teilen.
|
||||
ORDERSharing=Kundenaufträge teilen
|
||||
ORDERSharingDescription=Auswahl der Entitäten, die Kundenaufträge mit dieser Entität teilen.
|
||||
INVOICESharing=Freigabe von Kundenrechnungen
|
||||
INVOICESharingDescription=Auswahl von Entitäten, die sich Kundenrechnungen mit dieser Entität teilen.
|
||||
|
||||
# Admin options tab
|
||||
Options=Optionen
|
||||
Template=Template
|
||||
DuplicateRights=Duplicate rights of user groups
|
||||
DuplicateRightsInfo=Duplicates the rights of this group from an entity or entity template to one or more other entities.
|
||||
SelectRightsOfEntityToDuplicate=Selection of the entity that will serve as a model:
|
||||
SelectEntitiesToOverride=Select the entities you want to edit:
|
||||
TemplateOfEntity=Template of entity
|
||||
ActivatingShares=Aktivieren von Freigaben
|
||||
EntityActiveByDefault=Entitäten standardmässig aktivieren, wenn sie erstellt werden.
|
||||
EntityVisibleByDefault=Entitäten standardmässig in den Dropdown-Listen sichtbar machen, wenn sie erstellt werden.
|
||||
EntityLogoInLoginPage=Logo der ausgewählten Entität auf der Login-Seite anzeigen
|
||||
EntityBackgroundInLoginPage=Hintergrund der ausgewählten Entität auf der Login-Seite anzeigen
|
||||
DisableSwitchEntityDropdownMenu=Dropdown-Menü für neue Entitätsänderung deaktivieren
|
||||
GroupModeTransversal=Zentrale Verwaltung von Benutzern und Gruppen in der Hauptentität aktivieren.
|
||||
GroupModeTransversalTitle=Zentrale Verwaltung von Benutzern und Gruppen aktivieren.
|
||||
GroupModeTransversalInfo=Standardmässig ist jede Entität autonom mit einer eigenen Benutzerverwaltung. Diese Option ermöglicht es, die Verwaltung von Benutzern und Gruppen auf der Hauptidentität zu zentralisieren, indem ihnen Rechte in Bezug auf eine Gruppe und eine Entität zugewiesen werden.
|
||||
GroupModeTransversalInfoFull=Standardmässig ist jede Entität autonom mit einer eigenen Benutzerverwaltung. Diese Option ermöglicht es, die Verwaltung von Benutzern und Gruppen auf der Hauptidentität zu zentralisieren, indem ihnen Rechte in Bezug auf eine Gruppe und eine Entität zugewiesen werden. Das Erstellen von Benutzergruppen ist erforderlich, um die Zugriffsrechte der Entität zu verwalten.
|
||||
HideLoginCombobox=Auswahl der Entität auf der Anmeldeseite verbergen.
|
||||
EnableGlobalSharings=Aktivieren von Funktionen, die von Entitäten gemeinsam genutzt werden.
|
||||
ShareProduct=Freigabe von Produkten/Dienstleistungen aktivieren
|
||||
ProductSharingInfo=Diese Option ermöglicht es Ihnen, Produkte/Dienstleistungen zwischen Entitäten zu teilen.<br>INFO: Wenn Sie den Preis des Produkts in jeder Entität anpassen möchten, müssen Sie die Option "Mehrere Segmente von Preisen pro Produkt/Dienstleistung" in der Modulkonfiguration Produkt/Dienstleistung in jeder Entität, die diese Freigabe verwendet, aktivieren.<br>Wenn Sie die Mehrwertsteuersätze der Preisstufen personalisieren möchten, müssen Sie diese Konstante hinzufügen:<br>"PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL" mit dem Wert 1 in jeder Entität, die diese Freigabe verwendet.
|
||||
ShareProductprice=Ermöglicht die gemeinsame Nutzung von Preisen für Produkten/Dienstleistungen
|
||||
ProductPriceSharingInfo=Mit dieser Option können Sie das Preisniveau eines Produkts teilen.<br>WICHTIG: Dazu muss in der Modulkonfiguration des Produkts/Dienstleistungsmoduls die Option "Mehrere Preissegmente pro Produkt/Dienstleistung" aktiviert werden.
|
||||
ShareProductsupplierprice=Freigabe der Lieferantenpreise von Produkten/Dienstleistungen aktivieren
|
||||
ShareThirdpartiesAndContacts=Freigabe von Dritten und Kontakten aktivieren
|
||||
ShareCategory=Freigabe von Kategorien aktivieren
|
||||
ShareAgenda=Freigabe von Kalendern aktivieren
|
||||
ShareStock=Freigabe von Lagerbeständen aktivieren
|
||||
ShareBankaccount=Freigabe von Bankkonten aktivieren
|
||||
ShareProposalnumber=Freigabe von Angebotsnummern aktivieren
|
||||
ProposalNumberSharingInfo=Diese Option ermöglicht es Ihnen, eine Gesamtinkrementierung der Angebotsnummern bei allen Entitäten vorzunehmen, die diese Freigabe verwenden. Sie müssen eine Referenzentität für die Konfigurationswerte des ausgewählten Nummerierungsmoduls auswählen. Jede Entität muss das gleiche Nummerierungsmodell verwenden.
|
||||
ShareOrdernumber=Teilen von Auftragsnummern aktivieren
|
||||
OrderNumberSharingInfo=Diese Option ermöglicht es Ihnen, eine Inkrementierung der Bestellnummern aller Entitäten vorzunehmen, die diese Freigabe verwenden. Sie müssen eine Referenz-Entität für die Konfigurationswerte des ausgewählten Nummerierungsmoduls auswählen. Jede Entität muss das gleiche Nummerierungsmodell verwenden.
|
||||
ShareInvoicenumber=Freigabe der Rechnungsnummer aktivieren
|
||||
InvoiceNumberSharingInfo=Diese Option ermöglicht es Ihnen, eine Gesamtinkrementierung der Rechnungsnummern bei allen Entitäten vorzunehmen, die diese Freigabe verwenden. Sie müssen eine Referenzentität für die Konfigurationswerte des ausgewählten Nummerierungsmoduls auswählen. Jede Entität muss das gleiche Nummerierungsmodell verwenden.
|
||||
ShareExpensereport=Freigabe von Spesenabrechnungen aktivieren
|
||||
ShareProject=Freigabe von Projekten aktivieren
|
||||
ShareMember=Freigabe von Mitgliedern aktivieren
|
||||
ShareMember_type=Freigabe von Mitgliedertypen aktivieren
|
||||
ShareHoliday=Freigabe von Feiertagen aktivieren
|
||||
GlobalSharings=Ffeigabe von Funktionen
|
||||
GlobalSharingsInfo=Nachdem die Freigabe-Optionen aktiviert wurden, ist es notwendig, jede Entität auf der Registerkarte "Umgebungen" so zu konfigurieren, dass die Freigaben zwischen den Entitäten möglich sind.
|
||||
ActivatingDictsShares=Freigabe Stammdaten (DictsShares) aktivieren
|
||||
DictsSharingsInfo=Standardmässig verwenden alle Entitäten die Stammdaten der Haupt-Entität.<br>Sie können die individuelle Anpassung der Stammdaten aktivieren, um eine eine andere Version für jede Entität zu erhalten.
|
||||
ShareC_paiement=Individuelle Anpassung der Zahlungsmethoden pro Entität aktivieren (llx_c_paiement)
|
||||
ShareC_payment_term=Individuelle Anpassung der Zahlungsbedingungen pro Entität aktivieren (llx_c_payment_term)
|
||||
ActivatingObjectShares=Objektfreigabe aktivieren
|
||||
ObjectSharingsInfo=Nachdem die Freigabe-Optionen aktiviert wurden, ist es notwendig, jede Entität auf der Registerkarte "Umgebungen" so zu konfigurieren, dass die Freigaben zwischen den Entitäten möglich sind.
|
||||
ShareProposal=Freigabe Kundenangebote
|
||||
ShareOrder=Kundenaufträge teilen
|
||||
ShareInvoice=Freigabe Kundenrechnungen
|
||||
TemplateOfEntityManagement=Templates of entities management
|
||||
TemplateOfEntityManagementInfo=This option allows you to create feature templates to enable and pre-configure modules, shares between entities, and user access rights only with the user centralization mode on the primary entity.
|
||||
TemplateOfCompany=Define as a template of entity
|
||||
SelectTemplateOfCompany=Use a template for this new entity
|
||||
AddNewEntityInAllOtherEntities=Add this new entity in the sharing of other entities
|
||||
WarningThisIsATemplate=Warning ! This is a non-functional entity template and will only be visible to super administrators
|
||||
WarningMulticompanyIsInDevelopMode=Warning ! You are in development mode in your Dolibarr
|
||||
ShowTopMenuEntityLabel=Show entity label in top menu
|
||||
|
||||
# Admin caches tab
|
||||
MulticompanyCacheSystemInfo=The use of a cache can be useful if you have a large number of entities (≈50+), this will accelerate the display of Dolibarr.
|
||||
MulticompanySession=PHP $_SESSION cache
|
||||
MulticompanySessionDescription=The data is stored in the PHP $_SESSION global variable.<br>This cache is not shared and is limited to the current user.
|
||||
MulticompanyMemcached=Memcached server
|
||||
MulticompanyMemcachedDescription=This option allows you to use a Memcached server to improve the speed of display.<br>Requires a Memcached server and the Memcached or Memcache plugin for PHP.
|
||||
MulticompanyMemcachedUnavailable=Memcached or Memcache are not available on your PHP.
|
||||
MemcachedServerIsReady=The Memcached server is accessible
|
||||
MemcachedServerIsNotReady=The Memcached server is not accessible, check the address and port.
|
||||
MulticompanyShmop=Shared Memory (Shmop)
|
||||
MulticompanyShmopDescription=Shmop is a set of simple functions to manage shared memory with PHP.<br>(Read, write, create and delete UNIX shared memory Segments).
|
||||
MulticompanyShmopAvailable=Shmop is available on your PHP
|
||||
MulticompanyShmopUnavailable=Shmop is not available on your PHP
|
||||
|
||||
# Select/Change entity
|
||||
GlobalEntityDesc=Modification of the entity will only be permitted if no documents have been created. (Commercial proposal, orders, invoices, etc ...)
|
||||
ThirdpartyEntityDesc=You can use the current entity or assign that third party to another entity
|
||||
ThirdpartyModifyEntity=You can change its membership entity
|
||||
ThirdpartyModifyEntityDescription=Would you like to change the entity of that third party?
|
||||
ThirdpartyModifyEntitySuccess=The entity of this third party has been modified successfully
|
||||
ContactModifyEntity=You can change its membership entity
|
||||
ContactModifyEntityDescription=Would you like to change the entity of that contact?
|
||||
ContactModifyEntitySuccess=The entity of this contact has been modified successfully
|
||||
ModifyEntityNotAllowed=Modification of the entity is not permitted
|
||||
|
||||
# Errors
|
||||
ErrorEntityLabelAlreadyExist=Error: The label of that entity already exists.
|
||||
ErrorEntityIsNotValid=Error: This entity is not valid.
|
||||
ErrorNotDeleteMasterEntity=Error: Can not delete the master entity.
|
||||
ErrorThirdpartyModifyEntity=Error: Changing the entity of that third party can not be finalized!
|
||||
ErrorDropDownListOfEntitiesMustBeHidden=The drop-down list of entities on the login page must be hidden!
|
||||
ErrorLinkUserGroupEntity=You must associate user with a group and one or more entities in order to define permissions !!
|
||||
ErrorMulticompanyConfAuthentication=You need to enable Multicompany authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'mc';
|
||||
ErrorDolibarrConfAuthentication=You need to enable Dolibarr authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'dolibarr';
|
||||
|
||||
# Multiselect
|
||||
EntitiesSelected=Entities selected
|
||||
EntitiesAvailable=Entities available
|
||||
|
||||
# Datatables
|
||||
CloseDialog=Close
|
||||
LineEntries=lines
|
||||
Showing=Showing
|
||||
ShowingOf=Showing of
|
||||
TotalOf=total of
|
||||
Print=Print
|
||||
FilteredFrom=filtered from
|
||||
TotalEntries=total entries
|
||||
ShowHideColumns=Show/hide columns
|
||||
LoadingDataFromServer=Loading data from server
|
||||
NoRecordsToDisplay=No records to display
|
||||
NoEntriesToShow=No entries to show
|
||||
Processing=Processing...
|
||||
To=to
|
||||
First=First
|
||||
Last=Last
|
||||
Tools=Tools
|
||||
@ -1,250 +0,0 @@
|
||||
# Copyright (C) 2009-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
CHARSET=UTF-8
|
||||
Module5000Name=Multi-Company
|
||||
Module5000Desc=Multi-company management on a single installation
|
||||
Permission5001=Read entities (For superadmin users)
|
||||
Permission5002=Create/modify entities (For superadmin users)
|
||||
Permission5003=Delete entities (For superadmin users)
|
||||
|
||||
# Third parties
|
||||
Permission5011=Read shared third parties
|
||||
Permission5012=Create/modify shared third parties
|
||||
Permission5013=Delete shared third parties
|
||||
|
||||
# Contacts
|
||||
Permission5021=Read shared contacts
|
||||
Permission5022=Create/modify shared contacts
|
||||
Permission5023=Delete shared contacts
|
||||
|
||||
# Products/Services
|
||||
Permission5031=Read shared products/services
|
||||
Permission5032=Create/modify shared products/services
|
||||
Permission5033=Delete shared products/services
|
||||
|
||||
# Customer proposals
|
||||
Permission5041=Read shared customer proposals
|
||||
Permission5042=Create/modify shared customer proposals
|
||||
Permission5043=Validate shared customer proposals
|
||||
Permission5044=Send shared customer proposals
|
||||
Permission5045=Close shared customer proposals
|
||||
Permission5046=Delete shared customer proposals
|
||||
|
||||
# Customer orders
|
||||
Permission5051=Read shared customer orders
|
||||
Permission5052=Create/modify shared customer orders
|
||||
Permission5054=Validate shared customer orders
|
||||
Permission5056=Send shared customer orders
|
||||
Permission5057=Close shared customer orders
|
||||
Permission5058=Cancel shared customer orders
|
||||
Permission5059=Delete shared customer orders
|
||||
|
||||
# Customer invoices
|
||||
Permission5061=Read shared customer invoices
|
||||
Permission5062=Create/modify shared customer invoices
|
||||
Permission5063=Devalidate shared customer invoices
|
||||
Permission5064=Validate shared customer invoices
|
||||
Permission5065=Send shared customer invoices
|
||||
Permission5066=Issue payments on shared customer invoices
|
||||
Permission5067=Re-open a fully paid shared customer invoices
|
||||
Permission5069=Delete shared customer invoices
|
||||
|
||||
MasterEntity=Hauptentität
|
||||
MasterEntityDesc=Hauptentität, kann nicht gelöscht werden
|
||||
SwitchToAnotherEntity=Zu einer anderen Entität wechseln
|
||||
SelectAnEntity=Select an entity:
|
||||
AllEntities=Alle Entitäten
|
||||
|
||||
# Admin parameters tab
|
||||
EntitiesManagement=Entitäten-Verwaltung
|
||||
ListOfEntities=Liste der Entitäten
|
||||
AddEntity=Entität hinzufügen
|
||||
EditEntity=Entität bearbeiten
|
||||
EntityName=Entität-Name
|
||||
NoOtherEntityAvailable=No other entity available
|
||||
DefaultLanguageShort=Standard Sprache
|
||||
CommonParameters=Gemeinsame Parameter für Fereigaben
|
||||
ReferringEntity=Referenz-Entität für Konfigurationswerte
|
||||
ReferringEntityForProposalNumber=Referenz-Entität für Konfigurationswerte der Angebotsnummerierung
|
||||
ReferringEntityForInvoiceNumber=Referenz-Entität für Konfigurationswerte der Rechnungsnummerierung
|
||||
DeleteAnEntity=Entität löschen
|
||||
ModifyEntity=Entität ändern
|
||||
SwitchEntity=Firma wechseln
|
||||
AddAndStay=Hinzufügen und weitermachen
|
||||
UpdateAndStay=Aktualisieren und weitermachen
|
||||
CancelAndStay=Stornieren und weitermachen
|
||||
ConfirmDeleteEntity=Sind Sie sicher, dass Sie diese Entität löschen wollen?
|
||||
ConfirmedEntityDeleted=Die Entität wurde gelöscht
|
||||
MulticompanyMoreModules=Weitere Module desselben Autors und Dolibarr secure web hosting sind verfügbar unter %s
|
||||
MultiCompanyUpgradeIsNeeded=Sie verwenden eine neue Version des MULTICOMPANY-Moduls, bitte deaktivieren und reaktivieren Sie das Modul, um das Update anzuwenden.
|
||||
MultiCompanyIsOlderThanDolibarr=Sie verwenden eine ältere Version des Multicompany-Moduls, bitte aktualisieren Sie es!
|
||||
DolibarrIsOlderThanMulticompany=Ihr Multicompany-Modul ist neuer als Ihr Dolibarr, bitte aktualisieren Sie Ihr Dolibarr oder verwenden Sie eine frühere Version von Multicompany!
|
||||
|
||||
THIRDPARTYSharing=Freigabe von Dritten und Kontakten
|
||||
THIRDPARTYSharingDescription=Auswahl von Entitäten, die sich Datenbank-Dritte/Kontakte mit der Entität teilen.
|
||||
PRODUCTSharing=Freigabe der Produkte/Dienstleistungen
|
||||
PRODUCTSharingDescription=Auswahl von Entitäten, die sich Datenbankprodukte/Dienstleistungen mit dieser Entität teilen.
|
||||
PRODUCTPRICESharing=Freigabe von Produkten/Dienstleistungen
|
||||
PRODUCTPRICESharingDescription=Auswahl von Entitäten, die sich Preise von Produkten/Dienstleistungen mit dieser Entität teilen.
|
||||
PRODUCTSUPPLIERPRICESharing=Lieferantenpreise für Produkte/Dienstleistungen teilen
|
||||
PRODUCTSUPPLIERPRICESharingDescription=Auswahl von Entitäten, die sich Lieferantenpreise für Produkte/Dienstleistungen mit dieser Entität teilen.
|
||||
CATEGORYSharing=Teilen von Kategoriens
|
||||
CATEGORYSharingDescription=Auswahl von Entitäten, die sich Kategorien mit dieser Entität teilen.
|
||||
AGENDASharing=Kalenderfreigabe
|
||||
AGENDASharingDescription=Auswahl von Entitäten, die sich Kalender mit dieser Entität teilen.
|
||||
STOCKSharing=Freigabe von Lagerbeständen
|
||||
STOCKSharingDescription=Auswahl von Entitäten, die sich Lager-Produkte mit dieser Entität teilen.
|
||||
BANKACCOUNTSharing=Bankkonto teilen
|
||||
BANKACCOUNTSharingDescription=Auswahl der Entität4en, die sich Bankkonten mit dieser Entität teilen.
|
||||
PROPOSALNUMBERSharing=Teilen der Angebotsnummer
|
||||
PROPOSALNUMBERSharingDescription=Auswahl von Entitäten, die sich die Angebotsnummer mit dieser Entität teilen.
|
||||
INVOICENUMBERSharing=Rechnungsnummer teilen
|
||||
INVOICENUMBERSharingDescription=Auswahl von Entitäten, die sich die Rechnungsnummer mit dieser Entität teilen.
|
||||
EXPENSEREPORTSharing=Freigabe von Spesenabrechnungen
|
||||
EXPENSEREPORTSharingDescription=Auswahl der Entitäten, die sich die Spesenabrechnung mit dieser Entität teilen.
|
||||
PROJECTSharing=Projektfreigabe
|
||||
PROJECTSharingDescription=Auswahl von Entitäten, die sich Projekte mit dieser Entität teilen.
|
||||
MEMBERSharing=Mitgliederfreigabe
|
||||
MEMBERSharingDescription=Auswahl von Entitäten, die sich die Mitglieder mit dieser Entität teilen.
|
||||
MEMBER_TYPESharing=Freigabe Mitgliedertyp
|
||||
MEMBER_TYPESharingDescription=Auswahl der Entitäten, die sich die Mitgliedertypen mit dieser Entität teilen.
|
||||
HOLIDAYSharing=Freigabe Feiertage
|
||||
HOLIDAYSharingDescription=Auswahl von Entitäten, die sich Feiertage mit dieser Entität teilen.
|
||||
PROPOSALSharing=Freigabe Kundenangebote
|
||||
PROPOSALSharingDescription=Auswahl von Entitäten, die sich Kundenangebote mit dieser Entität teilen.
|
||||
ORDERSharing=Freigabe Kundenbestellungen
|
||||
ORDERSharingDescription=Auswählen von Entitäten, die sich Kundenbestellungen mit dieser Entität teilen.
|
||||
INVOICESharing=Freigabe von Kundenrechnungen
|
||||
INVOICESharingDescription=Auswahl von Entitäten, die sich Kundenrechnungen mit dieser Entität teilen.
|
||||
|
||||
# Admin options tab
|
||||
Options=Optionen
|
||||
Template=Vorlage
|
||||
DuplicateRights=Dupliziere die Rechte von Benutzergruppen
|
||||
DuplicateRightsInfo=Dupliziert die Rechte dieser Gruppe von einer Firma oder Firmenvorlage auf eine oder mehrere andere Firmen
|
||||
SelectRightsOfEntityToDuplicate=Auswahl der Firma, die als Vorlage dienen soll:
|
||||
SelectEntitiesToOverride=Wähle die Firmen für die Bearbeitung
|
||||
TemplateOfEntity=Firmenvorlage
|
||||
ActivatingShares=Aktivieren von Freigaben
|
||||
EntityActiveByDefault=Entitäten standardmässig aktivieren, wenn sie erstellt werden.
|
||||
EntityVisibleByDefault=Entitäten standardmässig in den Dropdown-Listen sichtbar machen, wenn sie erstellt werden.
|
||||
EntityLogoInLoginPage=Zeige das Logo der ausgewählten Firma auf der Login-Seite
|
||||
EntityBackgroundInLoginPage=Zeige den Hintergrund der ausgwählten Firma in der Login-Seite
|
||||
DisableSwitchEntityDropdownMenu=Disable the new entity change drop-down menu.
|
||||
GroupModeTransversal=Zentrale Verwaltung von Benutzern und Gruppen in der Hauptentität aktivieren.
|
||||
GroupModeTransversalTitle=Zentrale Verwaltung von Benutzern und Gruppen aktivieren.
|
||||
GroupModeTransversalInfo=Standardmässig ist jede Entität autonom mit einer eigenen Benutzerverwaltung. Diese Option ermöglicht es, die Verwaltung von Benutzern und Gruppen auf der Hauptidentität zu zentralisieren, indem ihnen Rechte in Bezug auf eine Gruppe und eine Entität zugewiesen werden.
|
||||
GroupModeTransversalInfoFull=Standardmässig ist jede Entität autonom mit einer eigenen Benutzerverwaltung. Diese Option ermöglicht es, die Verwaltung von Benutzern und Gruppen auf der Hauptidentität zu zentralisieren, indem ihnen Rechte in Bezug auf eine Gruppe und eine Entität zugewiesen werden. Das Erstellen von Benutzergruppen ist erforderlich, um die Zugriffsrechte der Entität zu verwalten.
|
||||
HideLoginCombobox=Auswahl der Entität auf der Anmeldeseite verbergen.
|
||||
EnableGlobalSharings=Aktivieren von Funktionen, die von Entitäten gemeinsam genutzt werden.
|
||||
ShareProduct=Freigabe von Produkten/Dienstleistungen aktivieren
|
||||
ProductSharingInfo=Diese Option ermöglicht es Ihnen, Produkte/Dienstleistungen zwischen Entitäten zu teilen.<br>INFO: Wenn Sie den Preis des Produkts in jeder Entität anpassen möchten, müssen Sie die Option "Mehrere Segmente von Preisen pro Produkt/Dienstleistung" in der Modulkonfiguration Produkt/Dienstleistung in jeder Entität, die diese Freigabe verwendet, aktivieren.<br>Wenn Sie die Mehrwertsteuersätze der Preisstufen personalisieren möchten, müssen Sie diese Konstante hinzufügen:<br>"PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL" mit dem Wert 1 in jeder Entität, die diese Freigabe verwendet.
|
||||
ShareProductprice=Ermöglicht die gemeinsame Nutzung von Preisen für Produkten/Dienstleistungen
|
||||
ProductPriceSharingInfo=Mit dieser Option können Sie das Preisniveau eines Produkts teilen.<br>WICHTIG: Dazu muss in der Modulkonfiguration des Produkts/Dienstleistungsmoduls die Option "Mehrere Preissegmente pro Produkt/Dienstleistung" aktiviert werden.
|
||||
ShareProductsupplierprice=Freigabe der Lieferantenpreise von Produkten/Dienstleistungen aktivieren
|
||||
ShareThirdpartiesAndContacts=Freigabe von Dritten und Kontakten aktivieren
|
||||
ShareCategory=Freigabe von Kategorien aktivieren
|
||||
ShareAgenda=Freigabe von Kalendern aktivieren
|
||||
ShareStock=Freigabe von Lagerbeständen aktivieren
|
||||
ShareBankaccount=Freigabe von Bankkonten aktivieren
|
||||
ShareProposalnumber=Freigabe von Angebotsnummern aktivieren
|
||||
ProposalNumberSharingInfo=Diese Option ermöglicht es Ihnen, eine Gesamtinkrementierung der Angebotsnummern bei allen Entitäten vorzunehmen, die diese Freigabe verwenden. Sie müssen eine Referenzentität für die Konfigurationswerte des ausgewählten Nummerierungsmoduls auswählen. Jede Entität muss das gleiche Nummerierungsmodell verwenden.
|
||||
ShareOrdernumber=Freigabe von Angebotsnummern aktivieren
|
||||
OrderNumberSharingInfo=This option allows you to have an overall incrementation of the order numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareInvoicenumber=Freigabe der Rechnungsnummer aktivieren
|
||||
InvoiceNumberSharingInfo=Diese Option ermöglicht es Ihnen, eine Gesamtinkrementierung der Rechnungsnummern bei allen Entitäten vorzunehmen, die diese Freigabe verwenden. Sie müssen eine Referenzentität für die Konfigurationswerte des ausgewählten Nummerierungsmoduls auswählen. Jede Entität muss das gleiche Nummerierungsmodell verwenden.
|
||||
ShareExpensereport=Freigabe von Spesenabrechnungen aktivieren
|
||||
ShareProject=Freigabe von Projekten aktivieren
|
||||
ShareMember=Freigabe von Mitgliedern aktivieren
|
||||
ShareMember_type=Freigabe von Mitgliedertypen aktivieren
|
||||
ShareHoliday=Freigabe von Feiertagen aktivieren
|
||||
GlobalSharings=Ffeigabe von Funktionen
|
||||
GlobalSharingsInfo=Nachdem die Freigabe-Optionen aktiviert wurden, ist es notwendig, jede Entität auf der Registerkarte "Umgebungen" so zu konfigurieren, dass die Freigaben zwischen den Entitäten möglich sind.
|
||||
ActivatingDictsShares=Freigabe Stammdaten (DictsShares) aktivieren
|
||||
DictsSharingsInfo=Standardmässig verwenden alle Entitäten die Stammdaten der Haupt-Entität.<br>Sie können die individuelle Anpassung der Stammdaten aktivieren, um eine eine andere Version für jede Entität zu erhalten.
|
||||
ShareC_paiement=Individuelle Anpassung der Zahlungsmethoden pro Entität aktivieren (llx_c_paiement)
|
||||
ShareC_payment_term=Individuelle Anpassung der Zahlungsbedingungen pro Entität aktivieren (llx_c_payment_term)
|
||||
ActivatingObjectShares=Objektfreigabe aktivieren
|
||||
ObjectSharingsInfo=Nachdem die Freigabe-Optionen aktiviert wurden, ist es notwendig, jede Entität auf der Registerkarte "Umgebungen" so zu konfigurieren, dass die Freigaben zwischen den Entitäten möglich sind.
|
||||
ShareProposal=Freigabe Kundenangebote
|
||||
ShareOrder=Freigabe Kundenbestellungen
|
||||
ShareInvoice=Freigabe Kundenrechnungen
|
||||
TemplateOfEntityManagement=Templates of entities management
|
||||
TemplateOfEntityManagementInfo=This option allows you to create feature templates to enable and pre-configure modules, shares between entities, and user access rights only with the user centralization mode on the primary entity.
|
||||
TemplateOfCompany=Define as a template of entity
|
||||
SelectTemplateOfCompany=Use a template for this new entity
|
||||
AddNewEntityInAllOtherEntities=Add this new entity in the sharing of other entities
|
||||
WarningThisIsATemplate=Warning ! This is a non-functional entity template and will only be visible to super administrators
|
||||
WarningMulticompanyIsInDevelopMode=Warning ! You are in development mode in your Dolibarr
|
||||
ShowTopMenuEntityLabel=Show entity label in top menu
|
||||
|
||||
# Admin caches tab
|
||||
MulticompanyCacheSystemInfo=The use of a cache can be useful if you have a large number of entities (≈50+), this will accelerate the display of Dolibarr.
|
||||
MulticompanySession=PHP $_SESSION cache
|
||||
MulticompanySessionDescription=The data is stored in the PHP $_SESSION global variable.<br>This cache is not shared and is limited to the current user.
|
||||
MulticompanyMemcached=Memcached server
|
||||
MulticompanyMemcachedDescription=This option allows you to use a Memcached server to improve the speed of display.<br>Requires a Memcached server and the Memcached or Memcache plugin for PHP.
|
||||
MulticompanyMemcachedUnavailable=Memcached or Memcache are not available on your PHP.
|
||||
MemcachedServerIsReady=The Memcached server is accessible
|
||||
MemcachedServerIsNotReady=The Memcached server is not accessible, check the address and port.
|
||||
MulticompanyShmop=Shared Memory (Shmop)
|
||||
MulticompanyShmopDescription=Shmop is a set of simple functions to manage shared memory with PHP.<br>(Read, write, create and delete UNIX shared memory Segments).
|
||||
MulticompanyShmopAvailable=Shmop is available on your PHP
|
||||
MulticompanyShmopUnavailable=Shmop is not available on your PHP
|
||||
|
||||
# Select/Change entity
|
||||
GlobalEntityDesc=Modification of the entity will only be permitted if no documents have been created. (Commercial proposal, orders, invoices, etc ...)
|
||||
ThirdpartyEntityDesc=You can use the current entity or assign that third party to another entity
|
||||
ThirdpartyModifyEntity=You can change its membership entity
|
||||
ThirdpartyModifyEntityDescription=Would you like to change the entity of that third party?
|
||||
ThirdpartyModifyEntitySuccess=The entity of this third party has been modified successfully
|
||||
ContactModifyEntity=You can change its membership entity
|
||||
ContactModifyEntityDescription=Would you like to change the entity of that contact?
|
||||
ContactModifyEntitySuccess=The entity of this contact has been modified successfully
|
||||
ModifyEntityNotAllowed=Modification of the entity is not permitted
|
||||
|
||||
# Errors
|
||||
ErrorEntityLabelAlreadyExist=Error: The label of that entity already exists.
|
||||
ErrorEntityIsNotValid=Error: This entity is not valid.
|
||||
ErrorNotDeleteMasterEntity=Error: Can not delete the master entity.
|
||||
ErrorThirdpartyModifyEntity=Error: Changing the entity of that third party can not be finalized!
|
||||
ErrorDropDownListOfEntitiesMustBeHidden=The drop-down list of entities on the login page must be hidden!
|
||||
ErrorLinkUserGroupEntity=You must associate user with a group and one or more entities in order to define permissions !!
|
||||
ErrorMulticompanyConfAuthentication=You need to enable Multicompany authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'mc';
|
||||
ErrorDolibarrConfAuthentication=You need to enable Dolibarr authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'dolibarr';
|
||||
|
||||
# Multiselect
|
||||
EntitiesSelected=Entities selected
|
||||
EntitiesAvailable=Entities available
|
||||
|
||||
# Datatables
|
||||
CloseDialog=Close
|
||||
LineEntries=lines
|
||||
Showing=Showing
|
||||
ShowingOf=Showing of
|
||||
TotalOf=total of
|
||||
Print=Print
|
||||
FilteredFrom=filtered from
|
||||
TotalEntries=total entries
|
||||
ShowHideColumns=Show/hide columns
|
||||
LoadingDataFromServer=Loading data from server
|
||||
NoRecordsToDisplay=No records to display
|
||||
NoEntriesToShow=No entries to show
|
||||
Processing=Processing...
|
||||
To=to
|
||||
First=First
|
||||
Last=Last
|
||||
Tools=Tools
|
||||
@ -1,250 +0,0 @@
|
||||
# Copyright (C) 2009-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
CHARSET=UTF-8
|
||||
Module5000Name=Multi-Company
|
||||
Module5000Desc=Multi-company management on a single installation
|
||||
Permission5001=Read entities (For superadmin users)
|
||||
Permission5002=Create/modify entities (For superadmin users)
|
||||
Permission5003=Delete entities (For superadmin users)
|
||||
|
||||
# Third parties
|
||||
Permission5011=Read shared third parties
|
||||
Permission5012=Create/modify shared third parties
|
||||
Permission5013=Delete shared third parties
|
||||
|
||||
# Contacts
|
||||
Permission5021=Read shared contacts
|
||||
Permission5022=Create/modify shared contacts
|
||||
Permission5023=Delete shared contacts
|
||||
|
||||
# Products/Services
|
||||
Permission5031=Read shared products/services
|
||||
Permission5032=Create/modify shared products/services
|
||||
Permission5033=Delete shared products/services
|
||||
|
||||
# Customer proposals
|
||||
Permission5041=Read shared customer proposals
|
||||
Permission5042=Create/modify shared customer proposals
|
||||
Permission5043=Validate shared customer proposals
|
||||
Permission5044=Send shared customer proposals
|
||||
Permission5045=Close shared customer proposals
|
||||
Permission5046=Delete shared customer proposals
|
||||
|
||||
# Customer orders
|
||||
Permission5051=Read shared customer orders
|
||||
Permission5052=Create/modify shared customer orders
|
||||
Permission5054=Validate shared customer orders
|
||||
Permission5056=Send shared customer orders
|
||||
Permission5057=Close shared customer orders
|
||||
Permission5058=Cancel shared customer orders
|
||||
Permission5059=Delete shared customer orders
|
||||
|
||||
# Customer invoices
|
||||
Permission5061=Read shared customer invoices
|
||||
Permission5062=Create/modify shared customer invoices
|
||||
Permission5063=Devalidate shared customer invoices
|
||||
Permission5064=Validate shared customer invoices
|
||||
Permission5065=Send shared customer invoices
|
||||
Permission5066=Issue payments on shared customer invoices
|
||||
Permission5067=Re-open a fully paid shared customer invoices
|
||||
Permission5069=Delete shared customer invoices
|
||||
|
||||
MasterEntity=Master entity
|
||||
MasterEntityDesc=Master entity, can not be deleted
|
||||
SwitchToAnotherEntity=Switch to another entity
|
||||
SelectAnEntity=Select an entity:
|
||||
AllEntities=All entities
|
||||
|
||||
# Admin parameters tab
|
||||
EntitiesManagement=Entities management
|
||||
ListOfEntities=List of entities
|
||||
AddEntity=Add an entity
|
||||
EditEntity=Edit an entity
|
||||
EntityName=Entity name
|
||||
NoOtherEntityAvailable=No other entity available
|
||||
DefaultLanguageShort=Default language
|
||||
CommonParameters=Common parameters for shares
|
||||
ReferringEntity=Referring entity for configuration values
|
||||
ReferringEntityForProposalNumber=Referring entity for configuration values of proposal numbering
|
||||
ReferringEntityForInvoiceNumber=Referring entity for configuration values of invoice numbering
|
||||
DeleteAnEntity=Delete an entity
|
||||
ModifyEntity=Change entity
|
||||
SwitchEntity=Change entity
|
||||
AddAndStay=Add and stay
|
||||
UpdateAndStay=Update and stay
|
||||
CancelAndStay=Cancel and stay
|
||||
ConfirmDeleteEntity=Are you sure you want to delete this entity?
|
||||
ConfirmedEntityDeleted=The entity has been deleted.
|
||||
MulticompanyMoreModules=Other modules of the same author and Dolibarr secure web hosting are available on %s
|
||||
MultiCompanyUpgradeIsNeeded=You use a new version of MULTICOMPANY module, please deactivate and reactivate the module to apply the update.
|
||||
MultiCompanyIsOlderThanDolibarr=You are using an older version of the Multicompany module, please update it!
|
||||
DolibarrIsOlderThanMulticompany=Your Multicompany module is newer than your Dolibarr, please update your Dolibarr or use a previous version of Multicompany!
|
||||
|
||||
THIRDPARTYSharing=Sharing thirdparties and contacts
|
||||
THIRDPARTYSharingDescription=Selection of entities that share their database thirdparties/contacts with the entity.
|
||||
PRODUCTSharing=Share of products/services
|
||||
PRODUCTSharingDescription=Selection of entities that share their database products/services with this entity.
|
||||
PRODUCTPRICESharing=Share prices of products/services
|
||||
PRODUCTPRICESharingDescription=Selection of entities that share prices of products/services with this entity.
|
||||
PRODUCTSUPPLIERPRICESharing=Share supplier prices of products/services
|
||||
PRODUCTSUPPLIERPRICESharingDescription=Selection of entities that share supplier prices of products/services with this entity.
|
||||
CATEGORYSharing=Sharing categories
|
||||
CATEGORYSharingDescription=Selection of entities that share categories with this entity.
|
||||
AGENDASharing=Calendar sharing
|
||||
AGENDASharingDescription=Selection of entities that share the calendar with this entity.
|
||||
STOCKSharing=Stock sharing
|
||||
STOCKSharingDescription=Selection of entities that share products stock with this entity.
|
||||
BANKACCOUNTSharing=Bank account sharing
|
||||
BANKACCOUNTSharingDescription=Selection of entities that share bank accounts with this entity.
|
||||
PROPOSALNUMBERSharing=Proposal number sharing
|
||||
PROPOSALNUMBERSharingDescription=Selection of entities that share proposal number with this entity.
|
||||
INVOICENUMBERSharing=Invoice number sharing
|
||||
INVOICENUMBERSharingDescription=Selection of entities that share invoice number with this entity.
|
||||
EXPENSEREPORTSharing=Expense report sharing
|
||||
EXPENSEREPORTSharingDescription=Selection of entities that share the expense report with this entity.
|
||||
PROJECTSharing=Project sharing
|
||||
PROJECTSharingDescription=Selection of entities that share projects with this entity.
|
||||
MEMBERSharing=Member sharing
|
||||
MEMBERSharingDescription=Selection of entities that share members with this entity.
|
||||
MEMBER_TYPESharing=Members type sharing
|
||||
MEMBER_TYPESharingDescription=Selection of entities that share members type with this entity.
|
||||
HOLIDAYSharing=Holidays sharing
|
||||
HOLIDAYSharingDescription=Selection of entities that share holidays with this entity.
|
||||
PROPOSALSharing=Customers proposals sharing
|
||||
PROPOSALSharingDescription=Selection of entities that share customers proposals with this entity.
|
||||
ORDERSharing=Customers orders sharing
|
||||
ORDERSharingDescription=Selection of entities that share customers orders with this entity.
|
||||
INVOICESharing=Customers invoices sharing
|
||||
INVOICESharingDescription=Selection of entities that share customers invoices with this entity.
|
||||
|
||||
# Admin options tab
|
||||
Options=Options
|
||||
Template=Template
|
||||
DuplicateRights=Duplicate rights of user groups
|
||||
DuplicateRightsInfo=Duplicates the rights of this group from an entity or entity template to one or more other entities.
|
||||
SelectRightsOfEntityToDuplicate=Selection of the entity that will serve as a model:
|
||||
SelectEntitiesToOverride=Select the entities you want to edit:
|
||||
TemplateOfEntity=Template of entity
|
||||
ActivatingShares=Activating shares
|
||||
EntityActiveByDefault=Enable entities by default when they are created
|
||||
EntityVisibleByDefault=Make entities visible by default in the drop-down lists when they are created
|
||||
EntityLogoInLoginPage=Display of the logo of the selected entity on the login page
|
||||
EntityBackgroundInLoginPage=Display of the background of the selected entity on the login page
|
||||
DisableSwitchEntityDropdownMenu=Disable the new entity change drop-down menu.
|
||||
GroupModeTransversal=Enable centralized management of users and groups on the primary entity
|
||||
GroupModeTransversalTitle=Enable centralized management of users and groups
|
||||
GroupModeTransversalInfo=By default each entity is autonomous with its own user management. This option makes it possible to centralize the management of users and groups on the main entity by assigning rights to them relative to a group and to an entity.
|
||||
GroupModeTransversalInfoFull=By default each entity is autonomous with its own user management. This option makes it possible to centralize the management of users and groups on the main entity by assigning rights to them relative to a group and to an entity. Creating user groups is required to manage entity access rights.
|
||||
HideLoginCombobox=Hide the choice of entity in the login page
|
||||
EnableGlobalSharings=Enable features shared between entities
|
||||
ShareProduct=Enable sharing of products/services
|
||||
ProductSharingInfo=This option allows you to share products/services between entities.<br>INFO: If you want to be able to customize the price of the product in each entity, this requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration in each entity that uses this share.<br>If you want to personalize the VAT rates of the price levels, you have to add this constant:<br>"PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL" with as value 1 in each entity that uses this share.
|
||||
ShareProductprice=Enable sharing of products/services prices
|
||||
ProductPriceSharingInfo=This option allows you to share the price levels of a product.<br>IMPORTANT: This requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration.
|
||||
ShareProductsupplierprice=Enable sharing of products/services supplier prices
|
||||
ShareThirdpartiesAndContacts=Enable sharing of thirdparties and contacts
|
||||
ShareCategory=Enable sharing categories
|
||||
ShareAgenda=Enable sharing calendars
|
||||
ShareStock=Enable sharing of stocks
|
||||
ShareBankaccount=Enable sharing of bank accounts
|
||||
ShareProposalnumber=Enable sharing of proposals number
|
||||
ProposalNumberSharingInfo=This option allows you to have an overall incrementation of the proposal numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareOrdernumber=Enable sharing of orders number
|
||||
OrderNumberSharingInfo=This option allows you to have an overall incrementation of the order numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareInvoicenumber=Enable sharing of invoices number
|
||||
InvoiceNumberSharingInfo=This option allows you to have an overall incrementation of the invoice numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareExpensereport=Enable sharing of expenses reports
|
||||
ShareProject=Enable sharing of projects
|
||||
ShareMember=Enable sharing of members
|
||||
ShareMember_type=Enable sharing of members type
|
||||
ShareHoliday=Enable sharing of holidays
|
||||
GlobalSharings=Sharing features
|
||||
GlobalSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ActivatingDictsShares=Customizing dictionaries
|
||||
DictsSharingsInfo=By default, all entities use the dictionaries of the main entity.<br>You can activate the customization of a dictionary in order to have a different version by entity.
|
||||
ShareC_paiement=Enable customization of payment methods by entity (llx_c_paiement)
|
||||
ShareC_payment_term=Enable customization of payment terms by entity (llx_c_payment_term)
|
||||
ActivatingObjectShares=Activating objects sharing
|
||||
ObjectSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ShareProposal=Share customers proposals
|
||||
ShareOrder=Share customers orders
|
||||
ShareInvoice=Share customers invoices
|
||||
TemplateOfEntityManagement=Templates of entities management
|
||||
TemplateOfEntityManagementInfo=This option allows you to create feature templates to enable and pre-configure modules, shares between entities, and user access rights only with the user centralization mode on the primary entity.
|
||||
TemplateOfCompany=Define as a template of entity
|
||||
SelectTemplateOfCompany=Use a template for this new entity
|
||||
AddNewEntityInAllOtherEntities=Add this new entity in the sharing of other entities
|
||||
WarningThisIsATemplate=Warning ! This is a non-functional entity template and will only be visible to super administrators
|
||||
WarningMulticompanyIsInDevelopMode=Warning ! You are in development mode in your Dolibarr
|
||||
ShowTopMenuEntityLabel=Show entity label in top menu
|
||||
|
||||
# Admin caches tab
|
||||
MulticompanyCacheSystemInfo=The use of a cache can be useful if you have a large number of entities (≈50+), this will accelerate the display of Dolibarr.
|
||||
MulticompanySession=PHP $_SESSION cache
|
||||
MulticompanySessionDescription=The data is stored in the PHP $_SESSION global variable.<br>This cache is not shared and is limited to the current user.
|
||||
MulticompanyMemcached=Memcached server
|
||||
MulticompanyMemcachedDescription=This option allows you to use a Memcached server to improve the speed of display.<br>Requires a Memcached server and the Memcached or Memcache plugin for PHP.
|
||||
MulticompanyMemcachedUnavailable=Memcached or Memcache are not available on your PHP.
|
||||
MemcachedServerIsReady=The Memcached server is accessible
|
||||
MemcachedServerIsNotReady=The Memcached server is not accessible, check the address and port.
|
||||
MulticompanyShmop=Shared Memory (Shmop)
|
||||
MulticompanyShmopDescription=Shmop is a set of simple functions to manage shared memory with PHP.<br>(Read, write, create and delete UNIX shared memory Segments).
|
||||
MulticompanyShmopAvailable=Shmop is available on your PHP
|
||||
MulticompanyShmopUnavailable=Shmop is not available on your PHP
|
||||
|
||||
# Select/Change entity
|
||||
GlobalEntityDesc=Modification of the entity will only be permitted if no documents have been created. (Commercial proposal, orders, invoices, etc ...)
|
||||
ThirdpartyEntityDesc=You can use the current entity or assign that third party to another entity
|
||||
ThirdpartyModifyEntity=You can change its membership entity
|
||||
ThirdpartyModifyEntityDescription=Would you like to change the entity of that third party?
|
||||
ThirdpartyModifyEntitySuccess=The entity of this third party has been modified successfully
|
||||
ContactModifyEntity=You can change its membership entity
|
||||
ContactModifyEntityDescription=Would you like to change the entity of that contact?
|
||||
ContactModifyEntitySuccess=The entity of this contact has been modified successfully
|
||||
ModifyEntityNotAllowed=Modification of the entity is not permitted
|
||||
|
||||
# Errors
|
||||
ErrorEntityLabelAlreadyExist=Error: The label of that entity already exists.
|
||||
ErrorEntityIsNotValid=Error: This entity is not valid.
|
||||
ErrorNotDeleteMasterEntity=Error: Can not delete the master entity.
|
||||
ErrorThirdpartyModifyEntity=Error: Changing the entity of that third party can not be finalized!
|
||||
ErrorDropDownListOfEntitiesMustBeHidden=The drop-down list of entities on the login page must be hidden!
|
||||
ErrorLinkUserGroupEntity=You must associate user with a group and one or more entities in order to define permissions !!
|
||||
ErrorMulticompanyConfAuthentication=You need to enable Multicompany authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'mc';
|
||||
ErrorDolibarrConfAuthentication=You need to enable Dolibarr authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'dolibarr';
|
||||
|
||||
# Multiselect
|
||||
EntitiesSelected=Entities selected
|
||||
EntitiesAvailable=Entities available
|
||||
|
||||
# Datatables
|
||||
CloseDialog=Close
|
||||
LineEntries=lines
|
||||
Showing=Showing
|
||||
ShowingOf=Showing of
|
||||
TotalOf=total of
|
||||
Print=Print
|
||||
FilteredFrom=filtered from
|
||||
TotalEntries=total entries
|
||||
ShowHideColumns=Show/hide columns
|
||||
LoadingDataFromServer=Loading data from server
|
||||
NoRecordsToDisplay=No records to display
|
||||
NoEntriesToShow=No entries to show
|
||||
Processing=Processing...
|
||||
To=to
|
||||
First=First
|
||||
Last=Last
|
||||
Tools=Tools
|
||||
@ -1,250 +0,0 @@
|
||||
# Copyright (C) 2009-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
CHARSET=UTF-8
|
||||
Module5000Name=Multi-Company
|
||||
Module5000Desc=Multi-company management on a single installation
|
||||
Permission5001=Read entities (For superadmin users)
|
||||
Permission5002=Create/modify entities (For superadmin users)
|
||||
Permission5003=Delete entities (For superadmin users)
|
||||
|
||||
# Third parties
|
||||
Permission5011=Read shared third parties
|
||||
Permission5012=Create/modify shared third parties
|
||||
Permission5013=Delete shared third parties
|
||||
|
||||
# Contacts
|
||||
Permission5021=Read shared contacts
|
||||
Permission5022=Create/modify shared contacts
|
||||
Permission5023=Delete shared contacts
|
||||
|
||||
# Products/Services
|
||||
Permission5031=Read shared products/services
|
||||
Permission5032=Create/modify shared products/services
|
||||
Permission5033=Delete shared products/services
|
||||
|
||||
# Customer proposals
|
||||
Permission5041=Read shared customer proposals
|
||||
Permission5042=Create/modify shared customer proposals
|
||||
Permission5043=Validate shared customer proposals
|
||||
Permission5044=Send shared customer proposals
|
||||
Permission5045=Close shared customer proposals
|
||||
Permission5046=Delete shared customer proposals
|
||||
|
||||
# Customer orders
|
||||
Permission5051=Read shared customer orders
|
||||
Permission5052=Create/modify shared customer orders
|
||||
Permission5054=Validate shared customer orders
|
||||
Permission5056=Send shared customer orders
|
||||
Permission5057=Close shared customer orders
|
||||
Permission5058=Cancel shared customer orders
|
||||
Permission5059=Delete shared customer orders
|
||||
|
||||
# Customer invoices
|
||||
Permission5061=Read shared customer invoices
|
||||
Permission5062=Create/modify shared customer invoices
|
||||
Permission5063=Devalidate shared customer invoices
|
||||
Permission5064=Validate shared customer invoices
|
||||
Permission5065=Send shared customer invoices
|
||||
Permission5066=Issue payments on shared customer invoices
|
||||
Permission5067=Re-open a fully paid shared customer invoices
|
||||
Permission5069=Delete shared customer invoices
|
||||
|
||||
MasterEntity=Master entity
|
||||
MasterEntityDesc=Master entity, can not be deleted
|
||||
SwitchToAnotherEntity=Switch to another entity
|
||||
SelectAnEntity=Select an entity:
|
||||
AllEntities=All entities
|
||||
|
||||
# Admin parameters tab
|
||||
EntitiesManagement=Entities management
|
||||
ListOfEntities=List of entities
|
||||
AddEntity=Add an entity
|
||||
EditEntity=Edit an entity
|
||||
EntityName=Entity name
|
||||
NoOtherEntityAvailable=No other entity available
|
||||
DefaultLanguageShort=Default language
|
||||
CommonParameters=Common parameters for shares
|
||||
ReferringEntity=Referring entity for configuration values
|
||||
ReferringEntityForProposalNumber=Referring entity for configuration values of proposal numbering
|
||||
ReferringEntityForInvoiceNumber=Referring entity for configuration values of invoice numbering
|
||||
DeleteAnEntity=Delete an entity
|
||||
ModifyEntity=Change entity
|
||||
SwitchEntity=Change entity
|
||||
AddAndStay=Add and stay
|
||||
UpdateAndStay=Update and stay
|
||||
CancelAndStay=Cancel and stay
|
||||
ConfirmDeleteEntity=Are you sure you want to delete this entity?
|
||||
ConfirmedEntityDeleted=The entity has been deleted.
|
||||
MulticompanyMoreModules=Other modules of the same author and Dolibarr secure web hosting are available on %s
|
||||
MultiCompanyUpgradeIsNeeded=You use a new version of MULTICOMPANY module, please deactivate and reactivate the module to apply the update.
|
||||
MultiCompanyIsOlderThanDolibarr=You are using an older version of the Multicompany module, please update it!
|
||||
DolibarrIsOlderThanMulticompany=Your Multicompany module is newer than your Dolibarr, please update your Dolibarr or use a previous version of Multicompany!
|
||||
|
||||
THIRDPARTYSharing=Sharing thirdparties and contacts
|
||||
THIRDPARTYSharingDescription=Selection of entities that share their database thirdparties/contacts with the entity.
|
||||
PRODUCTSharing=Share of products/services
|
||||
PRODUCTSharingDescription=Selection of entities that share their database products/services with this entity.
|
||||
PRODUCTPRICESharing=Share prices of products/services
|
||||
PRODUCTPRICESharingDescription=Selection of entities that share prices of products/services with this entity.
|
||||
PRODUCTSUPPLIERPRICESharing=Share supplier prices of products/services
|
||||
PRODUCTSUPPLIERPRICESharingDescription=Selection of entities that share supplier prices of products/services with this entity.
|
||||
CATEGORYSharing=Sharing categories
|
||||
CATEGORYSharingDescription=Selection of entities that share categories with this entity.
|
||||
AGENDASharing=Calendar sharing
|
||||
AGENDASharingDescription=Selection of entities that share the calendar with this entity.
|
||||
STOCKSharing=Stock sharing
|
||||
STOCKSharingDescription=Selection of entities that share products stock with this entity.
|
||||
BANKACCOUNTSharing=Bank account sharing
|
||||
BANKACCOUNTSharingDescription=Selection of entities that share bank accounts with this entity.
|
||||
PROPOSALNUMBERSharing=Proposal number sharing
|
||||
PROPOSALNUMBERSharingDescription=Selection of entities that share proposal number with this entity.
|
||||
INVOICENUMBERSharing=Invoice number sharing
|
||||
INVOICENUMBERSharingDescription=Selection of entities that share invoice number with this entity.
|
||||
EXPENSEREPORTSharing=Expense report sharing
|
||||
EXPENSEREPORTSharingDescription=Selection of entities that share the expense report with this entity.
|
||||
PROJECTSharing=Project sharing
|
||||
PROJECTSharingDescription=Selection of entities that share projects with this entity.
|
||||
MEMBERSharing=Member sharing
|
||||
MEMBERSharingDescription=Selection of entities that share members with this entity.
|
||||
MEMBER_TYPESharing=Members type sharing
|
||||
MEMBER_TYPESharingDescription=Selection of entities that share members type with this entity.
|
||||
HOLIDAYSharing=Holidays sharing
|
||||
HOLIDAYSharingDescription=Selection of entities that share holidays with this entity.
|
||||
PROPOSALSharing=Customers proposals sharing
|
||||
PROPOSALSharingDescription=Selection of entities that share customers proposals with this entity.
|
||||
ORDERSharing=Customers orders sharing
|
||||
ORDERSharingDescription=Selection of entities that share customers orders with this entity.
|
||||
INVOICESharing=Customers invoices sharing
|
||||
INVOICESharingDescription=Selection of entities that share customers invoices with this entity.
|
||||
|
||||
# Admin options tab
|
||||
Options=Options
|
||||
Template=Template
|
||||
DuplicateRights=Duplicate rights of user groups
|
||||
DuplicateRightsInfo=Duplicates the rights of this group from an entity or entity template to one or more other entities.
|
||||
SelectRightsOfEntityToDuplicate=Selection of the entity that will serve as a model:
|
||||
SelectEntitiesToOverride=Select the entities you want to edit:
|
||||
TemplateOfEntity=Template of entity
|
||||
ActivatingShares=Activating shares
|
||||
EntityActiveByDefault=Enable entities by default when they are created
|
||||
EntityVisibleByDefault=Make entities visible by default in the drop-down lists when they are created
|
||||
EntityLogoInLoginPage=Display of the logo of the selected entity on the login page
|
||||
EntityBackgroundInLoginPage=Display of the background of the selected entity on the login page
|
||||
DisableSwitchEntityDropdownMenu=Disable the new entity change drop-down menu.
|
||||
GroupModeTransversal=Enable centralized management of users and groups on the primary entity
|
||||
GroupModeTransversalTitle=Enable centralized management of users and groups
|
||||
GroupModeTransversalInfo=By default each entity is autonomous with its own user management. This option makes it possible to centralize the management of users and groups on the main entity by assigning rights to them relative to a group and to an entity.
|
||||
GroupModeTransversalInfoFull=By default each entity is autonomous with its own user management. This option makes it possible to centralize the management of users and groups on the main entity by assigning rights to them relative to a group and to an entity. Creating user groups is required to manage entity access rights.
|
||||
HideLoginCombobox=Hide the choice of entity in the login page
|
||||
EnableGlobalSharings=Enable features shared between entities
|
||||
ShareProduct=Enable sharing of products/services
|
||||
ProductSharingInfo=This option allows you to share products/services between entities.<br>INFO: If you want to be able to customize the price of the product in each entity, this requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration in each entity that uses this share.<br>If you want to personalize the VAT rates of the price levels, you have to add this constant:<br>"PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL" with as value 1 in each entity that uses this share.
|
||||
ShareProductprice=Enable sharing of products/services prices
|
||||
ProductPriceSharingInfo=This option allows you to share the price levels of a product.<br>IMPORTANT: This requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration.
|
||||
ShareProductsupplierprice=Enable sharing of products/services supplier prices
|
||||
ShareThirdpartiesAndContacts=Enable sharing of thirdparties and contacts
|
||||
ShareCategory=Enable sharing categories
|
||||
ShareAgenda=Enable sharing calendars
|
||||
ShareStock=Enable sharing of stocks
|
||||
ShareBankaccount=Enable sharing of bank accounts
|
||||
ShareProposalnumber=Enable sharing of proposals number
|
||||
ProposalNumberSharingInfo=This option allows you to have an overall incrementation of the proposal numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareOrdernumber=Enable sharing of orders number
|
||||
OrderNumberSharingInfo=This option allows you to have an overall incrementation of the order numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareInvoicenumber=Enable sharing of invoices number
|
||||
InvoiceNumberSharingInfo=This option allows you to have an overall incrementation of the invoice numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareExpensereport=Enable sharing of expenses reports
|
||||
ShareProject=Enable sharing of projects
|
||||
ShareMember=Enable sharing of members
|
||||
ShareMember_type=Enable sharing of members type
|
||||
ShareHoliday=Enable sharing of holidays
|
||||
GlobalSharings=Sharing features
|
||||
GlobalSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ActivatingDictsShares=Customizing dictionaries
|
||||
DictsSharingsInfo=By default, all entities use the dictionaries of the main entity.<br>You can activate the customization of a dictionary in order to have a different version by entity.
|
||||
ShareC_paiement=Enable customization of payment methods by entity (llx_c_paiement)
|
||||
ShareC_payment_term=Enable customization of payment terms by entity (llx_c_payment_term)
|
||||
ActivatingObjectShares=Activating objects sharing
|
||||
ObjectSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ShareProposal=Share customers proposals
|
||||
ShareOrder=Share customers orders
|
||||
ShareInvoice=Share customers invoices
|
||||
TemplateOfEntityManagement=Templates of entities management
|
||||
TemplateOfEntityManagementInfo=This option allows you to create feature templates to enable and pre-configure modules, shares between entities, and user access rights only with the user centralization mode on the primary entity.
|
||||
TemplateOfCompany=Define as a template of entity
|
||||
SelectTemplateOfCompany=Use a template for this new entity
|
||||
AddNewEntityInAllOtherEntities=Add this new entity in the sharing of other entities
|
||||
WarningThisIsATemplate=Warning ! This is a non-functional entity template and will only be visible to super administrators
|
||||
WarningMulticompanyIsInDevelopMode=Warning ! You are in development mode in your Dolibarr
|
||||
ShowTopMenuEntityLabel=Show entity label in top menu
|
||||
|
||||
# Admin caches tab
|
||||
MulticompanyCacheSystemInfo=The use of a cache can be useful if you have a large number of entities (≈50+), this will accelerate the display of Dolibarr.
|
||||
MulticompanySession=PHP $_SESSION cache
|
||||
MulticompanySessionDescription=The data is stored in the PHP $_SESSION global variable.<br>This cache is not shared and is limited to the current user.
|
||||
MulticompanyMemcached=Memcached server
|
||||
MulticompanyMemcachedDescription=This option allows you to use a Memcached server to improve the speed of display.<br>Requires a Memcached server and the Memcached or Memcache plugin for PHP.
|
||||
MulticompanyMemcachedUnavailable=Memcached or Memcache are not available on your PHP.
|
||||
MemcachedServerIsReady=The Memcached server is accessible
|
||||
MemcachedServerIsNotReady=The Memcached server is not accessible, check the address and port.
|
||||
MulticompanyShmop=Shared Memory (Shmop)
|
||||
MulticompanyShmopDescription=Shmop is a set of simple functions to manage shared memory with PHP.<br>(Read, write, create and delete UNIX shared memory Segments).
|
||||
MulticompanyShmopAvailable=Shmop is available on your PHP
|
||||
MulticompanyShmopUnavailable=Shmop is not available on your PHP
|
||||
|
||||
# Select/Change entity
|
||||
GlobalEntityDesc=Modification of the entity will only be permitted if no documents have been created. (Commercial proposal, orders, invoices, etc ...)
|
||||
ThirdpartyEntityDesc=You can use the current entity or assign that third party to another entity
|
||||
ThirdpartyModifyEntity=You can change its membership entity
|
||||
ThirdpartyModifyEntityDescription=Would you like to change the entity of that third party?
|
||||
ThirdpartyModifyEntitySuccess=The entity of this third party has been modified successfully
|
||||
ContactModifyEntity=You can change its membership entity
|
||||
ContactModifyEntityDescription=Would you like to change the entity of that contact?
|
||||
ContactModifyEntitySuccess=The entity of this contact has been modified successfully
|
||||
ModifyEntityNotAllowed=Modification of the entity is not permitted
|
||||
|
||||
# Errors
|
||||
ErrorEntityLabelAlreadyExist=Error: The label of that entity already exists.
|
||||
ErrorEntityIsNotValid=Error: This entity is not valid.
|
||||
ErrorNotDeleteMasterEntity=Error: Can not delete the master entity.
|
||||
ErrorThirdpartyModifyEntity=Error: Changing the entity of that third party can not be finalized!
|
||||
ErrorDropDownListOfEntitiesMustBeHidden=The drop-down list of entities on the login page must be hidden!
|
||||
ErrorLinkUserGroupEntity=You must associate user with a group and one or more entities in order to define permissions !!
|
||||
ErrorMulticompanyConfAuthentication=You need to enable Multicompany authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'mc';
|
||||
ErrorDolibarrConfAuthentication=You need to enable Dolibarr authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'dolibarr';
|
||||
|
||||
# Multiselect
|
||||
EntitiesSelected=Entities selected
|
||||
EntitiesAvailable=Entities available
|
||||
|
||||
# Datatables
|
||||
CloseDialog=Close
|
||||
LineEntries=lines
|
||||
Showing=Showing
|
||||
ShowingOf=Showing of
|
||||
TotalOf=total of
|
||||
Print=Print
|
||||
FilteredFrom=filtered from
|
||||
TotalEntries=total entries
|
||||
ShowHideColumns=Show/hide columns
|
||||
LoadingDataFromServer=Loading data from server
|
||||
NoRecordsToDisplay=No records to display
|
||||
NoEntriesToShow=No entries to show
|
||||
Processing=Processing...
|
||||
To=to
|
||||
First=First
|
||||
Last=Last
|
||||
Tools=Tools
|
||||
@ -1,250 +0,0 @@
|
||||
# Copyright (C) 2009-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
CHARSET=UTF-8
|
||||
Module5000Name=Multi empresa
|
||||
Module5000Desc=Administración de multi empresa en una instalación individual
|
||||
Permission5001=Read entities (For superadmin users)
|
||||
Permission5002=Create/modify entities (For superadmin users)
|
||||
Permission5003=Delete entities (For superadmin users)
|
||||
|
||||
# Third parties
|
||||
Permission5011=Read shared third parties
|
||||
Permission5012=Create/modify shared third parties
|
||||
Permission5013=Delete shared third parties
|
||||
|
||||
# Contacts
|
||||
Permission5021=Read shared contacts
|
||||
Permission5022=Create/modify shared contacts
|
||||
Permission5023=Delete shared contacts
|
||||
|
||||
# Products/Services
|
||||
Permission5031=Read shared products/services
|
||||
Permission5032=Create/modify shared products/services
|
||||
Permission5033=Delete shared products/services
|
||||
|
||||
# Customer proposals
|
||||
Permission5041=Read shared customer proposals
|
||||
Permission5042=Create/modify shared customer proposals
|
||||
Permission5043=Validate shared customer proposals
|
||||
Permission5044=Send shared customer proposals
|
||||
Permission5045=Close shared customer proposals
|
||||
Permission5046=Delete shared customer proposals
|
||||
|
||||
# Customer orders
|
||||
Permission5051=Read shared customer orders
|
||||
Permission5052=Create/modify shared customer orders
|
||||
Permission5054=Validate shared customer orders
|
||||
Permission5056=Send shared customer orders
|
||||
Permission5057=Close shared customer orders
|
||||
Permission5058=Cancel shared customer orders
|
||||
Permission5059=Delete shared customer orders
|
||||
|
||||
# Customer invoices
|
||||
Permission5061=Read shared customer invoices
|
||||
Permission5062=Create/modify shared customer invoices
|
||||
Permission5063=Devalidate shared customer invoices
|
||||
Permission5064=Validate shared customer invoices
|
||||
Permission5065=Send shared customer invoices
|
||||
Permission5066=Issue payments on shared customer invoices
|
||||
Permission5067=Re-open a fully paid shared customer invoices
|
||||
Permission5069=Delete shared customer invoices
|
||||
|
||||
MasterEntity=Empresa Maestra
|
||||
MasterEntityDesc=La empresa maestra no puede ser eliminada
|
||||
SwitchToAnotherEntity=Cambiar a otra empresa
|
||||
SelectAnEntity=Select an entity:
|
||||
AllEntities=Todas
|
||||
|
||||
# Admin parameters tab
|
||||
EntitiesManagement=Administración de empresas
|
||||
ListOfEntities=Lista de empresas
|
||||
AddEntity=Agregar empresa
|
||||
EditEntity=Modificar empresa
|
||||
EntityName=Nombre de empresa
|
||||
NoOtherEntityAvailable=No other entity available
|
||||
DefaultLanguageShort=Idioma predeterminado
|
||||
CommonParameters=Parámetros comunes para compartir
|
||||
ReferringEntity=Empresa referenciada para valores de configuración
|
||||
ReferringEntityForProposalNumber=Referring entity for configuration values of proposal numbering
|
||||
ReferringEntityForInvoiceNumber=Referring entity for configuration values of invoice numbering
|
||||
DeleteAnEntity=Borrar empresa
|
||||
ModifyEntity=Change entity
|
||||
SwitchEntity=Change entity
|
||||
AddAndStay=Add and stay
|
||||
UpdateAndStay=Update and stay
|
||||
CancelAndStay=Cancel and stay
|
||||
ConfirmDeleteEntity=¿Seguro que desea borrar esta empresa?
|
||||
ConfirmedEntityDeleted=La empresa ha sido eliminada
|
||||
MulticompanyMoreModules=Other modules of the same author and Dolibarr secure web hosting are available on %s
|
||||
MultiCompanyUpgradeIsNeeded=You use a new version of MULTICOMPANY module, please deactivate and reactivate the module to apply the update.
|
||||
MultiCompanyIsOlderThanDolibarr=You are using an older version of the Multicompany module, please update it!
|
||||
DolibarrIsOlderThanMulticompany=Your Multicompany module is newer than your Dolibarr, please update your Dolibarr or use a previous version of Multicompany!
|
||||
|
||||
THIRDPARTYSharing=Sharing thirdparties and contacts
|
||||
THIRDPARTYSharingDescription=Selection of entities that share their database thirdparties/contacts with the entity.
|
||||
PRODUCTSharing=Share of products/services
|
||||
PRODUCTSharingDescription=Selection of entities that share their database products/services with this entity.
|
||||
PRODUCTPRICESharing=Share prices of products/services
|
||||
PRODUCTPRICESharingDescription=Selection of entities that share prices of products/services with this entity.
|
||||
PRODUCTSUPPLIERPRICESharing=Share supplier prices of products/services
|
||||
PRODUCTSUPPLIERPRICESharingDescription=Selection of entities that share supplier prices of products/services with this entity.
|
||||
CATEGORYSharing=Sharing categories
|
||||
CATEGORYSharingDescription=Selection of entities that share categories with this entity.
|
||||
AGENDASharing=Calendar sharing
|
||||
AGENDASharingDescription=Selection of entities that share the calendar with this entity.
|
||||
STOCKSharing=Stock sharing
|
||||
STOCKSharingDescription=Selection of entities that share products stock with this entity.
|
||||
BANKACCOUNTSharing=Bank account sharing
|
||||
BANKACCOUNTSharingDescription=Selection of entities that share bank accounts with this entity.
|
||||
PROPOSALNUMBERSharing=Proposal number sharing
|
||||
PROPOSALNUMBERSharingDescription=Selection of entities that share proposal number with this entity.
|
||||
INVOICENUMBERSharing=Invoice number sharing
|
||||
INVOICENUMBERSharingDescription=Selection of entities that share invoice number with this entity.
|
||||
EXPENSEREPORTSharing=Expense report sharing
|
||||
EXPENSEREPORTSharingDescription=Selection of entities that share the expense report with this entity.
|
||||
PROJECTSharing=Project sharing
|
||||
PROJECTSharingDescription=Selection of entities that share projects with this entity.
|
||||
MEMBERSharing=Member sharing
|
||||
MEMBERSharingDescription=Selection of entities that share members with this entity.
|
||||
MEMBER_TYPESharing=Members type sharing
|
||||
MEMBER_TYPESharingDescription=Selection of entities that share members type with this entity.
|
||||
HOLIDAYSharing=Holidays sharing
|
||||
HOLIDAYSharingDescription=Selection of entities that share holidays with this entity.
|
||||
PROPOSALSharing=Customers proposals sharing
|
||||
PROPOSALSharingDescription=Selection of entities that share customers proposals with this entity.
|
||||
ORDERSharing=Customers orders sharing
|
||||
ORDERSharingDescription=Selection of entities that share customers orders with this entity.
|
||||
INVOICESharing=Customers invoices sharing
|
||||
INVOICESharingDescription=Selection of entities that share customers invoices with this entity.
|
||||
|
||||
# Admin options tab
|
||||
Options=Opciones
|
||||
Template=Template
|
||||
DuplicateRights=Duplicate rights of user groups
|
||||
DuplicateRightsInfo=Duplicates the rights of this group from an entity or entity template to one or more other entities.
|
||||
SelectRightsOfEntityToDuplicate=Selection of the entity that will serve as a model:
|
||||
SelectEntitiesToOverride=Select the entities you want to edit:
|
||||
TemplateOfEntity=Template of entity
|
||||
ActivatingShares=Activating shares
|
||||
EntityActiveByDefault=Enable entities by default when they are created
|
||||
EntityVisibleByDefault=Make entities visible by default in the drop-down lists when they are created
|
||||
EntityLogoInLoginPage=Display of the logo of the selected entity on the login page
|
||||
EntityBackgroundInLoginPage=Display of the background of the selected entity on the login page
|
||||
DisableSwitchEntityDropdownMenu=Disable the new entity change drop-down menu.
|
||||
GroupModeTransversal=Enable centralized management of users and groups on the primary entity
|
||||
GroupModeTransversalTitle=Enable centralized management of users and groups
|
||||
GroupModeTransversalInfo=By default each entity is autonomous with its own user management. This option makes it possible to centralize the management of users and groups on the main entity by assigning rights to them relative to a group and to an entity.
|
||||
GroupModeTransversalInfoFull=By default each entity is autonomous with its own user management. This option makes it possible to centralize the management of users and groups on the main entity by assigning rights to them relative to a group and to an entity. Creating user groups is required to manage entity access rights.
|
||||
HideLoginCombobox=Ocultar selección de empresa en el formulario de login
|
||||
EnableGlobalSharings=Habilitar característica "compartir entre empresas"
|
||||
ShareProduct=Enable sharing of products/services
|
||||
ProductSharingInfo=This option allows you to share products/services between entities.<br>INFO: If you want to be able to customize the price of the product in each entity, this requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration in each entity that uses this share.<br>If you want to personalize the VAT rates of the price levels, you have to add this constant:<br>"PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL" with as value 1 in each entity that uses this share.
|
||||
ShareProductprice=Enable sharing of products/services prices
|
||||
ProductPriceSharingInfo=This option allows you to share the price levels of a product.<br>IMPORTANT: This requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration.
|
||||
ShareProductsupplierprice=Enable sharing of products/services supplier prices
|
||||
ShareThirdpartiesAndContacts=Habilitar compartir terceros/contactos
|
||||
ShareCategory=Enable sharing categories
|
||||
ShareAgenda=Habilitar compartir calendario
|
||||
ShareStock=Habilitar compartir stock
|
||||
ShareBankaccount=Enable sharing of bank accounts
|
||||
ShareProposalnumber=Enable sharing of proposals number
|
||||
ProposalNumberSharingInfo=This option allows you to have an overall incrementation of the proposal numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareOrdernumber=Enable sharing of orders number
|
||||
OrderNumberSharingInfo=This option allows you to have an overall incrementation of the order numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareInvoicenumber=Enable sharing of invoices number
|
||||
InvoiceNumberSharingInfo=This option allows you to have an overall incrementation of the invoice numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareExpensereport=Enable sharing of expenses reports
|
||||
ShareProject=Enable sharing of projects
|
||||
ShareMember=Enable sharing of members
|
||||
ShareMember_type=Enable sharing of members type
|
||||
ShareHoliday=Enable sharing of holidays
|
||||
GlobalSharings=Características de compartir
|
||||
GlobalSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ActivatingDictsShares=Customizing dictionaries
|
||||
DictsSharingsInfo=By default, all entities use the dictionaries of the main entity.<br>You can activate the customization of a dictionary in order to have a different version by entity.
|
||||
ShareC_paiement=Enable customization of payment methods by entity (llx_c_paiement)
|
||||
ShareC_payment_term=Enable customization of payment terms by entity (llx_c_payment_term)
|
||||
ActivatingObjectShares=Activating objects sharing
|
||||
ObjectSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ShareProposal=Share customers proposals
|
||||
ShareOrder=Share customers orders
|
||||
ShareInvoice=Share customers invoices
|
||||
TemplateOfEntityManagement=Templates of entities management
|
||||
TemplateOfEntityManagementInfo=This option allows you to create feature templates to enable and pre-configure modules, shares between entities, and user access rights only with the user centralization mode on the primary entity.
|
||||
TemplateOfCompany=Define as a template of entity
|
||||
SelectTemplateOfCompany=Use a template for this new entity
|
||||
AddNewEntityInAllOtherEntities=Add this new entity in the sharing of other entities
|
||||
WarningThisIsATemplate=Warning ! This is a non-functional entity template and will only be visible to super administrators
|
||||
WarningMulticompanyIsInDevelopMode=Warning ! You are in development mode in your Dolibarr
|
||||
ShowTopMenuEntityLabel=Show entity label in top menu
|
||||
|
||||
# Admin caches tab
|
||||
MulticompanyCacheSystemInfo=The use of a cache can be useful if you have a large number of entities (≈50+), this will accelerate the display of Dolibarr.
|
||||
MulticompanySession=PHP $_SESSION cache
|
||||
MulticompanySessionDescription=The data is stored in the PHP $_SESSION global variable.<br>This cache is not shared and is limited to the current user.
|
||||
MulticompanyMemcached=Memcached server
|
||||
MulticompanyMemcachedDescription=This option allows you to use a Memcached server to improve the speed of display.<br>Requires a Memcached server and the Memcached or Memcache plugin for PHP.
|
||||
MulticompanyMemcachedUnavailable=Memcached or Memcache are not available on your PHP.
|
||||
MemcachedServerIsReady=The Memcached server is accessible
|
||||
MemcachedServerIsNotReady=The Memcached server is not accessible, check the address and port.
|
||||
MulticompanyShmop=Shared Memory (Shmop)
|
||||
MulticompanyShmopDescription=Shmop is a set of simple functions to manage shared memory with PHP.<br>(Read, write, create and delete UNIX shared memory Segments).
|
||||
MulticompanyShmopAvailable=Shmop is available on your PHP
|
||||
MulticompanyShmopUnavailable=Shmop is not available on your PHP
|
||||
|
||||
# Select/Change entity
|
||||
GlobalEntityDesc=Modification of the entity will only be permitted if no documents have been created. (Commercial proposal, orders, invoices, etc ...)
|
||||
ThirdpartyEntityDesc=You can use the current entity or assign that third party to another entity
|
||||
ThirdpartyModifyEntity=You can change its membership entity
|
||||
ThirdpartyModifyEntityDescription=Would you like to change the entity of that third party?
|
||||
ThirdpartyModifyEntitySuccess=The entity of this third party has been modified successfully
|
||||
ContactModifyEntity=You can change its membership entity
|
||||
ContactModifyEntityDescription=Would you like to change the entity of that contact?
|
||||
ContactModifyEntitySuccess=The entity of this contact has been modified successfully
|
||||
ModifyEntityNotAllowed=Modification of the entity is not permitted
|
||||
|
||||
# Errors
|
||||
ErrorEntityLabelAlreadyExist=Error: The label of that entity already exists.
|
||||
ErrorEntityIsNotValid=Error: This entity is not valid.
|
||||
ErrorNotDeleteMasterEntity=Error: Can not delete the master entity.
|
||||
ErrorThirdpartyModifyEntity=Error: Changing the entity of that third party can not be finalized!
|
||||
ErrorDropDownListOfEntitiesMustBeHidden=The drop-down list of entities on the login page must be hidden!
|
||||
ErrorLinkUserGroupEntity=You must associate user with a group and one or more entities in order to define permissions !!
|
||||
ErrorMulticompanyConfAuthentication=You need to enable Multicompany authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'mc';
|
||||
ErrorDolibarrConfAuthentication=You need to enable Dolibarr authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'dolibarr';
|
||||
|
||||
# Multiselect
|
||||
EntitiesSelected=Entities selected
|
||||
EntitiesAvailable=Entities available
|
||||
|
||||
# Datatables
|
||||
CloseDialog=Close
|
||||
LineEntries=lines
|
||||
Showing=Showing
|
||||
ShowingOf=Showing of
|
||||
TotalOf=total of
|
||||
Print=Print
|
||||
FilteredFrom=filtered from
|
||||
TotalEntries=total entries
|
||||
ShowHideColumns=Show/hide columns
|
||||
LoadingDataFromServer=Loading data from server
|
||||
NoRecordsToDisplay=No records to display
|
||||
NoEntriesToShow=No entries to show
|
||||
Processing=Processing...
|
||||
To=to
|
||||
First=First
|
||||
Last=Last
|
||||
Tools=Tools
|
||||
@ -1,250 +0,0 @@
|
||||
# Copyright (C) 2009-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
CHARSET=UTF-8
|
||||
Module5000Name=Multi Compañía
|
||||
Module5000Desc=Administración de multi compañía en una instalación individual
|
||||
Permission5001=Read entities (For superadmin users)
|
||||
Permission5002=Create/modify entities (For superadmin users)
|
||||
Permission5003=Delete entities (For superadmin users)
|
||||
|
||||
# Third parties
|
||||
Permission5011=Read shared third parties
|
||||
Permission5012=Create/modify shared third parties
|
||||
Permission5013=Delete shared third parties
|
||||
|
||||
# Contacts
|
||||
Permission5021=Read shared contacts
|
||||
Permission5022=Create/modify shared contacts
|
||||
Permission5023=Delete shared contacts
|
||||
|
||||
# Products/Services
|
||||
Permission5031=Read shared products/services
|
||||
Permission5032=Create/modify shared products/services
|
||||
Permission5033=Delete shared products/services
|
||||
|
||||
# Customer proposals
|
||||
Permission5041=Read shared customer proposals
|
||||
Permission5042=Create/modify shared customer proposals
|
||||
Permission5043=Validate shared customer proposals
|
||||
Permission5044=Send shared customer proposals
|
||||
Permission5045=Close shared customer proposals
|
||||
Permission5046=Delete shared customer proposals
|
||||
|
||||
# Customer orders
|
||||
Permission5051=Read shared customer orders
|
||||
Permission5052=Create/modify shared customer orders
|
||||
Permission5054=Validate shared customer orders
|
||||
Permission5056=Send shared customer orders
|
||||
Permission5057=Close shared customer orders
|
||||
Permission5058=Cancel shared customer orders
|
||||
Permission5059=Delete shared customer orders
|
||||
|
||||
# Customer invoices
|
||||
Permission5061=Read shared customer invoices
|
||||
Permission5062=Create/modify shared customer invoices
|
||||
Permission5063=Devalidate shared customer invoices
|
||||
Permission5064=Validate shared customer invoices
|
||||
Permission5065=Send shared customer invoices
|
||||
Permission5066=Issue payments on shared customer invoices
|
||||
Permission5067=Re-open a fully paid shared customer invoices
|
||||
Permission5069=Delete shared customer invoices
|
||||
|
||||
MasterEntity=Entidad maestra
|
||||
MasterEntityDesc=Entidad maestra, no puede ser eliminada
|
||||
SwitchToAnotherEntity=Cambiar de entidad
|
||||
SelectAnEntity=Select an entity:
|
||||
AllEntities=Todas las entidades
|
||||
|
||||
# Admin parameters tab
|
||||
EntitiesManagement=Gestión de entidades
|
||||
ListOfEntities=Listado de entidades
|
||||
AddEntity=Añadir entidad
|
||||
EditEntity=Editar entidad
|
||||
EntityName=nombre de la entidad
|
||||
NoOtherEntityAvailable=No other entity available
|
||||
DefaultLanguageShort=Idioma por defecto
|
||||
CommonParameters=Parámetros comunes de acciones
|
||||
ReferringEntity=Entidad de referencia para los valores de configuración
|
||||
ReferringEntityForProposalNumber=Referring entity for configuration values of proposal numbering
|
||||
ReferringEntityForInvoiceNumber=Referring entity for configuration values of invoice numbering
|
||||
DeleteAnEntity=Eliminar una entidad
|
||||
ModifyEntity=Cambiar entidad
|
||||
SwitchEntity=Cambia la entidad
|
||||
AddAndStay=Añadir y continuar
|
||||
UpdateAndStay=Actualizar y continuar
|
||||
CancelAndStay=Cancelar y continuar
|
||||
ConfirmDeleteEntity=¿Está seguro de querer eliminar esta entidad?
|
||||
ConfirmedEntityDeleted=La entidad ha sido eliminada.
|
||||
MulticompanyMoreModules=Otros módulos del mismo autor y alojamiento web seguro de Dolibarr están disponibles en %s
|
||||
MultiCompanyUpgradeIsNeeded=Usas una nueva versión del módulo MULTICOMPANY, por favor desactiva y vuelve a activar el módulo para que se aplique la actualización.
|
||||
MultiCompanyIsOlderThanDolibarr=You are using an older version of the Multicompany module, please update it!
|
||||
DolibarrIsOlderThanMulticompany=Your Multicompany module is newer than your Dolibarr, please update your Dolibarr or use a previous version of Multicompany!
|
||||
|
||||
THIRDPARTYSharing=Intercambiar terceros y contactos
|
||||
THIRDPARTYSharingDescription=Selección de entidades que intercambian sus terceros/contactos con esta entidad.
|
||||
PRODUCTSharing=Intercambiar productos/servicios
|
||||
PRODUCTSharingDescription=Selección de entidades que intercambian sus productos/servicios con esta entidad.
|
||||
PRODUCTPRICESharing=Compartir precio de productos/servicios
|
||||
PRODUCTPRICESharingDescription=Entidades que comparten precios de productos/servicios con esta entidad
|
||||
PRODUCTSUPPLIERPRICESharing=Share supplier prices of products/services
|
||||
PRODUCTSUPPLIERPRICESharingDescription=Selection of entities that share supplier prices of products/services with this entity.
|
||||
CATEGORYSharing=Intercambiar categorías
|
||||
CATEGORYSharingDescription=Selección de entidades que intercambian sus categorías con esta entidad.
|
||||
AGENDASharing=Intercambiar agendas
|
||||
AGENDASharingDescription=Selección de entidades que intercambian su agenda con esta entidad.
|
||||
STOCKSharing=Intercambio de stock
|
||||
STOCKSharingDescription=Conjunto de entidades que comparten stock de productos con esta entidad.
|
||||
BANKACCOUNTSharing=Intercambiar cuentas bancarias
|
||||
BANKACCOUNTSharingDescription=Selección de entidades que intercambian sus cuentas bancarias con esta entidad
|
||||
PROPOSALNUMBERSharing=Proposal number sharing
|
||||
PROPOSALNUMBERSharingDescription=Selection of entities that share proposal number with this entity.
|
||||
INVOICENUMBERSharing=Intercambio de numeración de facturas
|
||||
INVOICENUMBERSharingDescription=Conjunto de entidades que comparten facturas con esta entidad.
|
||||
EXPENSEREPORTSharing=Intercambio de informes de gastos
|
||||
EXPENSEREPORTSharingDescription=Conjunto de entidades que comparten informes de gastos con esta entidad.
|
||||
PROJECTSharing=Intercambio de proyectos
|
||||
PROJECTSharingDescription=Conjunto de entidades que comparten proyectos con esta entidad.
|
||||
MEMBERSharing=Intercambio de miembros
|
||||
MEMBERSharingDescription=Conjunto de entidades que comparten miembros con esta entidad.
|
||||
MEMBER_TYPESharing=Members type sharing
|
||||
MEMBER_TYPESharingDescription=Selection of entities that share members type with this entity.
|
||||
HOLIDAYSharing=Holidays sharing
|
||||
HOLIDAYSharingDescription=Selection of entities that share holidays with this entity.
|
||||
PROPOSALSharing=Customers proposals sharing
|
||||
PROPOSALSharingDescription=Selection of entities that share customers proposals with this entity.
|
||||
ORDERSharing=Customers orders sharing
|
||||
ORDERSharingDescription=Selection of entities that share customers orders with this entity.
|
||||
INVOICESharing=Customers invoices sharing
|
||||
INVOICESharingDescription=Selection of entities that share customers invoices with this entity.
|
||||
|
||||
# Admin options tab
|
||||
Options=Opciones
|
||||
Template=Plantilla
|
||||
DuplicateRights=Duplicate rights of user groups
|
||||
DuplicateRightsInfo=Duplicates the rights of this group from an entity or entity template to one or more other entities.
|
||||
SelectRightsOfEntityToDuplicate=Selection of the entity that will serve as a model:
|
||||
SelectEntitiesToOverride=Select the entities you want to edit:
|
||||
TemplateOfEntity=Plantilla de una entidad
|
||||
ActivatingShares=Activar intercambio
|
||||
EntityActiveByDefault=Enable entities by default when they are created
|
||||
EntityVisibleByDefault=Make entities visible by default in the drop-down lists when they are created
|
||||
EntityLogoInLoginPage=Display of the logo of the selected entity on the login page
|
||||
EntityBackgroundInLoginPage=Display of the background of the selected entity on the login page
|
||||
DisableSwitchEntityDropdownMenu=Disable the new entity change drop-down menu.
|
||||
GroupModeTransversal=Activar gestión centralizada de usuarios y grupos en la entidad principal
|
||||
GroupModeTransversalTitle=Activar gestión centralizada de usuarios y grupos
|
||||
GroupModeTransversalInfo=Por defecto, cada entidad es independiente con su propia gestión de usuarios. Esta opción permite centralizar la gestión de usuarios y grupos en la entidad principal mediante la asignación de derechos a relativos a un grupo y a una entidad.
|
||||
GroupModeTransversalInfoFull=Por defecto, cada entidad es independiente en su gestión. Esta opción hace posible centralizar la gestión de usuarios y grupo en la entidad principal mediante la asignación de derechos relativos a un grupo y a una entidad. Crear grupos de usuario en necesario para gestionar los accesos a las entidades.
|
||||
HideLoginCombobox=Ocultar la selección de la entidad en la página de inicio
|
||||
EnableGlobalSharings=Activar las funciones de intercambio entre entidades
|
||||
ShareProduct=Enable sharing of products/services
|
||||
ProductSharingInfo=This option allows you to share products/services between entities.<br>INFO: If you want to be able to customize the price of the product in each entity, this requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration in each entity that uses this share.<br>If you want to personalize the VAT rates of the price levels, you have to add this constant:<br>"PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL" with as value 1 in each entity that uses this share.
|
||||
ShareProductprice=Enable sharing of products/services prices
|
||||
ProductPriceSharingInfo=This option allows you to share the price levels of a product.<br>IMPORTANT: This requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration.
|
||||
ShareProductsupplierprice=Enable sharing of products/services supplier prices
|
||||
ShareThirdpartiesAndContacts=Activar el intercambio de terceros y contactos
|
||||
ShareCategory=Enable sharing categories
|
||||
ShareAgenda=Activar el intercambio de la agenda
|
||||
ShareStock=Activar el intercambio de stocks
|
||||
ShareBankaccount=Enable sharing of bank accounts
|
||||
ShareProposalnumber=Enable sharing of proposals number
|
||||
ProposalNumberSharingInfo=This option allows you to have an overall incrementation of the proposal numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareOrdernumber=Enable sharing of orders number
|
||||
OrderNumberSharingInfo=This option allows you to have an overall incrementation of the order numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareInvoicenumber=Enable sharing of invoices number
|
||||
InvoiceNumberSharingInfo=This option allows you to have an overall incrementation of the invoice numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareExpensereport=Enable sharing of expenses reports
|
||||
ShareProject=Activar intercambio de proyectos
|
||||
ShareMember=Enable sharing of members
|
||||
ShareMember_type=Enable sharing of members type
|
||||
ShareHoliday=Enable sharing of holidays
|
||||
GlobalSharings=Características de intercambio
|
||||
GlobalSharingsInfo=Una vez se activen las opciones de intercambio, tendrá que configurar cada entidad para permitir los intercambios entre entidades.
|
||||
ActivatingDictsShares=Personalización de diccionarios
|
||||
DictsSharingsInfo=De forma predeterminada, todas las entidades utilizan los diccionarios de la entidad principal.<br>Puede activar la personalización de un diccionario para tener una versión diferente por entidad.
|
||||
ShareC_paiement=Activar personalización de métodos de pago por entidad (llx_c_paiement)
|
||||
ShareC_payment_term=Activar personalización de condiciones de pago por entidad (llx_c_payment_term)
|
||||
ActivatingObjectShares=Activating objects sharing
|
||||
ObjectSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ShareProposal=Share customers proposals
|
||||
ShareOrder=Share customers orders
|
||||
ShareInvoice=Share customers invoices
|
||||
TemplateOfEntityManagement=Templates of entities management
|
||||
TemplateOfEntityManagementInfo=This option allows you to create feature templates to enable and pre-configure modules, shares between entities, and user access rights only with the user centralization mode on the primary entity.
|
||||
TemplateOfCompany=Define as a template of entity
|
||||
SelectTemplateOfCompany=Use a template for this new entity
|
||||
AddNewEntityInAllOtherEntities=Add this new entity in the sharing of other entities
|
||||
WarningThisIsATemplate=Warning ! This is a non-functional entity template and will only be visible to super administrators
|
||||
WarningMulticompanyIsInDevelopMode=Warning ! You are in development mode in your Dolibarr
|
||||
ShowTopMenuEntityLabel=Show entity label in top menu
|
||||
|
||||
# Admin caches tab
|
||||
MulticompanyCacheSystemInfo=The use of a cache can be useful if you have a large number of entities (≈50+), this will accelerate the display of Dolibarr.
|
||||
MulticompanySession=PHP $_SESSION cache
|
||||
MulticompanySessionDescription=The data is stored in the PHP $_SESSION global variable.<br>This cache is not shared and is limited to the current user.
|
||||
MulticompanyMemcached=Servidor Memcached
|
||||
MulticompanyMemcachedDescription=This option allows you to use a Memcached server to improve the speed of display.<br>Requires a Memcached server and the Memcached or Memcache plugin for PHP.
|
||||
MulticompanyMemcachedUnavailable=Memcached or Memcache are not available on your PHP.
|
||||
MemcachedServerIsReady=The Memcached server is accessible
|
||||
MemcachedServerIsNotReady=The Memcached server is not accessible, check the address and port.
|
||||
MulticompanyShmop=Memoria Compartida (Shmop)
|
||||
MulticompanyShmopDescription=Shmop is a set of simple functions to manage shared memory with PHP.<br>(Read, write, create and delete UNIX shared memory Segments).
|
||||
MulticompanyShmopAvailable=Shmop is available on your PHP
|
||||
MulticompanyShmopUnavailable=Shmop is not available on your PHP
|
||||
|
||||
# Select/Change entity
|
||||
GlobalEntityDesc=Modification of the entity will only be permitted if no documents have been created. (Commercial proposal, orders, invoices, etc ...)
|
||||
ThirdpartyEntityDesc=You can use the current entity or assign that third party to another entity
|
||||
ThirdpartyModifyEntity=You can change its membership entity
|
||||
ThirdpartyModifyEntityDescription=Would you like to change the entity of that third party?
|
||||
ThirdpartyModifyEntitySuccess=The entity of this third party has been modified successfully
|
||||
ContactModifyEntity=You can change its membership entity
|
||||
ContactModifyEntityDescription=Would you like to change the entity of that contact?
|
||||
ContactModifyEntitySuccess=The entity of this contact has been modified successfully
|
||||
ModifyEntityNotAllowed=Modification of the entity is not permitted
|
||||
|
||||
# Errors
|
||||
ErrorEntityLabelAlreadyExist=Error: La etiqueta de esta entidad ya existe.
|
||||
ErrorEntityIsNotValid=Error: Esta entidad no es válida.
|
||||
ErrorNotDeleteMasterEntity=Error: No se puede eliminar la entidad maestra.
|
||||
ErrorThirdpartyModifyEntity=Error: Changing the entity of that third party can not be finalized!
|
||||
ErrorDropDownListOfEntitiesMustBeHidden=The drop-down list of entities on the login page must be hidden!
|
||||
ErrorLinkUserGroupEntity=You must associate user with a group and one or more entities in order to define permissions !!
|
||||
ErrorMulticompanyConfAuthentication=You need to enable Multicompany authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'mc';
|
||||
ErrorDolibarrConfAuthentication=You need to enable Dolibarr authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'dolibarr';
|
||||
|
||||
# Multiselect
|
||||
EntitiesSelected=Entidades seleccionadas
|
||||
EntitiesAvailable=Entidades disponibles
|
||||
|
||||
# Datatables
|
||||
CloseDialog=Cerrar
|
||||
LineEntries=lineas
|
||||
Showing=Mostrando
|
||||
ShowingOf=Mostrando de
|
||||
TotalOf=total de
|
||||
Print=Imprimir
|
||||
FilteredFrom=filtrado desde
|
||||
TotalEntries=registros totales
|
||||
ShowHideColumns=Mostrar/ocultar columnas
|
||||
LoadingDataFromServer=Loading data from server
|
||||
NoRecordsToDisplay=No records to display
|
||||
NoEntriesToShow=No entries to show
|
||||
Processing=Procesando...
|
||||
To=hasta
|
||||
First=Primero
|
||||
Last=Último
|
||||
Tools=Tools
|
||||
@ -1,250 +0,0 @@
|
||||
# Copyright (C) 2009-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
CHARSET=UTF-8
|
||||
Module5000Name=Multi-Company
|
||||
Module5000Desc=Multi-company management on a single installation
|
||||
Permission5001=Read entities (For superadmin users)
|
||||
Permission5002=Create/modify entities (For superadmin users)
|
||||
Permission5003=Delete entities (For superadmin users)
|
||||
|
||||
# Third parties
|
||||
Permission5011=Read shared third parties
|
||||
Permission5012=Create/modify shared third parties
|
||||
Permission5013=Delete shared third parties
|
||||
|
||||
# Contacts
|
||||
Permission5021=Read shared contacts
|
||||
Permission5022=Create/modify shared contacts
|
||||
Permission5023=Delete shared contacts
|
||||
|
||||
# Products/Services
|
||||
Permission5031=Read shared products/services
|
||||
Permission5032=Create/modify shared products/services
|
||||
Permission5033=Delete shared products/services
|
||||
|
||||
# Customer proposals
|
||||
Permission5041=Read shared customer proposals
|
||||
Permission5042=Create/modify shared customer proposals
|
||||
Permission5043=Validate shared customer proposals
|
||||
Permission5044=Send shared customer proposals
|
||||
Permission5045=Close shared customer proposals
|
||||
Permission5046=Delete shared customer proposals
|
||||
|
||||
# Customer orders
|
||||
Permission5051=Read shared customer orders
|
||||
Permission5052=Create/modify shared customer orders
|
||||
Permission5054=Validate shared customer orders
|
||||
Permission5056=Send shared customer orders
|
||||
Permission5057=Close shared customer orders
|
||||
Permission5058=Cancel shared customer orders
|
||||
Permission5059=Delete shared customer orders
|
||||
|
||||
# Customer invoices
|
||||
Permission5061=Read shared customer invoices
|
||||
Permission5062=Create/modify shared customer invoices
|
||||
Permission5063=Devalidate shared customer invoices
|
||||
Permission5064=Validate shared customer invoices
|
||||
Permission5065=Send shared customer invoices
|
||||
Permission5066=Issue payments on shared customer invoices
|
||||
Permission5067=Re-open a fully paid shared customer invoices
|
||||
Permission5069=Delete shared customer invoices
|
||||
|
||||
MasterEntity=Master entity
|
||||
MasterEntityDesc=Master entity, can not be deleted
|
||||
SwitchToAnotherEntity=Switch to another entity
|
||||
SelectAnEntity=Select an entity:
|
||||
AllEntities=All entities
|
||||
|
||||
# Admin parameters tab
|
||||
EntitiesManagement=Entities management
|
||||
ListOfEntities=List of entities
|
||||
AddEntity=Add an entity
|
||||
EditEntity=Edit an entity
|
||||
EntityName=Entity name
|
||||
NoOtherEntityAvailable=No other entity available
|
||||
DefaultLanguageShort=Default language
|
||||
CommonParameters=Common parameters for shares
|
||||
ReferringEntity=Referring entity for configuration values
|
||||
ReferringEntityForProposalNumber=Referring entity for configuration values of proposal numbering
|
||||
ReferringEntityForInvoiceNumber=Referring entity for configuration values of invoice numbering
|
||||
DeleteAnEntity=Delete an entity
|
||||
ModifyEntity=Change entity
|
||||
SwitchEntity=Change entity
|
||||
AddAndStay=Add and stay
|
||||
UpdateAndStay=Update and stay
|
||||
CancelAndStay=Cancel and stay
|
||||
ConfirmDeleteEntity=Are you sure you want to delete this entity?
|
||||
ConfirmedEntityDeleted=The entity has been deleted.
|
||||
MulticompanyMoreModules=Other modules of the same author and Dolibarr secure web hosting are available on %s
|
||||
MultiCompanyUpgradeIsNeeded=You use a new version of MULTICOMPANY module, please deactivate and reactivate the module to apply the update.
|
||||
MultiCompanyIsOlderThanDolibarr=You are using an older version of the Multicompany module, please update it!
|
||||
DolibarrIsOlderThanMulticompany=Your Multicompany module is newer than your Dolibarr, please update your Dolibarr or use a previous version of Multicompany!
|
||||
|
||||
THIRDPARTYSharing=Sharing thirdparties and contacts
|
||||
THIRDPARTYSharingDescription=Selection of entities that share their database thirdparties/contacts with the entity.
|
||||
PRODUCTSharing=Share of products/services
|
||||
PRODUCTSharingDescription=Selection of entities that share their database products/services with this entity.
|
||||
PRODUCTPRICESharing=Share prices of products/services
|
||||
PRODUCTPRICESharingDescription=Selection of entities that share prices of products/services with this entity.
|
||||
PRODUCTSUPPLIERPRICESharing=Share supplier prices of products/services
|
||||
PRODUCTSUPPLIERPRICESharingDescription=Selection of entities that share supplier prices of products/services with this entity.
|
||||
CATEGORYSharing=Sharing categories
|
||||
CATEGORYSharingDescription=Selection of entities that share categories with this entity.
|
||||
AGENDASharing=Calendar sharing
|
||||
AGENDASharingDescription=Selection of entities that share the calendar with this entity.
|
||||
STOCKSharing=Stock sharing
|
||||
STOCKSharingDescription=Selection of entities that share products stock with this entity.
|
||||
BANKACCOUNTSharing=Bank account sharing
|
||||
BANKACCOUNTSharingDescription=Selection of entities that share bank accounts with this entity.
|
||||
PROPOSALNUMBERSharing=Proposal number sharing
|
||||
PROPOSALNUMBERSharingDescription=Selection of entities that share proposal number with this entity.
|
||||
INVOICENUMBERSharing=Invoice number sharing
|
||||
INVOICENUMBERSharingDescription=Selection of entities that share invoice number with this entity.
|
||||
EXPENSEREPORTSharing=Expense report sharing
|
||||
EXPENSEREPORTSharingDescription=Selection of entities that share the expense report with this entity.
|
||||
PROJECTSharing=Project sharing
|
||||
PROJECTSharingDescription=Selection of entities that share projects with this entity.
|
||||
MEMBERSharing=Member sharing
|
||||
MEMBERSharingDescription=Selection of entities that share members with this entity.
|
||||
MEMBER_TYPESharing=Members type sharing
|
||||
MEMBER_TYPESharingDescription=Selection of entities that share members type with this entity.
|
||||
HOLIDAYSharing=Holidays sharing
|
||||
HOLIDAYSharingDescription=Selection of entities that share holidays with this entity.
|
||||
PROPOSALSharing=Customers proposals sharing
|
||||
PROPOSALSharingDescription=Selection of entities that share customers proposals with this entity.
|
||||
ORDERSharing=Customers orders sharing
|
||||
ORDERSharingDescription=Selection of entities that share customers orders with this entity.
|
||||
INVOICESharing=Customers invoices sharing
|
||||
INVOICESharingDescription=Selection of entities that share customers invoices with this entity.
|
||||
|
||||
# Admin options tab
|
||||
Options=Options
|
||||
Template=Template
|
||||
DuplicateRights=Duplicate rights of user groups
|
||||
DuplicateRightsInfo=Duplicates the rights of this group from an entity or entity template to one or more other entities.
|
||||
SelectRightsOfEntityToDuplicate=Selection of the entity that will serve as a model:
|
||||
SelectEntitiesToOverride=Select the entities you want to edit:
|
||||
TemplateOfEntity=Template of entity
|
||||
ActivatingShares=Activating shares
|
||||
EntityActiveByDefault=Enable entities by default when they are created
|
||||
EntityVisibleByDefault=Make entities visible by default in the drop-down lists when they are created
|
||||
EntityLogoInLoginPage=Display of the logo of the selected entity on the login page
|
||||
EntityBackgroundInLoginPage=Display of the background of the selected entity on the login page
|
||||
DisableSwitchEntityDropdownMenu=Disable the new entity change drop-down menu.
|
||||
GroupModeTransversal=Enable centralized management of users and groups on the primary entity
|
||||
GroupModeTransversalTitle=Enable centralized management of users and groups
|
||||
GroupModeTransversalInfo=By default each entity is autonomous with its own user management. This option makes it possible to centralize the management of users and groups on the main entity by assigning rights to them relative to a group and to an entity.
|
||||
GroupModeTransversalInfoFull=By default each entity is autonomous with its own user management. This option makes it possible to centralize the management of users and groups on the main entity by assigning rights to them relative to a group and to an entity. Creating user groups is required to manage entity access rights.
|
||||
HideLoginCombobox=Hide the choice of entity in the login page
|
||||
EnableGlobalSharings=Enable features shared between entities
|
||||
ShareProduct=Enable sharing of products/services
|
||||
ProductSharingInfo=This option allows you to share products/services between entities.<br>INFO: If you want to be able to customize the price of the product in each entity, this requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration in each entity that uses this share.<br>If you want to personalize the VAT rates of the price levels, you have to add this constant:<br>"PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL" with as value 1 in each entity that uses this share.
|
||||
ShareProductprice=Enable sharing of products/services prices
|
||||
ProductPriceSharingInfo=This option allows you to share the price levels of a product.<br>IMPORTANT: This requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration.
|
||||
ShareProductsupplierprice=Enable sharing of products/services supplier prices
|
||||
ShareThirdpartiesAndContacts=Enable sharing of thirdparties and contacts
|
||||
ShareCategory=Enable sharing categories
|
||||
ShareAgenda=Enable sharing calendars
|
||||
ShareStock=Enable sharing of stocks
|
||||
ShareBankaccount=Enable sharing of bank accounts
|
||||
ShareProposalnumber=Enable sharing of proposals number
|
||||
ProposalNumberSharingInfo=This option allows you to have an overall incrementation of the proposal numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareOrdernumber=Enable sharing of orders number
|
||||
OrderNumberSharingInfo=This option allows you to have an overall incrementation of the order numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareInvoicenumber=Enable sharing of invoices number
|
||||
InvoiceNumberSharingInfo=This option allows you to have an overall incrementation of the invoice numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareExpensereport=Enable sharing of expenses reports
|
||||
ShareProject=Enable sharing of projects
|
||||
ShareMember=Enable sharing of members
|
||||
ShareMember_type=Enable sharing of members type
|
||||
ShareHoliday=Enable sharing of holidays
|
||||
GlobalSharings=Sharing features
|
||||
GlobalSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ActivatingDictsShares=Customizing dictionaries
|
||||
DictsSharingsInfo=By default, all entities use the dictionaries of the main entity.<br>You can activate the customization of a dictionary in order to have a different version by entity.
|
||||
ShareC_paiement=Enable customization of payment methods by entity (llx_c_paiement)
|
||||
ShareC_payment_term=Enable customization of payment terms by entity (llx_c_payment_term)
|
||||
ActivatingObjectShares=Activating objects sharing
|
||||
ObjectSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ShareProposal=Share customers proposals
|
||||
ShareOrder=Share customers orders
|
||||
ShareInvoice=Share customers invoices
|
||||
TemplateOfEntityManagement=Templates of entities management
|
||||
TemplateOfEntityManagementInfo=This option allows you to create feature templates to enable and pre-configure modules, shares between entities, and user access rights only with the user centralization mode on the primary entity.
|
||||
TemplateOfCompany=Define as a template of entity
|
||||
SelectTemplateOfCompany=Use a template for this new entity
|
||||
AddNewEntityInAllOtherEntities=Add this new entity in the sharing of other entities
|
||||
WarningThisIsATemplate=Warning ! This is a non-functional entity template and will only be visible to super administrators
|
||||
WarningMulticompanyIsInDevelopMode=Warning ! You are in development mode in your Dolibarr
|
||||
ShowTopMenuEntityLabel=Show entity label in top menu
|
||||
|
||||
# Admin caches tab
|
||||
MulticompanyCacheSystemInfo=The use of a cache can be useful if you have a large number of entities (≈50+), this will accelerate the display of Dolibarr.
|
||||
MulticompanySession=PHP $_SESSION cache
|
||||
MulticompanySessionDescription=The data is stored in the PHP $_SESSION global variable.<br>This cache is not shared and is limited to the current user.
|
||||
MulticompanyMemcached=Memcached server
|
||||
MulticompanyMemcachedDescription=This option allows you to use a Memcached server to improve the speed of display.<br>Requires a Memcached server and the Memcached or Memcache plugin for PHP.
|
||||
MulticompanyMemcachedUnavailable=Memcached or Memcache are not available on your PHP.
|
||||
MemcachedServerIsReady=The Memcached server is accessible
|
||||
MemcachedServerIsNotReady=The Memcached server is not accessible, check the address and port.
|
||||
MulticompanyShmop=Shared Memory (Shmop)
|
||||
MulticompanyShmopDescription=Shmop is a set of simple functions to manage shared memory with PHP.<br>(Read, write, create and delete UNIX shared memory Segments).
|
||||
MulticompanyShmopAvailable=Shmop is available on your PHP
|
||||
MulticompanyShmopUnavailable=Shmop is not available on your PHP
|
||||
|
||||
# Select/Change entity
|
||||
GlobalEntityDesc=Modification of the entity will only be permitted if no documents have been created. (Commercial proposal, orders, invoices, etc ...)
|
||||
ThirdpartyEntityDesc=You can use the current entity or assign that third party to another entity
|
||||
ThirdpartyModifyEntity=You can change its membership entity
|
||||
ThirdpartyModifyEntityDescription=Would you like to change the entity of that third party?
|
||||
ThirdpartyModifyEntitySuccess=The entity of this third party has been modified successfully
|
||||
ContactModifyEntity=You can change its membership entity
|
||||
ContactModifyEntityDescription=Would you like to change the entity of that contact?
|
||||
ContactModifyEntitySuccess=The entity of this contact has been modified successfully
|
||||
ModifyEntityNotAllowed=Modification of the entity is not permitted
|
||||
|
||||
# Errors
|
||||
ErrorEntityLabelAlreadyExist=Error: The label of that entity already exists.
|
||||
ErrorEntityIsNotValid=Error: This entity is not valid.
|
||||
ErrorNotDeleteMasterEntity=Error: Can not delete the master entity.
|
||||
ErrorThirdpartyModifyEntity=Error: Changing the entity of that third party can not be finalized!
|
||||
ErrorDropDownListOfEntitiesMustBeHidden=The drop-down list of entities on the login page must be hidden!
|
||||
ErrorLinkUserGroupEntity=You must associate user with a group and one or more entities in order to define permissions !!
|
||||
ErrorMulticompanyConfAuthentication=You need to enable Multicompany authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'mc';
|
||||
ErrorDolibarrConfAuthentication=You need to enable Dolibarr authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'dolibarr';
|
||||
|
||||
# Multiselect
|
||||
EntitiesSelected=Entities selected
|
||||
EntitiesAvailable=Entities available
|
||||
|
||||
# Datatables
|
||||
CloseDialog=Close
|
||||
LineEntries=lines
|
||||
Showing=Showing
|
||||
ShowingOf=Showing of
|
||||
TotalOf=total of
|
||||
Print=Print
|
||||
FilteredFrom=filtered from
|
||||
TotalEntries=total entries
|
||||
ShowHideColumns=Show/hide columns
|
||||
LoadingDataFromServer=Loading data from server
|
||||
NoRecordsToDisplay=No records to display
|
||||
NoEntriesToShow=No entries to show
|
||||
Processing=Processing...
|
||||
To=to
|
||||
First=First
|
||||
Last=Last
|
||||
Tools=Tools
|
||||
@ -1,250 +0,0 @@
|
||||
# Copyright (C) 2009-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
CHARSET=UTF-8
|
||||
Module5000Name=Multi-Société
|
||||
Module5000Desc=Gestion multi-société sur une même installation
|
||||
Permission5001=Lire les entités (Superadmin seulement)
|
||||
Permission5002=Créer/modifier les entités (Superadmin seulement)
|
||||
Permission5003=Supprimer les entités (Superadmin seulement)
|
||||
|
||||
# Third parties
|
||||
Permission5011=Lire les tiers partagés
|
||||
Permission5012=Créer/modifier les tiers partagés
|
||||
Permission5013=Supprimer les tiers partagés
|
||||
|
||||
# Contacts
|
||||
Permission5021=Lire les contacts partagés
|
||||
Permission5022=Créer/modifier les contacts partagés
|
||||
Permission5023=Supprimer les contacts partagés
|
||||
|
||||
# Products/Services
|
||||
Permission5031=Lire les produits/services partagés
|
||||
Permission5032=Créer/modifier les produits/services partagés
|
||||
Permission5033=Supprimer les produits/services partagés
|
||||
|
||||
# Customer proposals
|
||||
Permission5041=Lire les propositions commerciales partagées
|
||||
Permission5042=Créer/modifier les propositions commerciales partagées
|
||||
Permission5043=Valider les propositions commerciales partagées
|
||||
Permission5044=Envoyer les propositions commerciales partagées
|
||||
Permission5045=Clôturer les propositions commerciales partagées
|
||||
Permission5046=Supprimer les propositions commerciales partagées
|
||||
|
||||
# Customer orders
|
||||
Permission5051=Lire les commandes clients partagées
|
||||
Permission5052=Créer/modifier les commandes clients partagées
|
||||
Permission5054=Valider les commandes clients partagées
|
||||
Permission5056=Envoyer les commandes clients partagées
|
||||
Permission5057=Clôturer les commandes clients partagées
|
||||
Permission5058=Annuler les commandes clients partagées
|
||||
Permission5059=Supprimer les commandes clients partagées
|
||||
|
||||
# Customer invoices
|
||||
Permission5061=Lire les factures clients partagées
|
||||
Permission5062=Créer/modifier les factures clients partagées
|
||||
Permission5063=Dévalider les factures clients partagées
|
||||
Permission5064=Valider les factures clients partagées
|
||||
Permission5065=Envoyer les factures clients partagées
|
||||
Permission5066=Émettre un paiement sur les factures clients partagées
|
||||
Permission5067=Rouvrir une facture client partagée entièrement payée
|
||||
Permission5069=Supprimer les factures clients partagées
|
||||
|
||||
MasterEntity=Entité maître
|
||||
MasterEntityDesc=Entité maître, ne peut pas être supprimée
|
||||
SwitchToAnotherEntity=Changer d'entité
|
||||
SelectAnEntity=Sélectionner une entité :
|
||||
AllEntities=Toutes les entités
|
||||
|
||||
# Admin parameters tab
|
||||
EntitiesManagement=Gestion des entités
|
||||
ListOfEntities=Liste des entités
|
||||
AddEntity=Ajout d'une entité
|
||||
EditEntity=Edition d'une entité
|
||||
EntityName=nom de l'entité
|
||||
NoOtherEntityAvailable=Aucune autre entité disponible
|
||||
DefaultLanguageShort=Langue par défaut
|
||||
CommonParameters=Paramètres communs des partages
|
||||
ReferringEntity=Entité référente pour les valeurs de configuration
|
||||
ReferringEntityForProposalNumber=Entité référente pour les valeurs de configuration de la numérotation des propositions commerciales
|
||||
ReferringEntityForInvoiceNumber=Entité référente pour les valeurs de configuration de la numérotation des factures
|
||||
DeleteAnEntity=Supprimer une entité
|
||||
ModifyEntity=Modifier l'entité
|
||||
SwitchEntity=Changer d'entité
|
||||
AddAndStay=Ajouter et rester
|
||||
UpdateAndStay=Modifier et rester
|
||||
CancelAndStay=Annuler et rester
|
||||
ConfirmDeleteEntity=Êtes vous certain de vouloir supprimer cette entité ?
|
||||
ConfirmedEntityDeleted=L'entité a été supprimée.
|
||||
MulticompanyMoreModules=D'autres modules du même auteur et des hébergements sécurisés de Dolibarr sont disponibles sur %s
|
||||
MultiCompanyUpgradeIsNeeded=Vous utilisez une nouvelle version du module MULTICOMPANY, désactivez et réactivez le module pour appliquer la mise à jour.
|
||||
MultiCompanyIsOlderThanDolibarr=Vous utilisez une ancienne version du module Multicompany, veuillez la mettre à jour!
|
||||
DolibarrIsOlderThanMulticompany=Votre module Multicompany est plus récent que votre Dolibarr, veuillez mettre à jour votre Dolibarr ou utilisez une version précédente de Multicompany!
|
||||
|
||||
THIRDPARTYSharing=Partage des tiers et des contacts
|
||||
THIRDPARTYSharingDescription=Sélection des entités qui partagerons leur base tiers/contacts avec cette entité.
|
||||
PRODUCTSharing=Partage des produits/services
|
||||
PRODUCTSharingDescription=Sélection des entités qui partagerons leur base produits/services avec cette entité.
|
||||
PRODUCTPRICESharing=Partage des prix des produits/services
|
||||
PRODUCTPRICESharingDescription=Sélection des entités qui partagerons les prix des produits/services avec cette entité.
|
||||
PRODUCTSUPPLIERPRICESharing=Partage des prix fournisseurs des produits/services
|
||||
PRODUCTSUPPLIERPRICESharingDescription=Sélection des entités qui partagerons les prix fournisseurs des produits/services avec cette entité.
|
||||
CATEGORYSharing=Partage des catégories
|
||||
CATEGORYSharingDescription=Sélection des entités qui partagerons leur base catégories avec cette entité.
|
||||
AGENDASharing=Partage des agendas
|
||||
AGENDASharingDescription=Sélection des entités qui partagerons leur base agenda avec cette entité.
|
||||
STOCKSharing=Partage des stocks
|
||||
STOCKSharingDescription=Sélection des entités qui partagerons leurs stocks de produits avec cette entité.
|
||||
BANKACCOUNTSharing=Partage des comptes bancaires
|
||||
BANKACCOUNTSharingDescription=Sélection des entités qui partagerons leurs comptes bancaires avec cette entité.
|
||||
PROPOSALNUMBERSharing=Partage des numéros des propositions commerciales clients
|
||||
PROPOSALNUMBERSharingDescription=Sélection des entités qui partagerons leur numéros de proposition commerciales clients avec cette entité.
|
||||
INVOICENUMBERSharing=Partage des numéros des factures clients
|
||||
INVOICENUMBERSharingDescription=Sélection des entités qui partagerons leurs numéros de facture clients avec cette entité.
|
||||
EXPENSEREPORTSharing=Partage des notes de frais
|
||||
EXPENSEREPORTSharingDescription=Sélection des entités qui partagerons leurs notes de frais avec cette entité.
|
||||
PROJECTSharing=Partage des projets
|
||||
PROJECTSharingDescription=Sélection des entités qui partagerons leurs projets avec cette entité.
|
||||
MEMBERSharing=Partage des adhérents
|
||||
MEMBERSharingDescription=Sélection des entités qui partagerons leurs adhérents avec cette entité.
|
||||
MEMBER_TYPESharing=Partage des types d'adhérents
|
||||
MEMBER_TYPESharingDescription=Sélection des entités qui partagerons leurs types d'adhérents avec cette entité.
|
||||
HOLIDAYSharing=Partage des congés
|
||||
HOLIDAYSharingDescription=Sélection des entités qui partagerons leurs congés avec cette entité.
|
||||
PROPOSALSharing=Partage des propositions commerciales clients
|
||||
PROPOSALSharingDescription=Sélection des entités qui partagerons leurs propositions commerciales clients avec cette entité.
|
||||
ORDERSharing=Partage des commandes clients
|
||||
ORDERSharingDescription=Sélection des entités qui partagerons leurs commandes clients avec cette entité.
|
||||
INVOICESharing=Partage des factures clients
|
||||
INVOICESharingDescription=Sélection des entités qui partagerons leurs factures clients avec cette entité.
|
||||
|
||||
# Admin options tab
|
||||
Options=Options
|
||||
Template=Modèle
|
||||
DuplicateRights=Duplication des droits du groupe d'utilisateurs
|
||||
DuplicateRightsInfo=Dupliquer les droits de ce groupe à partir d'une entité ou d'un modèle d'entité vers une ou plusieurs autres entités.
|
||||
SelectRightsOfEntityToDuplicate=Sélectionner l'entité qui servira de modèle :
|
||||
SelectEntitiesToOverride=Sélectionner les entités que vous souhaitez modifier :
|
||||
TemplateOfEntity=Modèle d'entité
|
||||
ActivatingShares=Activation des partages
|
||||
EntityActiveByDefault=Activer les entités par défaut lors de leur création
|
||||
EntityVisibleByDefault=Rendre visible les entités par défaut dans les listes déroulantes lors de leur création
|
||||
EntityLogoInLoginPage=Affichage du logo de l'entité sélectionnée sur la page de login
|
||||
EntityBackgroundInLoginPage=Affichage du fond d'écran de l'entité sélectionnée sur la page de login
|
||||
DisableSwitchEntityDropdownMenu=Désactiver le nouveau menu déroulant de changement d'entité
|
||||
GroupModeTransversal=Activer la gestion centralisée des utilisateurs et des groupes sur l'entité principale
|
||||
GroupModeTransversalTitle=Activer la gestion centralisée des utilisateurs et des groupes
|
||||
GroupModeTransversalInfo=Par défaut chaque entité est autonome avec sa propre gestion d'utilisateurs. Cette option permet de centraliser la gestion des utilisateurs et des groupes sur l'entité principale en leur attribuant des droits par rapport à un groupe et à une entité.
|
||||
GroupModeTransversalInfoFull=Par défaut chaque entité est autonome avec sa propre gestion d'utilisateurs. Cette option permet de centraliser la gestion des utilisateurs et des groupes sur l'entité principale en leur attribuant des droits par rapport à un groupe et à une entité. La création de groupes d'utilisateurs est obligatoire pour gérés les droits d'accès aux entités.
|
||||
HideLoginCombobox=Masquer le choix de l'entité dans la page de login
|
||||
EnableGlobalSharings=Activer les fonctionnalités de partages entre entités
|
||||
ShareProduct=Activer le partage des produits/services
|
||||
ProductSharingInfo=Cette option permet de partager les produits/services.<br>INFO : Si vous souhaitez pouvoir personnaliser le prix du produit dans chaque entité, ceci nécessite d'activer l'option "Plusieurs niveaux de prix par produit/service" dans la configuration du module Produit/Service dans chaque entité qui utilise ce partage.<br>Si vous souhaitez personnaliser les taux de tva des niveaux de prix, il faut ajouter la constante :<br>"PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL" avec la valeur 1 dans chaque entité qui utilise ce partage.
|
||||
ShareProductprice=Activer le partage des prix des produits/services
|
||||
ProductPriceSharingInfo=Cette option permet de partager les niveaux de prix d'un produit.<br>INPORTANT : Ceci nécessite d'activer l'option "Plusieurs niveaux de prix par produit/service" dans la configuration du module Produit/Service.
|
||||
ShareProductsupplierprice=Activer le partage des prix fournisseurs des produits/services
|
||||
ShareThirdpartiesAndContacts=Activer le partage des tiers et des contacts
|
||||
ShareCategory=Activer le partage des catégories
|
||||
ShareAgenda=Activer le partage des agendas
|
||||
ShareStock=Activer le partage des stocks
|
||||
ShareBankaccount=Activer le partages des comptes bancaires
|
||||
ShareProposalnumber=Activer le partage de la numérotation des propositions commerciales clients
|
||||
ProposalNumberSharingInfo=Cette option permet d'avoir une incrémentation globale des numéros de proposition commerciale entre les entités qui utilisent ce partage. Vous devrez sélectionner une entité référente pour les valeurs de configuration du module de numérotation choisi. Chaque entité devra utiliser le même modèle de numérotation.
|
||||
ShareOrdernumber=Activer le partage de la numérotation des commandes clients
|
||||
OrderNumberSharingInfo=Cette option permet d'avoir une incrémentation globale des numéros des commandes clients entre les entités qui utilisent ce partage. Vous devrez sélectionner une entité référente pour les valeurs de configuration du module de numérotation choisi. Chaque entité devra utiliser le même modèle de numérotation.
|
||||
ShareInvoicenumber=Activer le partage de la numérotation des factures clients
|
||||
InvoiceNumberSharingInfo=Cette option permet d'avoir une incrémentation globale des numéros de facture entre les entités qui utilisent ce partage. Vous devrez sélectionner une entité référente pour les valeurs de configuration du module de numérotation choisi. Chaque entité devra utiliser le même modèle de numérotation.
|
||||
ShareExpensereport=Activer le partage des notes de frais
|
||||
ShareProject=Activer le partage des projects
|
||||
ShareMember=Activer le partage des adhérents
|
||||
ShareMember_type=Activer le partage des types d'adhérents
|
||||
ShareHoliday=Activer le partage des congés
|
||||
GlobalSharings=Fonctionnalités de partages
|
||||
GlobalSharingsInfo=Une fois les options de partages activées, il sera nécessaire de configurer chaque entité dans l'onglet "Environnements" pour autoriser les partages entre entités.
|
||||
ActivatingDictsShares=Personnalisation des dictionnaires
|
||||
DictsSharingsInfo=Par défaut, toutes les entités utilisent les dictionnaires de l'entité principale.<br>Vous pouvez activer la personnalisation d'un dictionnaire pour avoir une version différente par entité.
|
||||
ShareC_paiement=Activer la personnalisation des modes de paiements par entité (llx_c_paiement)
|
||||
ShareC_payment_term=Activer la personnalisation des conditions de paiements par entité (llx_c_payment_term)
|
||||
ActivatingObjectShares=Activation des partages de documents
|
||||
ObjectSharingsInfo=Une fois les options de partages activées, il sera nécessaire de configurer chaque entité<br>dans l'onglet "Environnements" pour autoriser les partages entre entités.
|
||||
ShareProposal=Partage des propositions commerciales clients
|
||||
ShareOrder=Partage des commandes clients
|
||||
ShareInvoice=Partage des factures clients
|
||||
TemplateOfEntityManagement=Gestion des modèles d'entités
|
||||
TemplateOfEntityManagementInfo=Cette option vous permet de créer des modèles d'entité afin d'activer et pré-configurer les modules, les partages entre entités et les droits d'accès utilisateur uniquement avec le mode de centralisation des utilisateurs sur l'entité principale.
|
||||
TemplateOfCompany=Définir en tant que modèle d'entité
|
||||
SelectTemplateOfCompany=Utiliser ce modèle d'entité
|
||||
AddNewEntityInAllOtherEntities=Ajouter cette nouvelle entité dans le partage des autres entités
|
||||
WarningThisIsATemplate=Attention ! Ceci est un modèle d'entité non utilisable en production et seulement visible par les superadmin
|
||||
WarningMulticompanyIsInDevelopMode=Avertissement ! Vous êtes en mode développement sur votre Dolibarr
|
||||
ShowTopMenuEntityLabel=Visualiser le libellé de l'entité dans le menu du haut
|
||||
|
||||
# Admin caches tab
|
||||
MulticompanyCacheSystemInfo=L'utilisation d'un cache peut être utile si vous avez un nombre important d'entité (≈50+) , ceci permettra d'accélérer l'affichage de Dolibarr.
|
||||
MulticompanySession=Cache $_SESSION de PHP
|
||||
MulticompanySessionDescription=Les données sont stockées dans la variable globale $_SESSION de PHP.<br>Ce cache n'est pas partagé et est limité à l'utilisateur courant.
|
||||
MulticompanyMemcached=Serveur Memcached
|
||||
MulticompanyMemcachedDescription=Cette option permet d'utiliser un serveur Memcached afin d'améliorer la rapidité d'affichage.<br>Nécessite un serveur Memcached et le plugin Memcached ou Memcache pour PHP.
|
||||
MulticompanyMemcachedUnavailable=Memcached ou Memcache ne sont pas disponibles sur votre PHP.
|
||||
MemcachedServerIsReady=Le serveur Memcached est accessible
|
||||
MemcachedServerIsNotReady=Le serveur Memcached n'est pas accessible, vérifier l'adresse et le port.
|
||||
MulticompanyShmop=Mémoire partagée (Shmop)
|
||||
MulticompanyShmopDescription=Shmop est un ensemble de fonctions simples pour gérer la mémoire partagée avec PHP.<br>(lecture, écriture, création et suppression de segments de mémoire partagée UNIX).
|
||||
MulticompanyShmopAvailable=Shmop est disponible sur votre PHP
|
||||
MulticompanyShmopUnavailable=Shmop n'est pas disponible sur votre PHP
|
||||
|
||||
# Select/Change entity
|
||||
GlobalEntityDesc=La modification de l'entité ne sera autorisée que si aucun document n'a été créé. (Proposition commerciale, commandes, factures, etc ...)
|
||||
ThirdpartyEntityDesc=Vous pouvez utiliser l'entité actuelle ou attribuer ce tiers à une autre entité
|
||||
ThirdpartyModifyEntity=Vous pouvez modifier son entité d'appartenance
|
||||
ThirdpartyModifyEntityDescription=Voulez-vous modifier l'entité de ce tiers ?
|
||||
ThirdpartyModifyEntitySuccess=L'entité de ce tiers a été modifiée avec succès
|
||||
ContactModifyEntity=Vous pouvez modifier son entité d'appartenance
|
||||
ContactModifyEntityDescription=Voulez-vous modifier l'entité de ce contact ?
|
||||
ContactModifyEntitySuccess=L'entité de ce contact a été modifiée avec succès
|
||||
ModifyEntityNotAllowed=La modification de l'entité n'est pas autorisée
|
||||
|
||||
# Errors
|
||||
ErrorEntityLabelAlreadyExist=Erreur: Le libellé de cette entité existe déjà.
|
||||
ErrorEntityIsNotValid=Erreur: Cette entité n'est pas valide.
|
||||
ErrorNotDeleteMasterEntity=Erreur: On ne peut pas supprimer l'entité maître.
|
||||
ErrorThirdpartyModifyEntity=Erreur: La modification de l'entité de ce tiers ne peut être finalisée!
|
||||
ErrorDropDownListOfEntitiesMustBeHidden=La liste déroulante des entités sur la page de login doit être cachée !
|
||||
ErrorLinkUserGroupEntity=Vous devez associer l'utilisateur à un groupe et à une ou plusieurs entités afin de pouvoir définir les permissions !!
|
||||
ErrorMulticompanyConfAuthentication=Vous devez activer l'authentification Multicompany en modifiant cette ligne dans conf.php avec comme valeur : $dolibarr_main_authentication = 'mc';
|
||||
ErrorDolibarrConfAuthentication=Vous devez activer l'authentification Dolibarr en modifiant cette ligne dans conf.php avec comme valeur : $dolibarr_main_authentication = 'dolibarr';
|
||||
|
||||
# Multiselect
|
||||
EntitiesSelected=Entités sélectionnées
|
||||
EntitiesAvailable=Entités disponibles
|
||||
|
||||
# Datatables
|
||||
CloseDialog=Fermer
|
||||
LineEntries=lignes
|
||||
Showing=Afficher
|
||||
ShowingOf=Affichage de
|
||||
TotalOf=sur un total de
|
||||
Print=Imprimer
|
||||
FilteredFrom=Filtré à partir de
|
||||
TotalEntries=entrées au total
|
||||
ShowHideColumns=Afficher/cacher colonnes
|
||||
LoadingDataFromServer=Chargement des données du serveur
|
||||
NoRecordsToDisplay=Aucun enregistrement à afficher
|
||||
NoEntriesToShow=Aucune entrée à afficher
|
||||
Processing=En traitement...
|
||||
To=à
|
||||
First=Début
|
||||
Last=Fin
|
||||
Tools=Outils
|
||||
@ -1,250 +0,0 @@
|
||||
# Copyright (C) 2009-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
CHARSET=UTF-8
|
||||
Module5000Name=Multi-Company
|
||||
Module5000Desc=Multi-company management on a single installation
|
||||
Permission5001=Read entities (For superadmin users)
|
||||
Permission5002=Create/modify entities (For superadmin users)
|
||||
Permission5003=Delete entities (For superadmin users)
|
||||
|
||||
# Third parties
|
||||
Permission5011=Read shared third parties
|
||||
Permission5012=Create/modify shared third parties
|
||||
Permission5013=Delete shared third parties
|
||||
|
||||
# Contacts
|
||||
Permission5021=Read shared contacts
|
||||
Permission5022=Create/modify shared contacts
|
||||
Permission5023=Delete shared contacts
|
||||
|
||||
# Products/Services
|
||||
Permission5031=Read shared products/services
|
||||
Permission5032=Create/modify shared products/services
|
||||
Permission5033=Delete shared products/services
|
||||
|
||||
# Customer proposals
|
||||
Permission5041=Read shared customer proposals
|
||||
Permission5042=Create/modify shared customer proposals
|
||||
Permission5043=Validate shared customer proposals
|
||||
Permission5044=Send shared customer proposals
|
||||
Permission5045=Close shared customer proposals
|
||||
Permission5046=Delete shared customer proposals
|
||||
|
||||
# Customer orders
|
||||
Permission5051=Read shared customer orders
|
||||
Permission5052=Create/modify shared customer orders
|
||||
Permission5054=Validate shared customer orders
|
||||
Permission5056=Send shared customer orders
|
||||
Permission5057=Close shared customer orders
|
||||
Permission5058=Cancel shared customer orders
|
||||
Permission5059=Delete shared customer orders
|
||||
|
||||
# Customer invoices
|
||||
Permission5061=Read shared customer invoices
|
||||
Permission5062=Create/modify shared customer invoices
|
||||
Permission5063=Devalidate shared customer invoices
|
||||
Permission5064=Validate shared customer invoices
|
||||
Permission5065=Send shared customer invoices
|
||||
Permission5066=Issue payments on shared customer invoices
|
||||
Permission5067=Re-open a fully paid shared customer invoices
|
||||
Permission5069=Delete shared customer invoices
|
||||
|
||||
MasterEntity=Fő szervezet
|
||||
MasterEntityDesc=Fő szervezet, nem törölhető
|
||||
SwitchToAnotherEntity=Váltás másik szervezetre
|
||||
SelectAnEntity=Select an entity:
|
||||
AllEntities=Minden szervezet
|
||||
|
||||
# Admin parameters tab
|
||||
EntitiesManagement=Szervezet kezelés
|
||||
ListOfEntities=Szervezetek listája
|
||||
AddEntity=Hozzáadás
|
||||
EditEntity=Szerkesztés
|
||||
EntityName=Szervezet neve
|
||||
NoOtherEntityAvailable=No other entity available
|
||||
DefaultLanguageShort=Alapértelmezett nyelv
|
||||
CommonParameters=Common parameters for shares
|
||||
ReferringEntity=Referring entity for configuration values
|
||||
ReferringEntityForProposalNumber=Referring entity for configuration values of proposal numbering
|
||||
ReferringEntityForInvoiceNumber=Referring entity for configuration values of invoice numbering
|
||||
DeleteAnEntity=Törlés
|
||||
ModifyEntity=Change entity
|
||||
SwitchEntity=Change entity
|
||||
AddAndStay=Add and stay
|
||||
UpdateAndStay=Update and stay
|
||||
CancelAndStay=Cancel and stay
|
||||
ConfirmDeleteEntity=Biztosan törölni akarja ezt a szervezetet?
|
||||
ConfirmedEntityDeleted=Szervezet törölve.
|
||||
MulticompanyMoreModules=Other modules of the same author and Dolibarr secure web hosting are available on %s
|
||||
MultiCompanyUpgradeIsNeeded=You use a new version of MULTICOMPANY module, please deactivate and reactivate the module to apply the update.
|
||||
MultiCompanyIsOlderThanDolibarr=You are using an older version of the Multicompany module, please update it!
|
||||
DolibarrIsOlderThanMulticompany=Your Multicompany module is newer than your Dolibarr, please update your Dolibarr or use a previous version of Multicompany!
|
||||
|
||||
THIRDPARTYSharing=Sharing thirdparties and contacts
|
||||
THIRDPARTYSharingDescription=Selection of entities that share their database thirdparties/contacts with the entity.
|
||||
PRODUCTSharing=Share of products/services
|
||||
PRODUCTSharingDescription=Selection of entities that share their database products/services with this entity.
|
||||
PRODUCTPRICESharing=Share prices of products/services
|
||||
PRODUCTPRICESharingDescription=Selection of entities that share prices of products/services with this entity.
|
||||
PRODUCTSUPPLIERPRICESharing=Share supplier prices of products/services
|
||||
PRODUCTSUPPLIERPRICESharingDescription=Selection of entities that share supplier prices of products/services with this entity.
|
||||
CATEGORYSharing=Sharing categories
|
||||
CATEGORYSharingDescription=Selection of entities that share categories with this entity.
|
||||
AGENDASharing=Calendar sharing
|
||||
AGENDASharingDescription=Selection of entities that share the calendar with this entity.
|
||||
STOCKSharing=Stock sharing
|
||||
STOCKSharingDescription=Selection of entities that share products stock with this entity.
|
||||
BANKACCOUNTSharing=Bank account sharing
|
||||
BANKACCOUNTSharingDescription=Selection of entities that share bank accounts with this entity.
|
||||
PROPOSALNUMBERSharing=Proposal number sharing
|
||||
PROPOSALNUMBERSharingDescription=Selection of entities that share proposal number with this entity.
|
||||
INVOICENUMBERSharing=Invoice number sharing
|
||||
INVOICENUMBERSharingDescription=Selection of entities that share invoice number with this entity.
|
||||
EXPENSEREPORTSharing=Expense report sharing
|
||||
EXPENSEREPORTSharingDescription=Selection of entities that share the expense report with this entity.
|
||||
PROJECTSharing=Project sharing
|
||||
PROJECTSharingDescription=Selection of entities that share projects with this entity.
|
||||
MEMBERSharing=Member sharing
|
||||
MEMBERSharingDescription=Selection of entities that share members with this entity.
|
||||
MEMBER_TYPESharing=Members type sharing
|
||||
MEMBER_TYPESharingDescription=Selection of entities that share members type with this entity.
|
||||
HOLIDAYSharing=Holidays sharing
|
||||
HOLIDAYSharingDescription=Selection of entities that share holidays with this entity.
|
||||
PROPOSALSharing=Customers proposals sharing
|
||||
PROPOSALSharingDescription=Selection of entities that share customers proposals with this entity.
|
||||
ORDERSharing=Customers orders sharing
|
||||
ORDERSharingDescription=Selection of entities that share customers orders with this entity.
|
||||
INVOICESharing=Customers invoices sharing
|
||||
INVOICESharingDescription=Selection of entities that share customers invoices with this entity.
|
||||
|
||||
# Admin options tab
|
||||
Options=Beállítások
|
||||
Template=Template
|
||||
DuplicateRights=Duplicate rights of user groups
|
||||
DuplicateRightsInfo=Duplicates the rights of this group from an entity or entity template to one or more other entities.
|
||||
SelectRightsOfEntityToDuplicate=Selection of the entity that will serve as a model:
|
||||
SelectEntitiesToOverride=Select the entities you want to edit:
|
||||
TemplateOfEntity=Template of entity
|
||||
ActivatingShares=Activating shares
|
||||
EntityActiveByDefault=Enable entities by default when they are created
|
||||
EntityVisibleByDefault=Make entities visible by default in the drop-down lists when they are created
|
||||
EntityLogoInLoginPage=Display of the logo of the selected entity on the login page
|
||||
EntityBackgroundInLoginPage=Display of the background of the selected entity on the login page
|
||||
DisableSwitchEntityDropdownMenu=Disable the new entity change drop-down menu.
|
||||
GroupModeTransversal=Enable centralized management of users and groups on the primary entity
|
||||
GroupModeTransversalTitle=Enable centralized management of users and groups
|
||||
GroupModeTransversalInfo=By default each entity is autonomous with its own user management. This option makes it possible to centralize the management of users and groups on the main entity by assigning rights to them relative to a group and to an entity.
|
||||
GroupModeTransversalInfoFull=By default each entity is autonomous with its own user management. This option makes it possible to centralize the management of users and groups on the main entity by assigning rights to them relative to a group and to an entity. Creating user groups is required to manage entity access rights.
|
||||
HideLoginCombobox=Szervezet választó elrejtése a bejelentkezési ablakról
|
||||
EnableGlobalSharings=Megosztások engedélyezése
|
||||
ShareProduct=Enable sharing of products/services
|
||||
ProductSharingInfo=This option allows you to share products/services between entities.<br>INFO: If you want to be able to customize the price of the product in each entity, this requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration in each entity that uses this share.<br>If you want to personalize the VAT rates of the price levels, you have to add this constant:<br>"PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL" with as value 1 in each entity that uses this share.
|
||||
ShareProductprice=Enable sharing of products/services prices
|
||||
ProductPriceSharingInfo=This option allows you to share the price levels of a product.<br>IMPORTANT: This requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration.
|
||||
ShareProductsupplierprice=Enable sharing of products/services supplier prices
|
||||
ShareThirdpartiesAndContacts=Cégek és kapcsolatok megosztása
|
||||
ShareCategory=Enable sharing categories
|
||||
ShareAgenda=Enable sharing calendars
|
||||
ShareStock=Enable sharing of stocks
|
||||
ShareBankaccount=Enable sharing of bank accounts
|
||||
ShareProposalnumber=Enable sharing of proposals number
|
||||
ProposalNumberSharingInfo=This option allows you to have an overall incrementation of the proposal numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareOrdernumber=Enable sharing of orders number
|
||||
OrderNumberSharingInfo=This option allows you to have an overall incrementation of the order numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareInvoicenumber=Enable sharing of invoices number
|
||||
InvoiceNumberSharingInfo=This option allows you to have an overall incrementation of the invoice numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareExpensereport=Enable sharing of expenses reports
|
||||
ShareProject=Enable sharing of projects
|
||||
ShareMember=Enable sharing of members
|
||||
ShareMember_type=Enable sharing of members type
|
||||
ShareHoliday=Enable sharing of holidays
|
||||
GlobalSharings=Sharing features
|
||||
GlobalSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ActivatingDictsShares=Customizing dictionaries
|
||||
DictsSharingsInfo=By default, all entities use the dictionaries of the main entity.<br>You can activate the customization of a dictionary in order to have a different version by entity.
|
||||
ShareC_paiement=Enable customization of payment methods by entity (llx_c_paiement)
|
||||
ShareC_payment_term=Enable customization of payment terms by entity (llx_c_payment_term)
|
||||
ActivatingObjectShares=Activating objects sharing
|
||||
ObjectSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ShareProposal=Share customers proposals
|
||||
ShareOrder=Share customers orders
|
||||
ShareInvoice=Share customers invoices
|
||||
TemplateOfEntityManagement=Templates of entities management
|
||||
TemplateOfEntityManagementInfo=This option allows you to create feature templates to enable and pre-configure modules, shares between entities, and user access rights only with the user centralization mode on the primary entity.
|
||||
TemplateOfCompany=Define as a template of entity
|
||||
SelectTemplateOfCompany=Use a template for this new entity
|
||||
AddNewEntityInAllOtherEntities=Add this new entity in the sharing of other entities
|
||||
WarningThisIsATemplate=Warning ! This is a non-functional entity template and will only be visible to super administrators
|
||||
WarningMulticompanyIsInDevelopMode=Warning ! You are in development mode in your Dolibarr
|
||||
ShowTopMenuEntityLabel=Show entity label in top menu
|
||||
|
||||
# Admin caches tab
|
||||
MulticompanyCacheSystemInfo=The use of a cache can be useful if you have a large number of entities (≈50+), this will accelerate the display of Dolibarr.
|
||||
MulticompanySession=PHP $_SESSION cache
|
||||
MulticompanySessionDescription=The data is stored in the PHP $_SESSION global variable.<br>This cache is not shared and is limited to the current user.
|
||||
MulticompanyMemcached=Memcached server
|
||||
MulticompanyMemcachedDescription=This option allows you to use a Memcached server to improve the speed of display.<br>Requires a Memcached server and the Memcached or Memcache plugin for PHP.
|
||||
MulticompanyMemcachedUnavailable=Memcached or Memcache are not available on your PHP.
|
||||
MemcachedServerIsReady=The Memcached server is accessible
|
||||
MemcachedServerIsNotReady=The Memcached server is not accessible, check the address and port.
|
||||
MulticompanyShmop=Shared Memory (Shmop)
|
||||
MulticompanyShmopDescription=Shmop is a set of simple functions to manage shared memory with PHP.<br>(Read, write, create and delete UNIX shared memory Segments).
|
||||
MulticompanyShmopAvailable=Shmop is available on your PHP
|
||||
MulticompanyShmopUnavailable=Shmop is not available on your PHP
|
||||
|
||||
# Select/Change entity
|
||||
GlobalEntityDesc=Modification of the entity will only be permitted if no documents have been created. (Commercial proposal, orders, invoices, etc ...)
|
||||
ThirdpartyEntityDesc=You can use the current entity or assign that third party to another entity
|
||||
ThirdpartyModifyEntity=You can change its membership entity
|
||||
ThirdpartyModifyEntityDescription=Would you like to change the entity of that third party?
|
||||
ThirdpartyModifyEntitySuccess=The entity of this third party has been modified successfully
|
||||
ContactModifyEntity=You can change its membership entity
|
||||
ContactModifyEntityDescription=Would you like to change the entity of that contact?
|
||||
ContactModifyEntitySuccess=The entity of this contact has been modified successfully
|
||||
ModifyEntityNotAllowed=Modification of the entity is not permitted
|
||||
|
||||
# Errors
|
||||
ErrorEntityLabelAlreadyExist=Error: The label of that entity already exists.
|
||||
ErrorEntityIsNotValid=Error: This entity is not valid.
|
||||
ErrorNotDeleteMasterEntity=Error: Can not delete the master entity.
|
||||
ErrorThirdpartyModifyEntity=Error: Changing the entity of that third party can not be finalized!
|
||||
ErrorDropDownListOfEntitiesMustBeHidden=The drop-down list of entities on the login page must be hidden!
|
||||
ErrorLinkUserGroupEntity=You must associate user with a group and one or more entities in order to define permissions !!
|
||||
ErrorMulticompanyConfAuthentication=You need to enable Multicompany authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'mc';
|
||||
ErrorDolibarrConfAuthentication=You need to enable Dolibarr authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'dolibarr';
|
||||
|
||||
# Multiselect
|
||||
EntitiesSelected=Entities selected
|
||||
EntitiesAvailable=Entities available
|
||||
|
||||
# Datatables
|
||||
CloseDialog=Close
|
||||
LineEntries=lines
|
||||
Showing=Showing
|
||||
ShowingOf=Showing of
|
||||
TotalOf=total of
|
||||
Print=Print
|
||||
FilteredFrom=filtered from
|
||||
TotalEntries=total entries
|
||||
ShowHideColumns=Show/hide columns
|
||||
LoadingDataFromServer=Loading data from server
|
||||
NoRecordsToDisplay=No records to display
|
||||
NoEntriesToShow=No entries to show
|
||||
Processing=Processing...
|
||||
To=to
|
||||
First=First
|
||||
Last=Last
|
||||
Tools=Tools
|
||||
@ -1,250 +0,0 @@
|
||||
# Copyright (C) 2009-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
CHARSET=UTF-8
|
||||
Module5000Name=Multi-Azienda
|
||||
Module5000Desc=Gestione Multi-Azienda per una singola installazione
|
||||
Permission5001=Read entities (For superadmin users)
|
||||
Permission5002=Create/modify entities (For superadmin users)
|
||||
Permission5003=Delete entities (For superadmin users)
|
||||
|
||||
# Third parties
|
||||
Permission5011=Read shared third parties
|
||||
Permission5012=Create/modify shared third parties
|
||||
Permission5013=Delete shared third parties
|
||||
|
||||
# Contacts
|
||||
Permission5021=Read shared contacts
|
||||
Permission5022=Create/modify shared contacts
|
||||
Permission5023=Delete shared contacts
|
||||
|
||||
# Products/Services
|
||||
Permission5031=Read shared products/services
|
||||
Permission5032=Create/modify shared products/services
|
||||
Permission5033=Delete shared products/services
|
||||
|
||||
# Customer proposals
|
||||
Permission5041=Read shared customer proposals
|
||||
Permission5042=Create/modify shared customer proposals
|
||||
Permission5043=Validate shared customer proposals
|
||||
Permission5044=Send shared customer proposals
|
||||
Permission5045=Close shared customer proposals
|
||||
Permission5046=Delete shared customer proposals
|
||||
|
||||
# Customer orders
|
||||
Permission5051=Read shared customer orders
|
||||
Permission5052=Create/modify shared customer orders
|
||||
Permission5054=Validate shared customer orders
|
||||
Permission5056=Send shared customer orders
|
||||
Permission5057=Close shared customer orders
|
||||
Permission5058=Cancel shared customer orders
|
||||
Permission5059=Delete shared customer orders
|
||||
|
||||
# Customer invoices
|
||||
Permission5061=Read shared customer invoices
|
||||
Permission5062=Create/modify shared customer invoices
|
||||
Permission5063=Devalidate shared customer invoices
|
||||
Permission5064=Validate shared customer invoices
|
||||
Permission5065=Send shared customer invoices
|
||||
Permission5066=Issue payments on shared customer invoices
|
||||
Permission5067=Re-open a fully paid shared customer invoices
|
||||
Permission5069=Delete shared customer invoices
|
||||
|
||||
MasterEntity=Azienda Principale
|
||||
MasterEntityDesc=L'azienda principale non può essere cancellata
|
||||
SwitchToAnotherEntity=Cambia azienda
|
||||
SelectAnEntity=Select an entity:
|
||||
AllEntities=Tutte le aziende
|
||||
|
||||
# Admin parameters tab
|
||||
EntitiesManagement=Gestione aziende
|
||||
ListOfEntities=Elenco aziende
|
||||
AddEntity=Aggiungi un'azienda
|
||||
EditEntity=Modifica azienda
|
||||
EntityName=Nome azienda
|
||||
NoOtherEntityAvailable=No other entity available
|
||||
DefaultLanguageShort=Lingua predefinita
|
||||
CommonParameters=Parametri comuni da condividere
|
||||
ReferringEntity=Azienda di riferimento per la configurazione dei valori
|
||||
ReferringEntityForProposalNumber=Referring entity for configuration values of proposal numbering
|
||||
ReferringEntityForInvoiceNumber=Referring entity for configuration values of invoice numbering
|
||||
DeleteAnEntity=Elimina un'azienda
|
||||
ModifyEntity=Change entity
|
||||
SwitchEntity=Change entity
|
||||
AddAndStay=Add and stay
|
||||
UpdateAndStay=Update and stay
|
||||
CancelAndStay=Cancel and stay
|
||||
ConfirmDeleteEntity=Sei sicuro di voler eliminare questa azienda?
|
||||
ConfirmedEntityDeleted=L'azienda è stata cancellata.
|
||||
MulticompanyMoreModules=Other modules of the same author and Dolibarr secure web hosting are available on %s
|
||||
MultiCompanyUpgradeIsNeeded=You use a new version of MULTICOMPANY module, please deactivate and reactivate the module to apply the update.
|
||||
MultiCompanyIsOlderThanDolibarr=You are using an older version of the Multicompany module, please update it!
|
||||
DolibarrIsOlderThanMulticompany=Your Multicompany module is newer than your Dolibarr, please update your Dolibarr or use a previous version of Multicompany!
|
||||
|
||||
THIRDPARTYSharing=Sharing thirdparties and contacts
|
||||
THIRDPARTYSharingDescription=Selection of entities that share their database thirdparties/contacts with the entity.
|
||||
PRODUCTSharing=Share of products/services
|
||||
PRODUCTSharingDescription=Selection of entities that share their database products/services with this entity.
|
||||
PRODUCTPRICESharing=Share prices of products/services
|
||||
PRODUCTPRICESharingDescription=Selection of entities that share prices of products/services with this entity.
|
||||
PRODUCTSUPPLIERPRICESharing=Share supplier prices of products/services
|
||||
PRODUCTSUPPLIERPRICESharingDescription=Selection of entities that share supplier prices of products/services with this entity.
|
||||
CATEGORYSharing=Sharing categories
|
||||
CATEGORYSharingDescription=Selection of entities that share categories with this entity.
|
||||
AGENDASharing=Calendar sharing
|
||||
AGENDASharingDescription=Selection of entities that share the calendar with this entity.
|
||||
STOCKSharing=Stock sharing
|
||||
STOCKSharingDescription=Selection of entities that share products stock with this entity.
|
||||
BANKACCOUNTSharing=Bank account sharing
|
||||
BANKACCOUNTSharingDescription=Selection of entities that share bank accounts with this entity.
|
||||
PROPOSALNUMBERSharing=Proposal number sharing
|
||||
PROPOSALNUMBERSharingDescription=Selection of entities that share proposal number with this entity.
|
||||
INVOICENUMBERSharing=Invoice number sharing
|
||||
INVOICENUMBERSharingDescription=Selection of entities that share invoice number with this entity.
|
||||
EXPENSEREPORTSharing=Expense report sharing
|
||||
EXPENSEREPORTSharingDescription=Selection of entities that share the expense report with this entity.
|
||||
PROJECTSharing=Project sharing
|
||||
PROJECTSharingDescription=Selection of entities that share projects with this entity.
|
||||
MEMBERSharing=Member sharing
|
||||
MEMBERSharingDescription=Selection of entities that share members with this entity.
|
||||
MEMBER_TYPESharing=Members type sharing
|
||||
MEMBER_TYPESharingDescription=Selection of entities that share members type with this entity.
|
||||
HOLIDAYSharing=Holidays sharing
|
||||
HOLIDAYSharingDescription=Selection of entities that share holidays with this entity.
|
||||
PROPOSALSharing=Customers proposals sharing
|
||||
PROPOSALSharingDescription=Selection of entities that share customers proposals with this entity.
|
||||
ORDERSharing=Customers orders sharing
|
||||
ORDERSharingDescription=Selection of entities that share customers orders with this entity.
|
||||
INVOICESharing=Customers invoices sharing
|
||||
INVOICESharingDescription=Selection of entities that share customers invoices with this entity.
|
||||
|
||||
# Admin options tab
|
||||
Options=Opzioni
|
||||
Template=Template
|
||||
DuplicateRights=Duplicate rights of user groups
|
||||
DuplicateRightsInfo=Duplicates the rights of this group from an entity or entity template to one or more other entities.
|
||||
SelectRightsOfEntityToDuplicate=Selection of the entity that will serve as a model:
|
||||
SelectEntitiesToOverride=Select the entities you want to edit:
|
||||
TemplateOfEntity=Template of entity
|
||||
ActivatingShares=Activating shares
|
||||
EntityActiveByDefault=Enable entities by default when they are created
|
||||
EntityVisibleByDefault=Make entities visible by default in the drop-down lists when they are created
|
||||
EntityLogoInLoginPage=Display of the logo of the selected entity on the login page
|
||||
EntityBackgroundInLoginPage=Display of the background of the selected entity on the login page
|
||||
DisableSwitchEntityDropdownMenu=Disable the new entity change drop-down menu.
|
||||
GroupModeTransversal=Enable centralized management of users and groups on the primary entity
|
||||
GroupModeTransversalTitle=Enable centralized management of users and groups
|
||||
GroupModeTransversalInfo=By default each entity is autonomous with its own user management. This option makes it possible to centralize the management of users and groups on the main entity by assigning rights to them relative to a group and to an entity.
|
||||
GroupModeTransversalInfoFull=By default each entity is autonomous with its own user management. This option makes it possible to centralize the management of users and groups on the main entity by assigning rights to them relative to a group and to an entity. Creating user groups is required to manage entity access rights.
|
||||
HideLoginCombobox=Nascondi la scelta dell'azienda nella schermata di login
|
||||
EnableGlobalSharings=Attiva la condivisione di dati tra le aziende
|
||||
ShareProduct=Enable sharing of products/services
|
||||
ProductSharingInfo=This option allows you to share products/services between entities.<br>INFO: If you want to be able to customize the price of the product in each entity, this requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration in each entity that uses this share.<br>If you want to personalize the VAT rates of the price levels, you have to add this constant:<br>"PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL" with as value 1 in each entity that uses this share.
|
||||
ShareProductprice=Enable sharing of products/services prices
|
||||
ProductPriceSharingInfo=This option allows you to share the price levels of a product.<br>IMPORTANT: This requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration.
|
||||
ShareProductsupplierprice=Enable sharing of products/services supplier prices
|
||||
ShareThirdpartiesAndContacts=Attiva la condivisione dei dei soggetti terzi e dei contatti
|
||||
ShareCategory=Enable sharing categories
|
||||
ShareAgenda=Attiva la condivisione dei calendari
|
||||
ShareStock=Attiva la condivisione del magazzino
|
||||
ShareBankaccount=Enable sharing of bank accounts
|
||||
ShareProposalnumber=Enable sharing of proposals number
|
||||
ProposalNumberSharingInfo=This option allows you to have an overall incrementation of the proposal numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareOrdernumber=Enable sharing of orders number
|
||||
OrderNumberSharingInfo=This option allows you to have an overall incrementation of the order numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareInvoicenumber=Enable sharing of invoices number
|
||||
InvoiceNumberSharingInfo=This option allows you to have an overall incrementation of the invoice numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareExpensereport=Enable sharing of expenses reports
|
||||
ShareProject=Enable sharing of projects
|
||||
ShareMember=Enable sharing of members
|
||||
ShareMember_type=Enable sharing of members type
|
||||
ShareHoliday=Enable sharing of holidays
|
||||
GlobalSharings=Condivisione
|
||||
GlobalSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ActivatingDictsShares=Customizing dictionaries
|
||||
DictsSharingsInfo=By default, all entities use the dictionaries of the main entity.<br>You can activate the customization of a dictionary in order to have a different version by entity.
|
||||
ShareC_paiement=Enable customization of payment methods by entity (llx_c_paiement)
|
||||
ShareC_payment_term=Enable customization of payment terms by entity (llx_c_payment_term)
|
||||
ActivatingObjectShares=Activating objects sharing
|
||||
ObjectSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ShareProposal=Share customers proposals
|
||||
ShareOrder=Share customers orders
|
||||
ShareInvoice=Share customers invoices
|
||||
TemplateOfEntityManagement=Templates of entities management
|
||||
TemplateOfEntityManagementInfo=This option allows you to create feature templates to enable and pre-configure modules, shares between entities, and user access rights only with the user centralization mode on the primary entity.
|
||||
TemplateOfCompany=Define as a template of entity
|
||||
SelectTemplateOfCompany=Use a template for this new entity
|
||||
AddNewEntityInAllOtherEntities=Add this new entity in the sharing of other entities
|
||||
WarningThisIsATemplate=Warning ! This is a non-functional entity template and will only be visible to super administrators
|
||||
WarningMulticompanyIsInDevelopMode=Warning ! You are in development mode in your Dolibarr
|
||||
ShowTopMenuEntityLabel=Show entity label in top menu
|
||||
|
||||
# Admin caches tab
|
||||
MulticompanyCacheSystemInfo=The use of a cache can be useful if you have a large number of entities (≈50+), this will accelerate the display of Dolibarr.
|
||||
MulticompanySession=PHP $_SESSION cache
|
||||
MulticompanySessionDescription=The data is stored in the PHP $_SESSION global variable.<br>This cache is not shared and is limited to the current user.
|
||||
MulticompanyMemcached=Memcached server
|
||||
MulticompanyMemcachedDescription=This option allows you to use a Memcached server to improve the speed of display.<br>Requires a Memcached server and the Memcached or Memcache plugin for PHP.
|
||||
MulticompanyMemcachedUnavailable=Memcached or Memcache are not available on your PHP.
|
||||
MemcachedServerIsReady=The Memcached server is accessible
|
||||
MemcachedServerIsNotReady=The Memcached server is not accessible, check the address and port.
|
||||
MulticompanyShmop=Shared Memory (Shmop)
|
||||
MulticompanyShmopDescription=Shmop is a set of simple functions to manage shared memory with PHP.<br>(Read, write, create and delete UNIX shared memory Segments).
|
||||
MulticompanyShmopAvailable=Shmop is available on your PHP
|
||||
MulticompanyShmopUnavailable=Shmop is not available on your PHP
|
||||
|
||||
# Select/Change entity
|
||||
GlobalEntityDesc=Modification of the entity will only be permitted if no documents have been created. (Commercial proposal, orders, invoices, etc ...)
|
||||
ThirdpartyEntityDesc=You can use the current entity or assign that third party to another entity
|
||||
ThirdpartyModifyEntity=You can change its membership entity
|
||||
ThirdpartyModifyEntityDescription=Would you like to change the entity of that third party?
|
||||
ThirdpartyModifyEntitySuccess=The entity of this third party has been modified successfully
|
||||
ContactModifyEntity=You can change its membership entity
|
||||
ContactModifyEntityDescription=Would you like to change the entity of that contact?
|
||||
ContactModifyEntitySuccess=The entity of this contact has been modified successfully
|
||||
ModifyEntityNotAllowed=Modification of the entity is not permitted
|
||||
|
||||
# Errors
|
||||
ErrorEntityLabelAlreadyExist=Error: The label of that entity already exists.
|
||||
ErrorEntityIsNotValid=Error: This entity is not valid.
|
||||
ErrorNotDeleteMasterEntity=Error: Can not delete the master entity.
|
||||
ErrorThirdpartyModifyEntity=Error: Changing the entity of that third party can not be finalized!
|
||||
ErrorDropDownListOfEntitiesMustBeHidden=The drop-down list of entities on the login page must be hidden!
|
||||
ErrorLinkUserGroupEntity=You must associate user with a group and one or more entities in order to define permissions !!
|
||||
ErrorMulticompanyConfAuthentication=You need to enable Multicompany authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'mc';
|
||||
ErrorDolibarrConfAuthentication=You need to enable Dolibarr authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'dolibarr';
|
||||
|
||||
# Multiselect
|
||||
EntitiesSelected=Entities selected
|
||||
EntitiesAvailable=Entities available
|
||||
|
||||
# Datatables
|
||||
CloseDialog=Close
|
||||
LineEntries=lines
|
||||
Showing=Showing
|
||||
ShowingOf=Showing of
|
||||
TotalOf=total of
|
||||
Print=Print
|
||||
FilteredFrom=filtered from
|
||||
TotalEntries=total entries
|
||||
ShowHideColumns=Show/hide columns
|
||||
LoadingDataFromServer=Loading data from server
|
||||
NoRecordsToDisplay=No records to display
|
||||
NoEntriesToShow=No entries to show
|
||||
Processing=Processing...
|
||||
To=to
|
||||
First=First
|
||||
Last=Last
|
||||
Tools=Tools
|
||||
@ -1,250 +0,0 @@
|
||||
# Copyright (C) 2009-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
CHARSET=UTF-8
|
||||
Module5000Name=Multi-Company
|
||||
Module5000Desc=Multi-company management on a single installation
|
||||
Permission5001=Read entities (For superadmin users)
|
||||
Permission5002=Create/modify entities (For superadmin users)
|
||||
Permission5003=Delete entities (For superadmin users)
|
||||
|
||||
# Third parties
|
||||
Permission5011=Read shared third parties
|
||||
Permission5012=Create/modify shared third parties
|
||||
Permission5013=Delete shared third parties
|
||||
|
||||
# Contacts
|
||||
Permission5021=Read shared contacts
|
||||
Permission5022=Create/modify shared contacts
|
||||
Permission5023=Delete shared contacts
|
||||
|
||||
# Products/Services
|
||||
Permission5031=Read shared products/services
|
||||
Permission5032=Create/modify shared products/services
|
||||
Permission5033=Delete shared products/services
|
||||
|
||||
# Customer proposals
|
||||
Permission5041=Read shared customer proposals
|
||||
Permission5042=Create/modify shared customer proposals
|
||||
Permission5043=Validate shared customer proposals
|
||||
Permission5044=Send shared customer proposals
|
||||
Permission5045=Close shared customer proposals
|
||||
Permission5046=Delete shared customer proposals
|
||||
|
||||
# Customer orders
|
||||
Permission5051=Read shared customer orders
|
||||
Permission5052=Create/modify shared customer orders
|
||||
Permission5054=Validate shared customer orders
|
||||
Permission5056=Send shared customer orders
|
||||
Permission5057=Close shared customer orders
|
||||
Permission5058=Cancel shared customer orders
|
||||
Permission5059=Delete shared customer orders
|
||||
|
||||
# Customer invoices
|
||||
Permission5061=Read shared customer invoices
|
||||
Permission5062=Create/modify shared customer invoices
|
||||
Permission5063=Devalidate shared customer invoices
|
||||
Permission5064=Validate shared customer invoices
|
||||
Permission5065=Send shared customer invoices
|
||||
Permission5066=Issue payments on shared customer invoices
|
||||
Permission5067=Re-open a fully paid shared customer invoices
|
||||
Permission5069=Delete shared customer invoices
|
||||
|
||||
MasterEntity=Hoofdbedrijfsentiteit
|
||||
MasterEntityDesc=De hoofdbedrijfsentiteit, kan niet worden verwijderd.
|
||||
SwitchToAnotherEntity=Omschakelen naar een andere bedrijfsentiteit
|
||||
SelectAnEntity=Select an entity:
|
||||
AllEntities=Alle bedrijfsentiteiten
|
||||
|
||||
# Admin parameters tab
|
||||
EntitiesManagement=Beheren van bedrijfsentiteiten
|
||||
ListOfEntities=Lijst van bedrijfsentiteiten
|
||||
AddEntity=Voeg een bedrijfsentiteit toe
|
||||
EditEntity=Bewerk een bedrijfsentiteit
|
||||
EntityName=Naam van de bedrijfsentiteit
|
||||
NoOtherEntityAvailable=No other entity available
|
||||
DefaultLanguageShort=Standaard taal
|
||||
CommonParameters=Common parameters for shares
|
||||
ReferringEntity=Referring entity for configuration values
|
||||
ReferringEntityForProposalNumber=Referring entity for configuration values of proposal numbering
|
||||
ReferringEntityForInvoiceNumber=Referring entity for configuration values of invoice numbering
|
||||
DeleteAnEntity=Verwijder een bedrijfsentiteit
|
||||
ModifyEntity=Change entity
|
||||
SwitchEntity=Change entity
|
||||
AddAndStay=Add and stay
|
||||
UpdateAndStay=Update and stay
|
||||
CancelAndStay=Cancel and stay
|
||||
ConfirmDeleteEntity=Bent u zeker dat u deze bedrijfsentiteit wilt verwijderen?
|
||||
ConfirmedEntityDeleted=De bedrijfsentiteit is verwijderd.
|
||||
MulticompanyMoreModules=Other modules of the same author and Dolibarr secure web hosting are available on %s
|
||||
MultiCompanyUpgradeIsNeeded=You use a new version of MULTICOMPANY module, please deactivate and reactivate the module to apply the update.
|
||||
MultiCompanyIsOlderThanDolibarr=You are using an older version of the Multicompany module, please update it!
|
||||
DolibarrIsOlderThanMulticompany=Your Multicompany module is newer than your Dolibarr, please update your Dolibarr or use a previous version of Multicompany!
|
||||
|
||||
THIRDPARTYSharing=Sharing thirdparties and contacts
|
||||
THIRDPARTYSharingDescription=Selection of entities that share their database thirdparties/contacts with the entity.
|
||||
PRODUCTSharing=Share of products/services
|
||||
PRODUCTSharingDescription=Selection of entities that share their database products/services with this entity.
|
||||
PRODUCTPRICESharing=Share prices of products/services
|
||||
PRODUCTPRICESharingDescription=Selection of entities that share prices of products/services with this entity.
|
||||
PRODUCTSUPPLIERPRICESharing=Share supplier prices of products/services
|
||||
PRODUCTSUPPLIERPRICESharingDescription=Selection of entities that share supplier prices of products/services with this entity.
|
||||
CATEGORYSharing=Sharing categories
|
||||
CATEGORYSharingDescription=Selection of entities that share categories with this entity.
|
||||
AGENDASharing=Calendar sharing
|
||||
AGENDASharingDescription=Selection of entities that share the calendar with this entity.
|
||||
STOCKSharing=Stock sharing
|
||||
STOCKSharingDescription=Selection of entities that share products stock with this entity.
|
||||
BANKACCOUNTSharing=Bank account sharing
|
||||
BANKACCOUNTSharingDescription=Selection of entities that share bank accounts with this entity.
|
||||
PROPOSALNUMBERSharing=Proposal number sharing
|
||||
PROPOSALNUMBERSharingDescription=Selection of entities that share proposal number with this entity.
|
||||
INVOICENUMBERSharing=Invoice number sharing
|
||||
INVOICENUMBERSharingDescription=Selection of entities that share invoice number with this entity.
|
||||
EXPENSEREPORTSharing=Expense report sharing
|
||||
EXPENSEREPORTSharingDescription=Selection of entities that share the expense report with this entity.
|
||||
PROJECTSharing=Project sharing
|
||||
PROJECTSharingDescription=Selection of entities that share projects with this entity.
|
||||
MEMBERSharing=Member sharing
|
||||
MEMBERSharingDescription=Selection of entities that share members with this entity.
|
||||
MEMBER_TYPESharing=Members type sharing
|
||||
MEMBER_TYPESharingDescription=Selection of entities that share members type with this entity.
|
||||
HOLIDAYSharing=Holidays sharing
|
||||
HOLIDAYSharingDescription=Selection of entities that share holidays with this entity.
|
||||
PROPOSALSharing=Customers proposals sharing
|
||||
PROPOSALSharingDescription=Selection of entities that share customers proposals with this entity.
|
||||
ORDERSharing=Customers orders sharing
|
||||
ORDERSharingDescription=Selection of entities that share customers orders with this entity.
|
||||
INVOICESharing=Customers invoices sharing
|
||||
INVOICESharingDescription=Selection of entities that share customers invoices with this entity.
|
||||
|
||||
# Admin options tab
|
||||
Options=Options
|
||||
Template=Template
|
||||
DuplicateRights=Duplicate rights of user groups
|
||||
DuplicateRightsInfo=Duplicates the rights of this group from an entity or entity template to one or more other entities.
|
||||
SelectRightsOfEntityToDuplicate=Selection of the entity that will serve as a model:
|
||||
SelectEntitiesToOverride=Select the entities you want to edit:
|
||||
TemplateOfEntity=Template of entity
|
||||
ActivatingShares=Activating shares
|
||||
EntityActiveByDefault=Enable entities by default when they are created
|
||||
EntityVisibleByDefault=Make entities visible by default in the drop-down lists when they are created
|
||||
EntityLogoInLoginPage=Display of the logo of the selected entity on the login page
|
||||
EntityBackgroundInLoginPage=Display of the background of the selected entity on the login page
|
||||
DisableSwitchEntityDropdownMenu=Disable the new entity change drop-down menu.
|
||||
GroupModeTransversal=Enable centralized management of users and groups on the primary entity
|
||||
GroupModeTransversalTitle=Enable centralized management of users and groups
|
||||
GroupModeTransversalInfo=By default each entity is autonomous with its own user management. This option makes it possible to centralize the management of users and groups on the main entity by assigning rights to them relative to a group and to an entity.
|
||||
GroupModeTransversalInfoFull=By default each entity is autonomous with its own user management. This option makes it possible to centralize the management of users and groups on the main entity by assigning rights to them relative to a group and to an entity. Creating user groups is required to manage entity access rights.
|
||||
HideLoginCombobox=Toon deze bedrijfsentiteit niet in de lijst op de inlogpagina
|
||||
EnableGlobalSharings=Enable features shared between entities
|
||||
ShareProduct=Enable sharing of products/services
|
||||
ProductSharingInfo=This option allows you to share products/services between entities.<br>INFO: If you want to be able to customize the price of the product in each entity, this requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration in each entity that uses this share.<br>If you want to personalize the VAT rates of the price levels, you have to add this constant:<br>"PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL" with as value 1 in each entity that uses this share.
|
||||
ShareProductprice=Enable sharing of products/services prices
|
||||
ProductPriceSharingInfo=This option allows you to share the price levels of a product.<br>IMPORTANT: This requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration.
|
||||
ShareProductsupplierprice=Enable sharing of products/services supplier prices
|
||||
ShareThirdpartiesAndContacts=Enable sharing of thirdparties and contacts
|
||||
ShareCategory=Enable sharing categories
|
||||
ShareAgenda=Enable sharing calendars
|
||||
ShareStock=Enable sharing of stocks
|
||||
ShareBankaccount=Enable sharing of bank accounts
|
||||
ShareProposalnumber=Enable sharing of proposals number
|
||||
ProposalNumberSharingInfo=This option allows you to have an overall incrementation of the proposal numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareOrdernumber=Enable sharing of orders number
|
||||
OrderNumberSharingInfo=This option allows you to have an overall incrementation of the order numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareInvoicenumber=Enable sharing of invoices number
|
||||
InvoiceNumberSharingInfo=This option allows you to have an overall incrementation of the invoice numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareExpensereport=Enable sharing of expenses reports
|
||||
ShareProject=Enable sharing of projects
|
||||
ShareMember=Enable sharing of members
|
||||
ShareMember_type=Enable sharing of members type
|
||||
ShareHoliday=Enable sharing of holidays
|
||||
GlobalSharings=Sharing features
|
||||
GlobalSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ActivatingDictsShares=Customizing dictionaries
|
||||
DictsSharingsInfo=By default, all entities use the dictionaries of the main entity.<br>You can activate the customization of a dictionary in order to have a different version by entity.
|
||||
ShareC_paiement=Enable customization of payment methods by entity (llx_c_paiement)
|
||||
ShareC_payment_term=Enable customization of payment terms by entity (llx_c_payment_term)
|
||||
ActivatingObjectShares=Activating objects sharing
|
||||
ObjectSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ShareProposal=Share customers proposals
|
||||
ShareOrder=Share customers orders
|
||||
ShareInvoice=Share customers invoices
|
||||
TemplateOfEntityManagement=Templates of entities management
|
||||
TemplateOfEntityManagementInfo=This option allows you to create feature templates to enable and pre-configure modules, shares between entities, and user access rights only with the user centralization mode on the primary entity.
|
||||
TemplateOfCompany=Define as a template of entity
|
||||
SelectTemplateOfCompany=Use a template for this new entity
|
||||
AddNewEntityInAllOtherEntities=Add this new entity in the sharing of other entities
|
||||
WarningThisIsATemplate=Warning ! This is a non-functional entity template and will only be visible to super administrators
|
||||
WarningMulticompanyIsInDevelopMode=Warning ! You are in development mode in your Dolibarr
|
||||
ShowTopMenuEntityLabel=Show entity label in top menu
|
||||
|
||||
# Admin caches tab
|
||||
MulticompanyCacheSystemInfo=The use of a cache can be useful if you have a large number of entities (≈50+), this will accelerate the display of Dolibarr.
|
||||
MulticompanySession=PHP $_SESSION cache
|
||||
MulticompanySessionDescription=The data is stored in the PHP $_SESSION global variable.<br>This cache is not shared and is limited to the current user.
|
||||
MulticompanyMemcached=Memcached server
|
||||
MulticompanyMemcachedDescription=This option allows you to use a Memcached server to improve the speed of display.<br>Requires a Memcached server and the Memcached or Memcache plugin for PHP.
|
||||
MulticompanyMemcachedUnavailable=Memcached or Memcache are not available on your PHP.
|
||||
MemcachedServerIsReady=The Memcached server is accessible
|
||||
MemcachedServerIsNotReady=The Memcached server is not accessible, check the address and port.
|
||||
MulticompanyShmop=Shared Memory (Shmop)
|
||||
MulticompanyShmopDescription=Shmop is a set of simple functions to manage shared memory with PHP.<br>(Read, write, create and delete UNIX shared memory Segments).
|
||||
MulticompanyShmopAvailable=Shmop is available on your PHP
|
||||
MulticompanyShmopUnavailable=Shmop is not available on your PHP
|
||||
|
||||
# Select/Change entity
|
||||
GlobalEntityDesc=Modification of the entity will only be permitted if no documents have been created. (Commercial proposal, orders, invoices, etc ...)
|
||||
ThirdpartyEntityDesc=You can use the current entity or assign that third party to another entity
|
||||
ThirdpartyModifyEntity=You can change its membership entity
|
||||
ThirdpartyModifyEntityDescription=Would you like to change the entity of that third party?
|
||||
ThirdpartyModifyEntitySuccess=The entity of this third party has been modified successfully
|
||||
ContactModifyEntity=You can change its membership entity
|
||||
ContactModifyEntityDescription=Would you like to change the entity of that contact?
|
||||
ContactModifyEntitySuccess=The entity of this contact has been modified successfully
|
||||
ModifyEntityNotAllowed=Modification of the entity is not permitted
|
||||
|
||||
# Errors
|
||||
ErrorEntityLabelAlreadyExist=Error: The label of that entity already exists.
|
||||
ErrorEntityIsNotValid=Error: This entity is not valid.
|
||||
ErrorNotDeleteMasterEntity=Error: Can not delete the master entity.
|
||||
ErrorThirdpartyModifyEntity=Error: Changing the entity of that third party can not be finalized!
|
||||
ErrorDropDownListOfEntitiesMustBeHidden=The drop-down list of entities on the login page must be hidden!
|
||||
ErrorLinkUserGroupEntity=You must associate user with a group and one or more entities in order to define permissions !!
|
||||
ErrorMulticompanyConfAuthentication=You need to enable Multicompany authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'mc';
|
||||
ErrorDolibarrConfAuthentication=You need to enable Dolibarr authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'dolibarr';
|
||||
|
||||
# Multiselect
|
||||
EntitiesSelected=Entities selected
|
||||
EntitiesAvailable=Entities available
|
||||
|
||||
# Datatables
|
||||
CloseDialog=Close
|
||||
LineEntries=lines
|
||||
Showing=Showing
|
||||
ShowingOf=Showing of
|
||||
TotalOf=total of
|
||||
Print=Print
|
||||
FilteredFrom=filtered from
|
||||
TotalEntries=total entries
|
||||
ShowHideColumns=Show/hide columns
|
||||
LoadingDataFromServer=Loading data from server
|
||||
NoRecordsToDisplay=No records to display
|
||||
NoEntriesToShow=No entries to show
|
||||
Processing=Processing...
|
||||
To=to
|
||||
First=First
|
||||
Last=Last
|
||||
Tools=Tools
|
||||
@ -1,250 +0,0 @@
|
||||
# Copyright (C) 2009-2020 Regis Houssin <regis.houssin@inodbox.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU 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 General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
CHARSET=UTF-8
|
||||
Module5000Name=Entidades multiplias
|
||||
Module5000Desc=Gerenciamento de várias empresas em uma única instalação
|
||||
Permission5001=Read entities (For superadmin users)
|
||||
Permission5002=Create/modify entities (For superadmin users)
|
||||
Permission5003=Delete entities (For superadmin users)
|
||||
|
||||
# Third parties
|
||||
Permission5011=Read shared third parties
|
||||
Permission5012=Create/modify shared third parties
|
||||
Permission5013=Delete shared third parties
|
||||
|
||||
# Contacts
|
||||
Permission5021=Read shared contacts
|
||||
Permission5022=Create/modify shared contacts
|
||||
Permission5023=Delete shared contacts
|
||||
|
||||
# Products/Services
|
||||
Permission5031=Read shared products/services
|
||||
Permission5032=Create/modify shared products/services
|
||||
Permission5033=Delete shared products/services
|
||||
|
||||
# Customer proposals
|
||||
Permission5041=Read shared customer proposals
|
||||
Permission5042=Create/modify shared customer proposals
|
||||
Permission5043=Validate shared customer proposals
|
||||
Permission5044=Send shared customer proposals
|
||||
Permission5045=Close shared customer proposals
|
||||
Permission5046=Delete shared customer proposals
|
||||
|
||||
# Customer orders
|
||||
Permission5051=Read shared customer orders
|
||||
Permission5052=Create/modify shared customer orders
|
||||
Permission5054=Validate shared customer orders
|
||||
Permission5056=Send shared customer orders
|
||||
Permission5057=Close shared customer orders
|
||||
Permission5058=Cancel shared customer orders
|
||||
Permission5059=Delete shared customer orders
|
||||
|
||||
# Customer invoices
|
||||
Permission5061=Read shared customer invoices
|
||||
Permission5062=Create/modify shared customer invoices
|
||||
Permission5063=Devalidate shared customer invoices
|
||||
Permission5064=Validate shared customer invoices
|
||||
Permission5065=Send shared customer invoices
|
||||
Permission5066=Issue payments on shared customer invoices
|
||||
Permission5067=Re-open a fully paid shared customer invoices
|
||||
Permission5069=Delete shared customer invoices
|
||||
|
||||
MasterEntity=Entidade principal
|
||||
MasterEntityDesc=A entidade principal não pode ser apagada
|
||||
SwitchToAnotherEntity=Mudar para outra entidade
|
||||
SelectAnEntity=Select an entity:
|
||||
AllEntities=Todas as entidades
|
||||
|
||||
# Admin parameters tab
|
||||
EntitiesManagement=Gestão das entidades
|
||||
ListOfEntities=Listas das entidades
|
||||
AddEntity=Adicionar uma entidade
|
||||
EditEntity=Editar uma entidade
|
||||
EntityName=Nome da entidade
|
||||
NoOtherEntityAvailable=No other entity available
|
||||
DefaultLanguageShort=Idioma padrão
|
||||
CommonParameters=Parâmetros comuns para compartilhamentos
|
||||
ReferringEntity=Entidade referente para valores de configuração
|
||||
ReferringEntityForProposalNumber=Referring entity for configuration values of proposal numbering
|
||||
ReferringEntityForInvoiceNumber=Referring entity for configuration values of invoice numbering
|
||||
DeleteAnEntity=Apagar entidade
|
||||
ModifyEntity=Alterar entidade
|
||||
SwitchEntity=Change entity
|
||||
AddAndStay=Add and stay
|
||||
UpdateAndStay=Update and stay
|
||||
CancelAndStay=Cancel and stay
|
||||
ConfirmDeleteEntity=Tem certeza de que deseja apagar esta entidade?
|
||||
ConfirmedEntityDeleted=A entidade foi apagada.
|
||||
MulticompanyMoreModules=Outros módulos do mesmo autor e o alojamento internet seguro Dolibarr estão disponíveis em %s
|
||||
MultiCompanyUpgradeIsNeeded=Você usa uma nova versão do módulo MULTICOMPANY, desative e reative o módulo para aplicar a atualização.
|
||||
MultiCompanyIsOlderThanDolibarr=You are using an older version of the Multicompany module, please update it!
|
||||
DolibarrIsOlderThanMulticompany=Your Multicompany module is newer than your Dolibarr, please update your Dolibarr or use a previous version of Multicompany!
|
||||
|
||||
THIRDPARTYSharing=Compartilhando terceiros e contatos
|
||||
THIRDPARTYSharingDescription=Seleção de entidades que compartilham seu banco de dados terceiras partes / contatos com a entidade.
|
||||
PRODUCTSharing=Compartilhamento de produtos / serviços
|
||||
PRODUCTSharingDescription=Seleção de entidades que compartilham seus produtos / serviços de banco de dados com essa entidade.
|
||||
PRODUCTPRICESharing=Compartilhe os preços dos produtos / serviços
|
||||
PRODUCTPRICESharingDescription=Seleção de entidades que compartilham os preços dos produtos / serviços com essa entidade.
|
||||
PRODUCTSUPPLIERPRICESharing=Share supplier prices of products/services
|
||||
PRODUCTSUPPLIERPRICESharingDescription=Selection of entities that share supplier prices of products/services with this entity.
|
||||
CATEGORYSharing=Compartilhando categorias
|
||||
CATEGORYSharingDescription=Seleção de entidades que compartilham categorias com essa entidade.
|
||||
AGENDASharing=Compartilhamento de calendário
|
||||
AGENDASharingDescription=Seleção de entidades que compartilham o calendário com essa entidade.
|
||||
STOCKSharing=Compartilhamento de stock
|
||||
STOCKSharingDescription=Seleção de entidades que compartilham estoque de produtos com essa entidade.
|
||||
BANKACCOUNTSharing=Compartilhamento de contas bancárias
|
||||
BANKACCOUNTSharingDescription=Seleção de entidades que compartilham contas bancárias com essa entidade.
|
||||
PROPOSALNUMBERSharing=Proposal number sharing
|
||||
PROPOSALNUMBERSharingDescription=Selection of entities that share proposal number with this entity.
|
||||
INVOICENUMBERSharing=Compartilhamento de número de fatura
|
||||
INVOICENUMBERSharingDescription=Seleção de entidades que compartilham o número da nota fiscal com essa entidade.
|
||||
EXPENSEREPORTSharing=Compartilhamento de relatórios de despesas
|
||||
EXPENSEREPORTSharingDescription=Seleção de entidades que compartilham o relatório de despesas com essa entidade.
|
||||
PROJECTSharing=Compartilhamento de projetos
|
||||
PROJECTSharingDescription=Seleção de entidades que compartilham projetos com essa entidade.
|
||||
MEMBERSharing=Compartilhamento de membros
|
||||
MEMBERSharingDescription=Seleção de entidades que compartilham membros com essa entidade.
|
||||
MEMBER_TYPESharing=Members type sharing
|
||||
MEMBER_TYPESharingDescription=Selection of entities that share members type with this entity.
|
||||
HOLIDAYSharing=Holidays sharing
|
||||
HOLIDAYSharingDescription=Selection of entities that share holidays with this entity.
|
||||
PROPOSALSharing=Customers proposals sharing
|
||||
PROPOSALSharingDescription=Selection of entities that share customers proposals with this entity.
|
||||
ORDERSharing=Customers orders sharing
|
||||
ORDERSharingDescription=Selection of entities that share customers orders with this entity.
|
||||
INVOICESharing=Customers invoices sharing
|
||||
INVOICESharingDescription=Selection of entities that share customers invoices with this entity.
|
||||
|
||||
# Admin options tab
|
||||
Options=Opções
|
||||
Template=Template
|
||||
DuplicateRights=Duplicate rights of user groups
|
||||
DuplicateRightsInfo=Duplicates the rights of this group from an entity or entity template to one or more other entities.
|
||||
SelectRightsOfEntityToDuplicate=Selection of the entity that will serve as a model:
|
||||
SelectEntitiesToOverride=Select the entities you want to edit:
|
||||
TemplateOfEntity=Template of entity
|
||||
ActivatingShares=Ativando compartilhamentos
|
||||
EntityActiveByDefault=Enable entities by default when they are created
|
||||
EntityVisibleByDefault=Make entities visible by default in the drop-down lists when they are created
|
||||
EntityLogoInLoginPage=Display of the logo of the selected entity on the login page
|
||||
EntityBackgroundInLoginPage=Display of the background of the selected entity on the login page
|
||||
DisableSwitchEntityDropdownMenu=Disable the new entity change drop-down menu.
|
||||
GroupModeTransversal=Ative o gerenciamento centralizado de usuários e grupos na entidade principal
|
||||
GroupModeTransversalTitle=Permitir gerenciamento centralizado de usuários e grupos
|
||||
GroupModeTransversalInfo=Por padrão, cada entidade é autônoma com seu próprio gerenciamento de usuários. Esta opção permite centralizar o gerenciamento de usuários e grupos na entidade principal, atribuindo-lhes direitos sobre um grupo e uma entidade.
|
||||
GroupModeTransversalInfoFull=Por padrão, cada entidade é autônoma com seu próprio gerenciamento de usuários. Esta opção permite centralizar o gerenciamento de usuários e grupos na entidade principal, atribuindo-lhes direitos sobre um grupo e uma entidade. A criação de grupos de usuários é necessária para gerenciar os direitos de acesso da entidade.
|
||||
HideLoginCombobox=Ocultar a escolha da entidade na página de login
|
||||
EnableGlobalSharings=Ativar recursos compartilhados entre entidades
|
||||
ShareProduct=Enable sharing of products/services
|
||||
ProductSharingInfo=This option allows you to share products/services between entities.<br>INFO: If you want to be able to customize the price of the product in each entity, this requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration in each entity that uses this share.<br>If you want to personalize the VAT rates of the price levels, you have to add this constant:<br>"PRODUIT_MULTIPRICES_USE_VAT_PER_LEVEL" with as value 1 in each entity that uses this share.
|
||||
ShareProductprice=Enable sharing of products/services prices
|
||||
ProductPriceSharingInfo=This option allows you to share the price levels of a product.<br>IMPORTANT: This requires enabling the "Several segment of prices per product/service" option in the Product/Service module configuration.
|
||||
ShareProductsupplierprice=Enable sharing of products/services supplier prices
|
||||
ShareThirdpartiesAndContacts=Ativar o compartilhamento de terceiros e contatos
|
||||
ShareCategory=Enable sharing categories
|
||||
ShareAgenda=Ativar compartilhar calendários
|
||||
ShareStock=Ativar a partilha de stocks
|
||||
ShareBankaccount=Enable sharing of bank accounts
|
||||
ShareProposalnumber=Enable sharing of proposals number
|
||||
ProposalNumberSharingInfo=This option allows you to have an overall incrementation of the proposal numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareOrdernumber=Enable sharing of orders number
|
||||
OrderNumberSharingInfo=This option allows you to have an overall incrementation of the order numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareInvoicenumber=Enable sharing of invoices number
|
||||
InvoiceNumberSharingInfo=This option allows you to have an overall incrementation of the invoice numbers between the entities that use this share. You will need to select a referring entity for the configuration values of the selected numbering module. Each entity will have to use the same numbering model.
|
||||
ShareExpensereport=Enable sharing of expenses reports
|
||||
ShareProject=Ativar o compartilhamento de projetos
|
||||
ShareMember=Enable sharing of members
|
||||
ShareMember_type=Enable sharing of members type
|
||||
ShareHoliday=Enable sharing of holidays
|
||||
GlobalSharings=Compartilhando recursos
|
||||
GlobalSharingsInfo=Depois que as opções de compartilhamento são ativadas, será necessário configurar cada entidade no guia "Ambientes" para permitir os compartilhamentos entre as entidades.
|
||||
ActivatingDictsShares=Customizando Dicionários
|
||||
DictsSharingsInfo=Por padrão, todas as entidades usam os dicionários da entidade principal.<br> Você pode ativar a personalização de um dicionário para ter uma versão diferente por entidade.
|
||||
ShareC_paiement=Ativar a personalização dos métodos de pagamento por entidade (llx_c_paiement)
|
||||
ShareC_payment_term=Ativar a personalização dos termos de pagamento por entidade (llx_c_payment_term)
|
||||
ActivatingObjectShares=Activating objects sharing
|
||||
ObjectSharingsInfo=After sharing options are activated, it will be necessary to configure each entity in the "Environments" tab to allow the shares between entities.
|
||||
ShareProposal=Share customers proposals
|
||||
ShareOrder=Share customers orders
|
||||
ShareInvoice=Share customers invoices
|
||||
TemplateOfEntityManagement=Templates of entities management
|
||||
TemplateOfEntityManagementInfo=This option allows you to create feature templates to enable and pre-configure modules, shares between entities, and user access rights only with the user centralization mode on the primary entity.
|
||||
TemplateOfCompany=Define as a template of entity
|
||||
SelectTemplateOfCompany=Use a template for this new entity
|
||||
AddNewEntityInAllOtherEntities=Add this new entity in the sharing of other entities
|
||||
WarningThisIsATemplate=Warning ! This is a non-functional entity template and will only be visible to super administrators
|
||||
WarningMulticompanyIsInDevelopMode=Warning ! You are in development mode in your Dolibarr
|
||||
ShowTopMenuEntityLabel=Show entity label in top menu
|
||||
|
||||
# Admin caches tab
|
||||
MulticompanyCacheSystemInfo=The use of a cache can be useful if you have a large number of entities (≈50+), this will accelerate the display of Dolibarr.
|
||||
MulticompanySession=PHP $_SESSION cache
|
||||
MulticompanySessionDescription=Os dados são armazenados na variável global PHP $_SESSION. <br>Este cache não é compartilhado e está limitado ao usuário atual.
|
||||
MulticompanyMemcached=Servidor Memcached
|
||||
MulticompanyMemcachedDescription=Esta opção permite que você use um servidor Memcached para melhorar a velocidade do cargamento da pagina. <br>Requer um servidor Memcached e o plugin Memcached ou Memcache para PHP.
|
||||
MulticompanyMemcachedUnavailable=Memcached ou Memcache não estão disponíveis no seu PHP.
|
||||
MemcachedServerIsReady=O servidor Memcached está acessível
|
||||
MemcachedServerIsNotReady=O servidor Memcached não está acessível, verifique o endereço e a porta.
|
||||
MulticompanyShmop=Memória compartilhada (Shmop)
|
||||
MulticompanyShmopDescription=O Shmop é um conjunto de funções simples para gerenciar memória compartilhada com PHP. <br>(ler, escrever, criar e exclua segmentos de memória compartilhada UNIX).
|
||||
MulticompanyShmopAvailable=Shmop is available on your PHP
|
||||
MulticompanyShmopUnavailable=Shmop não está disponível no seu PHP
|
||||
|
||||
# Select/Change entity
|
||||
GlobalEntityDesc=A modificação da entidade só será permitida se nenhum documento tiver sido criado. (Proposta comercial, orçamento, faturas, etc ...)
|
||||
ThirdpartyEntityDesc=Você pode usar a entidade atual ou atribuir esse terceiro a outra entidade
|
||||
ThirdpartyModifyEntity=You can change its membership entity
|
||||
ThirdpartyModifyEntityDescription=Gostaria de alterar a entidade desse terceiro?
|
||||
ThirdpartyModifyEntitySuccess=A entidade deste terceiro foi modificada com sucesso
|
||||
ContactModifyEntity=You can change its membership entity
|
||||
ContactModifyEntityDescription=Would you like to change the entity of that contact?
|
||||
ContactModifyEntitySuccess=The entity of this contact has been modified successfully
|
||||
ModifyEntityNotAllowed=A modificação da entidade não é permitida
|
||||
|
||||
# Errors
|
||||
ErrorEntityLabelAlreadyExist=Erro: a etiqueta dessa entidade já existe.
|
||||
ErrorEntityIsNotValid=Erro: Esta entidade não é válida.
|
||||
ErrorNotDeleteMasterEntity=Erro: Não é possível apagar a entidade principal.
|
||||
ErrorThirdpartyModifyEntity=Erro: alterar a entidade desse terceiro não pode ser finalizado!
|
||||
ErrorDropDownListOfEntitiesMustBeHidden=The drop-down list of entities on the login page must be hidden!
|
||||
ErrorLinkUserGroupEntity=You must associate user with a group and one or more entities in order to define permissions !!
|
||||
ErrorMulticompanyConfAuthentication=You need to enable Multicompany authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'mc';
|
||||
ErrorDolibarrConfAuthentication=You need to enable Dolibarr authentication by changing this line in conf.php with this value: $dolibarr_main_authentication = 'dolibarr';
|
||||
|
||||
# Multiselect
|
||||
EntitiesSelected=Entities selected
|
||||
EntitiesAvailable=Entities available
|
||||
|
||||
# Datatables
|
||||
CloseDialog=Fechar
|
||||
LineEntries=linhas
|
||||
Showing=Mostrando
|
||||
ShowingOf=Mostando o
|
||||
TotalOf=total de
|
||||
Print=Imprimir
|
||||
FilteredFrom=filtrado por
|
||||
TotalEntries=entradas totais
|
||||
ShowHideColumns=Mostrar / ocultar colunas
|
||||
LoadingDataFromServer=Carregando dados do servidor
|
||||
NoRecordsToDisplay=Não há registros para mostrar
|
||||
NoEntriesToShow=Não há entradas para mostrar
|
||||
Processing=Em processamento...
|
||||
To=para
|
||||
First=Primeiro
|
||||
Last=Ultimo
|
||||
Tools=Ferramentas
|
||||
@ -1,36 +0,0 @@
|
||||
PHP Markdown
|
||||
Copyright (c) 2004-2009 Michel Fortin
|
||||
<http://michelf.com/>
|
||||
All rights reserved.
|
||||
|
||||
Based on Markdown
|
||||
Copyright (c) 2003-2006 John Gruber
|
||||
<http://daringfireball.net/>
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice,
|
||||
this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name "Markdown" nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
This software is provided by the copyright holders and contributors "as
|
||||
is" and any express or implied warranties, including, but not limited
|
||||
to, the implied warranties of merchantability and fitness for a
|
||||
particular purpose are disclaimed. In no event shall the copyright owner
|
||||
or contributors be liable for any direct, indirect, incidental, special,
|
||||
exemplary, or consequential damages (including, but not limited to,
|
||||
procurement of substitute goods or services; loss of use, data, or
|
||||
profits; or business interruption) however caused and on any theory of
|
||||
liability, whether in contract, strict liability, or tort (including
|
||||
negligence or otherwise) arising in any way out of the use of this
|
||||
software, even if advised of the possibility of such damage.
|
||||