`.
+* [#9531](http://dev.ckeditor.com/ticket/9531): [Firefox & Inline editor] Toolbar is lost when closing the Format drop-down list by clicking its button.
+* [#9553](http://dev.ckeditor.com/ticket/9553): Table width incorrectly set when the `border-width` style is specified.
+* [#9594](http://dev.ckeditor.com/ticket/9594): Cannot tab past CKEditor when it is in read-only mode.
+* [#9658](http://dev.ckeditor.com/ticket/9658): [IE9] Justify not working on selected images.
+* [#9686](http://dev.ckeditor.com/ticket/9686): Added missing contents styles for `
` elements.
+* [#9709](http://dev.ckeditor.com/ticket/9709): [Paste from Word](http://ckeditor.com/addon/pastefromword) should not depend on configuration from other styles.
+* [#9726](http://dev.ckeditor.com/ticket/9726): Removed [Color Dialog](http://ckeditor.com/addon/colordialog) plugin dependency from [Table Tools](http://ckeditor.com/addon/tabletools).
+* [#9765](http://dev.ckeditor.com/ticket/9765): Toolbar Collapse command documented incorrectly in the [Accessibility Instructions](http://ckeditor.com/addon/a11yhelp) dialog window.
+* [#9771](http://dev.ckeditor.com/ticket/9771): [WebKit & Opera] Fixed scrolling issues when pasting.
+* [#9787](http://dev.ckeditor.com/ticket/9787): [IE9] `onChange` is not fired for checkboxes in dialogs.
+* [#9842](http://dev.ckeditor.com/ticket/9842): [Firefox 17] When opening a toolbar menu for the first time and pressing the *Down Arrow* key, focus goes to the next toolbar button instead of the menu options.
+* [#9847](http://dev.ckeditor.com/ticket/9847): [Elements Path](http://ckeditor.com/addon/elementspath) should not be initialized in the inline editor.
+* [#9853](http://dev.ckeditor.com/ticket/9853): [`editor.addRemoveFormatFilter()`](http://docs.ckeditor.com/#!/api/CKEDITOR.editor-method-addRemoveFormatFilter) is exposed before it really works.
+* [#8893](http://dev.ckeditor.com/ticket/8893): Value of the [`pasteFromWordCleanupFile`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-pasteFromWordCleanupFile) configuration option is now taken from the instance configuration.
+* [#9693](http://dev.ckeditor.com/ticket/9693): Removed "Live Preview" checkbox from UI color picker.
+
+
+## CKEditor 4.0
+
+The first stable release of the new CKEditor 4 code line.
+
+The CKEditor JavaScript API has been kept compatible with CKEditor 4, whenever
+possible. The list of relevant changes can be found in the [API Changes page of
+the CKEditor 4 documentation][1].
+
+[1]: http://docs.ckeditor.com/#!/guide/dev_api_changes "API Changes"
diff --git a/static/js/ckeditor/LICENSE.md b/static/js/ckeditor/LICENSE.md
index 9ae5c06..55be53a 100644
--- a/static/js/ckeditor/LICENSE.md
+++ b/static/js/ckeditor/LICENSE.md
@@ -1,1420 +1,1420 @@
-Software License Agreement
-==========================
-
-CKEditor - The text editor for Internet - http://ckeditor.com
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
-
-Licensed under the terms of any of the following licenses at your
-choice:
-
- - GNU General Public License Version 2 or later (the "GPL")
- http://www.gnu.org/licenses/gpl.html
- (See Appendix A)
-
- - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
- http://www.gnu.org/licenses/lgpl.html
- (See Appendix B)
-
- - Mozilla Public License Version 1.1 or later (the "MPL")
- http://www.mozilla.org/MPL/MPL-1.1.html
- (See Appendix C)
-
-You are not required to, but if you want to explicitly declare the
-license you have chosen to be bound to when using, reproducing,
-modifying and distributing this software, just include a text file
-titled "legal.txt" in your version of this software, indicating your
-license choice. In any case, your choice will not restrict any
-recipient of your version of this software to use, reproduce, modify
-and distribute this software under any of the above licenses.
-
-Sources of Intellectual Property Included in CKEditor
------------------------------------------------------
-
-Where not otherwise indicated, all CKEditor content is authored by
-CKSource engineers and consists of CKSource-owned intellectual
-property. In some specific instances, CKEditor will incorporate work
-done by developers outside of CKSource with their express permission.
-
-The following libraries are included in CKEditor under the MIT license (see Appendix D):
-
-* CKSource Samples Framework (included in the samples) - Copyright (c) 2014-2016, CKSource - Frederico Knabben.
-* PicoModal (included in `samples/js/sf.js`) - Copyright (c) 2012 James Frasca.
-* CodeMirror (included in the samples) - Copyright (C) 2014 by Marijn Haverbeke and others.
-
-Parts of code taken from the following libraries are included in CKEditor under the MIT license (see Appendix D):
-
-* jQuery (inspired the domReady function, ckeditor_base.js) - Copyright (c) 2011 John Resig, http://jquery.com/
-
-The following libraries are included in CKEditor under the SIL Open Font License, Version 1.1 (see Appendix E):
-
-* Font Awesome (included in the toolbar configurator) - Copyright (C) 2012 by Dave Gandy.
-
-The following libraries are included in CKEditor under the BSD-3 License (see Appendix F):
-
-* highlight.js (included in the `codesnippet` plugin) - Copyright (c) 2006, Ivan Sagalaev.
-* YUI Library (included in the `uicolor` plugin) - Copyright (c) 2009, Yahoo! Inc.
-
-
-Trademarks
-----------
-
-CKEditor is a trademark of CKSource - Frederico Knabben. All other brand
-and product names are trademarks, registered trademarks or service
-marks of their respective holders.
-
----
-
-Appendix A: The GPL License
----------------------------
-
-```
-GNU GENERAL PUBLIC LICENSE
-Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software-to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) 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
-this service 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 make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. 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.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
-GNU GENERAL PUBLIC LICENSE
-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-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
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the 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 a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE 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.
-
-END OF TERMS AND CONDITIONS
-```
-
-Appendix B: The LGPL License
-----------------------------
-
-```
-GNU LESSER GENERAL PUBLIC LICENSE
-Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL. It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-Preamble
-
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software-to make sure the software is free for all its users.
-
- This license, the Lesser General Public License, applies to some
-specially designated software packages-typically libraries-of the
-Free Software Foundation and other authors who decide to use it. You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
- When we speak of free software, we are referring to freedom of use,
-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 this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
- To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights. These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
- For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you. You must make sure that they, too, receive or can get the source
-code. If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it. And you must show them these terms so they know their rights.
-
- We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
- To protect each distributor, we want to make it very clear that
-there is no warranty for the free library. Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-
- Finally, software patents pose a constant threat to the existence of
-any free program. We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder. Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
- Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License. This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License. We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
- When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library. The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom. The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
- We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License. It also provides other free software developers Less
-of an advantage over competing non-free programs. These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries. However, the Lesser license provides advantages in certain
-special circumstances.
-
- For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard. To achieve this, non-free programs must be
-allowed to use the library. A more frequent case is that a free
-library does the same job as widely used non-free libraries. In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
- In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software. For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
- Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
- The precise terms and conditions for copying, distribution and
-modification follow. Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library". The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-
-GNU LESSER GENERAL PUBLIC LICENSE
-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
- A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
- The "Library", below, refers to any such software library or work
-which has been distributed under these terms. A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language. (Hereinafter, translation is
-included without limitation in the term "modification".)
-
- "Source code" for a work means the preferred form of the work for
-making modifications to it. For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
- Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it). Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-
- 1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
- You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
- 2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) The modified work must itself be a software library.
-
- b) You must cause the files modified to carry prominent notices
- stating that you changed the files and the date of any change.
-
- c) You must cause the whole of the work to be licensed at no
- charge to all third parties under the terms of this License.
-
- d) If a facility in the modified Library refers to a function or a
- table of data to be supplied by an application program that uses
- the facility, other than as an argument passed when the facility
- is invoked, then you must make a good faith effort to ensure that,
- in the event an application does not supply such function or
- table, the facility still operates, and performs whatever part of
- its purpose remains meaningful.
-
- (For example, a function in a library to compute square roots has
- a purpose that is entirely well-defined independent of the
- application. Therefore, Subsection 2d requires that any
- application-supplied function or table used by this function must
- be optional: if the application does not supply it, the square
- root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library. To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License. (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.) Do not make any other change in
-these notices.
-
- Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
- This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
- 4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
- If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library". Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
- However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library". The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
- When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library. The
-threshold for this to be true is not precisely defined by law.
-
- If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work. (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
- Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
- 6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
- You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License. You must supply a copy of this License. If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License. Also, you must do one
-of these things:
-
- a) Accompany the work with the complete corresponding
- machine-readable source code for the Library including whatever
- changes were used in the work (which must be distributed under
- Sections 1 and 2 above); and, if the work is an executable linked
- with the Library, with the complete machine-readable "work that
- uses the Library", as object code and/or source code, so that the
- user can modify the Library and then relink to produce a modified
- executable containing the modified Library. (It is understood
- that the user who changes the contents of definitions files in the
- Library will not necessarily be able to recompile the application
- to use the modified definitions.)
-
- b) Use a suitable shared library mechanism for linking with the
- Library. A suitable mechanism is one that (1) uses at run time a
- copy of the library already present on the user's computer system,
- rather than copying library functions into the executable, and (2)
- will operate properly with a modified version of the library, if
- the user installs one, as long as the modified version is
- interface-compatible with the version that the work was made with.
-
- c) Accompany the work with a written offer, valid for at
- least three years, to give the same user the materials
- specified in Subsection 6a, above, for a charge no more
- than the cost of performing this distribution.
-
- d) If distribution of the work is made by offering access to copy
- from a designated place, offer equivalent access to copy the above
- specified materials from the same place.
-
- e) Verify that the user has already received a copy of these
- materials or that you have already sent this user a copy.
-
- For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it. However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
- It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system. Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
- 7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
- a) Accompany the combined library with a copy of the same work
- based on the Library, uncombined with any other library
- facilities. This must be distributed under the terms of the
- Sections above.
-
- b) Give prominent notice with the combined library of the fact
- that part of it is a work based on the Library, and explaining
- where to find the accompanying uncombined form of the same work.
-
- 8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License. Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License. However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
- 9. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Library or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
- 10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
- 11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-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
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all. For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded. In such case, this License incorporates the limitation as if
-written in the body of this License.
-
- 13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation. If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
- 14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission. For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this. Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-NO WARRANTY
-
- 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "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
-LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY 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
-LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-END OF TERMS AND CONDITIONS
-```
-
-Appendix C: The MPL License
----------------------------
-
-```
-MOZILLA PUBLIC LICENSE
-Version 1.1
-
-1. Definitions.
-
- 1.0.1. "Commercial Use" means distribution or otherwise making the
- Covered Code available to a third party.
-
- 1.1. "Contributor" means each entity that creates or contributes to
- the creation of Modifications.
-
- 1.2. "Contributor Version" means the combination of the Original
- Code, prior Modifications used by a Contributor, and the Modifications
- made by that particular Contributor.
-
- 1.3. "Covered Code" means the Original Code or Modifications or the
- combination of the Original Code and Modifications, in each case
- including portions thereof.
-
- 1.4. "Electronic Distribution Mechanism" means a mechanism generally
- accepted in the software development community for the electronic
- transfer of data.
-
- 1.5. "Executable" means Covered Code in any form other than Source
- Code.
-
- 1.6. "Initial Developer" means the individual or entity identified
- as the Initial Developer in the Source Code notice required by Exhibit
- A.
-
- 1.7. "Larger Work" means a work which combines Covered Code or
- portions thereof with code not governed by the terms of this License.
-
- 1.8. "License" means this document.
-
- 1.8.1. "Licensable" means having the right to grant, to the maximum
- extent possible, whether at the time of the initial grant or
- subsequently acquired, any and all of the rights conveyed herein.
-
- 1.9. "Modifications" means any addition to or deletion from the
- substance or structure of either the Original Code or any previous
- Modifications. When Covered Code is released as a series of files, a
- Modification is:
- A. Any addition to or deletion from the contents of a file
- containing Original Code or previous Modifications.
-
- B. Any new file that contains any part of the Original Code or
- previous Modifications.
-
- 1.10. "Original Code" means Source Code of computer software code
- which is described in the Source Code notice required by Exhibit A as
- Original Code, and which, at the time of its release under this
- License is not already Covered Code governed by this License.
-
- 1.10.1. "Patent Claims" means any patent claim(s), now owned or
- hereafter acquired, including without limitation, method, process,
- and apparatus claims, in any patent Licensable by grantor.
-
- 1.11. "Source Code" means the preferred form of the Covered Code for
- making modifications to it, including all modules it contains, plus
- any associated interface definition files, scripts used to control
- compilation and installation of an Executable, or source code
- differential comparisons against either the Original Code or another
- well known, available Covered Code of the Contributor's choice. The
- Source Code can be in a compressed or archival form, provided the
- appropriate decompression or de-archiving software is widely available
- for no charge.
-
- 1.12. "You" (or "Your") means an individual or a legal entity
- exercising rights under, and complying with all of the terms of, this
- License or a future version of this License issued under Section 6.1.
- For legal entities, "You" includes any entity which controls, is
- controlled by, or is under common control with You. For purposes of
- this definition, "control" means (a) the power, direct or indirect,
- to cause the direction or management of such entity, whether by
- contract or otherwise, or (b) ownership of more than fifty percent
- (50%) of the outstanding shares or beneficial ownership of such
- entity.
-
-2. Source Code License.
-
- 2.1. The Initial Developer Grant.
- The Initial Developer hereby grants You a world-wide, royalty-free,
- non-exclusive license, subject to third party intellectual property
- claims:
- (a) under intellectual property rights (other than patent or
- trademark) Licensable by Initial Developer to use, reproduce,
- modify, display, perform, sublicense and distribute the Original
- Code (or portions thereof) with or without Modifications, and/or
- as part of a Larger Work; and
-
- (b) under Patents Claims infringed by the making, using or
- selling of Original Code, to make, have made, use, practice,
- sell, and offer for sale, and/or otherwise dispose of the
- Original Code (or portions thereof).
-
- (c) the licenses granted in this Section 2.1(a) and (b) are
- effective on the date Initial Developer first distributes
- Original Code under the terms of this License.
-
- (d) Notwithstanding Section 2.1(b) above, no patent license is
- granted: 1) for code that You delete from the Original Code; 2)
- separate from the Original Code; or 3) for infringements caused
- by: i) the modification of the Original Code or ii) the
- combination of the Original Code with other software or devices.
-
- 2.2. Contributor Grant.
- Subject to third party intellectual property claims, each Contributor
- hereby grants You a world-wide, royalty-free, non-exclusive license
-
- (a) under intellectual property rights (other than patent or
- trademark) Licensable by Contributor, to use, reproduce, modify,
- display, perform, sublicense and distribute the Modifications
- created by such Contributor (or portions thereof) either on an
- unmodified basis, with other Modifications, as Covered Code
- and/or as part of a Larger Work; and
-
- (b) under Patent Claims infringed by the making, using, or
- selling of Modifications made by that Contributor either alone
- and/or in combination with its Contributor Version (or portions
- of such combination), to make, use, sell, offer for sale, have
- made, and/or otherwise dispose of: 1) Modifications made by that
- Contributor (or portions thereof); and 2) the combination of
- Modifications made by that Contributor with its Contributor
- Version (or portions of such combination).
-
- (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
- effective on the date Contributor first makes Commercial Use of
- the Covered Code.
-
- (d) Notwithstanding Section 2.2(b) above, no patent license is
- granted: 1) for any code that Contributor has deleted from the
- Contributor Version; 2) separate from the Contributor Version;
- 3) for infringements caused by: i) third party modifications of
- Contributor Version or ii) the combination of Modifications made
- by that Contributor with other software (except as part of the
- Contributor Version) or other devices; or 4) under Patent Claims
- infringed by Covered Code in the absence of Modifications made by
- that Contributor.
-
-3. Distribution Obligations.
-
- 3.1. Application of License.
- The Modifications which You create or to which You contribute are
- governed by the terms of this License, including without limitation
- Section 2.2. The Source Code version of Covered Code may be
- distributed only under the terms of this License or a future version
- of this License released under Section 6.1, and You must include a
- copy of this License with every copy of the Source Code You
- distribute. You may not offer or impose any terms on any Source Code
- version that alters or restricts the applicable version of this
- License or the recipients' rights hereunder. However, You may include
- an additional document offering the additional rights described in
- Section 3.5.
-
- 3.2. Availability of Source Code.
- Any Modification which You create or to which You contribute must be
- made available in Source Code form under the terms of this License
- either on the same media as an Executable version or via an accepted
- Electronic Distribution Mechanism to anyone to whom you made an
- Executable version available; and if made available via Electronic
- Distribution Mechanism, must remain available for at least twelve (12)
- months after the date it initially became available, or at least six
- (6) months after a subsequent version of that particular Modification
- has been made available to such recipients. You are responsible for
- ensuring that the Source Code version remains available even if the
- Electronic Distribution Mechanism is maintained by a third party.
-
- 3.3. Description of Modifications.
- You must cause all Covered Code to which You contribute to contain a
- file documenting the changes You made to create that Covered Code and
- the date of any change. You must include a prominent statement that
- the Modification is derived, directly or indirectly, from Original
- Code provided by the Initial Developer and including the name of the
- Initial Developer in (a) the Source Code, and (b) in any notice in an
- Executable version or related documentation in which You describe the
- origin or ownership of the Covered Code.
-
- 3.4. Intellectual Property Matters
- (a) Third Party Claims.
- If Contributor has knowledge that a license under a third party's
- intellectual property rights is required to exercise the rights
- granted by such Contributor under Sections 2.1 or 2.2,
- Contributor must include a text file with the Source Code
- distribution titled "LEGAL" which describes the claim and the
- party making the claim in sufficient detail that a recipient will
- know whom to contact. If Contributor obtains such knowledge after
- the Modification is made available as described in Section 3.2,
- Contributor shall promptly modify the LEGAL file in all copies
- Contributor makes available thereafter and shall take other steps
- (such as notifying appropriate mailing lists or newsgroups)
- reasonably calculated to inform those who received the Covered
- Code that new knowledge has been obtained.
-
- (b) Contributor APIs.
- If Contributor's Modifications include an application programming
- interface and Contributor has knowledge of patent licenses which
- are reasonably necessary to implement that API, Contributor must
- also include this information in the LEGAL file.
-
- (c) Representations.
- Contributor represents that, except as disclosed pursuant to
- Section 3.4(a) above, Contributor believes that Contributor's
- Modifications are Contributor's original creation(s) and/or
- Contributor has sufficient rights to grant the rights conveyed by
- this License.
-
- 3.5. Required Notices.
- You must duplicate the notice in Exhibit A in each file of the Source
- Code. If it is not possible to put such notice in a particular Source
- Code file due to its structure, then You must include such notice in a
- location (such as a relevant directory) where a user would be likely
- to look for such a notice. If You created one or more Modification(s)
- You may add your name as a Contributor to the notice described in
- Exhibit A. You must also duplicate this License in any documentation
- for the Source Code where You describe recipients' rights or ownership
- rights relating to Covered Code. You may choose to offer, and to
- charge a fee for, warranty, support, indemnity or liability
- obligations to one or more recipients of Covered Code. However, You
- may do so only on Your own behalf, and not on behalf of the Initial
- Developer or any Contributor. You must make it absolutely clear than
- any such warranty, support, indemnity or liability obligation is
- offered by You alone, and You hereby agree to indemnify the Initial
- Developer and every Contributor for any liability incurred by the
- Initial Developer or such Contributor as a result of warranty,
- support, indemnity or liability terms You offer.
-
- 3.6. Distribution of Executable Versions.
- You may distribute Covered Code in Executable form only if the
- requirements of Section 3.1-3.5 have been met for that Covered Code,
- and if You include a notice stating that the Source Code version of
- the Covered Code is available under the terms of this License,
- including a description of how and where You have fulfilled the
- obligations of Section 3.2. The notice must be conspicuously included
- in any notice in an Executable version, related documentation or
- collateral in which You describe recipients' rights relating to the
- Covered Code. You may distribute the Executable version of Covered
- Code or ownership rights under a license of Your choice, which may
- contain terms different from this License, provided that You are in
- compliance with the terms of this License and that the license for the
- Executable version does not attempt to limit or alter the recipient's
- rights in the Source Code version from the rights set forth in this
- License. If You distribute the Executable version under a different
- license You must make it absolutely clear that any terms which differ
- from this License are offered by You alone, not by the Initial
- Developer or any Contributor. You hereby agree to indemnify the
- Initial Developer and every Contributor for any liability incurred by
- the Initial Developer or such Contributor as a result of any such
- terms You offer.
-
- 3.7. Larger Works.
- You may create a Larger Work by combining Covered Code with other code
- not governed by the terms of this License and distribute the Larger
- Work as a single product. In such a case, You must make sure the
- requirements of this License are fulfilled for the Covered Code.
-
-4. Inability to Comply Due to Statute or Regulation.
-
- If it is impossible for You to comply with any of the terms of this
- License with respect to some or all of the Covered Code due to
- statute, judicial order, or regulation then You must: (a) comply with
- the terms of this License to the maximum extent possible; and (b)
- describe the limitations and the code they affect. Such description
- must be included in the LEGAL file described in Section 3.4 and must
- be included with all distributions of the Source Code. Except to the
- extent prohibited by statute or regulation, such description must be
- sufficiently detailed for a recipient of ordinary skill to be able to
- understand it.
-
-5. Application of this License.
-
- This License applies to code to which the Initial Developer has
- attached the notice in Exhibit A and to related Covered Code.
-
-6. Versions of the License.
-
- 6.1. New Versions.
- Netscape Communications Corporation ("Netscape") may publish revised
- and/or new versions of the License from time to time. Each version
- will be given a distinguishing version number.
-
- 6.2. Effect of New Versions.
- Once Covered Code has been published under a particular version of the
- License, You may always continue to use it under the terms of that
- version. You may also choose to use such Covered Code under the terms
- of any subsequent version of the License published by Netscape. No one
- other than Netscape has the right to modify the terms applicable to
- Covered Code created under this License.
-
- 6.3. Derivative Works.
- If You create or use a modified version of this License (which you may
- only do in order to apply it to code which is not already Covered Code
- governed by this License), You must (a) rename Your license so that
- the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
- "MPL", "NPL" or any confusingly similar phrase do not appear in your
- license (except to note that your license differs from this License)
- and (b) otherwise make it clear that Your version of the license
- contains terms which differ from the Mozilla Public License and
- Netscape Public License. (Filling in the name of the Initial
- Developer, Original Code or Contributor in the notice described in
- Exhibit A shall not of themselves be deemed to be modifications of
- this License.)
-
-7. DISCLAIMER OF WARRANTY.
-
- COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
- WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
- WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
- DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
- THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
- IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
- YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
- COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
- OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
- ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
-
-8. TERMINATION.
-
- 8.1. This License and the rights granted hereunder will terminate
- automatically if You fail to comply with terms herein and fail to cure
- such breach within 30 days of becoming aware of the breach. All
- sublicenses to the Covered Code which are properly granted shall
- survive any termination of this License. Provisions which, by their
- nature, must remain in effect beyond the termination of this License
- shall survive.
-
- 8.2. If You initiate litigation by asserting a patent infringement
- claim (excluding declatory judgment actions) against Initial Developer
- or a Contributor (the Initial Developer or Contributor against whom
- You file such action is referred to as "Participant") alleging that:
-
- (a) such Participant's Contributor Version directly or indirectly
- infringes any patent, then any and all rights granted by such
- Participant to You under Sections 2.1 and/or 2.2 of this License
- shall, upon 60 days notice from Participant terminate prospectively,
- unless if within 60 days after receipt of notice You either: (i)
- agree in writing to pay Participant a mutually agreeable reasonable
- royalty for Your past and future use of Modifications made by such
- Participant, or (ii) withdraw Your litigation claim with respect to
- the Contributor Version against such Participant. If within 60 days
- of notice, a reasonable royalty and payment arrangement are not
- mutually agreed upon in writing by the parties or the litigation claim
- is not withdrawn, the rights granted by Participant to You under
- Sections 2.1 and/or 2.2 automatically terminate at the expiration of
- the 60 day notice period specified above.
-
- (b) any software, hardware, or device, other than such Participant's
- Contributor Version, directly or indirectly infringes any patent, then
- any rights granted to You by such Participant under Sections 2.1(b)
- and 2.2(b) are revoked effective as of the date You first made, used,
- sold, distributed, or had made, Modifications made by that
- Participant.
-
- 8.3. If You assert a patent infringement claim against Participant
- alleging that such Participant's Contributor Version directly or
- indirectly infringes any patent where such claim is resolved (such as
- by license or settlement) prior to the initiation of patent
- infringement litigation, then the reasonable value of the licenses
- granted by such Participant under Sections 2.1 or 2.2 shall be taken
- into account in determining the amount or value of any payment or
- license.
-
- 8.4. In the event of termination under Sections 8.1 or 8.2 above,
- all end user license agreements (excluding distributors and resellers)
- which have been validly granted by You or any distributor hereunder
- prior to termination shall survive termination.
-
-9. LIMITATION OF LIABILITY.
-
- UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
- (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
- DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
- OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
- ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
- CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
- WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
- COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
- INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
- LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
- RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
- PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
- EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
- THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
-
-10. U.S. GOVERNMENT END USERS.
-
- The Covered Code is a "commercial item," as that term is defined in
- 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
- software" and "commercial computer software documentation," as such
- terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
- C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
- all U.S. Government End Users acquire Covered Code with only those
- rights set forth herein.
-
-11. MISCELLANEOUS.
-
- This License represents the complete agreement concerning subject
- matter hereof. If any provision of this License is held to be
- unenforceable, such provision shall be reformed only to the extent
- necessary to make it enforceable. This License shall be governed by
- California law provisions (except to the extent applicable law, if
- any, provides otherwise), excluding its conflict-of-law provisions.
- With respect to disputes in which at least one party is a citizen of,
- or an entity chartered or registered to do business in the United
- States of America, any litigation relating to this License shall be
- subject to the jurisdiction of the Federal Courts of the Northern
- District of California, with venue lying in Santa Clara County,
- California, with the losing party responsible for costs, including
- without limitation, court costs and reasonable attorneys' fees and
- expenses. The application of the United Nations Convention on
- Contracts for the International Sale of Goods is expressly excluded.
- Any law or regulation which provides that the language of a contract
- shall be construed against the drafter shall not apply to this
- License.
-
-12. RESPONSIBILITY FOR CLAIMS.
-
- As between Initial Developer and the Contributors, each party is
- responsible for claims and damages arising, directly or indirectly,
- out of its utilization of rights under this License and You agree to
- work with Initial Developer and Contributors to distribute such
- responsibility on an equitable basis. Nothing herein is intended or
- shall be deemed to constitute any admission of liability.
-
-13. MULTIPLE-LICENSED CODE.
-
- Initial Developer may designate portions of the Covered Code as
- "Multiple-Licensed". "Multiple-Licensed" means that the Initial
- Developer permits you to utilize portions of the Covered Code under
- Your choice of the NPL or the alternative licenses, if any, specified
- by the Initial Developer in the file described in Exhibit A.
-
-EXHIBIT A -Mozilla Public License.
-
- ``The contents of this file are subject to the Mozilla Public License
- Version 1.1 (the "License"); you may not use this file except in
- compliance with the License. You may obtain a copy of the License at
- http://www.mozilla.org/MPL/
-
- Software distributed under the License is distributed on an "AS IS"
- basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
- License for the specific language governing rights and limitations
- under the License.
-
- The Original Code is ______________________________________.
-
- The Initial Developer of the Original Code is ________________________.
- Portions created by ______________________ are Copyright (C) ______
- _______________________. All Rights Reserved.
-
- Contributor(s): ______________________________________.
-
- Alternatively, the contents of this file may be used under the terms
- of the _____ license (the "[___] License"), in which case the
- provisions of [______] License are applicable instead of those
- above. If you wish to allow use of your version of this file only
- under the terms of the [____] License and not to allow others to use
- your version of this file under the MPL, indicate your decision by
- deleting the provisions above and replace them with the notice and
- other provisions required by the [___] License. If you do not delete
- the provisions above, a recipient may use your version of this file
- under either the MPL or the [___] License."
-
- [NOTE: The text of this Exhibit A may differ slightly from the text of
- the notices in the Source Code files of the Original Code. You should
- use the text of this Exhibit A rather than the text found in the
- Original Code Source Code for Your Modifications.]
-```
-
-Appendix D: The MIT License
----------------------------
-
-```
-The MIT License (MIT)
-
-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.
-```
-
-Appendix E: The SIL Open Font License Version 1.1
----------------------------------------------
-
-```
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded,
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
-```
-
-Appendix F: The BSD-3 License
------------------------------
-
-```
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
-2. 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.
-
-3. Neither the name of the copyright holder 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 HOLDER 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.
-```
-
+Software License Agreement
+==========================
+
+CKEditor - The text editor for Internet - http://ckeditor.com
+Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+
+Licensed under the terms of any of the following licenses at your
+choice:
+
+ - GNU General Public License Version 2 or later (the "GPL")
+ http://www.gnu.org/licenses/gpl.html
+ (See Appendix A)
+
+ - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
+ http://www.gnu.org/licenses/lgpl.html
+ (See Appendix B)
+
+ - Mozilla Public License Version 1.1 or later (the "MPL")
+ http://www.mozilla.org/MPL/MPL-1.1.html
+ (See Appendix C)
+
+You are not required to, but if you want to explicitly declare the
+license you have chosen to be bound to when using, reproducing,
+modifying and distributing this software, just include a text file
+titled "legal.txt" in your version of this software, indicating your
+license choice. In any case, your choice will not restrict any
+recipient of your version of this software to use, reproduce, modify
+and distribute this software under any of the above licenses.
+
+Sources of Intellectual Property Included in CKEditor
+-----------------------------------------------------
+
+Where not otherwise indicated, all CKEditor content is authored by
+CKSource engineers and consists of CKSource-owned intellectual
+property. In some specific instances, CKEditor will incorporate work
+done by developers outside of CKSource with their express permission.
+
+The following libraries are included in CKEditor under the MIT license (see Appendix D):
+
+* CKSource Samples Framework (included in the samples) - Copyright (c) 2014-2016, CKSource - Frederico Knabben.
+* PicoModal (included in `samples/js/sf.js`) - Copyright (c) 2012 James Frasca.
+* CodeMirror (included in the samples) - Copyright (C) 2014 by Marijn Haverbeke and others.
+
+Parts of code taken from the following libraries are included in CKEditor under the MIT license (see Appendix D):
+
+* jQuery (inspired the domReady function, ckeditor_base.js) - Copyright (c) 2011 John Resig, http://jquery.com/
+
+The following libraries are included in CKEditor under the SIL Open Font License, Version 1.1 (see Appendix E):
+
+* Font Awesome (included in the toolbar configurator) - Copyright (C) 2012 by Dave Gandy.
+
+The following libraries are included in CKEditor under the BSD-3 License (see Appendix F):
+
+* highlight.js (included in the `codesnippet` plugin) - Copyright (c) 2006, Ivan Sagalaev.
+* YUI Library (included in the `uicolor` plugin) - Copyright (c) 2009, Yahoo! Inc.
+
+
+Trademarks
+----------
+
+CKEditor is a trademark of CKSource - Frederico Knabben. All other brand
+and product names are trademarks, registered trademarks or service
+marks of their respective holders.
+
+---
+
+Appendix A: The GPL License
+---------------------------
+
+```
+GNU GENERAL PUBLIC LICENSE
+Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software-to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) 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
+this service 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 make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. 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.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+GNU GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+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
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the 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 a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE 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.
+
+END OF TERMS AND CONDITIONS
+```
+
+Appendix B: The LGPL License
+----------------------------
+
+```
+GNU LESSER GENERAL PUBLIC LICENSE
+Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software-to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages-typically libraries-of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+ When we speak of free software, we are referring to freedom of use,
+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 this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard. To achieve this, non-free programs must be
+allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+GNU LESSER GENERAL PUBLIC LICENSE
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+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
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "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
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY 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
+LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+END OF TERMS AND CONDITIONS
+```
+
+Appendix C: The MPL License
+---------------------------
+
+```
+MOZILLA PUBLIC LICENSE
+Version 1.1
+
+1. Definitions.
+
+ 1.0.1. "Commercial Use" means distribution or otherwise making the
+ Covered Code available to a third party.
+
+ 1.1. "Contributor" means each entity that creates or contributes to
+ the creation of Modifications.
+
+ 1.2. "Contributor Version" means the combination of the Original
+ Code, prior Modifications used by a Contributor, and the Modifications
+ made by that particular Contributor.
+
+ 1.3. "Covered Code" means the Original Code or Modifications or the
+ combination of the Original Code and Modifications, in each case
+ including portions thereof.
+
+ 1.4. "Electronic Distribution Mechanism" means a mechanism generally
+ accepted in the software development community for the electronic
+ transfer of data.
+
+ 1.5. "Executable" means Covered Code in any form other than Source
+ Code.
+
+ 1.6. "Initial Developer" means the individual or entity identified
+ as the Initial Developer in the Source Code notice required by Exhibit
+ A.
+
+ 1.7. "Larger Work" means a work which combines Covered Code or
+ portions thereof with code not governed by the terms of this License.
+
+ 1.8. "License" means this document.
+
+ 1.8.1. "Licensable" means having the right to grant, to the maximum
+ extent possible, whether at the time of the initial grant or
+ subsequently acquired, any and all of the rights conveyed herein.
+
+ 1.9. "Modifications" means any addition to or deletion from the
+ substance or structure of either the Original Code or any previous
+ Modifications. When Covered Code is released as a series of files, a
+ Modification is:
+ A. Any addition to or deletion from the contents of a file
+ containing Original Code or previous Modifications.
+
+ B. Any new file that contains any part of the Original Code or
+ previous Modifications.
+
+ 1.10. "Original Code" means Source Code of computer software code
+ which is described in the Source Code notice required by Exhibit A as
+ Original Code, and which, at the time of its release under this
+ License is not already Covered Code governed by this License.
+
+ 1.10.1. "Patent Claims" means any patent claim(s), now owned or
+ hereafter acquired, including without limitation, method, process,
+ and apparatus claims, in any patent Licensable by grantor.
+
+ 1.11. "Source Code" means the preferred form of the Covered Code for
+ making modifications to it, including all modules it contains, plus
+ any associated interface definition files, scripts used to control
+ compilation and installation of an Executable, or source code
+ differential comparisons against either the Original Code or another
+ well known, available Covered Code of the Contributor's choice. The
+ Source Code can be in a compressed or archival form, provided the
+ appropriate decompression or de-archiving software is widely available
+ for no charge.
+
+ 1.12. "You" (or "Your") means an individual or a legal entity
+ exercising rights under, and complying with all of the terms of, this
+ License or a future version of this License issued under Section 6.1.
+ For legal entities, "You" includes any entity which controls, is
+ controlled by, or is under common control with You. For purposes of
+ this definition, "control" means (a) the power, direct or indirect,
+ to cause the direction or management of such entity, whether by
+ contract or otherwise, or (b) ownership of more than fifty percent
+ (50%) of the outstanding shares or beneficial ownership of such
+ entity.
+
+2. Source Code License.
+
+ 2.1. The Initial Developer Grant.
+ The Initial Developer hereby grants You a world-wide, royalty-free,
+ non-exclusive license, subject to third party intellectual property
+ claims:
+ (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Initial Developer to use, reproduce,
+ modify, display, perform, sublicense and distribute the Original
+ Code (or portions thereof) with or without Modifications, and/or
+ as part of a Larger Work; and
+
+ (b) under Patents Claims infringed by the making, using or
+ selling of Original Code, to make, have made, use, practice,
+ sell, and offer for sale, and/or otherwise dispose of the
+ Original Code (or portions thereof).
+
+ (c) the licenses granted in this Section 2.1(a) and (b) are
+ effective on the date Initial Developer first distributes
+ Original Code under the terms of this License.
+
+ (d) Notwithstanding Section 2.1(b) above, no patent license is
+ granted: 1) for code that You delete from the Original Code; 2)
+ separate from the Original Code; or 3) for infringements caused
+ by: i) the modification of the Original Code or ii) the
+ combination of the Original Code with other software or devices.
+
+ 2.2. Contributor Grant.
+ Subject to third party intellectual property claims, each Contributor
+ hereby grants You a world-wide, royalty-free, non-exclusive license
+
+ (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Contributor, to use, reproduce, modify,
+ display, perform, sublicense and distribute the Modifications
+ created by such Contributor (or portions thereof) either on an
+ unmodified basis, with other Modifications, as Covered Code
+ and/or as part of a Larger Work; and
+
+ (b) under Patent Claims infringed by the making, using, or
+ selling of Modifications made by that Contributor either alone
+ and/or in combination with its Contributor Version (or portions
+ of such combination), to make, use, sell, offer for sale, have
+ made, and/or otherwise dispose of: 1) Modifications made by that
+ Contributor (or portions thereof); and 2) the combination of
+ Modifications made by that Contributor with its Contributor
+ Version (or portions of such combination).
+
+ (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+ effective on the date Contributor first makes Commercial Use of
+ the Covered Code.
+
+ (d) Notwithstanding Section 2.2(b) above, no patent license is
+ granted: 1) for any code that Contributor has deleted from the
+ Contributor Version; 2) separate from the Contributor Version;
+ 3) for infringements caused by: i) third party modifications of
+ Contributor Version or ii) the combination of Modifications made
+ by that Contributor with other software (except as part of the
+ Contributor Version) or other devices; or 4) under Patent Claims
+ infringed by Covered Code in the absence of Modifications made by
+ that Contributor.
+
+3. Distribution Obligations.
+
+ 3.1. Application of License.
+ The Modifications which You create or to which You contribute are
+ governed by the terms of this License, including without limitation
+ Section 2.2. The Source Code version of Covered Code may be
+ distributed only under the terms of this License or a future version
+ of this License released under Section 6.1, and You must include a
+ copy of this License with every copy of the Source Code You
+ distribute. You may not offer or impose any terms on any Source Code
+ version that alters or restricts the applicable version of this
+ License or the recipients' rights hereunder. However, You may include
+ an additional document offering the additional rights described in
+ Section 3.5.
+
+ 3.2. Availability of Source Code.
+ Any Modification which You create or to which You contribute must be
+ made available in Source Code form under the terms of this License
+ either on the same media as an Executable version or via an accepted
+ Electronic Distribution Mechanism to anyone to whom you made an
+ Executable version available; and if made available via Electronic
+ Distribution Mechanism, must remain available for at least twelve (12)
+ months after the date it initially became available, or at least six
+ (6) months after a subsequent version of that particular Modification
+ has been made available to such recipients. You are responsible for
+ ensuring that the Source Code version remains available even if the
+ Electronic Distribution Mechanism is maintained by a third party.
+
+ 3.3. Description of Modifications.
+ You must cause all Covered Code to which You contribute to contain a
+ file documenting the changes You made to create that Covered Code and
+ the date of any change. You must include a prominent statement that
+ the Modification is derived, directly or indirectly, from Original
+ Code provided by the Initial Developer and including the name of the
+ Initial Developer in (a) the Source Code, and (b) in any notice in an
+ Executable version or related documentation in which You describe the
+ origin or ownership of the Covered Code.
+
+ 3.4. Intellectual Property Matters
+ (a) Third Party Claims.
+ If Contributor has knowledge that a license under a third party's
+ intellectual property rights is required to exercise the rights
+ granted by such Contributor under Sections 2.1 or 2.2,
+ Contributor must include a text file with the Source Code
+ distribution titled "LEGAL" which describes the claim and the
+ party making the claim in sufficient detail that a recipient will
+ know whom to contact. If Contributor obtains such knowledge after
+ the Modification is made available as described in Section 3.2,
+ Contributor shall promptly modify the LEGAL file in all copies
+ Contributor makes available thereafter and shall take other steps
+ (such as notifying appropriate mailing lists or newsgroups)
+ reasonably calculated to inform those who received the Covered
+ Code that new knowledge has been obtained.
+
+ (b) Contributor APIs.
+ If Contributor's Modifications include an application programming
+ interface and Contributor has knowledge of patent licenses which
+ are reasonably necessary to implement that API, Contributor must
+ also include this information in the LEGAL file.
+
+ (c) Representations.
+ Contributor represents that, except as disclosed pursuant to
+ Section 3.4(a) above, Contributor believes that Contributor's
+ Modifications are Contributor's original creation(s) and/or
+ Contributor has sufficient rights to grant the rights conveyed by
+ this License.
+
+ 3.5. Required Notices.
+ You must duplicate the notice in Exhibit A in each file of the Source
+ Code. If it is not possible to put such notice in a particular Source
+ Code file due to its structure, then You must include such notice in a
+ location (such as a relevant directory) where a user would be likely
+ to look for such a notice. If You created one or more Modification(s)
+ You may add your name as a Contributor to the notice described in
+ Exhibit A. You must also duplicate this License in any documentation
+ for the Source Code where You describe recipients' rights or ownership
+ rights relating to Covered Code. You may choose to offer, and to
+ charge a fee for, warranty, support, indemnity or liability
+ obligations to one or more recipients of Covered Code. However, You
+ may do so only on Your own behalf, and not on behalf of the Initial
+ Developer or any Contributor. You must make it absolutely clear than
+ any such warranty, support, indemnity or liability obligation is
+ offered by You alone, and You hereby agree to indemnify the Initial
+ Developer and every Contributor for any liability incurred by the
+ Initial Developer or such Contributor as a result of warranty,
+ support, indemnity or liability terms You offer.
+
+ 3.6. Distribution of Executable Versions.
+ You may distribute Covered Code in Executable form only if the
+ requirements of Section 3.1-3.5 have been met for that Covered Code,
+ and if You include a notice stating that the Source Code version of
+ the Covered Code is available under the terms of this License,
+ including a description of how and where You have fulfilled the
+ obligations of Section 3.2. The notice must be conspicuously included
+ in any notice in an Executable version, related documentation or
+ collateral in which You describe recipients' rights relating to the
+ Covered Code. You may distribute the Executable version of Covered
+ Code or ownership rights under a license of Your choice, which may
+ contain terms different from this License, provided that You are in
+ compliance with the terms of this License and that the license for the
+ Executable version does not attempt to limit or alter the recipient's
+ rights in the Source Code version from the rights set forth in this
+ License. If You distribute the Executable version under a different
+ license You must make it absolutely clear that any terms which differ
+ from this License are offered by You alone, not by the Initial
+ Developer or any Contributor. You hereby agree to indemnify the
+ Initial Developer and every Contributor for any liability incurred by
+ the Initial Developer or such Contributor as a result of any such
+ terms You offer.
+
+ 3.7. Larger Works.
+ You may create a Larger Work by combining Covered Code with other code
+ not governed by the terms of this License and distribute the Larger
+ Work as a single product. In such a case, You must make sure the
+ requirements of this License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+ If it is impossible for You to comply with any of the terms of this
+ License with respect to some or all of the Covered Code due to
+ statute, judicial order, or regulation then You must: (a) comply with
+ the terms of this License to the maximum extent possible; and (b)
+ describe the limitations and the code they affect. Such description
+ must be included in the LEGAL file described in Section 3.4 and must
+ be included with all distributions of the Source Code. Except to the
+ extent prohibited by statute or regulation, such description must be
+ sufficiently detailed for a recipient of ordinary skill to be able to
+ understand it.
+
+5. Application of this License.
+
+ This License applies to code to which the Initial Developer has
+ attached the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+ 6.1. New Versions.
+ Netscape Communications Corporation ("Netscape") may publish revised
+ and/or new versions of the License from time to time. Each version
+ will be given a distinguishing version number.
+
+ 6.2. Effect of New Versions.
+ Once Covered Code has been published under a particular version of the
+ License, You may always continue to use it under the terms of that
+ version. You may also choose to use such Covered Code under the terms
+ of any subsequent version of the License published by Netscape. No one
+ other than Netscape has the right to modify the terms applicable to
+ Covered Code created under this License.
+
+ 6.3. Derivative Works.
+ If You create or use a modified version of this License (which you may
+ only do in order to apply it to code which is not already Covered Code
+ governed by this License), You must (a) rename Your license so that
+ the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
+ "MPL", "NPL" or any confusingly similar phrase do not appear in your
+ license (except to note that your license differs from this License)
+ and (b) otherwise make it clear that Your version of the license
+ contains terms which differ from the Mozilla Public License and
+ Netscape Public License. (Filling in the name of the Initial
+ Developer, Original Code or Contributor in the notice described in
+ Exhibit A shall not of themselves be deemed to be modifications of
+ this License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+ COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
+ DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
+ THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
+ IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
+ YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
+ COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+ OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+ ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+8. TERMINATION.
+
+ 8.1. This License and the rights granted hereunder will terminate
+ automatically if You fail to comply with terms herein and fail to cure
+ such breach within 30 days of becoming aware of the breach. All
+ sublicenses to the Covered Code which are properly granted shall
+ survive any termination of this License. Provisions which, by their
+ nature, must remain in effect beyond the termination of this License
+ shall survive.
+
+ 8.2. If You initiate litigation by asserting a patent infringement
+ claim (excluding declatory judgment actions) against Initial Developer
+ or a Contributor (the Initial Developer or Contributor against whom
+ You file such action is referred to as "Participant") alleging that:
+
+ (a) such Participant's Contributor Version directly or indirectly
+ infringes any patent, then any and all rights granted by such
+ Participant to You under Sections 2.1 and/or 2.2 of this License
+ shall, upon 60 days notice from Participant terminate prospectively,
+ unless if within 60 days after receipt of notice You either: (i)
+ agree in writing to pay Participant a mutually agreeable reasonable
+ royalty for Your past and future use of Modifications made by such
+ Participant, or (ii) withdraw Your litigation claim with respect to
+ the Contributor Version against such Participant. If within 60 days
+ of notice, a reasonable royalty and payment arrangement are not
+ mutually agreed upon in writing by the parties or the litigation claim
+ is not withdrawn, the rights granted by Participant to You under
+ Sections 2.1 and/or 2.2 automatically terminate at the expiration of
+ the 60 day notice period specified above.
+
+ (b) any software, hardware, or device, other than such Participant's
+ Contributor Version, directly or indirectly infringes any patent, then
+ any rights granted to You by such Participant under Sections 2.1(b)
+ and 2.2(b) are revoked effective as of the date You first made, used,
+ sold, distributed, or had made, Modifications made by that
+ Participant.
+
+ 8.3. If You assert a patent infringement claim against Participant
+ alleging that such Participant's Contributor Version directly or
+ indirectly infringes any patent where such claim is resolved (such as
+ by license or settlement) prior to the initiation of patent
+ infringement litigation, then the reasonable value of the licenses
+ granted by such Participant under Sections 2.1 or 2.2 shall be taken
+ into account in determining the amount or value of any payment or
+ license.
+
+ 8.4. In the event of termination under Sections 8.1 or 8.2 above,
+ all end user license agreements (excluding distributors and resellers)
+ which have been validly granted by You or any distributor hereunder
+ prior to termination shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+ (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+ DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
+ OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
+ ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+ CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
+ WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+ COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+ INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+ LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
+ RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+ PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+ EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
+ THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+ The Covered Code is a "commercial item," as that term is defined in
+ 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
+ software" and "commercial computer software documentation," as such
+ terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
+ C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
+ all U.S. Government End Users acquire Covered Code with only those
+ rights set forth herein.
+
+11. MISCELLANEOUS.
+
+ This License represents the complete agreement concerning subject
+ matter hereof. If any provision of this License is held to be
+ unenforceable, such provision shall be reformed only to the extent
+ necessary to make it enforceable. This License shall be governed by
+ California law provisions (except to the extent applicable law, if
+ any, provides otherwise), excluding its conflict-of-law provisions.
+ With respect to disputes in which at least one party is a citizen of,
+ or an entity chartered or registered to do business in the United
+ States of America, any litigation relating to this License shall be
+ subject to the jurisdiction of the Federal Courts of the Northern
+ District of California, with venue lying in Santa Clara County,
+ California, with the losing party responsible for costs, including
+ without limitation, court costs and reasonable attorneys' fees and
+ expenses. The application of the United Nations Convention on
+ Contracts for the International Sale of Goods is expressly excluded.
+ Any law or regulation which provides that the language of a contract
+ shall be construed against the drafter shall not apply to this
+ License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+ As between Initial Developer and the Contributors, each party is
+ responsible for claims and damages arising, directly or indirectly,
+ out of its utilization of rights under this License and You agree to
+ work with Initial Developer and Contributors to distribute such
+ responsibility on an equitable basis. Nothing herein is intended or
+ shall be deemed to constitute any admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+ Initial Developer may designate portions of the Covered Code as
+ "Multiple-Licensed". "Multiple-Licensed" means that the Initial
+ Developer permits you to utilize portions of the Covered Code under
+ Your choice of the NPL or the alternative licenses, if any, specified
+ by the Initial Developer in the file described in Exhibit A.
+
+EXHIBIT A -Mozilla Public License.
+
+ ``The contents of this file are subject to the Mozilla Public License
+ Version 1.1 (the "License"); you may not use this file except in
+ compliance with the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ License for the specific language governing rights and limitations
+ under the License.
+
+ The Original Code is ______________________________________.
+
+ The Initial Developer of the Original Code is ________________________.
+ Portions created by ______________________ are Copyright (C) ______
+ _______________________. All Rights Reserved.
+
+ Contributor(s): ______________________________________.
+
+ Alternatively, the contents of this file may be used under the terms
+ of the _____ license (the "[___] License"), in which case the
+ provisions of [______] License are applicable instead of those
+ above. If you wish to allow use of your version of this file only
+ under the terms of the [____] License and not to allow others to use
+ your version of this file under the MPL, indicate your decision by
+ deleting the provisions above and replace them with the notice and
+ other provisions required by the [___] License. If you do not delete
+ the provisions above, a recipient may use your version of this file
+ under either the MPL or the [___] License."
+
+ [NOTE: The text of this Exhibit A may differ slightly from the text of
+ the notices in the Source Code files of the Original Code. You should
+ use the text of this Exhibit A rather than the text found in the
+ Original Code Source Code for Your Modifications.]
+```
+
+Appendix D: The MIT License
+---------------------------
+
+```
+The MIT License (MIT)
+
+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.
+```
+
+Appendix E: The SIL Open Font License Version 1.1
+---------------------------------------------
+
+```
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+```
+
+Appendix F: The BSD-3 License
+-----------------------------
+
+```
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+2. 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.
+
+3. Neither the name of the copyright holder 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 HOLDER 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.
+```
+
diff --git a/static/js/ckeditor/build-config.js b/static/js/ckeditor/build-config.js
index e252c59..523cce8 100644
--- a/static/js/ckeditor/build-config.js
+++ b/static/js/ckeditor/build-config.js
@@ -1,54 +1,54 @@
-/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or http://ckeditor.com/license
- */
-
-/**
- * This file was added automatically by CKEditor builder.
- * You may re-use it at any time to build CKEditor again.
- *
- * If you would like to build CKEditor online again
- * (for example to upgrade), visit one the following links:
- *
- * (1) http://ckeditor.com/builder
- * Visit online builder to build CKEditor from scratch.
- *
- * (2) http://ckeditor.com/builder/af2f5595f7b5ba8407b6a502331aeea4
- * Visit online builder to build CKEditor, starting with the same setup as before.
- *
- * (3) http://ckeditor.com/builder/download/af2f5595f7b5ba8407b6a502331aeea4
- * Straight download link to the latest version of CKEditor (Optimized) with the same setup as before.
- *
- * NOTE:
- * This file is not used by CKEditor, you may remove it.
- * Changing this file will not change your CKEditor configuration.
- */
-
-var CKBUILDER_CONFIG = {
- skin: 'icy_orange',
- preset: 'basic',
- ignore: [
- '.bender',
- 'bender.js',
- 'bender-err.log',
- 'bender-out.log',
- 'dev',
- '.DS_Store',
- '.editorconfig',
- '.gitattributes',
- '.gitignore',
- 'gruntfile.js',
- '.idea',
- '.jscsrc',
- '.jshintignore',
- '.jshintrc',
- 'less',
- '.mailmap',
- 'node_modules',
- 'package.json',
- 'README.md',
- 'tests'
- ],
+/**
+ * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+/**
+ * This file was added automatically by CKEditor builder.
+ * You may re-use it at any time to build CKEditor again.
+ *
+ * If you would like to build CKEditor online again
+ * (for example to upgrade), visit one the following links:
+ *
+ * (1) http://ckeditor.com/builder
+ * Visit online builder to build CKEditor from scratch.
+ *
+ * (2) http://ckeditor.com/builder/af2f5595f7b5ba8407b6a502331aeea4
+ * Visit online builder to build CKEditor, starting with the same setup as before.
+ *
+ * (3) http://ckeditor.com/builder/download/af2f5595f7b5ba8407b6a502331aeea4
+ * Straight download link to the latest version of CKEditor (Optimized) with the same setup as before.
+ *
+ * NOTE:
+ * This file is not used by CKEditor, you may remove it.
+ * Changing this file will not change your CKEditor configuration.
+ */
+
+var CKBUILDER_CONFIG = {
+ skin: 'icy_orange',
+ preset: 'basic',
+ ignore: [
+ '.bender',
+ 'bender.js',
+ 'bender-err.log',
+ 'bender-out.log',
+ 'dev',
+ '.DS_Store',
+ '.editorconfig',
+ '.gitattributes',
+ '.gitignore',
+ 'gruntfile.js',
+ '.idea',
+ '.jscsrc',
+ '.jshintignore',
+ '.jshintrc',
+ 'less',
+ '.mailmap',
+ 'node_modules',
+ 'package.json',
+ 'README.md',
+ 'tests'
+ ],
plugins : {
'about' : 1,
'basicstyles' : 1,
diff --git a/static/js/ckeditor/contents.css b/static/js/ckeditor/contents.css
index 286ba3c..b483da7 100644
--- a/static/js/ckeditor/contents.css
+++ b/static/js/ckeditor/contents.css
@@ -1,208 +1,208 @@
-/*
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.md or http://ckeditor.com/license
-*/
-
-body
-{
- /* Font */
- font-family: sans-serif, Arial, Verdana, "Trebuchet MS";
- font-size: 12px;
-
- /* Text color */
- color: #333;
-
- /* Remove the background color to make it transparent */
- background-color: #fff;
-
- margin: 20px;
-}
-
-.cke_editable
-{
- font-size: 13px;
- line-height: 1.6;
-
- /* Fix for missing scrollbars with RTL texts. (#10488) */
- word-wrap: break-word;
-}
-
-blockquote
-{
- font-style: italic;
- font-family: Georgia, Times, "Times New Roman", serif;
- padding: 2px 0;
- border-style: solid;
- border-color: #ccc;
- border-width: 0;
-}
-
-.cke_contents_ltr blockquote
-{
- padding-left: 20px;
- padding-right: 8px;
- border-left-width: 5px;
-}
-
-.cke_contents_rtl blockquote
-{
- padding-left: 8px;
- padding-right: 20px;
- border-right-width: 5px;
-}
-
-a
-{
- color: #0782C1;
-}
-
-ol,ul,dl
-{
- /* IE7: reset rtl list margin. (#7334) */
- *margin-right: 0px;
- /* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/
- padding: 0 40px;
-}
-
-h1,h2,h3,h4,h5,h6
-{
- font-weight: normal;
- line-height: 1.2;
-}
-
-hr
-{
- border: 0px;
- border-top: 1px solid #ccc;
-}
-
-img.right
-{
- border: 1px solid #ccc;
- float: right;
- margin-left: 15px;
- padding: 5px;
-}
-
-img.left
-{
- border: 1px solid #ccc;
- float: left;
- margin-right: 15px;
- padding: 5px;
-}
-
-pre
-{
- white-space: pre-wrap; /* CSS 2.1 */
- word-wrap: break-word; /* IE7 */
- -moz-tab-size: 4;
- tab-size: 4;
-}
-
-.marker
-{
- background-color: Yellow;
-}
-
-span[lang]
-{
- font-style: italic;
-}
-
-figure
-{
- text-align: center;
- border: solid 1px #ccc;
- border-radius: 2px;
- background: rgba(0,0,0,0.05);
- padding: 10px;
- margin: 10px 20px;
- display: inline-block;
-}
-
-figure > figcaption
-{
- text-align: center;
- display: block; /* For IE8 */
-}
-
-a > img {
- padding: 1px;
- margin: 1px;
- border: none;
- outline: 1px solid #0782C1;
-}
-
-/* Widget Styles */
-.code-featured
-{
- border: 5px solid red;
-}
-
-.math-featured
-{
- padding: 20px;
- box-shadow: 0 0 2px rgba(200, 0, 0, 1);
- background-color: rgba(255, 0, 0, 0.05);
- margin: 10px;
-}
-
-.image-clean
-{
- border: 0;
- background: none;
- padding: 0;
-}
-
-.image-clean > figcaption
-{
- font-size: .9em;
- text-align: right;
-}
-
-.image-grayscale
-{
- background-color: white;
- color: #666;
-}
-
-.image-grayscale img, img.image-grayscale
-{
- filter: grayscale(100%);
-}
-
-.embed-240p
-{
- max-width: 426px;
- max-height: 240px;
- margin:0 auto;
-}
-
-.embed-360p
-{
- max-width: 640px;
- max-height: 360px;
- margin:0 auto;
-}
-
-.embed-480p
-{
- max-width: 854px;
- max-height: 480px;
- margin:0 auto;
-}
-
-.embed-720p
-{
- max-width: 1280px;
- max-height: 720px;
- margin:0 auto;
-}
-
-.embed-1080p
-{
- max-width: 1920px;
- max-height: 1080px;
- margin:0 auto;
-}
+/*
+Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+
+body
+{
+ /* Font */
+ font-family: sans-serif, Arial, Verdana, "Trebuchet MS";
+ font-size: 12px;
+
+ /* Text color */
+ color: #333;
+
+ /* Remove the background color to make it transparent */
+ background-color: #fff;
+
+ margin: 20px;
+}
+
+.cke_editable
+{
+ font-size: 13px;
+ line-height: 1.6;
+
+ /* Fix for missing scrollbars with RTL texts. (#10488) */
+ word-wrap: break-word;
+}
+
+blockquote
+{
+ font-style: italic;
+ font-family: Georgia, Times, "Times New Roman", serif;
+ padding: 2px 0;
+ border-style: solid;
+ border-color: #ccc;
+ border-width: 0;
+}
+
+.cke_contents_ltr blockquote
+{
+ padding-left: 20px;
+ padding-right: 8px;
+ border-left-width: 5px;
+}
+
+.cke_contents_rtl blockquote
+{
+ padding-left: 8px;
+ padding-right: 20px;
+ border-right-width: 5px;
+}
+
+a
+{
+ color: #0782C1;
+}
+
+ol,ul,dl
+{
+ /* IE7: reset rtl list margin. (#7334) */
+ *margin-right: 0px;
+ /* preserved spaces for list items with text direction other than the list. (#6249,#8049)*/
+ padding: 0 40px;
+}
+
+h1,h2,h3,h4,h5,h6
+{
+ font-weight: normal;
+ line-height: 1.2;
+}
+
+hr
+{
+ border: 0px;
+ border-top: 1px solid #ccc;
+}
+
+img.right
+{
+ border: 1px solid #ccc;
+ float: right;
+ margin-left: 15px;
+ padding: 5px;
+}
+
+img.left
+{
+ border: 1px solid #ccc;
+ float: left;
+ margin-right: 15px;
+ padding: 5px;
+}
+
+pre
+{
+ white-space: pre-wrap; /* CSS 2.1 */
+ word-wrap: break-word; /* IE7 */
+ -moz-tab-size: 4;
+ tab-size: 4;
+}
+
+.marker
+{
+ background-color: Yellow;
+}
+
+span[lang]
+{
+ font-style: italic;
+}
+
+figure
+{
+ text-align: center;
+ border: solid 1px #ccc;
+ border-radius: 2px;
+ background: rgba(0,0,0,0.05);
+ padding: 10px;
+ margin: 10px 20px;
+ display: inline-block;
+}
+
+figure > figcaption
+{
+ text-align: center;
+ display: block; /* For IE8 */
+}
+
+a > img {
+ padding: 1px;
+ margin: 1px;
+ border: none;
+ outline: 1px solid #0782C1;
+}
+
+/* Widget Styles */
+.code-featured
+{
+ border: 5px solid red;
+}
+
+.math-featured
+{
+ padding: 20px;
+ box-shadow: 0 0 2px rgba(200, 0, 0, 1);
+ background-color: rgba(255, 0, 0, 0.05);
+ margin: 10px;
+}
+
+.image-clean
+{
+ border: 0;
+ background: none;
+ padding: 0;
+}
+
+.image-clean > figcaption
+{
+ font-size: .9em;
+ text-align: right;
+}
+
+.image-grayscale
+{
+ background-color: white;
+ color: #666;
+}
+
+.image-grayscale img, img.image-grayscale
+{
+ filter: grayscale(100%);
+}
+
+.embed-240p
+{
+ max-width: 426px;
+ max-height: 240px;
+ margin:0 auto;
+}
+
+.embed-360p
+{
+ max-width: 640px;
+ max-height: 360px;
+ margin:0 auto;
+}
+
+.embed-480p
+{
+ max-width: 854px;
+ max-height: 480px;
+ margin:0 auto;
+}
+
+.embed-720p
+{
+ max-width: 1280px;
+ max-height: 720px;
+ margin:0 auto;
+}
+
+.embed-1080p
+{
+ max-width: 1920px;
+ max-height: 1080px;
+ margin:0 auto;
+}
diff --git a/static/js/ckeditor/lang/en.js b/static/js/ckeditor/lang/en.js
index f9173a0..a2635f9 100644
--- a/static/js/ckeditor/lang/en.js
+++ b/static/js/ckeditor/lang/en.js
@@ -1,5 +1,5 @@
-/*
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.md or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.lang['en']={"editor":"Rich Text Editor","editorPanel":"Rich Text Editor panel","common":{"editorHelp":"Press ALT 0 for help","browseServer":"Browse Server","url":"URL","protocol":"Protocol","upload":"Upload","uploadSubmit":"Send it to the Server","image":"Image","flash":"Flash","form":"Form","checkbox":"Checkbox","radio":"Radio Button","textField":"Text Field","textarea":"Textarea","hiddenField":"Hidden Field","button":"Button","select":"Selection Field","imageButton":"Image Button","notSet":"","id":"Id","name":"Name","langDir":"Language Direction","langDirLtr":"Left to Right (LTR)","langDirRtl":"Right to Left (RTL)","langCode":"Language Code","longDescr":"Long Description URL","cssClass":"Stylesheet Classes","advisoryTitle":"Advisory Title","cssStyle":"Style","ok":"OK","cancel":"Cancel","close":"Close","preview":"Preview","resize":"Resize","generalTab":"General","advancedTab":"Advanced","validateNumberFailed":"This value is not a number.","confirmNewPage":"Any unsaved changes to this content will be lost. Are you sure you want to load new page?","confirmCancel":"You have changed some options. Are you sure you want to close the dialog window?","options":"Options","target":"Target","targetNew":"New Window (_blank)","targetTop":"Topmost Window (_top)","targetSelf":"Same Window (_self)","targetParent":"Parent Window (_parent)","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","styles":"Style","cssClasses":"Stylesheet Classes","width":"Width","height":"Height","align":"Alignment","alignLeft":"Left","alignRight":"Right","alignCenter":"Center","alignJustify":"Justify","alignTop":"Top","alignMiddle":"Middle","alignBottom":"Bottom","alignNone":"None","invalidValue":"Invalid value.","invalidHeight":"Height must be a number.","invalidWidth":"Width must be a number.","invalidCssLength":"Value specified for the \"%1\" field must be a positive number with or without a valid CSS measurement unit (px, %, in, cm, mm, em, ex, pt, or pc).","invalidHtmlLength":"Value specified for the \"%1\" field must be a positive number with or without a valid HTML measurement unit (px or %).","invalidInlineStyle":"Value specified for the inline style must consist of one or more tuples with the format of \"name : value\", separated by semi-colons.","cssLengthTooltip":"Enter a number for a value in pixels or a number with a valid CSS unit (px, %, in, cm, mm, em, ex, pt, or pc).","unavailable":"%1, unavailable ","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright © $1. All rights reserved.","dlgTitle":"About CKEditor","help":"Check $1 for help.","moreInfo":"For licensing information please visit our web site:","title":"About CKEditor","userGuide":"CKEditor User's Guide"},"basicstyles":{"bold":"Bold","italic":"Italic","strike":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"Underline"},"clipboard":{"copy":"Copy","copyError":"Your browser security settings don't permit the editor to automatically execute copying operations. Please use the keyboard for that (Ctrl/Cmd+C).","cut":"Cut","cutError":"Your browser security settings don't permit the editor to automatically execute cutting operations. Please use the keyboard for that (Ctrl/Cmd+X).","paste":"Paste","pasteArea":"Paste Area","pasteMsg":"Please paste inside the following box using the keyboard (Ctrl/Cmd+V ) and hit OK","securityMsg":"Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.","title":"Paste"},"button":{"selectedLabel":"%1 (Selected)"},"toolbar":{"toolbarCollapse":"Collapse Toolbar","toolbarExpand":"Expand Toolbar","toolbarGroups":{"document":"Document","clipboard":"Clipboard/Undo","editing":"Editing","forms":"Forms","basicstyles":"Basic Styles","paragraph":"Paragraph","links":"Links","insert":"Insert","styles":"Styles","colors":"Colors","tools":"Tools"},"toolbars":"Editor toolbars"},"indent":{"indent":"Increase Indent","outdent":"Decrease Indent"},"fakeobjects":{"anchor":"Anchor","flash":"Flash Animation","hiddenfield":"Hidden Field","iframe":"IFrame","unknown":"Unknown Object"},"link":{"acccessKey":"Access Key","advanced":"Advanced","advisoryContentType":"Advisory Content Type","advisoryTitle":"Advisory Title","anchor":{"toolbar":"Anchor","menu":"Edit Anchor","title":"Anchor Properties","name":"Anchor Name","errorName":"Please type the anchor name","remove":"Remove Anchor"},"anchorId":"By Element Id","anchorName":"By Anchor Name","charset":"Linked Resource Charset","cssClasses":"Stylesheet Classes","download":"Force Download","displayText":"Display Text","emailAddress":"E-Mail Address","emailBody":"Message Body","emailSubject":"Message Subject","id":"Id","info":"Link Info","langCode":"Language Code","langDir":"Language Direction","langDirLTR":"Left to Right (LTR)","langDirRTL":"Right to Left (RTL)","menu":"Edit Link","name":"Name","noAnchors":"(No anchors available in the document)","noEmail":"Please type the e-mail address","noUrl":"Please type the link URL","other":"","popupDependent":"Dependent (Netscape)","popupFeatures":"Popup Window Features","popupFullScreen":"Full Screen (IE)","popupLeft":"Left Position","popupLocationBar":"Location Bar","popupMenuBar":"Menu Bar","popupResizable":"Resizable","popupScrollBars":"Scroll Bars","popupStatusBar":"Status Bar","popupToolbar":"Toolbar","popupTop":"Top Position","rel":"Relationship","selectAnchor":"Select an Anchor","styles":"Style","tabIndex":"Tab Index","target":"Target","targetFrame":" ","targetFrameName":"Target Frame Name","targetPopup":"","targetPopupName":"Popup Window Name","title":"Link","toAnchor":"Link to anchor in the text","toEmail":"E-mail","toUrl":"URL","toolbar":"Link","type":"Link Type","unlink":"Unlink","upload":"Upload"},"list":{"bulletedlist":"Insert/Remove Bulleted List","numberedlist":"Insert/Remove Numbered List"},"undo":{"redo":"Redo","undo":"Undo"}};
\ No newline at end of file
diff --git a/static/js/ckeditor/lang/ru.js b/static/js/ckeditor/lang/ru.js
index c478dc5..e2f9ecb 100644
--- a/static/js/ckeditor/lang/ru.js
+++ b/static/js/ckeditor/lang/ru.js
@@ -1,5 +1,5 @@
-/*
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.md or http://ckeditor.com/license
+/*
+Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
*/
CKEDITOR.lang['ru']={"editor":"Визуальный текстовый редактор","editorPanel":"Визуальный редактор текста","common":{"editorHelp":"Нажмите ALT-0 для открытия справки","browseServer":"Выбор на сервере","url":"Ссылка","protocol":"Протокол","upload":"Загрузка файла","uploadSubmit":"Загрузить на сервер","image":"Изображение","flash":"Flash","form":"Форма","checkbox":"Чекбокс","radio":"Радиокнопка","textField":"Текстовое поле","textarea":"Многострочное текстовое поле","hiddenField":"Скрытое поле","button":"Кнопка","select":"Выпадающий список","imageButton":"Кнопка-изображение","notSet":"<не указано>","id":"Идентификатор","name":"Имя","langDir":"Направление текста","langDirLtr":"Слева направо (LTR)","langDirRtl":"Справа налево (RTL)","langCode":"Код языка","longDescr":"Длинное описание ссылки","cssClass":"Класс CSS","advisoryTitle":"Заголовок","cssStyle":"Стиль","ok":"ОК","cancel":"Отмена","close":"Закрыть","preview":"Предпросмотр","resize":"Перетащите для изменения размера","generalTab":"Основное","advancedTab":"Дополнительно","validateNumberFailed":"Это значение не является числом.","confirmNewPage":"Несохранённые изменения будут потеряны! Вы действительно желаете перейти на другую страницу?","confirmCancel":"Некоторые параметры были изменены. Вы уверены, что желаете закрыть без сохранения?","options":"Параметры","target":"Цель","targetNew":"Новое окно (_blank)","targetTop":"Главное окно (_top)","targetSelf":"Текущее окно (_self)","targetParent":"Родительское окно (_parent)","langDirLTR":"Слева направо (LTR)","langDirRTL":"Справа налево (RTL)","styles":"Стиль","cssClasses":"CSS классы","width":"Ширина","height":"Высота","align":"Выравнивание","alignLeft":"По левому краю","alignRight":"По правому краю","alignCenter":"По центру","alignJustify":"По ширине","alignTop":"Поверху","alignMiddle":"Посередине","alignBottom":"Понизу","alignNone":"Нет","invalidValue":"Недопустимое значение.","invalidHeight":"Высота задается числом.","invalidWidth":"Ширина задается числом.","invalidCssLength":"Значение, указанное в поле \"%1\", должно быть положительным целым числом. Допускается указание единиц меры CSS (px, %, in, cm, mm, em, ex, pt или pc).","invalidHtmlLength":"Значение, указанное в поле \"%1\", должно быть положительным целым числом. Допускается указание единиц меры HTML (px или %).","invalidInlineStyle":"Значение, указанное для стиля элемента, должно состоять из одной или нескольких пар данных в формате \"параметр : значение\", разделённых точкой с запятой.","cssLengthTooltip":"Введите значение в пикселях, либо число с корректной единицей меры CSS (px, %, in, cm, mm, em, ex, pt или pc).","unavailable":"%1, недоступно ","keyboard":{"8":"Backspace","13":"Enter","16":"Shift","17":"Ctrl","18":"Alt","32":"Space","35":"End","36":"Home","46":"Delete","224":"Command"},"keyboardShortcut":"Keyboard shortcut"},"about":{"copy":"Copyright © $1. Все права защищены.","dlgTitle":"О CKEditor","help":"$1 содержит подробную справку по использованию.","moreInfo":"Для получения информации о лицензии, пожалуйста, перейдите на наш сайт:","title":"О CKEditor","userGuide":"Руководство пользователя CKEditor"},"basicstyles":{"bold":"Полужирный","italic":"Курсив","strike":"Зачеркнутый","subscript":"Подстрочный индекс","superscript":"Надстрочный индекс","underline":"Подчеркнутый"},"clipboard":{"copy":"Копировать","copyError":"Настройки безопасности вашего браузера не разрешают редактору выполнять операции по копированию текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+C).","cut":"Вырезать","cutError":"Настройки безопасности вашего браузера не разрешают редактору выполнять операции по вырезке текста. Пожалуйста, используйте для этого клавиатуру (Ctrl/Cmd+X).","paste":"Вставить","pasteArea":"Зона для вставки","pasteMsg":"Пожалуйста, вставьте текст в зону ниже, используя клавиатуру (Ctrl/Cmd+V ) и нажмите кнопку \"OK\".","securityMsg":"Настройки безопасности вашего браузера не разрешают редактору напрямую обращаться к буферу обмена. Вы должны вставить текст снова в это окно.","title":"Вставить"},"button":{"selectedLabel":"%1 (Выбрано)"},"toolbar":{"toolbarCollapse":"Свернуть панель инструментов","toolbarExpand":"Развернуть панель инструментов","toolbarGroups":{"document":"Документ","clipboard":"Буфер обмена / Отмена действий","editing":"Корректировка","forms":"Формы","basicstyles":"Простые стили","paragraph":"Абзац","links":"Ссылки","insert":"Вставка","styles":"Стили","colors":"Цвета","tools":"Инструменты"},"toolbars":"Панели инструментов редактора"},"indent":{"indent":"Увеличить отступ","outdent":"Уменьшить отступ"},"fakeobjects":{"anchor":"Якорь","flash":"Flash анимация","hiddenfield":"Скрытое поле","iframe":"iFrame","unknown":"Неизвестный объект"},"link":{"acccessKey":"Клавиша доступа","advanced":"Дополнительно","advisoryContentType":"Тип содержимого","advisoryTitle":"Заголовок","anchor":{"toolbar":"Вставить / редактировать якорь","menu":"Изменить якорь","title":"Свойства якоря","name":"Имя якоря","errorName":"Пожалуйста, введите имя якоря","remove":"Удалить якорь"},"anchorId":"По идентификатору","anchorName":"По имени","charset":"Кодировка ресурса","cssClasses":"Классы CSS","download":"Force Download","displayText":"Отображаемый текст","emailAddress":"Email адрес","emailBody":"Текст сообщения","emailSubject":"Тема сообщения","id":"Идентификатор","info":"Информация о ссылке","langCode":"Код языка","langDir":"Направление текста","langDirLTR":"Слева направо (LTR)","langDirRTL":"Справа налево (RTL)","menu":"Редактировать ссылку","name":"Имя","noAnchors":"(В документе нет ни одного якоря)","noEmail":"Пожалуйста, введите email адрес","noUrl":"Пожалуйста, введите ссылку","other":"<другой>","popupDependent":"Зависимое (Netscape)","popupFeatures":"Параметры всплывающего окна","popupFullScreen":"Полноэкранное (IE)","popupLeft":"Отступ слева","popupLocationBar":"Панель адреса","popupMenuBar":"Панель меню","popupResizable":"Изменяемый размер","popupScrollBars":"Полосы прокрутки","popupStatusBar":"Строка состояния","popupToolbar":"Панель инструментов","popupTop":"Отступ сверху","rel":"Отношение","selectAnchor":"Выберите якорь","styles":"Стиль","tabIndex":"Последовательность перехода","target":"Цель","targetFrame":"<фрейм>","targetFrameName":"Имя целевого фрейма","targetPopup":"<всплывающее окно>","targetPopupName":"Имя всплывающего окна","title":"Ссылка","toAnchor":"Ссылка на якорь в тексте","toEmail":"Email","toUrl":"Ссылка","toolbar":"Вставить/Редактировать ссылку","type":"Тип ссылки","unlink":"Убрать ссылку","upload":"Загрузка"},"list":{"bulletedlist":"Вставить / удалить маркированный список","numberedlist":"Вставить / удалить нумерованный список"},"undo":{"redo":"Повторить","undo":"Отменить"}};
\ No newline at end of file
diff --git a/static/js/ckeditor/samples/css/samples.css b/static/js/ckeditor/samples/css/samples.css
index ba48f6a..2ff35c0 100644
--- a/static/js/ckeditor/samples/css/samples.css
+++ b/static/js/ckeditor/samples/css/samples.css
@@ -1,1632 +1,1632 @@
-/**
- * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or http://ckeditor.com/license
- */
-@media (max-width: 900px) {
- .global-is-mobile-hidden {
- display: none !important;
- }
-}
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-menu,
-nav,
-section {
- display: block;
-}
-body,
-html {
- margin: 0;
- padding: 0;
- font: 16px / 1.8 Arial, 'Helvetica Neue', Helvetica, sans-serif;
- font-weight: 300;
- color: #575757;
-}
-.grid-width-10 {
- width: 10%;
-}
-.grid-width-20 {
- width: 20%;
-}
-.grid-width-30 {
- width: 30%;
-}
-.grid-width-40 {
- width: 40%;
-}
-.grid-width-50 {
- width: 50%;
-}
-.grid-width-60 {
- width: 60%;
-}
-.grid-width-70 {
- width: 70%;
-}
-.grid-width-80 {
- width: 80%;
-}
-.grid-width-90 {
- width: 90%;
-}
-.grid-width-100 {
- width: 100%;
-}
-@media (max-width: 900px) {
- .grid-width-10,
- .grid-width-20,
- .grid-width-30,
- .grid-width-40,
- .grid-width-50,
- .grid-width-60,
- .grid-width-70,
- .grid-width-80,
- .grid-width-90,
- .grid-width-100 {
- width: 100%;
- }
-}
-*[class*="grid-width"] {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- padding-left: 4%;
- padding-right: 4%;
- float: left;
-}
-*[class*="grid-width"]:after,
-.grid-container:after,
-*[class*="grid-width"]:before,
-.grid-container:before {
- content: '';
- display: block;
- overflow: hidden;
- visibility: hidden;
- font-size: 0;
- line-height: 0;
- width: 0;
- height: 0;
-}
-*[class*="grid-width"]:after,
-.grid-container:after {
- clear: both;
-}
-.grid-container {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- margin-left: auto;
- margin-right: auto;
-}
-.grid-container-nested *[class*="grid-width"]:first-child {
- padding-left: 0;
-}
-.grid-container-nested *[class*="grid-width"]:last-child {
- padding-right: 0;
-}
-@media (max-width: 900px) {
- .grid-container-nested *[class*="grid-width"]:first-child {
- padding-left: 4%;
- }
- .grid-container-nested *[class*="grid-width"]:last-child {
- padding-right: 4%;
- }
-}
-.header-a {
- min-height: 140px;
- overflow: hidden;
-}
-.header-a .header-a-logo {
- margin: 40px 0 0;
-}
-@media (max-width: 900px) {
- .header-a .header-a-logo {
- text-align: center;
- }
-}
-.header-a .header-a-logo img {
- border: transparent;
-}
-.navigation-a {
- height: 30px;
- background: #3D3D3D;
- position: absolute;
- left: 0;
- right: 0;
- top: 0;
- padding: 0;
- overflow: hidden;
-}
-@media (max-width: 900px) {
- .navigation-a {
- text-align: center;
- }
-}
-.navigation-a ul {
- list-style: none;
- margin: 0;
- overflow: hidden;
-}
-.navigation-a ul li,
-.navigation-a ul li a {
- display: inline-block;
-}
-@media (max-width: 900px) {
- .navigation-a ul {
- width: auto;
- text-overflow: ellipsis;
- white-space: nowrap;
- display: inline-block;
- float: none;
- }
- .navigation-a ul:before,
- .navigation-a ul:after {
- display: none;
- }
-}
-.navigation-a ul.navigation-a-left {
- text-align: left;
-}
-@media (max-width: 900px) {
- .navigation-a ul.navigation-a-left {
- padding-right: 0;
- }
-}
-.navigation-a ul.navigation-a-right {
- text-align: right;
-}
-@media (max-width: 900px) {
- .navigation-a ul.navigation-a-right {
- padding-left: 23px;
- }
-}
-.navigation-a ul li + li {
- margin-left: 23px;
-}
-.navigation-a ul li a {
- font-size: 10px;
- font-size: 0.625rem;
- line-height: 18px;
- line-height: 1.13rem;
- line-height: 30px;
- float: left;
- color: #ddd;
- font-weight: bold;
- text-decoration: none;
- text-transform: uppercase;
-}
-.navigation-a ul li a:hover {
- cursor: pointer;
- color: #fff;
-}
-.icon-navigation-a-github:before,
-.icon-navigation-a-github:after {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAAXNSR0IArs4c6QAAAa9JREFUOBGNlM8rRGEUht0pDGosjKYZpUSIkuwsiCaxUEqK2VOUBcrWv2BjxUJho6wsLLDzY2fhD5iR5NeOcJvIjOfM3O927m3mmlPPnPec835nZprvjlVVJvL5fCOjMWiDCLzCLVxZlpUj/x8saYV9+IZS8UJzFWoCt2GYgk+oJG4wJUouZDANv5VsUZ47dNSzkEYHfIDEHixDWgoiB/rTHlPPwBNInPmXHRb7hdeUDFG10AN1Th1Fd5mD6BMwMVnoUyVA3t3EkjkQlDFfmwPkc7NsQTXf0bGgJWaGb16dk18+EmLYawzkC+6Q3KdK4kiZqtGdskx/kmdlCJS86RuGrDLFZJmtGi1KB0q+VhOGsDLZsiyjGsOY4qoOkrO+YUauwCDoOKWo9xk9JfM+MPdSzqZdA8UlyDO3AvKLPsIG9LsmBHUKduEHdCy6PrpJZyKXdwKMOemaissOHJ9O9xTeh57GluMYIsehWy8STW/d8ZhkI0b9PjFasA1fsAOb0KCN1PLXYyKLGNdzj2YYArnZDyDRrA3Ua4UuDzd5QM/KaoxhmAO5Om5Qt8OI2/CJP6MVa1dvltQ5AAAAAElFTkSuQmCC");
-}
-.navigation-b {
- text-align: right;
- margin: 52px 0 0;
- overflow: visible;
-}
-@media (max-width: 900px) {
- .navigation-b {
- text-align: center;
- margin-top: 20px;
- padding: 0;
- }
-}
-.navigation-b ul {
- padding: 0;
- list-style: none;
- margin: 0;
- overflow: visible;
-}
-.navigation-b ul li,
-.navigation-b ul li a {
- display: inline-block;
-}
-@media (max-width: 900px) {
- .navigation-b ul {
- display: table;
- width: 100%;
- padding-bottom: 1.5em;
- }
-}
-@media (max-width: 900px) {
- .navigation-b ul li {
- display: table-row;
- }
-}
-.navigation-b ul li + li {
- margin-left: 20px;
-}
-@media (max-width: 900px) {
- .navigation-b ul li + li {
- margin-left: 0;
- }
-}
-.navigation-b ul li a {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- text-transform: uppercase;
- text-decoration: none;
- outline: none;
-}
-@media (max-width: 900px) {
- .navigation-b ul li a {
- width: 100%;
- -webkit-border-radius: 0;
- -webkit-background-clip: padding-box;
- -moz-border-radius: 0;
- -moz-background-clip: padding;
- border-radius: 0;
- background-clip: padding-box;
- }
-}
-.footer-a {
- font-size: 13px;
- font-size: 0.8125rem;
- line-height: 23.4px;
- line-height: 1.46rem;
- padding-top: 2.25em;
- padding-bottom: 2.25em;
- overflow: hidden;
- color: #8a8a8a;
-}
-.footer-a a {
- color: #27C0D8;
- text-decoration: none;
- border-bottom: 1px dotted #27C0D8;
-}
-.footer-a a:hover {
- color: #23adc2;
-}
-.footer-a p {
- margin: 0;
- display: inline-block;
- text-align: center;
-}
-.content {
- font-size: 14px;
- font-size: 0.875rem;
- line-height: 25.2px;
- line-height: 1.57rem;
- overflow: hidden;
- padding-top: 1.5em;
- padding-bottom: 1.5em;
-}
-.content p {
- margin: 0.75em 0;
-}
-.content ul,
-.content ol,
-.content pre,
-.content blockquote,
-.content textarea:not([class^="cke"]),
-.content .cke {
- margin: 1.875em 0;
-}
-.content code,
-.content kbd {
- -webkit-border-radius: 3px;
- -webkit-background-clip: padding-box;
- -moz-border-radius: 3px;
- -moz-background-clip: padding;
- border-radius: 3px;
- background-clip: padding-box;
- padding: 3px 4px;
-}
-.content pre,
-.content code,
-.content kbd,
-.content blockquote {
- background: #f5f5f5;
-}
-.content blockquote,
-.content pre {
- background: none;
- border-left: 4px solid #27C0D8;
- padding: 1.5em 2.25em;
-}
-.content p a,
-.content ul a,
-.content ol a,
-.content blockquote a,
-.content h1 a,
-.content h2 a,
-.content h3 a,
-.content h4 a,
-.content h5 a {
- color: #27C0D8;
- text-decoration: none;
- border-bottom: 1px dotted #27C0D8;
-}
-.content p a:hover,
-.content ul a:hover,
-.content ol a:hover,
-.content blockquote a:hover,
-.content h1 a:hover,
-.content h2 a:hover,
-.content h3 a:hover,
-.content h4 a:hover,
-.content h5 a:hover {
- color: #23adc2;
-}
-.content h1,
-.content h2,
-.content h3,
-.content h4,
-.content h5 {
- color: #000;
- font-weight: 100;
-}
-.content h1 code,
-.content h2 code,
-.content h3 code,
-.content h4 code,
-.content h5 code,
-.content h1 kbd,
-.content h2 kbd,
-.content h3 kbd,
-.content h4 kbd,
-.content h5 kbd {
- font-size: inherit;
-}
-.content h1 a.content-heading-anchor,
-.content h2 a.content-heading-anchor,
-.content h3 a.content-heading-anchor,
-.content h4 a.content-heading-anchor,
-.content h5 a.content-heading-anchor {
- font-weight: 100;
- vertical-align: middle;
- opacity: 0;
- border: 0;
-}
-.content h1:hover a.content-heading-anchor,
-.content h2:hover a.content-heading-anchor,
-.content h3:hover a.content-heading-anchor,
-.content h4:hover a.content-heading-anchor,
-.content h5:hover a.content-heading-anchor {
- opacity: 1;
-}
-.content h1:target a,
-.content h2:target a,
-.content h3:target a,
-.content h4:target a,
-.content h5:target a {
- -webkit-animation: targetLinkOpacity 0.5s linear alternate;
- -moz-animation: targetLinkOpacity 0.5s linear alternate;
- -o-animation: targetLinkOpacity 0.5s linear alternate;
- animation: targetLinkOpacity 0.5s linear alternate;
- opacity: 1;
-}
-.content input,
-.content select,
-.content textarea:not([class^="cke"]) {
- -webkit-border-radius: 3px;
- -webkit-background-clip: padding-box;
- -moz-border-radius: 3px;
- -moz-background-clip: padding;
- border-radius: 3px;
- background-clip: padding-box;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08);
- -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08);
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08);
- font: inherit;
- color: inherit;
- border: 1px solid #D9D9D9;
- padding: .2em .5em;
-}
-.content input:focus,
-.content select:focus,
-.content textarea:not([class^="cke"]):focus {
- border-color: #66afe9;
- outline: 0;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08), 0 0 8px #93c6ef;
- -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08), 0 0 8px #93c6ef;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08), 0 0 8px #93c6ef;
-}
-.content abbr {
- border-bottom: 1px dotted #666;
- cursor: pointer;
-}
-.content blockquote {
- font-style: italic;
- font-family: Georgia, Times, "Times New Roman", serif;
- font-size: 16px;
- font-size: 1rem;
- line-height: 28.8px;
- line-height: 1.8rem;
-}
-.content em {
- font-style: italic;
-}
-.content h1 {
- font-size: 36px;
- font-size: 2.25rem;
- line-height: 64.8px;
- line-height: 4.05rem;
- margin: 1.125em 0 0;
-}
-.content h2 {
- font-size: 27.2px;
- font-size: 1.7rem;
- line-height: 48.96px;
- line-height: 3.06rem;
- margin: 0.9em 0 0;
-}
-.content h3 {
- font-size: 24px;
- font-size: 1.5rem;
- line-height: 43.2px;
- line-height: 2.7rem;
- font-weight: 500;
- margin: 0.75em 0 0;
-}
-.content h4 {
- font-size: 19.2px;
- font-size: 1.2rem;
- line-height: 34.56px;
- line-height: 2.16rem;
- font-weight: 500;
- margin: 0.75em 0 0;
-}
-.content h5 {
- font-size: 17.6px;
- font-size: 1.1rem;
- line-height: 31.68px;
- line-height: 1.98rem;
- font-weight: 500;
- margin: 0.75em 0 0;
-}
-.content hr {
- border: 0;
- border-top: 4px solid #D9D9D9;
- margin: 1.5em 0;
-}
-.content input[type="text"] {
- height: 1.8em;
- line-height: 1.8em;
-}
-.content input[type="button"] {
- -webkit-appearance: button;
- -moz-appearance: button;
- appearance: button;
-}
-.content kbd {
- font-size: 12px;
- font-size: 0.75rem;
- line-height: 21.6px;
- line-height: 1.35rem;
- font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
- padding: 2px 6px;
- -webkit-box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;
- -moz-box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;
- box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;
-}
-.content p img {
- vertical-align: middle;
-}
-.content p pre {
- padding: 1.5em;
-}
-.content pre {
- padding: 0;
- border: 0;
- tab-size: 4;
- -o-tab-size: 4;
- -moz-tab-size: 4;
-}
-.content pre,
-.content code {
- font-size: 11.89px;
- font-size: 0.743rem;
- line-height: 21.4px;
- line-height: 1.34rem;
- font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
-}
-.content pre a,
-.content code a {
- border: 0;
-}
-.content pre code {
- padding: 0.75em;
- display: block;
-}
-.content strong {
- color: #000;
-}
-.content ul ul,
-.content ol ul,
-.content ul ol,
-.content ol ol {
- margin: 0.75em 0;
-}
-.content ul li,
-.content ol li {
- font-size: 14px;
- font-size: 0.875rem;
- line-height: 30.24px;
- line-height: 1.89rem;
-}
-.content textarea:not([class^="cke"]) {
- width: 100%;
-}
-.content div.todo {
- border: 2px dotted #444;
- padding: 10px;
- margin: 60px 0 10px 0;
- /* Remove me some day */
-}
-.content div.todo:before {
- content: "TODO";
- font-weight: bold;
-}
-body a.button-a,
-body button.button-a,
-body input.button-a {
- -webkit-border-radius: 3px;
- -webkit-background-clip: padding-box;
- -moz-border-radius: 3px;
- -moz-background-clip: padding;
- border-radius: 3px;
- background-clip: padding-box;
- font-size: 14px;
- font-size: 0.875rem;
- line-height: 25.2px;
- line-height: 1.57rem;
- height: 36px;
- line-height: 36px;
- padding: 0 1.1em;
- font-weight: 700;
- color: #3e3e3e;
- white-space: nowrap;
- text-decoration: none;
- display: inline-block;
- cursor: pointer;
- border: 0;
- vertical-align: middle;
- margin: 1px 0;
- background: transparent;
-}
-body a.button-a.icon-pos-left,
-body button.button-a.icon-pos-left,
-body input.button-a.icon-pos-left {
- padding-left: .8em;
-}
-body a.button-a.icon-pos-right,
-body button.button-a.icon-pos-right,
-body input.button-a.icon-pos-right {
- padding-right: .8em;
-}
-body a.button-a.button-a-no-text,
-body button.button-a.button-a-no-text,
-body input.button-a.button-a-no-text {
- -webkit-border-radius: 100px;
- -webkit-background-clip: padding-box;
- -moz-border-radius: 100px;
- -moz-background-clip: padding;
- border-radius: 100px;
- background-clip: padding-box;
- width: 36px;
- padding: 0;
- text-indent: -999px;
- overflow: hidden;
- position: relative;
- text-align: center;
-}
-body a.button-a.button-a-no-text:before,
-body button.button-a.button-a-no-text:before,
-body input.button-a.button-a-no-text:before {
- position: absolute;
- left: 50%;
- top: 50%;
- margin: -9px 0 0 -9px;
-}
-@media (max-width: 900px) {
- body a.button-a.button-a-mobile-collapsed,
- body button.button-a.button-a-mobile-collapsed,
- body input.button-a.button-a-mobile-collapsed {
- -webkit-border-radius: 100px;
- -webkit-background-clip: padding-box;
- -moz-border-radius: 100px;
- -moz-background-clip: padding;
- border-radius: 100px;
- background-clip: padding-box;
- width: 36px;
- padding: 0;
- text-indent: -999px;
- overflow: hidden;
- position: relative;
- text-align: center;
- }
- body a.button-a.button-a-mobile-collapsed:before,
- body button.button-a.button-a-mobile-collapsed:before,
- body input.button-a.button-a-mobile-collapsed:before {
- position: absolute;
- left: 50%;
- top: 50%;
- margin: -9px 0 0 -9px;
- }
- body a.button-a.button-a-mobile-collapsed:before,
- body button.button-a.button-a-mobile-collapsed:before,
- body input.button-a.button-a-mobile-collapsed:before {
- position: absolute;
- left: 50%;
- top: 50%;
- margin: -9px 0 0 -9px;
- }
-}
-body a.button-a:active,
-body button.button-a:active,
-body input.button-a:active,
-body a.button-a:hover,
-body button.button-a:hover,
-body input.button-a:hover {
- color: #fff;
- background: #23adc2;
-}
-body a.button-a:focus,
-body button.button-a:focus,
-body input.button-a:focus {
- border-color: #66afe9;
- outline: 0;
- -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #93c6ef;
- -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #93c6ef;
- box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #93c6ef;
-}
-body a.button-a-soft,
-body button.button-a-soft,
-body input.button-a-soft {
- background: #e7e7e7;
-}
-body a.button-a-soft:active,
-body button.button-a-soft:active,
-body input.button-a-soft:active,
-body a.button-a-soft:hover,
-body button.button-a-soft:hover,
-body input.button-a-soft:hover {
- color: #3e3e3e;
- background: #cecece;
-}
-body a.button-a-background,
-body button.button-a-background,
-body input.button-a-background,
-body a.navigation-b ul li a:hover,
-body button.navigation-b ul li a:hover,
-body input.navigation-b ul li a:hover {
- color: #fff;
- background: #27C0D8;
-}
-body a.button-a-background:active,
-body button.button-a-background:active,
-body input.button-a-background:active,
-body a.button-a-background:hover,
-body button.button-a-background:hover,
-body input.button-a-background:hover,
-body a.navigation-b ul li a:hover:active,
-body button.navigation-b ul li a:hover:active,
-body input.navigation-b ul li a:hover:active,
-body a.navigation-b ul li a:hover:hover,
-body button.navigation-b ul li a:hover:hover,
-body input.navigation-b ul li a:hover:hover {
- color: #fff;
- background: #23adc2;
-}
-.balloon-a {
- font-size: 12px;
- font-size: 0.75rem;
- line-height: 21.6px;
- line-height: 1.35rem;
- -webkit-border-radius: 3px;
- -webkit-background-clip: padding-box;
- -moz-border-radius: 3px;
- -moz-background-clip: padding;
- border-radius: 3px;
- background-clip: padding-box;
- border-bottom: 3px solid #d4d4d4;
- background: #ebebeb;
- display: inline-block;
- white-space: nowrap;
- padding: .4em 1.2em .2em;
- font-weight: 700;
- position: relative;
- z-index: 1000;
- text-transform: none;
- color: #575757;
-}
-.balloon-a:hover {
- color: #575757;
-}
-.balloon-a:before {
- content: '';
- width: 0;
- height: 0;
- border-style: solid;
- position: absolute;
-}
-.balloon-a-ne:before,
-.balloon-a-nw:before {
- top: -13px;
- border-width: 0 9px 15.6px 9px;
- border-color: transparent transparent #ebebeb transparent;
-}
-.balloon-a-se:before,
-.balloon-a-sw:before {
- bottom: -13px;
- border-width: 15.6px 9px 0 9px;
- border-color: #ebebeb transparent transparent transparent;
-}
-.balloon-a-nw:before,
-.balloon-a-sw:before {
- left: 20px;
-}
-.balloon-a-ne:before,
-.balloon-a-se:before {
- right: 20px;
-}
-.icon-pos-left:before,
-.icon-pos-right:after {
- content: '';
- display: inline-block;
- width: 18px;
- height: 18px;
- vertical-align: middle;
- background-repeat: no-repeat;
-}
-.icon-pos-left:before {
- margin-right: 10px;
-}
-.icon-pos-right:after {
- margin-left: 10px;
-}
-.icon-download:before,
-.icon-download:after {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAQFJREFUOBGtVDESgjAQBGfobHwE/AIa/AN/8EEWfMWGZ+gDaG2ws8BdyY13SRgGcGducre3WQ5NSJIIxnGsES3ijhhcMCdXR7ZYCqIc0SGWQE1ud7sKjRLxXHJQfWpLYwaCk6wxET/u+U2GIngd8yRViINau28bBH/YAGqvSQPhRNQHqBqj3FY0NKq27TW7qhSTDaCOhkaRAj7Hmm8S4V+c6C+gUa+crsizuWmoc70MKbWCnqPy2GvcUJxE4a/sIajRaGkU+/sf4IuISQGePR/T/QMbHEhwPLVnMWPuOCwGnWg41dwVeaN3ccHch70idIRi/6WV0WC2/zMiZm661R+2DxyEdjTuST3mAAAAAElFTkSuQmCC");
-}
-.icon-question-mark:before,
-.icon-question-mark:after {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAUhJREFUOBGllLFOAkEQhjk0WthT2JFA7Czsqc7OxFLewEeAZ/AVbO0tTLTSBKhstTBUNkYLEoVAbD2//zILe5e9uwCT/JnZmX/+m83ebq0WsCRJYnANxmBhUKxcHGjJpiC1wQBUmTjtbLetKHTAT5WCVxe3kxEjoUmKRL6pvYEZyJt6VpOxCG3nmfyx+yJxBM7BFPg2SDlkTv2sxZqi4YnUvfgswI9FuHAkzz9EUTTRmqYeTifXsvoj/s9i57oi6ljz9kviFdyBCbgHe+rCn4C8jVXQ18rshuKOiTSIXwLkRZWQTurARJrE7wERpea7kD7BkcgB+yB3CFGlPmgqCNiXhEagSGif2qU1Ln8FW/tupK3pXhXZrWNDuCoikY/rHPMT5KFr2MAPTSM90rIrUjJIeq1WV0RTwN7+0rrtILb9M+LEbLq1H7Z/Ea3+RvBddl0AAAAASUVORK5CYII=");
-}
-.icon-close:before,
-.icon-close:after {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAUlJREFUOBGllDFuwzAMRe3Cd+jYKUCzd/XkDtm9dsoVOuUqBnqBoodwgBwiW8ZsXTIWqPu+Iia0LMAoTOBbJEV+UZTkosjIMAwN6MARXCKky9dkUsYuglagB3OimNU4O1pM1OB7jsHNK7YekeFQJZ5kj/0LcnLA+RMnlHOvDMNv5wO7BFuQkn3hq0ALjKwPVeF4BSaqpLRy0T1ZIHFz75bE2BR8dBImqmBrwRplg09QmR/9GZyBSadAHauXCZkRROKURLlHEemepJIlIyhHotzLg1/N6erTxtmmvqA8muHGIbc1rTBqrEuwnqWnGbbmmz0hwaHtvM2QhWbrXZnosvnTWWPrdCY9w7cDJtf3h9VHjy5Zq9UZ08beyJh7Aicg6W/VYvgnIjJdNn9PMIOITJWcgnV9VvcnEitY/mitNFZZ/hsxsljdv39sfybRQ4R/kU0MAAAAAElFTkSuQmCC");
-}
-.ie8 .switch > * {
- vertical-align: middle;
-}
-.ie8 .switch input[type="radio"] {
- margin: 0 0.25em;
- display: inline-block;
-}
-.ie8 .switch label {
- margin-left: 0 !important;
- margin-right: 0 !important;
-}
-.ie8 .switch label[data-for="1"] {
- float: left;
-}
-.ie8 .switch label[data-for="2"] {
- float: right;
-}
-.ie8 .switch .switch-inner {
- display: none;
-}
-.switch {
- font-size: 14px;
- font-size: 0.875rem;
- line-height: 25.2px;
- line-height: 1.57rem;
- font-weight: bold;
- background-color: #27C0D8;
- overflow: hidden;
- display: inline-block;
- padding: 0.75em 0.25em;
- color: #fff;
- -webkit-border-radius: 3px;
- -webkit-background-clip: padding-box;
- -moz-border-radius: 3px;
- -moz-background-clip: padding;
- border-radius: 3px;
- background-clip: padding-box;
- position: relative;
-}
-.switch input[type="radio"] {
- display: none;
-}
-.switch label {
- position: relative;
- z-index: 2;
- float: left;
- cursor: pointer;
- padding: 0 0.75em;
-}
-.switch label:hover {
- text-decoration: underline;
-}
-.switch .switch-inner {
- float: left;
- background-color: #FFF;
- height: 1.5em;
- width: 4.125em;
- padding: 2px;
- margin: 0 0.25em;
- -webkit-border-radius: 5.5px;
- -webkit-background-clip: padding-box;
- -moz-border-radius: 5.5px;
- -moz-background-clip: padding;
- border-radius: 5.5px;
- background-clip: padding-box;
-}
-.switch .switch-inner .handler {
- overflow: hidden;
- position: relative;
- display: block;
- height: 1.5em;
- width: 1.5em;
- background: #25b4cb;
- -webkit-border-radius: 4.5px;
- -webkit-background-clip: padding-box;
- -moz-border-radius: 4.5px;
- -moz-background-clip: padding;
- border-radius: 4.5px;
- background-clip: padding-box;
-}
-.switch .switch-inner .handler:before {
- content: '';
- display: block;
- position: absolute;
- top: 0;
- right: 0;
- bottom: 3px;
- left: 0;
- background-color: #34c4da;
- -webkit-border-bottom-left-radius: 4.5px;
- -moz-border-radius-bottomleft: 4.5px;
- border-bottom-left-radius: 4.5px;
- -webkit-border-bottom-right-radius: 4.5px;
- -webkit-background-clip: padding-box;
- -moz-border-radius-bottomright: 4.5px;
- -moz-background-clip: padding;
- border-bottom-right-radius: 4.5px;
- background-clip: padding-box;
-}
-.switch:hover .switch-inner .handler:before {
- background: #45c9dd;
-}
-.switch input[data-num="2"]:checked ~ .switch-inner > .handler {
- margin-left: auto;
-}
-.switch input[data-num="2"]:checked ~ label[data-for="1"] {
- padding-right: 5.125em;
- margin-right: -4.375em;
-}
-.switch input[data-num="1"]:checked ~ label[data-for="2"] {
- padding-left: 5.125em;
- margin-left: -4.375em;
-}
-.toggler {
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.toggler label {
- cursor: pointer;
-}
-.toggler [data-collapse] {
- display: inherit;
-}
-.toggler [data-expand] {
- display: none;
-}
-.toggler.collapsed [data-collapse] {
- display: none;
-}
-.toggler.collapsed [data-expand] {
- display: inherit;
-}
-.toggler-container {
- overflow: hidden;
-}
-.toggler-container.collapsed {
- height: 0;
-}
-.icon-toggler-expanded:before,
-.icon-toggler-collapsed:before,
-.icon-toggler-expanded:after,
-.icon-toggler-collapsed:after {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAByCAYAAABeOoENAAAAAXNSR0IArs4c6QAAAbxJREFUaAXtmT1KBEEQhRdFQdBEMfQEBoaGopl3MfECXsFERLyBh/AUIuwJDEUQM//eB11Dz1A1uzotGFTBY2rr58306+kNpmazP7Z98V8Kj8JrAT4xcgttXRVXwofwFYAcNdS6RuJegOBTuBUOhc0CfGLkqKHWJeMuFDwJJ0Jk5Kihlp6esW4embuNkVgTNdTS09MMEbkDj76sUUsPvZ2xIwTRATsQuBuxGsTIYdSSo7cztpggwprdyKlJ8ImZUUuM3s48ol1lXwQjwydm5hINl2bF53KMCL82d2mR2GvqnBfg1+aKPbb9p+oGtYXbT1GTFxKiZkfEyHgy7x0y0clR454zSGpDMzaA3fzV30hNln4qkAqkAqlAKpAKpAKpQCqQCqQCqUAqkAqkAqlAKpAKpAKpQCrw3xWY/GGcz++TP9U3Gx40GWdEAxabXA33NBywRCOfdzFcCztDJv12Rz7REMpmIc9qPBNWK0J3COWNxegxIrs+KHZcyHpjsZUSXPaypcLtseJFS3tT84WwUZG4S4vEZkl3wl5FYK4rdrT9R9Y1uIbbT12TFxKiZkfEyCYfWojMJv+NGNGPr99GI9DP7P9TCgAAAABJRU5ErkJggg==");
-}
-.icon-toggler-expanded.icon-light:before,
-.icon-toggler-collapsed.icon-light:before,
-.icon-toggler-expanded.icon-light:after,
-.icon-toggler-collapsed.icon-light:after {
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAByCAYAAABeOoENAAAAAXNSR0IArs4c6QAAAcVJREFUaAXtmT9KA1EQxhMlASE2SkpPkCJlStHOu3gGwRPYBAm5gYfwFBKwtrARRAh26vr7ljfx7TrLChtBcAa+zOSbPy/7vcTC6fV+04qimIArsALrBMXiJq1nUzQEc/AOmkw51QzdgUqAWyD7AEswA6MExeKUk6n2+zBInSJ7BKfuaZDKpRpcMa/UQUgTfWSd1jjEmlSTatXzpRlvJKJsacVtXrVlB72bWgjdiGwmEj8FOq1u4qapRprJVvkgXbFsZCTxomSqL4ssr0uQrY3TJ/AGjeFfVJlM8diaiCuDdlLiIfmNcP1+/wnu0hoVJ84oq7XeUhNXbE4dgPuEgU2Qh3PFbrx+Gs6E2hD/+tMJ3b+QadB2fiLZsG4/2poG3f6M5MMiDgVCgVAgFAgFQoFQIBQIBUKBUCAUCAVCgVAgFAgFQoFQIBQIBf66AiwLuv1jnAH/Zb/Go5abq/qdwvsLFhJNK583ctfg0Bnmrnwq+zVrYoDZM8E52M1yP9uvqcGmZP6O+CTl3LWYHdTm9yk4aCzilLZHe6XmAuzZEGL30ZrEpr64AUc2wDycK7a7X6P42BpzD+9fv4pIxn4tWznnwm0r/gQpiG1tFshTowAAAABJRU5ErkJggg==");
-}
-.icon-toggler-expanded:before,
-.icon-toggler-expanded:after {
- background-position: top left;
-}
-.icon-toggler-collapsed:before,
-.icon-toggler-collapsed:after {
- background-position: bottom left;
-}
-.modal {
- padding: 20px;
- border-radius: 3px;
- background-color: white;
- max-width: 700px;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- width: 80% !important;
- top: 50% !important;
- -webkit-transform: translate(-50%, -50%) !important;
- -moz-transform: translate(-50%, -50%) !important;
- -o-transform: translate(-50%, -50%) !important;
- -ms-transform: translate(-50%, -50%) !important;
- transform: translate(-50%, -50%) !important;
-}
-.modal-close {
- -webkit-border-radius: 100px;
- -webkit-background-clip: padding-box;
- -moz-border-radius: 100px;
- -moz-background-clip: padding;
- border-radius: 100px;
- background-clip: padding-box;
- cursor: pointer;
- height: 18px;
- width: 18px;
- position: absolute;
- top: 10px;
- right: 10px;
- font-size: 17px;
- text-align: center;
- line-height: 19px;
- background: #cccccc;
-}
-main .grid-container,
-header .grid-container,
-.navigation-a > div,
-footer > div {
- max-width: 968px;
-}
-.header-a {
- margin-top: 30px;
-}
-.footer-a {
- border-top: 1px solid #D9D9D9;
-}
-.adjoined-top {
- background-color: #27C0D8;
- color: #fff;
-}
-.adjoined-top .content h1,
-.adjoined-top .content h2,
-.adjoined-top .content h3,
-.adjoined-top .content h4,
-.adjoined-top .content h5 {
- color: #fff;
-}
-.adjoined-top .content p {
- font-size: 18px;
- font-size: 1.125rem;
- line-height: 32.4px;
- line-height: 2.02rem;
- font-weight: 100;
-}
-.adjoined-top .content p a {
- text-decoration: none;
- border-bottom: 1px dotted #fff;
- color: inherit;
-}
-.adjoined-top .content p a:hover {
- color: #e6e6e6;
-}
-.adjoined-top .content button {
- color: #fff;
-}
-.adjoined-top .content strong {
- color: #fff;
-}
-.adjoined-top .content code {
- font-size: inherit;
- color: #27C0D8;
-}
-.adjoined-bottom {
- position: relative;
-}
-.adjoined-bottom:before {
- z-index: -1;
- content: '';
- background: #27C0D8;
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- height: 50%;
-}
-main .grid-container,
-header .grid-container,
-.navigation-a > div,
-footer > div {
- max-width: 1052px;
-}
-main .grid-container.freed-width {
- max-width: none;
-}
-.switch {
- background: #25b4cb;
- float: right;
- overflow: visible;
-}
-.switch .balloon-a {
- position: absolute;
- top: -40px;
- right: 50%;
- margin-right: -15px;
- background: #FFEFC1;
- border-bottom-color: #DCDCA4;
-}
-.switch .balloon-a:before {
- border-color: #FFEFC1 transparent transparent transparent;
-}
-#toolbar .editors-container {
- overflow: hidden;
- height: 0;
- transition: height 200ms;
-}
-#toolbar .editors-container.active {
- height: auto;
-}
-#main #editor {
- background: #FFF;
- padding: 2% 4%;
- border: dashed 5px #27C0D8;
-}
-#main .adjoined-top:before {
- height: 335px;
-}
-#toolbar .adjoined-top:before {
- height: 219px;
-}
-#toolbar .adjoined-top .grid-container-nested {
- height: 147px;
-}
-.content .grid-switch-magic {
- margin: 3.5em 0 0;
-}
-#info-box {
- padding-bottom: 0;
-}
-#info-box > div {
- width: 100%;
- text-align: right;
-}
-#info-box > div .toggler {
- padding-right: 0;
-}
-#info-box > div .toggler:hover {
- background: transparent;
- color: #000;
-}
-#info-box > div .toggler:hover > label {
- text-decoration: underline;
-}
-#info-box > div h2 {
- float: left;
- margin-top: 0;
-}
-#info-box > div#instructions-container {
- text-align: left;
-}
-#toolbarModifierWrapper {
- overflow: hidden;
- height: 0;
- opacity: 0;
- transition: height 200ms;
-}
-#toolbarModifierWrapper.active {
- height: auto;
- opacity: 1;
-}
-header {
- overflow: visible;
-}
-header div.grid-container {
- overflow: visible;
-}
-header .navigation-b {
- overflow: visible;
-}
-header .navigation-b ul {
- overflow: visible;
-}
-header .navigation-b a {
- position: relative;
-}
-header .balloon-a {
- position: absolute;
- top: 48px;
- left: 50%;
- margin-left: -35px;
-}
-@media (max-width: 1140px) {
- header .balloon-a {
- left: auto;
- margin-left: auto;
- right: 50%;
- margin-right: -35px;
- }
- header .balloon-a:before {
- left: auto;
- right: 22px;
- }
-}
-@media (max-width: 900px) {
- header .balloon-a {
- display: none;
- }
-}
-#toolbar .cke_toolbar {
- pointer-events: none;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- cursor: default;
-}
-.some-toolbar-active .cke_toolbar {
- zoom: 1;
- filter: alpha(opacity=50);
- -webkit-opacity: 0.5;
- -moz-opacity: 0.5;
- opacity: 0.5;
-}
-.cke_toolbar.active {
- position: relative;
- zoom: 1;
- filter: alpha(opacity=100);
- -webkit-opacity: 1;
- -moz-opacity: 1;
- opacity: 1;
-}
-.cke_toolbar.active:after {
- content: '';
- display: block;
- position: absolute;
- top: 0;
- right: 6px;
- bottom: 5px;
- left: 0;
- -webkit-border-radius: 5px;
- -webkit-background-clip: padding-box;
- -moz-border-radius: 5px;
- -moz-background-clip: padding;
- border-radius: 5px;
- background-clip: padding-box;
- -webkit-box-shadow: 0px 0px 15px 3px #fff4b0;
- -moz-box-shadow: 0px 0px 15px 3px #fff4b0;
- box-shadow: 0px 0px 15px 3px #fff4b0;
-}
-.cke_toolbar.active .cke_toolgroup {
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- box-shadow: none;
- border-color: #e3c300;
-}
-.cke_toolbar.active .cke_combo,
-.cke_toolbar.active .cke_toolgroup {
- position: relative;
- z-index: 2;
-}
-.cke_toolbar.active .cke_combo_button {
- -webkit-box-shadow: none;
- -moz-box-shadow: none;
- box-shadow: none;
-}
-.unselectable {
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
-}
-.toolbar {
- padding: 5px 0;
- margin-bottom: 2.4em;
- overflow: hidden;
- background: #fff;
-}
-.toolbar button.button-a.cke_button {
- cursor: pointer;
- display: inline-block;
- padding: 4px 6px;
- outline: 0;
- border: 1px solid #a6a6a6;
-}
-.toolbar button.button-a.hidden {
- display: none;
-}
-.toolbar button.button-a.left {
- float: left;
- margin-right: 8px;
-}
-.toolbar button.button-a.right {
- float: right;
- margin-left: 8px;
-}
-.toolbar button.button-a .highlight {
- color: #ffefc1;
-}
-.configContainer.hidden,
-.toolbarModifier.hidden,
-.toolbarModifier-hints.hidden {
- display: none;
-}
-.toolbarModifier :focus,
-.toolbar button:focus,
-.configContainer textarea.configCode:focus {
- outline: none;
-}
-div.toolbarModifier {
- padding: 0;
- overflow: hidden;
- width: 100%;
- position: relative;
- display: table;
- border-collapse: collapse;
-}
-div.toolbarModifier ::-moz-focus-inner {
- border: 0;
-}
-div.toolbarModifier .empty {
- display: none;
-}
-div.toolbarModifier.empty-visible .empty {
- display: table-row;
- zoom: 1;
- filter: alpha(opacity=60);
- -webkit-opacity: 0.6;
- -moz-opacity: 0.6;
- opacity: 0.6;
-}
-div.toolbarModifier .empty > p {
- line-height: 31px;
-}
-div.toolbarModifier > ul {
- padding: 0;
- margin: 0;
- border-top: 1px solid #ccc;
- width: 100%;
-}
-div.toolbarModifier > ul[data-type="table-header"] {
- display: table-header-group;
-}
-div.toolbarModifier > ul[data-type="table-body"] {
- display: table-row-group;
-}
-div.toolbarModifier > ul p {
- padding: 0;
- margin: 0;
-}
-div.toolbarModifier > ul > li {
- display: table-row;
-}
-div.toolbarModifier > ul > li[data-type="header"] {
- font-weight: bold;
- user-select: none;
- cursor: default;
-}
-div.toolbarModifier > ul > li[data-type="group"],
-div.toolbarModifier > ul > li[data-type="separator"] {
- border-bottom: 1px solid #ccc;
-}
-div.toolbarModifier > ul > li[data-type="subgroup"] {
- border-top: 1px solid #eee;
-}
-div.toolbarModifier > ul > li[data-type="subgroup"]:first-child {
- border-top: none;
-}
-div.toolbarModifier > ul > li[data-type="group"].active,
-div.toolbarModifier > ul > li[data-type="group"]:hover,
-div.toolbarModifier > ul > li[data-type="separator"].active,
-div.toolbarModifier > ul > li[data-type="separator"]:hover {
- overflow: hidden;
- z-index: 2;
-}
-div.toolbarModifier > ul > li[data-type="group"].active,
-div.toolbarModifier > ul > li[data-type="separator"].active,
-div.toolbarModifier > ul > li[data-type="group"].active:hover,
-div.toolbarModifier > ul > li[data-type="separator"].active:hover {
- background: #f0fafb;
-}
-div.toolbarModifier > ul > li[data-type="group"]:hover,
-div.toolbarModifier > ul > li[data-type="separator"]:hover {
- background: #fffbe3;
-}
-div.toolbarModifier > ul > li[data-type="separator"] {
- background: #f5f5f5;
-}
-div.toolbarModifier > ul > li[data-type="separator"]:after {
- content: '';
- width: 100%;
-}
-div.toolbarModifier > ul > li[data-type="separator"] > p {
- padding: 2px 5px;
-}
-div.toolbarModifier > ul > li > p,
-div.toolbarModifier > ul > li > ul {
- display: table-cell;
- vertical-align: middle;
-}
-div.toolbarModifier > ul > li p {
- padding-left: 5px;
- min-width: 200px;
-}
-div.toolbarModifier > ul > li p span {
- white-space: nowrap;
- cursor: default;
-}
-div.toolbarModifier > ul > li p span button {
- font-size: 12.666px;
- margin-right: 5px;
- cursor: pointer;
- background: #fff;
- -webkit-border-radius: 5px;
- -webkit-background-clip: padding-box;
- -moz-border-radius: 5px;
- -moz-background-clip: padding;
- border-radius: 5px;
- background-clip: padding-box;
- border: 1px solid #bbb;
- padding: 0 7px;
- line-height: 12px;
- height: 20px;
-}
-div.toolbarModifier > ul > li p span button:not(.disabled):hover,
-div.toolbarModifier > ul > li p span button:not(.disabled):focus {
- color: #fff;
- background-color: #454545;
- border-color: transparent;
-}
-div.toolbarModifier > ul > li p span button.move.disabled {
- cursor: default;
- zoom: 1;
- filter: alpha(opacity=20);
- -webkit-opacity: 0.2;
- -moz-opacity: 0.2;
- opacity: 0.2;
-}
-div.toolbarModifier > ul > li ul {
- border-collapse: collapse;
- padding: 0;
- width: 100%;
-}
-div.toolbarModifier > ul > li ul li {
- display: table-row;
- list-style-type: none;
- line-height: 1;
-}
-div.toolbarModifier > ul > li ul li[data-type="subgroup"] {
- border-top: 1px solid #ddd;
-}
-div.toolbarModifier > ul > li ul li[data-type="subgroup"]:first-child {
- border-top: 0;
-}
-div.toolbarModifier > ul > li ul li[data-type="subgroup"] [data-type="button"] {
- -webkit-border-radius: 3px;
- -webkit-background-clip: padding-box;
- -moz-border-radius: 3px;
- -moz-background-clip: padding;
- border-radius: 3px;
- background-clip: padding-box;
- padding: 0 2px;
-}
-div.toolbarModifier > ul > li ul li[data-type="subgroup"] [data-type="button"]:focus {
- background: rgba(0, 0, 0, 0.04);
-}
-div.toolbarModifier > ul > li ul li[data-type="subgroup"] [data-type="button"] input {
- vertical-align: middle;
-}
-div.toolbarModifier > ul > li ul li > p,
-div.toolbarModifier > ul > li ul li > ul {
- display: table-cell;
- vertical-align: middle;
-}
-div.toolbarModifier > ul > li ul li ul {
- padding: 0;
-}
-div.toolbarModifier > ul > li ul li ul li {
- padding: 0;
- display: inline-block;
- cursor: pointer;
- margin: 2px 5px 2px 0;
-}
-div.toolbarModifier > ul > li ul li ul li .cke_combo_text {
- cursor: pointer;
- white-space: nowrap;
-}
-div.toolbarModifier > ul > li ul li ul li .cke_toolgroup,
-div.toolbarModifier > ul > li ul li ul li .cke_combo_button {
- cursor: pointer;
- margin: 0;
- vertical-align: middle;
- border: 1px solid #ddd;
- font-size: 11.41px;
- font-size: 0.713rem;
- line-height: 20.54px;
- line-height: 1.28rem;
-}
-div.toolbarModifier > .codemirror-wrapper {
- overflow-y: auto;
-}
-div.toolbarModifier-hints {
- float: right;
- width: 350px;
- min-width: 150px;
- overflow-y: auto;
- margin-left: 1.5em;
-}
-div.toolbarModifier-hints h3 {
- font-size: 18.08px;
- font-size: 1.13rem;
- line-height: 32.54px;
- line-height: 2.03rem;
- padding: 0.36em 1.5em;
- background: #f5f5f5;
- border-bottom: 1px solid #ddd;
- margin-top: 0;
- margin-bottom: 1.2em;
-}
-div.toolbarModifier-hints dl {
- margin-bottom: 1.2em;
- overflow: hidden;
-}
-div.toolbarModifier-hints dl .list-header {
- font-weight: bold;
- border: 0;
- padding-bottom: 0.6em;
-}
-div.toolbarModifier-hints dl > p {
- text-align: center;
-}
-div.toolbarModifier-hints dl dt {
- float: left;
- width: 9em;
- clear: both;
- text-align: right;
- border-top: 1px solid #ddd;
- padding-left: 1.5em;
- padding-right: .1em;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
-}
-div.toolbarModifier-hints dl dt code {
- background: none;
- border: none;
- vertical-align: middle;
-}
-div.toolbarModifier-hints dl dd {
- margin-left: 10em;
- clear: right;
- padding-right: 1.5em;
-}
-div.toolbarModifier-hints dl dd code {
- line-height: 2.2em;
-}
-div.toolbarModifier-hints dl dd:after {
- content: '\00a0';
- display: block;
- clear: left;
- float: right;
- height: 0;
- width: 0;
-}
-.toolbarModifier-hints,
-.configContainer textarea.configCode,
-.CodeMirror {
- -webkit-border-radius: 3px;
- -webkit-background-clip: padding-box;
- -moz-border-radius: 3px;
- -moz-background-clip: padding;
- border-radius: 3px;
- background-clip: padding-box;
- border: 1px solid #ccc;
- font-size: 13.01px;
- font-size: 0.813rem;
- line-height: 23.42px;
- line-height: 1.46rem;
-}
-.configContainer textarea.configCode,
-.CodeMirror pre,
-.CodeMirror-linenumber {
- font-size: 13.01px;
- font-size: 0.813rem;
- line-height: 23.42px;
- line-height: 1.46rem;
- font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
-}
-.CodeMirror pre {
- border: none;
- padding: 0;
- margin: 0;
-}
-.configContainer textarea.configCode {
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- color: #575757;
- padding: 10px;
- width: 100%;
- min-height: 500px;
- margin: 0;
- resize: none;
- outline: none;
- -moz-tab-size: 4;
- tab-size: 4;
- white-space: pre;
- word-wrap: normal;
- overflow: auto;
-}
-.CodeMirror-hints.toolbar-modifier {
- padding: 0;
- color: #575757;
- font-size: 14px;
- font-size: 0.875rem;
- line-height: 25.2px;
- line-height: 1.57rem;
- font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
-}
-.CodeMirror-hints.toolbar-modifier .CodeMirror-hint-active {
- color: #575757;
- background: #f0fafb;
-}
-.CodeMirror-hints.toolbar-modifier > li:hover {
- background: #fffbe3;
-}
-/* Text modifier */
-#toolbarModifierWrapper {
- margin-bottom: 1.2em;
-}
-#toolbarModifierWrapper .invalid .CodeMirror {
- background: #fff8f8;
- border-color: red;
-}
-#toolbarModifierWrapper .CodeMirror {
- height: auto;
- padding: 0 0.6em;
-}
-.staticContainer {
- position: fixed;
- top: 0;
- width: 100%;
- z-index: 10;
-}
-.staticContainer > .grid-container {
- max-width: 1052px;
-}
-.staticContainer > .grid-container .inner {
- background: #fff;
-}
-.staticContainer > .grid-container .inner .toolbar {
- margin-bottom: 0;
-}
-#help {
- position: relative;
- top: -15px;
- left: -5px;
-}
-#help-content {
- display: none;
-}
-/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2dsb2JhbC9nbG9iYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2NvcmUvY29yZS5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvZ3JpZC9ncmlkLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvbm9kZV9tb2R1bGVzL2xlc3NoYXQvYnVpbGQvbGVzc2hhdC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvaGVhZGVyLWEvaGVhZGVyLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYS9uYXZpZ2F0aW9uLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYi9uYXZpZ2F0aW9uLWIubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Zvb3Rlci1hL2Zvb3Rlci1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9jb250ZW50L2NvbnRlbnQubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2J1dHRvbi1hL2J1dHRvbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9iYWxsb29uLWEvYmFsbG9vbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9pY29uL2ljb24ubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2gubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3RvZ2dsZXIvdG9nZ2xlci5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2NvcmUubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2Fkam9pbmVkLmxlc3MiLCIuLi8uLi9zYW1wbGVzL2xlc3MvY3VzdG9tLmxlc3MiLCIuLi8uLi9zYW1wbGVzL3Rvb2xiYXJjb25maWd1cmF0b3IvbGVzcy90b29sYmFybW9kaWZpZXIubGVzcyIsIi4uLy4uL3NhbXBsZXMvdG9vbGJhcmNvbmZpZ3VyYXRvci9sZXNzL2Jhc2UubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBc0RBLFFBSGlDO0VBeUNoQztJQUNDLHdCQUFBOzs7QUMxRkY7QUFBUztBQUFPO0FBQVM7QUFBWTtBQUFRO0FBQVE7QUFBUTtBQUFRO0FBQU07QUFBTTtBQUFLO0VBQ3JGLGNBQUE7O0FBR0Q7QUFBTTtFQUNMLFNBQUE7RUFDQSxVQUFBO0VBQ0Esd0JETitCLHVDQ00vQjtFQUNBLGdCQUFBO0VBQ0EsY0FBQTs7QUNIQSxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsV0FBQTs7QUY0Q0YsUUFIaUM7RUVqQ2hDO0VBS0MsWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0VBQVosWUFBWTtFQUFaLFlBQVk7RUFBWixZQUFZO0lBSlosV0FBQTs7O0FBYUYsQ0FBQztFQ3FSQyw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7RURyUkQsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLFdBQUE7O0FBSUEsQ0FEQSxxQkFDQztBQUFELGVBQUM7QUFBUSxDQURULHFCQUNVO0FBQUQsZUFBQztFQUNULFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsWUFBQTtFQUNBLGNBQUE7RUFDQSxRQUFBO0VBQ0EsU0FBQTs7QUFLRCxDQURBLHFCQUNDO0FBQUQsZUFBQztFQUNBLFdBQUE7O0FBSUY7RUMyUEUsOEJBQUE7RUFDQSwyQkFBQTtFQUNBLHNCQUFBO0VEM1BELGlCQUFBO0VBQ0Esa0JBQUE7O0FBS0Msc0JBREQsRUFBQyxxQkFDQztFQUNBLGVBQUE7O0FBR0Qsc0JBTEQsRUFBQyxxQkFLQztFQUNBLGdCQUFBOztBRmpCSCxRQUhpQztFRTBCOUIsc0JBREQsRUFBQyxxQkFDQztJQUNBLGdCQUFBOztFQUdELHNCQUxELEVBQUMscUJBS0M7SUFDQSxpQkFBQTs7O0FFN0VKO0VBQ0MsaUJBQUE7RUFHQSxnQkFBQTs7QUFKRCxTQU1DO0VBQ0MsZ0JBQUE7O0FKMENGLFFBSGlDO0VBNkNqQyxTSXJGQztJQUlFLGtCQUFBOzs7QUFWSCxTQU1DLGVBT0M7RUFDQyxtQkFBQTs7QUNWSDtFQUNDLFlBQUE7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsT0FBQTtFQUNBLFFBQUE7RUFDQSxNQUFBO0VBQ0EsVUFBQTtFQUNBLGdCQUFBOztBTHFDRCxRQUhpQztFQTZDakM7SUs1RUUsa0JBQUE7OztBQVhGLGFBY0M7RUFDQyxnQkFBQTtFQUNBLFNBQUE7RUFDQSxnQkFBQTs7QUFqQkYsYUFjQyxHQUtDO0FBbkJGLGFBY0MsR0FLSyxHQUFHO0VBQ04scUJBQUE7O0FMeUJILFFBSGlDO0VBNkNqQyxhS3pFQztJQVVFLFdBQUE7SUFDQSx1QkFBQTtJQUNBLG1CQUFBO0lBQ0EscUJBQUE7SUFDQSxXQUFBOztFQUVBLGFBaEJGLEdBZ0JHO0VBQVMsYUFoQlosR0FnQmE7SUFDVixhQUFBOzs7QUFLRCxhQXRCRixHQXFCRSxhQUNDO0VBQ0EsZ0JBQUE7O0FMUUosUUFIaUM7RUE2Q2pDLGFLekVDLEdBcUJFLGFBQ0M7SUFJQyxnQkFBQTs7O0FBSUYsYUE5QkYsR0FxQkUsYUFTQztFQUNBLGlCQUFBOztBTEFKLFFBSGlDO0VBNkNqQyxhS3pFQyxHQXFCRSxhQVNDO0lBSUMsa0JBQUE7OztBQU1GLGFBeENGLEdBdUNDLEdBQ0c7RUFDRCxpQkFBQTs7QUF2REosYUFjQyxHQXVDQyxHQUtDO0VMeENGLGVBQUE7RUFDQSxtQkFBQTtFQUNBLGlCQUFBO0VBQ0Esb0JBQUE7RUt1Q0csaUJBQUE7RUFDQSxXQUFBO0VBQ0EsV0FBQTtFQUNBLGlCQUFBO0VBQ0EscUJBQUE7RUFDQSx5QkFBQTs7QUFFQSxhQXJESCxHQXVDQyxHQUtDLEVBU0U7RUFDQSxlQUFBO0VBQ0EsV0FBQTs7QUFRSix5QkFBQztBQUFTLHlCQUFDO0VBQ1Ysc0JBQWtCLHFyQkFBbEI7O0FDcEZGO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBOztBTmdERCxRQUhpQztFQTZDakM7SU12RkUsa0JBQUE7SUFDQSxnQkFBQTtJQUdBLFVBQUE7OztBQVZGLGFBYUM7RUFDQyxVQUFBO0VBQ0EsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsaUJBQUE7O0FBakJGLGFBYUMsR0FNQztBQW5CRixhQWFDLEdBTUssR0FBRztFQUNOLHFCQUFBOztBTitCSCxRQUhpQztFQTZDakMsYU1oRkM7SUFXRSxjQUFBO0lBQ0EsV0FBQTtJQUNBLHFCQUFBOzs7QU55QkgsUUFIaUM7RUE2Q2pDLGFNaEZDLEdBZ0JDO0lBRUUsa0JBQUE7OztBQUdELGFBckJGLEdBZ0JDLEdBS0c7RUFDRCxpQkFBQTs7QU5nQkosUUFIaUM7RUE2Q2pDLGFNaEZDLEdBZ0JDLEdBS0c7SUFJQSxjQUFBOzs7QUF0Q0wsYUFhQyxHQWdCQyxHQWFDO0VId1FELDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFR3hRRSx5QkFBQTtFQUNBLHFCQUFBO0VBQ0EsYUFBQTs7QU5LSixRQUhpQztFQTZDakMsYU1oRkMsR0FnQkMsR0FhQztJQU9FLFdBQUE7SUhxT0gsd0JBQUE7SUFBaUMsb0NBQUE7SUFDakMscUJBQUE7SUFBOEIsNkJBQUE7SUFDOUIsZ0JBQUE7SUFBeUIsNEJBQUE7OztBSXhSM0I7RVB3QkMsZUFBQTtFQUNBLG9CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFT3hCQSxtQkFBQTtFQUNBLHNCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBOztBQU5ELFNQNEVDO0VBQ0MsY0FBQTtFQUNBLHFCQUFBO0VBRUEsaUNBQUE7O0FBRUEsU0FORCxFQU1FO0VBQ0EsY0FBQTs7QU9uRkgsU0FRQztFQUNDLFNBQUE7RUFDQSxxQkFBQTtFQUNBLGtCQUFBOztBQ1hGO0VSd0JDLGVBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RVF6QkEsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLHFCQUFBOztBQUpELFFBU0M7RUFDQyxnQkFBQTs7QUFWRixRQWFDO0FBYkQsUUFhSztBQWJMLFFBYVM7QUFiVCxRQWFjO0FBYmQsUUFhMEIsU0FBUSxJQUFJO0FBYnRDLFFBYXdEO0VBQ3RELGlCQUFBOztBQWRGLFFBaUJDO0FBakJELFFBaUJPO0VMcVFMLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VLclF6QixnQkFBQTs7QUFuQkYsUUFzQkM7QUF0QkQsUUFzQk07QUF0Qk4sUUFzQlk7QUF0QlosUUFzQmlCO0VBQ2YsbUJBQUE7O0FBdkJGLFFBMEJDO0FBMUJELFFBMEJhO0VBQ1gsZ0JBQUE7RUFDQSw4QkFBQTtFQUNBLHFCQUFBOztBQTdCRixRQW9DQyxFUndDQTtBUTVFRCxRQW9DSSxHUndDSDtBUTVFRCxRQW9DUSxHUndDUDtBUTVFRCxRQW9DWSxXUndDWDtBUTVFRCxRQW9Dd0IsR1J3Q3ZCO0FRNUVELFFBb0M0QixHUndDM0I7QVE1RUQsUUFvQ2dDLEdSd0MvQjtBUTVFRCxRQW9Db0MsR1J3Q25DO0FRNUVELFFBb0N3QyxHUndDdkM7RUFDQyxjQUFBO0VBQ0EscUJBQUE7RUFFQSxpQ0FBQTs7QUFFQSxRUTlDRCxFUndDQSxFQU1FO0FBQUQsUVE5Q0UsR1J3Q0gsRUFNRTtBQUFELFFROUNNLEdSd0NQLEVBTUU7QUFBRCxRUTlDVSxXUndDWCxFQU1FO0FBQUQsUVE5Q3NCLEdSd0N2QixFQU1FO0FBQUQsUVE5QzBCLEdSd0MzQixFQU1FO0FBQUQsUVE5QzhCLEdSd0MvQixFQU1FO0FBQUQsUVE5Q2tDLEdSd0NuQyxFQU1FO0FBQUQsUVE5Q3NDLEdSd0N2QyxFQU1FO0VBQ0EsY0FBQTs7QVFuRkgsUUF3Q0M7QUF4Q0QsUUF3Q0s7QUF4Q0wsUUF3Q1M7QUF4Q1QsUUF3Q2E7QUF4Q2IsUUF3Q2lCO0VBQ2YsV0FBQTtFQUNBLGdCQUFBOztBQTFDRixRQXdDQyxHQUtDO0FBN0NGLFFBd0NLLEdBS0g7QUE3Q0YsUUF3Q1MsR0FLUDtBQTdDRixRQXdDYSxHQUtYO0FBN0NGLFFBd0NpQixHQUtmO0FBN0NGLFFBd0NDLEdBS087QUE3Q1IsUUF3Q0ssR0FLRztBQTdDUixRQXdDUyxHQUtEO0FBN0NSLFFBd0NhLEdBS0w7QUE3Q1IsUUF3Q2lCLEdBS1Q7RUFDTCxrQkFBQTs7QUE5Q0gsUUF3Q0MsR0FVQyxFQUFDO0FBbERILFFBd0NLLEdBVUgsRUFBQztBQWxESCxRQXdDUyxHQVVQLEVBQUM7QUFsREgsUUF3Q2EsR0FVWCxFQUFDO0FBbERILFFBd0NpQixHQVVmLEVBQUM7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBR0QsUUFqQkQsR0FpQkUsTUFDQSxFQUFDO0FBREYsUUFqQkcsR0FpQkYsTUFDQSxFQUFDO0FBREYsUUFqQk8sR0FpQk4sTUFDQSxFQUFDO0FBREYsUUFqQlcsR0FpQlYsTUFDQSxFQUFDO0FBREYsUUFqQmUsR0FpQmQsTUFDQSxFQUFDO0VBQ0EsVUFBQTs7QUFJRixRQXZCRCxHQXVCRSxPQUNBO0FBREQsUUF2QkcsR0F1QkYsT0FDQTtBQURELFFBdkJPLEdBdUJOLE9BQ0E7QUFERCxRQXZCVyxHQXVCVixPQUNBO0FBREQsUUF2QmUsR0F1QmQsT0FDQTtFTDhERCwwREFBQTtFQUNBLHVEQUFBO0VBQ0EscURBQUE7RUFDQSxrREFBQTtFSy9ERSxVQUFBOztBQWxFSixRQXVFQztBQXZFRCxRQXVFUTtBQXZFUixRQXVFZ0IsU0FBUSxJQUFJO0VMK00xQiwwQkFBQTtFQUFpQyxvQ0FBQTtFQUNqQyx1QkFBQTtFQUE4Qiw2QkFBQTtFQUM5QixrQkFBQTtFQUF5Qiw0QkFBQTtFQW1CekIsdURBQUE7RUFDQSxvREFBQTtFQUNBLCtDQUFBO0VLbE9BLGFBQUE7RUFDQSxjQUFBO0VBRUEseUJBQUE7RUFDQSxrQkFBQTs7QUFFQSxRQVZELE1BVUU7QUFBRCxRQVZNLE9BVUw7QUFBRCxRQVZjLFNBQVEsSUFBSSxnQkFVekI7RUFDQSxxQkFBQTtFQUNBLFVBQUE7RUx3TkQsd0VBQUE7RUFDQSxxRUFBQTtFQUNBLGdFQUFBOztBSzdTRixRQThGQztFQUNDLDhCQUFBO0VBQ0EsZUFBQTs7QUFoR0YsUUFtR0M7RUFDQyxrQkFBQTtFQUNBLDZCUm5HMkMsd0JRbUczQztFUjdFRCxlQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7O0FRM0JELFFBeUdDO0VBQ0Msa0JBQUE7O0FBMUdGLFFBNkdDO0VSckZBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RVFvRkMsbUJBQUE7O0FBL0dGLFFBa0hDO0VSMUZBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VReUZDLGlCQUFBOztBQXBIRixRQXVIQztFUi9GQSxlQUFBO0VBQ0EsaUJBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VROEZDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBMUhGLFFBNkhDO0VSckdBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VRb0dDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBaElGLFFBbUlDO0VSM0dBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxvQkFBQTtFQUNBLG9CQUFBO0VRMEdDLGdCQUFBO0VBQ0Esa0JBQUE7O0FBdElGLFFBeUlDO0VBQ0MsU0FBQTtFQUNBLDZCQUFBO0VBQ0EsZUFBQTs7QUFJQSxRQURELE1BQ0U7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7O0FBR0QsUUFORCxNQU1FO0VMaURELDBCQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTs7QUt4TUYsUUE0SkM7RVJwSUEsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUW1JQyxvQlI3SjhCLHVDUTZKOUI7RUFDQSxnQkFBQTtFTDRJQSx1REFBQTtFQUNBLG9EQUFBO0VBQ0EsK0NBQUE7O0FLN1NGLFFBdUtDLEVBQ0M7RUFDQyxzQkFBQTs7QUF6S0gsUUF1S0MsRUFLQztFQUNDLGNBQUE7O0FBN0tILFFBaUxDO0VBQ0MsVUFBQTtFQUNBLFNBQUE7RUFFQSxXQUFBO0VBQ0EsY0FBQTtFQUNBLGdCQUFBOztBQXZMRixRQTBMQztBQTFMRCxRQTBMTTtFUmxLTCxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFUWtLQyxnSkFBQTs7QUE3TEYsUUEwTEMsSUFLQztBQS9MRixRQTBMTSxLQUtKO0VBQ0MsU0FBQTs7QUFoTUgsUUFxTUMsSUFBSTtFQUNILGVBQUE7RUFDQSxjQUFBOztBQXZNRixRQTBNQztFQUNDLFdBQUE7O0FBM01GLFFBOE1DLEdBRUM7QUFoTkYsUUE4TUssR0FFSDtBQWhORixRQThNQyxHQUVLO0FBaE5OLFFBOE1LLEdBRUM7RUFDSCxnQkFBQTs7QUFqTkgsUUE4TUMsR0FNQztBQXBORixRQThNSyxHQU1IO0VSNUxELGVBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7O0FRM0JELFFBME5DLFNBQVEsSUFBSTtFQUNYLFdBQUE7O0FBM05GLFFBOE5DLElBQUc7RUFDRix1QkFBQTtFQUNBLGFBQUE7RUFDQSxxQkFBQTs7O0FBR0EsUUFORCxJQUFHLEtBTUQ7RUFDQSxTQUFTLE1BQVQ7RUFDQSxpQkFBQTs7QUNqT0QsSUFERCxFQUNFO0FBQUQsSUFERSxPQUNEO0FBQUQsSUFEVSxNQUNUO0VOaVJELDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VIaFExQixlQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VTbkJFLFlBQUE7RUFDQSxpQkFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsbUJBQUE7RUFDQSxxQkFBQTtFQUNBLHFCQUFBO0VBQ0EsZUFBQTtFQUNBLFNBQUE7RUFDQSxzQkFBQTtFQUlBLGFBQUE7RUFHQSx1QkFBQTs7QUFFQSxJQXZCRixFQUNFLFNBc0JDO0FBQUQsSUF2QkMsT0FDRCxTQXNCQztBQUFELElBdkJTLE1BQ1QsU0FzQkM7RUFDQSxrQkFBQTs7QUFHRCxJQTNCRixFQUNFLFNBMEJDO0FBQUQsSUEzQkMsT0FDRCxTQTBCQztBQUFELElBM0JTLE1BQ1QsU0EwQkM7RUFDQSxtQkFBQTs7QUFvQkQsSUFoREYsRUFDRSxTQStDQztBQUFELElBaERDLE9BQ0QsU0ErQ0M7QUFBRCxJQWhEUyxNQUNULFNBK0NDO0VOa09GLDRCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHlCQUFBO0VBQThCLDZCQUFBO0VBQzlCLG9CQUFBO0VBQXlCLDRCQUFBO0VNblB2QixXQUFBO0VBQ0EsVUFBQTtFQUNBLG1CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGtCQUFBOztBQUVBLElBeENILEVBQ0UsU0ErQ0MsaUJBUkM7QUFBRCxJQXhDQSxPQUNELFNBK0NDLGlCQVJDO0FBQUQsSUF4Q1EsTUFDVCxTQStDQyxpQkFSQztFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFFBQUE7RUFDQSxxQkFBQTs7QVRHTCxRQUhpQztFQTZDakMsSVN6RkMsRUFDRSxTQW1EQztFVHFDSixJU3pGSSxPQUNELFNBbURDO0VUcUNKLElTekZZLE1BQ1QsU0FtREM7SU44TkYsNEJBQUE7SUFBaUMsb0NBQUE7SUFDakMseUJBQUE7SUFBOEIsNkJBQUE7SUFDOUIsb0JBQUE7SUFBeUIsNEJBQUE7SU1uUHZCLFdBQUE7SUFDQSxVQUFBO0lBQ0EsbUJBQUE7SUFDQSxnQkFBQTtJQUNBLGtCQUFBO0lBQ0Esa0JBQUE7O0VBRUEsSUF4Q0gsRUFDRSxTQW1EQywwQkFaQztFQUFELElBeENBLE9BQ0QsU0FtREMsMEJBWkM7RUFBRCxJQXhDUSxNQUNULFNBbURDLDBCQVpDO0lBQ0Esa0JBQUE7SUFDQSxTQUFBO0lBQ0EsUUFBQTtJQUNBLHFCQUFBOztFQUpELElBeENILEVBQ0UsU0FtREMsMEJBWkM7RUFBRCxJQXhDQSxPQUNELFNBbURDLDBCQVpDO0VBQUQsSUF4Q1EsTUFDVCxTQW1EQywwQkFaQztJQUNBLGtCQUFBO0lBQ0EsU0FBQTtJQUNBLFFBQUE7SUFDQSxxQkFBQTs7O0FBY0YsSUExREYsRUFDRSxTQXlEQztBQUFELElBMURDLE9BQ0QsU0F5REM7QUFBRCxJQTFEUyxNQUNULFNBeURDO0FBQ0QsSUEzREYsRUFDRSxTQTBEQztBQUFELElBM0RDLE9BQ0QsU0EwREM7QUFBRCxJQTNEUyxNQUNULFNBMERDO0VBQ0EsV0FBQTtFQUNBLG1CQUFBOztBQUdELElBaEVGLEVBQ0UsU0ErREM7QUFBRCxJQWhFQyxPQUNELFNBK0RDO0FBQUQsSUFoRVMsTUFDVCxTQStEQztFQUNBLHFCQUFBO0VBQ0EsVUFBQTtFTnFPRix5RUFBQTtFQUNBLHNFQUFBO0VBQ0EsaUVBQUE7O0FNNU5BLElBN0VELEVBNkVFO0FBQUQsSUE3RUUsT0E2RUQ7QUFBRCxJQTdFVSxNQTZFVDtFQUNBLG1CQUFBOztBQUVBLElBaEZGLEVBNkVFLGNBR0M7QUFBRCxJQWhGQyxPQTZFRCxjQUdDO0FBQUQsSUFoRlMsTUE2RVQsY0FHQztBQUNELElBakZGLEVBNkVFLGNBSUM7QUFBRCxJQWpGQyxPQTZFRCxjQUlDO0FBQUQsSUFqRlMsTUE2RVQsY0FJQztFQUNBLGNBQUE7RUFDQSxtQkFBQTs7QUFJRixJQXZGRCxFQXVGRTtBQUFELElBdkZFLE9BdUZEO0FBQUQsSUF2RlUsTUF1RlQ7QUFBRCxJQXZGRCxFSGlERyxhQXhDSCxHQWdCQyxHQWFDLEVBV0U7QUdzQ0gsSUF2RkUsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFO0FHc0NILElBdkZVLE1IaURSLGFBeENILEdBZ0JDLEdBYUMsRUFXRTtFR3VDRixXQUFBO0VBQ0EsbUJBQUE7O0FBRUEsSUEzRkYsRUF1RkUsb0JBSUM7QUFBRCxJQTNGQyxPQXVGRCxvQkFJQztBQUFELElBM0ZTLE1BdUZULG9CQUlDO0FBQ0QsSUE1RkYsRUF1RkUsb0JBS0M7QUFBRCxJQTVGQyxPQXVGRCxvQkFLQztBQUFELElBNUZTLE1BdUZULG9CQUtDO0FBREQsSUEzRkYsRUhpREcsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQUQsSUEzRkMsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQUQsSUEzRlMsTUhpRFIsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMENEO0FBQ0QsSUE1RkYsRUhpREcsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0FBQUQsSUE1RkMsT0hpREEsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0FBQUQsSUE1RlMsTUhpRFIsYUF4Q0gsR0FnQkMsR0FhQyxFQVdFLE1HMkNEO0VBQ0EsV0FBQTtFQUNBLG1CQUFBOztBQ2hHSjtFVnNCQyxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBO0VHMlBDLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VPblIxQixnQ0FBQTtFQUVBLG1CQUFBO0VBQ0EscUJBQUE7RUFDQSxtQkFBQTtFQUNBLHdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxvQkFBQTtFQUNBLGNBQUE7O0FBRUEsVUFBQztFQUNBLGNBQUE7O0FBR0QsVUFBQztFQUNBLFNBQVMsRUFBVDtFQUNBLFFBQUE7RUFDQSxTQUFBO0VBQ0EsbUJBQUE7RUFDQSxrQkFBQTs7QUFNRCxhQUFDO0FBQUQsYUFBQztFQUNBLFVBQUE7RUFDQSw4QkFBQTtFQUNBLHlEQUFBOztBQU1ELGFBQUM7QUFBRCxhQUFDO0VBQ0EsYUFBQTtFQUNBLDhCQUFBO0VBQ0EseURBQUE7O0FBTUQsYUFBQztBQUFELGFBQUM7RUFDQSxVQUFBOztBQU1ELGFBQUM7QUFBRCxhQUFDO0VBQ0EsV0FBQTs7QUN2REYsY0FBYztBQUNkLGVBQWU7RUFDZCxTQUFTLEVBQVQ7RUFDQSxxQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0Esc0JBQUE7RUFDQSw0QkFBQTs7QUFHRCxjQUFjO0VBQ2Isa0JBQUE7O0FBR0QsZUFBZTtFQUNkLGlCQUFBOztBQUlBLGNBQUM7QUFBUyxjQUFDO0VBQ1Ysc0JBQWtCLDZjQUFsQjs7QUFLRCxtQkFBQztBQUFTLG1CQUFDO0VBQ1Ysc0JBQWtCLDZpQkFBbEI7O0FBS0QsV0FBQztBQUFTLFdBQUM7RUFDVixzQkFBa0IsNmlCQUFsQjs7QUM1QkYsSUFBSyxRQUVKO0VBQ0Msc0JBQUE7O0FBSEYsSUFBSyxRQU1KLE1BQUs7RUFDSixnQkFBQTtFQUNBLHFCQUFBOztBQVJGLElBQUssUUFXSjtFQUNDLHlCQUFBO0VBQ0EsMEJBQUE7O0FBRUEsSUFmRyxRQVdKLE1BSUU7RUFDQSxXQUFBOztBQUdELElBbkJHLFFBV0osTUFRRTtFQUNBLFlBQUE7O0FBcEJILElBQUssUUF3Qko7RUFDQyxhQUFBOztBQUlGO0VaWkMsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7RUFDQSxvQkFBQTtFWVdBLGlCQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0VBQ0Esc0JBQUE7RUFDQSxXQUFBO0VUMk9DLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VTM08xQixrQkFBQTs7QUFURCxPQVdDLE1BQUs7RUFDSixhQUFBOztBQVpGLE9BZUM7RUFDQyxrQkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBO0VBQ0EsZUFBQTtFQUNBLGlCQUFBOztBQUVBLE9BUEQsTUFPRTtFQUNBLDBCQUFBOztBQXZCSCxPQTJCQztFQUNDLFdBQUE7RUFDQSxzQkFBQTtFQUNBLGFBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtFQUNBLGdCQUFBO0VUaU5BLDRCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHlCQUFBO0VBQThCLDZCQUFBO0VBQzlCLG9CQUFBO0VBQXlCLDRCQUFBOztBU3BQM0IsT0EyQkMsY0FTQztFQUNDLGdCQUFBO0VBQ0Esa0JBQUE7RUFDQSxjQUFBO0VBQ0EsYUFBQTtFQUNBLFlBQUE7RUFDQSxtQkFBQTtFVHdNRCw0QkFBQTtFQUFpQyxvQ0FBQTtFQUNqQyx5QkFBQTtFQUE4Qiw2QkFBQTtFQUM5QixvQkFBQTtFQUF5Qiw0QkFBQTs7QVN2TXhCLE9BbEJGLGNBU0MsU0FTRTtFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxRQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7RUFFQSx5QkFBQTtFVHNLRix3Q0FBQTtFQUNBLG9DQUFBO0VBQ0EsZ0NBQUE7RUFLQSx5Q0FBQTtFQUE4QyxvQ0FBQTtFQUM5QyxxQ0FBQTtFQUEwQyw2QkFBQTtFQUMxQyxpQ0FBQTtFQUFzQyw0QkFBQTs7QVN2S3ZDLE9BQUMsTUFDQSxjQUFjLFNBQVE7RUFDckIsbUJBQUE7O0FBaEVILE9Bb0VDLE1BQUssY0FBZ0IsUUFFcEIsZ0JBQWdCO0VBQ2YsaUJBQUE7O0FBdkVILE9Bb0VDLE1BQUssY0FBZ0IsUUFTcEIsUUFBTztFQUNOLHNCQUFBO0VBQ0Esc0JBQUE7O0FBL0VILE9BbUZDLE1BQUssY0FBZ0IsUUFBUyxRQUFPO0VBQ3BDLHFCQUFBO0VBQ0EscUJBQUE7O0FDekhGO0VWazNCRSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTs7QVVyM0JGLFFBR0M7RUFDQyxlQUFBOztBQUpGLFFBTUM7RUFDQyxnQkFBQTs7QUFQRixRQVVDO0VBQ0MsYUFBQTs7QUFHRCxRQUFDLFVBQ0E7RUFDQyxhQUFBOztBQUZGLFFBQUMsVUFLQTtFQUNDLGdCQUFBOztBQUtIO0VBQ0MsZ0JBQUE7O0FBRUEsa0JBQUM7RUFDQSxTQUFBOztBQU1ELHNCQUFDO0FBQUQsdUJBQUM7QUFBUyxzQkFBQztBQUFELHVCQUFDO0VBQ1Ysc0JBQWtCLHlzQkFBbEI7O0FBSUEsc0JBREEsV0FDQztBQUFELHVCQURBLFdBQ0M7QUFBUyxzQkFEVixXQUNXO0FBQUQsdUJBRFYsV0FDVztFQUNWLHNCQUFrQixxdEJBQWxCOztBQU1GLHNCQUFDO0FBQ0Qsc0JBQUM7RUFDQSw2QkFBQTs7QUFLRCx1QkFBQztBQUNELHVCQUFDO0VBQ0EsZ0NBQUE7O0FDdERGO0VBQ0MsYUFBQTtFQUNBLGtCQUFBO0VBQ0EsdUJBQUE7RUFDQSxnQkFBQTtFWDRTQyw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7RVd6U0QscUJBQUE7RUFDQSxtQkFBQTtFWGd2QkMsd0NBQUE7RUFDQSxxQ0FBQTtFQUNBLG1DQUFBO0VBQ0Esb0NBQUE7RUFDQSxnQ0FBQTs7QVdqdkJELE1BQUM7RVh1UUEsNEJBQUE7RUFBaUMsb0NBQUE7RUFDakMseUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsb0JBQUE7RUFBeUIsNEJBQUE7RVd2UXpCLGVBQUE7RUFDQSxZQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7RUFDQSxlQUFBO0VBQ0Esa0JBQUE7RUFDQSxpQkFBQTtFQUNBLG1CQUFBOztBQ3pCRixJQUFLO0FBQ0wsTUFBTztBQUNQLGFBQWM7QUFDZCxNQUFPO0VBQ04sZ0JBQUE7O0FBSUQ7RUFDQyxnQkFBQTs7QUFHRDtFQUNDLDZCQUFBOztBQ1hBLFNBQUM7RUFDQSx5QkFBQTtFQUNBLFdBQUE7O0FBRkQsU0FBQyxJQUlBLFNBQ0M7QUFMRixTQUFDLElBSUEsU0FDSztBQUxOLFNBQUMsSUFJQSxTQUNTO0FBTFYsU0FBQyxJQUlBLFNBQ2E7QUFMZCxTQUFDLElBSUEsU0FDaUI7RUFDZixXQUFBOztBQU5ILFNBQUMsSUFJQSxTQUtDO0VoQllGLGVBQUE7RUFDQSxtQkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RWdCYkcsZ0JBQUE7O0FBWEgsU0FBQyxJQUlBLFNBS0MsRUFJQztFQUNDLHFCQUFBO0VBQ0EsOEJBQUE7RUFDQSxjQUFBOztBQUVBLFNBbEJILElBSUEsU0FLQyxFQUlDLEVBS0U7RUFDQSxjQUFBOztBQW5CTCxTQUFDLElBSUEsU0FvQkM7RUFDQyxXQUFBOztBQXpCSCxTQUFDLElBSUEsU0F3QkM7RUFDQyxXQUFBOztBQTdCSCxTQUFDLElBSUEsU0E0QkM7RUFDQyxrQkFBQTtFQUNBLGNBQUE7O0FBS0gsU0FBQztFQUNBLGtCQUFBOztBQUVBLFNBSEEsT0FHQztFQUNBLFdBQUE7RUFDQSxTQUFTLEVBQVQ7RUFDQSxtQkFBQTtFQUNBLGtCQUFBO0VBQ0EsTUFBQTtFQUNBLE9BQUE7RUFDQSxRQUFBO0VBQ0EsV0FBQTs7QUN4REgsSUFBSztBQUNMLE1BQU87QUFDUCxhQUFjO0FBQ2QsTUFBTztFQUNOLGlCQUFBOztBQUdELElBQUssZ0JBQWU7RUFDbkIsZUFBQTs7QUFHRDtFQUNDLG1CQUFBO0VBQ0EsWUFBQTtFQUNBLGlCQUFBOztBQUhELE9BTUM7RUFFQyxrQkFBQTtFQUNBLFVBQUE7RUFDQSxVQUFBO0VBQ0EsbUJBQUE7RUFHQSxtQkFBQTtFQUNBLDRCQUFBOztBQUVBLE9BWEQsV0FXRTtFQUNBLHlEQUFBOztBQUtILFFBQVM7RUFDUixnQkFBQTtFQUNBLFNBQUE7RUFDQSx3QkFBQTs7QUFFQSxRQUxRLG1CQUtQO0VBQ0EsWUFBQTs7QUFLRixLQUFNO0VBQ0wsZ0JBQUE7RUFDQSxjQUFBO0VBQ0EsMEJBQUE7O0FBR0QsS0FBTSxjQUFhO0VBQ2xCLGFBQUE7O0FBSUEsUUFEUSxjQUNQO0VBQ0EsYUFBQTs7QUFGRixRQUFTLGNBS1I7RUFDQyxhQUFBOztBQUlGLFFBQ0M7RUFDQyxpQkFBQTs7QUFJRjtFQUNDLGlCQUFBOztBQURELFNBR0M7RUFDQyxXQUFBO0VBQ0EsaUJBQUE7O0FBTEYsU0FHQyxNQUlDO0VBQ0MsZ0JBQUE7O0FBRUEsU0FQRixNQUlDLFNBR0U7RUFDQSx1QkFBQTtFQUNBLFdBQUE7O0FBRkQsU0FQRixNQUlDLFNBR0UsTUFJQTtFQUNDLDBCQUFBOztBQWZMLFNBR0MsTUFpQkM7RUFDQyxXQUFBO0VBQ0EsYUFBQTs7QUFHRCxTQXRCRCxNQXNCRTtFQUNBLGdCQUFBOztBQUtIO0VBQ0MsZ0JBQUE7RUFDQSxTQUFBO0VBQ0EsVUFBQTtFQUNBLHdCQUFBOztBQUVBLHVCQUFDO0VBQ0EsWUFBQTtFQUNBLFVBQUE7O0FBS0Y7RUFDQyxpQkFBQTs7QUFERCxNQUdDLElBQUc7RUFDRixpQkFBQTs7QUFKRixNQU9DO0VBQ0MsaUJBQUE7O0FBUkYsTUFPQyxjQUdDO0VBQ0MsaUJBQUE7O0FBWEgsTUFPQyxjQU9DO0VBRUMsa0JBQUE7O0FBaEJILE1Bb0JDO0VBQ0Msa0JBQUE7RUFDQSxTQUFBO0VBRUEsU0FBQTtFQUNBLGtCQUFBOztBakJ0RkYsUUFIaUM7RUE2Q2pDLE1pQnVDQztJQVVFLFVBQUE7SUFDQSxpQkFBQTtJQUVBLFVBQUE7SUFDQSxtQkFBQTs7RUFFQSxNQWhCRixXQWdCRztJQUNBLFVBQUE7SUFDQSxXQUFBOzs7QWpCbkdKLFFBSGlDO0VBNkNqQyxNaUJ1Q0M7SUF3QkUsYUFBQTs7O0FDOUlILFFBQVM7RUFDUixvQkFBQTtFZm0yQkMseUJBQUE7RUFDQSxzQkFBQTtFQUNBLHFCQUFBO0VBQ0EsaUJBQUE7RWVwMkJELGVBQUE7O0FBSUQsb0JBQXFCO0VmNmVsQixPQUFBO0VBQVMseUJBQUE7RUFDVixvQkFBQTtFQUNBLGlCQUFBO0VBQ0EsWUFBQTs7QWU1ZUYsWUFBWTtFQUNYLGtCQUFBO0Vmd2VFLE9BQUE7RUFBUywwQkFBQTtFQUNWLGtCQUFBO0VBQ0EsZUFBQTtFQUNBLFVBQUE7O0FldGVELFlBTlcsT0FNVjtFQUNBLFNBQVMsRUFBVDtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLE1BQUE7RUFDQSxVQUFBO0VBQ0EsV0FBQTtFQUNBLE9BQUE7RWZnUEEsMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RUFtQnpCLDRDQUFBO0VBQ0EseUNBQUE7RUFDQSxvQ0FBQTs7QWVwUkYsWUFBWSxPQWtCWDtFZmdRQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7RWVoUUEscUJBQUE7O0FBcEJGLFlBQVksT0F1Qlg7QUF2QkQsWUFBWSxPQXdCWDtFQUNDLGtCQUFBO0VBQ0EsVUFBQTs7QUExQkYsWUFBWSxPQTZCWDtFZnFQQyx3QkFBQTtFQUNBLHFCQUFBO0VBQ0EsZ0JBQUE7O0FlbFBGO0VmdXpCRSx5QkFBQTtFQUNBLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxpQkFBQTs7QWV2ekJGO0VBQ0MsY0FBQTtFQUNBLG9CQUFBO0VBQ0EsZ0JBQUE7RUFDQSxnQkFBQTs7QUFHQyxRQURELE9BQU0sU0FDSjtFQUNBLGVBQUE7RUFFQSxxQkFBQTtFQUNBLGdCQUFBO0VBQ0EsVUFBQTtFQUNBLHlCQUFBOztBQUdELFFBVkQsT0FBTSxTQVVKO0VBQ0EsYUFBQTs7QUFHRCxRQWRELE9BQU0sU0FjSjtFQUNBLFdBQUE7RUFDQSxpQkFBQTs7QUFHRCxRQW5CRCxPQUFNLFNBbUJKO0VBQ0EsWUFBQTtFQUNBLGdCQUFBOztBQTNCSCxRQU1DLE9BQU0sU0F3Qkw7RUFDQyxjQUFBOztBQU1ILGdCQUFnQjtBQUNoQixnQkFBZ0I7QUFDaEIsc0JBQXNCO0VBQ3JCLGFBQUE7O0FBR0QsZ0JBQWlCO0FBQ2pCLFFBQVMsT0FBTTtBQUNmLGdCQUFpQixTQUFRLFdBQVc7RUFDbkMsYUFBQTs7QUFHRCxHQUFHO0VBQ0YsVUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGtCQUFBO0VBQ0EsY0FBQTtFQUNBLHlCQUFBOztBQU5ELEdBQUcsZ0JBUUY7RUFDQyxTQUFBOztBQVRGLEdBQUcsZ0JBWUY7RUFDQyxhQUFBOztBQUdELEdBaEJFLGdCQWdCRCxjQUFlO0VBQ2Ysa0JBQUE7RWZrWUMsT0FBQTtFQUFTLHlCQUFBO0VBQ1Ysb0JBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FldFpGLEdBQUcsZ0JBdUJGLE9BQU87RUFDTixpQkFBQTs7QUFJRCxHQTVCRSxnQkE0QkE7RUFDRCxVQUFBO0VBQ0EsU0FBQTtFQUNBLDBCQUFBO0VBQ0EsV0FBQTs7QUFFQSxHQWxDQyxnQkE0QkEsS0FNQTtFQUNBLDJCQUFBOztBQUdELEdBdENDLGdCQTRCQSxLQVVBO0VBQ0Esd0JBQUE7O0FBWEYsR0E1QkUsZ0JBNEJBLEtBZUQ7RUFDQyxVQUFBO0VBQ0EsU0FBQTs7QUFJRCxHQWpEQyxnQkE0QkEsS0FxQkM7RUFDRCxrQkFBQTs7QUFFQSxHQXBEQSxnQkE0QkEsS0FxQkMsS0FHQTtFQUNBLGlCQUFBO0VBQ0EsaUJBQUE7RUFDQSxlQUFBOztBQUdELEdBMURBLGdCQTRCQSxLQXFCQyxLQVNBO0FBQ0QsR0EzREEsZ0JBNEJBLEtBcUJDLEtBVUE7RUFDQSw2QkFBQTs7QUFHRCxHQS9EQSxnQkE0QkEsS0FxQkMsS0FjQTtFQUNBLDBCQUFBOztBQUVBLEdBbEVELGdCQTRCQSxLQXFCQyxLQWNBLHNCQUdDO0VBQ0EsZ0JBQUE7O0FBSUYsR0F2RUEsZ0JBNEJBLEtBcUJDLEtBc0JBLG1CQUFtQjtBQUNwQixHQXhFQSxnQkE0QkEsS0FxQkMsS0F1QkEsbUJBQW1CO0FBQ3BCLEdBekVBLGdCQTRCQSxLQXFCQyxLQXdCQSx1QkFBdUI7QUFDeEIsR0ExRUEsZ0JBNEJBLEtBcUJDLEtBeUJBLHVCQUF1QjtFQUN2QixnQkFBQTtFQUNBLFVBQUE7O0FBR0QsR0EvRUEsZ0JBNEJBLEtBcUJDLEtBOEJBLG1CQUFtQjtBQUNwQixHQWhGQSxnQkE0QkEsS0FxQkMsS0ErQkEsdUJBQXVCO0FBQ3hCLEdBakZBLGdCQTRCQSxLQXFCQyxLQWdDQSxtQkFBbUIsT0FBTztBQUMzQixHQWxGQSxnQkE0QkEsS0FxQkMsS0FpQ0EsdUJBQXVCLE9BQU87RUFDOUIsbUJBQUE7O0FBR0QsR0F0RkEsZ0JBNEJBLEtBcUJDLEtBcUNBLG1CQUFtQjtBQUNwQixHQXZGQSxnQkE0QkEsS0FxQkMsS0FzQ0EsdUJBQXVCO0VBQ3ZCLG1CQUFBOztBQUdELEdBM0ZBLGdCQTRCQSxLQXFCQyxLQTBDQTtFQU1BLG1CQUFBOztBQUxBLEdBNUZELGdCQTRCQSxLQXFCQyxLQTBDQSx1QkFDQztFQUNBLFNBQVMsRUFBVDtFQUNBLFdBQUE7O0FBS0QsR0FuR0QsZ0JBNEJBLEtBcUJDLEtBMENBLHVCQVFFO0VBQ0QsZ0JBQUE7O0FBSUYsR0F4R0EsZ0JBNEJBLEtBcUJDLEtBdURDO0FBQUssR0F4R1AsZ0JBNEJBLEtBcUJDLEtBdURRO0VBQ1IsbUJBQUE7RUFDQSxzQkFBQTs7QUF6REYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkREO0VBQ0MsaUJBQUE7RUFDQSxnQkFBQTs7QUEvREYsR0FqREMsZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUM7RUFDQyxtQkFBQTtFQUNBLGVBQUE7O0FBbkVILEdBakRDLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUM7RUFDQyxtQkFBQTtFQUNBLGlCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VmNkNKLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlN0NyQixzQkFBQTtFQUNBLGNBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7O0FBR0MsR0FsSUosZ0JBNEJBLEtBcUJDLEtBNkRELEVBSUMsS0FJQyxPQVdFLElBQUksV0FDSDtBQUNELEdBbklKLGdCQTRCQSxLQXFCQyxLQTZERCxFQUlDLEtBSUMsT0FXRSxJQUFJLFdBRUg7RUFDQSxXQUFBO0VBQ0EseUJBQUE7RUFDQSx5QkFBQTs7QUFJRixHQTFJSCxnQkE0QkEsS0FxQkMsS0E2REQsRUFJQyxLQUlDLE9Bb0JFLEtBQUs7RUFDTCxlQUFBO0Vmd1FKLE9BQUE7RUFBUyx5QkFBQTtFQUNWLG9CQUFBO0VBQ0EsaUJBQUE7RUFDQSxZQUFBOztBZXJXQSxHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0Q7RUFDQyx5QkFBQTtFQUNBLFVBQUE7RUFDQSxXQUFBOztBQXJHRixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQztFQUNDLGtCQUFBO0VBQ0EscUJBQUE7RUFHQSxjQUFBOztBQUVBLEdBaEtGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBT0U7RUFDQSwwQkFBQTs7QUFFQSxHQW5LSCxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQUdDO0VBQ0EsYUFBQTs7QUFKRixHQWhLRixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BO0VmQUosMEJBQUE7RUFBaUMsb0NBQUE7RUFDakMsdUJBQUE7RUFBOEIsNkJBQUE7RUFDOUIsa0JBQUE7RUFBeUIsNEJBQUE7RWVBcEIsY0FBQTs7QUFFQSxHQTNLSixnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQU9FLHNCQU9BLHFCQUlFO0VBQ0EsK0JBQUE7O0FBWkgsR0FoS0YsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FPRSxzQkFPQSxxQkFRQztFQUNDLHNCQUFBOztBQUtILEdBckxGLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBNEJHO0FBQUssR0FyTFQsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0E0QlU7RUFDUixtQkFBQTtFQUNBLHNCQUFBOztBQXRJSixHQWpEQyxnQkE0QkEsS0FxQkMsS0FrR0QsR0FNQyxHQWtDQztFQUNDLFVBQUE7O0FBM0lKLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUM7RUFDQyxVQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0VBQ0EscUJBQUE7O0FBbEpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FPQztFQUNDLGVBQUE7RUFDQSxtQkFBQTs7QUF2Sk4sR0FqREMsZ0JBNEJBLEtBcUJDLEtBa0dELEdBTUMsR0FrQ0MsR0FJQyxHQVlDO0FBMUpMLEdBakRDLGdCQTRCQSxLQXFCQyxLQWtHRCxHQU1DLEdBa0NDLEdBSUMsR0FhQztFQUNDLGVBQUE7RUFDQSxTQUFBO0VBQ0Esc0JBQUE7RUFDQSxzQkFBQTtFQ2xTUCxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUR3U0EsR0ExTkUsZ0JBME5BO0VBQ0QsZ0JBQUE7O0FBSUQsR0EvTkUsZ0JBK05EO0VBQ0EsWUFBQTtFQUNBLFlBQUE7RUFDQSxnQkFBQTtFQUNBLGdCQUFBO0VBQ0Esa0JBQUE7O0FBTEQsR0EvTkUsZ0JBK05ELE1BT0E7RUN4VEQsa0JBQUE7RUFDQSxrQkFBQTtFQUVBLG9CQUFBO0VBQ0Esb0JBQUE7RURzVEUscUJBQUE7RUFDQSxtQkFBQTtFQUNBLDZCQUFBO0VBQ0EsYUFBQTtFQUNBLG9CQUFBOztBQWJGLEdBL05FLGdCQStORCxNQWdCQTtFQUVDLG9CQUFBO0VBQ0EsZ0JBQUE7O0FBbkJGLEdBL05FLGdCQStORCxNQWdCQSxHQUtDO0VBQ0MsaUJBQUE7RUFDQSxTQUFBO0VBQ0EscUJBQUE7O0FBR0QsR0ExUEEsZ0JBK05ELE1BZ0JBLEdBV0c7RUFDRCxrQkFBQTs7QUE1QkgsR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZUM7RUFDQyxXQUFBO0VBQ0EsVUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLDBCQUFBO0VBQ0EsbUJBQUE7RUFDQSxtQkFBQTtFZmxFRiw4QkFBQTtFQUNBLDJCQUFBO0VBQ0Esc0JBQUE7O0FlMEJELEdBL05FLGdCQStORCxNQWdCQSxHQWVDLEdBVUM7RUFDQyxnQkFBQTtFQUNBLFlBQUE7RUFDQSxzQkFBQTs7QUE1Q0osR0EvTkUsZ0JBK05ELE1BZ0JBLEdBZ0NDO0VBQ0MsaUJBQUE7RUFDQSxZQUFBO0VBQ0Esb0JBQUE7O0FBbkRILEdBL05FLGdCQStORCxNQWdCQSxHQWdDQyxHQUtDO0VBQ0Msa0JBQUE7O0FBR0QsR0F4UkQsZ0JBK05ELE1BZ0JBLEdBZ0NDLEdBU0U7RUFDQSxTQUFTLE9BQVQ7RUFDQSxjQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxTQUFBO0VBQ0EsUUFBQTs7QUFPTDtBQUNBLGdCQUFpQixTQUFRO0FBQ3pCO0VmaElFLDBCQUFBO0VBQWlDLG9DQUFBO0VBQ2pDLHVCQUFBO0VBQThCLDZCQUFBO0VBQzlCLGtCQUFBO0VBQXlCLDRCQUFBO0VlZ0kxQixzQkFBQTtFQzNYQSxrQkFBQTtFQUNBLG1CQUFBO0VBRUEsb0JBQUE7RUFDQSxvQkFBQTs7QUQyWEQsZ0JBQWlCLFNBQVE7QUFDekIsV0FBWTtBQUNaO0VDallDLGtCQUFBO0VBQ0EsbUJBQUE7RUFFQSxvQkFBQTtFQUNBLG9CQUFBO0VEK1hBLGdKQUFBOztBQUdELFdBQVk7RUFDWCxZQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7O0FBR0QsZ0JBQWlCLFNBQVE7RWZ2SHZCLDhCQUFBO0VBQ0EsMkJBQUE7RUFDQSxzQkFBQTtFZXVIRCxjQUFBO0VBQ0EsYUFBQTtFQUNBLFdBQUE7RUFDQSxpQkFBQTtFQUNBLFNBQUE7RUFDQSxZQUFBO0VBQ0EsYUFBQTtFQUNBLGdCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxjQUFBOztBQUdELGlCQUFpQjtFQUNoQixVQUFBO0VBQ0EsY0FBQTtFQzlaQSxlQUFBO0VBQ0EsbUJBQUE7RUFFQSxtQkFBQTtFQUNBLG9CQUFBO0VEa2FBLGdKQUFBOztBQVZELGlCQUFpQixpQkFJaEI7RUFDQyxjQUFBO0VBQ0EsbUJBQUE7O0FBTUQsaUJBWmdCLGlCQVlkLEtBQUk7RUFDTCxtQkFBQTs7O0FBS0Y7RUFDQyxvQkFBQTs7QUFERCx1QkFHQyxTQUFTO0VBQ1IsbUJBQUE7RUFDQSxpQkFBQTs7QUFMRix1QkFRQztFQUVDLFlBQUE7RUFHQSxnQkFBQTs7QUFJRjtFQUNDLGVBQUE7RUFDQSxNQUFBO0VBQ0EsV0FBQTtFQUNBLFdBQUE7O0FBSkQsZ0JBTUM7RUFDQyxpQkFBQTs7QUFQRixnQkFNQyxrQkFHQztFQUNDLGdCQUFBOztBQVZILGdCQU1DLGtCQUdDLE9BR0M7RUFDQyxnQkFBQTs7QUFPSjtFQUNDLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7O0FBRUEsS0FBQztFQUNBLGFBQUEifQ== */
+/**
+ * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+@media (max-width: 900px) {
+ .global-is-mobile-hidden {
+ display: none !important;
+ }
+}
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section {
+ display: block;
+}
+body,
+html {
+ margin: 0;
+ padding: 0;
+ font: 16px / 1.8 Arial, 'Helvetica Neue', Helvetica, sans-serif;
+ font-weight: 300;
+ color: #575757;
+}
+.grid-width-10 {
+ width: 10%;
+}
+.grid-width-20 {
+ width: 20%;
+}
+.grid-width-30 {
+ width: 30%;
+}
+.grid-width-40 {
+ width: 40%;
+}
+.grid-width-50 {
+ width: 50%;
+}
+.grid-width-60 {
+ width: 60%;
+}
+.grid-width-70 {
+ width: 70%;
+}
+.grid-width-80 {
+ width: 80%;
+}
+.grid-width-90 {
+ width: 90%;
+}
+.grid-width-100 {
+ width: 100%;
+}
+@media (max-width: 900px) {
+ .grid-width-10,
+ .grid-width-20,
+ .grid-width-30,
+ .grid-width-40,
+ .grid-width-50,
+ .grid-width-60,
+ .grid-width-70,
+ .grid-width-80,
+ .grid-width-90,
+ .grid-width-100 {
+ width: 100%;
+ }
+}
+*[class*="grid-width"] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ padding-left: 4%;
+ padding-right: 4%;
+ float: left;
+}
+*[class*="grid-width"]:after,
+.grid-container:after,
+*[class*="grid-width"]:before,
+.grid-container:before {
+ content: '';
+ display: block;
+ overflow: hidden;
+ visibility: hidden;
+ font-size: 0;
+ line-height: 0;
+ width: 0;
+ height: 0;
+}
+*[class*="grid-width"]:after,
+.grid-container:after {
+ clear: both;
+}
+.grid-container {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ margin-left: auto;
+ margin-right: auto;
+}
+.grid-container-nested *[class*="grid-width"]:first-child {
+ padding-left: 0;
+}
+.grid-container-nested *[class*="grid-width"]:last-child {
+ padding-right: 0;
+}
+@media (max-width: 900px) {
+ .grid-container-nested *[class*="grid-width"]:first-child {
+ padding-left: 4%;
+ }
+ .grid-container-nested *[class*="grid-width"]:last-child {
+ padding-right: 4%;
+ }
+}
+.header-a {
+ min-height: 140px;
+ overflow: hidden;
+}
+.header-a .header-a-logo {
+ margin: 40px 0 0;
+}
+@media (max-width: 900px) {
+ .header-a .header-a-logo {
+ text-align: center;
+ }
+}
+.header-a .header-a-logo img {
+ border: transparent;
+}
+.navigation-a {
+ height: 30px;
+ background: #3D3D3D;
+ position: absolute;
+ left: 0;
+ right: 0;
+ top: 0;
+ padding: 0;
+ overflow: hidden;
+}
+@media (max-width: 900px) {
+ .navigation-a {
+ text-align: center;
+ }
+}
+.navigation-a ul {
+ list-style: none;
+ margin: 0;
+ overflow: hidden;
+}
+.navigation-a ul li,
+.navigation-a ul li a {
+ display: inline-block;
+}
+@media (max-width: 900px) {
+ .navigation-a ul {
+ width: auto;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ display: inline-block;
+ float: none;
+ }
+ .navigation-a ul:before,
+ .navigation-a ul:after {
+ display: none;
+ }
+}
+.navigation-a ul.navigation-a-left {
+ text-align: left;
+}
+@media (max-width: 900px) {
+ .navigation-a ul.navigation-a-left {
+ padding-right: 0;
+ }
+}
+.navigation-a ul.navigation-a-right {
+ text-align: right;
+}
+@media (max-width: 900px) {
+ .navigation-a ul.navigation-a-right {
+ padding-left: 23px;
+ }
+}
+.navigation-a ul li + li {
+ margin-left: 23px;
+}
+.navigation-a ul li a {
+ font-size: 10px;
+ font-size: 0.625rem;
+ line-height: 18px;
+ line-height: 1.13rem;
+ line-height: 30px;
+ float: left;
+ color: #ddd;
+ font-weight: bold;
+ text-decoration: none;
+ text-transform: uppercase;
+}
+.navigation-a ul li a:hover {
+ cursor: pointer;
+ color: #fff;
+}
+.icon-navigation-a-github:before,
+.icon-navigation-a-github:after {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAATCAYAAAByUDbMAAAAAXNSR0IArs4c6QAAAa9JREFUOBGNlM8rRGEUht0pDGosjKYZpUSIkuwsiCaxUEqK2VOUBcrWv2BjxUJho6wsLLDzY2fhD5iR5NeOcJvIjOfM3O927m3mmlPPnPec835nZprvjlVVJvL5fCOjMWiDCLzCLVxZlpUj/x8saYV9+IZS8UJzFWoCt2GYgk+oJG4wJUouZDANv5VsUZ47dNSzkEYHfIDEHixDWgoiB/rTHlPPwBNInPmXHRb7hdeUDFG10AN1Th1Fd5mD6BMwMVnoUyVA3t3EkjkQlDFfmwPkc7NsQTXf0bGgJWaGb16dk18+EmLYawzkC+6Q3KdK4kiZqtGdskx/kmdlCJS86RuGrDLFZJmtGi1KB0q+VhOGsDLZsiyjGsOY4qoOkrO+YUauwCDoOKWo9xk9JfM+MPdSzqZdA8UlyDO3AvKLPsIG9LsmBHUKduEHdCy6PrpJZyKXdwKMOemaissOHJ9O9xTeh57GluMYIsehWy8STW/d8ZhkI0b9PjFasA1fsAOb0KCN1PLXYyKLGNdzj2YYArnZDyDRrA3Ua4UuDzd5QM/KaoxhmAO5Om5Qt8OI2/CJP6MVa1dvltQ5AAAAAElFTkSuQmCC");
+}
+.navigation-b {
+ text-align: right;
+ margin: 52px 0 0;
+ overflow: visible;
+}
+@media (max-width: 900px) {
+ .navigation-b {
+ text-align: center;
+ margin-top: 20px;
+ padding: 0;
+ }
+}
+.navigation-b ul {
+ padding: 0;
+ list-style: none;
+ margin: 0;
+ overflow: visible;
+}
+.navigation-b ul li,
+.navigation-b ul li a {
+ display: inline-block;
+}
+@media (max-width: 900px) {
+ .navigation-b ul {
+ display: table;
+ width: 100%;
+ padding-bottom: 1.5em;
+ }
+}
+@media (max-width: 900px) {
+ .navigation-b ul li {
+ display: table-row;
+ }
+}
+.navigation-b ul li + li {
+ margin-left: 20px;
+}
+@media (max-width: 900px) {
+ .navigation-b ul li + li {
+ margin-left: 0;
+ }
+}
+.navigation-b ul li a {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ text-transform: uppercase;
+ text-decoration: none;
+ outline: none;
+}
+@media (max-width: 900px) {
+ .navigation-b ul li a {
+ width: 100%;
+ -webkit-border-radius: 0;
+ -webkit-background-clip: padding-box;
+ -moz-border-radius: 0;
+ -moz-background-clip: padding;
+ border-radius: 0;
+ background-clip: padding-box;
+ }
+}
+.footer-a {
+ font-size: 13px;
+ font-size: 0.8125rem;
+ line-height: 23.4px;
+ line-height: 1.46rem;
+ padding-top: 2.25em;
+ padding-bottom: 2.25em;
+ overflow: hidden;
+ color: #8a8a8a;
+}
+.footer-a a {
+ color: #27C0D8;
+ text-decoration: none;
+ border-bottom: 1px dotted #27C0D8;
+}
+.footer-a a:hover {
+ color: #23adc2;
+}
+.footer-a p {
+ margin: 0;
+ display: inline-block;
+ text-align: center;
+}
+.content {
+ font-size: 14px;
+ font-size: 0.875rem;
+ line-height: 25.2px;
+ line-height: 1.57rem;
+ overflow: hidden;
+ padding-top: 1.5em;
+ padding-bottom: 1.5em;
+}
+.content p {
+ margin: 0.75em 0;
+}
+.content ul,
+.content ol,
+.content pre,
+.content blockquote,
+.content textarea:not([class^="cke"]),
+.content .cke {
+ margin: 1.875em 0;
+}
+.content code,
+.content kbd {
+ -webkit-border-radius: 3px;
+ -webkit-background-clip: padding-box;
+ -moz-border-radius: 3px;
+ -moz-background-clip: padding;
+ border-radius: 3px;
+ background-clip: padding-box;
+ padding: 3px 4px;
+}
+.content pre,
+.content code,
+.content kbd,
+.content blockquote {
+ background: #f5f5f5;
+}
+.content blockquote,
+.content pre {
+ background: none;
+ border-left: 4px solid #27C0D8;
+ padding: 1.5em 2.25em;
+}
+.content p a,
+.content ul a,
+.content ol a,
+.content blockquote a,
+.content h1 a,
+.content h2 a,
+.content h3 a,
+.content h4 a,
+.content h5 a {
+ color: #27C0D8;
+ text-decoration: none;
+ border-bottom: 1px dotted #27C0D8;
+}
+.content p a:hover,
+.content ul a:hover,
+.content ol a:hover,
+.content blockquote a:hover,
+.content h1 a:hover,
+.content h2 a:hover,
+.content h3 a:hover,
+.content h4 a:hover,
+.content h5 a:hover {
+ color: #23adc2;
+}
+.content h1,
+.content h2,
+.content h3,
+.content h4,
+.content h5 {
+ color: #000;
+ font-weight: 100;
+}
+.content h1 code,
+.content h2 code,
+.content h3 code,
+.content h4 code,
+.content h5 code,
+.content h1 kbd,
+.content h2 kbd,
+.content h3 kbd,
+.content h4 kbd,
+.content h5 kbd {
+ font-size: inherit;
+}
+.content h1 a.content-heading-anchor,
+.content h2 a.content-heading-anchor,
+.content h3 a.content-heading-anchor,
+.content h4 a.content-heading-anchor,
+.content h5 a.content-heading-anchor {
+ font-weight: 100;
+ vertical-align: middle;
+ opacity: 0;
+ border: 0;
+}
+.content h1:hover a.content-heading-anchor,
+.content h2:hover a.content-heading-anchor,
+.content h3:hover a.content-heading-anchor,
+.content h4:hover a.content-heading-anchor,
+.content h5:hover a.content-heading-anchor {
+ opacity: 1;
+}
+.content h1:target a,
+.content h2:target a,
+.content h3:target a,
+.content h4:target a,
+.content h5:target a {
+ -webkit-animation: targetLinkOpacity 0.5s linear alternate;
+ -moz-animation: targetLinkOpacity 0.5s linear alternate;
+ -o-animation: targetLinkOpacity 0.5s linear alternate;
+ animation: targetLinkOpacity 0.5s linear alternate;
+ opacity: 1;
+}
+.content input,
+.content select,
+.content textarea:not([class^="cke"]) {
+ -webkit-border-radius: 3px;
+ -webkit-background-clip: padding-box;
+ -moz-border-radius: 3px;
+ -moz-background-clip: padding;
+ border-radius: 3px;
+ background-clip: padding-box;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08);
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08);
+ font: inherit;
+ color: inherit;
+ border: 1px solid #D9D9D9;
+ padding: .2em .5em;
+}
+.content input:focus,
+.content select:focus,
+.content textarea:not([class^="cke"]):focus {
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08), 0 0 8px #93c6ef;
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08), 0 0 8px #93c6ef;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.08), 0 0 8px #93c6ef;
+}
+.content abbr {
+ border-bottom: 1px dotted #666;
+ cursor: pointer;
+}
+.content blockquote {
+ font-style: italic;
+ font-family: Georgia, Times, "Times New Roman", serif;
+ font-size: 16px;
+ font-size: 1rem;
+ line-height: 28.8px;
+ line-height: 1.8rem;
+}
+.content em {
+ font-style: italic;
+}
+.content h1 {
+ font-size: 36px;
+ font-size: 2.25rem;
+ line-height: 64.8px;
+ line-height: 4.05rem;
+ margin: 1.125em 0 0;
+}
+.content h2 {
+ font-size: 27.2px;
+ font-size: 1.7rem;
+ line-height: 48.96px;
+ line-height: 3.06rem;
+ margin: 0.9em 0 0;
+}
+.content h3 {
+ font-size: 24px;
+ font-size: 1.5rem;
+ line-height: 43.2px;
+ line-height: 2.7rem;
+ font-weight: 500;
+ margin: 0.75em 0 0;
+}
+.content h4 {
+ font-size: 19.2px;
+ font-size: 1.2rem;
+ line-height: 34.56px;
+ line-height: 2.16rem;
+ font-weight: 500;
+ margin: 0.75em 0 0;
+}
+.content h5 {
+ font-size: 17.6px;
+ font-size: 1.1rem;
+ line-height: 31.68px;
+ line-height: 1.98rem;
+ font-weight: 500;
+ margin: 0.75em 0 0;
+}
+.content hr {
+ border: 0;
+ border-top: 4px solid #D9D9D9;
+ margin: 1.5em 0;
+}
+.content input[type="text"] {
+ height: 1.8em;
+ line-height: 1.8em;
+}
+.content input[type="button"] {
+ -webkit-appearance: button;
+ -moz-appearance: button;
+ appearance: button;
+}
+.content kbd {
+ font-size: 12px;
+ font-size: 0.75rem;
+ line-height: 21.6px;
+ line-height: 1.35rem;
+ font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
+ padding: 2px 6px;
+ -webkit-box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;
+ -moz-box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;
+ box-shadow: 0 0 4px #fff inset, 0 2px 0 #D9D9D9;
+}
+.content p img {
+ vertical-align: middle;
+}
+.content p pre {
+ padding: 1.5em;
+}
+.content pre {
+ padding: 0;
+ border: 0;
+ tab-size: 4;
+ -o-tab-size: 4;
+ -moz-tab-size: 4;
+}
+.content pre,
+.content code {
+ font-size: 11.89px;
+ font-size: 0.743rem;
+ line-height: 21.4px;
+ line-height: 1.34rem;
+ font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
+}
+.content pre a,
+.content code a {
+ border: 0;
+}
+.content pre code {
+ padding: 0.75em;
+ display: block;
+}
+.content strong {
+ color: #000;
+}
+.content ul ul,
+.content ol ul,
+.content ul ol,
+.content ol ol {
+ margin: 0.75em 0;
+}
+.content ul li,
+.content ol li {
+ font-size: 14px;
+ font-size: 0.875rem;
+ line-height: 30.24px;
+ line-height: 1.89rem;
+}
+.content textarea:not([class^="cke"]) {
+ width: 100%;
+}
+.content div.todo {
+ border: 2px dotted #444;
+ padding: 10px;
+ margin: 60px 0 10px 0;
+ /* Remove me some day */
+}
+.content div.todo:before {
+ content: "TODO";
+ font-weight: bold;
+}
+body a.button-a,
+body button.button-a,
+body input.button-a {
+ -webkit-border-radius: 3px;
+ -webkit-background-clip: padding-box;
+ -moz-border-radius: 3px;
+ -moz-background-clip: padding;
+ border-radius: 3px;
+ background-clip: padding-box;
+ font-size: 14px;
+ font-size: 0.875rem;
+ line-height: 25.2px;
+ line-height: 1.57rem;
+ height: 36px;
+ line-height: 36px;
+ padding: 0 1.1em;
+ font-weight: 700;
+ color: #3e3e3e;
+ white-space: nowrap;
+ text-decoration: none;
+ display: inline-block;
+ cursor: pointer;
+ border: 0;
+ vertical-align: middle;
+ margin: 1px 0;
+ background: transparent;
+}
+body a.button-a.icon-pos-left,
+body button.button-a.icon-pos-left,
+body input.button-a.icon-pos-left {
+ padding-left: .8em;
+}
+body a.button-a.icon-pos-right,
+body button.button-a.icon-pos-right,
+body input.button-a.icon-pos-right {
+ padding-right: .8em;
+}
+body a.button-a.button-a-no-text,
+body button.button-a.button-a-no-text,
+body input.button-a.button-a-no-text {
+ -webkit-border-radius: 100px;
+ -webkit-background-clip: padding-box;
+ -moz-border-radius: 100px;
+ -moz-background-clip: padding;
+ border-radius: 100px;
+ background-clip: padding-box;
+ width: 36px;
+ padding: 0;
+ text-indent: -999px;
+ overflow: hidden;
+ position: relative;
+ text-align: center;
+}
+body a.button-a.button-a-no-text:before,
+body button.button-a.button-a-no-text:before,
+body input.button-a.button-a-no-text:before {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ margin: -9px 0 0 -9px;
+}
+@media (max-width: 900px) {
+ body a.button-a.button-a-mobile-collapsed,
+ body button.button-a.button-a-mobile-collapsed,
+ body input.button-a.button-a-mobile-collapsed {
+ -webkit-border-radius: 100px;
+ -webkit-background-clip: padding-box;
+ -moz-border-radius: 100px;
+ -moz-background-clip: padding;
+ border-radius: 100px;
+ background-clip: padding-box;
+ width: 36px;
+ padding: 0;
+ text-indent: -999px;
+ overflow: hidden;
+ position: relative;
+ text-align: center;
+ }
+ body a.button-a.button-a-mobile-collapsed:before,
+ body button.button-a.button-a-mobile-collapsed:before,
+ body input.button-a.button-a-mobile-collapsed:before {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ margin: -9px 0 0 -9px;
+ }
+ body a.button-a.button-a-mobile-collapsed:before,
+ body button.button-a.button-a-mobile-collapsed:before,
+ body input.button-a.button-a-mobile-collapsed:before {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ margin: -9px 0 0 -9px;
+ }
+}
+body a.button-a:active,
+body button.button-a:active,
+body input.button-a:active,
+body a.button-a:hover,
+body button.button-a:hover,
+body input.button-a:hover {
+ color: #fff;
+ background: #23adc2;
+}
+body a.button-a:focus,
+body button.button-a:focus,
+body input.button-a:focus {
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #93c6ef;
+ -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #93c6ef;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px #93c6ef;
+}
+body a.button-a-soft,
+body button.button-a-soft,
+body input.button-a-soft {
+ background: #e7e7e7;
+}
+body a.button-a-soft:active,
+body button.button-a-soft:active,
+body input.button-a-soft:active,
+body a.button-a-soft:hover,
+body button.button-a-soft:hover,
+body input.button-a-soft:hover {
+ color: #3e3e3e;
+ background: #cecece;
+}
+body a.button-a-background,
+body button.button-a-background,
+body input.button-a-background,
+body a.navigation-b ul li a:hover,
+body button.navigation-b ul li a:hover,
+body input.navigation-b ul li a:hover {
+ color: #fff;
+ background: #27C0D8;
+}
+body a.button-a-background:active,
+body button.button-a-background:active,
+body input.button-a-background:active,
+body a.button-a-background:hover,
+body button.button-a-background:hover,
+body input.button-a-background:hover,
+body a.navigation-b ul li a:hover:active,
+body button.navigation-b ul li a:hover:active,
+body input.navigation-b ul li a:hover:active,
+body a.navigation-b ul li a:hover:hover,
+body button.navigation-b ul li a:hover:hover,
+body input.navigation-b ul li a:hover:hover {
+ color: #fff;
+ background: #23adc2;
+}
+.balloon-a {
+ font-size: 12px;
+ font-size: 0.75rem;
+ line-height: 21.6px;
+ line-height: 1.35rem;
+ -webkit-border-radius: 3px;
+ -webkit-background-clip: padding-box;
+ -moz-border-radius: 3px;
+ -moz-background-clip: padding;
+ border-radius: 3px;
+ background-clip: padding-box;
+ border-bottom: 3px solid #d4d4d4;
+ background: #ebebeb;
+ display: inline-block;
+ white-space: nowrap;
+ padding: .4em 1.2em .2em;
+ font-weight: 700;
+ position: relative;
+ z-index: 1000;
+ text-transform: none;
+ color: #575757;
+}
+.balloon-a:hover {
+ color: #575757;
+}
+.balloon-a:before {
+ content: '';
+ width: 0;
+ height: 0;
+ border-style: solid;
+ position: absolute;
+}
+.balloon-a-ne:before,
+.balloon-a-nw:before {
+ top: -13px;
+ border-width: 0 9px 15.6px 9px;
+ border-color: transparent transparent #ebebeb transparent;
+}
+.balloon-a-se:before,
+.balloon-a-sw:before {
+ bottom: -13px;
+ border-width: 15.6px 9px 0 9px;
+ border-color: #ebebeb transparent transparent transparent;
+}
+.balloon-a-nw:before,
+.balloon-a-sw:before {
+ left: 20px;
+}
+.balloon-a-ne:before,
+.balloon-a-se:before {
+ right: 20px;
+}
+.icon-pos-left:before,
+.icon-pos-right:after {
+ content: '';
+ display: inline-block;
+ width: 18px;
+ height: 18px;
+ vertical-align: middle;
+ background-repeat: no-repeat;
+}
+.icon-pos-left:before {
+ margin-right: 10px;
+}
+.icon-pos-right:after {
+ margin-left: 10px;
+}
+.icon-download:before,
+.icon-download:after {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAQFJREFUOBGtVDESgjAQBGfobHwE/AIa/AN/8EEWfMWGZ+gDaG2ws8BdyY13SRgGcGducre3WQ5NSJIIxnGsES3ijhhcMCdXR7ZYCqIc0SGWQE1ud7sKjRLxXHJQfWpLYwaCk6wxET/u+U2GIngd8yRViINau28bBH/YAGqvSQPhRNQHqBqj3FY0NKq27TW7qhSTDaCOhkaRAj7Hmm8S4V+c6C+gUa+crsizuWmoc70MKbWCnqPy2GvcUJxE4a/sIajRaGkU+/sf4IuISQGePR/T/QMbHEhwPLVnMWPuOCwGnWg41dwVeaN3ccHch70idIRi/6WV0WC2/zMiZm661R+2DxyEdjTuST3mAAAAAElFTkSuQmCC");
+}
+.icon-question-mark:before,
+.icon-question-mark:after {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAUhJREFUOBGllLFOAkEQhjk0WthT2JFA7Czsqc7OxFLewEeAZ/AVbO0tTLTSBKhstTBUNkYLEoVAbD2//zILe5e9uwCT/JnZmX/+m83ebq0WsCRJYnANxmBhUKxcHGjJpiC1wQBUmTjtbLetKHTAT5WCVxe3kxEjoUmKRL6pvYEZyJt6VpOxCG3nmfyx+yJxBM7BFPg2SDlkTv2sxZqi4YnUvfgswI9FuHAkzz9EUTTRmqYeTifXsvoj/s9i57oi6ljz9kviFdyBCbgHe+rCn4C8jVXQ18rshuKOiTSIXwLkRZWQTurARJrE7wERpea7kD7BkcgB+yB3CFGlPmgqCNiXhEagSGif2qU1Ln8FW/tupK3pXhXZrWNDuCoikY/rHPMT5KFr2MAPTSM90rIrUjJIeq1WV0RTwN7+0rrtILb9M+LEbLq1H7Z/Ea3+RvBddl0AAAAASUVORK5CYII=");
+}
+.icon-close:before,
+.icon-close:after {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAUlJREFUOBGllDFuwzAMRe3Cd+jYKUCzd/XkDtm9dsoVOuUqBnqBoodwgBwiW8ZsXTIWqPu+Iia0LMAoTOBbJEV+UZTkosjIMAwN6MARXCKky9dkUsYuglagB3OimNU4O1pM1OB7jsHNK7YekeFQJZ5kj/0LcnLA+RMnlHOvDMNv5wO7BFuQkn3hq0ALjKwPVeF4BSaqpLRy0T1ZIHFz75bE2BR8dBImqmBrwRplg09QmR/9GZyBSadAHauXCZkRROKURLlHEemepJIlIyhHotzLg1/N6erTxtmmvqA8muHGIbc1rTBqrEuwnqWnGbbmmz0hwaHtvM2QhWbrXZnosvnTWWPrdCY9w7cDJtf3h9VHjy5Zq9UZ08beyJh7Aicg6W/VYvgnIjJdNn9PMIOITJWcgnV9VvcnEitY/mitNFZZ/hsxsljdv39sfybRQ4R/kU0MAAAAAElFTkSuQmCC");
+}
+.ie8 .switch > * {
+ vertical-align: middle;
+}
+.ie8 .switch input[type="radio"] {
+ margin: 0 0.25em;
+ display: inline-block;
+}
+.ie8 .switch label {
+ margin-left: 0 !important;
+ margin-right: 0 !important;
+}
+.ie8 .switch label[data-for="1"] {
+ float: left;
+}
+.ie8 .switch label[data-for="2"] {
+ float: right;
+}
+.ie8 .switch .switch-inner {
+ display: none;
+}
+.switch {
+ font-size: 14px;
+ font-size: 0.875rem;
+ line-height: 25.2px;
+ line-height: 1.57rem;
+ font-weight: bold;
+ background-color: #27C0D8;
+ overflow: hidden;
+ display: inline-block;
+ padding: 0.75em 0.25em;
+ color: #fff;
+ -webkit-border-radius: 3px;
+ -webkit-background-clip: padding-box;
+ -moz-border-radius: 3px;
+ -moz-background-clip: padding;
+ border-radius: 3px;
+ background-clip: padding-box;
+ position: relative;
+}
+.switch input[type="radio"] {
+ display: none;
+}
+.switch label {
+ position: relative;
+ z-index: 2;
+ float: left;
+ cursor: pointer;
+ padding: 0 0.75em;
+}
+.switch label:hover {
+ text-decoration: underline;
+}
+.switch .switch-inner {
+ float: left;
+ background-color: #FFF;
+ height: 1.5em;
+ width: 4.125em;
+ padding: 2px;
+ margin: 0 0.25em;
+ -webkit-border-radius: 5.5px;
+ -webkit-background-clip: padding-box;
+ -moz-border-radius: 5.5px;
+ -moz-background-clip: padding;
+ border-radius: 5.5px;
+ background-clip: padding-box;
+}
+.switch .switch-inner .handler {
+ overflow: hidden;
+ position: relative;
+ display: block;
+ height: 1.5em;
+ width: 1.5em;
+ background: #25b4cb;
+ -webkit-border-radius: 4.5px;
+ -webkit-background-clip: padding-box;
+ -moz-border-radius: 4.5px;
+ -moz-background-clip: padding;
+ border-radius: 4.5px;
+ background-clip: padding-box;
+}
+.switch .switch-inner .handler:before {
+ content: '';
+ display: block;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 3px;
+ left: 0;
+ background-color: #34c4da;
+ -webkit-border-bottom-left-radius: 4.5px;
+ -moz-border-radius-bottomleft: 4.5px;
+ border-bottom-left-radius: 4.5px;
+ -webkit-border-bottom-right-radius: 4.5px;
+ -webkit-background-clip: padding-box;
+ -moz-border-radius-bottomright: 4.5px;
+ -moz-background-clip: padding;
+ border-bottom-right-radius: 4.5px;
+ background-clip: padding-box;
+}
+.switch:hover .switch-inner .handler:before {
+ background: #45c9dd;
+}
+.switch input[data-num="2"]:checked ~ .switch-inner > .handler {
+ margin-left: auto;
+}
+.switch input[data-num="2"]:checked ~ label[data-for="1"] {
+ padding-right: 5.125em;
+ margin-right: -4.375em;
+}
+.switch input[data-num="1"]:checked ~ label[data-for="2"] {
+ padding-left: 5.125em;
+ margin-left: -4.375em;
+}
+.toggler {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.toggler label {
+ cursor: pointer;
+}
+.toggler [data-collapse] {
+ display: inherit;
+}
+.toggler [data-expand] {
+ display: none;
+}
+.toggler.collapsed [data-collapse] {
+ display: none;
+}
+.toggler.collapsed [data-expand] {
+ display: inherit;
+}
+.toggler-container {
+ overflow: hidden;
+}
+.toggler-container.collapsed {
+ height: 0;
+}
+.icon-toggler-expanded:before,
+.icon-toggler-collapsed:before,
+.icon-toggler-expanded:after,
+.icon-toggler-collapsed:after {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAByCAYAAABeOoENAAAAAXNSR0IArs4c6QAAAbxJREFUaAXtmT1KBEEQhRdFQdBEMfQEBoaGopl3MfECXsFERLyBh/AUIuwJDEUQM//eB11Dz1A1uzotGFTBY2rr58306+kNpmazP7Z98V8Kj8JrAT4xcgttXRVXwofwFYAcNdS6RuJegOBTuBUOhc0CfGLkqKHWJeMuFDwJJ0Jk5Kihlp6esW4embuNkVgTNdTS09MMEbkDj76sUUsPvZ2xIwTRATsQuBuxGsTIYdSSo7cztpggwprdyKlJ8ImZUUuM3s48ol1lXwQjwydm5hINl2bF53KMCL82d2mR2GvqnBfg1+aKPbb9p+oGtYXbT1GTFxKiZkfEyHgy7x0y0clR454zSGpDMzaA3fzV30hNln4qkAqkAqlAKpAKpAKpQCqQCqQCqUAqkAqkAqlAKpAKpAKpQCrw3xWY/GGcz++TP9U3Gx40GWdEAxabXA33NBywRCOfdzFcCztDJv12Rz7REMpmIc9qPBNWK0J3COWNxegxIrs+KHZcyHpjsZUSXPaypcLtseJFS3tT84WwUZG4S4vEZkl3wl5FYK4rdrT9R9Y1uIbbT12TFxKiZkfEyCYfWojMJv+NGNGPr99GI9DP7P9TCgAAAABJRU5ErkJggg==");
+}
+.icon-toggler-expanded.icon-light:before,
+.icon-toggler-collapsed.icon-light:before,
+.icon-toggler-expanded.icon-light:after,
+.icon-toggler-collapsed.icon-light:after {
+ background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAByCAYAAABeOoENAAAAAXNSR0IArs4c6QAAAcVJREFUaAXtmT9KA1EQxhMlASE2SkpPkCJlStHOu3gGwRPYBAm5gYfwFBKwtrARRAh26vr7ljfx7TrLChtBcAa+zOSbPy/7vcTC6fV+04qimIArsALrBMXiJq1nUzQEc/AOmkw51QzdgUqAWyD7AEswA6MExeKUk6n2+zBInSJ7BKfuaZDKpRpcMa/UQUgTfWSd1jjEmlSTatXzpRlvJKJsacVtXrVlB72bWgjdiGwmEj8FOq1u4qapRprJVvkgXbFsZCTxomSqL4ssr0uQrY3TJ/AGjeFfVJlM8diaiCuDdlLiIfmNcP1+/wnu0hoVJ84oq7XeUhNXbE4dgPuEgU2Qh3PFbrx+Gs6E2hD/+tMJ3b+QadB2fiLZsG4/2poG3f6M5MMiDgVCgVAgFAgFQoFQIBQIBUKBUCAUCAVCgVAgFAgFQoFQIBQIBf66AiwLuv1jnAH/Zb/Go5abq/qdwvsLFhJNK583ctfg0Bnmrnwq+zVrYoDZM8E52M1yP9uvqcGmZP6O+CTl3LWYHdTm9yk4aCzilLZHe6XmAuzZEGL30ZrEpr64AUc2wDycK7a7X6P42BpzD+9fv4pIxn4tWznnwm0r/gQpiG1tFshTowAAAABJRU5ErkJggg==");
+}
+.icon-toggler-expanded:before,
+.icon-toggler-expanded:after {
+ background-position: top left;
+}
+.icon-toggler-collapsed:before,
+.icon-toggler-collapsed:after {
+ background-position: bottom left;
+}
+.modal {
+ padding: 20px;
+ border-radius: 3px;
+ background-color: white;
+ max-width: 700px;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ width: 80% !important;
+ top: 50% !important;
+ -webkit-transform: translate(-50%, -50%) !important;
+ -moz-transform: translate(-50%, -50%) !important;
+ -o-transform: translate(-50%, -50%) !important;
+ -ms-transform: translate(-50%, -50%) !important;
+ transform: translate(-50%, -50%) !important;
+}
+.modal-close {
+ -webkit-border-radius: 100px;
+ -webkit-background-clip: padding-box;
+ -moz-border-radius: 100px;
+ -moz-background-clip: padding;
+ border-radius: 100px;
+ background-clip: padding-box;
+ cursor: pointer;
+ height: 18px;
+ width: 18px;
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ font-size: 17px;
+ text-align: center;
+ line-height: 19px;
+ background: #cccccc;
+}
+main .grid-container,
+header .grid-container,
+.navigation-a > div,
+footer > div {
+ max-width: 968px;
+}
+.header-a {
+ margin-top: 30px;
+}
+.footer-a {
+ border-top: 1px solid #D9D9D9;
+}
+.adjoined-top {
+ background-color: #27C0D8;
+ color: #fff;
+}
+.adjoined-top .content h1,
+.adjoined-top .content h2,
+.adjoined-top .content h3,
+.adjoined-top .content h4,
+.adjoined-top .content h5 {
+ color: #fff;
+}
+.adjoined-top .content p {
+ font-size: 18px;
+ font-size: 1.125rem;
+ line-height: 32.4px;
+ line-height: 2.02rem;
+ font-weight: 100;
+}
+.adjoined-top .content p a {
+ text-decoration: none;
+ border-bottom: 1px dotted #fff;
+ color: inherit;
+}
+.adjoined-top .content p a:hover {
+ color: #e6e6e6;
+}
+.adjoined-top .content button {
+ color: #fff;
+}
+.adjoined-top .content strong {
+ color: #fff;
+}
+.adjoined-top .content code {
+ font-size: inherit;
+ color: #27C0D8;
+}
+.adjoined-bottom {
+ position: relative;
+}
+.adjoined-bottom:before {
+ z-index: -1;
+ content: '';
+ background: #27C0D8;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ height: 50%;
+}
+main .grid-container,
+header .grid-container,
+.navigation-a > div,
+footer > div {
+ max-width: 1052px;
+}
+main .grid-container.freed-width {
+ max-width: none;
+}
+.switch {
+ background: #25b4cb;
+ float: right;
+ overflow: visible;
+}
+.switch .balloon-a {
+ position: absolute;
+ top: -40px;
+ right: 50%;
+ margin-right: -15px;
+ background: #FFEFC1;
+ border-bottom-color: #DCDCA4;
+}
+.switch .balloon-a:before {
+ border-color: #FFEFC1 transparent transparent transparent;
+}
+#toolbar .editors-container {
+ overflow: hidden;
+ height: 0;
+ transition: height 200ms;
+}
+#toolbar .editors-container.active {
+ height: auto;
+}
+#main #editor {
+ background: #FFF;
+ padding: 2% 4%;
+ border: dashed 5px #27C0D8;
+}
+#main .adjoined-top:before {
+ height: 335px;
+}
+#toolbar .adjoined-top:before {
+ height: 219px;
+}
+#toolbar .adjoined-top .grid-container-nested {
+ height: 147px;
+}
+.content .grid-switch-magic {
+ margin: 3.5em 0 0;
+}
+#info-box {
+ padding-bottom: 0;
+}
+#info-box > div {
+ width: 100%;
+ text-align: right;
+}
+#info-box > div .toggler {
+ padding-right: 0;
+}
+#info-box > div .toggler:hover {
+ background: transparent;
+ color: #000;
+}
+#info-box > div .toggler:hover > label {
+ text-decoration: underline;
+}
+#info-box > div h2 {
+ float: left;
+ margin-top: 0;
+}
+#info-box > div#instructions-container {
+ text-align: left;
+}
+#toolbarModifierWrapper {
+ overflow: hidden;
+ height: 0;
+ opacity: 0;
+ transition: height 200ms;
+}
+#toolbarModifierWrapper.active {
+ height: auto;
+ opacity: 1;
+}
+header {
+ overflow: visible;
+}
+header div.grid-container {
+ overflow: visible;
+}
+header .navigation-b {
+ overflow: visible;
+}
+header .navigation-b ul {
+ overflow: visible;
+}
+header .navigation-b a {
+ position: relative;
+}
+header .balloon-a {
+ position: absolute;
+ top: 48px;
+ left: 50%;
+ margin-left: -35px;
+}
+@media (max-width: 1140px) {
+ header .balloon-a {
+ left: auto;
+ margin-left: auto;
+ right: 50%;
+ margin-right: -35px;
+ }
+ header .balloon-a:before {
+ left: auto;
+ right: 22px;
+ }
+}
+@media (max-width: 900px) {
+ header .balloon-a {
+ display: none;
+ }
+}
+#toolbar .cke_toolbar {
+ pointer-events: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ cursor: default;
+}
+.some-toolbar-active .cke_toolbar {
+ zoom: 1;
+ filter: alpha(opacity=50);
+ -webkit-opacity: 0.5;
+ -moz-opacity: 0.5;
+ opacity: 0.5;
+}
+.cke_toolbar.active {
+ position: relative;
+ zoom: 1;
+ filter: alpha(opacity=100);
+ -webkit-opacity: 1;
+ -moz-opacity: 1;
+ opacity: 1;
+}
+.cke_toolbar.active:after {
+ content: '';
+ display: block;
+ position: absolute;
+ top: 0;
+ right: 6px;
+ bottom: 5px;
+ left: 0;
+ -webkit-border-radius: 5px;
+ -webkit-background-clip: padding-box;
+ -moz-border-radius: 5px;
+ -moz-background-clip: padding;
+ border-radius: 5px;
+ background-clip: padding-box;
+ -webkit-box-shadow: 0px 0px 15px 3px #fff4b0;
+ -moz-box-shadow: 0px 0px 15px 3px #fff4b0;
+ box-shadow: 0px 0px 15px 3px #fff4b0;
+}
+.cke_toolbar.active .cke_toolgroup {
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+ border-color: #e3c300;
+}
+.cke_toolbar.active .cke_combo,
+.cke_toolbar.active .cke_toolgroup {
+ position: relative;
+ z-index: 2;
+}
+.cke_toolbar.active .cke_combo_button {
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+}
+.unselectable {
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+.toolbar {
+ padding: 5px 0;
+ margin-bottom: 2.4em;
+ overflow: hidden;
+ background: #fff;
+}
+.toolbar button.button-a.cke_button {
+ cursor: pointer;
+ display: inline-block;
+ padding: 4px 6px;
+ outline: 0;
+ border: 1px solid #a6a6a6;
+}
+.toolbar button.button-a.hidden {
+ display: none;
+}
+.toolbar button.button-a.left {
+ float: left;
+ margin-right: 8px;
+}
+.toolbar button.button-a.right {
+ float: right;
+ margin-left: 8px;
+}
+.toolbar button.button-a .highlight {
+ color: #ffefc1;
+}
+.configContainer.hidden,
+.toolbarModifier.hidden,
+.toolbarModifier-hints.hidden {
+ display: none;
+}
+.toolbarModifier :focus,
+.toolbar button:focus,
+.configContainer textarea.configCode:focus {
+ outline: none;
+}
+div.toolbarModifier {
+ padding: 0;
+ overflow: hidden;
+ width: 100%;
+ position: relative;
+ display: table;
+ border-collapse: collapse;
+}
+div.toolbarModifier ::-moz-focus-inner {
+ border: 0;
+}
+div.toolbarModifier .empty {
+ display: none;
+}
+div.toolbarModifier.empty-visible .empty {
+ display: table-row;
+ zoom: 1;
+ filter: alpha(opacity=60);
+ -webkit-opacity: 0.6;
+ -moz-opacity: 0.6;
+ opacity: 0.6;
+}
+div.toolbarModifier .empty > p {
+ line-height: 31px;
+}
+div.toolbarModifier > ul {
+ padding: 0;
+ margin: 0;
+ border-top: 1px solid #ccc;
+ width: 100%;
+}
+div.toolbarModifier > ul[data-type="table-header"] {
+ display: table-header-group;
+}
+div.toolbarModifier > ul[data-type="table-body"] {
+ display: table-row-group;
+}
+div.toolbarModifier > ul p {
+ padding: 0;
+ margin: 0;
+}
+div.toolbarModifier > ul > li {
+ display: table-row;
+}
+div.toolbarModifier > ul > li[data-type="header"] {
+ font-weight: bold;
+ user-select: none;
+ cursor: default;
+}
+div.toolbarModifier > ul > li[data-type="group"],
+div.toolbarModifier > ul > li[data-type="separator"] {
+ border-bottom: 1px solid #ccc;
+}
+div.toolbarModifier > ul > li[data-type="subgroup"] {
+ border-top: 1px solid #eee;
+}
+div.toolbarModifier > ul > li[data-type="subgroup"]:first-child {
+ border-top: none;
+}
+div.toolbarModifier > ul > li[data-type="group"].active,
+div.toolbarModifier > ul > li[data-type="group"]:hover,
+div.toolbarModifier > ul > li[data-type="separator"].active,
+div.toolbarModifier > ul > li[data-type="separator"]:hover {
+ overflow: hidden;
+ z-index: 2;
+}
+div.toolbarModifier > ul > li[data-type="group"].active,
+div.toolbarModifier > ul > li[data-type="separator"].active,
+div.toolbarModifier > ul > li[data-type="group"].active:hover,
+div.toolbarModifier > ul > li[data-type="separator"].active:hover {
+ background: #f0fafb;
+}
+div.toolbarModifier > ul > li[data-type="group"]:hover,
+div.toolbarModifier > ul > li[data-type="separator"]:hover {
+ background: #fffbe3;
+}
+div.toolbarModifier > ul > li[data-type="separator"] {
+ background: #f5f5f5;
+}
+div.toolbarModifier > ul > li[data-type="separator"]:after {
+ content: '';
+ width: 100%;
+}
+div.toolbarModifier > ul > li[data-type="separator"] > p {
+ padding: 2px 5px;
+}
+div.toolbarModifier > ul > li > p,
+div.toolbarModifier > ul > li > ul {
+ display: table-cell;
+ vertical-align: middle;
+}
+div.toolbarModifier > ul > li p {
+ padding-left: 5px;
+ min-width: 200px;
+}
+div.toolbarModifier > ul > li p span {
+ white-space: nowrap;
+ cursor: default;
+}
+div.toolbarModifier > ul > li p span button {
+ font-size: 12.666px;
+ margin-right: 5px;
+ cursor: pointer;
+ background: #fff;
+ -webkit-border-radius: 5px;
+ -webkit-background-clip: padding-box;
+ -moz-border-radius: 5px;
+ -moz-background-clip: padding;
+ border-radius: 5px;
+ background-clip: padding-box;
+ border: 1px solid #bbb;
+ padding: 0 7px;
+ line-height: 12px;
+ height: 20px;
+}
+div.toolbarModifier > ul > li p span button:not(.disabled):hover,
+div.toolbarModifier > ul > li p span button:not(.disabled):focus {
+ color: #fff;
+ background-color: #454545;
+ border-color: transparent;
+}
+div.toolbarModifier > ul > li p span button.move.disabled {
+ cursor: default;
+ zoom: 1;
+ filter: alpha(opacity=20);
+ -webkit-opacity: 0.2;
+ -moz-opacity: 0.2;
+ opacity: 0.2;
+}
+div.toolbarModifier > ul > li ul {
+ border-collapse: collapse;
+ padding: 0;
+ width: 100%;
+}
+div.toolbarModifier > ul > li ul li {
+ display: table-row;
+ list-style-type: none;
+ line-height: 1;
+}
+div.toolbarModifier > ul > li ul li[data-type="subgroup"] {
+ border-top: 1px solid #ddd;
+}
+div.toolbarModifier > ul > li ul li[data-type="subgroup"]:first-child {
+ border-top: 0;
+}
+div.toolbarModifier > ul > li ul li[data-type="subgroup"] [data-type="button"] {
+ -webkit-border-radius: 3px;
+ -webkit-background-clip: padding-box;
+ -moz-border-radius: 3px;
+ -moz-background-clip: padding;
+ border-radius: 3px;
+ background-clip: padding-box;
+ padding: 0 2px;
+}
+div.toolbarModifier > ul > li ul li[data-type="subgroup"] [data-type="button"]:focus {
+ background: rgba(0, 0, 0, 0.04);
+}
+div.toolbarModifier > ul > li ul li[data-type="subgroup"] [data-type="button"] input {
+ vertical-align: middle;
+}
+div.toolbarModifier > ul > li ul li > p,
+div.toolbarModifier > ul > li ul li > ul {
+ display: table-cell;
+ vertical-align: middle;
+}
+div.toolbarModifier > ul > li ul li ul {
+ padding: 0;
+}
+div.toolbarModifier > ul > li ul li ul li {
+ padding: 0;
+ display: inline-block;
+ cursor: pointer;
+ margin: 2px 5px 2px 0;
+}
+div.toolbarModifier > ul > li ul li ul li .cke_combo_text {
+ cursor: pointer;
+ white-space: nowrap;
+}
+div.toolbarModifier > ul > li ul li ul li .cke_toolgroup,
+div.toolbarModifier > ul > li ul li ul li .cke_combo_button {
+ cursor: pointer;
+ margin: 0;
+ vertical-align: middle;
+ border: 1px solid #ddd;
+ font-size: 11.41px;
+ font-size: 0.713rem;
+ line-height: 20.54px;
+ line-height: 1.28rem;
+}
+div.toolbarModifier > .codemirror-wrapper {
+ overflow-y: auto;
+}
+div.toolbarModifier-hints {
+ float: right;
+ width: 350px;
+ min-width: 150px;
+ overflow-y: auto;
+ margin-left: 1.5em;
+}
+div.toolbarModifier-hints h3 {
+ font-size: 18.08px;
+ font-size: 1.13rem;
+ line-height: 32.54px;
+ line-height: 2.03rem;
+ padding: 0.36em 1.5em;
+ background: #f5f5f5;
+ border-bottom: 1px solid #ddd;
+ margin-top: 0;
+ margin-bottom: 1.2em;
+}
+div.toolbarModifier-hints dl {
+ margin-bottom: 1.2em;
+ overflow: hidden;
+}
+div.toolbarModifier-hints dl .list-header {
+ font-weight: bold;
+ border: 0;
+ padding-bottom: 0.6em;
+}
+div.toolbarModifier-hints dl > p {
+ text-align: center;
+}
+div.toolbarModifier-hints dl dt {
+ float: left;
+ width: 9em;
+ clear: both;
+ text-align: right;
+ border-top: 1px solid #ddd;
+ padding-left: 1.5em;
+ padding-right: .1em;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+div.toolbarModifier-hints dl dt code {
+ background: none;
+ border: none;
+ vertical-align: middle;
+}
+div.toolbarModifier-hints dl dd {
+ margin-left: 10em;
+ clear: right;
+ padding-right: 1.5em;
+}
+div.toolbarModifier-hints dl dd code {
+ line-height: 2.2em;
+}
+div.toolbarModifier-hints dl dd:after {
+ content: '\00a0';
+ display: block;
+ clear: left;
+ float: right;
+ height: 0;
+ width: 0;
+}
+.toolbarModifier-hints,
+.configContainer textarea.configCode,
+.CodeMirror {
+ -webkit-border-radius: 3px;
+ -webkit-background-clip: padding-box;
+ -moz-border-radius: 3px;
+ -moz-background-clip: padding;
+ border-radius: 3px;
+ background-clip: padding-box;
+ border: 1px solid #ccc;
+ font-size: 13.01px;
+ font-size: 0.813rem;
+ line-height: 23.42px;
+ line-height: 1.46rem;
+}
+.configContainer textarea.configCode,
+.CodeMirror pre,
+.CodeMirror-linenumber {
+ font-size: 13.01px;
+ font-size: 0.813rem;
+ line-height: 23.42px;
+ line-height: 1.46rem;
+ font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
+}
+.CodeMirror pre {
+ border: none;
+ padding: 0;
+ margin: 0;
+}
+.configContainer textarea.configCode {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ color: #575757;
+ padding: 10px;
+ width: 100%;
+ min-height: 500px;
+ margin: 0;
+ resize: none;
+ outline: none;
+ -moz-tab-size: 4;
+ tab-size: 4;
+ white-space: pre;
+ word-wrap: normal;
+ overflow: auto;
+}
+.CodeMirror-hints.toolbar-modifier {
+ padding: 0;
+ color: #575757;
+ font-size: 14px;
+ font-size: 0.875rem;
+ line-height: 25.2px;
+ line-height: 1.57rem;
+ font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
+}
+.CodeMirror-hints.toolbar-modifier .CodeMirror-hint-active {
+ color: #575757;
+ background: #f0fafb;
+}
+.CodeMirror-hints.toolbar-modifier > li:hover {
+ background: #fffbe3;
+}
+/* Text modifier */
+#toolbarModifierWrapper {
+ margin-bottom: 1.2em;
+}
+#toolbarModifierWrapper .invalid .CodeMirror {
+ background: #fff8f8;
+ border-color: red;
+}
+#toolbarModifierWrapper .CodeMirror {
+ height: auto;
+ padding: 0 0.6em;
+}
+.staticContainer {
+ position: fixed;
+ top: 0;
+ width: 100%;
+ z-index: 10;
+}
+.staticContainer > .grid-container {
+ max-width: 1052px;
+}
+.staticContainer > .grid-container .inner {
+ background: #fff;
+}
+.staticContainer > .grid-container .inner .toolbar {
+ margin-bottom: 0;
+}
+#help {
+ position: relative;
+ top: -15px;
+ left: -5px;
+}
+#help-content {
+ display: none;
+}
+/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2dsb2JhbC9nbG9iYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2NvcmUvY29yZS5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvZ3JpZC9ncmlkLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvbm9kZV9tb2R1bGVzL2xlc3NoYXQvYnVpbGQvbGVzc2hhdC5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvaGVhZGVyLWEvaGVhZGVyLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYS9uYXZpZ2F0aW9uLWEubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL25hdmlnYXRpb24tYi9uYXZpZ2F0aW9uLWIubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Zvb3Rlci1hL2Zvb3Rlci1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9jb250ZW50L2NvbnRlbnQubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2J1dHRvbi1hL2J1dHRvbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9iYWxsb29uLWEvYmFsbG9vbi1hLmxlc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvY2tzb3VyY2Utc2FtcGxlcy1mcmFtZXdvcmsvY29tcG9uZW50cy9pY29uL2ljb24ubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3N3aXRjaC9zd2l0Y2gubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL3RvZ2dsZXIvdG9nZ2xlci5sZXNzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Nrc291cmNlLXNhbXBsZXMtZnJhbWV3b3JrL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2NvcmUubGVzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ja3NvdXJjZS1zYW1wbGVzLWZyYW1ld29yay9jb21wb25lbnRzL2Jhc2ljc2FtcGxlL2Fkam9pbmVkLmxlc3MiLCIuLi8uLi9zYW1wbGVzL2xlc3MvY3VzdG9tLmxlc3MiLCIuLi8uLi9zYW1wbGVzL3Rvb2xiYXJjb25maWd1cmF0b3IvbGVzcy90b29sYmFybW9kaWZpZXIubGVzcyIsIi4uLy4uL3NhbXBsZXMvdG9vbGJhcmNvbmZpZ3VyYXRvci9sZXNzL2Jhc2UubGVzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBc0RBLFFBSGlDO0VBeUNoQztJQUNDLHdCQUFBOzs7QUMxRkY7QUFBUztBQUFPO0FBQVM7QUFBWTtBQUFRO0FBQVE7QUFBUTtBQUFRO0FBQU07QUFBTTtBQUFLO0VBQ3JGLGNBQUE7O0FBR0Q7QUFBTTtFQUNMLFNBQUE7RUFDQSxVQUFBO0VBQ0Esd0JETitCLHVDQ00vQjtFQUNBLGdCQUFBO0VBQ0EsY0FBQTs7QUNIQSxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZQUFZO0VBQ1gsVUFBQTs7QUFERCxZ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 */
diff --git a/static/js/ckeditor/samples/index.html b/static/js/ckeditor/samples/index.html
index f8ca889..0b154b7 100644
--- a/static/js/ckeditor/samples/index.html
+++ b/static/js/ckeditor/samples/index.html
@@ -1,128 +1,128 @@
-
-
-
-
-
- CKEditor Sample
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Congratulations!
-
- If you can see CKEditor below, it means that the installation succeeded.
- You can now try out your new editor version, see its features, and when you are ready to move on, check some of the most useful resources recommended below.
-
-
-
-
-
-
-
-
-
Hello world!
-
I'm an instance of CKEditor .
-
-
-
-
-
-
-
-
- Customize Your Editor
- Modular build and numerous configuration options give you nearly endless possibilities to customize CKEditor. Replace the content of your config.js file with the following code and refresh this page (remember to clear the browser cache )!
- CKEDITOR .editorConfig = function ( config ) {
- config .language = 'es' ;
- config .uiColor = '#F7B42C' ;
- config .height = 300 ;
- config .toolbarCanCollapse = true ;
-};
-
-
-
- Toolbar Configuration
- If you want to reorder toolbar buttons or remove some of them, check this handy tool !
-
-
-
- More Samples!
- Visit the CKEditor SDK for a huge collection of samples showcasing editor features, with source code readily available to copy and use in your own implementation.
-
-
-
- Developer's Guide
- The most important resource for all developers working with CKEditor, integrating it with their websites and applications, and customizing to their needs. You can start from here:
-
- Getting Started – Explains most crucial editor concepts and practices as well as the installation process and integration with your website.
- Advanced Installation Concepts – Describes how to upgrade, install additional components (plugins, skins), or create a custom build.
-
- When you have the basics sorted out, feel free to browse some more advanced sections like:
-
-
-
-
- CKEditor JavaScript API
- CKEditor boasts a rich JavaScript API that you can use to adjust the editor to your needs and integrate it with your website or application.
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ CKEditor Sample
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Congratulations!
+
+ If you can see CKEditor below, it means that the installation succeeded.
+ You can now try out your new editor version, see its features, and when you are ready to move on, check some of the most useful resources recommended below.
+
+
+
+
+
+
+
+
+
Hello world!
+
I'm an instance of CKEditor .
+
+
+
+
+
+
+
+
+ Customize Your Editor
+ Modular build and numerous configuration options give you nearly endless possibilities to customize CKEditor. Replace the content of your config.js file with the following code and refresh this page (remember to clear the browser cache )!
+ CKEDITOR .editorConfig = function ( config ) {
+ config .language = 'es' ;
+ config .uiColor = '#F7B42C' ;
+ config .height = 300 ;
+ config .toolbarCanCollapse = true ;
+};
+
+
+
+ Toolbar Configuration
+ If you want to reorder toolbar buttons or remove some of them, check this handy tool !
+
+
+
+ More Samples!
+ Visit the CKEditor SDK for a huge collection of samples showcasing editor features, with source code readily available to copy and use in your own implementation.
+
+
+
+ Developer's Guide
+ The most important resource for all developers working with CKEditor, integrating it with their websites and applications, and customizing to their needs. You can start from here:
+
+ Getting Started – Explains most crucial editor concepts and practices as well as the installation process and integration with your website.
+ Advanced Installation Concepts – Describes how to upgrade, install additional components (plugins, skins), or create a custom build.
+
+ When you have the basics sorted out, feel free to browse some more advanced sections like:
+
+
+
+
+ CKEditor JavaScript API
+ CKEditor boasts a rich JavaScript API that you can use to adjust the editor to your needs and integrate it with your website or application.
+
+
+
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/js/sample.js b/static/js/ckeditor/samples/js/sample.js
index 80f1c2b..21cf97b 100644
--- a/static/js/ckeditor/samples/js/sample.js
+++ b/static/js/ckeditor/samples/js/sample.js
@@ -1,53 +1,53 @@
-/**
- * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or http://ckeditor.com/license
- */
-
-/* exported initSample */
-
-if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 )
- CKEDITOR.tools.enableHtml5Elements( document );
-
-// The trick to keep the editor in the sample quite small
-// unless user specified own height.
-CKEDITOR.config.height = 150;
-CKEDITOR.config.width = 'auto';
-
-var initSample = ( function() {
- var wysiwygareaAvailable = isWysiwygareaAvailable(),
- isBBCodeBuiltIn = !!CKEDITOR.plugins.get( 'bbcode' );
-
- return function() {
- var editorElement = CKEDITOR.document.getById( 'editor' );
-
- // :(((
- if ( isBBCodeBuiltIn ) {
- editorElement.setHtml(
- 'Hello world!\n\n' +
- 'I\'m an instance of [url=http://ckeditor.com]CKEditor[/url].'
- );
- }
-
- // Depending on the wysiwygare plugin availability initialize classic or inline editor.
- if ( wysiwygareaAvailable ) {
- CKEDITOR.replace( 'editor' );
- } else {
- editorElement.setAttribute( 'contenteditable', 'true' );
- CKEDITOR.inline( 'editor' );
-
- // TODO we can consider displaying some info box that
- // without wysiwygarea the classic editor may not work.
- }
- };
-
- function isWysiwygareaAvailable() {
- // If in development mode, then the wysiwygarea must be available.
- // Split REV into two strings so builder does not replace it :D.
- if ( CKEDITOR.revision == ( '%RE' + 'V%' ) ) {
- return true;
- }
-
- return !!CKEDITOR.plugins.get( 'wysiwygarea' );
- }
-} )();
-
+/**
+ * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+/* exported initSample */
+
+if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 )
+ CKEDITOR.tools.enableHtml5Elements( document );
+
+// The trick to keep the editor in the sample quite small
+// unless user specified own height.
+CKEDITOR.config.height = 150;
+CKEDITOR.config.width = 'auto';
+
+var initSample = ( function() {
+ var wysiwygareaAvailable = isWysiwygareaAvailable(),
+ isBBCodeBuiltIn = !!CKEDITOR.plugins.get( 'bbcode' );
+
+ return function() {
+ var editorElement = CKEDITOR.document.getById( 'editor' );
+
+ // :(((
+ if ( isBBCodeBuiltIn ) {
+ editorElement.setHtml(
+ 'Hello world!\n\n' +
+ 'I\'m an instance of [url=http://ckeditor.com]CKEditor[/url].'
+ );
+ }
+
+ // Depending on the wysiwygare plugin availability initialize classic or inline editor.
+ if ( wysiwygareaAvailable ) {
+ CKEDITOR.replace( 'editor' );
+ } else {
+ editorElement.setAttribute( 'contenteditable', 'true' );
+ CKEDITOR.inline( 'editor' );
+
+ // TODO we can consider displaying some info box that
+ // without wysiwygarea the classic editor may not work.
+ }
+ };
+
+ function isWysiwygareaAvailable() {
+ // If in development mode, then the wysiwygarea must be available.
+ // Split REV into two strings so builder does not replace it :D.
+ if ( CKEDITOR.revision == ( '%RE' + 'V%' ) ) {
+ return true;
+ }
+
+ return !!CKEDITOR.plugins.get( 'wysiwygarea' );
+ }
+} )();
+
diff --git a/static/js/ckeditor/samples/old/ajax.html b/static/js/ckeditor/samples/old/ajax.html
index 57accf5..3f88ec2 100644
--- a/static/js/ckeditor/samples/old/ajax.html
+++ b/static/js/ckeditor/samples/old/ajax.html
@@ -1,85 +1,85 @@
-
-
-
-
-
- Ajax — CKEditor Sample
-
-
-
-
-
-
- CKEditor Samples » Create and Destroy Editor Instances for Ajax Applications
-
-
-
-
- This sample shows how to create and destroy CKEditor instances on the fly. After the removal of CKEditor the content created inside the editing
- area will be displayed in a <div> element.
-
-
- For details of how to create this setup check the source code of this sample page
- for JavaScript code responsible for the creation and destruction of a CKEditor instance.
-
-
- Click the buttons to create and remove a CKEditor instance.
-
-
-
-
-
-
-
-
-
- Edited Contents:
-
-
-
-
-
-
-
-
+
+
+
+
+
+ Ajax — CKEditor Sample
+
+
+
+
+
+
+ CKEditor Samples » Create and Destroy Editor Instances for Ajax Applications
+
+
+
+
+ This sample shows how to create and destroy CKEditor instances on the fly. After the removal of CKEditor the content created inside the editing
+ area will be displayed in a <div> element.
+
+
+ For details of how to create this setup check the source code of this sample page
+ for JavaScript code responsible for the creation and destruction of a CKEditor instance.
+
+
+ Click the buttons to create and remove a CKEditor instance.
+
+
+
+
+
+
+
+
+
+ Edited Contents:
+
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/api.html b/static/js/ckeditor/samples/old/api.html
index e3cdc3e..d01f0ee 100644
--- a/static/js/ckeditor/samples/old/api.html
+++ b/static/js/ckeditor/samples/old/api.html
@@ -1,210 +1,210 @@
-
-
-
-
-
- API Usage — CKEditor Sample
-
-
-
-
-
-
-
- CKEditor Samples » Using CKEditor JavaScript API
-
-
-
-
- This sample shows how to use the
- CKEditor JavaScript API
- to interact with the editor at runtime.
-
-
- For details on how to create this setup check the source code of this sample page.
-
-
-
-
-
-
-
- CKEditor requires JavaScript to run . In a browser with no JavaScript
- support, like yours, you should still see the contents (HTML data) and you should
- be able to edit it normally, without a rich editor interface.
-
-
-
-
-
-
-
+
+
+
+
+
+ API Usage — CKEditor Sample
+
+
+
+
+
+
+
+ CKEditor Samples » Using CKEditor JavaScript API
+
+
+
+
+ This sample shows how to use the
+ CKEditor JavaScript API
+ to interact with the editor at runtime.
+
+
+ For details on how to create this setup check the source code of this sample page.
+
+
+
+
+
+
+
+ CKEditor requires JavaScript to run . In a browser with no JavaScript
+ support, like yours, you should still see the contents (HTML data) and you should
+ be able to edit it normally, without a rich editor interface.
+
+
+
+
+ <p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <h2>Test</h2><p>This is some <a href="/Test1.html">sample</a> HTML code.</p>
+
+
+
+
+ First line with some leading whitespaces.
+
+Second line of text preceded by two line breaks.
+
+
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/appendto.html b/static/js/ckeditor/samples/old/appendto.html
index 26e0b6b..51e2d62 100644
--- a/static/js/ckeditor/samples/old/appendto.html
+++ b/static/js/ckeditor/samples/old/appendto.html
@@ -1,59 +1,59 @@
-
-
-
-
-
- Append To Page Element Using JavaScript Code — CKEditor Sample
-
-
-
-
-
- CKEditor Samples » Append To Page Element Using JavaScript Code
-
-
-
-
-
- The CKEDITOR.appendTo() method serves to to place editors inside existing DOM elements. Unlike CKEDITOR.replace() ,
- a target container to be replaced is no longer necessary. A new editor
- instance is inserted directly wherever it is desired.
-
-
CKEDITOR.appendTo( 'container_id ',
- { /* Configuration options to be used. */ }
- 'Editor content to be used.'
-);
-
-
-
-
-
-
-
+
+
+
+
+
+ Append To Page Element Using JavaScript Code — CKEditor Sample
+
+
+
+
+
+ CKEditor Samples » Append To Page Element Using JavaScript Code
+
+
+
+
+
+ The CKEDITOR.appendTo() method serves to to place editors inside existing DOM elements. Unlike CKEDITOR.replace() ,
+ a target container to be replaced is no longer necessary. A new editor
+ instance is inserted directly wherever it is desired.
+
+
CKEDITOR.appendTo( 'container_id ',
+ { /* Configuration options to be used. */ }
+ 'Editor content to be used.'
+);
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/assets/outputxhtml/outputxhtml.css b/static/js/ckeditor/samples/old/assets/outputxhtml/outputxhtml.css
index 09ca048..50daa1d 100644
--- a/static/js/ckeditor/samples/old/assets/outputxhtml/outputxhtml.css
+++ b/static/js/ckeditor/samples/old/assets/outputxhtml/outputxhtml.css
@@ -1,204 +1,204 @@
-/*
- * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or http://ckeditor.com/license
- *
- * Styles used by the XHTML 1.1 sample page (xhtml.html).
- */
-
-/**
- * Basic definitions for the editing area.
- */
-body
-{
- font-family: Arial, Verdana, sans-serif;
- font-size: 80%;
- color: #000000;
- background-color: #ffffff;
- padding: 5px;
- margin: 0px;
-}
-
-/**
- * Core styles.
- */
-
-.Bold
-{
- font-weight: bold;
-}
-
-.Italic
-{
- font-style: italic;
-}
-
-.Underline
-{
- text-decoration: underline;
-}
-
-.StrikeThrough
-{
- text-decoration: line-through;
-}
-
-.Subscript
-{
- vertical-align: sub;
- font-size: smaller;
-}
-
-.Superscript
-{
- vertical-align: super;
- font-size: smaller;
-}
-
-/**
- * Font faces.
- */
-
-.FontComic
-{
- font-family: 'Comic Sans MS';
-}
-
-.FontCourier
-{
- font-family: 'Courier New';
-}
-
-.FontTimes
-{
- font-family: 'Times New Roman';
-}
-
-/**
- * Font sizes.
- */
-
-.FontSmaller
-{
- font-size: smaller;
-}
-
-.FontLarger
-{
- font-size: larger;
-}
-
-.FontSmall
-{
- font-size: 8pt;
-}
-
-.FontBig
-{
- font-size: 14pt;
-}
-
-.FontDouble
-{
- font-size: 200%;
-}
-
-/**
- * Font colors.
- */
-.FontColor1
-{
- color: #ff9900;
-}
-
-.FontColor2
-{
- color: #0066cc;
-}
-
-.FontColor3
-{
- color: #ff0000;
-}
-
-.FontColor1BG
-{
- background-color: #ff9900;
-}
-
-.FontColor2BG
-{
- background-color: #0066cc;
-}
-
-.FontColor3BG
-{
- background-color: #ff0000;
-}
-
-/**
- * Indentation.
- */
-
-.Indent1
-{
- margin-left: 40px;
-}
-
-.Indent2
-{
- margin-left: 80px;
-}
-
-.Indent3
-{
- margin-left: 120px;
-}
-
-/**
- * Alignment.
- */
-
-.JustifyLeft
-{
- text-align: left;
-}
-
-.JustifyRight
-{
- text-align: right;
-}
-
-.JustifyCenter
-{
- text-align: center;
-}
-
-.JustifyFull
-{
- text-align: justify;
-}
-
-/**
- * Other.
- */
-
-code
-{
- font-family: courier, monospace;
- background-color: #eeeeee;
- padding-left: 1px;
- padding-right: 1px;
- border: #c0c0c0 1px solid;
-}
-
-kbd
-{
- padding: 0px 1px 0px 1px;
- border-width: 1px 2px 2px 1px;
- border-style: solid;
-}
-
-blockquote
-{
- color: #808080;
-}
+/*
+ * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ *
+ * Styles used by the XHTML 1.1 sample page (xhtml.html).
+ */
+
+/**
+ * Basic definitions for the editing area.
+ */
+body
+{
+ font-family: Arial, Verdana, sans-serif;
+ font-size: 80%;
+ color: #000000;
+ background-color: #ffffff;
+ padding: 5px;
+ margin: 0px;
+}
+
+/**
+ * Core styles.
+ */
+
+.Bold
+{
+ font-weight: bold;
+}
+
+.Italic
+{
+ font-style: italic;
+}
+
+.Underline
+{
+ text-decoration: underline;
+}
+
+.StrikeThrough
+{
+ text-decoration: line-through;
+}
+
+.Subscript
+{
+ vertical-align: sub;
+ font-size: smaller;
+}
+
+.Superscript
+{
+ vertical-align: super;
+ font-size: smaller;
+}
+
+/**
+ * Font faces.
+ */
+
+.FontComic
+{
+ font-family: 'Comic Sans MS';
+}
+
+.FontCourier
+{
+ font-family: 'Courier New';
+}
+
+.FontTimes
+{
+ font-family: 'Times New Roman';
+}
+
+/**
+ * Font sizes.
+ */
+
+.FontSmaller
+{
+ font-size: smaller;
+}
+
+.FontLarger
+{
+ font-size: larger;
+}
+
+.FontSmall
+{
+ font-size: 8pt;
+}
+
+.FontBig
+{
+ font-size: 14pt;
+}
+
+.FontDouble
+{
+ font-size: 200%;
+}
+
+/**
+ * Font colors.
+ */
+.FontColor1
+{
+ color: #ff9900;
+}
+
+.FontColor2
+{
+ color: #0066cc;
+}
+
+.FontColor3
+{
+ color: #ff0000;
+}
+
+.FontColor1BG
+{
+ background-color: #ff9900;
+}
+
+.FontColor2BG
+{
+ background-color: #0066cc;
+}
+
+.FontColor3BG
+{
+ background-color: #ff0000;
+}
+
+/**
+ * Indentation.
+ */
+
+.Indent1
+{
+ margin-left: 40px;
+}
+
+.Indent2
+{
+ margin-left: 80px;
+}
+
+.Indent3
+{
+ margin-left: 120px;
+}
+
+/**
+ * Alignment.
+ */
+
+.JustifyLeft
+{
+ text-align: left;
+}
+
+.JustifyRight
+{
+ text-align: right;
+}
+
+.JustifyCenter
+{
+ text-align: center;
+}
+
+.JustifyFull
+{
+ text-align: justify;
+}
+
+/**
+ * Other.
+ */
+
+code
+{
+ font-family: courier, monospace;
+ background-color: #eeeeee;
+ padding-left: 1px;
+ padding-right: 1px;
+ border: #c0c0c0 1px solid;
+}
+
+kbd
+{
+ padding: 0px 1px 0px 1px;
+ border-width: 1px 2px 2px 1px;
+ border-style: solid;
+}
+
+blockquote
+{
+ color: #808080;
+}
diff --git a/static/js/ckeditor/samples/old/assets/posteddata.php b/static/js/ckeditor/samples/old/assets/posteddata.php
index 568dbfb..4178ac7 100644
--- a/static/js/ckeditor/samples/old/assets/posteddata.php
+++ b/static/js/ckeditor/samples/old/assets/posteddata.php
@@ -1,59 +1,59 @@
-
-
-
-
-
- Sample — CKEditor
-
-
-
-
- CKEditor — Posted Data
-
-
-
-
-
- Field Name
- Value
-
-
- $value )
- {
- if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) )
- continue;
-
- if ( get_magic_quotes_gpc() )
- $value = htmlspecialchars( stripslashes((string)$value) );
- else
- $value = htmlspecialchars( (string)$value );
-?>
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ Sample — CKEditor
+
+
+
+
+ CKEditor — Posted Data
+
+
+
+
+
+ Field Name
+ Value
+
+
+ $value )
+ {
+ if ( ( !is_string($value) && !is_numeric($value) ) || !is_string($key) )
+ continue;
+
+ if ( get_magic_quotes_gpc() )
+ $value = htmlspecialchars( stripslashes((string)$value) );
+ else
+ $value = htmlspecialchars( (string)$value );
+?>
+
+
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/datafiltering.html b/static/js/ckeditor/samples/old/datafiltering.html
index c6904be..2723495 100644
--- a/static/js/ckeditor/samples/old/datafiltering.html
+++ b/static/js/ckeditor/samples/old/datafiltering.html
@@ -1,508 +1,508 @@
-
-
-
-
-
- Data Filtering — CKEditor Sample
-
-
-
-
-
-
- CKEditor Samples » Data Filtering and Features Activation
-
-
-
-
- This sample page demonstrates the idea of Advanced Content Filter
- (ACF ), a sophisticated
- tool that takes control over what kind of data is accepted by the editor and what
- kind of output is produced.
-
-
When and what is being filtered?
-
- ACF controls
- every single source of data that comes to the editor.
- It process both HTML that is inserted manually (i.e. pasted by the user)
- and programmatically like:
-
-
-editor.setData( '<p>Hello world!</p>' );
-
-
- ACF discards invalid,
- useless HTML tags and attributes so the editor remains "clean" during
- runtime. ACF behaviour
- can be configured and adjusted for a particular case to prevent the
- output HTML (i.e. in CMS systems) from being polluted.
-
- This kind of filtering is a first, client-side line of defense
- against "tag soups ",
- the tool that precisely restricts which tags, attributes and styles
- are allowed (desired). When properly configured, ACF
- is an easy and fast way to produce a high-quality, intentionally filtered HTML.
-
-
-
How to configure or disable ACF?
-
- Advanced Content Filter is enabled by default, working in "automatic mode", yet
- it provides a set of easy rules that allow adjusting filtering rules
- and disabling the entire feature when necessary. The config property
- responsible for this feature is config.allowedContent .
-
-
- By "automatic mode" is meant that loaded plugins decide which kind
- of content is enabled and which is not. For example, if the link
- plugin is loaded it implies that <a> tag is
- automatically allowed. Each plugin is given a set
- of predefined ACF rules
- that control the editor until
- config.allowedContent
- is defined manually.
-
-
- Let's assume our intention is to restrict the editor to accept (produce) paragraphs
- only: no attributes, no styles, no other tags .
- With ACF
- this is very simple. Basically set
- config.allowedContent to 'p':
-
-
-var editor = CKEDITOR.replace( textarea_id , {
- allowedContent: 'p'
-} );
-
-
- Now try to play with allowed content:
-
-
-// Trying to insert disallowed tag and attribute.
-editor.setData( '<p style="color: red" >Hello <em>world</em> !</p>' );
-alert( editor.getData() );
-
-// Filtered data is returned.
-"<p>Hello world!</p>"
-
-
- What happened? Since config.allowedContent: 'p' is set the editor assumes
- that only plain <p> are accepted. Nothing more. This is why
- style attribute and <em> tag are gone. The same
- filtering would happen if we pasted disallowed HTML into this editor.
-
-
- This is just a small sample of what ACF
- can do. To know more, please refer to the sample section below and
- the official Advanced Content Filter guide .
-
-
- You may, of course, want CKEditor to avoid filtering of any kind.
- To get rid of ACF ,
- basically set
- config.allowedContent to true like this:
-
-
-CKEDITOR.replace( textarea_id , {
- allowedContent: true
-} );
-
-
-
Beyond data flow: Features activation
-
- ACF is far more than
- I/O control: the entire
- UI of the editor is adjusted to what
- filters restrict. For example: if <a> tag is
- disallowed
- by ACF ,
- then accordingly link command, toolbar button and link dialog
- are also disabled. Editor is smart: it knows which features must be
- removed from the interface to match filtering rules.
-
-
- CKEditor can be far more specific. If <a> tag is
- allowed by filtering rules to be used but it is restricted
- to have only one attribute (href)
- config.allowedContent = 'a[!href]', then
- "Target" tab of the link dialog is automatically disabled as target
- attribute isn't included in ACF rules
- for <a>. This behaviour applies to dialog fields, context
- menus and toolbar buttons.
-
-
-
Sample configurations
-
- There are several editor instances below that present different
- ACF setups. All of them,
- except the inline instance, share the same HTML content to visualize
- how different filtering rules affect the same input data.
-
-
-
-
-
- Editor 1:
-
-
-
- This editor is using default configuration ("automatic mode"). It means that
-
- config.allowedContent is defined by loaded plugins.
- Each plugin extends filtering rules to make it's own associated content
- available for the user.
-
-
-
- <h1><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
-
-
-
-
-
-
-
-
-
- Editor 2:
-
-
-
- This editor is using a custom configuration for
- ACF :
-
-
-CKEDITOR.replace( 'editor2', {
- allowedContent:
- 'h1 h2 h3 p blockquote strong em;' +
- 'a[!href];' +
- 'img(left,right)[!src,alt,width,height];' +
- 'table tr th td caption;' +
- 'span{!font-family};' +'
- 'span{!color};' +
- 'span(!marker);' +
- 'del ins'
-} );
-
-
- The following rules may require additional explanation:
-
-
-
- h1 h2 h3 p blockquote strong em - These tags
- are accepted by the editor. Any tag attributes will be discarded.
-
-
- a[!href] - href attribute is obligatory
- for <a> tag. Tags without this attribute
- are disarded. No other attribute will be accepted.
-
-
- img(left,right)[!src,alt,width,height] - src
- attribute is obligatory for <img> tag.
- alt, width, height
- and class attributes are accepted but
- class must be either class="left"
- or class="right"
-
-
- table tr th td caption - These tags
- are accepted by the editor. Any tag attributes will be discarded.
-
-
- span{!font-family}, span{!color},
- span(!marker) - <span> tags
- will be accepted if either font-family or
- color style is set or class="marker"
- is present.
-
-
- del ins - These tags
- are accepted by the editor. Any tag attributes will be discarded.
-
-
-
- Please note that UI of the
- editor is different . It's a response to what happened to the filters.
- Since text-align isn't allowed, the align toolbar is gone.
- The same thing happened to subscript/superscript, strike, underline
- (<u>, <sub>, <sup>
- are disallowed by
- config.allowedContent ) and many other buttons.
-
-
-
- <h1><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
-
-
-
-
-
-
-
-
- Editor 3:
-
-
-
- This editor is using a custom configuration for
- ACF .
- Note that filters can be configured as an object literal
- as an alternative to a string-based definition.
-
-
-CKEDITOR.replace( 'editor3', {
- allowedContent: {
- 'b i ul ol big small': true,
- 'h1 h2 h3 p blockquote li': {
- styles: 'text-align'
- },
- a: { attributes: '!href,target' },
- img: {
- attributes: '!src,alt',
- styles: 'width,height',
- classes: 'left,right'
- }
- }
-} );
-
-
-
- <h1><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
-
-
-
-
-
-
-
-
- Editor 4:
-
-
-
- This editor is using a custom set of plugins and buttons.
-
-
-CKEDITOR.replace( 'editor4', {
- removePlugins: 'bidi,font,forms,flash,horizontalrule,iframe,justify,table,tabletools,smiley',
- removeButtons: 'Anchor,Underline,Strike,Subscript,Superscript,Image',
- format_tags: 'p;h1;h2;h3;pre;address'
-} );
-
-
- As you can see, removing plugins and buttons implies filtering.
- Several tags are not allowed in the editor because there's no
- plugin/button that is responsible for creating and editing this
- kind of content (for example: the image is missing because
- of removeButtons: 'Image'). The conclusion is that
- ACF works "backwards"
- as well: modifying UI
- elements is changing allowed content rules .
-
-
-
- <h1><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
-
-
-
-
-
-
-
-
- Editor 5:
-
-
-
- This editor is built on editable <h1> element.
- ACF takes care of
- what can be included in <h1>. Note that there
- are no block styles in Styles combo. Also why lists, indentation,
- blockquote, div, form and other buttons are missing.
-
-
- ACF makes sure that
- no disallowed tags will come to <h1> so the final
- markup is valid. If the user tried to paste some invalid HTML
- into this editor (let's say a list), it would be automatically
- converted into plain text.
-
-
-
- Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin , on the Moon on July 20, 1969, at 20:18 UTC.
-
-
-
-
-
-
-
- Editor 6:
-
-
-
- This editor is using a custom configuration for ACF .
- It's using the
- Disallowed Content property of the filter to eliminate all title attributes.
-
-
-
-CKEDITOR.replace( 'editor6', {
- allowedContent: {
- 'b i ul ol big small': true,
- 'h1 h2 h3 p blockquote li': {
- styles: 'text-align'
- },
- a: {attributes: '!href,target'},
- img: {
- attributes: '!src,alt',
- styles: 'width,height',
- classes: 'left,right'
- }
- },
- disallowedContent: '*{title*}'
-} );
-
-
-
- <h1><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
-
-
-
-
-
-
-
-
- Editor 7:
-
-
-
- This editor is using a custom configuration for ACF .
- It's using the
- Disallowed Content property of the filter to eliminate all a and img tags,
- while allowing all other tags.
-
-
-CKEDITOR.replace( 'editor7', {
- allowedContent: {
- // Allow all content.
- $1: {
- elements: CKEDITOR.dtd,
- attributes: true,
- styles: true,
- classes: true
- }
- },
- disallowedContent: 'img a'
-} );
-
-
-
- <h1><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
-
-
-
-
-
-
-
+
+
+
+
+
+ Data Filtering — CKEditor Sample
+
+
+
+
+
+
+ CKEditor Samples » Data Filtering and Features Activation
+
+
+
+
+ This sample page demonstrates the idea of Advanced Content Filter
+ (ACF ), a sophisticated
+ tool that takes control over what kind of data is accepted by the editor and what
+ kind of output is produced.
+
+
When and what is being filtered?
+
+ ACF controls
+ every single source of data that comes to the editor.
+ It process both HTML that is inserted manually (i.e. pasted by the user)
+ and programmatically like:
+
+
+editor.setData( '<p>Hello world!</p>' );
+
+
+ ACF discards invalid,
+ useless HTML tags and attributes so the editor remains "clean" during
+ runtime. ACF behaviour
+ can be configured and adjusted for a particular case to prevent the
+ output HTML (i.e. in CMS systems) from being polluted.
+
+ This kind of filtering is a first, client-side line of defense
+ against "tag soups ",
+ the tool that precisely restricts which tags, attributes and styles
+ are allowed (desired). When properly configured, ACF
+ is an easy and fast way to produce a high-quality, intentionally filtered HTML.
+
+
+
How to configure or disable ACF?
+
+ Advanced Content Filter is enabled by default, working in "automatic mode", yet
+ it provides a set of easy rules that allow adjusting filtering rules
+ and disabling the entire feature when necessary. The config property
+ responsible for this feature is config.allowedContent .
+
+
+ By "automatic mode" is meant that loaded plugins decide which kind
+ of content is enabled and which is not. For example, if the link
+ plugin is loaded it implies that <a> tag is
+ automatically allowed. Each plugin is given a set
+ of predefined ACF rules
+ that control the editor until
+ config.allowedContent
+ is defined manually.
+
+
+ Let's assume our intention is to restrict the editor to accept (produce) paragraphs
+ only: no attributes, no styles, no other tags .
+ With ACF
+ this is very simple. Basically set
+ config.allowedContent to 'p':
+
+
+var editor = CKEDITOR.replace( textarea_id , {
+ allowedContent: 'p'
+} );
+
+
+ Now try to play with allowed content:
+
+
+// Trying to insert disallowed tag and attribute.
+editor.setData( '<p style="color: red" >Hello <em>world</em> !</p>' );
+alert( editor.getData() );
+
+// Filtered data is returned.
+"<p>Hello world!</p>"
+
+
+ What happened? Since config.allowedContent: 'p' is set the editor assumes
+ that only plain <p> are accepted. Nothing more. This is why
+ style attribute and <em> tag are gone. The same
+ filtering would happen if we pasted disallowed HTML into this editor.
+
+
+ This is just a small sample of what ACF
+ can do. To know more, please refer to the sample section below and
+ the official Advanced Content Filter guide .
+
+
+ You may, of course, want CKEditor to avoid filtering of any kind.
+ To get rid of ACF ,
+ basically set
+ config.allowedContent to true like this:
+
+
+CKEDITOR.replace( textarea_id , {
+ allowedContent: true
+} );
+
+
+
Beyond data flow: Features activation
+
+ ACF is far more than
+ I/O control: the entire
+ UI of the editor is adjusted to what
+ filters restrict. For example: if <a> tag is
+ disallowed
+ by ACF ,
+ then accordingly link command, toolbar button and link dialog
+ are also disabled. Editor is smart: it knows which features must be
+ removed from the interface to match filtering rules.
+
+
+ CKEditor can be far more specific. If <a> tag is
+ allowed by filtering rules to be used but it is restricted
+ to have only one attribute (href)
+ config.allowedContent = 'a[!href]', then
+ "Target" tab of the link dialog is automatically disabled as target
+ attribute isn't included in ACF rules
+ for <a>. This behaviour applies to dialog fields, context
+ menus and toolbar buttons.
+
+
+
Sample configurations
+
+ There are several editor instances below that present different
+ ACF setups. All of them,
+ except the inline instance, share the same HTML content to visualize
+ how different filtering rules affect the same input data.
+
+
+
+
+
+ Editor 1:
+
+
+
+ This editor is using default configuration ("automatic mode"). It means that
+
+ config.allowedContent is defined by loaded plugins.
+ Each plugin extends filtering rules to make it's own associated content
+ available for the user.
+
+
+
+ <h1><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
+
+
+
+
+
+
+
+
+
+ Editor 2:
+
+
+
+ This editor is using a custom configuration for
+ ACF :
+
+
+CKEDITOR.replace( 'editor2', {
+ allowedContent:
+ 'h1 h2 h3 p blockquote strong em;' +
+ 'a[!href];' +
+ 'img(left,right)[!src,alt,width,height];' +
+ 'table tr th td caption;' +
+ 'span{!font-family};' +'
+ 'span{!color};' +
+ 'span(!marker);' +
+ 'del ins'
+} );
+
+
+ The following rules may require additional explanation:
+
+
+
+ h1 h2 h3 p blockquote strong em - These tags
+ are accepted by the editor. Any tag attributes will be discarded.
+
+
+ a[!href] - href attribute is obligatory
+ for <a> tag. Tags without this attribute
+ are disarded. No other attribute will be accepted.
+
+
+ img(left,right)[!src,alt,width,height] - src
+ attribute is obligatory for <img> tag.
+ alt, width, height
+ and class attributes are accepted but
+ class must be either class="left"
+ or class="right"
+
+
+ table tr th td caption - These tags
+ are accepted by the editor. Any tag attributes will be discarded.
+
+
+ span{!font-family}, span{!color},
+ span(!marker) - <span> tags
+ will be accepted if either font-family or
+ color style is set or class="marker"
+ is present.
+
+
+ del ins - These tags
+ are accepted by the editor. Any tag attributes will be discarded.
+
+
+
+ Please note that UI of the
+ editor is different . It's a response to what happened to the filters.
+ Since text-align isn't allowed, the align toolbar is gone.
+ The same thing happened to subscript/superscript, strike, underline
+ (<u>, <sub>, <sup>
+ are disallowed by
+ config.allowedContent ) and many other buttons.
+
+
+
+ <h1><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
+
+
+
+
+
+
+
+
+ Editor 3:
+
+
+
+ This editor is using a custom configuration for
+ ACF .
+ Note that filters can be configured as an object literal
+ as an alternative to a string-based definition.
+
+
+CKEDITOR.replace( 'editor3', {
+ allowedContent: {
+ 'b i ul ol big small': true,
+ 'h1 h2 h3 p blockquote li': {
+ styles: 'text-align'
+ },
+ a: { attributes: '!href,target' },
+ img: {
+ attributes: '!src,alt',
+ styles: 'width,height',
+ classes: 'left,right'
+ }
+ }
+} );
+
+
+
+ <h1><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
+
+
+
+
+
+
+
+
+ Editor 4:
+
+
+
+ This editor is using a custom set of plugins and buttons.
+
+
+CKEDITOR.replace( 'editor4', {
+ removePlugins: 'bidi,font,forms,flash,horizontalrule,iframe,justify,table,tabletools,smiley',
+ removeButtons: 'Anchor,Underline,Strike,Subscript,Superscript,Image',
+ format_tags: 'p;h1;h2;h3;pre;address'
+} );
+
+
+ As you can see, removing plugins and buttons implies filtering.
+ Several tags are not allowed in the editor because there's no
+ plugin/button that is responsible for creating and editing this
+ kind of content (for example: the image is missing because
+ of removeButtons: 'Image'). The conclusion is that
+ ACF works "backwards"
+ as well: modifying UI
+ elements is changing allowed content rules .
+
+
+
+ <h1><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
+
+
+
+
+
+
+
+
+ Editor 5:
+
+
+
+ This editor is built on editable <h1> element.
+ ACF takes care of
+ what can be included in <h1>. Note that there
+ are no block styles in Styles combo. Also why lists, indentation,
+ blockquote, div, form and other buttons are missing.
+
+
+ ACF makes sure that
+ no disallowed tags will come to <h1> so the final
+ markup is valid. If the user tried to paste some invalid HTML
+ into this editor (let's say a list), it would be automatically
+ converted into plain text.
+
+
+
+ Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin , on the Moon on July 20, 1969, at 20:18 UTC.
+
+
+
+
+
+
+
+ Editor 6:
+
+
+
+ This editor is using a custom configuration for ACF .
+ It's using the
+ Disallowed Content property of the filter to eliminate all title attributes.
+
+
+
+CKEDITOR.replace( 'editor6', {
+ allowedContent: {
+ 'b i ul ol big small': true,
+ 'h1 h2 h3 p blockquote li': {
+ styles: 'text-align'
+ },
+ a: {attributes: '!href,target'},
+ img: {
+ attributes: '!src,alt',
+ styles: 'width,height',
+ classes: 'left,right'
+ }
+ },
+ disallowedContent: '*{title*}'
+} );
+
+
+
+ <h1><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
+
+
+
+
+
+
+
+
+ Editor 7:
+
+
+
+ This editor is using a custom configuration for ACF .
+ It's using the
+ Disallowed Content property of the filter to eliminate all a and img tags,
+ while allowing all other tags.
+
+
+CKEDITOR.replace( 'editor7', {
+ allowedContent: {
+ // Allow all content.
+ $1: {
+ elements: CKEDITOR.dtd,
+ attributes: true,
+ styles: true,
+ classes: true
+ }
+ },
+ disallowedContent: 'img a'
+} );
+
+
+
+ <h1><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/dialog/assets/my_dialog.js b/static/js/ckeditor/samples/old/dialog/assets/my_dialog.js
index f85af78..11df2c2 100644
--- a/static/js/ckeditor/samples/old/dialog/assets/my_dialog.js
+++ b/static/js/ckeditor/samples/old/dialog/assets/my_dialog.js
@@ -1,48 +1,48 @@
-/**
- * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or http://ckeditor.com/license
- */
-
-CKEDITOR.dialog.add( 'myDialog', function() {
- return {
- title: 'My Dialog',
- minWidth: 400,
- minHeight: 200,
- contents: [
- {
- id: 'tab1',
- label: 'First Tab',
- title: 'First Tab',
- elements: [
- {
- id: 'input1',
- type: 'text',
- label: 'Text Field'
- },
- {
- id: 'select1',
- type: 'select',
- label: 'Select Field',
- items: [
- [ 'option1', 'value1' ],
- [ 'option2', 'value2' ]
- ]
- }
- ]
- },
- {
- id: 'tab2',
- label: 'Second Tab',
- title: 'Second Tab',
- elements: [
- {
- id: 'button1',
- type: 'button',
- label: 'Button Field'
- }
- ]
- }
- ]
- };
-} );
-
+/**
+ * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+CKEDITOR.dialog.add( 'myDialog', function() {
+ return {
+ title: 'My Dialog',
+ minWidth: 400,
+ minHeight: 200,
+ contents: [
+ {
+ id: 'tab1',
+ label: 'First Tab',
+ title: 'First Tab',
+ elements: [
+ {
+ id: 'input1',
+ type: 'text',
+ label: 'Text Field'
+ },
+ {
+ id: 'select1',
+ type: 'select',
+ label: 'Select Field',
+ items: [
+ [ 'option1', 'value1' ],
+ [ 'option2', 'value2' ]
+ ]
+ }
+ ]
+ },
+ {
+ id: 'tab2',
+ label: 'Second Tab',
+ title: 'Second Tab',
+ elements: [
+ {
+ id: 'button1',
+ type: 'button',
+ label: 'Button Field'
+ }
+ ]
+ }
+ ]
+ };
+} );
+
diff --git a/static/js/ckeditor/samples/old/dialog/dialog.html b/static/js/ckeditor/samples/old/dialog/dialog.html
index 7fda2bb..4064b71 100644
--- a/static/js/ckeditor/samples/old/dialog/dialog.html
+++ b/static/js/ckeditor/samples/old/dialog/dialog.html
@@ -1,190 +1,190 @@
-
-
-
-
-
- Using API to Customize Dialog Windows — CKEditor Sample
-
-
-
-
-
-
-
-
-
-
-
-
-
- This sample shows how to use the
- CKEditor Dialog API
- to customize CKEditor dialog windows without changing the original editor code.
- The following customizations are being done in the example below:
-
-
- For details on how to create this setup check the source code of this sample page.
-
-
- A custom dialog is added to the editors using the pluginsLoaded event, from an external dialog definition file :
-
- Creating a custom dialog window – "My Dialog" dialog window opened with the "My Dialog" toolbar button.
- Creating a custom button – Add button to open the dialog with "My Dialog" toolbar button.
-
- <p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p>
-
- The below editor modify the dialog definition of the above added dialog using the dialogDefinition event:
-
- Adding dialog tab – Add new tab "My Tab" to dialog window.
- Removing a dialog window tab – Remove "Second Tab" page from the dialog window.
- Adding dialog window fields – Add "My Custom Field" to the dialog window.
- Removing dialog window field – Remove "Select Field" selection field from the dialog window.
- Setting default values for dialog window fields – Set default value of "Text Field" text field.
- Setup initial focus for dialog window – Put initial focus on "My Custom Field" text field.
-
- <p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p>
-
-
-
-
+
+
+
+
+
+ Using API to Customize Dialog Windows — CKEditor Sample
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This sample shows how to use the
+ CKEditor Dialog API
+ to customize CKEditor dialog windows without changing the original editor code.
+ The following customizations are being done in the example below:
+
+
+ For details on how to create this setup check the source code of this sample page.
+
+
+ A custom dialog is added to the editors using the pluginsLoaded event, from an external dialog definition file :
+
+ Creating a custom dialog window – "My Dialog" dialog window opened with the "My Dialog" toolbar button.
+ Creating a custom button – Add button to open the dialog with "My Dialog" toolbar button.
+
+ <p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p>
+
+ The below editor modify the dialog definition of the above added dialog using the dialogDefinition event:
+
+ Adding dialog tab – Add new tab "My Tab" to dialog window.
+ Removing a dialog window tab – Remove "Second Tab" page from the dialog window.
+ Adding dialog window fields – Add "My Custom Field" to the dialog window.
+ Removing dialog window field – Remove "Select Field" selection field from the dialog window.
+ Setting default values for dialog window fields – Set default value of "Text Field" text field.
+ Setup initial focus for dialog window – Put initial focus on "My Custom Field" text field.
+
+ <p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p>
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/divreplace.html b/static/js/ckeditor/samples/old/divreplace.html
index 3fdb9b2..91008c8 100644
--- a/static/js/ckeditor/samples/old/divreplace.html
+++ b/static/js/ckeditor/samples/old/divreplace.html
@@ -1,144 +1,144 @@
-
-
-
-
-
- Replace DIV — CKEditor Sample
-
-
-
-
-
-
-
- CKEditor Samples » Replace DIV with CKEditor on the Fly
-
-
-
-
- This sample shows how to automatically replace <div> elements
- with a CKEditor instance on the fly, following user's doubleclick. The content
- that was previously placed inside the <div> element will now
- be moved into CKEditor editing area.
-
-
- For details on how to create this setup check the source code of this sample page.
-
-
-
- Double-click any of the following <div> elements to transform them into
- editor instances.
-
-
-
- Part 1
-
-
- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi
- semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna
- rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla
- nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce
- eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus.
-
-
-
-
- Part 2
-
-
- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi
- semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna
- rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla
- nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce
- eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus.
-
-
- Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus
- sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum
- vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate.
-
-
-
-
- Part 3
-
-
- Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi
- semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna
- rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla
- nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce
- eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus.
-
-
-
-
-
+
+
+
+
+
+ Replace DIV — CKEditor Sample
+
+
+
+
+
+
+
+ CKEditor Samples » Replace DIV with CKEditor on the Fly
+
+
+
+
+ This sample shows how to automatically replace <div> elements
+ with a CKEditor instance on the fly, following user's doubleclick. The content
+ that was previously placed inside the <div> element will now
+ be moved into CKEditor editing area.
+
+
+ For details on how to create this setup check the source code of this sample page.
+
+
+
+ Double-click any of the following <div> elements to transform them into
+ editor instances.
+
+
+
+ Part 1
+
+
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi
+ semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna
+ rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla
+ nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce
+ eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus.
+
+
+
+
+ Part 2
+
+
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi
+ semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna
+ rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla
+ nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce
+ eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus.
+
+
+ Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus
+ sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum
+ vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate.
+
+
+
+
+ Part 3
+
+
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi
+ semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna
+ rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla
+ nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce
+ eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus.
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/enterkey/enterkey.html b/static/js/ckeditor/samples/old/enterkey/enterkey.html
index 6b78e06..dc7295f 100644
--- a/static/js/ckeditor/samples/old/enterkey/enterkey.html
+++ b/static/js/ckeditor/samples/old/enterkey/enterkey.html
@@ -1,106 +1,106 @@
-
-
-
-
-
- ENTER Key Configuration — CKEditor Sample
-
-
-
-
-
-
-
-
-
-
-
-
- This sample shows how to configure the Enter and Shift+Enter keys
- to perform actions specified in the
- enterMode
- and shiftEnterMode
- parameters, respectively.
- You can choose from the following options:
-
-
- ENTER_P – new <p> paragraphs are created;
- ENTER_BR – lines are broken with <br> elements;
- ENTER_DIV – new <div> blocks are created.
-
-
- The sample code below shows how to configure CKEditor to create a <div> block when Enter key is pressed.
-
-
-CKEDITOR.replace( 'textarea_id ', {
- enterMode: CKEDITOR.ENTER_DIV
-});
-
- Note that textarea_id in the code above is the id attribute of
- the <textarea> element to be replaced.
-
-
-
- When Enter is pressed:
-
- Create a new <P> (recommended)
- Create a new <DIV>
- Break the line with a <BR>
-
-
-
- When Shift+Enter is pressed:
-
- Create a new <P>
- Create a new <DIV>
- Break the line with a <BR> (recommended)
-
-
-
-
-
-
- This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.
-
-
-
-
-
-
-
-
+
+
+
+
+
+ ENTER Key Configuration — CKEditor Sample
+
+
+
+
+
+
+
+
+
+
+
+
+ This sample shows how to configure the Enter and Shift+Enter keys
+ to perform actions specified in the
+ enterMode
+ and shiftEnterMode
+ parameters, respectively.
+ You can choose from the following options:
+
+
+ ENTER_P – new <p> paragraphs are created;
+ ENTER_BR – lines are broken with <br> elements;
+ ENTER_DIV – new <div> blocks are created.
+
+
+ The sample code below shows how to configure CKEditor to create a <div> block when Enter key is pressed.
+
+
+CKEDITOR.replace( 'textarea_id ', {
+ enterMode: CKEDITOR.ENTER_DIV
+});
+
+ Note that textarea_id in the code above is the id attribute of
+ the <textarea> element to be replaced.
+
+
+
+ When Enter is pressed:
+
+ Create a new <P> (recommended)
+ Create a new <DIV>
+ Break the line with a <BR>
+
+
+
+ When Shift+Enter is pressed:
+
+ Create a new <P>
+ Create a new <DIV>
+ Break the line with a <BR> (recommended)
+
+
+
+
+
+
+ This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.
+
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/index.html b/static/js/ckeditor/samples/old/index.html
index abc533d..62da478 100644
--- a/static/js/ckeditor/samples/old/index.html
+++ b/static/js/ckeditor/samples/old/index.html
@@ -1,101 +1,101 @@
-
-
-
-
-
- CKEditor Samples
-
-
-
-
- CKEditor Samples
-
-
-
-
-
- Basic Samples
-
-
- Replace textarea elements by class name
- Automatic replacement of all textarea elements of a given class with a CKEditor instance.
-
- Replace textarea elements by code
- Replacement of textarea elements with CKEditor instances by using a JavaScript call.
-
- Create editors with jQuery
- Creating standard and inline CKEditor instances with jQuery adapter.
-
-
-
- Basic Customization
-
-
- User Interface color
- Changing CKEditor User Interface color and adding a toolbar button that lets the user set the UI color.
-
- User Interface languages
- Changing CKEditor User Interface language and adding a drop-down list that lets the user choose the UI language.
-
-
-
+
+
+
+
+
+
CKEditor Samples
+
+
+
+
+ CKEditor Samples
+
+
+
+
+
+ Basic Samples
+
+
+ Replace textarea elements by class name
+ Automatic replacement of all textarea elements of a given class with a CKEditor instance.
+
+ Replace textarea elements by code
+ Replacement of textarea elements with CKEditor instances by using a JavaScript call.
+
+ Create editors with jQuery
+ Creating standard and inline CKEditor instances with jQuery adapter.
+
+
+
+ Basic Customization
+
+
+ User Interface color
+ Changing CKEditor User Interface color and adding a toolbar button that lets the user set the UI color.
+
+ User Interface languages
+ Changing CKEditor User Interface language and adding a drop-down list that lets the user choose the UI language.
+
+
+
Plugins
Full page support
CKEditor inserted with a JavaScript call and used to edit the whole page from <html> to </html>.
-
-
-
+
-
-
-
-
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/inlineall.html b/static/js/ckeditor/samples/old/inlineall.html
index 8f99705..6fbd9ef 100644
--- a/static/js/ckeditor/samples/old/inlineall.html
+++ b/static/js/ckeditor/samples/old/inlineall.html
@@ -1,314 +1,314 @@
-
-
-
-
-
- Massive inline editing — CKEditor Sample
-
-
-
-
-
-
-
-
-
-
-
This sample page demonstrates the inline editing feature - CKEditor instances will be created automatically from page elements with contentEditable attribute set to value true :
-
<div contenteditable="true " > ... </div>
-
Click inside of any element below to start editing.
-
-
-
-
-
-
-
-
- Fusce vitae porttitor
-
-
-
- Lorem ipsum dolor sit amet dolor. Duis blandit vestibulum faucibus a, tortor.
-
-
-
- Proin nunc justo felis mollis tincidunt, risus risus pede, posuere cubilia Curae, Nullam euismod, enim. Etiam nibh ultricies dolor ac dignissim erat volutpat. Vivamus fermentum nisl nulla sem in metus. Maecenas wisi. Donec nec erat volutpat.
-
-
-
- Fusce vitae porttitor a, euismod convallis nisl, blandit risus tortor, pretium.
- Vehicula vitae, imperdiet vel, ornare enim vel sodales rutrum
-
-
-
-
- Libero nunc, rhoncus ante ipsum non ipsum. Nunc eleifend pede turpis id sollicitudin fringilla. Phasellus ultrices, velit ac arcu.
-
-
-
Pellentesque nunc. Donec suscipit erat. Pellentesque habitant morbi tristique ullamcorper.
-
Mauris mattis feugiat lectus nec mauris. Nullam vitae ante.
-
-
-
-
-
- Integer condimentum sit amet
-
-
- Aenean nonummy a, mattis varius. Cras aliquet.
- Praesent magna non mattis ac, rhoncus nunc , rhoncus eget, cursus pulvinar mollis.
-
Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.
-
Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.
-
-
-
- Praesent wisi accumsan sit amet nibh
-
-
Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.
-
Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue . Fusce urna fringilla gravida.
-
In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.
-
-
-
-
-
-
-
-
Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae , Vestibulum elit metus, quis placerat ut, lectus. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi.
-
- Nullam laoreet vel consectetuer tellus suscipit
-
-
- Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis.
- Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi.
- Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
-
-
Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus.
-
Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis.
-
Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi. Sed in nonummy faucibus turpis. Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
-
-
-
-
- Tags of this article:
-
- inline, editing, floating, CKEditor
-
-
-
-
-
-
+
+
+
+
+
+ Massive inline editing — CKEditor Sample
+
+
+
+
+
+
+
+
+
+
+
This sample page demonstrates the inline editing feature - CKEditor instances will be created automatically from page elements with contentEditable attribute set to value true :
+
<div contenteditable="true " > ... </div>
+
Click inside of any element below to start editing.
+
+
+
+
+
+
+
+
+ Fusce vitae porttitor
+
+
+
+ Lorem ipsum dolor sit amet dolor. Duis blandit vestibulum faucibus a, tortor.
+
+
+
+ Proin nunc justo felis mollis tincidunt, risus risus pede, posuere cubilia Curae, Nullam euismod, enim. Etiam nibh ultricies dolor ac dignissim erat volutpat. Vivamus fermentum nisl nulla sem in metus. Maecenas wisi. Donec nec erat volutpat.
+
+
+
+ Fusce vitae porttitor a, euismod convallis nisl, blandit risus tortor, pretium.
+ Vehicula vitae, imperdiet vel, ornare enim vel sodales rutrum
+
+
+
+
+ Libero nunc, rhoncus ante ipsum non ipsum. Nunc eleifend pede turpis id sollicitudin fringilla. Phasellus ultrices, velit ac arcu.
+
+
+
Pellentesque nunc. Donec suscipit erat. Pellentesque habitant morbi tristique ullamcorper.
+
Mauris mattis feugiat lectus nec mauris. Nullam vitae ante.
+
+
+
+
+
+ Integer condimentum sit amet
+
+
+ Aenean nonummy a, mattis varius. Cras aliquet.
+ Praesent magna non mattis ac, rhoncus nunc , rhoncus eget, cursus pulvinar mollis.
+
Proin id nibh. Sed eu libero posuere sed, lectus. Phasellus dui gravida gravida feugiat mattis ac, felis.
+
Integer condimentum sit amet, tempor elit odio, a dolor non ante at sapien. Sed ac lectus. Nulla ligula quis eleifend mi, id leo velit pede cursus arcu id nulla ac lectus. Phasellus vestibulum. Nunc viverra enim quis diam.
+
+
+
+ Praesent wisi accumsan sit amet nibh
+
+
Donec ullamcorper, risus tortor, pretium porttitor. Morbi quam quis lectus non leo.
+
Integer faucibus scelerisque. Proin faucibus at, aliquet vulputate, odio at eros. Fusce gravida, erat vitae augue . Fusce urna fringilla gravida.
+
In hac habitasse platea dictumst. Praesent wisi accumsan sit amet nibh. Maecenas orci luctus a, lacinia quam sem, posuere commodo, odio condimentum tempor, pede semper risus. Suspendisse pede. In hac habitasse platea dictumst. Nam sed laoreet sit amet erat. Integer.
+
+
+
+
+
+
+
+
Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae , Vestibulum elit metus, quis placerat ut, lectus. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi.
+
+ Nullam laoreet vel consectetuer tellus suscipit
+
+
+ Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis.
+ Fusce porttitor, nulla quis turpis. Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi.
+ Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
+
+
Quisque justo neque, mattis sed, fermentum ultrices posuere cubilia Curae, Vestibulum elit metus, quis placerat ut, lectus.
+
Nullam laoreet vel, consectetuer tellus suscipit ultricies, hendrerit wisi. Ut sagittis, nunc libero, egestas consequat lobortis velit rutrum ut, faucibus turpis. Fusce porttitor, nulla quis turpis.
+
Donec odio nec velit ac nunc sit amet, accumsan cursus aliquet. Vestibulum ante sit amet sagittis mi. Sed in nonummy faucibus turpis. Mauris eget tellus. Donec non felis. Nam eget dolor. Vestibulum enim. Donec.
+
+
+
+
+ Tags of this article:
+
+ inline, editing, floating, CKEditor
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/inlinebycode.html b/static/js/ckeditor/samples/old/inlinebycode.html
index edbec8a..390b142 100644
--- a/static/js/ckeditor/samples/old/inlinebycode.html
+++ b/static/js/ckeditor/samples/old/inlinebycode.html
@@ -1,124 +1,124 @@
-
-
-
-
-
- Inline Editing by Code — CKEditor Sample
-
-
-
-
-
-
-
-
-
- This sample shows how to create an inline editor instance of CKEditor. It is created
- with a JavaScript call using the following code:
-
-
-// This property tells CKEditor to not activate every element with contenteditable=true element.
-CKEDITOR.disableAutoInline = true;
-
-var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );
-
-
- Note that editable in the code above is the id
- attribute of the <div> element to be converted into an inline instance.
-
-
-
-
Apollo 11
-
-
Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin , on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.
-
-
Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins , piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.
-
-
Broadcasting and quotes
-
-
Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:
-
-
- One small step for [a] man, one giant leap for mankind.
-
-
-
Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:
-
-
- [...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.
-
-
-
Technical details
-
-
- Mission crew
-
-
- Position
- Astronaut
-
-
-
-
- Commander
- Neil A. Armstrong
-
-
- Command Module Pilot
- Michael Collins
-
-
- Lunar Module Pilot
- Edwin "Buzz" E. Aldrin, Jr.
-
-
-
-
-
Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of NASA 's Apollo program. The Apollo spacecraft had three parts:
-
-
- Command Module with a cabin for the three astronauts which was the only part which landed back on Earth
- Service Module which supported the Command Module with propulsion, electrical power, oxygen and water
- Lunar Module for landing on the Moon.
-
-
-
After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility . They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.
-
-
-
Source: Wikipedia.org
-
-
-
-
-
-
+
+
+
+
+
+ Inline Editing by Code — CKEditor Sample
+
+
+
+
+
+
+
+
+
+ This sample shows how to create an inline editor instance of CKEditor. It is created
+ with a JavaScript call using the following code:
+
+
+// This property tells CKEditor to not activate every element with contenteditable=true element.
+CKEDITOR.disableAutoInline = true;
+
+var editor = CKEDITOR.inline( document.getElementById( 'editable' ) );
+
+
+ Note that editable in the code above is the id
+ attribute of the <div> element to be converted into an inline instance.
+
+
+
+
Apollo 11
+
+
Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin , on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.
+
+
Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins , piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.
+
+
Broadcasting and quotes
+
+
Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:
+
+
+ One small step for [a] man, one giant leap for mankind.
+
+
+
Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:
+
+
+ [...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.
+
+
+
Technical details
+
+
+ Mission crew
+
+
+ Position
+ Astronaut
+
+
+
+
+ Commander
+ Neil A. Armstrong
+
+
+ Command Module Pilot
+ Michael Collins
+
+
+ Lunar Module Pilot
+ Edwin "Buzz" E. Aldrin, Jr.
+
+
+
+
+
Launched by a Saturn V rocket from Kennedy Space Center in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of NASA 's Apollo program. The Apollo spacecraft had three parts:
+
+
+ Command Module with a cabin for the three astronauts which was the only part which landed back on Earth
+ Service Module which supported the Command Module with propulsion, electrical power, oxygen and water
+ Lunar Module for landing on the Moon.
+
+
+
After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the Sea of Tranquility . They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the Pacific Ocean on July 24.
+
+
+
Source: Wikipedia.org
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/inlinetextarea.html b/static/js/ckeditor/samples/old/inlinetextarea.html
index ff55bf4..99ac241 100644
--- a/static/js/ckeditor/samples/old/inlinetextarea.html
+++ b/static/js/ckeditor/samples/old/inlinetextarea.html
@@ -1,113 +1,113 @@
-
-
-
-
-
- Replace Textarea with Inline Editor — CKEditor Sample
-
-
-
-
-
-
- CKEditor Samples » Replace Textarea with Inline Editor
-
-
-
-
- You can also create an inline editor from a textarea
- element. In this case the textarea will be replaced
- by a div element with inline editing enabled.
-
-
-// "article-body" is the name of a textarea element.
-var editor = CKEDITOR.inline( 'article-body' );
-
-
-
- This is a sample form with some fields
-
- Title:
-
-
- Article Body (Textarea converted to CKEditor):
-
- <h2>Technical details <a id="tech-details" name="tech-details"></a></h2>
-
- <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;">
- <caption><strong>Mission crew</strong></caption>
- <thead>
- <tr>
- <th scope="col">Position</th>
- <th scope="col">Astronaut</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>Commander</td>
- <td>Neil A. Armstrong</td>
- </tr>
- <tr>
- <td>Command Module Pilot</td>
- <td>Michael Collins</td>
- </tr>
- <tr>
- <td>Lunar Module Pilot</td>
- <td>Edwin "Buzz" E. Aldrin, Jr.</td>
- </tr>
- </tbody>
- </table>
-
- <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p>
-
- <ol>
- <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li>
- <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li>
- <li><strong>Lunar Module</strong> for landing on the Moon.</li>
- </ol>
-
- <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p>
-
- <hr />
- <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ Replace Textarea with Inline Editor — CKEditor Sample
+
+
+
+
+
+
+ CKEditor Samples » Replace Textarea with Inline Editor
+
+
+
+
+ You can also create an inline editor from a textarea
+ element. In this case the textarea will be replaced
+ by a div element with inline editing enabled.
+
+
+// "article-body" is the name of a textarea element.
+var editor = CKEDITOR.inline( 'article-body' );
+
+
+
+ This is a sample form with some fields
+
+ Title:
+
+
+ Article Body (Textarea converted to CKEditor):
+
+ <h2>Technical details <a id="tech-details" name="tech-details"></a></h2>
+
+ <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;">
+ <caption><strong>Mission crew</strong></caption>
+ <thead>
+ <tr>
+ <th scope="col">Position</th>
+ <th scope="col">Astronaut</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>Commander</td>
+ <td>Neil A. Armstrong</td>
+ </tr>
+ <tr>
+ <td>Command Module Pilot</td>
+ <td>Michael Collins</td>
+ </tr>
+ <tr>
+ <td>Lunar Module Pilot</td>
+ <td>Edwin "Buzz" E. Aldrin, Jr.</td>
+ </tr>
+ </tbody>
+ </table>
+
+ <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p>
+
+ <ol>
+ <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li>
+ <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li>
+ <li><strong>Lunar Module</strong> for landing on the Moon.</li>
+ </ol>
+
+ <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p>
+
+ <hr />
+ <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
+
+
+
+
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/jquery.html b/static/js/ckeditor/samples/old/jquery.html
index 6df9a64..75bffa9 100644
--- a/static/js/ckeditor/samples/old/jquery.html
+++ b/static/js/ckeditor/samples/old/jquery.html
@@ -1,103 +1,103 @@
-
-
-
-
-
- jQuery Adapter — CKEditor Sample
-
-
-
-
-
-
-
-
-
- CKEditor Samples » Create Editors with jQuery
-
-
-
-
-
- This sample shows how to use the jQuery adapter .
- Note that you have to include both CKEditor and jQuery scripts before including the adapter.
-
-
-
-<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
-<script src="/ckedit../../ckeditor.js"></script>
-<script src="/ckeditor/adapters/jquery.js"></script>
-
-
-
Then you can replace HTML elements with a CKEditor instance using the ckeditor() method.
-
-
-$( document ).ready( function() {
- $( 'textarea#editor1' ).ckeditor();
-} );
-
-
-
- Inline Example
-
-
-
Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin , on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.
-
Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins , piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.
-
Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:
-
One small step for [a] man, one giant leap for mankind.
Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:
[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.
-
-
-
-
- Classic (iframe-based) Example
-
-
- <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ jQuery Adapter — CKEditor Sample
+
+
+
+
+
+
+
+
+
+ CKEditor Samples » Create Editors with jQuery
+
+
+
+
+
+ This sample shows how to use the jQuery adapter .
+ Note that you have to include both CKEditor and jQuery scripts before including the adapter.
+
+
+
+<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
+<script src="/ckedit../../ckeditor.js"></script>
+<script src="/ckeditor/adapters/jquery.js"></script>
+
+
+
Then you can replace HTML elements with a CKEditor instance using the ckeditor() method.
+
+
+$( document ).ready( function() {
+ $( 'textarea#editor1' ).ckeditor();
+} );
+
+
+
+ Inline Example
+
+
+
Apollo 11 was the spaceflight that landed the first humans, Americans Neil Armstrong and Buzz Aldrin , on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.
+
Armstrong spent about three and a half two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, Michael Collins , piloted the command spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.
+
Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:
+
One small step for [a] man, one giant leap for mankind.
Apollo 11 effectively ended the Space Race and fulfilled a national goal proposed in 1961 by the late U.S. President John F. Kennedy in a speech before the United States Congress:
[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.
+
+
+
+
+ Classic (iframe-based) Example
+
+
+ <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/readonly.html b/static/js/ckeditor/samples/old/readonly.html
index 14c32b5..086e7b4 100644
--- a/static/js/ckeditor/samples/old/readonly.html
+++ b/static/js/ckeditor/samples/old/readonly.html
@@ -1,76 +1,76 @@
-
-
-
-
-
- Using the CKEditor Read-Only API — CKEditor Sample
-
-
-
-
-
-
- CKEditor Samples » Using the CKEditor Read-Only API
-
-
-
-
- This sample shows how to use the
- setReadOnly
- API to put editor into the read-only state that makes it impossible for users to change the editor contents.
-
-
- For details on how to create this setup check the source code of this sample page.
-
-
-
-
- <p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p>
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ Using the CKEditor Read-Only API — CKEditor Sample
+
+
+
+
+
+
+ CKEditor Samples » Using the CKEditor Read-Only API
+
+
+
+
+ This sample shows how to use the
+ setReadOnly
+ API to put editor into the read-only state that makes it impossible for users to change the editor contents.
+
+
+ For details on how to create this setup check the source code of this sample page.
+
+
+
+
+ <p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p>
+
+
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/replacebyclass.html b/static/js/ckeditor/samples/old/replacebyclass.html
index 839b31e..e2eaa35 100644
--- a/static/js/ckeditor/samples/old/replacebyclass.html
+++ b/static/js/ckeditor/samples/old/replacebyclass.html
@@ -1,60 +1,60 @@
-
-
-
-
-
- Replace Textareas by Class Name — CKEditor Sample
-
-
-
-
-
- CKEditor Samples » Replace Textarea Elements by Class Name
-
-
-
-
- This sample shows how to automatically replace all <textarea> elements
- of a given class with a CKEditor instance.
-
-
- To replace a <textarea> element, simply assign it the ckeditor
- class, as in the code below:
-
-
-<textarea class="ckeditor " name="editor1"></textarea>
-
-
- Note that other <textarea> attributes (like id or name) need to be adjusted to your document.
-
-
-
-
-
- Editor 1:
-
-
- <h1><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ Replace Textareas by Class Name — CKEditor Sample
+
+
+
+
+
+ CKEditor Samples » Replace Textarea Elements by Class Name
+
+
+
+
+ This sample shows how to automatically replace all <textarea> elements
+ of a given class with a CKEditor instance.
+
+
+ To replace a <textarea> element, simply assign it the ckeditor
+ class, as in the code below:
+
+
+<textarea class="ckeditor " name="editor1"></textarea>
+
+
+ Note that other <textarea> attributes (like id or name) need to be adjusted to your document.
+
+
+
+
+
+ Editor 1:
+
+
+ <h1><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
+
+
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/replacebycode.html b/static/js/ckeditor/samples/old/replacebycode.html
index bfd8c05..a447c4e 100644
--- a/static/js/ckeditor/samples/old/replacebycode.html
+++ b/static/js/ckeditor/samples/old/replacebycode.html
@@ -1,59 +1,59 @@
-
-
-
-
-
- Replace Textarea by Code — CKEditor Sample
-
-
-
-
-
- CKEditor Samples » Replace Textarea Elements Using JavaScript Code
-
-
-
-
-
- This editor is using an <iframe> element-based editing area, provided by the Wysiwygarea plugin.
-
-
-CKEDITOR.replace( 'textarea_id ' )
-
-
-
- <h1><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+ Replace Textarea by Code — CKEditor Sample
+
+
+
+
+
+ CKEditor Samples » Replace Textarea Elements Using JavaScript Code
+
+
+
+
+
+ This editor is using an <iframe> element-based editing area, provided by the Wysiwygarea plugin.
+
+
+CKEDITOR.replace( 'textarea_id ' )
+
+
+
+ <h1><img alt="Saturn V carrying Apollo 11" class="right" src="assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
+
+
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/sample.css b/static/js/ckeditor/samples/old/sample.css
index dee8855..8915098 100644
--- a/static/js/ckeditor/samples/old/sample.css
+++ b/static/js/ckeditor/samples/old/sample.css
@@ -1,357 +1,357 @@
-/*
-Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
-For licensing, see LICENSE.md or http://ckeditor.com/license
-*/
-
-html, body, h1, h2, h3, h4, h5, h6, div, span, blockquote, p, address, form, fieldset, img, ul, ol, dl, dt, dd, li, hr, table, td, th, strong, em, sup, sub, dfn, ins, del, q, cite, var, samp, code, kbd, tt, pre
-{
- line-height: 1.5;
-}
-
-body
-{
- padding: 10px 30px;
-}
-
-input, textarea, select, option, optgroup, button, td, th
-{
- font-size: 100%;
-}
-
-pre
-{
- -moz-tab-size: 4;
- tab-size: 4;
-}
-
-pre, code, kbd, samp, tt
-{
- font-family: monospace,monospace;
- font-size: 1em;
-}
-
-body {
- width: 960px;
- margin: 0 auto;
-}
-
-code
-{
- background: #f3f3f3;
- border: 1px solid #ddd;
- padding: 1px 4px;
- border-radius: 3px;
-}
-
-abbr
-{
- border-bottom: 1px dotted #555;
- cursor: pointer;
-}
-
-.new, .beta
-{
- text-transform: uppercase;
- font-size: 10px;
- font-weight: bold;
- padding: 1px 4px;
- margin: 0 0 0 5px;
- color: #fff;
- float: right;
- border-radius: 3px;
-}
-
-.new
-{
- background: #FF7E00;
- border: 1px solid #DA8028;
- text-shadow: 0 1px 0 #C97626;
-
- box-shadow: 0 2px 3px 0 #FFA54E inset;
-}
-
-.beta
-{
- background: #18C0DF;
- border: 1px solid #19AAD8;
- text-shadow: 0 1px 0 #048CAD;
- font-style: italic;
-
- box-shadow: 0 2px 3px 0 #50D4FD inset;
-}
-
-h1.samples
-{
- color: #0782C1;
- font-size: 200%;
- font-weight: normal;
- margin: 0;
- padding: 0;
-}
-
-h1.samples a
-{
- color: #0782C1;
- text-decoration: none;
- border-bottom: 1px dotted #0782C1;
-}
-
-.samples a:hover
-{
- border-bottom: 1px dotted #0782C1;
-}
-
-h2.samples
-{
- color: #000000;
- font-size: 130%;
- margin: 15px 0 0 0;
- padding: 0;
-}
-
-p, blockquote, address, form, pre, dl, h1.samples, h2.samples
-{
- margin-bottom: 15px;
-}
-
-ul.samples
-{
- margin-bottom: 15px;
-}
-
-.clear
-{
- clear: both;
-}
-
-fieldset
-{
- margin: 0;
- padding: 10px;
-}
-
-body, input, textarea
-{
- color: #333333;
- font-family: Arial, Helvetica, sans-serif;
-}
-
-body
-{
- font-size: 75%;
-}
-
-a.samples
-{
- color: #189DE1;
- text-decoration: none;
-}
-
-form
-{
- margin: 0;
- padding: 0;
-}
-
-pre.samples
-{
- background-color: #F7F7F7;
- border: 1px solid #D7D7D7;
- overflow: auto;
- padding: 0.25em;
- white-space: pre-wrap; /* CSS 2.1 */
- word-wrap: break-word; /* IE7 */
-}
-
-#footer
-{
- clear: both;
- padding-top: 10px;
-}
-
-#footer hr
-{
- margin: 10px 0 15px 0;
- height: 1px;
- border: solid 1px gray;
- border-bottom: none;
-}
-
-#footer p
-{
- margin: 0 10px 10px 10px;
- float: left;
-}
-
-#footer #copy
-{
- float: right;
-}
-
-#outputSample
-{
- width: 100%;
- table-layout: fixed;
-}
-
-#outputSample thead th
-{
- color: #dddddd;
- background-color: #999999;
- padding: 4px;
- white-space: nowrap;
-}
-
-#outputSample tbody th
-{
- vertical-align: top;
- text-align: left;
-}
-
-#outputSample pre
-{
- margin: 0;
- padding: 0;
-}
-
-.description
-{
- border: 1px dotted #B7B7B7;
- margin-bottom: 10px;
- padding: 10px 10px 0;
- overflow: hidden;
-}
-
-label
-{
- display: block;
- margin-bottom: 6px;
-}
-
-/**
- * CKEditor editables are automatically set with the "cke_editable" class
- * plus cke_editable_(inline|themed) depending on the editor type.
- */
-
-/* Style a bit the inline editables. */
-.cke_editable.cke_editable_inline
-{
- cursor: pointer;
-}
-
-/* Once an editable element gets focused, the "cke_focus" class is
- added to it, so we can style it differently. */
-.cke_editable.cke_editable_inline.cke_focus
-{
- box-shadow: inset 0px 0px 20px 3px #ddd, inset 0 0 1px #000;
- outline: none;
- background: #eee;
- cursor: text;
-}
-
-/* Avoid pre-formatted overflows inline editable. */
-.cke_editable_inline pre
-{
- white-space: pre-wrap;
- word-wrap: break-word;
-}
-
-/**
- * Samples index styles.
- */
-
-.twoColumns,
-.twoColumnsLeft,
-.twoColumnsRight
-{
- overflow: hidden;
-}
-
-.twoColumnsLeft,
-.twoColumnsRight
-{
- width: 45%;
-}
-
-.twoColumnsLeft
-{
- float: left;
-}
-
-.twoColumnsRight
-{
- float: right;
-}
-
-dl.samples
-{
- padding: 0 0 0 40px;
-}
-dl.samples > dt
-{
- display: list-item;
- list-style-type: disc;
- list-style-position: outside;
- margin: 0 0 3px;
-}
-dl.samples > dd
-{
- margin: 0 0 3px;
-}
-.warning
-{
- color: #ff0000;
- background-color: #FFCCBA;
- border: 2px dotted #ff0000;
- padding: 15px 10px;
- margin: 10px 0;
-}
-
-.warning.deprecated {
- font-size: 1.3em;
-}
-
-/* Used on inline samples */
-
-blockquote
-{
- font-style: italic;
- font-family: Georgia, Times, "Times New Roman", serif;
- padding: 2px 0;
- border-style: solid;
- border-color: #ccc;
- border-width: 0;
-}
-
-.cke_contents_ltr blockquote
-{
- padding-left: 20px;
- padding-right: 8px;
- border-left-width: 5px;
-}
-
-.cke_contents_rtl blockquote
-{
- padding-left: 8px;
- padding-right: 20px;
- border-right-width: 5px;
-}
-
-img.right {
- border: 1px solid #ccc;
- float: right;
- margin-left: 15px;
- padding: 5px;
-}
-
-img.left {
- border: 1px solid #ccc;
- float: left;
- margin-right: 15px;
- padding: 5px;
-}
-
-.marker
-{
- background-color: Yellow;
-}
+/*
+Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+For licensing, see LICENSE.md or http://ckeditor.com/license
+*/
+
+html, body, h1, h2, h3, h4, h5, h6, div, span, blockquote, p, address, form, fieldset, img, ul, ol, dl, dt, dd, li, hr, table, td, th, strong, em, sup, sub, dfn, ins, del, q, cite, var, samp, code, kbd, tt, pre
+{
+ line-height: 1.5;
+}
+
+body
+{
+ padding: 10px 30px;
+}
+
+input, textarea, select, option, optgroup, button, td, th
+{
+ font-size: 100%;
+}
+
+pre
+{
+ -moz-tab-size: 4;
+ tab-size: 4;
+}
+
+pre, code, kbd, samp, tt
+{
+ font-family: monospace,monospace;
+ font-size: 1em;
+}
+
+body {
+ width: 960px;
+ margin: 0 auto;
+}
+
+code
+{
+ background: #f3f3f3;
+ border: 1px solid #ddd;
+ padding: 1px 4px;
+ border-radius: 3px;
+}
+
+abbr
+{
+ border-bottom: 1px dotted #555;
+ cursor: pointer;
+}
+
+.new, .beta
+{
+ text-transform: uppercase;
+ font-size: 10px;
+ font-weight: bold;
+ padding: 1px 4px;
+ margin: 0 0 0 5px;
+ color: #fff;
+ float: right;
+ border-radius: 3px;
+}
+
+.new
+{
+ background: #FF7E00;
+ border: 1px solid #DA8028;
+ text-shadow: 0 1px 0 #C97626;
+
+ box-shadow: 0 2px 3px 0 #FFA54E inset;
+}
+
+.beta
+{
+ background: #18C0DF;
+ border: 1px solid #19AAD8;
+ text-shadow: 0 1px 0 #048CAD;
+ font-style: italic;
+
+ box-shadow: 0 2px 3px 0 #50D4FD inset;
+}
+
+h1.samples
+{
+ color: #0782C1;
+ font-size: 200%;
+ font-weight: normal;
+ margin: 0;
+ padding: 0;
+}
+
+h1.samples a
+{
+ color: #0782C1;
+ text-decoration: none;
+ border-bottom: 1px dotted #0782C1;
+}
+
+.samples a:hover
+{
+ border-bottom: 1px dotted #0782C1;
+}
+
+h2.samples
+{
+ color: #000000;
+ font-size: 130%;
+ margin: 15px 0 0 0;
+ padding: 0;
+}
+
+p, blockquote, address, form, pre, dl, h1.samples, h2.samples
+{
+ margin-bottom: 15px;
+}
+
+ul.samples
+{
+ margin-bottom: 15px;
+}
+
+.clear
+{
+ clear: both;
+}
+
+fieldset
+{
+ margin: 0;
+ padding: 10px;
+}
+
+body, input, textarea
+{
+ color: #333333;
+ font-family: Arial, Helvetica, sans-serif;
+}
+
+body
+{
+ font-size: 75%;
+}
+
+a.samples
+{
+ color: #189DE1;
+ text-decoration: none;
+}
+
+form
+{
+ margin: 0;
+ padding: 0;
+}
+
+pre.samples
+{
+ background-color: #F7F7F7;
+ border: 1px solid #D7D7D7;
+ overflow: auto;
+ padding: 0.25em;
+ white-space: pre-wrap; /* CSS 2.1 */
+ word-wrap: break-word; /* IE7 */
+}
+
+#footer
+{
+ clear: both;
+ padding-top: 10px;
+}
+
+#footer hr
+{
+ margin: 10px 0 15px 0;
+ height: 1px;
+ border: solid 1px gray;
+ border-bottom: none;
+}
+
+#footer p
+{
+ margin: 0 10px 10px 10px;
+ float: left;
+}
+
+#footer #copy
+{
+ float: right;
+}
+
+#outputSample
+{
+ width: 100%;
+ table-layout: fixed;
+}
+
+#outputSample thead th
+{
+ color: #dddddd;
+ background-color: #999999;
+ padding: 4px;
+ white-space: nowrap;
+}
+
+#outputSample tbody th
+{
+ vertical-align: top;
+ text-align: left;
+}
+
+#outputSample pre
+{
+ margin: 0;
+ padding: 0;
+}
+
+.description
+{
+ border: 1px dotted #B7B7B7;
+ margin-bottom: 10px;
+ padding: 10px 10px 0;
+ overflow: hidden;
+}
+
+label
+{
+ display: block;
+ margin-bottom: 6px;
+}
+
+/**
+ * CKEditor editables are automatically set with the "cke_editable" class
+ * plus cke_editable_(inline|themed) depending on the editor type.
+ */
+
+/* Style a bit the inline editables. */
+.cke_editable.cke_editable_inline
+{
+ cursor: pointer;
+}
+
+/* Once an editable element gets focused, the "cke_focus" class is
+ added to it, so we can style it differently. */
+.cke_editable.cke_editable_inline.cke_focus
+{
+ box-shadow: inset 0px 0px 20px 3px #ddd, inset 0 0 1px #000;
+ outline: none;
+ background: #eee;
+ cursor: text;
+}
+
+/* Avoid pre-formatted overflows inline editable. */
+.cke_editable_inline pre
+{
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+
+/**
+ * Samples index styles.
+ */
+
+.twoColumns,
+.twoColumnsLeft,
+.twoColumnsRight
+{
+ overflow: hidden;
+}
+
+.twoColumnsLeft,
+.twoColumnsRight
+{
+ width: 45%;
+}
+
+.twoColumnsLeft
+{
+ float: left;
+}
+
+.twoColumnsRight
+{
+ float: right;
+}
+
+dl.samples
+{
+ padding: 0 0 0 40px;
+}
+dl.samples > dt
+{
+ display: list-item;
+ list-style-type: disc;
+ list-style-position: outside;
+ margin: 0 0 3px;
+}
+dl.samples > dd
+{
+ margin: 0 0 3px;
+}
+.warning
+{
+ color: #ff0000;
+ background-color: #FFCCBA;
+ border: 2px dotted #ff0000;
+ padding: 15px 10px;
+ margin: 10px 0;
+}
+
+.warning.deprecated {
+ font-size: 1.3em;
+}
+
+/* Used on inline samples */
+
+blockquote
+{
+ font-style: italic;
+ font-family: Georgia, Times, "Times New Roman", serif;
+ padding: 2px 0;
+ border-style: solid;
+ border-color: #ccc;
+ border-width: 0;
+}
+
+.cke_contents_ltr blockquote
+{
+ padding-left: 20px;
+ padding-right: 8px;
+ border-left-width: 5px;
+}
+
+.cke_contents_rtl blockquote
+{
+ padding-left: 8px;
+ padding-right: 20px;
+ border-right-width: 5px;
+}
+
+img.right {
+ border: 1px solid #ccc;
+ float: right;
+ margin-left: 15px;
+ padding: 5px;
+}
+
+img.left {
+ border: 1px solid #ccc;
+ float: left;
+ margin-right: 15px;
+ padding: 5px;
+}
+
+.marker
+{
+ background-color: Yellow;
+}
diff --git a/static/js/ckeditor/samples/old/sample.js b/static/js/ckeditor/samples/old/sample.js
index ebc077f..cad4f0f 100644
--- a/static/js/ckeditor/samples/old/sample.js
+++ b/static/js/ckeditor/samples/old/sample.js
@@ -1,50 +1,50 @@
-/**
- * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or http://ckeditor.com/license
- */
-
-// Tool scripts for the sample pages.
-// This file can be ignored and is not required to make use of CKEditor.
-
-( function() {
- CKEDITOR.on( 'instanceReady', function( ev ) {
- // Check for sample compliance.
- var editor = ev.editor,
- meta = CKEDITOR.document.$.getElementsByName( 'ckeditor-sample-required-plugins' ),
- requires = meta.length ? CKEDITOR.dom.element.get( meta[ 0 ] ).getAttribute( 'content' ).split( ',' ) : [],
- missing = [],
- i;
-
- if ( requires.length ) {
- for ( i = 0; i < requires.length; i++ ) {
- if ( !editor.plugins[ requires[ i ] ] )
- missing.push( '' + requires[ i ] + '' );
- }
-
- if ( missing.length ) {
- var warn = CKEDITOR.dom.element.createFromHtml(
- '' +
- 'To fully experience this demo, the ' + missing.join( ', ' ) + ' plugin' + ( missing.length > 1 ? 's are' : ' is' ) + ' required. ' +
- '
'
- );
- warn.insertBefore( editor.container );
- }
- }
-
- // Set icons.
- var doc = new CKEDITOR.dom.document( document ),
- icons = doc.find( '.button_icon' );
-
- for ( i = 0; i < icons.count(); i++ ) {
- var icon = icons.getItem( i ),
- name = icon.getAttribute( 'data-icon' ),
- style = CKEDITOR.skin.getIconStyle( name, ( CKEDITOR.lang.dir == 'rtl' ) );
-
- icon.addClass( 'cke_button_icon' );
- icon.addClass( 'cke_button__' + name + '_icon' );
- icon.setAttribute( 'style', style );
- icon.setStyle( 'float', 'none' );
-
- }
- } );
-} )();
+/**
+ * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+// Tool scripts for the sample pages.
+// This file can be ignored and is not required to make use of CKEditor.
+
+( function() {
+ CKEDITOR.on( 'instanceReady', function( ev ) {
+ // Check for sample compliance.
+ var editor = ev.editor,
+ meta = CKEDITOR.document.$.getElementsByName( 'ckeditor-sample-required-plugins' ),
+ requires = meta.length ? CKEDITOR.dom.element.get( meta[ 0 ] ).getAttribute( 'content' ).split( ',' ) : [],
+ missing = [],
+ i;
+
+ if ( requires.length ) {
+ for ( i = 0; i < requires.length; i++ ) {
+ if ( !editor.plugins[ requires[ i ] ] )
+ missing.push( '' + requires[ i ] + '' );
+ }
+
+ if ( missing.length ) {
+ var warn = CKEDITOR.dom.element.createFromHtml(
+ '' +
+ 'To fully experience this demo, the ' + missing.join( ', ' ) + ' plugin' + ( missing.length > 1 ? 's are' : ' is' ) + ' required. ' +
+ '
'
+ );
+ warn.insertBefore( editor.container );
+ }
+ }
+
+ // Set icons.
+ var doc = new CKEDITOR.dom.document( document ),
+ icons = doc.find( '.button_icon' );
+
+ for ( i = 0; i < icons.count(); i++ ) {
+ var icon = icons.getItem( i ),
+ name = icon.getAttribute( 'data-icon' ),
+ style = CKEDITOR.skin.getIconStyle( name, ( CKEDITOR.lang.dir == 'rtl' ) );
+
+ icon.addClass( 'cke_button_icon' );
+ icon.addClass( 'cke_button__' + name + '_icon' );
+ icon.setAttribute( 'style', style );
+ icon.setStyle( 'float', 'none' );
+
+ }
+ } );
+} )();
diff --git a/static/js/ckeditor/samples/old/sample_posteddata.php b/static/js/ckeditor/samples/old/sample_posteddata.php
index 1146c91..20dc4c5 100644
--- a/static/js/ckeditor/samples/old/sample_posteddata.php
+++ b/static/js/ckeditor/samples/old/sample_posteddata.php
@@ -1,16 +1,16 @@
-
-
--------------------------------------------------------------------------------------------
- CKEditor - Posted Data
-
- We are sorry, but your Web server does not support the PHP language used in this script.
-
- Please note that CKEditor can be used with any other server-side language than just PHP.
- To save the content created with CKEditor you need to read the POST data on the server
- side and write it to a file or the database.
-
- Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
- For licensing, see LICENSE.md or http://ckeditor.com/license
--------------------------------------------------------------------------------------------
-
- */ include "assets/posteddata.php"; ?>
+
+
+-------------------------------------------------------------------------------------------
+ CKEditor - Posted Data
+
+ We are sorry, but your Web server does not support the PHP language used in this script.
+
+ Please note that CKEditor can be used with any other server-side language than just PHP.
+ To save the content created with CKEditor you need to read the POST data on the server
+ side and write it to a file or the database.
+
+ Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ For licensing, see LICENSE.md or https://ckeditor.com/license
+-------------------------------------------------------------------------------------------
+
+ */ include "assets/posteddata.php"; ?>
diff --git a/static/js/ckeditor/samples/old/tabindex.html b/static/js/ckeditor/samples/old/tabindex.html
index bd4799a..22ff5be 100644
--- a/static/js/ckeditor/samples/old/tabindex.html
+++ b/static/js/ckeditor/samples/old/tabindex.html
@@ -1,78 +1,78 @@
-
-
-
-
-
-
TAB Key-Based Navigation — CKEditor Sample
-
-
-
-
-
-
-
-
-
-
- This sample shows how tab key navigation among editor instances is
- affected by the tabIndex attribute from
- the original page element. Use TAB key to move between the editors.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
TAB Key-Based Navigation — CKEditor Sample
+
+
+
+
+
+
+
+
+
+
+ This sample shows how tab key navigation among editor instances is
+ affected by the tabIndex attribute from
+ the original page element. Use TAB key to move between the editors.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/toolbar/toolbar.html b/static/js/ckeditor/samples/old/toolbar/toolbar.html
index 2d3d25f..2b8df46 100644
--- a/static/js/ckeditor/samples/old/toolbar/toolbar.html
+++ b/static/js/ckeditor/samples/old/toolbar/toolbar.html
@@ -1,235 +1,235 @@
-
-
-
-
-
-
Toolbar Configuration — CKEditor Sample
-
-
-
-
-
-
-
-
-
-
-
- This sample page demonstrates editor with loaded full toolbar (all registered buttons) and, if
- current editor's configuration modifies default settings, also editor with modified toolbar .
-
-
-
Since CKEditor 4 there are two ways to configure toolbar buttons.
-
-
-
-
- You can explicitly define which buttons are displayed in which groups and in which order.
- This is the more precise setting, but less flexible. If newly added plugin adds its
- own button you'll have to add it manually to your config.toolbar setting as well.
-
-
-
To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:
-
-
-CKEDITOR.replace( 'textarea_id' , {
- toolbar: [
- { name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] }, // Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
- [ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ], // Defines toolbar group without name.
- '/', // Line break - next group will be placed in new line.
- { name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
- ]
-});
-
-
-
-
- You can define which groups of buttons (like e.g. basicstyles, clipboard
- and forms) are displayed and in which order. Registered buttons are associated
- with toolbar groups by toolbar property in their definition.
- This setting's advantage is that you don't have to modify toolbar configuration
- when adding/removing plugins which register their own buttons.
-
-
-
To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:
-
-
-CKEDITOR.replace( 'textarea_id' , {
- toolbarGroups: [
- { name: 'document', groups: [ 'mode', 'document' ] }, // Displays document group with its two subgroups.
- { name: 'clipboard', groups: [ 'clipboard', 'undo' ] }, // Group's name will be used to create voice label.
- '/', // Line break - next group will be placed in new line.
- { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
- { name: 'links' }
- ]
-
- // NOTE: Remember to leave 'toolbar' property with the default value (null).
-});
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
Toolbar Configuration — CKEditor Sample
+
+
+
+
+
+
+
+
+
+
+
+ This sample page demonstrates editor with loaded full toolbar (all registered buttons) and, if
+ current editor's configuration modifies default settings, also editor with modified toolbar .
+
+
+
Since CKEditor 4 there are two ways to configure toolbar buttons.
+
+
+
+
+ You can explicitly define which buttons are displayed in which groups and in which order.
+ This is the more precise setting, but less flexible. If newly added plugin adds its
+ own button you'll have to add it manually to your config.toolbar setting as well.
+
+
+
To add a CKEditor instance with custom toolbar setting, insert the following JavaScript call to your code:
+
+
+CKEDITOR.replace( 'textarea_id' , {
+ toolbar: [
+ { name: 'document', items: [ 'Source', '-', 'NewPage', 'Preview', '-', 'Templates' ] }, // Defines toolbar group with name (used to create voice label) and items in 3 subgroups.
+ [ 'Cut', 'Copy', 'Paste', 'PasteText', 'PasteFromWord', '-', 'Undo', 'Redo' ], // Defines toolbar group without name.
+ '/', // Line break - next group will be placed in new line.
+ { name: 'basicstyles', items: [ 'Bold', 'Italic' ] }
+ ]
+});
+
+
+
+
+ You can define which groups of buttons (like e.g. basicstyles, clipboard
+ and forms) are displayed and in which order. Registered buttons are associated
+ with toolbar groups by toolbar property in their definition.
+ This setting's advantage is that you don't have to modify toolbar configuration
+ when adding/removing plugins which register their own buttons.
+
+
+
To add a CKEditor instance with custom toolbar groups setting, insert the following JavaScript call to your code:
+
+
+CKEDITOR.replace( 'textarea_id' , {
+ toolbarGroups: [
+ { name: 'document', groups: [ 'mode', 'document' ] }, // Displays document group with its two subgroups.
+ { name: 'clipboard', groups: [ 'clipboard', 'undo' ] }, // Group's name will be used to create voice label.
+ '/', // Line break - next group will be placed in new line.
+ { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] },
+ { name: 'links' }
+ ]
+
+ // NOTE: Remember to leave 'toolbar' property with the default value (null).
+});
+
+
+
+
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/uicolor.html b/static/js/ckeditor/samples/old/uicolor.html
index f503204..8acc91f 100644
--- a/static/js/ckeditor/samples/old/uicolor.html
+++ b/static/js/ckeditor/samples/old/uicolor.html
@@ -1,72 +1,72 @@
-
-
-
-
-
-
UI Color Picker — CKEditor Sample
-
-
-
-
-
-
-
-
- This sample shows how to automatically replace <textarea> elements
- with a CKEditor instance with an option to change the color of its user interface.
- Note: The UI skin color feature depends on the CKEditor skin
- compatibility. The Moono and Kama skins are examples of skins that work with it.
-
-
-
-
- This editor instance has a UI color value defined in configuration to change the skin color,
- To specify the color of the user interface, set the uiColor property:
-
-
-CKEDITOR.replace( 'textarea_id ', {
- uiColor: '#14B8C4'
-});
-
- Note that textarea_id in the code above is the id attribute of
- the <textarea> element to be replaced.
-
-
- <p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p>
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
UI Color Picker — CKEditor Sample
+
+
+
+
+
+
+
+
+ This sample shows how to automatically replace <textarea> elements
+ with a CKEditor instance with an option to change the color of its user interface.
+ Note: The UI skin color feature depends on the CKEditor skin
+ compatibility. The Moono and Kama skins are examples of skins that work with it.
+
+
+
+
+ This editor instance has a UI color value defined in configuration to change the skin color,
+ To specify the color of the user interface, set the uiColor property:
+
+
+CKEDITOR.replace( 'textarea_id ', {
+ uiColor: '#14B8C4'
+});
+
+ Note that textarea_id in the code above is the id attribute of
+ the <textarea> element to be replaced.
+
+
+ <p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p>
+
+
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/uilanguages.html b/static/js/ckeditor/samples/old/uilanguages.html
index ef6dbb3..b1bb694 100644
--- a/static/js/ckeditor/samples/old/uilanguages.html
+++ b/static/js/ckeditor/samples/old/uilanguages.html
@@ -1,122 +1,122 @@
-
-
-
-
-
-
User Interface Globalization — CKEditor Sample
-
-
-
-
-
-
-
-
-
- This sample shows how to automatically replace <textarea> elements
- with a CKEditor instance with an option to change the language of its user interface.
-
-
- It pulls the language list from CKEditor _languages.js file that contains the list of supported languages and creates
- a drop-down list that lets the user change the UI language.
-
-
- By default, CKEditor automatically localizes the editor to the language of the user.
- The UI language can be controlled with two configuration options:
- language and
-
- defaultLanguage . The defaultLanguage setting specifies the
- default CKEditor language to be used when a localization suitable for user's settings is not available.
-
-
- To specify the user interface language that will be used no matter what language is
- specified in user's browser or operating system, set the language property:
-
-
-CKEDITOR.replace( 'textarea_id ', {
- // Load the German interface.
- language: 'de'
-});
-
- Note that textarea_id in the code above is the id attribute of
- the <textarea> element to be replaced.
-
-
-
-
- Available languages ( languages!):
-
-
-
- (You may see strange characters if your system does not support the selected language)
-
-
-
- <p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p>
-
-
-
-
-
-
+
+
+
+
+
+
User Interface Globalization — CKEditor Sample
+
+
+
+
+
+
+
+
+
+ This sample shows how to automatically replace <textarea> elements
+ with a CKEditor instance with an option to change the language of its user interface.
+
+
+ It pulls the language list from CKEditor _languages.js file that contains the list of supported languages and creates
+ a drop-down list that lets the user change the UI language.
+
+
+ By default, CKEditor automatically localizes the editor to the language of the user.
+ The UI language can be controlled with two configuration options:
+ language and
+
+ defaultLanguage . The defaultLanguage setting specifies the
+ default CKEditor language to be used when a localization suitable for user's settings is not available.
+
+
+ To specify the user interface language that will be used no matter what language is
+ specified in user's browser or operating system, set the language property:
+
+
+CKEDITOR.replace( 'textarea_id ', {
+ // Load the German interface.
+ language: 'de'
+});
+
+ Note that textarea_id in the code above is the id attribute of
+ the <textarea> element to be replaced.
+
+
+
+
+ Available languages ( languages!):
+
+
+
+ (You may see strange characters if your system does not support the selected language)
+
+
+
+ <p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p>
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/wysiwygarea/fullpage.html b/static/js/ckeditor/samples/old/wysiwygarea/fullpage.html
index 341a4e7..8d58389 100644
--- a/static/js/ckeditor/samples/old/wysiwygarea/fullpage.html
+++ b/static/js/ckeditor/samples/old/wysiwygarea/fullpage.html
@@ -1,80 +1,80 @@
-
-
-
-
-
-
Full Page Editing — CKEditor Sample
-
-
-
-
-
-
-
-
-
-
-
-
-
- This sample shows how to configure CKEditor to edit entire HTML pages, from the
- <html> tag to the </html> tag.
-
-
- The CKEditor instance below is inserted with a JavaScript call using the following code:
-
-
-CKEDITOR.replace( 'textarea_id ', {
- fullPage: true ,
- allowedContent: true
-});
-
-
- Note that textarea_id in the code above is the id attribute of
- the <textarea> element to be replaced.
-
-
- The allowedContent in the code above is set to true to disable content filtering.
- Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations.
-
-
-
-
- CKEditor output the entire page including content outside of
- <body> element, so content like meta and title can be changed:
-
-
- <h1><img align="right" alt="Saturn V carrying Apollo 11" src="../../../samples/old/assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
Full Page Editing — CKEditor Sample
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This sample shows how to configure CKEditor to edit entire HTML pages, from the
+ <html> tag to the </html> tag.
+
+
+ The CKEditor instance below is inserted with a JavaScript call using the following code:
+
+
+CKEDITOR.replace( 'textarea_id ', {
+ fullPage: true ,
+ allowedContent: true
+});
+
+
+ Note that textarea_id in the code above is the id attribute of
+ the <textarea> element to be replaced.
+
+
+ The allowedContent in the code above is set to true to disable content filtering.
+ Setting this option is not obligatory, but in full page mode there is a strong chance that one may want be able to freely enter any HTML content in source mode without any limitations.
+
+
+
+
+ CKEditor output the entire page including content outside of
+ <body> element, so content like meta and title can be changed:
+
+
+ <h1><img align="right" alt="Saturn V carrying Apollo 11" src="../../../samples/old/assets/sample.jpg"/> Apollo 11</h1> <p><b>Apollo 11</b> was the spaceflight that landed the first humans, Americans <a href="http://en.wikipedia.org/wiki/Neil_Armstrong" title="Neil Armstrong">Neil Armstrong</a> and <a href="http://en.wikipedia.org/wiki/Buzz_Aldrin" title="Buzz Aldrin">Buzz Aldrin</a>, on the Moon on July 20, 1969, at 20:18 UTC. Armstrong became the first to step onto the lunar surface 6 hours later on July 21 at 02:56 UTC.</p> <p>Armstrong spent about <s>three and a half</s> two and a half hours outside the spacecraft, Aldrin slightly less; and together they collected 47.5 pounds (21.5 kg) of lunar material for return to Earth. A third member of the mission, <a href="http://en.wikipedia.org/wiki/Michael_Collins_(astronaut)" title="Michael Collins (astronaut)">Michael Collins</a>, piloted the <a href="http://en.wikipedia.org/wiki/Apollo_Command/Service_Module" title="Apollo Command/Service Module">command</a> spacecraft alone in lunar orbit until Armstrong and Aldrin returned to it for the trip back to Earth.</p> <h2>Broadcasting and <em>quotes</em> <a id="quotes" name="quotes"></a></h2> <p>Broadcast on live TV to a world-wide audience, Armstrong stepped onto the lunar surface and described the event as:</p> <blockquote><p>One small step for [a] man, one giant leap for mankind.</p></blockquote> <p>Apollo 11 effectively ended the <a href="http://en.wikipedia.org/wiki/Space_Race" title="Space Race">Space Race</a> and fulfilled a national goal proposed in 1961 by the late U.S. President <a href="http://en.wikipedia.org/wiki/John_F._Kennedy" title="John F. Kennedy">John F. Kennedy</a> in a speech before the United States Congress:</p> <blockquote><p>[...] before this decade is out, of landing a man on the Moon and returning him safely to the Earth.</p></blockquote> <h2>Technical details <a id="tech-details" name="tech-details"></a></h2> <table align="right" border="1" bordercolor="#ccc" cellpadding="5" cellspacing="0" style="border-collapse:collapse;margin:10px 0 10px 15px;"> <caption><strong>Mission crew</strong></caption> <thead> <tr> <th scope="col">Position</th> <th scope="col">Astronaut</th> </tr> </thead> <tbody> <tr> <td>Commander</td> <td>Neil A. Armstrong</td> </tr> <tr> <td>Command Module Pilot</td> <td>Michael Collins</td> </tr> <tr> <td>Lunar Module Pilot</td> <td>Edwin "Buzz" E. Aldrin, Jr.</td> </tr> </tbody> </table> <p>Launched by a <strong>Saturn V</strong> rocket from <a href="http://en.wikipedia.org/wiki/Kennedy_Space_Center" title="Kennedy Space Center">Kennedy Space Center</a> in Merritt Island, Florida on July 16, Apollo 11 was the fifth manned mission of <a href="http://en.wikipedia.org/wiki/NASA" title="NASA">NASA</a>'s Apollo program. The Apollo spacecraft had three parts:</p> <ol> <li><strong>Command Module</strong> with a cabin for the three astronauts which was the only part which landed back on Earth</li> <li><strong>Service Module</strong> which supported the Command Module with propulsion, electrical power, oxygen and water</li> <li><strong>Lunar Module</strong> for landing on the Moon.</li> </ol> <p>After being sent to the Moon by the Saturn V's upper stage, the astronauts separated the spacecraft from it and travelled for three days until they entered into lunar orbit. Armstrong and Aldrin then moved into the Lunar Module and landed in the <a href="http://en.wikipedia.org/wiki/Mare_Tranquillitatis" title="Mare Tranquillitatis">Sea of Tranquility</a>. They stayed a total of about 21 and a half hours on the lunar surface. After lifting off in the upper part of the Lunar Module and rejoining Collins in the Command Module, they returned to Earth and landed in the <a href="http://en.wikipedia.org/wiki/Pacific_Ocean" title="Pacific Ocean">Pacific Ocean</a> on July 24.</p> <hr/> <p style="text-align: right;"><small>Source: <a href="http://en.wikipedia.org/wiki/Apollo_11">Wikipedia.org</a></small></p>
+
+
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/old/xhtmlstyle.html b/static/js/ckeditor/samples/old/xhtmlstyle.html
index 2d67fb0..0732848 100644
--- a/static/js/ckeditor/samples/old/xhtmlstyle.html
+++ b/static/js/ckeditor/samples/old/xhtmlstyle.html
@@ -1,234 +1,234 @@
-
-
-
-
-
-
XHTML Compliant Output — CKEditor Sample
-
-
-
-
-
-
-
- CKEditor Samples » Producing XHTML Compliant Output
-
-
-
-
- This sample shows how to configure CKEditor to output valid
- XHTML 1.1 code.
- Deprecated elements (<font>, <u>) or attributes
- (size, face) will be replaced with XHTML compliant code.
-
-
- To add a CKEditor instance outputting valid XHTML code, load the editor using a standard
- JavaScript call and define CKEditor features to use the XHTML compliant elements and styles.
-
-
- A snippet of the configuration code can be seen below; check the source of this page for
- full definition:
-
-
-CKEDITOR.replace( 'textarea_id ', {
- contentsCss: 'assets/outputxhtml.css',
-
- coreStyles_bold: {
- element: 'span',
- attributes: { 'class': 'Bold' }
- },
- coreStyles_italic: {
- element: 'span',
- attributes: { 'class': 'Italic' }
- },
-
- ...
-});
-
-
-
-
- Editor 1:
-
- <p>This is some <span class="Bold">sample text</span>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p>
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
XHTML Compliant Output — CKEditor Sample
+
+
+
+
+
+
+
+ CKEditor Samples » Producing XHTML Compliant Output
+
+
+
+
+ This sample shows how to configure CKEditor to output valid
+ XHTML 1.1 code.
+ Deprecated elements (<font>, <u>) or attributes
+ (size, face) will be replaced with XHTML compliant code.
+
+
+ To add a CKEditor instance outputting valid XHTML code, load the editor using a standard
+ JavaScript call and define CKEditor features to use the XHTML compliant elements and styles.
+
+
+ A snippet of the configuration code can be seen below; check the source of this page for
+ full definition:
+
+
+CKEDITOR.replace( 'textarea_id ', {
+ contentsCss: 'assets/outputxhtml.css',
+
+ coreStyles_bold: {
+ element: 'span',
+ attributes: { 'class': 'Bold' }
+ },
+ coreStyles_italic: {
+ element: 'span',
+ attributes: { 'class': 'Italic' }
+ },
+
+ ...
+});
+
+
+
+
+ Editor 1:
+
+ <p>This is some <span class="Bold">sample text</span>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p>
+
+
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/samples/toolbarconfigurator/css/fontello.css b/static/js/ckeditor/samples/toolbarconfigurator/css/fontello.css
index d983707..af1d460 100644
--- a/static/js/ckeditor/samples/toolbarconfigurator/css/fontello.css
+++ b/static/js/ckeditor/samples/toolbarconfigurator/css/fontello.css
@@ -1,55 +1,55 @@
-@font-face {
- font-family: 'fontello';
- src: url('../font/fontello.eot?89024372');
- src: url('../font/fontello.eot?89024372#iefix') format('embedded-opentype'),
- url('../font/fontello.woff?89024372') format('woff'),
- url('../font/fontello.ttf?89024372') format('truetype'),
- url('../font/fontello.svg?89024372#fontello') format('svg');
- font-weight: normal;
- font-style: normal;
-}
-/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
-/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
-/*
-@media screen and (-webkit-min-device-pixel-ratio:0) {
- @font-face {
- font-family: 'fontello';
- src: url('../font/fontello.svg?89024372#fontello') format('svg');
- }
-}
-*/
-
- [class^="icon-"]:before, [class*=" icon-"]:before {
- font-family: "fontello";
- font-style: normal;
- font-weight: normal;
- speak: none;
-
- display: inline-block;
- text-decoration: inherit;
- width: 1em;
- margin-right: .2em;
- text-align: center;
- /* opacity: .8; */
-
- /* For safety - reset parent styles, that can break glyph codes*/
- font-variant: normal;
- text-transform: none;
-
- /* fix buttons height, for twitter bootstrap */
- line-height: 1em;
-
- /* Animation center compensation - margins should be symmetric */
- /* remove if not needed */
- margin-left: .2em;
-
- /* you can be more comfortable with increased icons size */
- /* font-size: 120%; */
-
- /* Uncomment for 3D effect */
- /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
-}
-
-.icon-trash:before { content: '\e802'; } /* '' */
-.icon-down-big:before { content: '\e800'; } /* '' */
-.icon-up-big:before { content: '\e801'; } /* '' */
+@font-face {
+ font-family: 'fontello';
+ src: url('../font/fontello.eot?89024372');
+ src: url('../font/fontello.eot?89024372#iefix') format('embedded-opentype'),
+ url('../font/fontello.woff?89024372') format('woff'),
+ url('../font/fontello.ttf?89024372') format('truetype'),
+ url('../font/fontello.svg?89024372#fontello') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
+/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
+/*
+@media screen and (-webkit-min-device-pixel-ratio:0) {
+ @font-face {
+ font-family: 'fontello';
+ src: url('../font/fontello.svg?89024372#fontello') format('svg');
+ }
+}
+*/
+
+ [class^="icon-"]:before, [class*=" icon-"]:before {
+ font-family: "fontello";
+ font-style: normal;
+ font-weight: normal;
+ speak: none;
+
+ display: inline-block;
+ text-decoration: inherit;
+ width: 1em;
+ margin-right: .2em;
+ text-align: center;
+ /* opacity: .8; */
+
+ /* For safety - reset parent styles, that can break glyph codes*/
+ font-variant: normal;
+ text-transform: none;
+
+ /* fix buttons height, for twitter bootstrap */
+ line-height: 1em;
+
+ /* Animation center compensation - margins should be symmetric */
+ /* remove if not needed */
+ margin-left: .2em;
+
+ /* you can be more comfortable with increased icons size */
+ /* font-size: 120%; */
+
+ /* Uncomment for 3D effect */
+ /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
+}
+
+.icon-trash:before { content: '\e802'; } /* '' */
+.icon-down-big:before { content: '\e800'; } /* '' */
+.icon-up-big:before { content: '\e801'; } /* '' */
diff --git a/static/js/ckeditor/samples/toolbarconfigurator/font/LICENSE.txt b/static/js/ckeditor/samples/toolbarconfigurator/font/LICENSE.txt
index 4a73f6c..174b67a 100644
--- a/static/js/ckeditor/samples/toolbarconfigurator/font/LICENSE.txt
+++ b/static/js/ckeditor/samples/toolbarconfigurator/font/LICENSE.txt
@@ -1,10 +1,10 @@
-Font license info
-
-
-## Font Awesome
-
- Copyright (C) 2012 by Dave Gandy
-
- Author: Dave Gandy
- License: SIL ()
- Homepage: http://fortawesome.github.com/Font-Awesome/
+Font license info
+
+
+## Font Awesome
+
+ Copyright (C) 2012 by Dave Gandy
+
+ Author: Dave Gandy
+ License: SIL ()
+ Homepage: http://fortawesome.github.com/Font-Awesome/
diff --git a/static/js/ckeditor/samples/toolbarconfigurator/index.html b/static/js/ckeditor/samples/toolbarconfigurator/index.html
index 4c9057b..cf3d043 100644
--- a/static/js/ckeditor/samples/toolbarconfigurator/index.html
+++ b/static/js/ckeditor/samples/toolbarconfigurator/index.html
@@ -1,446 +1,446 @@
-
-
-
-
-
-
-
-
Toolbar Configurator
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Toolbar Configurator
- Help
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
What Am I Doing Here?
-
-
-
-
-
Arrange toolbar groups , toggle button visibility according to your needs and get your toolbar configuration.
-
You can replace the content of the config.js file with the generated configuration. If you already set some configuration options you will need to merge both configurations.
-
-
-
Read more about different ways of setting configuration and do not forget about clearing browser cache .
-
Arranging toolbar groups is the recommended way of configuring the toolbar, but if you need more freedom you can use the advanced configurator .
-
-
-
-
-
With this code editor you can edit your toolbar configuration live.
-
You can replace the content of the config.js file with the generated configuration. If you already set some configuration options you will need to merge both configurations.
-
-
-
Read more about different ways of setting configuration and do not forget about clearing browser cache .
-
-
-
-
-
- Got it. Let's play!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
Toolbar Configurator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Toolbar Configurator
+ Help
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
What Am I Doing Here?
+
+
+
+
+
Arrange toolbar groups , toggle button visibility according to your needs and get your toolbar configuration.
+
You can replace the content of the config.js file with the generated configuration. If you already set some configuration options you will need to merge both configurations.
+
+
+
Read more about different ways of setting configuration and do not forget about clearing browser cache .
+
Arranging toolbar groups is the recommended way of configuring the toolbar, but if you need more freedom you can use the advanced configurator .
+
+
+
+
+
With this code editor you can edit your toolbar configuration live.
+
You can replace the content of the config.js file with the generated configuration. If you already set some configuration options you will need to merge both configurations.
+
+
+
Read more about different ways of setting configuration and do not forget about clearing browser cache .
+
+
+
+
+
+ Got it. Let's play!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/static/js/ckeditor/styles.js b/static/js/ckeditor/styles.js
index a219ce3..9864ad5 100644
--- a/static/js/ckeditor/styles.js
+++ b/static/js/ckeditor/styles.js
@@ -1,137 +1,137 @@
-/**
- * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
- * For licensing, see LICENSE.md or http://ckeditor.com/license
- */
-
-// This file contains style definitions that can be used by CKEditor plugins.
-//
-// The most common use for it is the "stylescombo" plugin which shows the Styles drop-down
-// list containing all styles in the editor toolbar. Other plugins, like
-// the "div" plugin, use a subset of the styles for their features.
-//
-// If you do not have plugins that depend on this file in your editor build, you can simply
-// ignore it. Otherwise it is strongly recommended to customize this file to match your
-// website requirements and design properly.
-//
-// For more information refer to: http://docs.ckeditor.com/#!/guide/dev_styles-section-style-rules
-
-CKEDITOR.stylesSet.add( 'default', [
- /* Block styles */
-
- // These styles are already available in the "Format" drop-down list ("format" plugin),
- // so they are not needed here by default. You may enable them to avoid
- // placing the "Format" combo in the toolbar, maintaining the same features.
- /*
- { name: 'Paragraph', element: 'p' },
- { name: 'Heading 1', element: 'h1' },
- { name: 'Heading 2', element: 'h2' },
- { name: 'Heading 3', element: 'h3' },
- { name: 'Heading 4', element: 'h4' },
- { name: 'Heading 5', element: 'h5' },
- { name: 'Heading 6', element: 'h6' },
- { name: 'Preformatted Text',element: 'pre' },
- { name: 'Address', element: 'address' },
- */
-
- { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } },
- { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } },
- {
- name: 'Special Container',
- element: 'div',
- styles: {
- padding: '5px 10px',
- background: '#eee',
- border: '1px solid #ccc'
- }
- },
-
- /* Inline styles */
-
- // These are core styles available as toolbar buttons. You may opt enabling
- // some of them in the Styles drop-down list, removing them from the toolbar.
- // (This requires the "stylescombo" plugin.)
- /*
- { name: 'Strong', element: 'strong', overrides: 'b' },
- { name: 'Emphasis', element: 'em' , overrides: 'i' },
- { name: 'Underline', element: 'u' },
- { name: 'Strikethrough', element: 'strike' },
- { name: 'Subscript', element: 'sub' },
- { name: 'Superscript', element: 'sup' },
- */
-
- { name: 'Marker', element: 'span', attributes: { 'class': 'marker' } },
-
- { name: 'Big', element: 'big' },
- { name: 'Small', element: 'small' },
- { name: 'Typewriter', element: 'tt' },
-
- { name: 'Computer Code', element: 'code' },
- { name: 'Keyboard Phrase', element: 'kbd' },
- { name: 'Sample Text', element: 'samp' },
- { name: 'Variable', element: 'var' },
-
- { name: 'Deleted Text', element: 'del' },
- { name: 'Inserted Text', element: 'ins' },
-
- { name: 'Cited Work', element: 'cite' },
- { name: 'Inline Quotation', element: 'q' },
-
- { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } },
- { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } },
-
- /* Object styles */
-
- {
- name: 'Styled Image (left)',
- element: 'img',
- attributes: { 'class': 'left' }
- },
-
- {
- name: 'Styled Image (right)',
- element: 'img',
- attributes: { 'class': 'right' }
- },
-
- {
- name: 'Compact Table',
- element: 'table',
- attributes: {
- cellpadding: '5',
- cellspacing: '0',
- border: '1',
- bordercolor: '#ccc'
- },
- styles: {
- 'border-collapse': 'collapse'
- }
- },
-
- { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } },
- { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } },
-
- /* Widget styles */
-
- { name: 'Clean Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-clean' } },
- { name: 'Grayscale Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-grayscale' } },
-
- { name: 'Featured Snippet', type: 'widget', widget: 'codeSnippet', attributes: { 'class': 'code-featured' } },
-
- { name: 'Featured Formula', type: 'widget', widget: 'mathjax', attributes: { 'class': 'math-featured' } },
-
- { name: '240p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-240p' } },
- { name: '360p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-360p' } },
- { name: '480p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-480p' } },
- { name: '720p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-720p' } },
- { name: '1080p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-1080p' } },
-
- // Adding space after the style name is an intended workaround. For now, there
- // is no option to create two styles with the same name for different widget types. See #16664.
- { name: '240p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-240p' } },
- { name: '360p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-360p' } },
- { name: '480p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-480p' } },
- { name: '720p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-720p' } },
- { name: '1080p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-1080p' } }
-
-] );
-
+/**
+ * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
+ */
+
+// This file contains style definitions that can be used by CKEditor plugins.
+//
+// The most common use for it is the "stylescombo" plugin which shows the Styles drop-down
+// list containing all styles in the editor toolbar. Other plugins, like
+// the "div" plugin, use a subset of the styles for their features.
+//
+// If you do not have plugins that depend on this file in your editor build, you can simply
+// ignore it. Otherwise it is strongly recommended to customize this file to match your
+// website requirements and design properly.
+//
+// For more information refer to: http://docs.ckeditor.com/#!/guide/dev_styles-section-style-rules
+
+CKEDITOR.stylesSet.add( 'default', [
+ /* Block styles */
+
+ // These styles are already available in the "Format" drop-down list ("format" plugin),
+ // so they are not needed here by default. You may enable them to avoid
+ // placing the "Format" combo in the toolbar, maintaining the same features.
+ /*
+ { name: 'Paragraph', element: 'p' },
+ { name: 'Heading 1', element: 'h1' },
+ { name: 'Heading 2', element: 'h2' },
+ { name: 'Heading 3', element: 'h3' },
+ { name: 'Heading 4', element: 'h4' },
+ { name: 'Heading 5', element: 'h5' },
+ { name: 'Heading 6', element: 'h6' },
+ { name: 'Preformatted Text',element: 'pre' },
+ { name: 'Address', element: 'address' },
+ */
+
+ { name: 'Italic Title', element: 'h2', styles: { 'font-style': 'italic' } },
+ { name: 'Subtitle', element: 'h3', styles: { 'color': '#aaa', 'font-style': 'italic' } },
+ {
+ name: 'Special Container',
+ element: 'div',
+ styles: {
+ padding: '5px 10px',
+ background: '#eee',
+ border: '1px solid #ccc'
+ }
+ },
+
+ /* Inline styles */
+
+ // These are core styles available as toolbar buttons. You may opt enabling
+ // some of them in the Styles drop-down list, removing them from the toolbar.
+ // (This requires the "stylescombo" plugin.)
+ /*
+ { name: 'Strong', element: 'strong', overrides: 'b' },
+ { name: 'Emphasis', element: 'em' , overrides: 'i' },
+ { name: 'Underline', element: 'u' },
+ { name: 'Strikethrough', element: 'strike' },
+ { name: 'Subscript', element: 'sub' },
+ { name: 'Superscript', element: 'sup' },
+ */
+
+ { name: 'Marker', element: 'span', attributes: { 'class': 'marker' } },
+
+ { name: 'Big', element: 'big' },
+ { name: 'Small', element: 'small' },
+ { name: 'Typewriter', element: 'tt' },
+
+ { name: 'Computer Code', element: 'code' },
+ { name: 'Keyboard Phrase', element: 'kbd' },
+ { name: 'Sample Text', element: 'samp' },
+ { name: 'Variable', element: 'var' },
+
+ { name: 'Deleted Text', element: 'del' },
+ { name: 'Inserted Text', element: 'ins' },
+
+ { name: 'Cited Work', element: 'cite' },
+ { name: 'Inline Quotation', element: 'q' },
+
+ { name: 'Language: RTL', element: 'span', attributes: { 'dir': 'rtl' } },
+ { name: 'Language: LTR', element: 'span', attributes: { 'dir': 'ltr' } },
+
+ /* Object styles */
+
+ {
+ name: 'Styled Image (left)',
+ element: 'img',
+ attributes: { 'class': 'left' }
+ },
+
+ {
+ name: 'Styled Image (right)',
+ element: 'img',
+ attributes: { 'class': 'right' }
+ },
+
+ {
+ name: 'Compact Table',
+ element: 'table',
+ attributes: {
+ cellpadding: '5',
+ cellspacing: '0',
+ border: '1',
+ bordercolor: '#ccc'
+ },
+ styles: {
+ 'border-collapse': 'collapse'
+ }
+ },
+
+ { name: 'Borderless Table', element: 'table', styles: { 'border-style': 'hidden', 'background-color': '#E6E6FA' } },
+ { name: 'Square Bulleted List', element: 'ul', styles: { 'list-style-type': 'square' } },
+
+ /* Widget styles */
+
+ { name: 'Clean Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-clean' } },
+ { name: 'Grayscale Image', type: 'widget', widget: 'image', attributes: { 'class': 'image-grayscale' } },
+
+ { name: 'Featured Snippet', type: 'widget', widget: 'codeSnippet', attributes: { 'class': 'code-featured' } },
+
+ { name: 'Featured Formula', type: 'widget', widget: 'mathjax', attributes: { 'class': 'math-featured' } },
+
+ { name: '240p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-240p' } },
+ { name: '360p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-360p' } },
+ { name: '480p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-480p' } },
+ { name: '720p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-720p' } },
+ { name: '1080p', type: 'widget', widget: 'embedSemantic', attributes: { 'class': 'embed-1080p' } },
+
+ // Adding space after the style name is an intended workaround. For now, there
+ // is no option to create two styles with the same name for different widget types. See #16664.
+ { name: '240p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-240p' } },
+ { name: '360p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-360p' } },
+ { name: '480p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-480p' } },
+ { name: '720p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-720p' } },
+ { name: '1080p ', type: 'widget', widget: 'embed', attributes: { 'class': 'embed-1080p' } }
+
+] );
+
diff --git a/static/js/clipboard.min.js b/static/js/clipboard.min.js
old mode 100755
new mode 100644
diff --git a/static/js/element_actions.js b/static/js/element_actions.js
old mode 100755
new mode 100644
index c99dd55..89d8db3
--- a/static/js/element_actions.js
+++ b/static/js/element_actions.js
@@ -1,103 +1,103 @@
-
-$('.input-group.date').datepicker({
- todayBtn: false,
- language: "ru",
- orientation: "top auto",
- keyboardNavigation: false,
- autoclose: true,
- toggleActive: true,
- defaultViewDate: { year: 1990, month: 11, day: 18 }
-});
-
-function password_validate(obj){
- if (check_password($(obj).val())){
- $(obj).attr('class', 'alert-success');
- } else {
- $(obj).attr('class', 'alert-danger');
- }
-}
-$('[name$="password"]').on('input', function(){
- password_validate(this)
-});
-$('[name$="password1"]').on('input', function(){
- password_validate(this)
-});
-$('[name="password2"]').on('input', function(){
- check_password_compare()
-});
-$('[name="email"]').on('input', function(){
- $(this).val($.trim($(this).val()));
- if (check_email($(this).val())){
- $(this).attr('class', 'alert-success');
- } else {
- $(this).attr('class', 'alert-danger');
- }
-});
-$('[type="email"]').on('input', function(){
- $(this).val($.trim($(this).val()));
- if (check_email($(this).val())){
- $(this).attr('class', 'alert-success');
- } else {
- $(this).attr('class', 'alert-danger');
- }
-});
-function get_by_type_action_parent(block, attr){
- var search = true;
- while(search){
- if (block.parent().attr(attr)){
- search = false;
- return block.parent();
- } else {
- block = block.parent()
- }
- }
-}
-$( document.body ).on( "click", "[by_type]", function( event ) {
- var element_action = $(event.target);
- if (!element_action.attr('by_type')){
- element_action = get_by_type_action_parent(element_action, 'by_type');
- }
- var text = element_action.html();
- var border = element_action.css('border-bottom');
- element_action.html('
Получение доступа');
-
- if (!check_access(element_action.attr('by_type'), element_action.attr('self_id'))){
- event.preventDefault();
- element_action.html(text);
- element_action.css('border-bottom', border);
- open_service_request_window(element_action.attr('course_id'))
- } else if (!check_jaccess(element_action.attr('by_type'), element_action.attr('self_id'))){
- event.preventDefault();
- element_action.html(text);
- element_action.css('border-bottom', border);
- open_journal_request_window()
- } else if (!check_block(element_action.attr('by_type'), element_action.attr('self_id'))) {
- event.preventDefault();
- element_action.html(text);
- element_action.css('border-bottom', border);
- open_block_request_window()
- }
-});
-
-window.achievement_in_work=false;
-$(function() {
- $("a#single_image").fancybox();
- setInterval(function(){
- if(!window.achievement_in_work){
- check_ahievements()
- }
- }
- , 5000);
-});
-function NotEmpty(obj) {
- // Проверка объекта на пустоту
- for (var key in obj){
- if (key) {
- return true;
- }
- }
- return false;
-}
-$('.material').click(function() {
- $(this).toggleClass('full');
-});
+
+$('.input-group.date').datepicker({
+ todayBtn: false,
+ language: "ru",
+ orientation: "top auto",
+ keyboardNavigation: false,
+ autoclose: true,
+ toggleActive: true,
+ defaultViewDate: { year: 1990, month: 11, day: 18 }
+});
+
+function password_validate(obj){
+ if (check_password($(obj).val())){
+ $(obj).attr('class', 'alert-success');
+ } else {
+ $(obj).attr('class', 'alert-danger');
+ }
+}
+$('[name$="password"]').on('input', function(){
+ password_validate(this)
+});
+$('[name$="password1"]').on('input', function(){
+ password_validate(this)
+});
+$('[name="password2"]').on('input', function(){
+ check_password_compare()
+});
+$('[name="email"]').on('input', function(){
+ $(this).val($.trim($(this).val()));
+ if (check_email($(this).val())){
+ $(this).attr('class', 'alert-success');
+ } else {
+ $(this).attr('class', 'alert-danger');
+ }
+});
+$('[type="email"]').on('input', function(){
+ $(this).val($.trim($(this).val()));
+ if (check_email($(this).val())){
+ $(this).attr('class', 'alert-success');
+ } else {
+ $(this).attr('class', 'alert-danger');
+ }
+});
+function get_by_type_action_parent(block, attr){
+ var search = true;
+ while(search){
+ if (block.parent().attr(attr)){
+ search = false;
+ return block.parent();
+ } else {
+ block = block.parent()
+ }
+ }
+}
+$( document.body ).on( "click", "[by_type]", function( event ) {
+ var element_action = $(event.target);
+ if (!element_action.attr('by_type')){
+ element_action = get_by_type_action_parent(element_action, 'by_type');
+ }
+ var text = element_action.html();
+ var border = element_action.css('border-bottom');
+ element_action.html('
Получение доступа');
+
+ if (!check_access(element_action.attr('by_type'), element_action.attr('self_id'))){
+ event.preventDefault();
+ element_action.html(text);
+ element_action.css('border-bottom', border);
+ open_service_request_window(element_action.attr('course_id'))
+ } else if (!check_jaccess(element_action.attr('by_type'), element_action.attr('self_id'))){
+ event.preventDefault();
+ element_action.html(text);
+ element_action.css('border-bottom', border);
+ open_journal_request_window()
+ } else if (!check_block(element_action.attr('by_type'), element_action.attr('self_id'))) {
+ event.preventDefault();
+ element_action.html(text);
+ element_action.css('border-bottom', border);
+ open_block_request_window()
+ }
+});
+
+window.achievement_in_work=false;
+$(function() {
+ $("a#single_image").fancybox();
+ setInterval(function(){
+ if(!window.achievement_in_work){
+ check_ahievements()
+ }
+ }
+ , 5000);
+});
+function NotEmpty(obj) {
+ // Проверка объекта на пустоту
+ for (var key in obj){
+ if (key) {
+ return true;
+ }
+ }
+ return false;
+}
+$('.material').click(function() {
+ $(this).toggleClass('full');
+});
diff --git a/static/js/exam.js b/static/js/exam.js
old mode 100755
new mode 100644
index 7e43552..76bce0c
--- a/static/js/exam.js
+++ b/static/js/exam.js
@@ -1,239 +1,239 @@
-$(function(){
- if ($('#myModal1').length == 0) {
- CKEDITOR.replace('exam_text', {
- language: 'ru',
- toolbarGroups: [
- {name: 'tools'},
- {name: 'links'},
- {name: 'basicstyles', groups: ['basicstyles', 'cleanup']},
- {name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ]},
- {name: 'styles'},
- {name: 'others'}
- ]
- });
- }
-});
-function send_comment(form, root){
- // Проверить комментарий
- // Отправить
- if (CKEDITOR.instances.exam_text.getData()){
- $('[name=exam_text]').val(CKEDITOR.instances.exam_text.getData());
- $.ajax({
- type: 'POST',
- url: '/courses/sent_exam_comment',
- data: $('[name='+form+']').serialize(),
- success: function(data){
- if(data['code'] == '1'){
- document.forms[form].reset();
- CKEDITOR.instances.exam_text.setData('');
- $('[name='+$('#'+root).attr('sketch_place')+']').html('');
-
- if (!$('[name=try_'+data['data']['try']['id']+']').html()){
- $('[name=comment_list_place]').append('
' +
- ' Попыток: (1 ) : ' +
- '
');
- $('[name=exam_comments_block]').append(new_try(data['data']['try']))
- }
- $('[name=try_comments_'+data['data']['try']['id']+']').append('
');
- write_comment($('[name=comment_'+data['data']['comment']['id']+']'), data['data']['comment']);
- console.log(data['data'])
- }
- }
- });
-
- } else {
- show_system_message('Введите текст сообщения')
- }
-}
-function send_exam_down_teacher(form, root){
- // Проверить комментарий
- // Отправить
- if (CKEDITOR.instances.exam_text.getData()){
- $('[name=homework_text]').val(CKEDITOR.instances.exam_text.getData());
- $.ajax({
- type: 'POST',
- url: '/courses/sent_exam_down_teacher',
- data: $('[name='+form+']').serialize(),
- success: function(data){
- if(data['code'] == '1'){
- window.close();
- } else {
- show_system_message(data['response'])
- }
- }
- });
-
- } else {
- show_system_message('Введите текст сообщения')
- }
-}
-function send_exam_up_teacher(form, root){
- // Проверить комментарий
- // Отправить
- if (CKEDITOR.instances.exam_text.getData()){
- $('[name=homework_text]').val(CKEDITOR.instances.exam_text.getData());
- $.ajax({
- type: 'POST',
- url: '/courses/sent_exam_up_teacher',
- data: $('[name='+form+']').serialize(),
- success: function(data){
- if(data['code'] == '1'){
- window.close();
- } else {
- show_system_message(data['response'])
- }
- }
- });
-
- } else {
- show_system_message('Введите текст сообщения')
- }
-}
-function new_try(data){
- if (!window.last_try){
- window.last_try = 0
- }
- return '
' +
- '
' +
- ' ' +
- '
' +
- '
' +
- '
' +
- '
LMS: ~# ' +
- '
' +
- '
Попытка №'+(window.last_try+1)+' ' +
-
- '
' +
- '' +
- ''+data['teacher']['full']+' ' +
- ''+data['teacher']['short']+' ' +
- '' +
- ' ' +
- ' ' +
- ' ' +
- '' +
- ''+data['status']['title']+' ' +
- ' ' +
- ' ' +
- '
' +
- '
' +
- '
' +
- '
'
-}
-function write_comment(block, data){
- var message;
- var user_status;
- var reply;
- if (NotEmpty(data)) {
- if (!NotEmpty(data['replies'])) {
- reply = ''
- } else {
- reply = '
' +
- '
' +
- '
';
- }
- if (NotEmpty(data['files']) && !data['closed']) {
- message = '
'
- } else {
- message = '';
- }
- var comment_id = '';
- if ($('[name=REQUEST_USER_ROLE]').val() == 'A'){
- comment_id = '
ID:'+data['id']+' ';
- }
- user_status = '
' + data['owner_type']['title'] + ' ' + comment_id;
- var background;
- if (data['owner_type']['flag'] == 'A') {
- background = "#f5fce5;"
- } else {
- background = ''
- }
- var avatar;
- if (data['closed']) {
- avatar = '
'
- } else {
- avatar = '
' +
- ' ' +
- ' '
- }
- var head;
- if (data['closed']) {
- head = '
' +
- ' ' +
- 'КОММЕНТАРИЙ УДАЛЕН' +
- '' +
- '
'
- } else {
- head = '
' +
- ' ' +
- '' + data['owner'] + ' ' +
- ' ' + user_status +
- '' +
- //'1 Мне нравится ' +
- //' Пожаловаться ' +
- '
'
- }
- var reply_button;
- var text;
- reply_button = '';
- if (data['closed']) {
-
- text = '
'
- } else {
-
- text = '
' +
- '
' + data['text'] + '
'
- }
-
-
- $(block).html(avatar +
- '
' +
- head +
- text +
- message +
- '
'
- + reply_button +
- '
' +
- '
' +
- '
' + reply);
-
- for (var r = 0; r < data['replies'].length; r++) {
- write_comment($('[parent_id=' + data['id'] + ']'), data['replies'][r])
- }
- var file_block = $('[name=message_files][message_id=' + data['id'] + ']');
- for (var n = 0; n < data['files'].length; n++) {
- var file_id = '';
- var target = '';
- var context = '';
- if (data['files'][n]['format'] == 'I') {
- file_id = 'single_image';
- target = '__blank';
- context = '
';
- }
- var m = '
';
- file_block.append(m);
- }
- $("a#single_image").fancybox();
- }
-}
-
-function delete_comment(id){
- $.ajax({
- type: 'POST',
- url: '/courses/delete_comment',
- data: {'comment': id},
- success: function(data){
- if (data['code'] == '1'){
- location.hash='comment_list_place';
- } else {
- show_system_message(data['response'])
- }
- }
- });
-
+$(function(){
+ if ($('#myModal1').length == 0) {
+ CKEDITOR.replace('exam_text', {
+ language: 'ru',
+ toolbarGroups: [
+ {name: 'tools'},
+ {name: 'links'},
+ {name: 'basicstyles', groups: ['basicstyles', 'cleanup']},
+ {name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ]},
+ {name: 'styles'},
+ {name: 'others'}
+ ]
+ });
+ }
+});
+function send_comment(form, root){
+ // Проверить комментарий
+ // Отправить
+ if (CKEDITOR.instances.exam_text.getData()){
+ $('[name=exam_text]').val(CKEDITOR.instances.exam_text.getData());
+ $.ajax({
+ type: 'POST',
+ url: '/courses/sent_exam_comment',
+ data: $('[name='+form+']').serialize(),
+ success: function(data){
+ if(data['code'] == '1'){
+ document.forms[form].reset();
+ CKEDITOR.instances.exam_text.setData('');
+ $('[name='+$('#'+root).attr('sketch_place')+']').html('');
+
+ if (!$('[name=try_'+data['data']['try']['id']+']').html()){
+ $('[name=comment_list_place]').append('
' +
+ ' Попыток: (1 ) : ' +
+ '
');
+ $('[name=exam_comments_block]').append(new_try(data['data']['try']))
+ }
+ $('[name=try_comments_'+data['data']['try']['id']+']').append('
');
+ write_comment($('[name=comment_'+data['data']['comment']['id']+']'), data['data']['comment']);
+ console.log(data['data'])
+ }
+ }
+ });
+
+ } else {
+ show_system_message('Введите текст сообщения')
+ }
+}
+function send_exam_down_teacher(form, root){
+ // Проверить комментарий
+ // Отправить
+ if (CKEDITOR.instances.exam_text.getData()){
+ $('[name=homework_text]').val(CKEDITOR.instances.exam_text.getData());
+ $.ajax({
+ type: 'POST',
+ url: '/courses/sent_exam_down_teacher',
+ data: $('[name='+form+']').serialize(),
+ success: function(data){
+ if(data['code'] == '1'){
+ window.close();
+ } else {
+ show_system_message(data['response'])
+ }
+ }
+ });
+
+ } else {
+ show_system_message('Введите текст сообщения')
+ }
+}
+function send_exam_up_teacher(form, root){
+ // Проверить комментарий
+ // Отправить
+ if (CKEDITOR.instances.exam_text.getData()){
+ $('[name=homework_text]').val(CKEDITOR.instances.exam_text.getData());
+ $.ajax({
+ type: 'POST',
+ url: '/courses/sent_exam_up_teacher',
+ data: $('[name='+form+']').serialize(),
+ success: function(data){
+ if(data['code'] == '1'){
+ window.close();
+ } else {
+ show_system_message(data['response'])
+ }
+ }
+ });
+
+ } else {
+ show_system_message('Введите текст сообщения')
+ }
+}
+function new_try(data){
+ if (!window.last_try){
+ window.last_try = 0
+ }
+ return '
' +
+ '
' +
+ ' ' +
+ '
' +
+ '
' +
+ '
' +
+ '
LMS: ~# ' +
+ '
' +
+ '
Попытка №'+(window.last_try+1)+' ' +
+
+ '
' +
+ '' +
+ ''+data['teacher']['full']+' ' +
+ ''+data['teacher']['short']+' ' +
+ '' +
+ ' ' +
+ ' ' +
+ ' ' +
+ '' +
+ ''+data['status']['title']+' ' +
+ ' ' +
+ ' ' +
+ '
' +
+ '
' +
+ '
' +
+ '
'
+}
+function write_comment(block, data){
+ var message;
+ var user_status;
+ var reply;
+ if (NotEmpty(data)) {
+ if (!NotEmpty(data['replies'])) {
+ reply = ''
+ } else {
+ reply = '
' +
+ '
' +
+ '
';
+ }
+ if (NotEmpty(data['files']) && !data['closed']) {
+ message = '
'
+ } else {
+ message = '';
+ }
+ var comment_id = '';
+ if ($('[name=REQUEST_USER_ROLE]').val() == 'A'){
+ comment_id = '
ID:'+data['id']+' ';
+ }
+ user_status = '
' + data['owner_type']['title'] + ' ' + comment_id;
+ var background;
+ if (data['owner_type']['flag'] == 'A') {
+ background = "#f5fce5;"
+ } else {
+ background = ''
+ }
+ var avatar;
+ if (data['closed']) {
+ avatar = '
'
+ } else {
+ avatar = '
' +
+ ' ' +
+ ' '
+ }
+ var head;
+ if (data['closed']) {
+ head = '
' +
+ ' ' +
+ 'КОММЕНТАРИЙ УДАЛЕН' +
+ '' +
+ '
'
+ } else {
+ head = '
' +
+ ' ' +
+ '' + data['owner'] + ' ' +
+ ' ' + user_status +
+ '' +
+ //'1 Мне нравится ' +
+ //' Пожаловаться ' +
+ '
'
+ }
+ var reply_button;
+ var text;
+ reply_button = '';
+ if (data['closed']) {
+
+ text = '
'
+ } else {
+
+ text = '
' +
+ '
' + data['text'] + '
'
+ }
+
+
+ $(block).html(avatar +
+ '
' +
+ head +
+ text +
+ message +
+ '
'
+ + reply_button +
+ '
' +
+ '
' +
+ '
' + reply);
+
+ for (var r = 0; r < data['replies'].length; r++) {
+ write_comment($('[parent_id=' + data['id'] + ']'), data['replies'][r])
+ }
+ var file_block = $('[name=message_files][message_id=' + data['id'] + ']');
+ for (var n = 0; n < data['files'].length; n++) {
+ var file_id = '';
+ var target = '';
+ var context = '';
+ if (data['files'][n]['format'] == 'I') {
+ file_id = 'single_image';
+ target = '__blank';
+ context = '
';
+ }
+ var m = '
';
+ file_block.append(m);
+ }
+ $("a#single_image").fancybox();
+ }
+}
+
+function delete_comment(id){
+ $.ajax({
+ type: 'POST',
+ url: '/courses/delete_comment',
+ data: {'comment': id},
+ success: function(data){
+ if (data['code'] == '1'){
+ location.hash='comment_list_place';
+ } else {
+ show_system_message(data['response'])
+ }
+ }
+ });
+
}
\ No newline at end of file
diff --git a/static/js/fancy.js b/static/js/fancy.js
old mode 100755
new mode 100644
index e7f59ee..dd74bb2
--- a/static/js/fancy.js
+++ b/static/js/fancy.js
@@ -1,2 +1,2 @@
-/*! fancyBox - jQuery Plugin | version: 2.1.5 (Fri, 14 Jun 2013) | @requires jQuery v1.6 or later | Examples at http://fancyapps.com/fancybox/ | License: www.fancyapps.com/fancybox/#license | Copyright 2012 Janis Skarnelis - janis@fancyapps.com */
+/*! fancyBox - jQuery Plugin | version: 2.1.5 (Fri, 14 Jun 2013) | @requires jQuery v1.6 or later | Examples at http://fancyapps.com/fancybox/ | License: www.fancyapps.com/fancybox/#license | Copyright 2012 Janis Skarnelis - janis@fancyapps.com */
(function(l,o,i,e){var p=i("html"),d=i(l),a=i(o),q=i.fancybox=function(){q.open.apply(this,arguments)},k=navigator.userAgent.match(/msie/i),c=null,f=o.createTouch!==e,j=function(r){return r&&r.hasOwnProperty&&r instanceof i},b=function(r){return r&&i.type(r)==="string"},m=function(r){return b(r)&&r.indexOf("%")>0},h=function(r){return(r&&!(r.style.overflow&&r.style.overflow==="hidden")&&((r.clientWidth&&r.scrollWidth>r.clientWidth)||(r.clientHeight&&r.scrollHeight>r.clientHeight)))},n=function(t,s){var r=parseInt(t,10)||0;if(s&&m(t)){r=q.getViewport()[s]/100*r}return Math.ceil(r)},g=function(r,s){return n(r,s)+"px"};i.extend(q,{version:"2.1.5",defaults:{padding:0,margin:20,width:800,height:600,minWidth:100,minHeight:100,maxWidth:9999,maxHeight:9999,pixelRatio:1,autoSize:true,autoHeight:false,autoWidth:false,autoResize:true,autoCenter:!f,fitToView:true,aspectRatio:false,topRatio:0.5,leftRatio:0.5,scrolling:"auto",wrapCSS:"",arrows:true,closeBtn:true,closeClick:false,nextClick:false,mouseWheel:true,autoPlay:false,playSpeed:3000,preload:3,modal:false,loop:true,ajax:{dataType:"html",headers:{"X-fancyBox":true}},iframe:{scrolling:"auto",preload:true},swf:{wmode:"transparent",allowfullscreen:"true",allowscriptaccess:"always"},keys:{next:{13:"left",34:"up",39:"left",40:"up"},prev:{8:"right",33:"down",37:"right",38:"down"},close:[27],play:[32],toggle:[70]},direction:{next:"left",prev:"right"},scrollOutside:true,index:0,type:null,href:null,content:null,title:null,tpl:{wrap:'
',image:'
',iframe:'
",error:'
The requested content cannot be loaded. Please try again later.
',closeBtn:'
',next:'
',prev:'
'},openEffect:"fade",openSpeed:450,openEasing:"swing",openOpacity:true,openMethod:"zoomIn",closeEffect:"fade",closeSpeed:450,closeEasing:"swing",closeOpacity:true,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:{locked:false},title:true},onCancel:i.noop,beforeLoad:i.noop,afterLoad:i.noop,beforeShow:i.noop,afterShow:i.noop,beforeChange:i.noop,beforeClose:i.noop,afterClose:i.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:false,isOpen:false,isOpened:false,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:false},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(s,r){if(!s){return}if(!i.isPlainObject(r)){r={}}if(false===q.close(true)){return}if(!i.isArray(s)){s=j(s)?i(s).get():[s]}i.each(s,function(x,y){var w={},t,B,z,A,v,C,u;if(i.type(y)==="object"){if(y.nodeType){y=i(y)}if(j(y)){w={href:y.data("fancybox-href")||y.attr("href"),title:y.data("fancybox-title")||y.attr("title"),isDom:true,element:y};if(i.metadata){i.extend(true,w,y.metadata())}}else{w=y}}t=r.href||w.href||(b(y)?y:null);B=r.title!==e?r.title:w.title||"";z=r.content||w.content;A=z?"html":(r.type||w.type);if(!A&&w.isDom){A=y.data("fancybox-type");if(!A){v=y.prop("class").match(/fancybox\.(\w+)/);A=v?v[1]:null}}if(b(t)){if(!A){if(q.isImage(t)){A="image"}else{if(q.isSWF(t)){A="swf"}else{if(t.charAt(0)==="#"){A="inline"}else{if(b(y)){A="html";z=y}}}}}if(A==="ajax"){C=t.split(/\s+/,2);t=C.shift();u=C.shift()}}if(!z){if(A==="inline"){if(t){z=i(b(t)?t.replace(/.*(?=#[^\s]+$)/,""):t)}else{if(w.isDom){z=y}}}else{if(A==="html"){z=t}else{if(!A&&!t&&w.isDom){A="inline";z=y}}}}i.extend(w,{href:t,type:A,content:z,title:B,selector:u});s[x]=w});q.opts=i.extend(true,{},q.defaults,r);if(r.keys!==e){q.opts.keys=r.keys?i.extend({},q.defaults.keys,r.keys):false}q.group=s;return q._start(q.opts.index)},cancel:function(){var r=q.coming;if(!r||false===q.trigger("onCancel")){return}q.hideLoading();if(q.ajaxLoad){q.ajaxLoad.abort()}q.ajaxLoad=null;if(q.imgPreload){q.imgPreload.onload=q.imgPreload.onerror=null}if(r.wrap){r.wrap.stop(true,true).trigger("onReset").remove()}q.coming=null;if(!q.current){q._afterZoomOut(r)}},close:function(r){q.cancel();if(false===q.trigger("beforeClose")){return}q.unbindEvents();if(!q.isActive){return}if(!q.isOpen||r===true){i(".fancybox-wrap").stop(true).trigger("onReset").remove();q._afterZoomOut()}else{q.isOpen=q.isOpened=false;q.isClosing=true;i(".fancybox-item, .fancybox-nav").remove();q.wrap.stop(true,true).removeClass("fancybox-opened");q.transitions[q.current.closeMethod]()}},play:function(t){var r=function(){clearTimeout(q.player.timer)},v=function(){r();if(q.current&&q.player.isActive){q.player.timer=setTimeout(q.next,q.current.playSpeed)}},s=function(){r();a.unbind(".player");q.player.isActive=false;q.trigger("onPlayEnd")},u=function(){if(q.current&&(q.current.loop||q.current.index
=t.index?"next":"prev")];q.router=r||"jumpto";if(t.loop){if(s<0){s=t.group.length+(s%t.group.length)}s=s%t.group.length}if(t.group[s]!==e){q.cancel();q._start(s)}},reposition:function(u,r){var t=q.current,s=t?t.wrap:null,v;if(s){v=q._getPosition(r);if(u&&u.type==="scroll"){delete v.position;s.stop(true,true).animate(v,200)}else{s.css(v);t.pos=i.extend({},t.dim,v)}}},update:function(t){var r=(t&&t.type),s=!r||r==="orientationchange";if(s){clearTimeout(c);c=null}if(!q.isOpen||c){return}c=setTimeout(function(){var u=q.current;if(!u||q.isClosing){return}q.wrap.removeClass("fancybox-tmp");if(s||r==="load"||(r==="resize"&&u.autoResize)){q._setDimension()}if(!(r==="scroll"&&u.canShrink)){q.reposition(t)}q.trigger("onUpdate");c=null},(s&&!f?0:300))},toggle:function(r){if(q.isOpen){q.current.fitToView=i.type(r)==="boolean"?r:!q.current.fitToView;if(f){q.wrap.removeAttr("style").addClass("fancybox-tmp");q.trigger("onUpdate")}q.update()}},hideLoading:function(){a.unbind(".loading");i("#fancybox-loading").remove()},showLoading:function(){var s,r;q.hideLoading();s=i('').click(q.cancel).appendTo("body");a.bind("keydown.loading",function(t){if((t.which||t.keyCode)===27){t.preventDefault();q.cancel()}});if(!q.defaults.fixed){r=q.getViewport();s.css({position:"absolute",top:(r.h*0.5)+r.y,left:(r.w*0.5)+r.x})}},getViewport:function(){var r=(q.current&&q.current.locked)||false,s={x:d.scrollLeft(),y:d.scrollTop()};if(r){s.w=r[0].clientWidth;s.h=r[0].clientHeight}else{s.w=f&&l.innerWidth?l.innerWidth:d.width();s.h=f&&l.innerHeight?l.innerHeight:d.height()}return s},unbindEvents:function(){if(q.wrap&&j(q.wrap)){q.wrap.unbind(".fb")}a.unbind(".fb");d.unbind(".fb")},bindEvents:function(){var s=q.current,r;if(!s){return}d.bind("orientationchange.fb"+(f?"":" resize.fb")+(s.autoCenter&&!s.locked?" scroll.fb":""),q.update);r=s.keys;if(r){a.bind("keydown.fb",function(v){var t=v.which||v.keyCode,u=v.target||v.srcElement;if(t===27&&q.coming){return false}if(!v.ctrlKey&&!v.altKey&&!v.shiftKey&&!v.metaKey&&!(u&&(u.type||i(u).is("[contenteditable]")))){i.each(r,function(w,x){if(s.group.length>1&&x[t]!==e){q[w](x[t]);v.preventDefault();return false}if(i.inArray(t,x)>-1){q[w]();v.preventDefault();return false}})}})}if(i.fn.mousewheel&&s.mouseWheel){q.wrap.bind("mousewheel.fb",function(y,z,u,t){var x=y.target||null,v=i(x),w=false;while(v.length){if(w||v.is(".fancybox-skin")||v.is(".fancybox-wrap")){break}w=h(v[0]);v=i(v).parent()}if(z!==0&&!w){if(q.group.length>1&&!s.canShrink){if(t>0||u>0){q.prev(t>0?"down":"left")}else{if(t<0||u<0){q.next(t<0?"up":"right")}}y.preventDefault()}}})}},trigger:function(s,u){var r,t=u||q.coming||q.current;if(!t){return}if(i.isFunction(t[s])){r=t[s].apply(t,Array.prototype.slice.call(arguments,1))}if(r===false){return false}if(t.helpers){i.each(t.helpers,function(w,v){if(v&&q.helpers[w]&&i.isFunction(q.helpers[w][s])){q.helpers[w][s](i.extend(true,{},q.helpers[w].defaults,v),t)}})}a.trigger(s)},isImage:function(r){return b(r)&&r.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(r){return b(r)&&r.match(/\.(swf)((\?|#).*)?$/i)},_start:function(s){var t={},x,r,u,v,w;s=n(s);x=q.group[s]||null;if(!x){return false}t=i.extend(true,{},q.opts,x);v=t.margin;w=t.padding;if(i.type(v)==="number"){t.margin=[v,v,v,v]}if(i.type(w)==="number"){t.padding=[w,w,w,w]}if(t.modal){i.extend(true,t,{closeBtn:false,closeClick:false,nextClick:false,arrows:false,mouseWheel:false,keys:null,helpers:{overlay:{closeClick:false}}})}if(t.autoSize){t.autoWidth=t.autoHeight=true}if(t.width==="auto"){t.autoWidth=true}if(t.height==="auto"){t.autoHeight=true}t.group=q.group;t.index=s;q.coming=t;if(false===q.trigger("beforeLoad")){q.coming=null;return}u=t.type;r=t.href;if(!u){q.coming=null;if(q.current&&q.router&&q.router!=="jumpto"){q.current.index=s;return q[q.router](q.direction)}return false}q.isActive=true;if(u==="image"||u==="swf"){t.autoHeight=t.autoWidth=false;t.scrolling="visible"}if(u==="image"){t.aspectRatio=true}if(u==="iframe"&&f){t.scrolling="scroll"}t.wrap=i(t.tpl.wrap).addClass("fancybox-"+(f?"mobile":"desktop")+" fancybox-type-"+u+" fancybox-tmp "+t.wrapCSS).appendTo(t.parent||"body");i.extend(t,{skin:i(".fancybox-skin",t.wrap),outer:i(".fancybox-outer",t.wrap),inner:i(".fancybox-inner",t.wrap)});i.each(["Top","Right","Bottom","Left"],function(z,y){t.skin.css("padding"+y,g(t.padding[z]))});q.trigger("onReady");if(u==="inline"||u==="html"){if(!t.content||!t.content.length){return q._error("content")}}else{if(!r){return q._error("href")}}if(u==="image"){q._loadImage()}else{if(u==="ajax"){q._loadAjax()}else{if(u==="iframe"){q._loadIframe()}else{q._afterLoad()}}}},_error:function(r){i.extend(q.coming,{type:"html",autoWidth:true,autoHeight:true,minWidth:0,minHeight:0,scrolling:"no",hasError:r,content:q.coming.tpl.error});q._afterLoad()},_loadImage:function(){var r=q.imgPreload=new Image();r.onload=function(){this.onload=this.onerror=null;q.coming.width=this.width/q.opts.pixelRatio;q.coming.height=this.height/q.opts.pixelRatio;q._afterLoad()};r.onerror=function(){this.onload=this.onerror=null;q._error("image")};r.src=q.coming.href;if(r.complete!==true){q.showLoading()}},_loadAjax:function(){var r=q.coming;q.showLoading();q.ajaxLoad=i.ajax(i.extend({},r.ajax,{url:r.href,error:function(s,t){if(q.coming&&t!=="abort"){q._error("ajax",s)}else{q.hideLoading()}},success:function(s,t){if(t==="success"){r.content=s;q._afterLoad()}}}))},_loadIframe:function(){var r=q.coming,s=i(r.tpl.iframe.replace(/\{rnd\}/g,new Date().getTime())).attr("scrolling",f?"auto":r.iframe.scrolling).attr("src",r.href);i(r.wrap).bind("onReset",function(){try{i(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(t){}});if(r.iframe.preload){q.showLoading();s.one("load",function(){i(this).data("ready",1);if(!f){i(this).bind("load.fb",q.update)}i(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();q._afterLoad()})}r.content=s.appendTo(r.inner);if(!r.iframe.preload){q._afterLoad()}},_preloadImages:function(){var w=q.group,v=q.current,r=w.length,t=v.preload?Math.min(v.preload,r-1):0,u,s;for(s=1;s<=t;s+=1){u=w[(v.index+s)%r];if(u.type==="image"&&u.href){new Image().src=u.href}}},_afterLoad:function(){var s=q.coming,u=q.current,z="fancybox-placeholder",w,x,y,t,r,v;q.hideLoading();if(!s||q.isActive===false){return}if(false===q.trigger("afterLoad",s,u)){s.wrap.stop(true).trigger("onReset").remove();q.coming=null;return}if(u){q.trigger("beforeChange",u);u.wrap.stop(true).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove()}q.unbindEvents();w=s;x=s.content;y=s.type;t=s.scrolling;i.extend(q,{wrap:w.wrap,skin:w.skin,outer:w.outer,inner:w.inner,current:w,previous:u});r=w.href;switch(y){case"inline":case"ajax":case"html":if(w.selector){x=i("").html(x).find(w.selector)}else{if(j(x)){if(!x.data(z)){x.data(z,i('
').insertAfter(x).hide())}x=x.show().detach();w.wrap.bind("onReset",function(){if(i(this).find(x).length){x.hide().replaceAll(x.data(z)).data(z,false)}})}}break;case"image":x=w.tpl.image.replace("{href}",r);break;case"swf":x='
';v="";i.each(w.swf,function(A,B){x+=' ';v+=" "+A+'="'+B+'"'});x+='";break}if(!(j(x)&&x.parent().is(w.inner))){w.inner.append(x)}q.trigger("beforeShow");w.inner.css("overflow",t==="yes"?"scroll":(t==="no"?"hidden":t));q._setDimension();q.reposition();q.isOpen=false;q.coming=null;q.bindEvents();if(!q.isOpened){i(".fancybox-wrap").not(w.wrap).stop(true).trigger("onReset").remove()}else{if(u.prevMethod){q.transitions[u.prevMethod]()}}q.transitions[q.isOpened?w.nextMethod:w.openMethod]();q._preloadImages()},_setDimension:function(){var U=q.getViewport(),Q=0,W=false,Y=false,C=q.wrap,O=q.skin,Z=q.inner,L=q.current,M=L.width,J=L.height,F=L.minWidth,y=L.minHeight,S=L.maxWidth,K=L.maxHeight,E=L.scrolling,w=L.scrollOutside?L.scrollbarWidth:0,I=L.margin,x=n(I[1]+I[3]),v=n(I[0]+I[2]),t,s,P,R,H,G,N,A,z,V,u,X,r,B,D;C.add(O).add(Z).width("auto").height("auto").removeClass("fancybox-tmp");t=n(O.outerWidth(true)-O.width());s=n(O.outerHeight(true)-O.height());P=x+t;R=v+s;H=m(M)?(U.w-P)*n(M)/100:M;G=m(J)?(U.h-R)*n(J)/100:J;if(L.type==="iframe"){B=L.content;if(L.autoHeight&&B.data("ready")===1){try{if(B[0].contentWindow.document.location){Z.width(H).height(9999);D=B.contents().find("body");if(w){D.css("overflow-x","hidden")}G=D.outerHeight(true)}}catch(T){}}}else{if(L.autoWidth||L.autoHeight){Z.addClass("fancybox-tmp");if(!L.autoWidth){Z.width(H)}if(!L.autoHeight){Z.height(G)}if(L.autoWidth){H=Z.width()}if(L.autoHeight){G=Z.height()}Z.removeClass("fancybox-tmp")}}M=n(H);J=n(G);z=H/G;F=n(m(F)?n(F,"w")-P:F);S=n(m(S)?n(S,"w")-P:S);y=n(m(y)?n(y,"h")-R:y);K=n(m(K)?n(K,"h")-R:K);N=S;A=K;if(L.fitToView){S=Math.min(U.w-P,S);K=Math.min(U.h-R,K)}X=U.w-x;r=U.h-v;if(L.aspectRatio){if(M>S){M=S;J=n(M/z)}if(J>K){J=K;M=n(J*z)}if(M
X||u>r)&&M>F&&J>y){if(Q++>19){break}J=Math.max(y,Math.min(K,J-10));M=n(J*z);if(MS){M=S;J=n(M/z)}Z.width(M).height(J);C.width(M+t);V=C.width();u=C.height()}}else{M=Math.max(F,Math.min(M,M-(V-X)));J=Math.max(y,Math.min(J,J-(u-r)))}}if(w&&E==="auto"&&JX||u>r)&&M>F&&J>y;Y=L.aspectRatio?(My&&J1)){q.inner.css("cursor","pointer").bind("click.fb",function(s){if(!i(s.target).is("a")&&!i(s.target).parent().is("a")){s.preventDefault();q[r.closeClick?"close":"next"]()}})}if(r.closeBtn){i(r.tpl.closeBtn).appendTo(q.skin).bind("click.fb",function(s){s.preventDefault();q.close()})}if(r.arrows&&q.group.length>1){if(r.loop||r.index>0){i(r.tpl.prev).appendTo(q.outer).bind("click.fb",q.prev)}if(r.loop||r.index ').appendTo(q.coming?q.coming.parent:r.parent);this.fixed=false;if(r.fixed&&q.defaults.fixed){this.overlay.addClass("fancybox-overlay-fixed");this.fixed=true}},open:function(s){var r=this;s=i.extend({},this.defaults,s);if(this.overlay){this.overlay.unbind(".overlay").width("auto").height("auto")}else{this.create(s)}if(!this.fixed){d.bind("resize.overlay",i.proxy(this.update,this));this.update()}if(s.closeClick){this.overlay.bind("click.overlay",function(t){if(i(t.target).hasClass("fancybox-overlay")){if(q.isActive){q.close()}else{r.close()}return false}})}this.overlay.css(s.css).show()},close:function(){var r,s;d.unbind("resize.overlay");if(this.el.hasClass("fancybox-lock")){i(".fancybox-margin").removeClass("fancybox-margin");r=d.scrollTop();s=d.scrollLeft();this.el.removeClass("fancybox-lock");d.scrollTop(r).scrollLeft(s)}i(".fancybox-overlay").remove().hide();i.extend(this,{overlay:null,fixed:false})},update:function(){var s="100%",r;this.overlay.width(s).height("100%");if(k){r=Math.max(o.documentElement.offsetWidth,o.body.offsetWidth);if(a.width()>r){s=a.width()}}else{if(a.width()>d.width()){s=a.width()}}this.overlay.width(s).height(a.height())},onReady:function(s,t){var r=this.overlay;i(".fancybox-overlay").stop(true,true);if(!r){this.create(s)}if(s.locked&&this.fixed&&t.fixed){if(!r){this.margin=a.height()>d.height()?i("html").css("margin-right").replace("px",""):false}t.locked=this.overlay.append(t.wrap);t.fixed=false}if(s.showEarly===true){this.beforeShow.apply(this,arguments)}},beforeShow:function(t,u){var r,s;if(u.locked){if(this.margin!==false){i("*").filter(function(){return(i(this).css("position")==="fixed"&&!i(this).hasClass("fancybox-overlay")&&!i(this).hasClass("fancybox-wrap"))}).addClass("fancybox-margin");this.el.addClass("fancybox-margin")}r=d.scrollTop();s=d.scrollLeft();this.el.addClass("fancybox-lock");d.scrollTop(r).scrollLeft(s)}this.open(t)},onUpdate:function(){if(!this.fixed){this.update()}},afterClose:function(r){if(this.overlay&&!q.coming){this.overlay.fadeOut(r.speedOut,i.proxy(this.close,this))}}};q.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(s){var u=q.current,w=u.title,r=s.type,v,t;if(i.isFunction(w)){w=w.call(u.element,u)}if(!b(w)||i.trim(w)===""){return}v=i(''+w+"
");switch(r){case"inside":t=q.skin;break;case"outside":t=q.wrap;break;case"over":t=q.inner;break;default:t=q.skin;v.appendTo("body");if(k){v.width(v.width())}v.wrapInner(' ');q.current.margin[2]+=Math.abs(n(v.css("margin-bottom")));break}v[(s.position==="top"?"prependTo":"appendTo")](t)}};i.fn.fancybox=function(t){var s,u=i(this),r=this.selector||"",v=function(z){var y=i(this).blur(),w=s,x,A;if(!(z.ctrlKey||z.altKey||z.shiftKey||z.metaKey)&&!y.is(".fancybox-wrap")){x=t.groupAttr||"data-fancybox-group";A=y.attr(x);if(!A){x="rel";A=y.get(0)[x]}if(A&&A!==""&&A!=="nofollow"){y=r.length?i(r):u;y=y.filter("["+x+'="'+A+'"]');w=y.index(this)}t.index=w;if(q.open(y,t)!==false){z.preventDefault()}}};t=t||{};s=t.index||0;if(!r||t.live===false){u.unbind("click.fb-start").bind("click.fb-start",v)}else{a.undelegate(r,"click.fb-start").delegate(r+":not('.fancybox-item, .fancybox-nav')","click.fb-start",v)}this.filter("[data-fancybox-start=1]").trigger("click");return this};a.ready(function(){var s,r;if(i.scrollbarWidth===e){i.scrollbarWidth=function(){var u=i('').appendTo("body"),v=u.children(),t=v.innerWidth()-v.height(99).innerWidth();u.remove();return t}}if(i.support.fixedPosition===e){i.support.fixedPosition=(function(){var u=i('
').appendTo("body"),t=(u[0].offsetTop===20||u[0].offsetTop===15);u.remove();return t}())}i.extend(q.defaults,{scrollbarWidth:i.scrollbarWidth(),fixed:i.support.fixedPosition,parent:i("body")});s=i(l).width();p.addClass("fancybox-lock-test");r=i(l).width();p.removeClass("fancybox-lock-test");i("").appendTo("head")})}(window,document,jQuery));
\ No newline at end of file
diff --git a/static/js/flickity.pkgd.min.js b/static/js/flickity.pkgd.min.js
old mode 100755
new mode 100644
diff --git a/static/js/homework.js b/static/js/homework.js
old mode 100755
new mode 100644
index 0207157..7508785
--- a/static/js/homework.js
+++ b/static/js/homework.js
@@ -1,246 +1,246 @@
-$(function(){
- if ($('#myModal1').length == 0) {
- CKEDITOR.replace('homework_text', {
- language: 'ru',
- toolbarGroups: [
- {name: 'tools'},
- {name: 'links'},
- {name: 'basicstyles', groups: ['basicstyles', 'cleanup']},
- {name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ]},
- {name: 'styles'},
- {name: 'others'}
- ]
- });
- }
-});
-function send_comment(form, root){
- // Проверить комментарий
- // Отправить
- if (CKEDITOR.instances.homework_text.getData()){
- $('[name=homework_text]').val(CKEDITOR.instances.homework_text.getData());
- $.ajax({
- type: 'POST',
- url: '/courses/sent_homework_comment',
- data: $('[name='+form+']').serialize(),
- success: function(data){
- if(data['code'] == '1'){
- document.forms[form].reset();
- CKEDITOR.instances.homework_text.setData('');
- $('[name='+$('#'+root).attr('sketch_place')+']').html('');
-
- if (!$('[name=try_'+data['data']['try']['id']+']').html()){
- $('[name=comment_list_place]').append('' +
- ' Попыток: (1 ) : ' +
- '
');
- $('[name=homework_comments_block]').append(new_try(data['data']['try']))
- }
- $('[name=try_comments_'+data['data']['try']['id']+']').append('
');
- write_comment($('[name=comment_'+data['data']['comment']['id']+']'), data['data']['comment']);
- console.log(data['data'])
- }
- }
- });
-
- } else {
- show_system_message('Введите текст сообщения')
- }
-}
-function send_homework_down_teacher(form, root){
- // Проверить комментарий
- // Отправить
- if (CKEDITOR.instances.homework_text.getData()){
- $('[name=homework_text]').val(CKEDITOR.instances.homework_text.getData());
- $.ajax({
- type: 'POST',
- url: '/courses/sent_homework_down_teacher',
- data: $('[name='+form+']').serialize(),
- success: function(data){
- if(data['code'] == '1'){
- window.close();
- } else {
- show_system_message(data['response'])
- }
- }
- });
-
- } else {
- show_system_message('Введите текст сообщения')
- }
-}
-function send_homework_up_teacher(form, root){
- // Проверить комментарий
- // Отправить
- if (CKEDITOR.instances.homework_text.getData()){
- $('[name=homework_text]').val(CKEDITOR.instances.homework_text.getData());
- $.ajax({
- type: 'POST',
- url: '/courses/sent_homework_up_teacher',
- data: $('[name='+form+']').serialize(),
- success: function(data){
- if(data['code'] == '1'){
- window.close();
- } else {
- show_system_message(data['response'])
- }
- }
- });
-
- } else {
- show_system_message('Введите текст сообщения')
- }
-}
-function new_try(data){
- if (!window.last_try){
- window.last_try = 0
- }
- return '' +
- '
' +
- ' ' +
- '
' +
- '
' +
- '
' +
- '
LMS: ~# ' +
- '
' +
- '
Попытка №'+(window.last_try+1)+' ' +
-
- '
' +
- '' +
- ''+data['teacher']['full']+' ' +
- ''+data['teacher']['short']+' ' +
- '' +
- ' ' +
- ' ' +
- ' ' +
- '' +
- ''+data['status']['title']+' ' +
- ' ' +
- ' ' +
- '
' +
- '
' +
- '
' +
- '
'
-}
-function write_comment(block, data){
- var message;
- var user_status;
- var reply;
- if (NotEmpty(data)) {
- if (!NotEmpty(data['replies'])) {
- reply = ''
- } else {
- reply = ' ' +
- ' ' +
- '
';
- }
- if (NotEmpty(data['files']) && !data['closed']) {
- message = '
'
- } else {
- message = '';
- }
- var comment_id = '';
- if ($('[name=REQUEST_USER_ROLE]').val() == 'A'){
- comment_id = 'ID:'+data['id']+' ';
- }
- user_status = '' + data['owner_type']['title'] + ' ' + comment_id;
- var background;
- if (data['owner_type']['flag'] == 'A') {
- background = "#f5fce5;"
- } else {
- background = ''
- }
- var avatar;
- if (data['closed']) {
- avatar = ' '
- } else {
- avatar = '' +
- ' ' +
- ' '
- }
- var head;
- if (data['closed']) {
- head = '' +
- ' ' +
- 'КОММЕНТАРИЙ УДАЛЕН' +
- '' +
- '
'
- } else {
- head = '' +
- ' ' +
- '' + data['owner'] + ' ' +
- ' ' + user_status +
- '' +
- //'1 Мне нравится ' +
- //' Пожаловаться ' +
- '
'
- }
- var reply_button;
- var text;
- reply_button = '';
- if (data['closed']) {
-
- text = ''
- } else {
-
- text = '
' +
- '
' + data['text'] + '
'
- }
-
-
- $(block).html(avatar +
- '
' +
- head +
- text +
- message +
- '
'
- + reply_button +
- '
' +
- '
' +
- '
' + reply);
-
- for (var r = 0; r < data['replies'].length; r++) {
- write_comment($('[parent_id=' + data['id'] + ']'), data['replies'][r])
- }
- var file_block = $('[name=message_files][message_id=' + data['id'] + ']');
- for (var n = 0; n < data['files'].length; n++) {
- var file_id = '';
- var target = '';
- var context = '';
- if (data['files'][n]['format'] == 'I') {
- file_id = 'single_image';
- target = '__blank';
- context = '
';
- }
- var m = '
';
- file_block.append(m);
- }
- $("a#single_image").fancybox();
- }
-}
-
-function delete_comment(id){
- $.ajax({
- type: 'POST',
- url: '/courses/delete_comment',
- data: {'comment': id},
- success: function(data){
- if (data['code'] == '1'){
- location.hash='comment_list_place';
- } else {
- show_system_message(data['response'])
- }
- }
- });
-
-}
-
-$(function(){
- $('.go_to_textarea').on('click', function(e){
- $('html,body').stop().animate({ scrollTop: $('#go_to_textarea').offset().top }, 1000);
- e.preventDefault();
- });
+$(function(){
+ if ($('#myModal1').length == 0) {
+ CKEDITOR.replace('homework_text', {
+ language: 'ru',
+ toolbarGroups: [
+ {name: 'tools'},
+ {name: 'links'},
+ {name: 'basicstyles', groups: ['basicstyles', 'cleanup']},
+ {name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ]},
+ {name: 'styles'},
+ {name: 'others'}
+ ]
+ });
+ }
+});
+function send_comment(form, root){
+ // Проверить комментарий
+ // Отправить
+ if (CKEDITOR.instances.homework_text.getData()){
+ $('[name=homework_text]').val(CKEDITOR.instances.homework_text.getData());
+ $.ajax({
+ type: 'POST',
+ url: '/courses/sent_homework_comment',
+ data: $('[name='+form+']').serialize(),
+ success: function(data){
+ if(data['code'] == '1'){
+ document.forms[form].reset();
+ CKEDITOR.instances.homework_text.setData('');
+ $('[name='+$('#'+root).attr('sketch_place')+']').html('');
+
+ if (!$('[name=try_'+data['data']['try']['id']+']').html()){
+ $('[name=comment_list_place]').append('
' +
+ ' Попыток: (1 ) : ' +
+ '
');
+ $('[name=homework_comments_block]').append(new_try(data['data']['try']))
+ }
+ $('[name=try_comments_'+data['data']['try']['id']+']').append('
');
+ write_comment($('[name=comment_'+data['data']['comment']['id']+']'), data['data']['comment']);
+ console.log(data['data'])
+ }
+ }
+ });
+
+ } else {
+ show_system_message('Введите текст сообщения')
+ }
+}
+function send_homework_down_teacher(form, root){
+ // Проверить комментарий
+ // Отправить
+ if (CKEDITOR.instances.homework_text.getData()){
+ $('[name=homework_text]').val(CKEDITOR.instances.homework_text.getData());
+ $.ajax({
+ type: 'POST',
+ url: '/courses/sent_homework_down_teacher',
+ data: $('[name='+form+']').serialize(),
+ success: function(data){
+ if(data['code'] == '1'){
+ window.close();
+ } else {
+ show_system_message(data['response'])
+ }
+ }
+ });
+
+ } else {
+ show_system_message('Введите текст сообщения')
+ }
+}
+function send_homework_up_teacher(form, root){
+ // Проверить комментарий
+ // Отправить
+ if (CKEDITOR.instances.homework_text.getData()){
+ $('[name=homework_text]').val(CKEDITOR.instances.homework_text.getData());
+ $.ajax({
+ type: 'POST',
+ url: '/courses/sent_homework_up_teacher',
+ data: $('[name='+form+']').serialize(),
+ success: function(data){
+ if(data['code'] == '1'){
+ window.close();
+ } else {
+ show_system_message(data['response'])
+ }
+ }
+ });
+
+ } else {
+ show_system_message('Введите текст сообщения')
+ }
+}
+function new_try(data){
+ if (!window.last_try){
+ window.last_try = 0
+ }
+ return '
' +
+ '
' +
+ ' ' +
+ '
' +
+ '
' +
+ '
' +
+ '
LMS: ~# ' +
+ '
' +
+ '
Попытка №'+(window.last_try+1)+' ' +
+
+ '
' +
+ '' +
+ ''+data['teacher']['full']+' ' +
+ ''+data['teacher']['short']+' ' +
+ '' +
+ ' ' +
+ ' ' +
+ ' ' +
+ '' +
+ ''+data['status']['title']+' ' +
+ ' ' +
+ ' ' +
+ '
' +
+ '
' +
+ '
' +
+ '
'
+}
+function write_comment(block, data){
+ var message;
+ var user_status;
+ var reply;
+ if (NotEmpty(data)) {
+ if (!NotEmpty(data['replies'])) {
+ reply = ''
+ } else {
+ reply = '
' +
+ '
' +
+ '
';
+ }
+ if (NotEmpty(data['files']) && !data['closed']) {
+ message = '
'
+ } else {
+ message = '';
+ }
+ var comment_id = '';
+ if ($('[name=REQUEST_USER_ROLE]').val() == 'A'){
+ comment_id = '
ID:'+data['id']+' ';
+ }
+ user_status = '
' + data['owner_type']['title'] + ' ' + comment_id;
+ var background;
+ if (data['owner_type']['flag'] == 'A') {
+ background = "#f5fce5;"
+ } else {
+ background = ''
+ }
+ var avatar;
+ if (data['closed']) {
+ avatar = '
'
+ } else {
+ avatar = '
' +
+ ' ' +
+ ' '
+ }
+ var head;
+ if (data['closed']) {
+ head = '
' +
+ ' ' +
+ 'КОММЕНТАРИЙ УДАЛЕН' +
+ '' +
+ '
'
+ } else {
+ head = '
' +
+ ' ' +
+ '' + data['owner'] + ' ' +
+ ' ' + user_status +
+ '' +
+ //'1 Мне нравится ' +
+ //' Пожаловаться ' +
+ '
'
+ }
+ var reply_button;
+ var text;
+ reply_button = '';
+ if (data['closed']) {
+
+ text = '
'+
- '
'+
- '';
- return reply_form
-}
-
-
-function send_comment(form, root){
- // Проверить комментарий
- // Отправить
- if ($('[name=comment_sent_text]').bbcode()){
- $('[name=sent_comment_progress]').show();
- $('[name=comment_sent_text]').val($('[name=comment_sent_text]').bbcode());
- $.ajax({
- type: 'POST',
- url: '/courses/sent_lesson_comment',
- data: $('[name='+form+']').serialize(),
- success: function(data){
- if(data['code'] == '1'){
- $('[name=sent_comment_progress]').hide();
- document.forms[form].reset();
- $('[name=comment_sent_text]').htmlcode('');
- reload_lesson_comments(data['data']);
- $('[name='+$('#'+root).attr('sketch_place')+']').html('')
- }
- }
- });
-
- } else {
- show_system_message('Введите текст сообщения')
- }
-}
-function read_lesson(id){
- $.ajax({
- type: 'POST',
- url: '/courses/read_lesson/',
- data: {'lesson': id},
- success: function(data){
- if (data['code'] == '1'){
- $('[name=current_button]').fadeOut('slow', function(){
- $('[name=next_button]').fadeIn('slow');
- });
- }
- }
- });
-}
-
-function write_comment(block, data){
- var message;
- var user_status;
- var reply;
- if (NotEmpty(data)) {
- if (!NotEmpty(data['replies'])) {
- reply = ''
- } else {
- reply = '
' +
- '
' +
- '
';
- }
- if (NotEmpty(data['files']) && !data['closed']) {
- message = '
'
- } else {
- message = '';
- }
- var comment_id = '';
- if ($('[name=REQUEST_USER_ROLE]').val() == 'A'){
- comment_id = '
ID:'+data['id']+' ';
- }
-
- user_status = '
' + data['owner_type']['title'] + ' ' + comment_id;
- var background;
- if (data['owner_type']['flag'] == 'A') {
- background = "#f5fce5;"
- } else {
- background = ''
- }
- var avatar;
- if (data['closed']) {
- avatar = '
'
- } else {
- avatar = '
' +
- ' ' +
- ' '
- }
- var head;
- if (data['closed']) {
- head = '
' +
- ' ' +
- 'КОММЕНТАРИЙ УДАЛЕН' +
- '' +
- '
'
- } else {
- head = '
' +
- ' ' +
- '' + data['owner'] + ' ' +
- ' ' + user_status +
- '' +
- //'1 Мне нравится ' +
- //' Пожаловаться ' +
- '' + data['date'] + '
'
- }
- var reply_button;
- var text;
- if (data['closed']) {
- reply_button = '';
- text = '
'
- } else {
-
- if (data['owner_id'] == $('[name=REQUEST_USER_ID]').val()) {
- reply_button = '
' +
- ' Удалить '
- } else {
- if ($('[name=REQUEST_USER_ROLE]').val() == 'A') {
- reply_button = '
Ответить' +
- '
Удалить'
- } else {
- reply_button = ''
- }
- }
- reply_button += '
'
- text = '
' + data['text'] + '
'
- }
-
-
- $(block).append('
' +
- avatar +
- '
' +
- head +
- text +
- message +
- '
'
- + reply_button +
- '
' +
- '
' +
- '
' +
- '
' + reply);
-
- for (var r = 0; r < data['replies'].length; r++) {
- write_comment($('[parent_id=' + data['id'] + ']'), data['replies'][r])
- }
- var file_block = $('[name=message_files][message_id=' + data['id'] + ']');
- for (var n = 0; n < data['files'].length; n++) {
- var file_id = '';
- var target = '';
- var context = '';
- if (data['files'][n]['format'] == 'I') {
- file_id = 'single_image';
- target = '__blank';
- context = '
';
- }
- var m = '
';
- file_block.append(m);
- }
- $("a#single_image").fancybox();
- }
-}
-function load_lesson_comments(type, reload_data){
- if (!window.in_reload) {
- window.in_reload = true;
- $('[name=lesson_comments_empty]').hide();
- $('[name=lesson_comments_block]').show();
- var comment_block = $('[name=lesson_comments_block]');
- $.ajax({
- type: 'POST',
- url: '/courses/load_lesson_comments',
- data: {'lesson': comment_block.attr('lesson_id')},
- success: function (data) {
- $('[name=lesson_comments_load]').hide();
- comment_block.show();
- if (data['code'] == 0) {
- $('[name=lesson_comments_empty]').show();
- $('[name=lesson_comments_block]').hide();
- $('[name=comments_length]').html('0');
- } else {
- if (NotEmpty(data['data'])) {
- for (var i = 0; i < data['data'].length; i++) {
- write_comment(comment_block, data['data'][i]);
- }
- if (type == 'reload' && reload_data) {
- location.hash = '';
- location.hash = 'comment_' + reload_data
- }
- $('[name=comments_length]').html(window.lesson_comments_length);
- } else {
- $('[name=lesson_comments_empty]').show();
- $('[name=lesson_comments_block]').hide();
- $('[name=comments_length]').html('0');
- }
- }
- window.in_reload = false;
- }
- });
- }
-}
-function reload_lesson_comments(data){
- $('[name=lesson_comments_load]').show();
- $('[name=lesson_comments_block]').html('');
- if (NotEmpty(data)){
- load_lesson_comments('reload', data)
- } else {
- load_lesson_comments('reload')
- }
-
-}
-function reply_comment(id){
- $('[name=reply_for_comment_id]').val(id);
- var form = $('[name=comment_send_form]');
- form.remove();
- $('[reply_owner='+id+']').html(get_reply_form(id));
- $('[name=comment_sent_text]').wysibb(window.wbbOpt);
- $('[name=everyone_comment]').fadeIn();
-
- //$('html,body').stop().animate({ scrollTop: $('[name="comment_send_form"]').offset().top }, 1000);
-}
-function get_lesson_comments_length(){
- $.ajax({
- type: 'GET',
- url: '/courses/get_lesson_comments_length',
- async: true,
- data: {'id': $('[name=LESSON_ID]').val()},
- success: function(data){
- if (data['code'] == '1'){
- var comments_length = data['data'];
- if (window.lesson_comments_length != comments_length){
- reload_lesson_comments();
- window.lesson_comments_length = comments_length
- }
- } else {
- show_system_message(data['response'])
- }
- }
- });
-}
-$(function() {
- $('[name=everyone_comment]').click();
- $('[name=everyone_comment]').fadeOut();
- $("a#single_image").fancybox();
- setInterval(function(){
- get_lesson_comments_length();
- }
- , 2000);
- if (window.lesson_comments_length != 0){
- $('[name="old_comments_show"]').fadeIn()
- }
-});
+$(function(){
+ //load_lesson_comments();
+ window.in_reload = false;
+ window.wbbOpt = {
+ lang: 'RU',
+ buttons: "bold,italic,underline,|,link,bullist,numlist,fontcolor,|,quote,code,myquote"
+ }
+ if ($('#myModal1').length == 0) {
+ $('[name=comment_sent_text]').wysibb(window.wbbOpt);
+ }
+});
+function get_reply_form(id){
+ var reply_form = '
'+
+ ''+
+ ''+
+ ' ';
+ return reply_form
+}
+
+
+function send_comment(form, root){
+ // Проверить комментарий
+ // Отправить
+ if ($('[name=comment_sent_text]').bbcode()){
+ $('[name=sent_comment_progress]').show();
+ $('[name=comment_sent_text]').val($('[name=comment_sent_text]').bbcode());
+ $.ajax({
+ type: 'POST',
+ url: '/courses/sent_lesson_comment',
+ data: $('[name='+form+']').serialize(),
+ success: function(data){
+ if(data['code'] == '1'){
+ $('[name=sent_comment_progress]').hide();
+ document.forms[form].reset();
+ $('[name=comment_sent_text]').htmlcode('');
+ reload_lesson_comments(data['data']);
+ $('[name='+$('#'+root).attr('sketch_place')+']').html('')
+ }
+ }
+ });
+
+ } else {
+ show_system_message('Введите текст сообщения')
+ }
+}
+function read_lesson(id){
+ $.ajax({
+ type: 'POST',
+ url: '/courses/read_lesson/',
+ data: {'lesson': id},
+ success: function(data){
+ if (data['code'] == '1'){
+ $('[name=current_button]').fadeOut('slow', function(){
+ $('[name=next_button]').fadeIn('slow');
+ });
+ }
+ }
+ });
+}
+
+function write_comment(block, data){
+ var message;
+ var user_status;
+ var reply;
+ if (NotEmpty(data)) {
+ if (!NotEmpty(data['replies'])) {
+ reply = ''
+ } else {
+ reply = '
' +
+ '
' +
+ '
';
+ }
+ if (NotEmpty(data['files']) && !data['closed']) {
+ message = '
'
+ } else {
+ message = '';
+ }
+ var comment_id = '';
+ if ($('[name=REQUEST_USER_ROLE]').val() == 'A'){
+ comment_id = '
ID:'+data['id']+' ';
+ }
+
+ user_status = '
' + data['owner_type']['title'] + ' ' + comment_id;
+ var background;
+ if (data['owner_type']['flag'] == 'A') {
+ background = "#f5fce5;"
+ } else {
+ background = ''
+ }
+ var avatar;
+ if (data['closed']) {
+ avatar = '
'
+ } else {
+ avatar = '
' +
+ ' ' +
+ ' '
+ }
+ var head;
+ if (data['closed']) {
+ head = '
' +
+ ' ' +
+ 'КОММЕНТАРИЙ УДАЛЕН' +
+ '' +
+ '
'
+ } else {
+ head = '
' +
+ ' ' +
+ '' + data['owner'] + ' ' +
+ ' ' + user_status +
+ '' +
+ //'1 Мне нравится ' +
+ //' Пожаловаться ' +
+ '' + data['date'] + '
'
+ }
+ var reply_button;
+ var text;
+ if (data['closed']) {
+ reply_button = '';
+ text = '
'
+ } else {
+
+ if (data['owner_id'] == $('[name=REQUEST_USER_ID]').val()) {
+ reply_button = '
' +
+ ' Удалить '
+ } else {
+ if ($('[name=REQUEST_USER_ROLE]').val() == 'A') {
+ reply_button = '
Ответить' +
+ '
Удалить'
+ } else {
+ reply_button = ''
+ }
+ }
+ reply_button += '
'
+ text = '
' + data['text'] + '
'
+ }
+
+
+ $(block).append('
' +
+ avatar +
+ '
' +
+ head +
+ text +
+ message +
+ '
'
+ + reply_button +
+ '
' +
+ '
' +
+ '
' +
+ '
' + reply);
+
+ for (var r = 0; r < data['replies'].length; r++) {
+ write_comment($('[parent_id=' + data['id'] + ']'), data['replies'][r])
+ }
+ var file_block = $('[name=message_files][message_id=' + data['id'] + ']');
+ for (var n = 0; n < data['files'].length; n++) {
+ var file_id = '';
+ var target = '';
+ var context = '';
+ if (data['files'][n]['format'] == 'I') {
+ file_id = 'single_image';
+ target = '__blank';
+ context = '
';
+ }
+ var m = '
';
+ file_block.append(m);
+ }
+ $("a#single_image").fancybox();
+ }
+}
+function load_lesson_comments(type, reload_data){
+ if (!window.in_reload) {
+ window.in_reload = true;
+ $('[name=lesson_comments_empty]').hide();
+ $('[name=lesson_comments_block]').show();
+ var comment_block = $('[name=lesson_comments_block]');
+ $.ajax({
+ type: 'POST',
+ url: '/courses/load_lesson_comments',
+ data: {'lesson': comment_block.attr('lesson_id')},
+ success: function (data) {
+ $('[name=lesson_comments_load]').hide();
+ comment_block.show();
+ if (data['code'] == 0) {
+ $('[name=lesson_comments_empty]').show();
+ $('[name=lesson_comments_block]').hide();
+ $('[name=comments_length]').html('0');
+ } else {
+ if (NotEmpty(data['data'])) {
+ for (var i = 0; i < data['data'].length; i++) {
+ write_comment(comment_block, data['data'][i]);
+ }
+ if (type == 'reload' && reload_data) {
+ location.hash = '';
+ location.hash = 'comment_' + reload_data
+ }
+ $('[name=comments_length]').html(window.lesson_comments_length);
+ } else {
+ $('[name=lesson_comments_empty]').show();
+ $('[name=lesson_comments_block]').hide();
+ $('[name=comments_length]').html('0');
+ }
+ }
+ window.in_reload = false;
+ }
+ });
+ }
+}
+function reload_lesson_comments(data){
+ $('[name=lesson_comments_load]').show();
+ $('[name=lesson_comments_block]').html('');
+ if (NotEmpty(data)){
+ load_lesson_comments('reload', data)
+ } else {
+ load_lesson_comments('reload')
+ }
+
+}
+function reply_comment(id){
+ $('[name=reply_for_comment_id]').val(id);
+ var form = $('[name=comment_send_form]');
+ form.remove();
+ $('[reply_owner='+id+']').html(get_reply_form(id));
+ $('[name=comment_sent_text]').wysibb(window.wbbOpt);
+ $('[name=everyone_comment]').fadeIn();
+
+ //$('html,body').stop().animate({ scrollTop: $('[name="comment_send_form"]').offset().top }, 1000);
+}
+function get_lesson_comments_length(){
+ $.ajax({
+ type: 'GET',
+ url: '/courses/get_lesson_comments_length',
+ async: true,
+ data: {'id': $('[name=LESSON_ID]').val()},
+ success: function(data){
+ if (data['code'] == '1'){
+ var comments_length = data['data'];
+ if (window.lesson_comments_length != comments_length){
+ reload_lesson_comments();
+ window.lesson_comments_length = comments_length
+ }
+ } else {
+ show_system_message(data['response'])
+ }
+ }
+ });
+}
+$(function() {
+ $('[name=everyone_comment]').click();
+ $('[name=everyone_comment]').fadeOut();
+ $("a#single_image").fancybox();
+ setInterval(function(){
+ get_lesson_comments_length();
+ }
+ , 2000);
+ if (window.lesson_comments_length != 0){
+ $('[name="old_comments_show"]').fadeIn()
+ }
+});
diff --git a/static/js/library.js b/static/js/library.js
old mode 100755
new mode 100644
index ce49e7f..c17da2b
--- a/static/js/library.js
+++ b/static/js/library.js
@@ -1,468 +1,468 @@
-
- window.only_noviewed = false;
- $(document).on('change', '[name="by_radio"]', function(){
- if ($('#myModal1').length == 0) {
- if (!window.only_noviewed) {
- $('[viewed=True]').fadeOut('slow');
- window.only_noviewed = true;
- } else {
- $('[viewed=True]').fadeIn('slow');
- window.only_noviewed = false;
- }
- } else {
- $('#myModal1').modal('show')
- }
- });
-function set_favorit(block) {
- if ($('#myModal1').length == 0){
- $.ajax({
- type: 'POST',
- url: '/library/set_favorite/',
- data: {'art': $(block).attr('article_id')},
- async: false,
- success: function(data) {
- if (data['code'] == '1') {
- $('[class=article_point][article_id=' + $(block).attr('article_id') + ']').attr('favorite', true);
- $(block).attr('id', 'active');
- $(block).attr('onclick', 'unset_favorit(this)');
- if (!window.favorite_count){
- window.favorite_count = 1;
- } else {
- window.favorite_count += 1
- }
- if (window.favorite_count > 0){
- $('[name=favorite_button]').fadeIn('slow');
- } else {
- $('[name=favorite_button]').fadeOut('slow');
- }
- $('[name="favorite_count"]').html(window.favorite_count)
- } else {
- console.log(data['response'])
- }
- }
- });
- } else {
- $('#myModal1').modal('show')
- }
-}
-function ajax_set_favorit(block) {
- if ($('#myModal1').length == 0){
- $(block).attr('class', 'active');
- $(block).attr('onclick', 'ajax_unset_favorit(this)');
- $.ajax({
- type: 'POST',
- url: '/library/set_favorite/',
- data: {'art': $(block).attr('article_id')}
- });
- } else {
- $('#myModal1').modal('show')
- }
-}
-function articles_length() {
- var result = 0;
- $.ajax({
- type: 'GET',
- url: '/library/get_articles_length/',
- async: false,
- success: function (data) {
- if (data['code'] == '1') {
- result = data['data']
- } else {
- console.log(data['response'])
- }
- }
- });
- return result;
-
-}
-function unset_favorit(block) {
- if ($('#myModal1').length == 0){
- $.ajax({
- type: 'POST',
- url: '/library/unset_favorite/',
- data: {'art': $(block).attr('article_id')},
- async: false,
- success: function(data) {
- if (data['code'] == '1') {
- $('[class=article_point][article_id=' + $(block).attr('article_id') + ']').attr('favorite', false);
- $(block).attr('id', '');
- $(block).attr('onclick', 'set_favorit(this)');
- if (!window.favorite_count){
- window.favorite_count = 0;
- } else {
- window.favorite_count -= 1
- }
- if (window.favorite_count > 0){
- $('[name=favorite_button]').fadeIn('slow');
- } else {
- $('[name=favorite_button]').fadeOut('slow');
- }
- $('[name="favorite_count"]').html(window.favorite_count)
- } else {
- console.log(data['response'])
- }
- }
- });
- } else {
- $('#myModal1').modal('show')
- }
-}
-
-function ajax_unset_favorit(block) {
- if ($('#myModal1').length == 0){
- $(block).attr('class', '');
- $(block).attr('onclick', 'ajax_set_favorit(this)');
- $.ajax({
- type: 'POST',
- url: '/library/unset_favorite/',
- data: {'art': $(block).attr('article_id')}
- });
- } else {
- $('#myModal1').modal('show')
- }
-}
-
-function ajax_unset_like(block) {
- if ($('#myModal1').length == 0){
- $('[name=like_thanks]').fadeOut('slow');
- $(block).attr('class', '');
- $(block).attr('onclick', 'ajax_set_like(this)');
- $.ajax({
- type: 'POST',
- url: '/library/unset_like/',
- data: {'id': $(block).attr('article_id')}
- });
- } else {
- $('#myModal1').modal('show')
- }
-}
-
-function ajax_set_like(block) {
- if ($('#myModal1').length == 0){
- $('[name=like_thanks]').fadeIn('slow');
- $(block).attr('class', 'active');
- $(block).attr('onclick', 'ajax_unset_like(this)');
- $.ajax({
- type: 'POST',
- url: '/library/set_like/',
- data: {'id': $(block).attr('article_id')}
- });
- } else {
- $('#myModal1').modal('show')
- }
-}
-
-function check_favorit(id) {
- var block = $('i[article_id='+id+']')
- $.ajax({
- type: 'GET',
- url: '/library/check_favorite/',
- data: {'id': id},
- success: function(data) {
- if (data['code'] == '1'){
- $('[class=article_point][article_id='+id+']').attr('favorite', true);
- $(block).attr('id', 'active');
- $(block).attr('onclick', 'unset_favorit(this)');
- if (!window.favorite_count){
- window.favorite_count = 1;
- } else {
- window.favorite_count += 1
- }
- $('[name="favorite_count"]').html(window.favorite_count)
- } else {
- $('[class=article_point][article_id='+id+']').attr('favorite', false);
- $(block).attr('id', '');
- $(block).attr('onclick', 'set_favorit(this)');
- }
- }
- });
-}
-
-function set_like(id) {
- if ($('#myModal1').length == 0) {
- var count = parseInt($('[name=like_count]').html(), 10);
- $.ajax({
- type: 'POST',
- url: '/library/set_like/',
- data: {'id': id},
- success: function (data) {
- if (data['code'] == '1') {
- $('[name=like_count]').html(count + 1)
- $('[name=like_thanks]').fadeIn('slow');
- } else {
- console.log(data['response'])
- }
- }
- });
- } else {
- $('#myModal1').modal('show')
- }
-}
-
-function unset_like(id) {
- if ($('#myModal1').length == 0) {
- var count = parseInt($('[name=like_count]').html(), 10);
- $.ajax({
- type: 'POST',
- url: '/library/unset_like/',
- data: {'id': id},
- success: function (data) {
- if (data['code'] == '1') {
- $('[name=like_count]').html(count + 1)
- } else {
- console.log(data['response'])
- }
- }
- });
- } else {
- $('#myModal1').modal('show')
- }
-}
-
-function refresh_like(id) {
- $.ajax({
- type: 'GET',
- url: '/library/refresh_like/',
- data: {'id': id},
- success: function (data) {
- if (data['code'] == '1') {
- $('[name=like_count]').html(data['data'])
- } else {
- console.log(data['response'])
- }
- }
- });
-}
-
-function get_random_article(id) {
- var result = '';
- $.ajax({
- type: 'GET',
- url: '/library/get_random_article/',
- data: {'id': id},
- async: false,
- success: function (data) {
- result = data['data'];
- }
- });
- return result;
-}
-
-function send_comment(form, root){
- // Проверить комментарий
- // Отправить
- if (window.EDITOR.getValue()){
- $('[name=sent_comment_progress]').show();
- $('[name=comment_sent_text]').val(window.EDITOR.getValue());
- $.ajax({
- type: 'POST',
- url: '/library/sent_comment/',
- data: $('[name='+form+']').serialize(),
- success: function(data){
- if(data['code'] == '1'){
- $('[name=sent_comment_progress]').hide();
- document.forms[form].reset();
- window.EDITOR.setValue('');
- reload_lesson_comments(data['data']);
- $('[name='+$('#'+root).attr('sketch_place')+']').html('')
- }
- }
- });
-
- } else {
- show_system_message('Введите текст сообщения')
- }
-}
-
-function write_comment(block, data){
- var message;
- var user_status;
- var reply;
- if (NotEmpty(data)) {
- if (!NotEmpty(data['replies'])) {
- reply = ''
- } else {
- reply = '
' +
- '
' +
- '
';
- }
- if (NotEmpty(data['files']) && !data['closed']) {
- message = '
'
- } else {
- message = '';
- }
- var comment_id = '';
- if ($('[name=REQUEST_USER_ROLE]').val() == 'A'){
- comment_id = '
ID:'+data['id']+' ';
- }
- user_status = '
' + data['owner_type']['title'] + ' ' + comment_id;
- var background;
- if (data['owner_type']['flag'] == 'A') {
- background = "#f5fce5;"
- } else {
- background = ''
- }
- var avatar;
- if (data['closed']) {
- avatar = '
'
- } else {
- avatar = '
' +
- ' ' +
- ' '
- }
- var head;
- if (data['closed']) {
- head = '
' +
- ' ' +
- 'КОММЕНТАРИЙ УДАЛЕН' +
- '' +
- '
'
- } else {
- head = '
' +
- ' ' +
- '' + data['owner'] + ' ' +
- ' ' + user_status +
- '' +
- //'1 Мне нравится ' +
- //' Пожаловаться ' +
- '' + data['date'] + '
'
- }
- var reply_button;
- var text;
- if (data['closed']) {
- reply_button = '';
- text = '
'
- } else {
-
- if (data['owner_id'] == $('[name=REQUEST_USER_ID]').val()) {
- reply_button = '
' +
- ' Удалить '
- } else {
- reply_button = '
Ответить';
- if ($('[name=REQUEST_USER_ROLE]').val() == 'A') {
- reply_button += '
Удалить'
- }
- }
- text = '
\' sandbox="allow-top-navigation">
'
- }
-
-
- $(block).append('
' +
- avatar +
- '
' +
- head +
- text +
- message +
- '
'
- + reply_button +
- '
' +
- '
' +
- '
' +
- '
' + reply);
-
- for (var r = 0; r < data['replies'].length; r++) {
- write_comment($('[parent_id=' + data['id'] + ']'), data['replies'][r])
- }
- var file_block = $('[name=message_files][message_id=' + data['id'] + ']');
- for (var n = 0; n < data['files'].length; n++) {
- var file_id = '';
- var target = '';
- var context = '';
- if (data['files'][n]['format'] == 'I') {
- file_id = 'single_image';
- target = '__blank';
- context = ' ';
- }
- var m = '';
- file_block.append(m);
- }
- $("a#single_image").fancybox();
- }
-}
-function load_lesson_comments(type, reload_data){
- $('[name=lesson_comments_empty]').hide();
- $('[name=lesson_comments_block]').show();
- var comment_block = $('[name=lesson_comments_block]');
- $.ajax({
- type: 'POST',
- url: '/library/load_comments/',
- data: {'lesson': comment_block.attr('lesson_id')},
- success: function(data) {
- $('[name=lesson_comments_load]').hide();
- comment_block.show();
- if (data['code'] == 0){
- $('[name=lesson_comments_empty]').show();
- $('[name=lesson_comments_block]').hide();
- $('[name=comments_length]').html('0');
- } else {
- if (NotEmpty(data['data'])) {
- for (var i = 0; i < data['data'].length; i++) {
- write_comment(comment_block, data['data'][i]);
- }
- if (type == 'reload' && reload_data) {
- location.hash = '';
- location.hash = 'comment_' + reload_data
- }
- $('[name=comments_length]').html(window.lesson_comments_length);
- } else {
- $('[name=lesson_comments_empty]').show();
- $('[name=lesson_comments_block]').hide();
- $('[name=comments_length]').html('0');
- }
- }
- }
- });
-}
-function reload_lesson_comments(data){
- $('[name=lesson_comments_load]').show();
- $('[name=lesson_comments_block]').html('');
- if (NotEmpty(data)){
- load_lesson_comments('reload', data)
- } else {
- load_lesson_comments('reload')
- }
-
-}
-function reply_comment(id){
- $('[name=reply_for_comment_id]').val(id);
-}
-function get_lesson_comments_length(){
- $.ajax({
- type: 'GET',
- url: '/library/get_comments_length/',
- async: true,
- data: {'id': $('[name=ARTICLE_ID]').val()},
- success: function(data){
- if (data['code'] == '1'){
- var comments_length = data['data'];
- if (window.lesson_comments_length != comments_length){
- reload_lesson_comments();
- window.lesson_comments_length = comments_length
- }
- } else {
- //show_system_message(data['response'])
- }
- }
- });
-}
-
-function get_all_views_length(){
- $.ajax({
- type: 'GET',
- url: '/library/get_all_views_length/',
- async: true,
- success: function(data){
- if (data['code'] == '1'){
- $('[name=all_article_views]').html(data['data'])
- } else {
- //show_system_message(data['response'])
- }
- }
- });
+
+ window.only_noviewed = false;
+ $(document).on('change', '[name="by_radio"]', function(){
+ if ($('#myModal1').length == 0) {
+ if (!window.only_noviewed) {
+ $('[viewed=True]').fadeOut('slow');
+ window.only_noviewed = true;
+ } else {
+ $('[viewed=True]').fadeIn('slow');
+ window.only_noviewed = false;
+ }
+ } else {
+ $('#myModal1').modal('show')
+ }
+ });
+function set_favorit(block) {
+ if ($('#myModal1').length == 0){
+ $.ajax({
+ type: 'POST',
+ url: '/library/set_favorite/',
+ data: {'art': $(block).attr('article_id')},
+ async: false,
+ success: function(data) {
+ if (data['code'] == '1') {
+ $('[class=article_point][article_id=' + $(block).attr('article_id') + ']').attr('favorite', true);
+ $(block).attr('id', 'active');
+ $(block).attr('onclick', 'unset_favorit(this)');
+ if (!window.favorite_count){
+ window.favorite_count = 1;
+ } else {
+ window.favorite_count += 1
+ }
+ if (window.favorite_count > 0){
+ $('[name=favorite_button]').fadeIn('slow');
+ } else {
+ $('[name=favorite_button]').fadeOut('slow');
+ }
+ $('[name="favorite_count"]').html(window.favorite_count)
+ } else {
+ console.log(data['response'])
+ }
+ }
+ });
+ } else {
+ $('#myModal1').modal('show')
+ }
+}
+function ajax_set_favorit(block) {
+ if ($('#myModal1').length == 0){
+ $(block).attr('class', 'active');
+ $(block).attr('onclick', 'ajax_unset_favorit(this)');
+ $.ajax({
+ type: 'POST',
+ url: '/library/set_favorite/',
+ data: {'art': $(block).attr('article_id')}
+ });
+ } else {
+ $('#myModal1').modal('show')
+ }
+}
+function articles_length() {
+ var result = 0;
+ $.ajax({
+ type: 'GET',
+ url: '/library/get_articles_length/',
+ async: false,
+ success: function (data) {
+ if (data['code'] == '1') {
+ result = data['data']
+ } else {
+ console.log(data['response'])
+ }
+ }
+ });
+ return result;
+
+}
+function unset_favorit(block) {
+ if ($('#myModal1').length == 0){
+ $.ajax({
+ type: 'POST',
+ url: '/library/unset_favorite/',
+ data: {'art': $(block).attr('article_id')},
+ async: false,
+ success: function(data) {
+ if (data['code'] == '1') {
+ $('[class=article_point][article_id=' + $(block).attr('article_id') + ']').attr('favorite', false);
+ $(block).attr('id', '');
+ $(block).attr('onclick', 'set_favorit(this)');
+ if (!window.favorite_count){
+ window.favorite_count = 0;
+ } else {
+ window.favorite_count -= 1
+ }
+ if (window.favorite_count > 0){
+ $('[name=favorite_button]').fadeIn('slow');
+ } else {
+ $('[name=favorite_button]').fadeOut('slow');
+ }
+ $('[name="favorite_count"]').html(window.favorite_count)
+ } else {
+ console.log(data['response'])
+ }
+ }
+ });
+ } else {
+ $('#myModal1').modal('show')
+ }
+}
+
+function ajax_unset_favorit(block) {
+ if ($('#myModal1').length == 0){
+ $(block).attr('class', '');
+ $(block).attr('onclick', 'ajax_set_favorit(this)');
+ $.ajax({
+ type: 'POST',
+ url: '/library/unset_favorite/',
+ data: {'art': $(block).attr('article_id')}
+ });
+ } else {
+ $('#myModal1').modal('show')
+ }
+}
+
+function ajax_unset_like(block) {
+ if ($('#myModal1').length == 0){
+ $('[name=like_thanks]').fadeOut('slow');
+ $(block).attr('class', '');
+ $(block).attr('onclick', 'ajax_set_like(this)');
+ $.ajax({
+ type: 'POST',
+ url: '/library/unset_like/',
+ data: {'id': $(block).attr('article_id')}
+ });
+ } else {
+ $('#myModal1').modal('show')
+ }
+}
+
+function ajax_set_like(block) {
+ if ($('#myModal1').length == 0){
+ $('[name=like_thanks]').fadeIn('slow');
+ $(block).attr('class', 'active');
+ $(block).attr('onclick', 'ajax_unset_like(this)');
+ $.ajax({
+ type: 'POST',
+ url: '/library/set_like/',
+ data: {'id': $(block).attr('article_id')}
+ });
+ } else {
+ $('#myModal1').modal('show')
+ }
+}
+
+function check_favorit(id) {
+ var block = $('i[article_id='+id+']')
+ $.ajax({
+ type: 'GET',
+ url: '/library/check_favorite/',
+ data: {'id': id},
+ success: function(data) {
+ if (data['code'] == '1'){
+ $('[class=article_point][article_id='+id+']').attr('favorite', true);
+ $(block).attr('id', 'active');
+ $(block).attr('onclick', 'unset_favorit(this)');
+ if (!window.favorite_count){
+ window.favorite_count = 1;
+ } else {
+ window.favorite_count += 1
+ }
+ $('[name="favorite_count"]').html(window.favorite_count)
+ } else {
+ $('[class=article_point][article_id='+id+']').attr('favorite', false);
+ $(block).attr('id', '');
+ $(block).attr('onclick', 'set_favorit(this)');
+ }
+ }
+ });
+}
+
+function set_like(id) {
+ if ($('#myModal1').length == 0) {
+ var count = parseInt($('[name=like_count]').html(), 10);
+ $.ajax({
+ type: 'POST',
+ url: '/library/set_like/',
+ data: {'id': id},
+ success: function (data) {
+ if (data['code'] == '1') {
+ $('[name=like_count]').html(count + 1)
+ $('[name=like_thanks]').fadeIn('slow');
+ } else {
+ console.log(data['response'])
+ }
+ }
+ });
+ } else {
+ $('#myModal1').modal('show')
+ }
+}
+
+function unset_like(id) {
+ if ($('#myModal1').length == 0) {
+ var count = parseInt($('[name=like_count]').html(), 10);
+ $.ajax({
+ type: 'POST',
+ url: '/library/unset_like/',
+ data: {'id': id},
+ success: function (data) {
+ if (data['code'] == '1') {
+ $('[name=like_count]').html(count + 1)
+ } else {
+ console.log(data['response'])
+ }
+ }
+ });
+ } else {
+ $('#myModal1').modal('show')
+ }
+}
+
+function refresh_like(id) {
+ $.ajax({
+ type: 'GET',
+ url: '/library/refresh_like/',
+ data: {'id': id},
+ success: function (data) {
+ if (data['code'] == '1') {
+ $('[name=like_count]').html(data['data'])
+ } else {
+ console.log(data['response'])
+ }
+ }
+ });
+}
+
+function get_random_article(id) {
+ var result = '';
+ $.ajax({
+ type: 'GET',
+ url: '/library/get_random_article/',
+ data: {'id': id},
+ async: false,
+ success: function (data) {
+ result = data['data'];
+ }
+ });
+ return result;
+}
+
+function send_comment(form, root){
+ // Проверить комментарий
+ // Отправить
+ if (window.EDITOR.getValue()){
+ $('[name=sent_comment_progress]').show();
+ $('[name=comment_sent_text]').val(window.EDITOR.getValue());
+ $.ajax({
+ type: 'POST',
+ url: '/library/sent_comment/',
+ data: $('[name='+form+']').serialize(),
+ success: function(data){
+ if(data['code'] == '1'){
+ $('[name=sent_comment_progress]').hide();
+ document.forms[form].reset();
+ window.EDITOR.setValue('');
+ reload_lesson_comments(data['data']);
+ $('[name='+$('#'+root).attr('sketch_place')+']').html('')
+ }
+ }
+ });
+
+ } else {
+ show_system_message('Введите текст сообщения')
+ }
+}
+
+function write_comment(block, data){
+ var message;
+ var user_status;
+ var reply;
+ if (NotEmpty(data)) {
+ if (!NotEmpty(data['replies'])) {
+ reply = ''
+ } else {
+ reply = ' ' +
+ ' ' +
+ '
';
+ }
+ if (NotEmpty(data['files']) && !data['closed']) {
+ message = '
'
+ } else {
+ message = '';
+ }
+ var comment_id = '';
+ if ($('[name=REQUEST_USER_ROLE]').val() == 'A'){
+ comment_id = 'ID:'+data['id']+' ';
+ }
+ user_status = '' + data['owner_type']['title'] + ' ' + comment_id;
+ var background;
+ if (data['owner_type']['flag'] == 'A') {
+ background = "#f5fce5;"
+ } else {
+ background = ''
+ }
+ var avatar;
+ if (data['closed']) {
+ avatar = ' '
+ } else {
+ avatar = '' +
+ ' ' +
+ ' '
+ }
+ var head;
+ if (data['closed']) {
+ head = '' +
+ ' ' +
+ 'КОММЕНТАРИЙ УДАЛЕН' +
+ '' +
+ '
'
+ } else {
+ head = '' +
+ ' ' +
+ '' + data['owner'] + ' ' +
+ ' ' + user_status +
+ '' +
+ //'1 Мне нравится ' +
+ //' Пожаловаться ' +
+ '' + data['date'] + '
'
+ }
+ var reply_button;
+ var text;
+ if (data['closed']) {
+ reply_button = '';
+ text = ''
+ } else {
+
+ if (data['owner_id'] == $('[name=REQUEST_USER_ID]').val()) {
+ reply_button = '
' +
+ ' Удалить '
+ } else {
+ reply_button = '
Ответить';
+ if ($('[name=REQUEST_USER_ROLE]').val() == 'A') {
+ reply_button += '
Удалить'
+ }
+ }
+ text = '
\' sandbox="allow-top-navigation">
'
+ }
+
+
+ $(block).append('' +
+ avatar +
+ '
' +
+ head +
+ text +
+ message +
+ '
'
+ + reply_button +
+ '
' +
+ '
' +
+ '
' +
+ ' ' + reply);
+
+ for (var r = 0; r < data['replies'].length; r++) {
+ write_comment($('[parent_id=' + data['id'] + ']'), data['replies'][r])
+ }
+ var file_block = $('[name=message_files][message_id=' + data['id'] + ']');
+ for (var n = 0; n < data['files'].length; n++) {
+ var file_id = '';
+ var target = '';
+ var context = '';
+ if (data['files'][n]['format'] == 'I') {
+ file_id = 'single_image';
+ target = '__blank';
+ context = '
';
+ }
+ var m = '
';
+ file_block.append(m);
+ }
+ $("a#single_image").fancybox();
+ }
+}
+function load_lesson_comments(type, reload_data){
+ $('[name=lesson_comments_empty]').hide();
+ $('[name=lesson_comments_block]').show();
+ var comment_block = $('[name=lesson_comments_block]');
+ $.ajax({
+ type: 'POST',
+ url: '/library/load_comments/',
+ data: {'lesson': comment_block.attr('lesson_id')},
+ success: function(data) {
+ $('[name=lesson_comments_load]').hide();
+ comment_block.show();
+ if (data['code'] == 0){
+ $('[name=lesson_comments_empty]').show();
+ $('[name=lesson_comments_block]').hide();
+ $('[name=comments_length]').html('0');
+ } else {
+ if (NotEmpty(data['data'])) {
+ for (var i = 0; i < data['data'].length; i++) {
+ write_comment(comment_block, data['data'][i]);
+ }
+ if (type == 'reload' && reload_data) {
+ location.hash = '';
+ location.hash = 'comment_' + reload_data
+ }
+ $('[name=comments_length]').html(window.lesson_comments_length);
+ } else {
+ $('[name=lesson_comments_empty]').show();
+ $('[name=lesson_comments_block]').hide();
+ $('[name=comments_length]').html('0');
+ }
+ }
+ }
+ });
+}
+function reload_lesson_comments(data){
+ $('[name=lesson_comments_load]').show();
+ $('[name=lesson_comments_block]').html('');
+ if (NotEmpty(data)){
+ load_lesson_comments('reload', data)
+ } else {
+ load_lesson_comments('reload')
+ }
+
+}
+function reply_comment(id){
+ $('[name=reply_for_comment_id]').val(id);
+}
+function get_lesson_comments_length(){
+ $.ajax({
+ type: 'GET',
+ url: '/library/get_comments_length/',
+ async: true,
+ data: {'id': $('[name=ARTICLE_ID]').val()},
+ success: function(data){
+ if (data['code'] == '1'){
+ var comments_length = data['data'];
+ if (window.lesson_comments_length != comments_length){
+ reload_lesson_comments();
+ window.lesson_comments_length = comments_length
+ }
+ } else {
+ //show_system_message(data['response'])
+ }
+ }
+ });
+}
+
+function get_all_views_length(){
+ $.ajax({
+ type: 'GET',
+ url: '/library/get_all_views_length/',
+ async: true,
+ success: function(data){
+ if (data['code'] == '1'){
+ $('[name=all_article_views]').html(data['data'])
+ } else {
+ //show_system_message(data['response'])
+ }
+ }
+ });
}
\ No newline at end of file
diff --git a/static/js/modals.js b/static/js/modals.js
old mode 100755
new mode 100644
index 816eeb5..5f95a20
--- a/static/js/modals.js
+++ b/static/js/modals.js
@@ -1,39 +1,39 @@
-window.watched_modals = {};
-function close_modal(key) {
- // Закрытие окна и отправка оповещения об этом
- $.ajax({
- type: 'POST',
- url: '/management/close_modal/',
- data: {'modal': key}
- });
- console.log(key);
- if (window.modals_data[key]['type'] == 'M'){
- $('#'+key).modal('hide');
- } else {
- $('#'+key).fadeOut('slow');
- }
-}
-
-function watch_modal(key) {
- // Просмотр окна
- $.ajax({
- type: 'POST',
- url: '/management/saw_modal/',
- data: {'modal': key}
- });
-}
-
-$( document.body ).on( "mouseover", "[control_modal]", function( event ) {
- var element_action = $(event.target);
- //if (!element_action.attr('control_modal')){
- // element_action = get_by_type_action_parent(element_action, 'control_modal');
- //}
- var v = $(element_action).attr('control_modal');
-
- if (v){
- if ( !(v in window.watched_modals) ){
- window.watched_modals[($(element_action).attr('control_modal'))] = true;
- watch_modal(v)
- }
- }
+window.watched_modals = {};
+function close_modal(key) {
+ // Закрытие окна и отправка оповещения об этом
+ $.ajax({
+ type: 'POST',
+ url: '/management/close_modal/',
+ data: {'modal': key}
+ });
+ console.log(key);
+ if (window.modals_data[key]['type'] == 'M'){
+ $('#'+key).modal('hide');
+ } else {
+ $('#'+key).fadeOut('slow');
+ }
+}
+
+function watch_modal(key) {
+ // Просмотр окна
+ $.ajax({
+ type: 'POST',
+ url: '/management/saw_modal/',
+ data: {'modal': key}
+ });
+}
+
+$( document.body ).on( "mouseover", "[control_modal]", function( event ) {
+ var element_action = $(event.target);
+ //if (!element_action.attr('control_modal')){
+ // element_action = get_by_type_action_parent(element_action, 'control_modal');
+ //}
+ var v = $(element_action).attr('control_modal');
+
+ if (v){
+ if ( !(v in window.watched_modals) ){
+ window.watched_modals[($(element_action).attr('control_modal'))] = true;
+ watch_modal(v)
+ }
+ }
});
\ No newline at end of file
diff --git a/static/js/modernizr.custom.js b/static/js/modernizr.custom.js
old mode 100755
new mode 100644
diff --git a/static/js/module.js b/static/js/module.js
old mode 100755
new mode 100644
diff --git a/static/js/module.min.js b/static/js/module.min.js
old mode 100755
new mode 100644
diff --git a/static/js/news.js b/static/js/news.js
old mode 100755
new mode 100644
index 92ce510..33c9bf1
--- a/static/js/news.js
+++ b/static/js/news.js
@@ -1,22 +1,22 @@
-$(function(){
- write_news()
-});
-function write_news(){
- var news;
- var new_news;
- if (check_auth()){
- news = get_news(3)
- } else {
- news = get_news(9)
- }
-
- for(var i=0; i < news.length; i++){
- new_news = '
' +
- '
' +
- '
' + news[i]['public_date'] + ' ' +
- '
' + news[i]['title'] + '
' +
- '
Посмотреть ' +
- '
';
- $('#news_block').append(new_news)
- }
+$(function(){
+ write_news()
+});
+function write_news(){
+ var news;
+ var new_news;
+ if (check_auth()){
+ news = get_news(3)
+ } else {
+ news = get_news(9)
+ }
+
+ for(var i=0; i < news.length; i++){
+ new_news = '
' +
+ '
' +
+ '
' + news[i]['public_date'] + ' ' +
+ '
' + news[i]['title'] + '
' +
+ '
Посмотреть ' +
+ '
';
+ $('#news_block').append(new_news)
+ }
}
\ No newline at end of file
diff --git a/static/js/pie_chart.js b/static/js/pie_chart.js
old mode 100755
new mode 100644
index 8eeabf2..7eb8983
--- a/static/js/pie_chart.js
+++ b/static/js/pie_chart.js
@@ -1,222 +1,222 @@
-;(function($, undefined) {
- $.fn.drawPieChart = function(data, options) {
- var $this = this,
- W = $this.width(),
- H = $this.height(),
- centerX = W/2,
- centerY = H/2,
- cos = Math.cos,
- sin = Math.sin,
- PI = Math.PI,
- settings = $.extend({
- segmentShowStroke : true,
- segmentStrokeColor : "#fff",
- segmentStrokeWidth : 1,
- baseColor: "#fff",
- baseOffset: 15,
- edgeOffset: 30,//offset from edge of $this
- pieSegmentGroupClass: "pieSegmentGroup",
- pieSegmentClass: "pieSegment",
- lightPiesOffset: 12,//lighten pie's width
- lightPiesOpacity: .3,//lighten pie's default opacity
- lightPieClass: "lightPie",
- animation : true,
- animationSteps : 90,
- animationEasing : "easeInOutExpo",
- tipOffsetX: -15,
- tipOffsetY: -45,
- tipClass: "pieTip",
- beforeDraw: function(){ },
- afterDrawed : function(){ },
- onPieMouseenter : function(e,data){ },
- onPieMouseleave : function(e,data){ },
- onPieClick : function(e,data){ }
- }, options),
- animationOptions = {
- linear : function (t){
- return t;
- },
- easeInOutExpo: function (t) {
- var v = t<.5 ? 8*t*t*t*t : 1-8*(--t)*t*t*t;
- return (v>1) ? 1 : v;
- }
- },
- requestAnimFrame = function(){
- return window.requestAnimationFrame ||
- window.webkitRequestAnimationFrame ||
- window.mozRequestAnimationFrame ||
- window.oRequestAnimationFrame ||
- window.msRequestAnimationFrame ||
- function(callback) {
- window.setTimeout(callback, 1000 / 60);
- };
- }();
-
- var $wrapper = $('
').appendTo($this);
- var $groups = [],
- $pies = [],
- $lightPies = [],
- easingFunction = animationOptions[settings.animationEasing],
- pieRadius = Min([H/2,W/2]) - settings.edgeOffset,
- segmentTotal = 0;
-
- //Draw base circle
- var drawBasePie = function(){
- var base = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
- var $base = $(base).appendTo($wrapper);
- base.setAttribute("cx", centerX);
- base.setAttribute("cy", centerY);
- base.setAttribute("r", pieRadius+settings.baseOffset);
- base.setAttribute("fill", settings.baseColor);
- }();
-
- //Set up pie segments wrapper
- var pathGroup = document.createElementNS('http://www.w3.org/2000/svg', 'g');
- var $pathGroup = $(pathGroup).appendTo($wrapper);
- $pathGroup[0].setAttribute("opacity",0);
-
- //Set up tooltip
- var $tip = $('
').appendTo('body').hide(),
- tipW = $tip.width(),
- tipH = $tip.height();
-
- for (var i = 0, len = data.length; i < len; i++){
- segmentTotal += data[i].value;
- var g = document.createElementNS('http://www.w3.org/2000/svg', 'g');
- g.setAttribute("data-order", i);
- g.setAttribute("class", settings.pieSegmentGroupClass);
- $groups[i] = $(g).appendTo($pathGroup);
- $groups[i]
- .on("mouseenter", pathMouseEnter)
- .on("mouseleave", pathMouseLeave)
- .on("mousemove", pathMouseMove)
- .on("click", pathClick);
-
- var p = document.createElementNS('http://www.w3.org/2000/svg', 'path');
- p.setAttribute("stroke-width", settings.segmentStrokeWidth);
- p.setAttribute("stroke", settings.segmentStrokeColor);
- p.setAttribute("stroke-miterlimit", 2);
- p.setAttribute("fill", data[i].color);
- p.setAttribute("class", settings.pieSegmentClass);
- $pies[i] = $(p).appendTo($groups[i]);
-
- var lp = document.createElementNS('http://www.w3.org/2000/svg', 'path');
- lp.setAttribute("stroke-width", settings.segmentStrokeWidth);
- lp.setAttribute("stroke", settings.segmentStrokeColor);
- lp.setAttribute("stroke-miterlimit", 2);
- lp.setAttribute("fill", data[i].color);
- lp.setAttribute("opacity", settings.lightPiesOpacity);
- lp.setAttribute("class", settings.lightPieClass);
- $lightPies[i] = $(lp).appendTo($groups[i]);
- }
-
- settings.beforeDraw.call($this);
- //Animation start
- triggerAnimation();
-
- function pathMouseEnter(e){
- var index = $(this).data().order;
- $tip.text(data[index].title + ": " + data[index].value).fadeIn(200);
- if ($groups[index][0].getAttribute("data-active") !== "active"){
- $lightPies[index].animate({opacity: .8}, 180);
- }
- settings.onPieMouseenter.apply($(this),[e,data]);
- }
- function pathMouseLeave(e){
- var index = $(this).data().order;
- $tip.hide();
- if ($groups[index][0].getAttribute("data-active") !== "active"){
- $lightPies[index].animate({opacity: settings.lightPiesOpacity}, 100);
- }
- settings.onPieMouseleave.apply($(this),[e,data]);
- }
- function pathMouseMove(e){
- $tip.css({
- top: e.pageY + settings.tipOffsetY,
- left: e.pageX - $tip.width() / 2 + settings.tipOffsetX
- });
- }
- function pathClick(e){
- var index = $(this).data().order;
- var targetGroup = $groups[index][0];
- for (var i = 0, len = data.length; i < len; i++){
- if (i === index) continue;
- $groups[i][0].setAttribute("data-active","");
- $lightPies[i].css({opacity: settings.lightPiesOpacity});
- }
- if (targetGroup.getAttribute("data-active") === "active"){
- targetGroup.setAttribute("data-active","");
- $lightPies[index].css({opacity: .8});
- } else {
- targetGroup.setAttribute("data-active","active");
- $lightPies[index].css({opacity: 1});
- }
- settings.onPieClick.apply($(this),[e,data]);
- }
- function drawPieSegments (animationDecimal){
- var startRadius = -PI/2,//-90 degree
- rotateAnimation = 1;
- if (settings.animation) {
- rotateAnimation = animationDecimal;//count up between0~1
- }
-
- $pathGroup[0].setAttribute("opacity",animationDecimal);
-
- //draw each path
- for (var i = 0, len = data.length; i < len; i++){
- var segmentAngle = rotateAnimation * ((data[i].value/segmentTotal) * (PI*2)),//start radian
- endRadius = startRadius + segmentAngle,
- largeArc = ((endRadius - startRadius) % (PI * 2)) > PI ? 1 : 0,
- startX = centerX + cos(startRadius) * pieRadius,
- startY = centerY + sin(startRadius) * pieRadius,
- endX = centerX + cos(endRadius) * pieRadius,
- endY = centerY + sin(endRadius) * pieRadius,
- startX2 = centerX + cos(startRadius) * (pieRadius + settings.lightPiesOffset),
- startY2 = centerY + sin(startRadius) * (pieRadius + settings.lightPiesOffset),
- endX2 = centerX + cos(endRadius) * (pieRadius + settings.lightPiesOffset),
- endY2 = centerY + sin(endRadius) * (pieRadius + settings.lightPiesOffset);
- var cmd = [
- 'M', startX, startY,//Move pointer
- 'A', pieRadius, pieRadius, 0, largeArc, 1, endX, endY,//Draw outer arc path
- 'L', centerX, centerY,//Draw line to the center.
- 'Z'//Cloth path
- ];
- var cmd2 = [
- 'M', startX2, startY2,
- 'A', pieRadius + settings.lightPiesOffset, pieRadius + settings.lightPiesOffset, 0, largeArc, 1, endX2, endY2,//Draw outer arc path
- 'L', centerX, centerY,
- 'Z'
- ];
- $pies[i][0].setAttribute("d",cmd.join(' '));
- $lightPies[i][0].setAttribute("d", cmd2.join(' '));
- startRadius += segmentAngle;
- }
- }
-
- var animFrameAmount = (settings.animation)? 1/settings.animationSteps : 1,//if settings.animationSteps is 10, animFrameAmount is 0.1
- animCount =(settings.animation)? 0 : 1;
- function triggerAnimation(){
- if (settings.animation) {
- requestAnimFrame(animationLoop);
- } else {
- drawPieSegments(1);
- }
- }
- function animationLoop(){
- animCount += animFrameAmount;//animCount start from 0, after "settings.animationSteps"-times executed, animCount reaches 1.
- drawPieSegments(easingFunction(animCount));
- if (animCount < 1){
- requestAnimFrame(arguments.callee);
- } else {
- settings.afterDrawed.call($this);
- }
- }
- function Max(arr){
- return Math.max.apply(null, arr);
- }
- function Min(arr){
- return Math.min.apply(null, arr);
- }
- return $this;
- };
+;(function($, undefined) {
+ $.fn.drawPieChart = function(data, options) {
+ var $this = this,
+ W = $this.width(),
+ H = $this.height(),
+ centerX = W/2,
+ centerY = H/2,
+ cos = Math.cos,
+ sin = Math.sin,
+ PI = Math.PI,
+ settings = $.extend({
+ segmentShowStroke : true,
+ segmentStrokeColor : "#fff",
+ segmentStrokeWidth : 1,
+ baseColor: "#fff",
+ baseOffset: 15,
+ edgeOffset: 30,//offset from edge of $this
+ pieSegmentGroupClass: "pieSegmentGroup",
+ pieSegmentClass: "pieSegment",
+ lightPiesOffset: 12,//lighten pie's width
+ lightPiesOpacity: .3,//lighten pie's default opacity
+ lightPieClass: "lightPie",
+ animation : true,
+ animationSteps : 90,
+ animationEasing : "easeInOutExpo",
+ tipOffsetX: -15,
+ tipOffsetY: -45,
+ tipClass: "pieTip",
+ beforeDraw: function(){ },
+ afterDrawed : function(){ },
+ onPieMouseenter : function(e,data){ },
+ onPieMouseleave : function(e,data){ },
+ onPieClick : function(e,data){ }
+ }, options),
+ animationOptions = {
+ linear : function (t){
+ return t;
+ },
+ easeInOutExpo: function (t) {
+ var v = t<.5 ? 8*t*t*t*t : 1-8*(--t)*t*t*t;
+ return (v>1) ? 1 : v;
+ }
+ },
+ requestAnimFrame = function(){
+ return window.requestAnimationFrame ||
+ window.webkitRequestAnimationFrame ||
+ window.mozRequestAnimationFrame ||
+ window.oRequestAnimationFrame ||
+ window.msRequestAnimationFrame ||
+ function(callback) {
+ window.setTimeout(callback, 1000 / 60);
+ };
+ }();
+
+ var $wrapper = $('
').appendTo($this);
+ var $groups = [],
+ $pies = [],
+ $lightPies = [],
+ easingFunction = animationOptions[settings.animationEasing],
+ pieRadius = Min([H/2,W/2]) - settings.edgeOffset,
+ segmentTotal = 0;
+
+ //Draw base circle
+ var drawBasePie = function(){
+ var base = document.createElementNS('http://www.w3.org/2000/svg', 'circle');
+ var $base = $(base).appendTo($wrapper);
+ base.setAttribute("cx", centerX);
+ base.setAttribute("cy", centerY);
+ base.setAttribute("r", pieRadius+settings.baseOffset);
+ base.setAttribute("fill", settings.baseColor);
+ }();
+
+ //Set up pie segments wrapper
+ var pathGroup = document.createElementNS('http://www.w3.org/2000/svg', 'g');
+ var $pathGroup = $(pathGroup).appendTo($wrapper);
+ $pathGroup[0].setAttribute("opacity",0);
+
+ //Set up tooltip
+ var $tip = $('
').appendTo('body').hide(),
+ tipW = $tip.width(),
+ tipH = $tip.height();
+
+ for (var i = 0, len = data.length; i < len; i++){
+ segmentTotal += data[i].value;
+ var g = document.createElementNS('http://www.w3.org/2000/svg', 'g');
+ g.setAttribute("data-order", i);
+ g.setAttribute("class", settings.pieSegmentGroupClass);
+ $groups[i] = $(g).appendTo($pathGroup);
+ $groups[i]
+ .on("mouseenter", pathMouseEnter)
+ .on("mouseleave", pathMouseLeave)
+ .on("mousemove", pathMouseMove)
+ .on("click", pathClick);
+
+ var p = document.createElementNS('http://www.w3.org/2000/svg', 'path');
+ p.setAttribute("stroke-width", settings.segmentStrokeWidth);
+ p.setAttribute("stroke", settings.segmentStrokeColor);
+ p.setAttribute("stroke-miterlimit", 2);
+ p.setAttribute("fill", data[i].color);
+ p.setAttribute("class", settings.pieSegmentClass);
+ $pies[i] = $(p).appendTo($groups[i]);
+
+ var lp = document.createElementNS('http://www.w3.org/2000/svg', 'path');
+ lp.setAttribute("stroke-width", settings.segmentStrokeWidth);
+ lp.setAttribute("stroke", settings.segmentStrokeColor);
+ lp.setAttribute("stroke-miterlimit", 2);
+ lp.setAttribute("fill", data[i].color);
+ lp.setAttribute("opacity", settings.lightPiesOpacity);
+ lp.setAttribute("class", settings.lightPieClass);
+ $lightPies[i] = $(lp).appendTo($groups[i]);
+ }
+
+ settings.beforeDraw.call($this);
+ //Animation start
+ triggerAnimation();
+
+ function pathMouseEnter(e){
+ var index = $(this).data().order;
+ $tip.text(data[index].title + ": " + data[index].value).fadeIn(200);
+ if ($groups[index][0].getAttribute("data-active") !== "active"){
+ $lightPies[index].animate({opacity: .8}, 180);
+ }
+ settings.onPieMouseenter.apply($(this),[e,data]);
+ }
+ function pathMouseLeave(e){
+ var index = $(this).data().order;
+ $tip.hide();
+ if ($groups[index][0].getAttribute("data-active") !== "active"){
+ $lightPies[index].animate({opacity: settings.lightPiesOpacity}, 100);
+ }
+ settings.onPieMouseleave.apply($(this),[e,data]);
+ }
+ function pathMouseMove(e){
+ $tip.css({
+ top: e.pageY + settings.tipOffsetY,
+ left: e.pageX - $tip.width() / 2 + settings.tipOffsetX
+ });
+ }
+ function pathClick(e){
+ var index = $(this).data().order;
+ var targetGroup = $groups[index][0];
+ for (var i = 0, len = data.length; i < len; i++){
+ if (i === index) continue;
+ $groups[i][0].setAttribute("data-active","");
+ $lightPies[i].css({opacity: settings.lightPiesOpacity});
+ }
+ if (targetGroup.getAttribute("data-active") === "active"){
+ targetGroup.setAttribute("data-active","");
+ $lightPies[index].css({opacity: .8});
+ } else {
+ targetGroup.setAttribute("data-active","active");
+ $lightPies[index].css({opacity: 1});
+ }
+ settings.onPieClick.apply($(this),[e,data]);
+ }
+ function drawPieSegments (animationDecimal){
+ var startRadius = -PI/2,//-90 degree
+ rotateAnimation = 1;
+ if (settings.animation) {
+ rotateAnimation = animationDecimal;//count up between0~1
+ }
+
+ $pathGroup[0].setAttribute("opacity",animationDecimal);
+
+ //draw each path
+ for (var i = 0, len = data.length; i < len; i++){
+ var segmentAngle = rotateAnimation * ((data[i].value/segmentTotal) * (PI*2)),//start radian
+ endRadius = startRadius + segmentAngle,
+ largeArc = ((endRadius - startRadius) % (PI * 2)) > PI ? 1 : 0,
+ startX = centerX + cos(startRadius) * pieRadius,
+ startY = centerY + sin(startRadius) * pieRadius,
+ endX = centerX + cos(endRadius) * pieRadius,
+ endY = centerY + sin(endRadius) * pieRadius,
+ startX2 = centerX + cos(startRadius) * (pieRadius + settings.lightPiesOffset),
+ startY2 = centerY + sin(startRadius) * (pieRadius + settings.lightPiesOffset),
+ endX2 = centerX + cos(endRadius) * (pieRadius + settings.lightPiesOffset),
+ endY2 = centerY + sin(endRadius) * (pieRadius + settings.lightPiesOffset);
+ var cmd = [
+ 'M', startX, startY,//Move pointer
+ 'A', pieRadius, pieRadius, 0, largeArc, 1, endX, endY,//Draw outer arc path
+ 'L', centerX, centerY,//Draw line to the center.
+ 'Z'//Cloth path
+ ];
+ var cmd2 = [
+ 'M', startX2, startY2,
+ 'A', pieRadius + settings.lightPiesOffset, pieRadius + settings.lightPiesOffset, 0, largeArc, 1, endX2, endY2,//Draw outer arc path
+ 'L', centerX, centerY,
+ 'Z'
+ ];
+ $pies[i][0].setAttribute("d",cmd.join(' '));
+ $lightPies[i][0].setAttribute("d", cmd2.join(' '));
+ startRadius += segmentAngle;
+ }
+ }
+
+ var animFrameAmount = (settings.animation)? 1/settings.animationSteps : 1,//if settings.animationSteps is 10, animFrameAmount is 0.1
+ animCount =(settings.animation)? 0 : 1;
+ function triggerAnimation(){
+ if (settings.animation) {
+ requestAnimFrame(animationLoop);
+ } else {
+ drawPieSegments(1);
+ }
+ }
+ function animationLoop(){
+ animCount += animFrameAmount;//animCount start from 0, after "settings.animationSteps"-times executed, animCount reaches 1.
+ drawPieSegments(easingFunction(animCount));
+ if (animCount < 1){
+ requestAnimFrame(arguments.callee);
+ } else {
+ settings.afterDrawed.call($this);
+ }
+ }
+ function Max(arr){
+ return Math.max.apply(null, arr);
+ }
+ function Min(arr){
+ return Math.min.apply(null, arr);
+ }
+ return $this;
+ };
})(jQuery);
\ No newline at end of file
diff --git a/static/js/profile.js b/static/js/profile.js
old mode 100755
new mode 100644
index aca5d66..b7f2039
--- a/static/js/profile.js
+++ b/static/js/profile.js
@@ -1,15 +1,15 @@
-function load_diplome_cart(image, course, id, f_date){
- $('[name="diploma_image"]').attr('src', image).show();
- $('[name=diploma_loader]').hide();
- $('[name=diploma_id]').html(id);
- $('[name=diploma_f_date]').html(f_date);
- $('[name=diploma_course]').html(course);
- $('[name=diploma_link]').attr('href', image);
-}
-function change_private(type) {
- $.ajax({
- type: 'POST',
- url: '/access/change_private/',
- data: {'type': type}
- });
+function load_diplome_cart(image, course, id, f_date){
+ $('[name="diploma_image"]').attr('src', image).show();
+ $('[name=diploma_loader]').hide();
+ $('[name=diploma_id]').html(id);
+ $('[name=diploma_f_date]').html(f_date);
+ $('[name=diploma_course]').html(course);
+ $('[name=diploma_link]').attr('href', image);
+}
+function change_private(type) {
+ $.ajax({
+ type: 'POST',
+ url: '/access/change_private/',
+ data: {'type': type}
+ });
}
\ No newline at end of file
diff --git a/static/js/radarChart.js b/static/js/radarChart.js
old mode 100755
new mode 100644
index 8b35ede..57ddeb1
--- a/static/js/radarChart.js
+++ b/static/js/radarChart.js
@@ -1,272 +1,272 @@
-/////////////////////////////////////////////////////////
-/////////////// The Radar Chart Function ////////////////
-/////////////// Written by Nadieh Bremer ////////////////
-////////////////// VisualCinnamon.com ///////////////////
-/////////// Inspired by the code of alangrafu ///////////
-/////////////////////////////////////////////////////////
-
-function RadarChart(id, data, options) {
- var cfg = {
- w: 600, //Width of the circle
- h: 600, //Height of the circle
- margin: {top: 20, right: 20, bottom: 20, left: 20}, //The margins of the SVG
- levels: 3, //How many levels or inner circles should there be drawn
- maxValue: 0, //What is the value that the biggest circle will represent
- labelFactor: 1.25, //How much farther than the radius of the outer circle should the labels be placed
- wrapWidth: 60, //The number of pixels after which a label needs to be given a new line
- opacityArea: 0.35, //The opacity of the area of the blob
- dotRadius: 4, //The size of the colored circles of each blog
- opacityCircles: 0.1, //The opacity of the circles of each blob
- strokeWidth: 2, //The width of the stroke around each blob
- roundStrokes: false, //If true the area and stroke will follow a round path (cardinal-closed)
- color: d3.scale.category10() //Color function
- };
-
- //Put all of the options into a variable called cfg
- if('undefined' !== typeof options){
- for(var i in options){
- if('undefined' !== typeof options[i]){ cfg[i] = options[i]; }
- }//for i
- }//if
-
- //If the supplied maxValue is smaller than the actual one, replace by the max in the data
- var maxValue = Math.max(cfg.maxValue, d3.max(data, function(i){return d3.max(i.map(function(o){return o.value;}))}));
-
- var allAxis = (data[0].map(function(i, j){return i.axis})), //Names of each axis
- total = allAxis.length, //The number of different axes
- radius = Math.min(cfg.w/2, cfg.h/2), //Radius of the outermost circle
- Format = d3.format('%'), //Percentage formatting
- angleSlice = Math.PI * 2 / total; //The width in radians of each "slice"
-
- //Scale for the radius
- var rScale = d3.scale.linear()
- .range([0, radius])
- .domain([0, maxValue]);
-
- /////////////////////////////////////////////////////////
- //////////// Create the container SVG and g /////////////
- /////////////////////////////////////////////////////////
-
- //Remove whatever chart with the same id/class was present before
- d3.select(id).select("svg").remove();
-
- //Initiate the radar chart SVG
- var svg = d3.select(id).append("svg")
- .attr("width", cfg.w + cfg.margin.left + cfg.margin.right)
- .attr("height", cfg.h + cfg.margin.top + cfg.margin.bottom)
- .attr("class", "radar"+id);
- //Append a g element
- var g = svg.append("g")
- .attr("transform", "translate(" + (cfg.w/2 + cfg.margin.left) + "," + (cfg.h/2 + cfg.margin.top) + ")");
-
- /////////////////////////////////////////////////////////
- ////////// Glow filter for some extra pizzazz ///////////
- /////////////////////////////////////////////////////////
-
- //Filter for the outside glow
- var filter = g.append('defs').append('filter').attr('id','glow'),
- feGaussianBlur = filter.append('feGaussianBlur').attr('stdDeviation','2.5').attr('result','coloredBlur'),
- feMerge = filter.append('feMerge'),
- feMergeNode_1 = feMerge.append('feMergeNode').attr('in','coloredBlur'),
- feMergeNode_2 = feMerge.append('feMergeNode').attr('in','SourceGraphic');
-
- /////////////////////////////////////////////////////////
- /////////////// Draw the Circular grid //////////////////
- /////////////////////////////////////////////////////////
-
- //Wrapper for the grid & axes
- var axisGrid = g.append("g").attr("class", "axisWrapper");
-
- //Draw the background circles
- axisGrid.selectAll(".levels")
- .data(d3.range(1,(cfg.levels+1)).reverse())
- .enter()
- .append("circle")
- .attr("class", "gridCircle")
- .attr("r", function(d, i){return radius/cfg.levels*d;})
- .style("fill", "#CDCDCD")
- .style("stroke", "#CDCDCD")
- .style("fill-opacity", cfg.opacityCircles)
- .style("filter" , "url(#glow)");
-
- //Text indicating at what % each level is
- axisGrid.selectAll(".axisLabel")
- .data(d3.range(1,(cfg.levels+1)).reverse())
- .enter().append("text")
- .attr("class", "axisLabel")
- .attr("x", 4)
- .attr("y", function(d){return -d*radius/cfg.levels;})
- .attr("dy", "0.4em")
- .style("font-size", "10px")
- .attr("fill", "#737373")
- .text(function(d,i) { return Format(maxValue * d/cfg.levels); });
-
- /////////////////////////////////////////////////////////
- //////////////////// Draw the axes //////////////////////
- /////////////////////////////////////////////////////////
-
- //Create the straight lines radiating outward from the center
- var axis = axisGrid.selectAll(".axis")
- .data(allAxis)
- .enter()
- .append("g")
- .attr("class", "axis");
- //Append the lines
- axis.append("line")
- .attr("x1", 0)
- .attr("y1", 0)
- .attr("x2", function(d, i){ return rScale(maxValue*1.1) * Math.cos(angleSlice*i - Math.PI/2); })
- .attr("y2", function(d, i){ return rScale(maxValue*1.1) * Math.sin(angleSlice*i - Math.PI/2); })
- .attr("class", "line")
- .style("stroke", "white")
- .style("stroke-width", "2px");
-
- //Append the labels at each axis
- axis.append("text")
- .attr("class", "legend")
- .style("font-size", "11px")
- .attr("text-anchor", "middle")
- .attr("dy", "0.35em")
- .attr("x", function(d, i){ return rScale(maxValue * cfg.labelFactor) * Math.cos(angleSlice*i - Math.PI/2); })
- .attr("y", function(d, i){ return rScale(maxValue * cfg.labelFactor) * Math.sin(angleSlice*i - Math.PI/2); })
- .text(function(d){return d})
- .call(wrap, cfg.wrapWidth);
-
- /////////////////////////////////////////////////////////
- ///////////// Draw the radar chart blobs ////////////////
- /////////////////////////////////////////////////////////
-
- //The radial line function
- var radarLine = d3.svg.line.radial()
- .interpolate("linear-closed")
- .radius(function(d) { return rScale(d.value); })
- .angle(function(d,i) { return i*angleSlice; });
-
- if(cfg.roundStrokes) {
- radarLine.interpolate("cardinal-closed");
- }
-
- //Create a wrapper for the blobs
- var blobWrapper = g.selectAll(".radarWrapper")
- .data(data)
- .enter().append("g")
- .attr("class", "radarWrapper");
-
- //Append the backgrounds
- blobWrapper
- .append("path")
- .attr("class", "radarArea")
- .attr("d", function(d,i) { return radarLine(d); })
- .style("fill", function(d,i) { return cfg.color(i); })
- .style("fill-opacity", cfg.opacityArea)
- .on('mouseover', function (d,i){
- //Dim all blobs
- d3.selectAll(".radarArea")
- .transition().duration(200)
- .style("fill-opacity", 0.1);
- //Bring back the hovered over blob
- d3.select(this)
- .transition().duration(200)
- .style("fill-opacity", 0.7);
- })
- .on('mouseout', function(){
- //Bring back all blobs
- d3.selectAll(".radarArea")
- .transition().duration(200)
- .style("fill-opacity", cfg.opacityArea);
- });
-
- //Create the outlines
- blobWrapper.append("path")
- .attr("class", "radarStroke")
- .attr("d", function(d,i) { return radarLine(d); })
- .style("stroke-width", cfg.strokeWidth + "px")
- .style("stroke", function(d,i) { return cfg.color(i); })
- .style("fill", "none")
- .style("filter" , "url(#glow)");
-
- //Append the circles
- blobWrapper.selectAll(".radarCircle")
- .data(function(d,i) { return d; })
- .enter().append("circle")
- .attr("class", "radarCircle")
- .attr("r", cfg.dotRadius)
- .attr("cx", function(d,i){ return rScale(d.value) * Math.cos(angleSlice*i - Math.PI/2); })
- .attr("cy", function(d,i){ return rScale(d.value) * Math.sin(angleSlice*i - Math.PI/2); })
- .style("fill", function(d,i,j) { return cfg.color(j); })
- .style("fill-opacity", 0.8);
-
- /////////////////////////////////////////////////////////
- //////// Append invisible circles for tooltip ///////////
- /////////////////////////////////////////////////////////
-
- //Wrapper for the invisible circles on top
- var blobCircleWrapper = g.selectAll(".radarCircleWrapper")
- .data(data)
- .enter().append("g")
- .attr("class", "radarCircleWrapper");
-
- //Append a set of invisible circles on top for the mouseover pop-up
- blobCircleWrapper.selectAll(".radarInvisibleCircle")
- .data(function(d,i) { return d; })
- .enter().append("circle")
- .attr("class", "radarInvisibleCircle")
- .attr("r", cfg.dotRadius*1.5)
- .attr("cx", function(d,i){ return rScale(d.value) * Math.cos(angleSlice*i - Math.PI/2); })
- .attr("cy", function(d,i){ return rScale(d.value) * Math.sin(angleSlice*i - Math.PI/2); })
- .style("fill", "none")
- .style("pointer-events", "all")
- .on("mouseover", function(d,i) {
- newX = parseFloat(d3.select(this).attr('cx')) - 10;
- newY = parseFloat(d3.select(this).attr('cy')) - 10;
-
- tooltip
- .attr('x', newX)
- .attr('y', newY)
- .text(Format(d.value))
- .transition().duration(200)
- .style('opacity', 1);
- })
- .on("mouseout", function(){
- tooltip.transition().duration(200)
- .style("opacity", 0);
- });
-
- //Set up the small tooltip for when you hover over a circle
- var tooltip = g.append("text")
- .attr("class", "tooltip")
- .style("opacity", 0);
-
- /////////////////////////////////////////////////////////
- /////////////////// Helper Function /////////////////////
- /////////////////////////////////////////////////////////
-
- //Taken from http://bl.ocks.org/mbostock/7555321
- //Wraps SVG text
- function wrap(text, width) {
- text.each(function() {
- var text = d3.select(this),
- words = text.text().split(/\s+/).reverse(),
- word,
- line = [],
- lineNumber = 0,
- lineHeight = 1.4, // ems
- y = text.attr("y"),
- x = text.attr("x"),
- dy = parseFloat(text.attr("dy")),
- tspan = text.text(null).append("tspan").attr("x", x).attr("y", y).attr("dy", dy + "em");
-
- while (word = words.pop()) {
- line.push(word);
- tspan.text(line.join(" "));
- if (tspan.node().getComputedTextLength() > width) {
- line.pop();
- tspan.text(line.join(" "));
- line = [word];
- tspan = text.append("tspan").attr("x", x).attr("y", y).attr("dy", ++lineNumber * lineHeight + dy + "em").text(word);
- }
- }
- });
- }//wrap
-
+/////////////////////////////////////////////////////////
+/////////////// The Radar Chart Function ////////////////
+/////////////// Written by Nadieh Bremer ////////////////
+////////////////// VisualCinnamon.com ///////////////////
+/////////// Inspired by the code of alangrafu ///////////
+/////////////////////////////////////////////////////////
+
+function RadarChart(id, data, options) {
+ var cfg = {
+ w: 600, //Width of the circle
+ h: 600, //Height of the circle
+ margin: {top: 20, right: 20, bottom: 20, left: 20}, //The margins of the SVG
+ levels: 3, //How many levels or inner circles should there be drawn
+ maxValue: 0, //What is the value that the biggest circle will represent
+ labelFactor: 1.25, //How much farther than the radius of the outer circle should the labels be placed
+ wrapWidth: 60, //The number of pixels after which a label needs to be given a new line
+ opacityArea: 0.35, //The opacity of the area of the blob
+ dotRadius: 4, //The size of the colored circles of each blog
+ opacityCircles: 0.1, //The opacity of the circles of each blob
+ strokeWidth: 2, //The width of the stroke around each blob
+ roundStrokes: false, //If true the area and stroke will follow a round path (cardinal-closed)
+ color: d3.scale.category10() //Color function
+ };
+
+ //Put all of the options into a variable called cfg
+ if('undefined' !== typeof options){
+ for(var i in options){
+ if('undefined' !== typeof options[i]){ cfg[i] = options[i]; }
+ }//for i
+ }//if
+
+ //If the supplied maxValue is smaller than the actual one, replace by the max in the data
+ var maxValue = Math.max(cfg.maxValue, d3.max(data, function(i){return d3.max(i.map(function(o){return o.value;}))}));
+
+ var allAxis = (data[0].map(function(i, j){return i.axis})), //Names of each axis
+ total = allAxis.length, //The number of different axes
+ radius = Math.min(cfg.w/2, cfg.h/2), //Radius of the outermost circle
+ Format = d3.format('%'), //Percentage formatting
+ angleSlice = Math.PI * 2 / total; //The width in radians of each "slice"
+
+ //Scale for the radius
+ var rScale = d3.scale.linear()
+ .range([0, radius])
+ .domain([0, maxValue]);
+
+ /////////////////////////////////////////////////////////
+ //////////// Create the container SVG and g /////////////
+ /////////////////////////////////////////////////////////
+
+ //Remove whatever chart with the same id/class was present before
+ d3.select(id).select("svg").remove();
+
+ //Initiate the radar chart SVG
+ var svg = d3.select(id).append("svg")
+ .attr("width", cfg.w + cfg.margin.left + cfg.margin.right)
+ .attr("height", cfg.h + cfg.margin.top + cfg.margin.bottom)
+ .attr("class", "radar"+id);
+ //Append a g element
+ var g = svg.append("g")
+ .attr("transform", "translate(" + (cfg.w/2 + cfg.margin.left) + "," + (cfg.h/2 + cfg.margin.top) + ")");
+
+ /////////////////////////////////////////////////////////
+ ////////// Glow filter for some extra pizzazz ///////////
+ /////////////////////////////////////////////////////////
+
+ //Filter for the outside glow
+ var filter = g.append('defs').append('filter').attr('id','glow'),
+ feGaussianBlur = filter.append('feGaussianBlur').attr('stdDeviation','2.5').attr('result','coloredBlur'),
+ feMerge = filter.append('feMerge'),
+ feMergeNode_1 = feMerge.append('feMergeNode').attr('in','coloredBlur'),
+ feMergeNode_2 = feMerge.append('feMergeNode').attr('in','SourceGraphic');
+
+ /////////////////////////////////////////////////////////
+ /////////////// Draw the Circular grid //////////////////
+ /////////////////////////////////////////////////////////
+
+ //Wrapper for the grid & axes
+ var axisGrid = g.append("g").attr("class", "axisWrapper");
+
+ //Draw the background circles
+ axisGrid.selectAll(".levels")
+ .data(d3.range(1,(cfg.levels+1)).reverse())
+ .enter()
+ .append("circle")
+ .attr("class", "gridCircle")
+ .attr("r", function(d, i){return radius/cfg.levels*d;})
+ .style("fill", "#CDCDCD")
+ .style("stroke", "#CDCDCD")
+ .style("fill-opacity", cfg.opacityCircles)
+ .style("filter" , "url(#glow)");
+
+ //Text indicating at what % each level is
+ axisGrid.selectAll(".axisLabel")
+ .data(d3.range(1,(cfg.levels+1)).reverse())
+ .enter().append("text")
+ .attr("class", "axisLabel")
+ .attr("x", 4)
+ .attr("y", function(d){return -d*radius/cfg.levels;})
+ .attr("dy", "0.4em")
+ .style("font-size", "10px")
+ .attr("fill", "#737373")
+ .text(function(d,i) { return Format(maxValue * d/cfg.levels); });
+
+ /////////////////////////////////////////////////////////
+ //////////////////// Draw the axes //////////////////////
+ /////////////////////////////////////////////////////////
+
+ //Create the straight lines radiating outward from the center
+ var axis = axisGrid.selectAll(".axis")
+ .data(allAxis)
+ .enter()
+ .append("g")
+ .attr("class", "axis");
+ //Append the lines
+ axis.append("line")
+ .attr("x1", 0)
+ .attr("y1", 0)
+ .attr("x2", function(d, i){ return rScale(maxValue*1.1) * Math.cos(angleSlice*i - Math.PI/2); })
+ .attr("y2", function(d, i){ return rScale(maxValue*1.1) * Math.sin(angleSlice*i - Math.PI/2); })
+ .attr("class", "line")
+ .style("stroke", "white")
+ .style("stroke-width", "2px");
+
+ //Append the labels at each axis
+ axis.append("text")
+ .attr("class", "legend")
+ .style("font-size", "11px")
+ .attr("text-anchor", "middle")
+ .attr("dy", "0.35em")
+ .attr("x", function(d, i){ return rScale(maxValue * cfg.labelFactor) * Math.cos(angleSlice*i - Math.PI/2); })
+ .attr("y", function(d, i){ return rScale(maxValue * cfg.labelFactor) * Math.sin(angleSlice*i - Math.PI/2); })
+ .text(function(d){return d})
+ .call(wrap, cfg.wrapWidth);
+
+ /////////////////////////////////////////////////////////
+ ///////////// Draw the radar chart blobs ////////////////
+ /////////////////////////////////////////////////////////
+
+ //The radial line function
+ var radarLine = d3.svg.line.radial()
+ .interpolate("linear-closed")
+ .radius(function(d) { return rScale(d.value); })
+ .angle(function(d,i) { return i*angleSlice; });
+
+ if(cfg.roundStrokes) {
+ radarLine.interpolate("cardinal-closed");
+ }
+
+ //Create a wrapper for the blobs
+ var blobWrapper = g.selectAll(".radarWrapper")
+ .data(data)
+ .enter().append("g")
+ .attr("class", "radarWrapper");
+
+ //Append the backgrounds
+ blobWrapper
+ .append("path")
+ .attr("class", "radarArea")
+ .attr("d", function(d,i) { return radarLine(d); })
+ .style("fill", function(d,i) { return cfg.color(i); })
+ .style("fill-opacity", cfg.opacityArea)
+ .on('mouseover', function (d,i){
+ //Dim all blobs
+ d3.selectAll(".radarArea")
+ .transition().duration(200)
+ .style("fill-opacity", 0.1);
+ //Bring back the hovered over blob
+ d3.select(this)
+ .transition().duration(200)
+ .style("fill-opacity", 0.7);
+ })
+ .on('mouseout', function(){
+ //Bring back all blobs
+ d3.selectAll(".radarArea")
+ .transition().duration(200)
+ .style("fill-opacity", cfg.opacityArea);
+ });
+
+ //Create the outlines
+ blobWrapper.append("path")
+ .attr("class", "radarStroke")
+ .attr("d", function(d,i) { return radarLine(d); })
+ .style("stroke-width", cfg.strokeWidth + "px")
+ .style("stroke", function(d,i) { return cfg.color(i); })
+ .style("fill", "none")
+ .style("filter" , "url(#glow)");
+
+ //Append the circles
+ blobWrapper.selectAll(".radarCircle")
+ .data(function(d,i) { return d; })
+ .enter().append("circle")
+ .attr("class", "radarCircle")
+ .attr("r", cfg.dotRadius)
+ .attr("cx", function(d,i){ return rScale(d.value) * Math.cos(angleSlice*i - Math.PI/2); })
+ .attr("cy", function(d,i){ return rScale(d.value) * Math.sin(angleSlice*i - Math.PI/2); })
+ .style("fill", function(d,i,j) { return cfg.color(j); })
+ .style("fill-opacity", 0.8);
+
+ /////////////////////////////////////////////////////////
+ //////// Append invisible circles for tooltip ///////////
+ /////////////////////////////////////////////////////////
+
+ //Wrapper for the invisible circles on top
+ var blobCircleWrapper = g.selectAll(".radarCircleWrapper")
+ .data(data)
+ .enter().append("g")
+ .attr("class", "radarCircleWrapper");
+
+ //Append a set of invisible circles on top for the mouseover pop-up
+ blobCircleWrapper.selectAll(".radarInvisibleCircle")
+ .data(function(d,i) { return d; })
+ .enter().append("circle")
+ .attr("class", "radarInvisibleCircle")
+ .attr("r", cfg.dotRadius*1.5)
+ .attr("cx", function(d,i){ return rScale(d.value) * Math.cos(angleSlice*i - Math.PI/2); })
+ .attr("cy", function(d,i){ return rScale(d.value) * Math.sin(angleSlice*i - Math.PI/2); })
+ .style("fill", "none")
+ .style("pointer-events", "all")
+ .on("mouseover", function(d,i) {
+ newX = parseFloat(d3.select(this).attr('cx')) - 10;
+ newY = parseFloat(d3.select(this).attr('cy')) - 10;
+
+ tooltip
+ .attr('x', newX)
+ .attr('y', newY)
+ .text(Format(d.value))
+ .transition().duration(200)
+ .style('opacity', 1);
+ })
+ .on("mouseout", function(){
+ tooltip.transition().duration(200)
+ .style("opacity", 0);
+ });
+
+ //Set up the small tooltip for when you hover over a circle
+ var tooltip = g.append("text")
+ .attr("class", "tooltip")
+ .style("opacity", 0);
+
+ /////////////////////////////////////////////////////////
+ /////////////////// Helper Function /////////////////////
+ /////////////////////////////////////////////////////////
+
+ //Taken from http://bl.ocks.org/mbostock/7555321
+ //Wraps SVG text
+ function wrap(text, width) {
+ text.each(function() {
+ var text = d3.select(this),
+ words = text.text().split(/\s+/).reverse(),
+ word,
+ line = [],
+ lineNumber = 0,
+ lineHeight = 1.4, // ems
+ y = text.attr("y"),
+ x = text.attr("x"),
+ dy = parseFloat(text.attr("dy")),
+ tspan = text.text(null).append("tspan").attr("x", x).attr("y", y).attr("dy", dy + "em");
+
+ while (word = words.pop()) {
+ line.push(word);
+ tspan.text(line.join(" "));
+ if (tspan.node().getComputedTextLength() > width) {
+ line.pop();
+ tspan.text(line.join(" "));
+ line = [word];
+ tspan = text.append("tspan").attr("x", x).attr("y", y).attr("dy", ++lineNumber * lineHeight + dy + "em").text(word);
+ }
+ }
+ });
+ }//wrap
+
}//RadarChart
\ No newline at end of file
diff --git a/static/js/regex_check.js b/static/js/regex_check.js
old mode 100755
new mode 100644
index 2373cc0..92a152b
--- a/static/js/regex_check.js
+++ b/static/js/regex_check.js
@@ -1,49 +1,49 @@
-function not_empty(data){
- var result = false;
- if (data.length > 0){
- result = true
- }
- return result;
-}
-
-function only_rus(data){
- var re = /^[А-Яа-я]+$/;
- return re.test(data) && not_empty(data);
-}
-
-function only_eng(data){
- var re = /^[A-Za-z]+$/;
- return re.test(data);
-}
-
-function only_numbers(data){
- var re = /^[0-9]+$/;
- return re.test(data);
-}
-
-function rus_and_numbers(data){
- var re = /^[А-Яа-я0-9]+$/;
- return re.test(data);
-}
-
-function eng_and_numbers(data){
- var re = /^[A-Za-z0-9]+$/;
- return re.test(data);
-}
-
-function check_email(data){
- var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
- return re.test(data);
-}
-
-function check_phone(data){
- var re = /^((9|4)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{10}$/;
- return re.test(data);
-}
-function check_password(data){
- if (data.length>=6){
- return true;
- } else {
- return false;
- }
-}
+function not_empty(data){
+ var result = false;
+ if (data.length > 0){
+ result = true
+ }
+ return result;
+}
+
+function only_rus(data){
+ var re = /^[А-Яа-я]+$/;
+ return re.test(data) && not_empty(data);
+}
+
+function only_eng(data){
+ var re = /^[A-Za-z]+$/;
+ return re.test(data);
+}
+
+function only_numbers(data){
+ var re = /^[0-9]+$/;
+ return re.test(data);
+}
+
+function rus_and_numbers(data){
+ var re = /^[А-Яа-я0-9]+$/;
+ return re.test(data);
+}
+
+function eng_and_numbers(data){
+ var re = /^[A-Za-z0-9]+$/;
+ return re.test(data);
+}
+
+function check_email(data){
+ var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
+ return re.test(data);
+}
+
+function check_phone(data){
+ var re = /^((9|4)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{10}$/;
+ return re.test(data);
+}
+function check_password(data){
+ if (data.length>=6){
+ return true;
+ } else {
+ return false;
+ }
+}
diff --git a/static/js/reports.js b/static/js/reports.js
old mode 100755
new mode 100644
index bd19ab5..126d039
--- a/static/js/reports.js
+++ b/static/js/reports.js
@@ -1,159 +1,159 @@
- var margin = {top: 100, right: 100, bottom: 100, left: 100},
- width = Math.min(700, window.innerWidth - 10) - margin.left - margin.right,
- height = Math.min(width, window.innerHeight - margin.top - margin.bottom - 20);
-
-$('[name=hw_report]').on('change', function() {
- if ($(this).val() == '0'){
- $('[name=hw_chart]').fadeOut('slow');
- $('[name=hw_preloader]').fadeOut('fast');
- } else {
- $('[name=hw_preloader]').fadeIn('fast');
- draw_graph('hw_chart', get_hw_data($(this).val()))
- }
- console.log(get_hw_data($(this).val()))
-});
-
-$('[name=les_report]').on('change', function() {
- if ($(this).val() == '0'){
- $('[name=les_chart]').fadeOut('slow');
- $('[name=les_preloader]').fadeOut('fast');
- } else {
- $('[name=les_preloader]').fadeIn('fast');
- draw_graph('les_chart', get_les_data($(this).val()))
- }
-});
-
-$('[name=progress_report]').on('change', function() {
- if ($(this).val() == '0'){
- $('[name=progress_chart]').fadeOut('slow')
- $('[name=progress_preloader]').fadeOut('fast');
- } else {
- $('[name=progress_preloader]').fadeIn('fast');
- draw_graph('progress_chart', get_progress_data($(this).val()))
- }
-
-});
-
-function get_hw_data(course) {
- $.ajax({
- type: 'GET',
- url: '/management/reports/get_hw_report/',
- data: {'course': course},
- async: false,
- success: function(data){
- if(data['code'] == '1'){
- console.log(data['data'])
- return data['data'][1]
-
- }
- }
- });
-}
-
-function get_les_data(course) {
- $.ajax({
- type: 'GET',
- url: '/management/reports/get_les_report/',
- data: {'course': course},
- async: false,
- success: function(data){
- if(data['code'] == '1'){
- return new Array(data['data'])
- }
- }
- });
-}
-
-
-function get_progress_data(course) {
- $.ajax({
- type: 'GET',
- url: '/management/reports/get_progress_report/',
- data: {'course': course},
- async: false,
- success: function(data){
- if(data['code'] == '1'){
- return new Array(data['data'])
- }
- }
- });
-}
-
-
-function draw_graph(chart, data) {
- $('[name='+chart+']').fadeIn('fast');
-
- var HWChartOptions = {
- w: width,
- h: height,
- margin: margin,
- maxValue: 0.5,
- levels: 5,
- roundStrokes: true,
- color: d3.scale.ordinal().range(["#EDC951","#CC333F","#66CC99"])
- };
-
- var LESChartOptions = {
- w: width,
- h: height,
- margin: margin,
- maxValue: 0.5,
- levels: 5,
- roundStrokes: true,
- color: d3.scale.ordinal().range(["#EDC951","#CC333F","#66CC99"])
- };
-
- var PROGRESSChartOptions = {
- w: width,
- h: height,
- margin: margin,
- maxValue: 0.5,
- levels: 5,
- roundStrokes: true,
- color: d3.scale.ordinal().range(["#EDC951","#CC333F","#66CC99"])
- };
-
- if (chart == 'progress_chart'){
- RadarChart("[name="+chart+"]", data, PROGRESSChartOptions);
- $('[name=progress_preloader]').fadeOut('fast')
- } else if (chart == 'hw_chart') {
- RadarChart("[name="+chart+"]", data, HWChartOptions);
- $('[name=hw_preloader]').fadeOut('fast')
- } else if (chart == 'les_chart') {
- RadarChart("[name="+chart+"]", data, LESChartOptions);
- $('[name=les_preloader]').fadeOut('fast')
- }
-
-
-}
-
- var data = [
- [//iPhone
- {axis:"Battery Life",value:0.22},
- {axis:"Brand",value:0.28},
- {axis:"Contract Cost",value:0.29},
- {axis:"Design And Quality",value:0.17},
- {axis:"Have Internet Connectivity",value:0.22},
- {axis:"Large Screen",value:0.02},
- {axis:"Price Of Device",value:0.21},
- {axis:"To Be A Smartphone",value:0.50}
- ],[//Samsung
- {axis:"Battery Life",value:0.27},
- {axis:"Brand",value:0.16},
- {axis:"Contract Cost",value:0.35},
- {axis:"Design And Quality",value:0.13},
- {axis:"Have Internet Connectivity",value:0.20},
- {axis:"Large Screen",value:0.13},
- {axis:"Price Of Device",value:0.35},
- {axis:"To Be A Smartphone",value:0.38}
- ],[//Nokia Smartphone
- {axis:"Battery Life",value:0.26},
- {axis:"Brand",value:0.10},
- {axis:"Contract Cost",value:0.30},
- {axis:"Design And Quality",value:0.14},
- {axis:"Have Internet Connectivity",value:0.22},
- {axis:"Large Screen",value:0.04},
- {axis:"Price Of Device",value:0.41},
- {axis:"To Be A Smartphone",value:0.30}
- ]
+ var margin = {top: 100, right: 100, bottom: 100, left: 100},
+ width = Math.min(700, window.innerWidth - 10) - margin.left - margin.right,
+ height = Math.min(width, window.innerHeight - margin.top - margin.bottom - 20);
+
+$('[name=hw_report]').on('change', function() {
+ if ($(this).val() == '0'){
+ $('[name=hw_chart]').fadeOut('slow');
+ $('[name=hw_preloader]').fadeOut('fast');
+ } else {
+ $('[name=hw_preloader]').fadeIn('fast');
+ draw_graph('hw_chart', get_hw_data($(this).val()))
+ }
+ console.log(get_hw_data($(this).val()))
+});
+
+$('[name=les_report]').on('change', function() {
+ if ($(this).val() == '0'){
+ $('[name=les_chart]').fadeOut('slow');
+ $('[name=les_preloader]').fadeOut('fast');
+ } else {
+ $('[name=les_preloader]').fadeIn('fast');
+ draw_graph('les_chart', get_les_data($(this).val()))
+ }
+});
+
+$('[name=progress_report]').on('change', function() {
+ if ($(this).val() == '0'){
+ $('[name=progress_chart]').fadeOut('slow')
+ $('[name=progress_preloader]').fadeOut('fast');
+ } else {
+ $('[name=progress_preloader]').fadeIn('fast');
+ draw_graph('progress_chart', get_progress_data($(this).val()))
+ }
+
+});
+
+function get_hw_data(course) {
+ $.ajax({
+ type: 'GET',
+ url: '/management/reports/get_hw_report/',
+ data: {'course': course},
+ async: false,
+ success: function(data){
+ if(data['code'] == '1'){
+ console.log(data['data'])
+ return data['data'][1]
+
+ }
+ }
+ });
+}
+
+function get_les_data(course) {
+ $.ajax({
+ type: 'GET',
+ url: '/management/reports/get_les_report/',
+ data: {'course': course},
+ async: false,
+ success: function(data){
+ if(data['code'] == '1'){
+ return new Array(data['data'])
+ }
+ }
+ });
+}
+
+
+function get_progress_data(course) {
+ $.ajax({
+ type: 'GET',
+ url: '/management/reports/get_progress_report/',
+ data: {'course': course},
+ async: false,
+ success: function(data){
+ if(data['code'] == '1'){
+ return new Array(data['data'])
+ }
+ }
+ });
+}
+
+
+function draw_graph(chart, data) {
+ $('[name='+chart+']').fadeIn('fast');
+
+ var HWChartOptions = {
+ w: width,
+ h: height,
+ margin: margin,
+ maxValue: 0.5,
+ levels: 5,
+ roundStrokes: true,
+ color: d3.scale.ordinal().range(["#EDC951","#CC333F","#66CC99"])
+ };
+
+ var LESChartOptions = {
+ w: width,
+ h: height,
+ margin: margin,
+ maxValue: 0.5,
+ levels: 5,
+ roundStrokes: true,
+ color: d3.scale.ordinal().range(["#EDC951","#CC333F","#66CC99"])
+ };
+
+ var PROGRESSChartOptions = {
+ w: width,
+ h: height,
+ margin: margin,
+ maxValue: 0.5,
+ levels: 5,
+ roundStrokes: true,
+ color: d3.scale.ordinal().range(["#EDC951","#CC333F","#66CC99"])
+ };
+
+ if (chart == 'progress_chart'){
+ RadarChart("[name="+chart+"]", data, PROGRESSChartOptions);
+ $('[name=progress_preloader]').fadeOut('fast')
+ } else if (chart == 'hw_chart') {
+ RadarChart("[name="+chart+"]", data, HWChartOptions);
+ $('[name=hw_preloader]').fadeOut('fast')
+ } else if (chart == 'les_chart') {
+ RadarChart("[name="+chart+"]", data, LESChartOptions);
+ $('[name=les_preloader]').fadeOut('fast')
+ }
+
+
+}
+
+ var data = [
+ [//iPhone
+ {axis:"Battery Life",value:0.22},
+ {axis:"Brand",value:0.28},
+ {axis:"Contract Cost",value:0.29},
+ {axis:"Design And Quality",value:0.17},
+ {axis:"Have Internet Connectivity",value:0.22},
+ {axis:"Large Screen",value:0.02},
+ {axis:"Price Of Device",value:0.21},
+ {axis:"To Be A Smartphone",value:0.50}
+ ],[//Samsung
+ {axis:"Battery Life",value:0.27},
+ {axis:"Brand",value:0.16},
+ {axis:"Contract Cost",value:0.35},
+ {axis:"Design And Quality",value:0.13},
+ {axis:"Have Internet Connectivity",value:0.20},
+ {axis:"Large Screen",value:0.13},
+ {axis:"Price Of Device",value:0.35},
+ {axis:"To Be A Smartphone",value:0.38}
+ ],[//Nokia Smartphone
+ {axis:"Battery Life",value:0.26},
+ {axis:"Brand",value:0.10},
+ {axis:"Contract Cost",value:0.30},
+ {axis:"Design And Quality",value:0.14},
+ {axis:"Have Internet Connectivity",value:0.22},
+ {axis:"Large Screen",value:0.04},
+ {axis:"Price Of Device",value:0.41},
+ {axis:"To Be A Smartphone",value:0.30}
+ ]
];
\ No newline at end of file
diff --git a/static/js/reports/process.js b/static/js/reports/process.js
old mode 100755
new mode 100644
index e2f28dc..bb04b75
--- a/static/js/reports/process.js
+++ b/static/js/reports/process.js
@@ -1,151 +1,151 @@
-window.load = false;
-window.data = {
- 'course': '',
- 'teacher': '',
- 's_date': '',
- 'f_date': '',
- 'success': false,
- 'expired': false,
- 'in_work': false
-};
-window.success = false;
-window.load = false;
-function set_global(point, data) {
- window.data[point]=data;
- if (!window.success){
- if (window.data['course'] && window.data['teacher'] && window.data['s_date'] && window.data['f_date']){
- $('[name=report_go_button]').attr('class', 'btn btn-green');
- window.success = true;
- }
- } else {
- if (!(window.data['course'] && window.data['teacher'] && window.data['s_date'] && window.data['f_date'])){
- $('[name=report_go_button]').attr('class', 'btn btn-green disabled');
- window.success = false;
- }
- }
-}
-function get_teachers(block) {
- var home = $(block);
- $.ajax({
- type: 'GET',
- url: '/management/reports_api/get_course_teachers/',
- async: true,
- data: {'course': home.attr('course_id')},
- beforeSend: function (data) {
- $('[name=course_choice]').css('border', '0');
- home.css('border-bottom', '3px solid #ff1');
- home.css('border-top', '3px solid #ff1');
- },
- success: function(data){
- if (data['code'] == '1'){
- draw_teachers(data['data']);
- } else {
- console.log(data['response'])
- }
- set_global('course', home.attr('course_id'));
- set_global('teacher', '')
- $('[name=teach_ava_block]').fadeOut('fast');
- }
- });
-}
-
-function draw_teachers(data) {
- var home = $('[name="teacher_list"]');
- home.html('');
- for (var i in data){
- home.append('
' +
- ''+data[i]['short_name']+' ' +
- ' ')
- }
- $('[name=teacher_list_loader]').hide('fast');
- $('[name=teacher_list]').show('slow');
-}
-function get_students(block) {
- var home = $(block);
- $('[name=teacher_choice]').css('border', '0');
- home.css('border', '5px solid #ff1');
- set_global('teacher', home.attr('teacher_id'))
-}
-
-function load_process_report() {
- $('[name=error_block]').html('').fadeOut('slow');
- if (window.load){
- $('[name=error_block]').html('Данные по пред идущему запросу еще загружаются').fadeIn('slow');
- } else {
- if (window.success){
- console.log('Хоп');
- get_data();
- $('[name=global_preloader]').fadeIn('slow');
- } else {
- $('[name=error_block]').html('Заполните все необходимые поля').fadeIn('slow');
- }
- }
-}
-
-function get_data() {
- $('[name=result_table]').html('').fadeOut('fast');
- $.ajax({
- type: 'GET',
- url: '/management/reports_api/get_process_report/',
- async: true,
- data: window.data,
- beforeSend: function (data) {
- $('[name="result_students"]').html(' - ');
- $('[name="result_get_hw"]').html(' - ');
- $('[name="result_in_work_hw"]').html(' - ');
- $('[name="result_expired_hw"]').html(' - ');
- $('[name="result_success_hw"]').html(' - ');
- window.load = true;
- },
- success: function(data){
- if (data['code'] == '1'){
- draw_data(data['data']);
- } else {
- console.log(data['response'])
- }
- window.load = false;
- }
- });
-}
-
-function draw_data(data) {
-
- $('[name=global_preloader]').fadeOut('slow');
- $('[name="result_students"]').html(data['info']['students']);
- $('[name="result_get_hw"]').html(data['info']['get_hw']);
- $('[name="result_in_work_hw"]').html(data['info']['in_work_hw']);
- $('[name="result_expired_hw"]').html(data['info']['expired_hw']);
- $('[name="result_success_hw"]').html(data['info']['success_hw']);
- var n = 0;
- for (var i in data['more']){
- var exp = '';
- if (data['more'][i]['expired']) {
- exp = '
/'+data['more'][i]['expired_time'] + ' часа(-ов)'
- } else {
- exp = '
'
- }
- $('[name=result_table]').append('
' +
- ''+data['more'][i]['id']+' ' +
- ''+data['more'][i]['material']+' ' +
- ''+data['more'][i]['student']+' ' +
- ''+data['more'][i]['s_date']+' ' +
- ''+data['more'][i]['f_date']+' ' +
- ''+data['more'][i]['status']+' ' +
- ''+data['more'][i]['tries']+' ' +
- ''+ exp +' ' +
- 'Перейти ' +
- ' ');
- n += 1;
- }
- $('[name=table_row_count]').html(n);
- $('[name=result_table]').fadeIn('fast');
-}
- $( document.body ).on( "change", "[name=f_date]", function( event ) {
- set_global('f_date', $('[name=f_date]').val().split('.').join('_'));
- console.log('1')
- });
-
- $( document.body ).on( "change", "[name=s_date]", function( event ) {
- set_global('s_date', $('[name=s_date]').val().split('.').join('_'));
- console.log('2')
+window.load = false;
+window.data = {
+ 'course': '',
+ 'teacher': '',
+ 's_date': '',
+ 'f_date': '',
+ 'success': false,
+ 'expired': false,
+ 'in_work': false
+};
+window.success = false;
+window.load = false;
+function set_global(point, data) {
+ window.data[point]=data;
+ if (!window.success){
+ if (window.data['course'] && window.data['teacher'] && window.data['s_date'] && window.data['f_date']){
+ $('[name=report_go_button]').attr('class', 'btn btn-green');
+ window.success = true;
+ }
+ } else {
+ if (!(window.data['course'] && window.data['teacher'] && window.data['s_date'] && window.data['f_date'])){
+ $('[name=report_go_button]').attr('class', 'btn btn-green disabled');
+ window.success = false;
+ }
+ }
+}
+function get_teachers(block) {
+ var home = $(block);
+ $.ajax({
+ type: 'GET',
+ url: '/management/reports_api/get_course_teachers/',
+ async: true,
+ data: {'course': home.attr('course_id')},
+ beforeSend: function (data) {
+ $('[name=course_choice]').css('border', '0');
+ home.css('border-bottom', '3px solid #ff1');
+ home.css('border-top', '3px solid #ff1');
+ },
+ success: function(data){
+ if (data['code'] == '1'){
+ draw_teachers(data['data']);
+ } else {
+ console.log(data['response'])
+ }
+ set_global('course', home.attr('course_id'));
+ set_global('teacher', '')
+ $('[name=teach_ava_block]').fadeOut('fast');
+ }
+ });
+}
+
+function draw_teachers(data) {
+ var home = $('[name="teacher_list"]');
+ home.html('');
+ for (var i in data){
+ home.append('
' +
+ ''+data[i]['short_name']+' ' +
+ ' ')
+ }
+ $('[name=teacher_list_loader]').hide('fast');
+ $('[name=teacher_list]').show('slow');
+}
+function get_students(block) {
+ var home = $(block);
+ $('[name=teacher_choice]').css('border', '0');
+ home.css('border', '5px solid #ff1');
+ set_global('teacher', home.attr('teacher_id'))
+}
+
+function load_process_report() {
+ $('[name=error_block]').html('').fadeOut('slow');
+ if (window.load){
+ $('[name=error_block]').html('Данные по пред идущему запросу еще загружаются').fadeIn('slow');
+ } else {
+ if (window.success){
+ console.log('Хоп');
+ get_data();
+ $('[name=global_preloader]').fadeIn('slow');
+ } else {
+ $('[name=error_block]').html('Заполните все необходимые поля').fadeIn('slow');
+ }
+ }
+}
+
+function get_data() {
+ $('[name=result_table]').html('').fadeOut('fast');
+ $.ajax({
+ type: 'GET',
+ url: '/management/reports_api/get_process_report/',
+ async: true,
+ data: window.data,
+ beforeSend: function (data) {
+ $('[name="result_students"]').html(' - ');
+ $('[name="result_get_hw"]').html(' - ');
+ $('[name="result_in_work_hw"]').html(' - ');
+ $('[name="result_expired_hw"]').html(' - ');
+ $('[name="result_success_hw"]').html(' - ');
+ window.load = true;
+ },
+ success: function(data){
+ if (data['code'] == '1'){
+ draw_data(data['data']);
+ } else {
+ console.log(data['response'])
+ }
+ window.load = false;
+ }
+ });
+}
+
+function draw_data(data) {
+
+ $('[name=global_preloader]').fadeOut('slow');
+ $('[name="result_students"]').html(data['info']['students']);
+ $('[name="result_get_hw"]').html(data['info']['get_hw']);
+ $('[name="result_in_work_hw"]').html(data['info']['in_work_hw']);
+ $('[name="result_expired_hw"]').html(data['info']['expired_hw']);
+ $('[name="result_success_hw"]').html(data['info']['success_hw']);
+ var n = 0;
+ for (var i in data['more']){
+ var exp = '';
+ if (data['more'][i]['expired']) {
+ exp = '
/'+data['more'][i]['expired_time'] + ' часа(-ов)'
+ } else {
+ exp = '
'
+ }
+ $('[name=result_table]').append('
' +
+ ''+data['more'][i]['id']+' ' +
+ ''+data['more'][i]['material']+' ' +
+ ''+data['more'][i]['student']+' ' +
+ ''+data['more'][i]['s_date']+' ' +
+ ''+data['more'][i]['f_date']+' ' +
+ ''+data['more'][i]['status']+' ' +
+ ''+data['more'][i]['tries']+' ' +
+ ''+ exp +' ' +
+ 'Перейти ' +
+ ' ');
+ n += 1;
+ }
+ $('[name=table_row_count]').html(n);
+ $('[name=result_table]').fadeIn('fast');
+}
+ $( document.body ).on( "change", "[name=f_date]", function( event ) {
+ set_global('f_date', $('[name=f_date]').val().split('.').join('_'));
+ console.log('1')
+ });
+
+ $( document.body ).on( "change", "[name=s_date]", function( event ) {
+ set_global('s_date', $('[name=s_date]').val().split('.').join('_'));
+ console.log('2')
});
\ No newline at end of file
diff --git a/static/js/salvattore.min.js b/static/js/salvattore.min.js
old mode 100755
new mode 100644
index f238602..32f5cf6
--- a/static/js/salvattore.min.js
+++ b/static/js/salvattore.min.js
@@ -1,7 +1,7 @@
-/*!
- * Salvattore 1.0.9 by @rnmp and @ppold
- * https://github.com/rnmp/salvattore
- */
-!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.salvattore=t()}(this,function(){/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
-window.matchMedia||(window.matchMedia=function(){"use strict";var e=window.styleMedia||window.media;if(!e){var t=document.createElement("style"),n=document.getElementsByTagName("script")[0],r=null;t.type="text/css",t.id="matchmediajs-test",n.parentNode.insertBefore(t,n),r="getComputedStyle"in window&&window.getComputedStyle(t,null)||t.currentStyle,e={matchMedium:function(e){var n="@media "+e+"{ #matchmediajs-test { width: 1px; } }";return t.styleSheet?t.styleSheet.cssText=n:t.textContent=n,"1px"===r.width}}}return function(t){return{matches:e.matchMedium(t||"all"),media:t||"all"}}}()),/*! matchMedia() polyfill addListener/removeListener extension. Author & copyright (c) 2012: Scott Jehl. Dual MIT/BSD license */
+/*!
+ * Salvattore 1.0.9 by @rnmp and @ppold
+ * https://github.com/rnmp/salvattore
+ */
+!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?module.exports=t():e.salvattore=t()}(this,function(){/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas, David Knight. Dual MIT/BSD license */
+window.matchMedia||(window.matchMedia=function(){"use strict";var e=window.styleMedia||window.media;if(!e){var t=document.createElement("style"),n=document.getElementsByTagName("script")[0],r=null;t.type="text/css",t.id="matchmediajs-test",n.parentNode.insertBefore(t,n),r="getComputedStyle"in window&&window.getComputedStyle(t,null)||t.currentStyle,e={matchMedium:function(e){var n="@media "+e+"{ #matchmediajs-test { width: 1px; } }";return t.styleSheet?t.styleSheet.cssText=n:t.textContent=n,"1px"===r.width}}}return function(t){return{matches:e.matchMedium(t||"all"),media:t||"all"}}}()),/*! matchMedia() polyfill addListener/removeListener extension. Author & copyright (c) 2012: Scott Jehl. Dual MIT/BSD license */
function(){"use strict";if(window.matchMedia&&window.matchMedia("all").addListener)return!1;var e=window.matchMedia,t=e("only all").matches,n=!1,r=0,a=[],i=function(t){clearTimeout(r),r=setTimeout(function(){for(var t=0,n=a.length;n>t;t++){var r=a[t].mql,i=a[t].listeners||[],o=e(r.media).matches;if(o!==r.matches){r.matches=o;for(var c=0,l=i.length;l>c;c++)i[c].call(window,r)}}},30)};window.matchMedia=function(r){var o=e(r),c=[],l=0;return o.addListener=function(e){t&&(n||(n=!0,window.addEventListener("resize",i,!0)),0===l&&(l=a.push({mql:o,listeners:c})),c.push(e))},o.removeListener=function(e){for(var t=0,n=c.length;n>t;t++)c[t]===e&&c.splice(t,1)},o}}(),function(){"use strict";for(var e=0,t=["ms","moz","webkit","o"],n=0;n
*:nth-child("+o+"n-"+d+")",s.push(n.querySelectorAll(a));s.forEach(function(e){var n=t.createElement("div"),r=t.createDocumentFragment();n.className=l.join(" "),Array.prototype.forEach.call(e,function(e){r.appendChild(e)}),n.appendChild(r),u.appendChild(n)}),e.appendChild(u),c(e,"columns",o)},r.removeColumns=function(n){var r=t.createRange();r.selectNodeContents(n);var a=Array.prototype.filter.call(r.extractContents().childNodes,function(t){return t instanceof e.HTMLElement}),i=a.length,o=a[0].childNodes.length,l=new Array(o*i);Array.prototype.forEach.call(a,function(e,t){Array.prototype.forEach.call(e.children,function(e,n){l[n*i+t]=e})});var s=t.createElement("div");return c(s,"columns",0),l.filter(function(e){return!!e}).forEach(function(e){s.appendChild(e)}),s},r.recreateColumns=function(t){e.requestAnimationFrame(function(){r.addColumns(t,r.removeColumns(t));var e=new CustomEvent("columnsChange");t.dispatchEvent(e)})},r.mediaQueryChange=function(e){e.matches&&Array.prototype.forEach.call(a,r.recreateColumns)},r.getCSSRules=function(e){var t;try{t=e.sheet.cssRules||e.sheet.rules}catch(n){return[]}return t||[]},r.getStylesheets=function(){var e=Array.prototype.slice.call(t.querySelectorAll("style"));return e.forEach(function(t,n){"text/css"!==t.type&&""!==t.type&&e.splice(n,1)}),Array.prototype.concat.call(e,Array.prototype.slice.call(t.querySelectorAll("link[rel='stylesheet']")))},r.mediaRuleHasColumnsSelector=function(e){var t,n;try{t=e.length}catch(r){t=0}for(;t--;)if(n=e[t],n.selectorText&&n.selectorText.match(/\[data-columns\](.*)::?before$/))return!0;return!1},r.scanMediaQueries=function(){var t=[];if(e.matchMedia){r.getStylesheets().forEach(function(e){Array.prototype.forEach.call(r.getCSSRules(e),function(e){try{e.media&&e.cssRules&&r.mediaRuleHasColumnsSelector(e.cssRules)&&t.push(e)}catch(n){}})});var n=i.filter(function(e){return-1===t.indexOf(e)});o.filter(function(e){return-1!==n.indexOf(e.rule)}).forEach(function(e){e.mql.removeListener(r.mediaQueryChange)}),o=o.filter(function(e){return-1===n.indexOf(e.rule)}),t.filter(function(e){return-1==i.indexOf(e)}).forEach(function(t){var n=e.matchMedia(t.media.mediaText);n.addListener(r.mediaQueryChange),o.push({rule:t,mql:n})}),i.length=0,i=t}},r.rescanMediaQueries=function(){r.scanMediaQueries(),Array.prototype.forEach.call(a,r.recreateColumns)},r.nextElementColumnIndex=function(e,t){var n,r,a,i=e.children,o=i.length,c=0,l=0;for(a=0;o>a;a++)n=i[a],r=n.children.length+(t[a].children||t[a].childNodes).length,0===c&&(c=r),c>r&&(l=a,c=r);return l},r.createFragmentsList=function(e){for(var n=new Array(e),r=0;r!==e;)n[r]=t.createDocumentFragment(),r++;return n},r.appendElements=function(e,t){var n=e.children,a=n.length,i=r.createFragmentsList(a);Array.prototype.forEach.call(t,function(t){var n=r.nextElementColumnIndex(e,i);i[n].appendChild(t)}),Array.prototype.forEach.call(n,function(e,t){e.appendChild(i[t])})},r.prependElements=function(e,n){var a=e.children,i=a.length,o=r.createFragmentsList(i),c=i-1;n.forEach(function(e){var t=o[c];t.insertBefore(e,t.firstChild),0===c?c=i-1:c--}),Array.prototype.forEach.call(a,function(e,t){e.insertBefore(o[t],e.firstChild)});for(var l=t.createDocumentFragment(),s=n.length%i;0!==s--;)l.appendChild(e.lastChild);e.insertBefore(l,e.firstChild)},r.registerGrid=function(n){if("none"!==e.getComputedStyle(n).display){var i=t.createRange();i.selectNodeContents(n);var o=t.createElement("div");o.appendChild(i.extractContents()),c(o,"columns",0),r.addColumns(n,o),a.push(n)}},r.init=function(){var e=t.createElement("style");e.innerHTML="[data-columns]::before{display:block;visibility:hidden;position:absolute;font-size:1px;}",t.head.appendChild(e);var n=t.querySelectorAll("[data-columns]");Array.prototype.forEach.call(n,r.registerGrid),r.scanMediaQueries()},r.init(),{appendElements:r.appendElements,prependElements:r.prependElements,registerGrid:r.registerGrid,recreateColumns:r.recreateColumns,rescanMediaQueries:r.rescanMediaQueries,init:r.init,append_elements:r.appendElements,prepend_elements:r.prependElements,register_grid:r.registerGrid,recreate_columns:r.recreateColumns,rescan_media_queries:r.rescanMediaQueries}}(window,window.document);return e});
\ No newline at end of file
diff --git a/static/js/simditor.js b/static/js/simditor.js
old mode 100755
new mode 100644
diff --git a/static/js/simditor.min.js b/static/js/simditor.min.js
old mode 100755
new mode 100644
diff --git a/static/js/skill_show.js b/static/js/skill_show.js
old mode 100755
new mode 100644
index 24e5436..8cdfc57
--- a/static/js/skill_show.js
+++ b/static/js/skill_show.js
@@ -1,310 +1,310 @@
-(function () {
- var AwardAnimation, Card, Helpers, h;
- Helpers = function () {
- function Helpers() {
- }
- Helpers.prototype.s = 1;
- Helpers.prototype.rand = function (min, max) {
- return Math.floor(Math.random() * (max + 1 - min) + min);
- };
- Helpers.prototype.decRand = function (min, max) {
- return Math.random() * (max - min) + min;
- };
- Helpers.prototype.time = function (time) {
- return time * this.s;
- };
- Helpers.prototype.isFF = function () {
- return navigator.userAgent.search('Firefox') > -1;
- };
- Helpers.prototype.isIE9 = function () {
- return navigator.userAgent.search('MSIE 9.0') > -1;
- };
- Helpers.prototype.isIE11 = function () {
- return navigator.userAgent.search('Trident/7.0') > -1;
- };
- Helpers.prototype.isSafari = function () {
- var ua;
- ua = void 0;
- ua = navigator.userAgent.toLowerCase();
- if (ua.indexOf('safari') !== -1) {
- if (ua.indexOf('chrome') > -1) {
- return false;
- } else {
- return true;
- }
- }
- };
- Helpers.prototype.isIOS = function () {
- return navigator.userAgent.match(/(iPad|iPhone|iPod touch);.*CPU.*OS 7_\d/i);
- };
- Helpers.prototype.elasticOut = function (k) {
- var a, p, s;
- a = 0.1;
- p = 0.4;
- if (k === 0) {
- return 0;
- }
- if (k === 1) {
- return 1;
- }
- if (!a || a < 1) {
- a = 1;
- s = p / 4;
- } else {
- s = p * Math.asin(1 / a) / (2 * Math.PI);
- }
- return a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1;
- };
- return Helpers;
- }();
- h = new Helpers();
- Card = function () {
- function Card(o) {
- this.o = o != null ? o : {};
- this.vars();
- }
- Card.prototype.vars = function () {
- this.delay = this.o.delay || 0;
- this.s = 1 * h.time(1);
- this.card = $('.award-container');
- this.badge = $('.badge > img');
- this.content = $('.award-container div.content');
- this.text = $('.unlocked, .achievement');
- this.closeBtn = $('.award-container .close');
- return this.particles = $('.hex-p');
- };
- Card.prototype.run = function () {
- this.card.css({
- 'transform-origin': 'center center',
- 'margin-left': -50
- });
- if (h.isIE11()) {
- this.card.velocity({
- opacity: [
- 1,
- 0
- ]
- }, {
- duration: 800 * this.s,
- display: 'block',
- easing: 'easeInQuart'
- }).velocity({
- marginLeft: [
- -325,
- -50
- ]
- }, {
- delay: 430 * this.s,
- duration: 800 * this.s,
- easing: 'easeInOut'
- });
- this.badge.velocity({
- scale: [
- 1,
- 1.5
- ]
- }, {
- duration: 800 * this.s,
- easing: 'easeInQuart',
- display: 'block'
- }).velocity({
- scale: [
- 0.8,
- 1
- ]
- }, { duration: 30 * this.s }).velocity({ scale: 1 }, {
- duration: 400 * this.s,
- easing: [
- 500,
- 12
- ]
- });
- } else {
- this.card.velocity({
- opacity: [
- 1,
- 0
- ],
- translateZ: [
- 0,
- 60
- ]
- }, {
- duration: 800 * this.s,
- easing: 'easeInQuart',
- display: 'block'
- }).velocity({
- translateZ: [
- -60,
- 0
- ]
- }, { duration: 30 * this.s }).velocity({ translateZ: 0 }, {
- duration: 400 * this.s,
- easing: [
- 500,
- 12
- ]
- }).velocity({
- marginLeft: [
- -325,
- -50
- ]
- }, {
- duration: 800 * this.s,
- easing: 'easeInOut'
- });
- }
- this.text.css({ 'opacity': 0 }).velocity({
- opacity: [
- 1,
- 0
- ]
- }, {
- delay: 1900 * this.s,
- duration: 400 * this.s
- });
- this.content.css({ 'width': 0 }).velocity({
- width: [
- 600,
- 0
- ]
- }, {
- delay: 1270 * this.s,
- duration: 800 * this.s,
- queue: false,
- easing: 'easeInOut'
- });
- this.closeBtn.css({ 'opacity': 0 }).velocity({
- opacity: [
- 1,
- 0
- ]
- }, {
- delay: 2000 * this.s,
- duration: 500 * this.s
- });
- return this.particles.each(function (_this) {
- return function (i, particle) {
- var θ;
- particle = $(particle);
- θ = h.rand(0, 2 * Math.PI);
- particle.velocity({
- opacity: [
- 0,
- 1
- ]
- }, {
- delay: 800 * _this.s,
- duration: 3000 * _this.s,
- display: 'block',
- easing: 'easeOutQuart',
- complete: function () {
- return $(this).css({ 'display': 'none' });
- }
- });
- return particle.children('path').velocity({
- translateX: 0,
- translateY: 0
- }, 0).velocity({
- translateX: [
- h.rand(120, 300) * Math.cos(θ),
- 0
- ],
- translateY: [
- h.rand(120, 300) * Math.sin(θ),
- 0
- ],
- rotateZ: [
- h.rand(-1080, 1080),
- 0
- ],
- scale: [
- h.decRand(0.2, 0.5),
- h.decRand(1, 2)
- ]
- }, {
- delay: 800 * _this.s,
- duration: 3000 * _this.s,
- easing: 'easeOutCirc'
- });
- };
- }(this));
- };
- Card.prototype.out = function () {
- if (h.isIE11()) {
- return this.card.velocity({
- opacity: [
- 0,
- 1
- ],
- scale: [
- 0.9,
- 1
- ]
- }, {
- duration: 600 * this.s,
- easing: 'easeInSine'
- }).velocity({ scale: 1 }, 0);
- } else {
- return this.card.velocity({
- rotateX: [
- -5,
- 0
- ],
- translateY: [
- 20,
- 0
- ],
- translateZ: [
- -30,
- 0
- ],
- opacity: [
- 0,
- 1
- ]
- }, {
- duration: 600 * this.s,
- easing: 'easeInSine'
- }).velocity({
- rotateX: 0,
- translateY: 0,
- translateX: 0
- }, 0);
- }
- };
- return Card;
- }();
- AwardAnimation = function () {
- function AwardAnimation() {
- this.s = 1 * h.time(1);
- this.card = new Card({ delay: 0 });
- this.run();
- }
- AwardAnimation.prototype.run = function () {
- this.card.run();
- this.outTimerId = setTimeout(function (_this) {
- return function () {
- return _this.out();
- };
- }(this), 10000 * this.s);
- return setTimeout(function (_this) {
- return function () {
- return _this.run();
- };
- }(this), 11000 * this.s);
- };
- AwardAnimation.prototype.out = function () {
- clearTimeout(this.outTimerId);
- return this.card.out();
- };
- return AwardAnimation;
- }();
- jQuery(document).ready(function () {
- var aa;
- aa = new AwardAnimation();
- return $('.award-container').click(function () {
- return aa.out();
- });
- });
+(function () {
+ var AwardAnimation, Card, Helpers, h;
+ Helpers = function () {
+ function Helpers() {
+ }
+ Helpers.prototype.s = 1;
+ Helpers.prototype.rand = function (min, max) {
+ return Math.floor(Math.random() * (max + 1 - min) + min);
+ };
+ Helpers.prototype.decRand = function (min, max) {
+ return Math.random() * (max - min) + min;
+ };
+ Helpers.prototype.time = function (time) {
+ return time * this.s;
+ };
+ Helpers.prototype.isFF = function () {
+ return navigator.userAgent.search('Firefox') > -1;
+ };
+ Helpers.prototype.isIE9 = function () {
+ return navigator.userAgent.search('MSIE 9.0') > -1;
+ };
+ Helpers.prototype.isIE11 = function () {
+ return navigator.userAgent.search('Trident/7.0') > -1;
+ };
+ Helpers.prototype.isSafari = function () {
+ var ua;
+ ua = void 0;
+ ua = navigator.userAgent.toLowerCase();
+ if (ua.indexOf('safari') !== -1) {
+ if (ua.indexOf('chrome') > -1) {
+ return false;
+ } else {
+ return true;
+ }
+ }
+ };
+ Helpers.prototype.isIOS = function () {
+ return navigator.userAgent.match(/(iPad|iPhone|iPod touch);.*CPU.*OS 7_\d/i);
+ };
+ Helpers.prototype.elasticOut = function (k) {
+ var a, p, s;
+ a = 0.1;
+ p = 0.4;
+ if (k === 0) {
+ return 0;
+ }
+ if (k === 1) {
+ return 1;
+ }
+ if (!a || a < 1) {
+ a = 1;
+ s = p / 4;
+ } else {
+ s = p * Math.asin(1 / a) / (2 * Math.PI);
+ }
+ return a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1;
+ };
+ return Helpers;
+ }();
+ h = new Helpers();
+ Card = function () {
+ function Card(o) {
+ this.o = o != null ? o : {};
+ this.vars();
+ }
+ Card.prototype.vars = function () {
+ this.delay = this.o.delay || 0;
+ this.s = 1 * h.time(1);
+ this.card = $('.award-container');
+ this.badge = $('.badge > img');
+ this.content = $('.award-container div.content');
+ this.text = $('.unlocked, .achievement');
+ this.closeBtn = $('.award-container .close');
+ return this.particles = $('.hex-p');
+ };
+ Card.prototype.run = function () {
+ this.card.css({
+ 'transform-origin': 'center center',
+ 'margin-left': -50
+ });
+ if (h.isIE11()) {
+ this.card.velocity({
+ opacity: [
+ 1,
+ 0
+ ]
+ }, {
+ duration: 800 * this.s,
+ display: 'block',
+ easing: 'easeInQuart'
+ }).velocity({
+ marginLeft: [
+ -325,
+ -50
+ ]
+ }, {
+ delay: 430 * this.s,
+ duration: 800 * this.s,
+ easing: 'easeInOut'
+ });
+ this.badge.velocity({
+ scale: [
+ 1,
+ 1.5
+ ]
+ }, {
+ duration: 800 * this.s,
+ easing: 'easeInQuart',
+ display: 'block'
+ }).velocity({
+ scale: [
+ 0.8,
+ 1
+ ]
+ }, { duration: 30 * this.s }).velocity({ scale: 1 }, {
+ duration: 400 * this.s,
+ easing: [
+ 500,
+ 12
+ ]
+ });
+ } else {
+ this.card.velocity({
+ opacity: [
+ 1,
+ 0
+ ],
+ translateZ: [
+ 0,
+ 60
+ ]
+ }, {
+ duration: 800 * this.s,
+ easing: 'easeInQuart',
+ display: 'block'
+ }).velocity({
+ translateZ: [
+ -60,
+ 0
+ ]
+ }, { duration: 30 * this.s }).velocity({ translateZ: 0 }, {
+ duration: 400 * this.s,
+ easing: [
+ 500,
+ 12
+ ]
+ }).velocity({
+ marginLeft: [
+ -325,
+ -50
+ ]
+ }, {
+ duration: 800 * this.s,
+ easing: 'easeInOut'
+ });
+ }
+ this.text.css({ 'opacity': 0 }).velocity({
+ opacity: [
+ 1,
+ 0
+ ]
+ }, {
+ delay: 1900 * this.s,
+ duration: 400 * this.s
+ });
+ this.content.css({ 'width': 0 }).velocity({
+ width: [
+ 600,
+ 0
+ ]
+ }, {
+ delay: 1270 * this.s,
+ duration: 800 * this.s,
+ queue: false,
+ easing: 'easeInOut'
+ });
+ this.closeBtn.css({ 'opacity': 0 }).velocity({
+ opacity: [
+ 1,
+ 0
+ ]
+ }, {
+ delay: 2000 * this.s,
+ duration: 500 * this.s
+ });
+ return this.particles.each(function (_this) {
+ return function (i, particle) {
+ var θ;
+ particle = $(particle);
+ θ = h.rand(0, 2 * Math.PI);
+ particle.velocity({
+ opacity: [
+ 0,
+ 1
+ ]
+ }, {
+ delay: 800 * _this.s,
+ duration: 3000 * _this.s,
+ display: 'block',
+ easing: 'easeOutQuart',
+ complete: function () {
+ return $(this).css({ 'display': 'none' });
+ }
+ });
+ return particle.children('path').velocity({
+ translateX: 0,
+ translateY: 0
+ }, 0).velocity({
+ translateX: [
+ h.rand(120, 300) * Math.cos(θ),
+ 0
+ ],
+ translateY: [
+ h.rand(120, 300) * Math.sin(θ),
+ 0
+ ],
+ rotateZ: [
+ h.rand(-1080, 1080),
+ 0
+ ],
+ scale: [
+ h.decRand(0.2, 0.5),
+ h.decRand(1, 2)
+ ]
+ }, {
+ delay: 800 * _this.s,
+ duration: 3000 * _this.s,
+ easing: 'easeOutCirc'
+ });
+ };
+ }(this));
+ };
+ Card.prototype.out = function () {
+ if (h.isIE11()) {
+ return this.card.velocity({
+ opacity: [
+ 0,
+ 1
+ ],
+ scale: [
+ 0.9,
+ 1
+ ]
+ }, {
+ duration: 600 * this.s,
+ easing: 'easeInSine'
+ }).velocity({ scale: 1 }, 0);
+ } else {
+ return this.card.velocity({
+ rotateX: [
+ -5,
+ 0
+ ],
+ translateY: [
+ 20,
+ 0
+ ],
+ translateZ: [
+ -30,
+ 0
+ ],
+ opacity: [
+ 0,
+ 1
+ ]
+ }, {
+ duration: 600 * this.s,
+ easing: 'easeInSine'
+ }).velocity({
+ rotateX: 0,
+ translateY: 0,
+ translateX: 0
+ }, 0);
+ }
+ };
+ return Card;
+ }();
+ AwardAnimation = function () {
+ function AwardAnimation() {
+ this.s = 1 * h.time(1);
+ this.card = new Card({ delay: 0 });
+ this.run();
+ }
+ AwardAnimation.prototype.run = function () {
+ this.card.run();
+ this.outTimerId = setTimeout(function (_this) {
+ return function () {
+ return _this.out();
+ };
+ }(this), 10000 * this.s);
+ return setTimeout(function (_this) {
+ return function () {
+ return _this.run();
+ };
+ }(this), 11000 * this.s);
+ };
+ AwardAnimation.prototype.out = function () {
+ clearTimeout(this.outTimerId);
+ return this.card.out();
+ };
+ return AwardAnimation;
+ }();
+ jQuery(document).ready(function () {
+ var aa;
+ aa = new AwardAnimation();
+ return $('.award-container').click(function () {
+ return aa.out();
+ });
+ });
}.call(this));
\ No newline at end of file
diff --git a/static/js/theater.min.js b/static/js/theater.min.js
old mode 100755
new mode 100644
diff --git a/static/js/tilda-blocks.js b/static/js/tilda-blocks.js
old mode 100755
new mode 100644
index 2013468..5873cc0
--- a/static/js/tilda-blocks.js
+++ b/static/js/tilda-blocks.js
@@ -1,55 +1,55 @@
-
-function t381_appearMenu(recid) {
- var window_width=$(window).width();
- if(window_width>980){
- $(".t381").each(function() {
- var el=$(this);
- var appearoffset=el.attr("data-appearoffset");
- var hideoffset=el.attr("data-hideoffset");
- if(appearoffset!=""){
- if(appearoffset.indexOf('vh') > -1){
- appearoffset = Math.floor((window.innerHeight * (parseInt(appearoffset) / 100)));
- }
-
- appearoffset=parseInt(appearoffset, 10);
-
- if ($(window).scrollTop() >= appearoffset) {
- if(el.css('visibility') == 'hidden'){
- el.finish();
- el.css("visibility","visible");
- el.animate({"opacity": "1"}, 300,function() {
- });
- }
- }else{
- el.stop();
- el.css("visibility","hidden");
- }
- }
-
- if(hideoffset!=""){
- if(hideoffset.indexOf('vh') > -1){
- hideoffset = Math.floor((window.innerHeight * (parseInt(hideoffset) / 100)));
- }
-
- hideoffset=parseInt(hideoffset, 10);
-
- if ($(window).scrollTop()+$(window).height() >= $(document).height() - hideoffset) {
- if(el.css('visibility') != 'hidden'){
- el.finish();
- el.css("visibility","hidden");
- }
- }else{
- if (appearoffset!="") {
- if($(window).scrollTop() >= appearoffset){
- el.stop();
- el.css("visibility","visible");
- }
- }else{
- el.stop();
- el.css("visibility","visible");
- }
- }
- }
- });
- }
-}
+
+function t381_appearMenu(recid) {
+ var window_width=$(window).width();
+ if(window_width>980){
+ $(".t381").each(function() {
+ var el=$(this);
+ var appearoffset=el.attr("data-appearoffset");
+ var hideoffset=el.attr("data-hideoffset");
+ if(appearoffset!=""){
+ if(appearoffset.indexOf('vh') > -1){
+ appearoffset = Math.floor((window.innerHeight * (parseInt(appearoffset) / 100)));
+ }
+
+ appearoffset=parseInt(appearoffset, 10);
+
+ if ($(window).scrollTop() >= appearoffset) {
+ if(el.css('visibility') == 'hidden'){
+ el.finish();
+ el.css("visibility","visible");
+ el.animate({"opacity": "1"}, 300,function() {
+ });
+ }
+ }else{
+ el.stop();
+ el.css("visibility","hidden");
+ }
+ }
+
+ if(hideoffset!=""){
+ if(hideoffset.indexOf('vh') > -1){
+ hideoffset = Math.floor((window.innerHeight * (parseInt(hideoffset) / 100)));
+ }
+
+ hideoffset=parseInt(hideoffset, 10);
+
+ if ($(window).scrollTop()+$(window).height() >= $(document).height() - hideoffset) {
+ if(el.css('visibility') != 'hidden'){
+ el.finish();
+ el.css("visibility","hidden");
+ }
+ }else{
+ if (appearoffset!="") {
+ if($(window).scrollTop() >= appearoffset){
+ el.stop();
+ el.css("visibility","visible");
+ }
+ }else{
+ el.stop();
+ el.css("visibility","visible");
+ }
+ }
+ }
+ });
+ }
+}
diff --git a/static/js/tilda-scripts.js b/static/js/tilda-scripts.js
old mode 100755
new mode 100644
index abc62ab..0683ceb
--- a/static/js/tilda-scripts.js
+++ b/static/js/tilda-scripts.js
@@ -1,1645 +1,1645 @@
-(function( $ ){
- $isMobile=false;
- /* isWidthLimited = $(window).width() <= 1024; */
- if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
- $isMobile=true;
- }
- window.isMobile=$isMobile;
-
- if($isMobile == true){
- var correctHeight = function(){
- /* covers */
- var coverCarries = document.body.querySelectorAll('.t-cover__carrier'),
- viewPortHeight = $(window).height(),
- factor = 0;
- for(var i= 0, l = coverCarries.length, cc , ccStyle, newHeight, parent, opacityLayer, textBox; i < l; i++){
- cc = coverCarries[i];
- ccStyle = cc.style;
- if(ccStyle.height.indexOf('vh') > -1){
- factor = parseInt(ccStyle.height) / 100;
- newHeight = viewPortHeight + 'px';
- parent = $(cc).parent('.t-cover');
- if(parent && (parent = parent[0])){
- opacityLayer = parent.querySelector('.t-cover__filter');
- textBox = parent.querySelector('.t-cover__wrapper');
- if (opacityLayer) {
- opacityLayer.style.height = newHeight;
- }
- if(textBox) {
- textBox.style.height = newHeight;
- }
- ccStyle.height = parent.style.height = newHeight;
- }
- }
- }
- /* others */
- var elCarries = document.body.querySelectorAll('[data-height-correct-vh]'),
- viewPortHeight = $(window).height(),
- factor = 0;
- for(var i= 0, l = elCarries.length, cc , ccStyle, newHeight, parent, opacityLayer, textBox; i < l; i++){
- cc = elCarries[i];
- ccStyle = cc.style;
- if(ccStyle.height.indexOf('vh') > -1){
- factor = parseInt(ccStyle.height) / 100;
- newHeight = viewPortHeight + 'px';
- parent = $(cc).parent('.t-cover');
- ccStyle.height = newHeight;
- }
- }
- };
- $(document).ready(function(){
- correctHeight();
- });
- $(window).load(function(){
- correctHeight();
- });
- }
-
- if($isMobile == true){
- if($(window).width() < 480){
- $(document).ready(function(){
- $("div[data-customstyle=yes]").each(function(index) {
- if($(this).css('font-size').replace('px','')>26){
- $(this).css('font-size','');
- $(this).css('line-height','');
- }
- });
- $("[field]").find("span").each(function(index) {
- if($(this).css('font-size').replace('px','')>26){
- $(this).css('font-size','');
- }
- });
- });
- $(window).load(function(){
- var window_width=$(window).width();
- $(".r").each(function(){
- var el=$(this);
- $(this).find("div").not("[data-auto-correct-mobile-width=false], .tn-elem, .tn-atom").each(function(){
- var r_div_width=parseInt($(this).outerWidth(true));
- if((r_div_width)>window_width){
- console.log('Block not optimized for mobile width. Block width:'+r_div_width+' Block id:'+el.attr('id'));
- console.log($(this));
- el.css("overflow","auto");
- if((r_div_width-3)>window_width){
- el.css("word-break","break-all");
- }
- }
- });
- });
- });
- }else if($(window).width() < 900){
- $(document).ready(function(){
- $("div[data-customstyle=yes]").each(function(index) {
- if($(this).css('font-size').replace('px','')>30){
- $(this).css('font-size','');
- $(this).css('line-height','');
- }
- });
- $("[field]").find("span").each(function(index) {
- if($(this).css('font-size').replace('px','')>30){
- $(this).css('font-size','');
- }
- });
- });
- }
- }
-
-})( jQuery );
-
-
-(function($){
- /**
- * @constructor
- */
- function VideoLoadProcessor(){
- this.setScrollListener();
- }
-
- VideoLoadProcessor.prototype.videoTags = [];
- VideoLoadProcessor.prototype.defaultConfig = {
- isNeedStop : false
- };
- VideoLoadProcessor.prototype.videoConfigs = [];
- /**
- * @param {HTMLVideoElement} video
- * @param {{} | Undefined} config
- */
- VideoLoadProcessor.prototype.registerNewVideo = function(video, config){
- if(!(video instanceof HTMLVideoElement)){
- throw new Error("Wrong tag passed into registerNewVideo");
- }
- if(this.videoTags.indexOf(video) == -1){
- this.videoTags.push(video);
- this.videoConfigs.push(typeof config == "undefined" ? this.defaultConfig : config);
- this.scrollCb();
- return true;
- }
- return false;
- }
- /**
- * @param {HTMLVideoElement} video
- */
- VideoLoadProcessor.prototype.unergisterVideo = function(video){
- if(!(video instanceof HTMLVideoElement)){
- throw new Error("Wrong tag passed into unregisterNewVideo");
- }
- var index;
- if((index = this.videoTags.indexOf(video)) > -1){
- if(typeof video.remove == "function"){
- video.remove();
- }else{
- if(video.parentNode){
- video.parentNode.removeChild(video);
- }
- }
- this.pauseVideo(video, this.videoConfigs[index]);
- this.videoTags.splice(index, 1);
- this.videoConfigs.splice(index, 1);
- return true;
- }
- return false;
- }
-
- VideoLoadProcessor.prototype.pauseVideo = function(video, config){
- if(!config){
- throw new Error("Wrong config type!");
- }
- video.pause();
- if(config.isNeedStop){
- video.load();
- }
- }
-
- VideoLoadProcessor.prototype.setScrollListener = function(){
- $(window).scroll(jQuery.proxy(this.scrollCb, this));
- }
-
- VideoLoadProcessor.prototype.scrollCb = function(){
- var windowHeight = $(window).height(),
- _shift = 0,
- _v = null;
- for(var i= 0, l = this.videoTags.length; i < l; i++){
- _v = this.videoTags[i], _vrect = this.getVideoBoundingRect(_v, false);
- /* set fade volume */
- if(Math.abs(_vrect.top) < windowHeight && Math.abs(_vrect.top) > windowHeight/2){
- var vol = 1 - (Math.abs(_vrect.top)-windowHeight/2)/(windowHeight/2) - 0.2;
- if(vol>0 && vol<=1 && _v.volume!=0) { _v.volume=vol; }
- }
- /* then pause */
- if(Math.abs(_vrect.top) > windowHeight || _vrect.height == 0 /*display : none*/){
- this.pauseVideo(_v, this.videoConfigs[i]);
- continue;
- }
- if(_v.paused){
- _v.play();
- }
- }
- };
-
- VideoLoadProcessor.prototype.getVideoObject = function(video){
- for(var i= 0, l = this.videoTags.length; i > l; i++){
- var vo = this.videoTags[i];
- if(vo.v === video) {
- return vo;
- }
- }
- return null;
- }
-
- VideoLoadProcessor.prototype.getVideoBoundingRect = function(video, isNeedParent){
- if(typeof isNeedParent == "undefined"){
- isNeedParent = true;
- }
- var parent = null;
- if(isNeedParent){
- parent = $(video).parents('.r')[0];
- if(!parent){
- parent = video;
- }
- }else{
- parent = video;
- }
- return parent.getBoundingClientRect();
- }
- window.videoLoadProcessor = new VideoLoadProcessor();
-
-})( jQuery );
-
-
-(function($){
-
- function SequenceController(){
- this.setScrollCb();
- this.itemHeight = screen.availHeight;/* document.documentElement.clientHeight || window.innerHeight || screen.availHeight;*/
- var itemTransitionItemRelation = 0.25;
- this.itemTransitionTop = this.itemHeight * itemTransitionItemRelation;
- this.activeItemIndex = null;
- this.windowHeight = document.documentElement.clientHeight || window.innerHeight || screen.availHeight;
- this.topOffsetShift = -150;
- $(window).resize(jQuery.proxy(this.recalculateAllSequencesOffsets,this));
- this._resizeInterval = setInterval(jQuery.proxy(this.scrollCb,this),500);
- }
-
- SequenceController.prototype.defaultConfig = {
- orientation : "vertical",
- speedFactor : 1,
- automated : false
- };
-
- SequenceController.prototype.sequenceObjects = [];
- /**
- * @param {{}} sO
- */
-
- SequenceController.prototype.recalculateAllSequencesOffsets = function(){
- if(this._resizeTimeout) {
- clearTimeout(this._resizeTimeout);
- }
-
- if(this._resizeInterval){
- clearInterval(this._resizeInterval);
- }
-
- this._resizeTimeout = setTimeout(jQuery.proxy(function(){
- this.scrollCb();
- this._resizeInterval = setInterval(jQuery.proxy(this.scrollCb,this),500);
- },this),10);
- }
-
- SequenceController.prototype.registerNewBlock = function(node){
- if(!(node instanceof HTMLElement)){
- throw new Error("Wrong node type in registerNewBlock");
- }
- for(var i= 0, l = this.sequenceObjects.length; i < l; i++){
- if(this.sequenceObjects[i].sequenceBlock === node) {
- return false;
- }
- }
- var sequenceHolder = node.querySelector('[data-hook="sequence-holder"]'),
- sequenceHeight = 0,
- sequenceOffsetTop = this.getAbsoluteTopOffset(sequenceHolder),
- items = (function(){
- var _items = Array.prototype.slice.call(node.querySelectorAll('[data-hook="sequence-item"]'), 0), __items = [];
- _items.forEach(jQuery.proxy(function(el, i, array){
- var elHeight = this.getItemHeight(el),
- backgroundHolder = el.querySelector('[data-hook="item-background"]');
- el.style.height = elHeight + 'px';
- backgroundHolder.style.height = this.itemHeight + 'px';
- if(i this.itemTransitionTop){
- currentItemIndex = i;
- break;
- }
- }
- if(currentItemIndex == null){
- return;
- }
- opacity = nodeRect.top / this.itemTransitionTop;
- if(opacity > 1){
- opacity = 1;
- }else{
- if(opacity < 0){
- opacity = 0;
- }
- }
- for(var i= 0, l = sequenceItems.length; i < l; i++){
- node = sequenceItems[i].node,
- backgroundHolderStyle = sequenceItems[i].backgroundHolder.style;
- if(backgroundHolderStyle.position != "fixed"){
- backgroundHolderStyle.position = "fixed";
- }
- if(i == currentItemIndex){ /* transitted already */
- backgroundHolderStyle.opacity = 1 - opacity;
- node.querySelector('.txt-holder').style.opacity = 1 - opacity;
- } else {
- if(i == currentItemIndex - 1){
- backgroundHolderStyle.opacity = opacity;
- node.querySelector('.txt-holder').style.opacity = opacity;
- }else{
- backgroundHolderStyle.opacity = 0;
- node.querySelector('.txt-holder').style.opacity = 0;
- }
- }
- }
- }
-
- SequenceController.prototype.stopSequence = function(sequenceObject){
- if(sequenceObject.started == false){
- return;
- }
- sequenceObject.items.forEach(function(el, i, array){
- el.backgroundHolder.style.position = 'relative';
- el.backgroundHolder.style.display = 'block';
- el.backgroundHolder.style.opacity = 1;
- });
- document.body.style.backgroundColor = sequenceObject.prevBackgroundColor;
- sequenceObject.started = false;
- }
-
- SequenceController.prototype.scrollCb = function(){
- var scrollTop = $(window).scrollTop();
- for(var i= 0, l = this.sequenceObjects.length, sO, top; i < l; i++){
- sO = this.sequenceObjects[i];
- var boundingRect = sO.sequenceHolder.getBoundingClientRect();
- if(boundingRect.top < 0 && boundingRect.bottom > 0 && boundingRect.bottom > boundingRect.height - sO.sequenceHeight - 100){
- this.processSequence(sO);
- }else{
- this.stopSequence(sO);
- }
- }
- }
-
- SequenceController.prototype.setScrollCb = function(){
- this._scrollCb = jQuery.proxy(this.scrollCb, this);/*.bind(this);*/
-
- $(window).scroll(this._scrollCb);
- }
-
- window.sequenceController = new SequenceController();
-
- window.processVideo = function(v){
- mp4Src = $(v).attr('data-content-video-url-mp4');
- webmSrc = $(v).attr('data-content-video-url-webm');
- $(v).css("background-color", "transparent");
- $(v).css("background-image", "");
- var options = {
- mp4: mp4Src,
- webm: webmSrc,
- /*poster: "",*/
- preload: "none",
- autoplay : false,
- loop: true,
- scale:true,
- zIndex:0,
- width: "100%"
- };
- /* Initializing the videos*/
- vid = $(v).videoBG(options);
- videoLoadProcessor.registerNewVideo(vid, {
- isNeedStop : false
- });
- }
-
-
- window.cover_init = function(id){
-
- $(document).ready(function(){
- var cover_carrier = document.body.querySelector('#coverCarry' + id);
- var el = $(cover_carrier);
-
- var backgroundurl=el.attr('data-content-cover-bg');
- var height=el.attr('data-content-cover-height');
- var parallax=el.attr('data-content-cover-parallax');
- var videomp4=el.attr('data-content-video-url-mp4');
- var videowebm=el.attr('data-content-video-url-webm');
- var youtubeid=el.attr('data-content-video-url-youtube');
- var noloop=el.attr('data-content-video-noloop');
- var nomute=el.attr('data-content-video-nomute');
- var bgbase64=el.attr('data-content-bg-base64');
- var video_nocover=el.attr('data-content-video-nocover');
-
- if(!backgroundurl){ backgroundurl="" };
- if(!height) { height=""; }
- if(!parallax) { parallax=""; }
- if(!videomp4) { videomp4=""; }
- if(!videowebm) { videowebm=""; }
- if(!youtubeid) { youtubeid=""; }
- if(!noloop) { noloop=""; }
- if(!nomute) { nomute=""; }
- if(!youtubeid){ youtubeid=""; }
- if(!bgbase64){ bgbase64=""; }
-
- if(video_nocover && video_nocover=='yes') {
- videomp4="";
- videowebm="";
- youtubeid="";
- }
-
- if($isMobile && (videowebm!="" || videomp4!="" || youtubeid!="")){
- el.css('background-image', "url('" + backgroundurl + "')");
- }
-
- /*fix content height*/
- var hcover=$("#rec" + id).find(".t-cover").height();
- var hcontent=$("#rec" + id).find("div[data-hook-content]").height();
- if(hcontent>300 && hcover -1){
- if( parseInt(height) > 100 ){
- el.css("height","100vh");
- height_more_vh="yes";
- }
- }
- if(height.indexOf('px') > -1){
- if( parseInt(height) > $(window).height() ){
- el.css("height","100vh");
- height_more_vh="yes";
- }
- }
- }
-
- var cotimer;
- var flagprocessed="";
- var wnd=$(window);
- var prnt=el.parent();
-
- wnd.scroll(function() {
- if(cotimer) {
- window.clearTimeout(cotimer);
- }
-
- cotimer = window.setTimeout(function() {
- if(!(flagprocessed>0)){
- var a,b,c,d,s;
-
- a = el.offset().top;
- b = el.height();
-
- c = wnd.scrollTop();
- d = wnd.height();
-
- if(((c+d) > a-500) && (c <= (a+b+500))){
- var vid = el.videoBG({
- mp4: videomp4,
- webm: videowebm,
- poster: '',
- preload: 'none',
- autoplay : false,
- loop: loop,
- volume:volume,
- scale:true,
- zIndex:0,
- width: "100%"
- });
- videoLoadProcessor.registerNewVideo(vid);
- flagprocessed=1;
- }
- }
- }, 100);
-
- if(parallax=="fixed" && height_more_vh=="yes"){
- var aa,bb,cc,dd,ss;
-
- aa = prnt.offset().top;
- bb = prnt.height();
-
- cc = wnd.scrollTop();
- dd = wnd.height();
-
- if(cc>=aa+bb-dd){
- el.css("position","absolute");
- el.css("bottom","0px");
- el.css("top","auto");
- /*el.css("vertical-align","bottom");*/
- } else {
- if(cc>=aa){
- el.css("position","fixed");
- el.css("top","0px");
- } else {
- if(cc0)){
- var a,b,c,d,s;
-
- a = el.offset().top;
- b = el.height();
-
- c = wnd.scrollTop();
- d = wnd.height();
-
- if(((c+d) > a-500) && (c <= (a+b+500))){
- processYoutubeVideo(cover_carrier, height);
- /*flagprocessed=1;*/
- }
- }
- }, 100);
- });
-
- wnd.scroll();
-
- }
- }
- }
- }
-
- if (parallax=="dynamic"){
- if($isMobile == false)el.parallax("50%",0.2,true);
- }
-
- if (bgbase64=="yes" && backgroundurl!="" && videomp4=="" && videowebm=="" && youtubeid==""){
- var bg_already="";
- $(' ').attr('src', backgroundurl).load(function() {
- $(this).remove();
- el.css('background-image', "url('"+backgroundurl+"')");
- el.css("opacity","1");
- var bg_already="yes";
- });
- if(bg_already!="yes"){
- el.css('background-image','');
- el.css("opacity","0");
- el.css("transition","opacity 25ms");
- }
- }
-
- var coverarrow=$("#rec" + id).find(".t-cover__arrow-wrapper");
- if(coverarrow.length>0){
- coverarrow.click(function() {
- /*var nextrec = $("#rec" + id).next();*/
- /*if(nextrec.length>0)$('html, body').animate({scrollTop:nextrec.offset().top}, 500);*/
- var recheight = $("#rec" + id).height();
- if(recheight>0){ $('html, body').animate({scrollTop:$("#rec" + id).offset().top + recheight}, 500); }
- });
- }
-
- });
-
- }
-
- $(document).ready(function(){
- $(".t-cover__carrier").each(function() {
- var id=$(this).attr('data-content-cover-id');
- if(id>0) { cover_init(id); }
- });
- });
-
- function processSrc(src,nocover){
- if(src.indexOf('https://www.youtube.com/embed') == -1){
- src = "https://www.youtube.com/embed" + (src[0] == '/' ? src : '/' + src);
- }
- var extractVideoId = function(src){
- var parts = src.split('/'), neededPart = null;
- for(var i=0, l = parts.length; i < l; i++){
- if(parts[i] == "embed"){
- neededPart = parts[i+1];
- }
- }
- return neededPart;
- }
- var currentLocation = location.protocol+'//'+location.host;
-
- if(nocover!="yes"){
- src = (src[src.length-1] == '/' ? src : src) + '?autoplay=1&loop=1&enablejsapi=1&&playerapiid=featuredytplayer&controls=0&modestbranding=1&rel=0&showinfo=0&color=white&iv_load_policy=3&theme=light&wmode=transparent&origin='+currentLocation+'&playlist='+extractVideoId(src);
- }else{
- src = (src[src.length-1] == '/' ? src : src) + '?autoplay=0&loop=0&enablejsapi=1&&playerapiid=featuredytplayer&controls=1&modestbranding=1&rel=0&showinfo=0&color=black&iv_load_policy=3&theme=dark&wmode=transparent&origin='+currentLocation;
- }
- return src;
- }
-
- function onYouTubePlayerReady_do(div,player,nomute){
- var timer;
- var wnd = $(window);
- var frame = $(div);
- var timer_count=0;
-
- wnd.scroll(function() {
- if(timer) {
- window.clearTimeout(timer);
- if(timer_count>=15){
- timer_player_do(frame,wnd,player,nomute);
- timer_count=0;
- }
- timer_count++;
- }
-
- timer = window.setTimeout(function() {
- timer_player_do(frame,wnd,player,nomute);
- timer_count=0;
- }, 100);
- });
-
- wnd.scroll();
- }
-
- function timer_player_do(frame,wnd,player,nomute){
- var a,b,c,d,s;
-
- a = frame.offset().top;
- b = frame.height();
-
- c = wnd.scrollTop();
- d = wnd.height();
-
- s = player.getPlayerState();
-
- if(((c+d) > a) && (c <= (a+b))){
- if(s !== 1) { player.playVideo(); }
- if(nomute=="yes"){
- if(c>a+b-100){
- player.setVolume(30);
- }else{
- if(c>a+b-200){
- player.setVolume(70);
- }else{
- if(c+d (a-500)){
- if(s !== 2){
- player.playVideo();
- player.pauseVideo();
- }
- }else{
- if(c > (a+b) && c < (a+b+500)){
- if(s !== 2){
- player.pauseVideo();
- }
- }else{
- if(s !== 2){
- player.pauseVideo();
- }
- }
- }
- }
- }
-
- var def = $.Deferred();
-
- window.processYoutubeVideo = function(div, height){
- var defFunc = function(){
-
- console.log("youtube iframe processed");
- var src = $(div).attr('data-content-video-url-youtube');
- var nomute = $(div).attr('data-content-video-nomute');
- var noloop = $(div).attr('data-content-video-noloop');
- var nocover = $(div).attr('data-content-video-nocover');
-
- var iframe = document.createElement('iframe');
- iframe.src = processSrc(src,nocover);
- iframe.frameBorder = 0;
-
- if(nocover!="yes"){
- if(!height){
- height = "100vh";
- }
- if(height.indexOf('vh') > -1){
- var wh = window.innerHeight;
- if(!wh) {
- wh = $(window).height();
- }
- var div_height = Math.floor((wh * (parseInt(height) / 100)));
- }else{
- var div_height = parseInt(height);
- }
- var div_width = Math.floor (parseInt(window.innerWidth));
- if(!div_width) {
- div_width = $(window).width();
- }
- var video_width = div_width;
- var video_height = video_width * 0.5625;
-
-
- var vw2 = video_width;
- var vh2 = video_height + 110 + 110;
- var delta_coef=1;
-
- if((video_height-220) < div_height){
- if(video_height 0){
- iframe.style.marginTop = - Math.floor(heightDelta / 2 ) + 'px';
- }
- if(widthDelta > 0){
- iframe.style.marginLeft = - Math.floor(widthDelta / 2) + 'px';
- }
- }else{
- var video_height;
- if(!height){
- video_height = Math.floor ( $(div).width() * 0.5625 );
- }
- if(height && height.indexOf('vh') > -1){
- video_height = Math.floor((window.innerHeight * (parseInt(height) / 100)));
- }else{
- if(height){
- video_height = parseInt(height);
- }
- }
-
- iframe.width="100%";
- iframe.height=video_height + 'px';
- }
-
- var playtimer;
- div.appendChild(iframe);
- if($isMobile == false){
- var player = new YT.Player(iframe,{
- events:{
- 'onReady': function(e){
- onYouTubePlayerReady_do(div,e.target,nomute);
- if(e.target.setVolume && nomute!="yes"){
- e.target.setVolume(0);
- }
- e.target.setLoop(true);
- },
- 'onStateChange': function(e){
- if(e.target.setVolume && nomute!="yes"){
- e.target.setVolume(0);
- }
-
- if(e.data === -1){
- var sp=window.fix_scrolltop_beforestop_youtube;
- if(sp>=0){
- $('html, body').scrollTop(sp);
- delete window.fix_scrolltop_beforestop_youtube;
- }
- }
- if(e.data === YT.PlayerState.PLAYING){
- playtimer = window.setInterval(function() {
- var a=e.target.getCurrentTime();
- var b=e.target.getDuration();
- if(a+1>b && b!==0){
- e.target.seekTo(0);
- if(noloop==="yes"){
- e.target.stopVideo();
- e.target.clearVideo();
- }
- }
- }, 1000);
- }else{
- window.clearTimeout(playtimer);
- }
- }
- }
- });
- }
- }
- def.then(defFunc);
- }
-
- /*$(document).ready(function(){*/
- var tag = document.createElement('script');
-
- tag.src = "https://www.youtube.com/iframe_api";
- var firstScriptTag = document.getElementsByTagName('script')[0];
- firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
- /*});*/
-
- window.onYouTubeIframeAPIReady = function(){
- def.resolve();
- }
-
-})( jQuery );
-
-
-(function($){
- /**
- * Global object that implements the event model.
-В В В В В * The essence of it is that he is one and is global, it all podpisyvayutsya
-В В В В В * Amity and ask him the same way
-В В В В В * (Instead of each object was emitterom = /)
-В В В В В *constructor
-В В В В В *version 0.0.1
- */
- function Observer(){
- this.callbacks = {};
- }
-
- Observer.prototype.defaultConfig = {
- single : false,
- context : null
- };
-
- Observer.prototype.addEventListener = function(name, callback, config){
- evtCallbacks = this._getEventCallbacks(name);
- if(!evtCallbacks){
- evtCallbacks = this.callbacks[name] = [];
- }
-
- evtCallbacks.push({
- callback : callback,
- config : (typeof config == "object" ? config : this.defaultConfig)
- });
- }
-
- Observer.prototype._getEventCallbacks = function(name){
- return this.callbacks[name];
- }
-
- Observer.prototype.removeEventListener = function(name, callback){
- var cbs = this._getEventCallbacks(name);
- if(!cbs){
- return false;
- }
-
- for(var i= 0, l = cbs.length, cbObj; i < l; i++){
- cbObj = cbs[i];
- if(callback === cbObj.callback){
- cbs.splice(i,1);
- return true;
- }
- }
- return false;
- }
-
- Observer.prototype.emitEvent = function(name, data){
- var cbs = [];
- extend(cbs,this._getEventCallbacks(name));
- for(var i= 0, l = cbs.length, cbObj, cb, config; i < l; i++){
- cbObj = cbs[i];
- cb = cbObj.callback;
- config = cbObj.config;
- if(config.context){
- cb.call(config.context, data);
- }else{
- cb(data);
- }
-
- if(config.single){
- this.removeEventListener(name, cb);
- }
- }
- }
-
- window.observer = new Observer();
-
-})( jQuery );
-
-
-(function($){
- $(document).ready(function(){
- if($isMobile == false && $('#allrecords').attr('data-blocks-animationoff')!=='yes'){
- $(".r").each(function(i) {
- if($(this).attr('style') && $(this).attr('style').indexOf('background-color') !== -1){
- $(this).attr('data-animationappear','off');
- }
- });
- /*add animation*/
- var tiles = $(".r").not('[data-animationappear=off], [data-screen-min], [data-screen-max]'),
- wnd = $(window);
- tiles.each(function(i) {
- a = $(this).offset().top;
- b = wnd.scrollTop() + wnd.height() + 300 ;
- if (a > 1000 && a > b ){ $(this).fadeTo(0,0); }
- });
- function blocksfade(){
- if(tiles.length){
- for(var i = tiles.length - 1, tile, a, b; i >= 0; i--){
- tile = $(tiles[i]);
- a = tile.offset().top;
- b = wnd.scrollTop() + wnd.height() - 100;
- if(a < b){
- tile.fadeTo(500, 1, function() {});
- tiles.splice(i, 1);
- }
- }
- }else{
- wnd.unbind('scroll', blocksfade);
- }
- }
- wnd.scroll(blocksfade);
- blocksfade();
- }
- if($("body").height() < $(window).height()-100){ $(".t-tildalabel").css("display","none"); }
- });
-})( jQuery );
-
-
-(function($){
- function blocksdisplay(){
- var window_width = $(window).width();
- var recs = $('div.r[data-screen-max], div.r[data-screen-min]');
- var max,min;
- var disp;
- recs.each(function(i) {
- disp = $(this).css("display");
- max = $(this).attr("data-screen-max");
- if( max === undefined) { max=10000; }
- max = parseInt(max);
-
- min = $(this).attr("data-screen-min");
- if( min === undefined) { min=0; }
- min = parseInt(min);
- console.log(min+"-"+max);
- if(min<=max){
- if (window_width <= max && window_width > min) {
- if(disp!="block") { $(this).css("display","block"); }
- }else{
- if(disp!="none"){ $(this).css("display","none"); }
- }
- }
- });
- }
-
- $(document).ready(function(){
- blocksdisplay();
- });
-
- $(window).resize(function() {
- blocksdisplay();
- });
-
-})( jQuery );
-
-
-
-/**
- * @VideoBG function preserve Copyright 2011 Syd Lawrence ( www.sydlawrence.com ). Version: 0.2
- * Licensed under MIT and GPLv2.
- */
-
-(function( $ ){
-
- $.fn.videoBG = function( selector, options ) {
-
- var options = {};
- if (typeof selector == "object") {
- options = $.extend({}, $.fn.videoBG.defaults, selector);
- } else {
- if (!selector) {
- options = $.fn.videoBG.defaults;
- } else {
- return $(selector).videoBG(options);
- }
- }
-
- var container = $(this);
-
- /* check if elements available otherwise it will cause issues*/
- if (!container.length) {
- return;
- }
-
- /* container to be at least relative*/
- if (container.css('position') == 'static' || !container.css('position')) {
- container.css('position','relative');
- }
-
- /* we need a width*/
- if (options.width == 0) {
- options.width = container.width();
- }
-
- /* we need a height*/
- if (options.height == 0) {
- options.height = container.height();
- }
-
- /* get the wrapper*/
- var wrap = $.fn.videoBG.wrapper();
- wrap.height(options.height)
- .width(options.width);
-
- /* if is a text replacement*/
- if (options.textReplacement) {
-
- /* force sizes*/
- options.scale = true;
-
- /* set sizes and forcing text out*/
- container.width(options.width)
- .height(options.height)
- .css('text-indent','-9999px');
- } else {
-
- /* set the wrapper above the video*/
- wrap.css('z-index',options.zIndex+1);
- }
-
- /* move the contents into the wrapper
- // commented by n.o
- //wrap.html(container.clone(true));*/
-
- /* get the video*/
- var video = $.fn.videoBG.video(options);
-
- /* if we are forcing width / height */
- if (options.scale) {
-
- /* overlay wrapper*/
- wrap.height(options.height)
- .width(options.width);
-
- /* video*/
- video.height(options.height)
- .width(options.width);
- }
-
- /* add it all to the container*/
- container.html(wrap);
- container.append(video);
-
- return video.find("video")[0];
- }
-
- /* set to fullscreen*/
- $.fn.videoBG.setFullscreen = function($el) {
- var windowWidth = $(window).width(),
- windowHeight = $(window).height();
-
- $el.css('min-height',0).css('min-width',0);
- $el.parent().width(windowWidth).height(windowHeight);
- /* if by width */
- if (windowWidth / windowHeight > $el.aspectRatio) {
- $el.width(windowWidth).height('auto');
- /* shift the element up*/
- var height = $el.height();
- var shift = (height - windowHeight) / 2;
- if (shift < 0){ shift = 0; }
- $el.css("top",-shift);
- } else {
- $el.width('auto').height(windowHeight);
- /* shift the element left*/
- var width = $el.width();
- var shift = (width - windowWidth) / 2;
- if (shift < 0){ shift = 0;}
- $el.css("left",-shift);
-
- /* this is a hack mainly due to the iphone*/
- if (shift === 0) {
- var t = setTimeout(function() {
- $.fn.videoBG.setFullscreen($el);
- },500);
- }
- }
-
- $('body > .videoBG_wrapper').width(windowWidth).height(windowHeight);
-
- }
-
- /* get the formatted video element*/
- $.fn.videoBG.video = function(options) {
-
- /*commented by n.o*/
- /*$('html, body').scrollTop(-1);*/
-
- /* video container*/
- var $div = $('
');
- $div.addClass('videoBG')
- .css('position',options.position)
- .css('z-index',options.zIndex)
- .css('top',0)
- .css('left',0)
- .css('height',options.height)
- .css('width',options.width)
- .css('opacity',options.opacity)
- .css('overflow','hidden');
-
- /* video element*/
- var $video = $(' ');
- $video.css('position','absolute')
- .css('z-index',options.zIndex)
- .attr('poster',options.poster)
- .css('top',0)
- .css('left',0)
- .css('min-width','100%')
- .css('min-height','100%');
-
- if (options.autoplay) {
- $video.attr('autoplay',options.autoplay);
- }
-
- if(options.volume>0){
- $video.prop("volume", options.volume);
- }else{
- $video.prop("volume", 0);
- }
-
- /* if fullscreen*/
- if (options.fullscreen) {
- $video.bind('canplay',function() {
- /* set the aspect ratio*/
- $video.aspectRatio = $video.width() / $video.height();
- $.fn.videoBG.setFullscreen($video);
- })
-
- /* listen out for screenresize*/
- var resizeTimeout;
- $(window).resize(function() {
- clearTimeout(resizeTimeout);
- resizeTimeout = setTimeout(function() {
- $.fn.videoBG.setFullscreen($video);
- },100);
- });
- $.fn.videoBG.setFullscreen($video);
- }
-
-
- /* video standard element*/
- var v = $video[0];
-
- /* if meant to loop*/
- if (options.loop) {
- loops_left = options.loop;
-
- /* cant use the loop attribute as firefox doesnt support it*/
- $video.bind('ended', function(){
-
- /* if we have some loops to throw*/
- if (loops_left) {
- /* replay that bad boy*/
- v.play();
- }
-
- /* if not forever*/
- if (loops_left !== true) {
- /* one less loop*/
- loops_left--;
- }
- });
- }
-
- /* when can play, play*/
- $video.bind('canplay', function(){
-
- if (options.autoplay) {
- /* replay that bad boy*/
- v.play();
- }
-
- });
-
-
- /* if supports video*/
- if ($.fn.videoBG.supportsVideo()) {
-
- /* supports webm*/
- if ($.fn.videoBG.supportType('webm') && options.webm != ""){
-
- /* play webm*/
- $video.attr('src',options.webm);
- }
- /* supports mp4*/
- else {
- if ($.fn.videoBG.supportType('mp4') && options.mp4 != "") {
-
- /* play mp4*/
- $video.attr('src',options.mp4);
-
- /* $video.html(' ');*/
-
- }
- /* throw ogv at it then*/
- else {
-
- /* play ogv*/
- $video.attr('src',options.ogv);
- }
- }
-
- }
-
-
-
- /* image for those that dont support the video */
- var $img = $(' ');
- $img.attr('src',options.poster)
- .css('position','absolute')
- .css('z-index',options.zIndex)
- .css('top',0)
- .css('left',0)
- .css('min-width','100%')
- .css('min-height','100%');
-
- /* add the image to the video*/
- /* if suuports video*/
- if ($.fn.videoBG.supportsVideo()) {
- /* add the video to the wrapper*/
- $div.html($video);
- }
-
- /* nope - whoa old skool*/
- else {
-
- /* add the image instead*/
- $div.html($img);
- }
-
- /* if text replacement*/
- if (options.textReplacement) {
-
- /* force the heights and widths*/
- $div.css('min-height',1).css('min-width',1);
- $video.css('min-height',1).css('min-width',1);
- $img.css('min-height',1).css('min-width',1);
-
- $div.height(options.height).width(options.width);
- $video.height(options.height).width(options.width);
- $img.height(options.height).width(options.width);
- }
-
- if ($.fn.videoBG.supportsVideo()) {
-/* v.play();*/
- }
- return $div;
- }
-
- /* check if suuports video*/
- $.fn.videoBG.supportsVideo = function() {
- return (document.createElement('video').canPlayType);
- }
-
- /* check which type is supported*/
- $.fn.videoBG.supportType = function(str) {
-
- /* if not at all supported*/
- if (!$.fn.videoBG.supportsVideo()) {
- return false;
- }
-
- /* create video*/
- var v = document.createElement('video');
-
- /* check which?*/
- switch (str) {
- case 'webm' :
- return (v.canPlayType('video/webm; codecs="vp8, vorbis"'));
- break;
- case 'mp4' :
- return (v.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"'));
- break;
- case 'ogv' :
- return (v.canPlayType('video/ogg; codecs="theora, vorbis"'));
- break;
- }
- /* nope*/
- return false;
- }
-
- /* get the overlay wrapper*/
- $.fn.videoBG.wrapper = function() {
- var $wrap = $('
');
- $wrap.addClass('videoBG_wrapper')
- .css('position','absolute')
- .css('top',0)
- .css('left',0);
- return $wrap;
- }
-
- /* these are the defaults*/
- $.fn.videoBG.defaults = {
- mp4:'',
- ogv:'',
- webm:'',
- poster:'',
- autoplay:true,
- loop:true,
- scale:false,
- position:"absolute",
- opacity:1,
- textReplacement:false,
- zIndex:0,
- width:0,
- height:0,
- fullscreen:false,
- imgFallback:true
- }
-
-})( jQuery );
-
-
-
-/**
- * Parallax function created by alex on 7/4/14.
- */
-
-(function( $ ){
- var $window = $(window);
- var windowHeight = $window.height();
-
- $window.resize(function () {
- windowHeight = $window.height();
- });
-
- $.fn.parallax = function(xpos, speedFactor, outerHeight) {
- var $this = $(this);
- var getHeight;
- var firstTop;
- var paddingTop = 0;
- var isWebkitTransform = (typeof document.body.style['-webkit-transform'] == "undefined" ? false : true);
- if(isWebkitTransform){
- $this.css('position', 'relative');
- }
-
- /*get the starting position of each element to have parallax applied to it*/
-
- window.correctFirstTop4Parallax = function(){
- $this.each(function(){
- firstTop = $this.offset().top;
- });
- };
-
- window.correctFirstTop4Parallax();
-
-
- if (outerHeight) {
- getHeight = function(jqo) {
- return jqo.outerHeight(true);
- };
- } else {
- getHeight = function(jqo) {
- return jqo.height();
- };
- }
-
- /* setup defaults if arguments aren't specified*/
- if (arguments.length < 1 || xpos === null){ xpos = "50%"; }
- if (arguments.length < 2 || speedFactor === null){ speedFactor = 0.1; }
- if (arguments.length < 3 || outerHeight === null){ outerHeight = true; }
- /* function to be called whenever the window is scrolled or resized*/
- function update(){
- var pos = $window.scrollTop();
-
- $this.each(function(){
- var $element = $(this);
- var top = $element.offset().top;
- var height = getHeight($element);
- var rect = this.getBoundingClientRect();
-/* var backgroundVerticalShift = -Math.abs(Math.round((firstTop - pos) * speedFactor));*/
- /* Check if totally above or totally below viewport*/
- if (top + height < pos || top > pos + windowHeight) {
- return;
- }
- var backgroundVerticalShift = -1 * Math.round(rect.top * speedFactor);
- if(isWebkitTransform){
- this.style['-webkit-transform'] = "translateY(" + backgroundVerticalShift + "px)";
- }else{
- this.style['top'] = backgroundVerticalShift + "px";
- }
- });
- }
- $(window).resize(window.correctFirstTop4Parallax);
- $window.bind('scroll', update).resize(update);
- if(document.readyState !== "complete"){
- window.addEventListener('load', function(){
- update();
- });
- }else{
- update();
- }
- };
-})(jQuery);
-
-
-(function( $ ){
- function t_initZoom(){
- if ( $('[data-zoomable="yes"]').length ) {
- $('[data-zoomable="yes"]').addClass("t-zoomable");
- $("body").append('');
- t_showZoom();
- $(document).keydown(function(e) {
- if (e.keyCode == 27) {
- $('body').removeClass("t-zoomer__show");
- $('body').removeClass("t-zoomer__show_fixed");
- }
- });
- $('.t-zoomer__close, .t-zoomer__bg').click(function(e){
- $('body').removeClass("t-zoomer__show");
- $('body').removeClass("t-zoomer__show_fixed");
- });
- }
- }
-
- function t_showZoom(){
- $('.t-zoomable').click(function(e){
- $("body").addClass("t-zoomer__show");
- $(".t-zoomer__container").html('');
-
- var id = $(this).closest(".r").attr("id");
- var images = $("#"+id+"").find(".t-zoomable");
- images.each(function () {
- var images_urls = $(this).attr('data-img-zoom-url').split(',');
- if($(this).is("img")) {
- var imgdescr = $(this).attr('alt');
- } else {
- if ($(this).is("div")) {
- var imgdescr = $(this).attr('title');
- }
- }
- images_urls.forEach(function() {
- if (typeof imgdescr !== typeof undefined && imgdescr !== false) {
- $(".t-carousel__zoomer__inner").append("");
- } else {
- $(".t-carousel__zoomer__inner").append("");
- }
- });
- });
-
- var image_descr = $(".t-carousel__zoomer__item");
- image_descr.each(function () {
- $(this).css("display", "block");
- var height = $(this).find(".t-zoomer__comments").height();
- $(this).css("display", "");
- var image_active = $(this).find(".t-carousel__zoomer__wrapper");
- image_active.css("bottom", height);
- });
-
- var target_url = $(this).attr("data-img-zoom-url"),
- target_img = $(".t-carousel__zoomer__img[src=\""+target_url+"\"]"),
- target = target_img.closest(".t-carousel__zoomer__item");
- target.addClass("active");
-
- var slides_count = $(".t-carousel__zoomer__item").size();
- if (slides_count > 1) {
- $('body').addClass("t-zoomer__show_fixed");
- } else {
- $(".t-carousel__zoomer__control").css("display", "none");
- }
-
-
- $('.t-carousel__zoomer__img').click(function(e){
- $('body').removeClass("t-zoomer__show");
- $('body').removeClass("t-zoomer__show_fixed");
- });
-
- var lastScrollTop = 0;
- $(window).scroll(function(event){
- var st = $(this).scrollTop();
- if (st > lastScrollTop){
- $('body').removeClass("t-zoomer__show");
- }
- lastScrollTop = st;
- });
- });
- }
-
- $(document).ready(function(){
- t_initZoom();
- });
-
+(function( $ ){
+ $isMobile=false;
+ /* isWidthLimited = $(window).width() <= 1024; */
+ if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
+ $isMobile=true;
+ }
+ window.isMobile=$isMobile;
+
+ if($isMobile == true){
+ var correctHeight = function(){
+ /* covers */
+ var coverCarries = document.body.querySelectorAll('.t-cover__carrier'),
+ viewPortHeight = $(window).height(),
+ factor = 0;
+ for(var i= 0, l = coverCarries.length, cc , ccStyle, newHeight, parent, opacityLayer, textBox; i < l; i++){
+ cc = coverCarries[i];
+ ccStyle = cc.style;
+ if(ccStyle.height.indexOf('vh') > -1){
+ factor = parseInt(ccStyle.height) / 100;
+ newHeight = viewPortHeight + 'px';
+ parent = $(cc).parent('.t-cover');
+ if(parent && (parent = parent[0])){
+ opacityLayer = parent.querySelector('.t-cover__filter');
+ textBox = parent.querySelector('.t-cover__wrapper');
+ if (opacityLayer) {
+ opacityLayer.style.height = newHeight;
+ }
+ if(textBox) {
+ textBox.style.height = newHeight;
+ }
+ ccStyle.height = parent.style.height = newHeight;
+ }
+ }
+ }
+ /* others */
+ var elCarries = document.body.querySelectorAll('[data-height-correct-vh]'),
+ viewPortHeight = $(window).height(),
+ factor = 0;
+ for(var i= 0, l = elCarries.length, cc , ccStyle, newHeight, parent, opacityLayer, textBox; i < l; i++){
+ cc = elCarries[i];
+ ccStyle = cc.style;
+ if(ccStyle.height.indexOf('vh') > -1){
+ factor = parseInt(ccStyle.height) / 100;
+ newHeight = viewPortHeight + 'px';
+ parent = $(cc).parent('.t-cover');
+ ccStyle.height = newHeight;
+ }
+ }
+ };
+ $(document).ready(function(){
+ correctHeight();
+ });
+ $(window).load(function(){
+ correctHeight();
+ });
+ }
+
+ if($isMobile == true){
+ if($(window).width() < 480){
+ $(document).ready(function(){
+ $("div[data-customstyle=yes]").each(function(index) {
+ if($(this).css('font-size').replace('px','')>26){
+ $(this).css('font-size','');
+ $(this).css('line-height','');
+ }
+ });
+ $("[field]").find("span").each(function(index) {
+ if($(this).css('font-size').replace('px','')>26){
+ $(this).css('font-size','');
+ }
+ });
+ });
+ $(window).load(function(){
+ var window_width=$(window).width();
+ $(".r").each(function(){
+ var el=$(this);
+ $(this).find("div").not("[data-auto-correct-mobile-width=false], .tn-elem, .tn-atom").each(function(){
+ var r_div_width=parseInt($(this).outerWidth(true));
+ if((r_div_width)>window_width){
+ console.log('Block not optimized for mobile width. Block width:'+r_div_width+' Block id:'+el.attr('id'));
+ console.log($(this));
+ el.css("overflow","auto");
+ if((r_div_width-3)>window_width){
+ el.css("word-break","break-all");
+ }
+ }
+ });
+ });
+ });
+ }else if($(window).width() < 900){
+ $(document).ready(function(){
+ $("div[data-customstyle=yes]").each(function(index) {
+ if($(this).css('font-size').replace('px','')>30){
+ $(this).css('font-size','');
+ $(this).css('line-height','');
+ }
+ });
+ $("[field]").find("span").each(function(index) {
+ if($(this).css('font-size').replace('px','')>30){
+ $(this).css('font-size','');
+ }
+ });
+ });
+ }
+ }
+
+})( jQuery );
+
+
+(function($){
+ /**
+ * @constructor
+ */
+ function VideoLoadProcessor(){
+ this.setScrollListener();
+ }
+
+ VideoLoadProcessor.prototype.videoTags = [];
+ VideoLoadProcessor.prototype.defaultConfig = {
+ isNeedStop : false
+ };
+ VideoLoadProcessor.prototype.videoConfigs = [];
+ /**
+ * @param {HTMLVideoElement} video
+ * @param {{} | Undefined} config
+ */
+ VideoLoadProcessor.prototype.registerNewVideo = function(video, config){
+ if(!(video instanceof HTMLVideoElement)){
+ throw new Error("Wrong tag passed into registerNewVideo");
+ }
+ if(this.videoTags.indexOf(video) == -1){
+ this.videoTags.push(video);
+ this.videoConfigs.push(typeof config == "undefined" ? this.defaultConfig : config);
+ this.scrollCb();
+ return true;
+ }
+ return false;
+ }
+ /**
+ * @param {HTMLVideoElement} video
+ */
+ VideoLoadProcessor.prototype.unergisterVideo = function(video){
+ if(!(video instanceof HTMLVideoElement)){
+ throw new Error("Wrong tag passed into unregisterNewVideo");
+ }
+ var index;
+ if((index = this.videoTags.indexOf(video)) > -1){
+ if(typeof video.remove == "function"){
+ video.remove();
+ }else{
+ if(video.parentNode){
+ video.parentNode.removeChild(video);
+ }
+ }
+ this.pauseVideo(video, this.videoConfigs[index]);
+ this.videoTags.splice(index, 1);
+ this.videoConfigs.splice(index, 1);
+ return true;
+ }
+ return false;
+ }
+
+ VideoLoadProcessor.prototype.pauseVideo = function(video, config){
+ if(!config){
+ throw new Error("Wrong config type!");
+ }
+ video.pause();
+ if(config.isNeedStop){
+ video.load();
+ }
+ }
+
+ VideoLoadProcessor.prototype.setScrollListener = function(){
+ $(window).scroll(jQuery.proxy(this.scrollCb, this));
+ }
+
+ VideoLoadProcessor.prototype.scrollCb = function(){
+ var windowHeight = $(window).height(),
+ _shift = 0,
+ _v = null;
+ for(var i= 0, l = this.videoTags.length; i < l; i++){
+ _v = this.videoTags[i], _vrect = this.getVideoBoundingRect(_v, false);
+ /* set fade volume */
+ if(Math.abs(_vrect.top) < windowHeight && Math.abs(_vrect.top) > windowHeight/2){
+ var vol = 1 - (Math.abs(_vrect.top)-windowHeight/2)/(windowHeight/2) - 0.2;
+ if(vol>0 && vol<=1 && _v.volume!=0) { _v.volume=vol; }
+ }
+ /* then pause */
+ if(Math.abs(_vrect.top) > windowHeight || _vrect.height == 0 /*display : none*/){
+ this.pauseVideo(_v, this.videoConfigs[i]);
+ continue;
+ }
+ if(_v.paused){
+ _v.play();
+ }
+ }
+ };
+
+ VideoLoadProcessor.prototype.getVideoObject = function(video){
+ for(var i= 0, l = this.videoTags.length; i > l; i++){
+ var vo = this.videoTags[i];
+ if(vo.v === video) {
+ return vo;
+ }
+ }
+ return null;
+ }
+
+ VideoLoadProcessor.prototype.getVideoBoundingRect = function(video, isNeedParent){
+ if(typeof isNeedParent == "undefined"){
+ isNeedParent = true;
+ }
+ var parent = null;
+ if(isNeedParent){
+ parent = $(video).parents('.r')[0];
+ if(!parent){
+ parent = video;
+ }
+ }else{
+ parent = video;
+ }
+ return parent.getBoundingClientRect();
+ }
+ window.videoLoadProcessor = new VideoLoadProcessor();
+
+})( jQuery );
+
+
+(function($){
+
+ function SequenceController(){
+ this.setScrollCb();
+ this.itemHeight = screen.availHeight;/* document.documentElement.clientHeight || window.innerHeight || screen.availHeight;*/
+ var itemTransitionItemRelation = 0.25;
+ this.itemTransitionTop = this.itemHeight * itemTransitionItemRelation;
+ this.activeItemIndex = null;
+ this.windowHeight = document.documentElement.clientHeight || window.innerHeight || screen.availHeight;
+ this.topOffsetShift = -150;
+ $(window).resize(jQuery.proxy(this.recalculateAllSequencesOffsets,this));
+ this._resizeInterval = setInterval(jQuery.proxy(this.scrollCb,this),500);
+ }
+
+ SequenceController.prototype.defaultConfig = {
+ orientation : "vertical",
+ speedFactor : 1,
+ automated : false
+ };
+
+ SequenceController.prototype.sequenceObjects = [];
+ /**
+ * @param {{}} sO
+ */
+
+ SequenceController.prototype.recalculateAllSequencesOffsets = function(){
+ if(this._resizeTimeout) {
+ clearTimeout(this._resizeTimeout);
+ }
+
+ if(this._resizeInterval){
+ clearInterval(this._resizeInterval);
+ }
+
+ this._resizeTimeout = setTimeout(jQuery.proxy(function(){
+ this.scrollCb();
+ this._resizeInterval = setInterval(jQuery.proxy(this.scrollCb,this),500);
+ },this),10);
+ }
+
+ SequenceController.prototype.registerNewBlock = function(node){
+ if(!(node instanceof HTMLElement)){
+ throw new Error("Wrong node type in registerNewBlock");
+ }
+ for(var i= 0, l = this.sequenceObjects.length; i < l; i++){
+ if(this.sequenceObjects[i].sequenceBlock === node) {
+ return false;
+ }
+ }
+ var sequenceHolder = node.querySelector('[data-hook="sequence-holder"]'),
+ sequenceHeight = 0,
+ sequenceOffsetTop = this.getAbsoluteTopOffset(sequenceHolder),
+ items = (function(){
+ var _items = Array.prototype.slice.call(node.querySelectorAll('[data-hook="sequence-item"]'), 0), __items = [];
+ _items.forEach(jQuery.proxy(function(el, i, array){
+ var elHeight = this.getItemHeight(el),
+ backgroundHolder = el.querySelector('[data-hook="item-background"]');
+ el.style.height = elHeight + 'px';
+ backgroundHolder.style.height = this.itemHeight + 'px';
+ if(i this.itemTransitionTop){
+ currentItemIndex = i;
+ break;
+ }
+ }
+ if(currentItemIndex == null){
+ return;
+ }
+ opacity = nodeRect.top / this.itemTransitionTop;
+ if(opacity > 1){
+ opacity = 1;
+ }else{
+ if(opacity < 0){
+ opacity = 0;
+ }
+ }
+ for(var i= 0, l = sequenceItems.length; i < l; i++){
+ node = sequenceItems[i].node,
+ backgroundHolderStyle = sequenceItems[i].backgroundHolder.style;
+ if(backgroundHolderStyle.position != "fixed"){
+ backgroundHolderStyle.position = "fixed";
+ }
+ if(i == currentItemIndex){ /* transitted already */
+ backgroundHolderStyle.opacity = 1 - opacity;
+ node.querySelector('.txt-holder').style.opacity = 1 - opacity;
+ } else {
+ if(i == currentItemIndex - 1){
+ backgroundHolderStyle.opacity = opacity;
+ node.querySelector('.txt-holder').style.opacity = opacity;
+ }else{
+ backgroundHolderStyle.opacity = 0;
+ node.querySelector('.txt-holder').style.opacity = 0;
+ }
+ }
+ }
+ }
+
+ SequenceController.prototype.stopSequence = function(sequenceObject){
+ if(sequenceObject.started == false){
+ return;
+ }
+ sequenceObject.items.forEach(function(el, i, array){
+ el.backgroundHolder.style.position = 'relative';
+ el.backgroundHolder.style.display = 'block';
+ el.backgroundHolder.style.opacity = 1;
+ });
+ document.body.style.backgroundColor = sequenceObject.prevBackgroundColor;
+ sequenceObject.started = false;
+ }
+
+ SequenceController.prototype.scrollCb = function(){
+ var scrollTop = $(window).scrollTop();
+ for(var i= 0, l = this.sequenceObjects.length, sO, top; i < l; i++){
+ sO = this.sequenceObjects[i];
+ var boundingRect = sO.sequenceHolder.getBoundingClientRect();
+ if(boundingRect.top < 0 && boundingRect.bottom > 0 && boundingRect.bottom > boundingRect.height - sO.sequenceHeight - 100){
+ this.processSequence(sO);
+ }else{
+ this.stopSequence(sO);
+ }
+ }
+ }
+
+ SequenceController.prototype.setScrollCb = function(){
+ this._scrollCb = jQuery.proxy(this.scrollCb, this);/*.bind(this);*/
+
+ $(window).scroll(this._scrollCb);
+ }
+
+ window.sequenceController = new SequenceController();
+
+ window.processVideo = function(v){
+ mp4Src = $(v).attr('data-content-video-url-mp4');
+ webmSrc = $(v).attr('data-content-video-url-webm');
+ $(v).css("background-color", "transparent");
+ $(v).css("background-image", "");
+ var options = {
+ mp4: mp4Src,
+ webm: webmSrc,
+ /*poster: "",*/
+ preload: "none",
+ autoplay : false,
+ loop: true,
+ scale:true,
+ zIndex:0,
+ width: "100%"
+ };
+ /* Initializing the videos*/
+ vid = $(v).videoBG(options);
+ videoLoadProcessor.registerNewVideo(vid, {
+ isNeedStop : false
+ });
+ }
+
+
+ window.cover_init = function(id){
+
+ $(document).ready(function(){
+ var cover_carrier = document.body.querySelector('#coverCarry' + id);
+ var el = $(cover_carrier);
+
+ var backgroundurl=el.attr('data-content-cover-bg');
+ var height=el.attr('data-content-cover-height');
+ var parallax=el.attr('data-content-cover-parallax');
+ var videomp4=el.attr('data-content-video-url-mp4');
+ var videowebm=el.attr('data-content-video-url-webm');
+ var youtubeid=el.attr('data-content-video-url-youtube');
+ var noloop=el.attr('data-content-video-noloop');
+ var nomute=el.attr('data-content-video-nomute');
+ var bgbase64=el.attr('data-content-bg-base64');
+ var video_nocover=el.attr('data-content-video-nocover');
+
+ if(!backgroundurl){ backgroundurl="" };
+ if(!height) { height=""; }
+ if(!parallax) { parallax=""; }
+ if(!videomp4) { videomp4=""; }
+ if(!videowebm) { videowebm=""; }
+ if(!youtubeid) { youtubeid=""; }
+ if(!noloop) { noloop=""; }
+ if(!nomute) { nomute=""; }
+ if(!youtubeid){ youtubeid=""; }
+ if(!bgbase64){ bgbase64=""; }
+
+ if(video_nocover && video_nocover=='yes') {
+ videomp4="";
+ videowebm="";
+ youtubeid="";
+ }
+
+ if($isMobile && (videowebm!="" || videomp4!="" || youtubeid!="")){
+ el.css('background-image', "url('" + backgroundurl + "')");
+ }
+
+ /*fix content height*/
+ var hcover=$("#rec" + id).find(".t-cover").height();
+ var hcontent=$("#rec" + id).find("div[data-hook-content]").height();
+ if(hcontent>300 && hcover -1){
+ if( parseInt(height) > 100 ){
+ el.css("height","100vh");
+ height_more_vh="yes";
+ }
+ }
+ if(height.indexOf('px') > -1){
+ if( parseInt(height) > $(window).height() ){
+ el.css("height","100vh");
+ height_more_vh="yes";
+ }
+ }
+ }
+
+ var cotimer;
+ var flagprocessed="";
+ var wnd=$(window);
+ var prnt=el.parent();
+
+ wnd.scroll(function() {
+ if(cotimer) {
+ window.clearTimeout(cotimer);
+ }
+
+ cotimer = window.setTimeout(function() {
+ if(!(flagprocessed>0)){
+ var a,b,c,d,s;
+
+ a = el.offset().top;
+ b = el.height();
+
+ c = wnd.scrollTop();
+ d = wnd.height();
+
+ if(((c+d) > a-500) && (c <= (a+b+500))){
+ var vid = el.videoBG({
+ mp4: videomp4,
+ webm: videowebm,
+ poster: '',
+ preload: 'none',
+ autoplay : false,
+ loop: loop,
+ volume:volume,
+ scale:true,
+ zIndex:0,
+ width: "100%"
+ });
+ videoLoadProcessor.registerNewVideo(vid);
+ flagprocessed=1;
+ }
+ }
+ }, 100);
+
+ if(parallax=="fixed" && height_more_vh=="yes"){
+ var aa,bb,cc,dd,ss;
+
+ aa = prnt.offset().top;
+ bb = prnt.height();
+
+ cc = wnd.scrollTop();
+ dd = wnd.height();
+
+ if(cc>=aa+bb-dd){
+ el.css("position","absolute");
+ el.css("bottom","0px");
+ el.css("top","auto");
+ /*el.css("vertical-align","bottom");*/
+ } else {
+ if(cc>=aa){
+ el.css("position","fixed");
+ el.css("top","0px");
+ } else {
+ if(cc0)){
+ var a,b,c,d,s;
+
+ a = el.offset().top;
+ b = el.height();
+
+ c = wnd.scrollTop();
+ d = wnd.height();
+
+ if(((c+d) > a-500) && (c <= (a+b+500))){
+ processYoutubeVideo(cover_carrier, height);
+ /*flagprocessed=1;*/
+ }
+ }
+ }, 100);
+ });
+
+ wnd.scroll();
+
+ }
+ }
+ }
+ }
+
+ if (parallax=="dynamic"){
+ if($isMobile == false)el.parallax("50%",0.2,true);
+ }
+
+ if (bgbase64=="yes" && backgroundurl!="" && videomp4=="" && videowebm=="" && youtubeid==""){
+ var bg_already="";
+ $(' ').attr('src', backgroundurl).load(function() {
+ $(this).remove();
+ el.css('background-image', "url('"+backgroundurl+"')");
+ el.css("opacity","1");
+ var bg_already="yes";
+ });
+ if(bg_already!="yes"){
+ el.css('background-image','');
+ el.css("opacity","0");
+ el.css("transition","opacity 25ms");
+ }
+ }
+
+ var coverarrow=$("#rec" + id).find(".t-cover__arrow-wrapper");
+ if(coverarrow.length>0){
+ coverarrow.click(function() {
+ /*var nextrec = $("#rec" + id).next();*/
+ /*if(nextrec.length>0)$('html, body').animate({scrollTop:nextrec.offset().top}, 500);*/
+ var recheight = $("#rec" + id).height();
+ if(recheight>0){ $('html, body').animate({scrollTop:$("#rec" + id).offset().top + recheight}, 500); }
+ });
+ }
+
+ });
+
+ }
+
+ $(document).ready(function(){
+ $(".t-cover__carrier").each(function() {
+ var id=$(this).attr('data-content-cover-id');
+ if(id>0) { cover_init(id); }
+ });
+ });
+
+ function processSrc(src,nocover){
+ if(src.indexOf('https://www.youtube.com/embed') == -1){
+ src = "https://www.youtube.com/embed" + (src[0] == '/' ? src : '/' + src);
+ }
+ var extractVideoId = function(src){
+ var parts = src.split('/'), neededPart = null;
+ for(var i=0, l = parts.length; i < l; i++){
+ if(parts[i] == "embed"){
+ neededPart = parts[i+1];
+ }
+ }
+ return neededPart;
+ }
+ var currentLocation = location.protocol+'//'+location.host;
+
+ if(nocover!="yes"){
+ src = (src[src.length-1] == '/' ? src : src) + '?autoplay=1&loop=1&enablejsapi=1&&playerapiid=featuredytplayer&controls=0&modestbranding=1&rel=0&showinfo=0&color=white&iv_load_policy=3&theme=light&wmode=transparent&origin='+currentLocation+'&playlist='+extractVideoId(src);
+ }else{
+ src = (src[src.length-1] == '/' ? src : src) + '?autoplay=0&loop=0&enablejsapi=1&&playerapiid=featuredytplayer&controls=1&modestbranding=1&rel=0&showinfo=0&color=black&iv_load_policy=3&theme=dark&wmode=transparent&origin='+currentLocation;
+ }
+ return src;
+ }
+
+ function onYouTubePlayerReady_do(div,player,nomute){
+ var timer;
+ var wnd = $(window);
+ var frame = $(div);
+ var timer_count=0;
+
+ wnd.scroll(function() {
+ if(timer) {
+ window.clearTimeout(timer);
+ if(timer_count>=15){
+ timer_player_do(frame,wnd,player,nomute);
+ timer_count=0;
+ }
+ timer_count++;
+ }
+
+ timer = window.setTimeout(function() {
+ timer_player_do(frame,wnd,player,nomute);
+ timer_count=0;
+ }, 100);
+ });
+
+ wnd.scroll();
+ }
+
+ function timer_player_do(frame,wnd,player,nomute){
+ var a,b,c,d,s;
+
+ a = frame.offset().top;
+ b = frame.height();
+
+ c = wnd.scrollTop();
+ d = wnd.height();
+
+ s = player.getPlayerState();
+
+ if(((c+d) > a) && (c <= (a+b))){
+ if(s !== 1) { player.playVideo(); }
+ if(nomute=="yes"){
+ if(c>a+b-100){
+ player.setVolume(30);
+ }else{
+ if(c>a+b-200){
+ player.setVolume(70);
+ }else{
+ if(c+d (a-500)){
+ if(s !== 2){
+ player.playVideo();
+ player.pauseVideo();
+ }
+ }else{
+ if(c > (a+b) && c < (a+b+500)){
+ if(s !== 2){
+ player.pauseVideo();
+ }
+ }else{
+ if(s !== 2){
+ player.pauseVideo();
+ }
+ }
+ }
+ }
+ }
+
+ var def = $.Deferred();
+
+ window.processYoutubeVideo = function(div, height){
+ var defFunc = function(){
+
+ console.log("youtube iframe processed");
+ var src = $(div).attr('data-content-video-url-youtube');
+ var nomute = $(div).attr('data-content-video-nomute');
+ var noloop = $(div).attr('data-content-video-noloop');
+ var nocover = $(div).attr('data-content-video-nocover');
+
+ var iframe = document.createElement('iframe');
+ iframe.src = processSrc(src,nocover);
+ iframe.frameBorder = 0;
+
+ if(nocover!="yes"){
+ if(!height){
+ height = "100vh";
+ }
+ if(height.indexOf('vh') > -1){
+ var wh = window.innerHeight;
+ if(!wh) {
+ wh = $(window).height();
+ }
+ var div_height = Math.floor((wh * (parseInt(height) / 100)));
+ }else{
+ var div_height = parseInt(height);
+ }
+ var div_width = Math.floor (parseInt(window.innerWidth));
+ if(!div_width) {
+ div_width = $(window).width();
+ }
+ var video_width = div_width;
+ var video_height = video_width * 0.5625;
+
+
+ var vw2 = video_width;
+ var vh2 = video_height + 110 + 110;
+ var delta_coef=1;
+
+ if((video_height-220) < div_height){
+ if(video_height 0){
+ iframe.style.marginTop = - Math.floor(heightDelta / 2 ) + 'px';
+ }
+ if(widthDelta > 0){
+ iframe.style.marginLeft = - Math.floor(widthDelta / 2) + 'px';
+ }
+ }else{
+ var video_height;
+ if(!height){
+ video_height = Math.floor ( $(div).width() * 0.5625 );
+ }
+ if(height && height.indexOf('vh') > -1){
+ video_height = Math.floor((window.innerHeight * (parseInt(height) / 100)));
+ }else{
+ if(height){
+ video_height = parseInt(height);
+ }
+ }
+
+ iframe.width="100%";
+ iframe.height=video_height + 'px';
+ }
+
+ var playtimer;
+ div.appendChild(iframe);
+ if($isMobile == false){
+ var player = new YT.Player(iframe,{
+ events:{
+ 'onReady': function(e){
+ onYouTubePlayerReady_do(div,e.target,nomute);
+ if(e.target.setVolume && nomute!="yes"){
+ e.target.setVolume(0);
+ }
+ e.target.setLoop(true);
+ },
+ 'onStateChange': function(e){
+ if(e.target.setVolume && nomute!="yes"){
+ e.target.setVolume(0);
+ }
+
+ if(e.data === -1){
+ var sp=window.fix_scrolltop_beforestop_youtube;
+ if(sp>=0){
+ $('html, body').scrollTop(sp);
+ delete window.fix_scrolltop_beforestop_youtube;
+ }
+ }
+ if(e.data === YT.PlayerState.PLAYING){
+ playtimer = window.setInterval(function() {
+ var a=e.target.getCurrentTime();
+ var b=e.target.getDuration();
+ if(a+1>b && b!==0){
+ e.target.seekTo(0);
+ if(noloop==="yes"){
+ e.target.stopVideo();
+ e.target.clearVideo();
+ }
+ }
+ }, 1000);
+ }else{
+ window.clearTimeout(playtimer);
+ }
+ }
+ }
+ });
+ }
+ }
+ def.then(defFunc);
+ }
+
+ /*$(document).ready(function(){*/
+ var tag = document.createElement('script');
+
+ tag.src = "https://www.youtube.com/iframe_api";
+ var firstScriptTag = document.getElementsByTagName('script')[0];
+ firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
+ /*});*/
+
+ window.onYouTubeIframeAPIReady = function(){
+ def.resolve();
+ }
+
+})( jQuery );
+
+
+(function($){
+ /**
+ * Global object that implements the event model.
+В В В В В * The essence of it is that he is one and is global, it all podpisyvayutsya
+В В В В В * Amity and ask him the same way
+В В В В В * (Instead of each object was emitterom = /)
+В В В В В *constructor
+В В В В В *version 0.0.1
+ */
+ function Observer(){
+ this.callbacks = {};
+ }
+
+ Observer.prototype.defaultConfig = {
+ single : false,
+ context : null
+ };
+
+ Observer.prototype.addEventListener = function(name, callback, config){
+ evtCallbacks = this._getEventCallbacks(name);
+ if(!evtCallbacks){
+ evtCallbacks = this.callbacks[name] = [];
+ }
+
+ evtCallbacks.push({
+ callback : callback,
+ config : (typeof config == "object" ? config : this.defaultConfig)
+ });
+ }
+
+ Observer.prototype._getEventCallbacks = function(name){
+ return this.callbacks[name];
+ }
+
+ Observer.prototype.removeEventListener = function(name, callback){
+ var cbs = this._getEventCallbacks(name);
+ if(!cbs){
+ return false;
+ }
+
+ for(var i= 0, l = cbs.length, cbObj; i < l; i++){
+ cbObj = cbs[i];
+ if(callback === cbObj.callback){
+ cbs.splice(i,1);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ Observer.prototype.emitEvent = function(name, data){
+ var cbs = [];
+ extend(cbs,this._getEventCallbacks(name));
+ for(var i= 0, l = cbs.length, cbObj, cb, config; i < l; i++){
+ cbObj = cbs[i];
+ cb = cbObj.callback;
+ config = cbObj.config;
+ if(config.context){
+ cb.call(config.context, data);
+ }else{
+ cb(data);
+ }
+
+ if(config.single){
+ this.removeEventListener(name, cb);
+ }
+ }
+ }
+
+ window.observer = new Observer();
+
+})( jQuery );
+
+
+(function($){
+ $(document).ready(function(){
+ if($isMobile == false && $('#allrecords').attr('data-blocks-animationoff')!=='yes'){
+ $(".r").each(function(i) {
+ if($(this).attr('style') && $(this).attr('style').indexOf('background-color') !== -1){
+ $(this).attr('data-animationappear','off');
+ }
+ });
+ /*add animation*/
+ var tiles = $(".r").not('[data-animationappear=off], [data-screen-min], [data-screen-max]'),
+ wnd = $(window);
+ tiles.each(function(i) {
+ a = $(this).offset().top;
+ b = wnd.scrollTop() + wnd.height() + 300 ;
+ if (a > 1000 && a > b ){ $(this).fadeTo(0,0); }
+ });
+ function blocksfade(){
+ if(tiles.length){
+ for(var i = tiles.length - 1, tile, a, b; i >= 0; i--){
+ tile = $(tiles[i]);
+ a = tile.offset().top;
+ b = wnd.scrollTop() + wnd.height() - 100;
+ if(a < b){
+ tile.fadeTo(500, 1, function() {});
+ tiles.splice(i, 1);
+ }
+ }
+ }else{
+ wnd.unbind('scroll', blocksfade);
+ }
+ }
+ wnd.scroll(blocksfade);
+ blocksfade();
+ }
+ if($("body").height() < $(window).height()-100){ $(".t-tildalabel").css("display","none"); }
+ });
+})( jQuery );
+
+
+(function($){
+ function blocksdisplay(){
+ var window_width = $(window).width();
+ var recs = $('div.r[data-screen-max], div.r[data-screen-min]');
+ var max,min;
+ var disp;
+ recs.each(function(i) {
+ disp = $(this).css("display");
+ max = $(this).attr("data-screen-max");
+ if( max === undefined) { max=10000; }
+ max = parseInt(max);
+
+ min = $(this).attr("data-screen-min");
+ if( min === undefined) { min=0; }
+ min = parseInt(min);
+ console.log(min+"-"+max);
+ if(min<=max){
+ if (window_width <= max && window_width > min) {
+ if(disp!="block") { $(this).css("display","block"); }
+ }else{
+ if(disp!="none"){ $(this).css("display","none"); }
+ }
+ }
+ });
+ }
+
+ $(document).ready(function(){
+ blocksdisplay();
+ });
+
+ $(window).resize(function() {
+ blocksdisplay();
+ });
+
+})( jQuery );
+
+
+
+/**
+ * @VideoBG function preserve Copyright 2011 Syd Lawrence ( www.sydlawrence.com ). Version: 0.2
+ * Licensed under MIT and GPLv2.
+ */
+
+(function( $ ){
+
+ $.fn.videoBG = function( selector, options ) {
+
+ var options = {};
+ if (typeof selector == "object") {
+ options = $.extend({}, $.fn.videoBG.defaults, selector);
+ } else {
+ if (!selector) {
+ options = $.fn.videoBG.defaults;
+ } else {
+ return $(selector).videoBG(options);
+ }
+ }
+
+ var container = $(this);
+
+ /* check if elements available otherwise it will cause issues*/
+ if (!container.length) {
+ return;
+ }
+
+ /* container to be at least relative*/
+ if (container.css('position') == 'static' || !container.css('position')) {
+ container.css('position','relative');
+ }
+
+ /* we need a width*/
+ if (options.width == 0) {
+ options.width = container.width();
+ }
+
+ /* we need a height*/
+ if (options.height == 0) {
+ options.height = container.height();
+ }
+
+ /* get the wrapper*/
+ var wrap = $.fn.videoBG.wrapper();
+ wrap.height(options.height)
+ .width(options.width);
+
+ /* if is a text replacement*/
+ if (options.textReplacement) {
+
+ /* force sizes*/
+ options.scale = true;
+
+ /* set sizes and forcing text out*/
+ container.width(options.width)
+ .height(options.height)
+ .css('text-indent','-9999px');
+ } else {
+
+ /* set the wrapper above the video*/
+ wrap.css('z-index',options.zIndex+1);
+ }
+
+ /* move the contents into the wrapper
+ // commented by n.o
+ //wrap.html(container.clone(true));*/
+
+ /* get the video*/
+ var video = $.fn.videoBG.video(options);
+
+ /* if we are forcing width / height */
+ if (options.scale) {
+
+ /* overlay wrapper*/
+ wrap.height(options.height)
+ .width(options.width);
+
+ /* video*/
+ video.height(options.height)
+ .width(options.width);
+ }
+
+ /* add it all to the container*/
+ container.html(wrap);
+ container.append(video);
+
+ return video.find("video")[0];
+ }
+
+ /* set to fullscreen*/
+ $.fn.videoBG.setFullscreen = function($el) {
+ var windowWidth = $(window).width(),
+ windowHeight = $(window).height();
+
+ $el.css('min-height',0).css('min-width',0);
+ $el.parent().width(windowWidth).height(windowHeight);
+ /* if by width */
+ if (windowWidth / windowHeight > $el.aspectRatio) {
+ $el.width(windowWidth).height('auto');
+ /* shift the element up*/
+ var height = $el.height();
+ var shift = (height - windowHeight) / 2;
+ if (shift < 0){ shift = 0; }
+ $el.css("top",-shift);
+ } else {
+ $el.width('auto').height(windowHeight);
+ /* shift the element left*/
+ var width = $el.width();
+ var shift = (width - windowWidth) / 2;
+ if (shift < 0){ shift = 0;}
+ $el.css("left",-shift);
+
+ /* this is a hack mainly due to the iphone*/
+ if (shift === 0) {
+ var t = setTimeout(function() {
+ $.fn.videoBG.setFullscreen($el);
+ },500);
+ }
+ }
+
+ $('body > .videoBG_wrapper').width(windowWidth).height(windowHeight);
+
+ }
+
+ /* get the formatted video element*/
+ $.fn.videoBG.video = function(options) {
+
+ /*commented by n.o*/
+ /*$('html, body').scrollTop(-1);*/
+
+ /* video container*/
+ var $div = $('
');
+ $div.addClass('videoBG')
+ .css('position',options.position)
+ .css('z-index',options.zIndex)
+ .css('top',0)
+ .css('left',0)
+ .css('height',options.height)
+ .css('width',options.width)
+ .css('opacity',options.opacity)
+ .css('overflow','hidden');
+
+ /* video element*/
+ var $video = $(' ');
+ $video.css('position','absolute')
+ .css('z-index',options.zIndex)
+ .attr('poster',options.poster)
+ .css('top',0)
+ .css('left',0)
+ .css('min-width','100%')
+ .css('min-height','100%');
+
+ if (options.autoplay) {
+ $video.attr('autoplay',options.autoplay);
+ }
+
+ if(options.volume>0){
+ $video.prop("volume", options.volume);
+ }else{
+ $video.prop("volume", 0);
+ }
+
+ /* if fullscreen*/
+ if (options.fullscreen) {
+ $video.bind('canplay',function() {
+ /* set the aspect ratio*/
+ $video.aspectRatio = $video.width() / $video.height();
+ $.fn.videoBG.setFullscreen($video);
+ })
+
+ /* listen out for screenresize*/
+ var resizeTimeout;
+ $(window).resize(function() {
+ clearTimeout(resizeTimeout);
+ resizeTimeout = setTimeout(function() {
+ $.fn.videoBG.setFullscreen($video);
+ },100);
+ });
+ $.fn.videoBG.setFullscreen($video);
+ }
+
+
+ /* video standard element*/
+ var v = $video[0];
+
+ /* if meant to loop*/
+ if (options.loop) {
+ loops_left = options.loop;
+
+ /* cant use the loop attribute as firefox doesnt support it*/
+ $video.bind('ended', function(){
+
+ /* if we have some loops to throw*/
+ if (loops_left) {
+ /* replay that bad boy*/
+ v.play();
+ }
+
+ /* if not forever*/
+ if (loops_left !== true) {
+ /* one less loop*/
+ loops_left--;
+ }
+ });
+ }
+
+ /* when can play, play*/
+ $video.bind('canplay', function(){
+
+ if (options.autoplay) {
+ /* replay that bad boy*/
+ v.play();
+ }
+
+ });
+
+
+ /* if supports video*/
+ if ($.fn.videoBG.supportsVideo()) {
+
+ /* supports webm*/
+ if ($.fn.videoBG.supportType('webm') && options.webm != ""){
+
+ /* play webm*/
+ $video.attr('src',options.webm);
+ }
+ /* supports mp4*/
+ else {
+ if ($.fn.videoBG.supportType('mp4') && options.mp4 != "") {
+
+ /* play mp4*/
+ $video.attr('src',options.mp4);
+
+ /* $video.html(' ');*/
+
+ }
+ /* throw ogv at it then*/
+ else {
+
+ /* play ogv*/
+ $video.attr('src',options.ogv);
+ }
+ }
+
+ }
+
+
+
+ /* image for those that dont support the video */
+ var $img = $(' ');
+ $img.attr('src',options.poster)
+ .css('position','absolute')
+ .css('z-index',options.zIndex)
+ .css('top',0)
+ .css('left',0)
+ .css('min-width','100%')
+ .css('min-height','100%');
+
+ /* add the image to the video*/
+ /* if suuports video*/
+ if ($.fn.videoBG.supportsVideo()) {
+ /* add the video to the wrapper*/
+ $div.html($video);
+ }
+
+ /* nope - whoa old skool*/
+ else {
+
+ /* add the image instead*/
+ $div.html($img);
+ }
+
+ /* if text replacement*/
+ if (options.textReplacement) {
+
+ /* force the heights and widths*/
+ $div.css('min-height',1).css('min-width',1);
+ $video.css('min-height',1).css('min-width',1);
+ $img.css('min-height',1).css('min-width',1);
+
+ $div.height(options.height).width(options.width);
+ $video.height(options.height).width(options.width);
+ $img.height(options.height).width(options.width);
+ }
+
+ if ($.fn.videoBG.supportsVideo()) {
+/* v.play();*/
+ }
+ return $div;
+ }
+
+ /* check if suuports video*/
+ $.fn.videoBG.supportsVideo = function() {
+ return (document.createElement('video').canPlayType);
+ }
+
+ /* check which type is supported*/
+ $.fn.videoBG.supportType = function(str) {
+
+ /* if not at all supported*/
+ if (!$.fn.videoBG.supportsVideo()) {
+ return false;
+ }
+
+ /* create video*/
+ var v = document.createElement('video');
+
+ /* check which?*/
+ switch (str) {
+ case 'webm' :
+ return (v.canPlayType('video/webm; codecs="vp8, vorbis"'));
+ break;
+ case 'mp4' :
+ return (v.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"'));
+ break;
+ case 'ogv' :
+ return (v.canPlayType('video/ogg; codecs="theora, vorbis"'));
+ break;
+ }
+ /* nope*/
+ return false;
+ }
+
+ /* get the overlay wrapper*/
+ $.fn.videoBG.wrapper = function() {
+ var $wrap = $('
');
+ $wrap.addClass('videoBG_wrapper')
+ .css('position','absolute')
+ .css('top',0)
+ .css('left',0);
+ return $wrap;
+ }
+
+ /* these are the defaults*/
+ $.fn.videoBG.defaults = {
+ mp4:'',
+ ogv:'',
+ webm:'',
+ poster:'',
+ autoplay:true,
+ loop:true,
+ scale:false,
+ position:"absolute",
+ opacity:1,
+ textReplacement:false,
+ zIndex:0,
+ width:0,
+ height:0,
+ fullscreen:false,
+ imgFallback:true
+ }
+
+})( jQuery );
+
+
+
+/**
+ * Parallax function created by alex on 7/4/14.
+ */
+
+(function( $ ){
+ var $window = $(window);
+ var windowHeight = $window.height();
+
+ $window.resize(function () {
+ windowHeight = $window.height();
+ });
+
+ $.fn.parallax = function(xpos, speedFactor, outerHeight) {
+ var $this = $(this);
+ var getHeight;
+ var firstTop;
+ var paddingTop = 0;
+ var isWebkitTransform = (typeof document.body.style['-webkit-transform'] == "undefined" ? false : true);
+ if(isWebkitTransform){
+ $this.css('position', 'relative');
+ }
+
+ /*get the starting position of each element to have parallax applied to it*/
+
+ window.correctFirstTop4Parallax = function(){
+ $this.each(function(){
+ firstTop = $this.offset().top;
+ });
+ };
+
+ window.correctFirstTop4Parallax();
+
+
+ if (outerHeight) {
+ getHeight = function(jqo) {
+ return jqo.outerHeight(true);
+ };
+ } else {
+ getHeight = function(jqo) {
+ return jqo.height();
+ };
+ }
+
+ /* setup defaults if arguments aren't specified*/
+ if (arguments.length < 1 || xpos === null){ xpos = "50%"; }
+ if (arguments.length < 2 || speedFactor === null){ speedFactor = 0.1; }
+ if (arguments.length < 3 || outerHeight === null){ outerHeight = true; }
+ /* function to be called whenever the window is scrolled or resized*/
+ function update(){
+ var pos = $window.scrollTop();
+
+ $this.each(function(){
+ var $element = $(this);
+ var top = $element.offset().top;
+ var height = getHeight($element);
+ var rect = this.getBoundingClientRect();
+/* var backgroundVerticalShift = -Math.abs(Math.round((firstTop - pos) * speedFactor));*/
+ /* Check if totally above or totally below viewport*/
+ if (top + height < pos || top > pos + windowHeight) {
+ return;
+ }
+ var backgroundVerticalShift = -1 * Math.round(rect.top * speedFactor);
+ if(isWebkitTransform){
+ this.style['-webkit-transform'] = "translateY(" + backgroundVerticalShift + "px)";
+ }else{
+ this.style['top'] = backgroundVerticalShift + "px";
+ }
+ });
+ }
+ $(window).resize(window.correctFirstTop4Parallax);
+ $window.bind('scroll', update).resize(update);
+ if(document.readyState !== "complete"){
+ window.addEventListener('load', function(){
+ update();
+ });
+ }else{
+ update();
+ }
+ };
+})(jQuery);
+
+
+(function( $ ){
+ function t_initZoom(){
+ if ( $('[data-zoomable="yes"]').length ) {
+ $('[data-zoomable="yes"]').addClass("t-zoomable");
+ $("body").append('');
+ t_showZoom();
+ $(document).keydown(function(e) {
+ if (e.keyCode == 27) {
+ $('body').removeClass("t-zoomer__show");
+ $('body').removeClass("t-zoomer__show_fixed");
+ }
+ });
+ $('.t-zoomer__close, .t-zoomer__bg').click(function(e){
+ $('body').removeClass("t-zoomer__show");
+ $('body').removeClass("t-zoomer__show_fixed");
+ });
+ }
+ }
+
+ function t_showZoom(){
+ $('.t-zoomable').click(function(e){
+ $("body").addClass("t-zoomer__show");
+ $(".t-zoomer__container").html('');
+
+ var id = $(this).closest(".r").attr("id");
+ var images = $("#"+id+"").find(".t-zoomable");
+ images.each(function () {
+ var images_urls = $(this).attr('data-img-zoom-url').split(',');
+ if($(this).is("img")) {
+ var imgdescr = $(this).attr('alt');
+ } else {
+ if ($(this).is("div")) {
+ var imgdescr = $(this).attr('title');
+ }
+ }
+ images_urls.forEach(function() {
+ if (typeof imgdescr !== typeof undefined && imgdescr !== false) {
+ $(".t-carousel__zoomer__inner").append("");
+ } else {
+ $(".t-carousel__zoomer__inner").append("");
+ }
+ });
+ });
+
+ var image_descr = $(".t-carousel__zoomer__item");
+ image_descr.each(function () {
+ $(this).css("display", "block");
+ var height = $(this).find(".t-zoomer__comments").height();
+ $(this).css("display", "");
+ var image_active = $(this).find(".t-carousel__zoomer__wrapper");
+ image_active.css("bottom", height);
+ });
+
+ var target_url = $(this).attr("data-img-zoom-url"),
+ target_img = $(".t-carousel__zoomer__img[src=\""+target_url+"\"]"),
+ target = target_img.closest(".t-carousel__zoomer__item");
+ target.addClass("active");
+
+ var slides_count = $(".t-carousel__zoomer__item").size();
+ if (slides_count > 1) {
+ $('body').addClass("t-zoomer__show_fixed");
+ } else {
+ $(".t-carousel__zoomer__control").css("display", "none");
+ }
+
+
+ $('.t-carousel__zoomer__img').click(function(e){
+ $('body').removeClass("t-zoomer__show");
+ $('body').removeClass("t-zoomer__show_fixed");
+ });
+
+ var lastScrollTop = 0;
+ $(window).scroll(function(event){
+ var st = $(this).scrollTop();
+ if (st > lastScrollTop){
+ $('body').removeClass("t-zoomer__show");
+ }
+ lastScrollTop = st;
+ });
+ });
+ }
+
+ $(document).ready(function(){
+ t_initZoom();
+ });
+
})(jQuery);
\ No newline at end of file
diff --git a/static/js/tools.js b/static/js/tools.js
old mode 100755
new mode 100644
index fd1498c..adda49b
--- a/static/js/tools.js
+++ b/static/js/tools.js
@@ -1,109 +1,109 @@
-
-function clear_form(form_name, error){
- $('#'+error).html('');
- $('#'+error).fadeOut('');
- document.forms[form_name].reset();
- $(document.forms[form_name]).find('input').attr('class', '')
-}
-function gen_unique_key(){
- var date = new Date();
- var key = date.getFullYear()+"_"+date.getMonth()+"_"+date.getDay()+"_"+date.getHours()+"_"
- +date.getMinutes()+"_"+date.getMilliseconds();
- return key
-}
-
-function validateEmail(email) {
- var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
- return re.test(email);
-}
-function accept_action(message, fun, params){
- $('#acceptModal').modal('show');
- $('[name="accept_action_button"]').on('click', function(){return fun(params), $('#acceptModal').modal('hide')});
- $('[name="accept_action_message"]').html(message);
-}
-function show_system_message(text){
- var block_name = 'system_message_'+gen_unique_key();
- var block =
- ''+
- '
' +
- '× ' +
- '
' + text + '
' +
- '
';
- $('.bill_place').append(block);
- var block_obj = $('div[name="'+block_name+'"]');
- block_obj.css('display', 'block');
- $('img[name="'+block_name+'"]').click(function(){
- close_system_message(block_name)
- });
- block_obj.fadeOut(10000);
- block_obj.mouseover(function(){
- $(this).stop().css('opacity', '1');
- });
- block_obj.mouseout(function(){
- $(this).fadeOut(10000);
- })
-}
-function close_system_message(obj){
- $('div[name="'+obj+'"]').css('display', 'none');
-}
-function get_next_button(start_place_type, start_place_id){
- var response = '';
- $.ajax({
- type: 'GET',
- url: '/courses/get_next_button/',
- data: {'start_place_type': start_place_type, 'start_place_id': start_place_id},
- async: false,
- success: function(data){
- if(data.code == '1'){
- response = data['data'];
- } else {
- response = '';
- }
- }
- });
- return response
-}
-
-function in_array(value, array) {
- for(var i=0; i()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
+ return re.test(email);
+}
+function accept_action(message, fun, params){
+ $('#acceptModal').modal('show');
+ $('[name="accept_action_button"]').on('click', function(){return fun(params), $('#acceptModal').modal('hide')});
+ $('[name="accept_action_message"]').html(message);
+}
+function show_system_message(text){
+ var block_name = 'system_message_'+gen_unique_key();
+ var block =
+ ''+
+ '
' +
+ '× ' +
+ '
' + text + '
' +
+ '
';
+ $('.bill_place').append(block);
+ var block_obj = $('div[name="'+block_name+'"]');
+ block_obj.css('display', 'block');
+ $('img[name="'+block_name+'"]').click(function(){
+ close_system_message(block_name)
+ });
+ block_obj.fadeOut(10000);
+ block_obj.mouseover(function(){
+ $(this).stop().css('opacity', '1');
+ });
+ block_obj.mouseout(function(){
+ $(this).fadeOut(10000);
+ })
+}
+function close_system_message(obj){
+ $('div[name="'+obj+'"]').css('display', 'none');
+}
+function get_next_button(start_place_type, start_place_id){
+ var response = '';
+ $.ajax({
+ type: 'GET',
+ url: '/courses/get_next_button/',
+ data: {'start_place_type': start_place_type, 'start_place_id': start_place_id},
+ async: false,
+ success: function(data){
+ if(data.code == '1'){
+ response = data['data'];
+ } else {
+ response = '';
+ }
+ }
+ });
+ return response
+}
+
+function in_array(value, array) {
+ for(var i=0; i{SELTEXT}
':'[quote]{SELTEXT}[/quote]',
'{AUTHOR} писал(а): {SELTEXT}
':'[quote="{AUTHOR}"]{SELTEXT}[/quote]'
- }
+ }
},
code: {
transform: {
@@ -25,148 +25,148 @@ WBBPRESET = {
'{SELTEXT} ':'[list=1]{SELTEXT}[/list]',
'{SELTEXT} ':'[*]{SELTEXT[^\[\]\*]}'
}
- },
- attach: {
- title: CURLANG.add_attach,
- buttonHTML: '\uE017 ',
- hotkey: 'ctrl+shift+5',
- modal: {
- title: CURLANG.add_attach,
- width: "600px",
- tabs: [
- {
- title: CURLANG.add_attach,
- html: ' '
- }
- ],
- onLoad: fileModal
- },
- transform: {
- '
{ALT} Просмотров: 0 ':'[attachment={NUM[0-9]}]{ID[0-9]}: {ALT}[/attachment]',
- '
':'[attachment={NUM[0-9]}]{ID[0-9]}; {ALTFILE}[/attachment]'
-
- }
- }
- },
- smilefind: "#smiley-box"
-}
-
-//hide smilelist
-$(document).ready(function() {
- $("#format-buttons").hide();
- $("#smiley-box").hide();
- $("#message-box").css("width","100%");
-});
-
-(function($) {
- //for attachments process
- $.wysibb.prototype.traceTextareaEvent = function(e) {
- var data = this.$txtArea.val();
- if (this.options.bbmode===false && data!="" && $(e.target).closest("div.wysibb").size()==0 && !this.$txtArea.attr("wbbsync")) {
- if (data.indexOf("[attachment=")!=-1) {
- var num = data.replace(/\[attachment=(\d+?)\].*/,"$1");
- var idfile = $("input[name='attachment_data["+num+"][attach_id]']").val();
- var ext = $("input[name='attachment_data["+num+"][real_filename]']").val().replace(/.*?\.(\w+)$/,"$1");
- if (ext.match(/(jpg|gif|png|bmp)/)) {
- data = data.replace(/(\[attachment=\d+\])(.*?)(\[\/attachment\])/,"$1"+idfile+":$2$3");
- }else{
- data = data.replace(/(\[attachment=\d+\])(.*?)(\[\/attachment\])/,"$1"+";"+idfile+" $2$3");
- }
- }
- this.insertAtCursor(this.getHTML(data,true));
- this.$txtArea.val("");
- }
- }
-
- $.wysibb.prototype.txtAreaInitContent = function() {
- var tdata = this.txtArea.value;
- tdata = tdata.replace(/(\[attachment=(\d+?)\])([^:;]*?)(\[\/attachment\])/g,function(m,left,num,cont,right) {
- var idfile = $("input[name='attachment_data["+num+"][attach_id]']").val();
- var ext = $("input[name='attachment_data["+num+"][real_filename]']").val();
- if (ext) {
- ext = ext.replace(/.*?\.(\w+)$/,"$1");
- if (ext.match(/(jpg|gif|png|bmp)/)) {
- return (left+idfile+":"+cont+right);
- }else{
- return (left+cont+";"+idfile+right);
- }
- }else{
- return m;
- }
- });
- this.$body.html(this.getHTML(tdata,true));
- }
-
- $.fn.closeModal = function() {
- this.data("wbb").closeModal();
- return this.data("wbb");
- }
- $.fn.insertAttach = function(id,alt,isimg) {
- var num=0;
- while (num<30) {
- if ($("input[name='attachment_data["+num+"][attach_id]']").size()==0) {
- break;
- }
- num++;
- }
-
- this.data("wbb").$txtArea.after('
');
- var data = (isimg===true) ? this.data("wbb").getCodeByCommand("attach",{"id":id,"num":num,"alt":alt}):this.data("wbb").getCodeByCommand("attach",{"id":id,"num":num,"altfile":alt});
-
- this.data("wbb").insertAtCursor(data);
- return this.data("wbb");
- }
-})(jQuery);
-
-function fileModal() {
- $.log("fileModal");
- if (this.options.imgupload===true) {
- this.$modal.find("#fupform").append('
');
- this.$modal.find("#imguploader").dragfileupload({
- url: this.strf(this.options.img_uploadurl,this.options),
- themePrefix: this.options.themePrefix,
- themeName: this.options.themeName,
- extraParams: {
- upload_type:this.options.upload_type
- },
- success: $.proxy(function(data) {
- $.log("Success");
- if (data && data.status==1) {
- var num=0;
- while (num<30) {
- if ($("input[name='attachment_data["+num+"][attach_id]']").size()==0) {
- break;
- }
- num++;
- }
-
- this.$txtArea.after('
');
- var datastr = (data.isimg===true) ? this.getCodeByCommand("attach",{"id":data.id,"num":num,"alt":data.alt}):this.getCodeByCommand("attach",{"id":data.id,"num":num,"altfile":data.alt});
- this.insertAtCursor(datastr);
- }
- this.closeModal();
- this.updateUI();
- },this),
- validation: ".*$"
- });
-
- if ($.browser.msie) {
- //ie not posting form by security reason, show default file upload
- $.log("IE not posting form by security reason, show default file upload");
- this.$modal.find("#nicebtn").hide();
- this.$modal.find("#fileupl").css("opacity",1);
- }
-
- this.$modal.find("#fileupl").bind("change",function() {
- $("#fupform").submit();
- });
- this.$modal.find("#fupform").bind("submit",$.proxy(function(e) {
- $(e.target).parents("#imguploader").hide().after('
'+CURLANG.loading+' ').parent().css("text-align","center");
- },this))
-
- }else{
- this.$modal.find(".hastabs").removeClass("hastabs");
- this.$modal.find("#imguploader").parents(".tab-cont").remove();
- this.$modal.find(".wbbm-tablist").remove();
- }
+ },
+ attach: {
+ title: CURLANG.add_attach,
+ buttonHTML: '
\uE017 ',
+ hotkey: 'ctrl+shift+5',
+ modal: {
+ title: CURLANG.add_attach,
+ width: "600px",
+ tabs: [
+ {
+ title: CURLANG.add_attach,
+ html: '
'
+ }
+ ],
+ onLoad: fileModal
+ },
+ transform: {
+ '
{ALT} Просмотров: 0 ':'[attachment={NUM[0-9]}]{ID[0-9]}: {ALT}[/attachment]',
+ '
':'[attachment={NUM[0-9]}]{ID[0-9]}; {ALTFILE}[/attachment]'
+
+ }
+ }
+ },
+ smilefind: "#smiley-box"
+}
+
+//hide smilelist
+$(document).ready(function() {
+ $("#format-buttons").hide();
+ $("#smiley-box").hide();
+ $("#message-box").css("width","100%");
+});
+
+(function($) {
+ //for attachments process
+ $.wysibb.prototype.traceTextareaEvent = function(e) {
+ var data = this.$txtArea.val();
+ if (this.options.bbmode===false && data!="" && $(e.target).closest("div.wysibb").size()==0 && !this.$txtArea.attr("wbbsync")) {
+ if (data.indexOf("[attachment=")!=-1) {
+ var num = data.replace(/\[attachment=(\d+?)\].*/,"$1");
+ var idfile = $("input[name='attachment_data["+num+"][attach_id]']").val();
+ var ext = $("input[name='attachment_data["+num+"][real_filename]']").val().replace(/.*?\.(\w+)$/,"$1");
+ if (ext.match(/(jpg|gif|png|bmp)/)) {
+ data = data.replace(/(\[attachment=\d+\])(.*?)(\[\/attachment\])/,"$1"+idfile+":$2$3");
+ }else{
+ data = data.replace(/(\[attachment=\d+\])(.*?)(\[\/attachment\])/,"$1"+";"+idfile+" $2$3");
+ }
+ }
+ this.insertAtCursor(this.getHTML(data,true));
+ this.$txtArea.val("");
+ }
+ }
+
+ $.wysibb.prototype.txtAreaInitContent = function() {
+ var tdata = this.txtArea.value;
+ tdata = tdata.replace(/(\[attachment=(\d+?)\])([^:;]*?)(\[\/attachment\])/g,function(m,left,num,cont,right) {
+ var idfile = $("input[name='attachment_data["+num+"][attach_id]']").val();
+ var ext = $("input[name='attachment_data["+num+"][real_filename]']").val();
+ if (ext) {
+ ext = ext.replace(/.*?\.(\w+)$/,"$1");
+ if (ext.match(/(jpg|gif|png|bmp)/)) {
+ return (left+idfile+":"+cont+right);
+ }else{
+ return (left+cont+";"+idfile+right);
+ }
+ }else{
+ return m;
+ }
+ });
+ this.$body.html(this.getHTML(tdata,true));
+ }
+
+ $.fn.closeModal = function() {
+ this.data("wbb").closeModal();
+ return this.data("wbb");
+ }
+ $.fn.insertAttach = function(id,alt,isimg) {
+ var num=0;
+ while (num<30) {
+ if ($("input[name='attachment_data["+num+"][attach_id]']").size()==0) {
+ break;
+ }
+ num++;
+ }
+
+ this.data("wbb").$txtArea.after('
');
+ var data = (isimg===true) ? this.data("wbb").getCodeByCommand("attach",{"id":id,"num":num,"alt":alt}):this.data("wbb").getCodeByCommand("attach",{"id":id,"num":num,"altfile":alt});
+
+ this.data("wbb").insertAtCursor(data);
+ return this.data("wbb");
+ }
+})(jQuery);
+
+function fileModal() {
+ $.log("fileModal");
+ if (this.options.imgupload===true) {
+ this.$modal.find("#fupform").append('
');
+ this.$modal.find("#imguploader").dragfileupload({
+ url: this.strf(this.options.img_uploadurl,this.options),
+ themePrefix: this.options.themePrefix,
+ themeName: this.options.themeName,
+ extraParams: {
+ upload_type:this.options.upload_type
+ },
+ success: $.proxy(function(data) {
+ $.log("Success");
+ if (data && data.status==1) {
+ var num=0;
+ while (num<30) {
+ if ($("input[name='attachment_data["+num+"][attach_id]']").size()==0) {
+ break;
+ }
+ num++;
+ }
+
+ this.$txtArea.after('
');
+ var datastr = (data.isimg===true) ? this.getCodeByCommand("attach",{"id":data.id,"num":num,"alt":data.alt}):this.getCodeByCommand("attach",{"id":data.id,"num":num,"altfile":data.alt});
+ this.insertAtCursor(datastr);
+ }
+ this.closeModal();
+ this.updateUI();
+ },this),
+ validation: ".*$"
+ });
+
+ if ($.browser.msie) {
+ //ie not posting form by security reason, show default file upload
+ $.log("IE not posting form by security reason, show default file upload");
+ this.$modal.find("#nicebtn").hide();
+ this.$modal.find("#fileupl").css("opacity",1);
+ }
+
+ this.$modal.find("#fileupl").bind("change",function() {
+ $("#fupform").submit();
+ });
+ this.$modal.find("#fupform").bind("submit",$.proxy(function(e) {
+ $(e.target).parents("#imguploader").hide().after('
'+CURLANG.loading+' ').parent().css("text-align","center");
+ },this))
+
+ }else{
+ this.$modal.find(".hastabs").removeClass("hastabs");
+ this.$modal.find("#imguploader").parents(".tab-cont").remove();
+ this.$modal.find(".wbbm-tablist").remove();
+ }
}
\ No newline at end of file
diff --git a/static/js/wysibb/theme/fonts/wysibbiconfont-wb.eot b/static/js/wysibb/theme/fonts/wysibbiconfont-wb.eot
index 170c2d3..e69de29 100644
Binary files a/static/js/wysibb/theme/fonts/wysibbiconfont-wb.eot and b/static/js/wysibb/theme/fonts/wysibbiconfont-wb.eot differ
diff --git a/static/js/wysibb/theme/fonts/wysibbiconfont-wb.ttf b/static/js/wysibb/theme/fonts/wysibbiconfont-wb.ttf
index 5852784..e69de29 100644
Binary files a/static/js/wysibb/theme/fonts/wysibbiconfont-wb.ttf and b/static/js/wysibb/theme/fonts/wysibbiconfont-wb.ttf differ
diff --git a/static/js/wysibb/theme/fonts/wysibbiconfont-wb.woff b/static/js/wysibb/theme/fonts/wysibbiconfont-wb.woff
index cf2cf31..e69de29 100644
Binary files a/static/js/wysibb/theme/fonts/wysibbiconfont-wb.woff and b/static/js/wysibb/theme/fonts/wysibbiconfont-wb.woff differ
diff --git a/static/redactor/css/django_admin.css b/static/redactor/css/django_admin.css
old mode 100755
new mode 100644
index 80dec1b..f734ae0
--- a/static/redactor/css/django_admin.css
+++ b/static/redactor/css/django_admin.css
@@ -1,31 +1,31 @@
-.redactor-box {
- max-width: 769px;
- float: left;
- width: 100%;
-}
-/* plays well with django-suit full-width */
-.full-width .redactor-box {
- max-width: none;
-}
-body .redactor-box_fullscreen{ max-width: none; }
-.redactor-box textarea, .redactor-box iframe, .redactor-editor { min-height: 300px; }
-
-form .redactor-toolbar { padding-left: 0; }
-
-/*span#redactor-image-box when you click to edit the image*/
-#redactor-image-box {
- max-width: 100%;
-}
-
-.redactor-box li,
-.redactor_toolbar li {
- font-size: 14px;
-}
-.form-row .redactor-box p {
- font-size: 14px;
- margin-left: 0;
- padding-left: 0;
-}
-form .redactor-box ul {
- margin-left: 0;
-}
+.redactor-box {
+ max-width: 769px;
+ float: left;
+ width: 100%;
+}
+/* plays well with django-suit full-width */
+.full-width .redactor-box {
+ max-width: none;
+}
+body .redactor-box_fullscreen{ max-width: none; }
+.redactor-box textarea, .redactor-box iframe, .redactor-editor { min-height: 300px; }
+
+form .redactor-toolbar { padding-left: 0; }
+
+/*span#redactor-image-box when you click to edit the image*/
+#redactor-image-box {
+ max-width: 100%;
+}
+
+.redactor-box li,
+.redactor_toolbar li {
+ font-size: 14px;
+}
+.form-row .redactor-box p {
+ font-size: 14px;
+ margin-left: 0;
+ padding-left: 0;
+}
+form .redactor-box ul {
+ margin-left: 0;
+}
diff --git a/static/redactor/css/docstyle.css b/static/redactor/css/docstyle.css
old mode 100755
new mode 100644
index 6067593..a1a4503
--- a/static/redactor/css/docstyle.css
+++ b/static/redactor/css/docstyle.css
@@ -1,126 +1,126 @@
-html {
- padding: 0;
- margin: 0;
-}
-body {
- font-family: "PT Sans", "Trebuchet MS", Verdana, Arial, Tahoma, sans-serif;
- font-size: 17px;
- margin: 0;
- padding: 0;
- overflow-x: hidden;
- background: #f4f4f4;
-}
-#page {
- max-width: 900px;
- width: 74%;
- margin: 20px auto;
- padding: 15px 50px;
- background: #fff;
- border: 1px solid #ddd;
-}
-#page:focus {
- outline: none;
-}
-
-::selection {
- background-color: #333;
- color: #fff;
- text-shadow: none;
-}
-
-div,
-p,
-ul,
-ol,
-table,
-dl,
-blockquote,
-pre,
-iframe,
-object,
-hr {
- margin-bottom: 15px;
- line-height: 1.5em;
-}
-blockquote {
- margin-left: 3em;
- font-style: italic;
- color: #777;
-}
-ul, ol {
- padding-left: 2em;
-}
-ul ul,
-ol ol,
-ul ol,
-ol ul {
- border: none;
- margin: 2px !important;
- padding: 0;
- padding-left: 2em;
-}
-dl dt { font-weight: bold; }
-dd { margin-left: 1em;}
-
-table {
- border-collapse: collapse;
- font-size: 1em;
-}
-table td {
- border: 1px solid #ddd;
- padding: 5px;
-}
-table thead td {
- border-bottom: 2px solid #000 !important;
- font-weight: bold;
-}
-code, pre {
- font-family: monospace sans-serif;
-}
-code {
- background-color: #d8d7d7;
-}
-pre {
- padding: 1em;
- border: 1px dashed #ccc;
- background: #f5f5f5;
- overflow: auto;
-}
-hr {
- display: block;
- height: 1px;
- border: 0;
- border-top: 1px solid #ccc;
-}
-
-h1, h2, h3, h4,h5 {
- font-weight: bold;
-}
-
-h1 {
- font-size: 36px;
- line-height: 40px;
- margin-bottom: 10px;
-}
-h2 {
- font-size: 30px;
- line-height: 36px;
- margin-bottom: 15px;
-}
-h3 {
- font-size: 24px;
- line-height: 30px;
- margin-bottom: 10px;
-}
-h4 {
- font-size: 18px;
- line-height: 24px;
- margin-bottom: 10px;
-}
-h4 {
- font-size: 1em;
- margin-bottom: 10px;
-}
-img:hover{
- cursor: nw-resize;
-}
+html {
+ padding: 0;
+ margin: 0;
+}
+body {
+ font-family: "PT Sans", "Trebuchet MS", Verdana, Arial, Tahoma, sans-serif;
+ font-size: 17px;
+ margin: 0;
+ padding: 0;
+ overflow-x: hidden;
+ background: #f4f4f4;
+}
+#page {
+ max-width: 900px;
+ width: 74%;
+ margin: 20px auto;
+ padding: 15px 50px;
+ background: #fff;
+ border: 1px solid #ddd;
+}
+#page:focus {
+ outline: none;
+}
+
+::selection {
+ background-color: #333;
+ color: #fff;
+ text-shadow: none;
+}
+
+div,
+p,
+ul,
+ol,
+table,
+dl,
+blockquote,
+pre,
+iframe,
+object,
+hr {
+ margin-bottom: 15px;
+ line-height: 1.5em;
+}
+blockquote {
+ margin-left: 3em;
+ font-style: italic;
+ color: #777;
+}
+ul, ol {
+ padding-left: 2em;
+}
+ul ul,
+ol ol,
+ul ol,
+ol ul {
+ border: none;
+ margin: 2px !important;
+ padding: 0;
+ padding-left: 2em;
+}
+dl dt { font-weight: bold; }
+dd { margin-left: 1em;}
+
+table {
+ border-collapse: collapse;
+ font-size: 1em;
+}
+table td {
+ border: 1px solid #ddd;
+ padding: 5px;
+}
+table thead td {
+ border-bottom: 2px solid #000 !important;
+ font-weight: bold;
+}
+code, pre {
+ font-family: monospace sans-serif;
+}
+code {
+ background-color: #d8d7d7;
+}
+pre {
+ padding: 1em;
+ border: 1px dashed #ccc;
+ background: #f5f5f5;
+ overflow: auto;
+}
+hr {
+ display: block;
+ height: 1px;
+ border: 0;
+ border-top: 1px solid #ccc;
+}
+
+h1, h2, h3, h4,h5 {
+ font-weight: bold;
+}
+
+h1 {
+ font-size: 36px;
+ line-height: 40px;
+ margin-bottom: 10px;
+}
+h2 {
+ font-size: 30px;
+ line-height: 36px;
+ margin-bottom: 15px;
+}
+h3 {
+ font-size: 24px;
+ line-height: 30px;
+ margin-bottom: 10px;
+}
+h4 {
+ font-size: 18px;
+ line-height: 24px;
+ margin-bottom: 10px;
+}
+h4 {
+ font-size: 1em;
+ margin-bottom: 10px;
+}
+img:hover{
+ cursor: nw-resize;
+}
diff --git a/static/redactor/css/redactor.css b/static/redactor/css/redactor.css
old mode 100755
new mode 100644
index 22c12af..b04a3fc
--- a/static/redactor/css/redactor.css
+++ b/static/redactor/css/redactor.css
@@ -1,943 +1,943 @@
-/*
- Icon font
-*/
-@font-face {
- font-family: 'RedactorFont';
- src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'), url(data:application/font-woff;charset=utf-8;base64,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) format('woff');
- font-weight: normal;
- font-style: normal;
-}
-/*
- Box
-*/
-.redactor-box {
- position: relative;
- overflow: visible;
- margin-bottom: 24px;
-}
-.redactor-box textarea {
- display: block;
- position: relative;
- margin: 0;
- padding: 0;
- width: 100%;
- overflow: auto;
- outline: none;
- border: none;
- background-color: #111;
- box-shadow: none;
- color: #ccc;
- font-size: 13px;
- font-family: Menlo, Monaco, monospace, sans-serif !important;
- resize: none;
-}
-.redactor-box textarea:focus {
- outline: none;
-}
-.redactor-editor,
-.redactor-box {
- background: #fff;
-}
-/*
- Z-index setup
-*/
-.redactor-editor,
-.redactor-box,
-.redactor-box textarea {
- z-index: auto;
-}
-.redactor-box-fullscreen {
- z-index: 1051;
-}
-.redactor-toolbar {
- z-index: 100;
-}
-.redactor-dropdown {
- z-index: 1052;
-}
-#redactor-modal-overlay,
-#redactor-modal-box,
-#redactor-modal {
- z-index: 1053;
-}
-/*
- Fullscreen
-*/
-body .redactor-box-fullscreen {
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
-}
-/*
- Utils
-*/
-.redactor-scrollbar-measure {
- position: absolute;
- top: -9999px;
- width: 50px;
- height: 50px;
- overflow: scroll;
-}
-/*
- Editor
-*/
-.redactor-editor {
- position: relative;
- overflow: auto;
- margin: 0 !important;
- padding: 20px;
- min-height: 80px;
- outline: none;
- white-space: normal;
- border: 1px solid #eee;
- font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
- font-size: 14px;
- line-height: 1.6em;
-}
-.redactor-editor:focus {
- outline: none;
-}
-.toolbar-fixed-box + .redactor-editor {
- padding-top: 32px !important;
-}
-/*
- Placeholder
-*/
-.redactor-placeholder:after {
- position: absolute;
- top: 20px;
- left: 20px;
- content: attr(placeholder);
- display: block;
- /* For Firefox */
- color: #999 !important;
- font-weight: normal !important;
-}
-/*
- Toolbar
-*/
-.redactor-toolbar {
- position: relative;
- top: 0;
- left: 0;
- margin: 0 !important;
- padding: 0 !important;
- list-style: none !important;
- font-size: 14px !important;
- line-height: 1 !important;
- background: #fff;
- border: none;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
-}
-.redactor-toolbar:after {
- content: "";
- display: table;
- clear: both;
-}
-.redactor-toolbar.redactor-toolbar-overflow {
- overflow-y: auto;
- height: 29px;
- white-space: nowrap;
-}
-.redactor-toolbar.redactor-toolbar-external {
- z-index: 999;
- box-shadow: none;
- border: 1px solid rgba(0, 0, 0, 0.1);
-}
-.redactor-toolbar li {
- vertical-align: top;
- display: inline-block;
- margin: 0 !important;
- padding: 0 !important;
- outline: none;
- list-style: none !important;
- -webkit-box-sizing: content-box;
- -moz-box-sizing: content-box;
- box-sizing: content-box;
-}
-.redactor-toolbar li a {
- display: block;
- color: #333;
- text-align: center;
- padding: 9px 10px;
- outline: none;
- border: none;
- text-decoration: none;
- cursor: pointer;
- zoom: 1;
- -webkit-box-sizing: content-box;
- -moz-box-sizing: content-box;
- box-sizing: content-box;
-}
-.redactor-toolbar li a:hover {
- outline: none;
- background-color: #1f78d8;
- color: #fff;
-}
-.redactor-toolbar li a:hover i:before {
- color: #fff;
-}
-.redactor-toolbar li a:active,
-.redactor-toolbar li a.redactor-act {
- outline: none;
- background-color: #ccc;
- color: #444;
-}
-.redactor-toolbar li a.redactor-btn-image {
- width: 14px;
- height: 14px;
- background-position: center center;
- background-repeat: no-repeat;
-}
-.redactor-toolbar li a.fa-redactor-btn {
- display: inline-block;
- padding: 9px 10px 8px 10px;
- line-height: 1;
-}
-.redactor-toolbar li a.redactor-button-disabled {
- filter: alpha(opacity=30);
- -moz-opacity: 0.3;
- opacity: 0.3;
-}
-.redactor-toolbar li a.redactor-button-disabled:hover {
- color: #333;
- outline: none;
- background-color: transparent !important;
- cursor: default;
-}
-.redactor-toolbar li a.redactor-button-focus {
- color: #fff;
- background: #000;
-}
-/*
- CodeMirror
-*/
-.redactor-box .CodeMirror {
- display: none;
-}
-/*
- Icons
-*/
-.re-icon {
- font-family: 'RedactorFont';
- speak: none;
- font-style: normal;
- font-weight: normal;
- font-variant: normal;
- text-transform: none;
- line-height: 1;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-.re-icon i:before {
- position: relative;
- font-size: 14px;
-}
-.re-video:before {
- content: "\e600";
-}
-.re-unorderedlist:before {
- content: "\e601";
-}
-.re-undo:before {
- content: "\e602";
-}
-.re-underline:before {
- content: "\e603";
-}
-.re-textdirection:before {
- content: "\e604";
-}
-.re-fontcolor:before {
- content: "\e605";
-}
-.re-table:before {
- content: "\e606";
-}
-.re-redo:before {
- content: "\e607";
-}
-.re-quote:before {
- content: "\e608";
-}
-.re-outdent:before {
- content: "\e609";
-}
-.re-orderedlist:before {
- content: "\e60a";
-}
-.re-link:before {
- content: "\e60b";
-}
-.re-horizontalrule:before {
- content: "\e60c";
-}
-.re-italic:before {
- content: "\e60d";
-}
-.re-indent:before {
- content: "\e60e";
-}
-.re-image:before {
- content: "\e60f";
-}
-.re-fullscreen:before {
- content: "\e610";
-}
-.re-normalscreen:before {
- content: "\e611";
-}
-.re-formatting:before {
- content: "\e612";
-}
-.re-fontsize:before {
- content: "\e613";
-}
-.re-fontfamily:before {
- content: "\e614";
-}
-.re-deleted:before {
- content: "\e615";
-}
-.re-html:before {
- content: "\e616";
-}
-.re-clips:before {
- content: "\e617";
-}
-.re-bold:before {
- content: "\e618";
-}
-.re-backcolor:before {
- content: "\e619";
-}
-.re-file:before {
- content: "\e61a";
-}
-.re-alignright:before {
- content: "\e61b";
-}
-.re-alignment:before,
-.re-alignleft:before {
- content: "\e61c";
-}
-.re-alignjustify:before {
- content: "\e61d";
-}
-.re-aligncenter:before {
- content: "\e61e";
-}
-.re-gallery:before {
- content: "\e61f";
-}
-/*
- Toolbar tooltip
-*/
-.redactor-toolbar-tooltip {
- position: absolute;
- z-index: 1054;
- text-align: center;
- top: 0;
- left: 0;
- background: #000;
- color: #fff;
- padding: 5px 8px;
- line-height: 1;
- font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
- font-size: 12px;
- border-radius: 2px;
-}
-/*
- Dropdown
-*/
-.redactor-dropdown {
- position: absolute;
- top: 28px;
- left: 0;
- padding: 0;
- min-width: 220px;
- max-height: 254px;
- overflow: auto;
- background-color: #fff;
- box-shadow: 0 1px 7px rgba(0, 0, 0, 0.25);
- font-size: 14px;
- font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
- line-height: 1.6em;
-}
-.redactor-dropdown a {
- display: block;
- padding: 10px 15px;
- color: #000;
- text-decoration: none;
- border-bottom: 1px solid rgba(0, 0, 0, 0.07);
-}
-.redactor-dropdown a:last-child {
- border-bottom: none;
-}
-.redactor-dropdown a:hover {
- background-color: #1f78d8;
- color: #fff !important;
- text-decoration: none;
-}
-.redactor-dropdown a.selected {
- background-color: #000;
- color: #fff;
-}
-.redactor-dropdown a.redactor-dropdown-link-inactive,
-.redactor-dropdown a.redactor-dropdown-link-inactive:hover {
- background: none;
- cursor: default;
- color: #000 !important;
- filter: alpha(opacity=40);
- -moz-opacity: 0.4;
- opacity: 0.4;
-}
-.redactor-dropdown a.redactor-dropdown-link-selected {
- color: #fff;
- background: #000;
-}
-/*
- IMAGE BOX
-*/
-#redactor-image-box {
- position: relative;
- max-width: 100%;
- display: inline-block;
- line-height: 0;
- outline: 1px dashed rgba(0, 0, 0, 0.6);
-}
-#redactor-image-editter {
- position: absolute;
- z-index: 5;
- top: 50%;
- left: 50%;
- margin-top: -11px;
- margin-left: -18px;
- line-height: 1;
- background-color: #000;
- color: #fff;
- font-size: 11px;
- padding: 7px 10px;
- cursor: pointer;
-}
-#redactor-image-resizer {
- position: absolute;
- z-index: 2;
- line-height: 1;
- cursor: nw-resize;
- bottom: -4px;
- right: -5px;
- border: 1px solid #fff;
- background-color: #000;
- width: 8px;
- height: 8px;
-}
-/*
- LINK TOOLTIP
-*/
-.redactor-link-tooltip {
- position: absolute;
- z-index: 99;
- padding: 10px;
- line-height: 1;
- display: inline-block;
- background-color: #000;
- color: #555 !important;
-}
-.redactor-link-tooltip,
-.redactor-link-tooltip a {
- font-size: 12px;
- font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
-}
-.redactor-link-tooltip a {
- color: #ccc;
- margin: 0 5px;
- text-decoration: none;
-}
-.redactor-link-tooltip a:hover {
- color: #fff;
-}
-/*
- DROPAREA
-*/
-#redactor-droparea {
- position: relative;
- overflow: hidden;
- padding: 140px 20px;
- border: 3px dashed rgba(0, 0, 0, 0.1);
-}
-#redactor-droparea.drag-hover {
- background: rgba(200, 222, 250, 0.75);
-}
-#redactor-droparea.drag-drop {
- background: rgba(250, 248, 200, 0.5);
-}
-#redactor-droparea-placeholder {
- text-align: center;
- font-size: 12px;
- color: rgba(0, 0, 0, 0.7);
-}
-/*
- PROGRESS
-*/
-#redactor-progress {
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
- z-index: 1000000;
- height: 10px;
-}
-#redactor-progress span {
- display: block;
- width: 100%;
- height: 100%;
- background-color: #3d58a8;
- background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);
- background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);
- background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);
- -webkit-animation: progress-bar-stripes 2s linear infinite;
- -o-animation: progress-bar-stripes 2s linear infinite;
- animation: progress-bar-stripes 2s linear infinite;
- background-size: 40px 40px;
-}
-@-webkit-keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}
-@-o-keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}
-@keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}
-/*
- MODAL
-*/
-#redactor-modal-overlay {
- position: fixed;
- top: 0;
- left: 0;
- margin: auto;
- overflow: auto;
- width: 100%;
- height: 100%;
- background-color: #000 !important;
- filter: alpha(opacity=30);
- -moz-opacity: 0.3;
- opacity: 0.3;
-}
-#redactor-modal-box {
- position: fixed;
- top: 0;
- left: 0;
- bottom: 0;
- right: 0;
- overflow-x: hidden;
- overflow-y: auto;
-}
-#redactor-modal {
- outline: 0;
- position: relative;
- margin: auto;
- margin-bottom: 20px;
- padding: 0;
- background: #fff;
- color: #000;
- font-size: 14px !important;
- font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
- box-shadow: 0 1px 70px rgba(0, 0, 0, 0.5);
-}
-#redactor-modal header {
- padding: 30px 40px 5px 40px;
- font-size: 18px;
- font-weight: bold;
-}
-#redactor-modal section {
- padding: 30px 40px 50px 40px;
-}
-#redactor-modal label {
- display: block;
- float: none !important;
- margin: 15px 0 3px 0 !important;
- padding: 0;
-}
-#redactor-modal input[type="radio"],
-#redactor-modal input[type="checkbox"] {
- position: relative;
- top: -1px;
-}
-#redactor-modal select {
- width: 100%;
-}
-#redactor-modal input[type="text"],
-#redactor-modal input[type="password"],
-#redactor-modal input[type="email"],
-#redactor-modal input[type="url"],
-#redactor-modal textarea {
- position: relative;
- z-index: 2;
- margin: 0;
- padding: 5px 4px;
- height: 28px;
- border: 1px solid #ccc;
- border-radius: 1px;
- background-color: white;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset;
- color: #333;
- width: 100%;
- font-size: 14px;
- font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
- -moz-transition: border 0.3s ease-in;
- transition: border 0.3s ease-in;
-}
-#redactor-modal input[type="text"]:focus,
-#redactor-modal input[type="password"]:focus,
-#redactor-modal input[type="email"]:focus,
-#redactor-modal input[type="url"]:focus,
-#redactor-modal textarea:focus {
- outline: none;
- border-color: #5ca9e4;
- box-shadow: 0 0 0 2px rgba(70, 161, 231, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2) inset;
-}
-#redactor-modal input[type="text"].redactor-input-error,
-#redactor-modal input[type="password"].redactor-input-error,
-#redactor-modal input[type="email"].redactor-input-error,
-#redactor-modal input[type="url"].redactor-input-error,
-#redactor-modal textarea.redactor-input-error {
- border-color: #e82f2f;
- box-shadow: 0 0 0 2px rgba(232, 47, 47, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2) inset;
-}
-#redactor-modal textarea {
- display: block;
- margin-top: 4px;
- line-height: 1.4em;
-}
-/*
- Tabs in Modal
-*/
-#redactor-modal-tabber {
- margin-bottom: 15px;
- font-size: 12px;
-}
-#redactor-modal-tabber a {
- border: 1px solid #ddd;
- line-height: 1;
- padding: 8px 15px;
- margin-right: -1px;
- text-decoration: none;
- color: #000;
-}
-#redactor-modal-tabber a:hover {
- background-color: #1f78d8;
- border-color: #1f78d8;
- color: #fff;
-}
-#redactor-modal-tabber a.active {
- cursor: default;
- background-color: #ddd;
- border-color: #ddd;
- color: rgba(0, 0, 0, 0.6);
-}
-/*
- List in Modal
-*/
-#redactor-modal #redactor-modal-list {
- margin-left: 0;
- padding-left: 0;
- list-style: none;
- max-height: 250px;
- overflow-x: auto;
-}
-#redactor-modal #redactor-modal-list li {
- border-bottom: 1px solid #ddd;
-}
-#redactor-modal #redactor-modal-list li:last-child {
- border-bottom: none;
-}
-#redactor-modal #redactor-modal-list a {
- padding: 10px 5px;
- color: #000;
- text-decoration: none;
- font-size: 13px;
- display: block;
- position: relative;
-}
-#redactor-modal #redactor-modal-list a:hover {
- background-color: #eee;
-}
-#redactor-modal-close {
- position: absolute;
- top: 10px;
- right: 10px;
- width: 30px;
- height: 30px;
- text-align: right;
- color: #bbb;
- font-size: 30px;
- font-weight: 300;
- cursor: pointer;
- -webkit-appearance: none;
- padding: 0;
- border: 0;
- background: 0;
- outline: none;
-}
-#redactor-modal-close:hover {
- color: #000;
-}
-#redactor-modal footer button {
- position: relative;
- width: 100%;
- padding: 14px 16px;
- margin: 0;
- outline: none;
- border: none;
- background-color: #ddd;
- color: #000;
- text-align: center;
- text-decoration: none;
- font-weight: normal;
- font-size: 12px;
- font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
- line-height: 1;
- cursor: pointer;
-}
-#redactor-modal footer button:hover {
- color: #777;
- background: none;
- background: #bbb;
- text-decoration: none;
-}
-#redactor-modal footer button.redactor-modal-delete-btn {
- background: none;
- color: #fff;
- background-color: #b52525;
-}
-#redactor-modal footer button.redactor-modal-delete-btn:hover {
- color: rgba(255, 255, 255, 0.6);
- background-color: #881b1b;
-}
-#redactor-modal footer button.redactor-modal-action-btn {
- background: none;
- color: #fff;
- background-color: #2461b5;
-}
-#redactor-modal footer button.redactor-modal-action-btn:hover {
- color: rgba(255, 255, 255, 0.6);
- background-color: #1a4580;
-}
-/*
- ##############################################
-
- DROPDOWN FORMATTING
-
- ##############################################
-*/
-.redactor-dropdown .redactor-formatting-blockquote {
- color: rgba(0, 0, 0, 0.4);
- font-style: italic;
-}
-.redactor-dropdown .redactor-formatting-pre {
- font-family: monospace, sans-serif;
-}
-.redactor-dropdown .redactor-formatting-h1 {
- font-size: 36px;
- line-height: 36px;
- font-weight: bold;
-}
-.redactor-dropdown .redactor-formatting-h2 {
- font-size: 24px;
- line-height: 36px;
- font-weight: bold;
-}
-.redactor-dropdown .redactor-formatting-h3 {
- font-size: 21px;
- line-height: 30px;
- font-weight: bold;
-}
-.redactor-dropdown .redactor-formatting-h4 {
- font-size: 18px;
- line-height: 26px;
- font-weight: bold;
-}
-.redactor-dropdown .redactor-formatting-h5 {
- font-size: 16px;
- line-height: 23px;
- font-weight: bold;
-}
-/*
- ##############################################
-
- CONTENT STYLES
-
- ##############################################
-*/
-.redactor-editor code,
-.redactor-editor pre {
- font-family: Menlo, Monaco, monospace, sans-serif !important;
- cursor: text;
-}
-.redactor-editor div,
-.redactor-editor p,
-.redactor-editor ul,
-.redactor-editor ol,
-.redactor-editor table,
-.redactor-editor dl,
-.redactor-editor blockquote,
-.redactor-editor pre {
- font-size: 14px;
- line-height: 1.6em;
-}
-.redactor-editor a {
- color: #15c;
- text-decoration: underline;
-}
-.redactor-editor object,
-.redactor-editor embed,
-.redactor-editor video,
-.redactor-editor img {
- max-width: 100%;
- width: auto;
-}
-.redactor-editor video,
-.redactor-editor img {
- height: auto;
-}
-.redactor-editor div,
-.redactor-editor p,
-.redactor-editor ul,
-.redactor-editor ol,
-.redactor-editor table,
-.redactor-editor dl,
-.redactor-editor figure,
-.redactor-editor blockquote,
-.redactor-editor pre {
- margin: 0;
- margin-bottom: 15px;
- border: none;
- background: none;
- box-shadow: none;
-}
-.redactor-editor iframe,
-.redactor-editor object,
-.redactor-editor hr {
- margin-bottom: 15px;
-}
-.redactor-editor blockquote {
- margin-left: 1.6em !important;
- padding-left: 0;
- color: #777;
- font-style: italic;
-}
-.redactor-editor ul,
-.redactor-editor ol {
- padding-left: 2em;
-}
-.redactor-editor ul ul,
-.redactor-editor ol ol,
-.redactor-editor ul ol,
-.redactor-editor ol ul {
- margin: 2px;
- padding: 0;
- padding-left: 2em;
- border: none;
-}
-.redactor-editor ol ol li {
- list-style-type: lower-alpha;
-}
-.redactor-editor ol ol ol li {
- list-style-type: lower-roman;
-}
-.redactor-editor dl dt {
- font-weight: bold;
-}
-.redactor-editor dd {
- margin-left: 1em;
-}
-.redactor-editor table {
- border-collapse: collapse;
- font-size: 1em;
- width: 100%;
-}
-.redactor-editor table td,
-.redactor-editor table th {
- padding: 5px;
- border: 1px solid #ddd;
- vertical-align: top;
-}
-.redactor-editor table thead td,
-.redactor-editor table th {
- font-weight: bold;
- border-bottom-color: #888;
-}
-.redactor-editor code {
- background-color: #d8d7d7;
-}
-.redactor-editor pre {
- padding: 1em;
- border: 1px solid #ddd;
- border-radius: 3px;
- background: #f8f8f8;
- font-size: 90%;
-}
-.redactor-editor hr {
- display: block;
- height: 1px;
- border: 0;
- border-top: 1px solid #ccc;
-}
-.redactor-editor h1,
-.redactor-editor h2,
-.redactor-editor h3,
-.redactor-editor h4,
-.redactor-editor h5,
-.redactor-editor h6 {
- font-weight: bold;
- color: #000;
- padding: 0;
- background: none;
- text-rendering: optimizeLegibility;
- margin: 0 0 .5em 0;
-}
-.redactor-editor h1,
-.redactor-editor h2,
-.redactor-editor h3,
-.redactor-editor h4 {
- line-height: 1.3;
-}
-.redactor-editor h1 {
- font-size: 36px;
-}
-.redactor-editor h2 {
- font-size: 24px;
- margin-bottom: .7em;
-}
-.redactor-editor h3 {
- font-size: 21px;
-}
-.redactor-editor h4 {
- font-size: 18px;
-}
-.redactor-editor h5 {
- font-size: 16px;
-}
-.redactor-editor h6 {
- font-size: 12px;
- text-transform: uppercase;
-}
+/*
+ Icon font
+*/
+@font-face {
+ font-family: 'RedactorFont';
+ src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'), url(data:application/font-woff;charset=utf-8;base64,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) format('woff');
+ font-weight: normal;
+ font-style: normal;
+}
+/*
+ Box
+*/
+.redactor-box {
+ position: relative;
+ overflow: visible;
+ margin-bottom: 24px;
+}
+.redactor-box textarea {
+ display: block;
+ position: relative;
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ overflow: auto;
+ outline: none;
+ border: none;
+ background-color: #111;
+ box-shadow: none;
+ color: #ccc;
+ font-size: 13px;
+ font-family: Menlo, Monaco, monospace, sans-serif !important;
+ resize: none;
+}
+.redactor-box textarea:focus {
+ outline: none;
+}
+.redactor-editor,
+.redactor-box {
+ background: #fff;
+}
+/*
+ Z-index setup
+*/
+.redactor-editor,
+.redactor-box,
+.redactor-box textarea {
+ z-index: auto;
+}
+.redactor-box-fullscreen {
+ z-index: 1051;
+}
+.redactor-toolbar {
+ z-index: 100;
+}
+.redactor-dropdown {
+ z-index: 1052;
+}
+#redactor-modal-overlay,
+#redactor-modal-box,
+#redactor-modal {
+ z-index: 1053;
+}
+/*
+ Fullscreen
+*/
+body .redactor-box-fullscreen {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+}
+/*
+ Utils
+*/
+.redactor-scrollbar-measure {
+ position: absolute;
+ top: -9999px;
+ width: 50px;
+ height: 50px;
+ overflow: scroll;
+}
+/*
+ Editor
+*/
+.redactor-editor {
+ position: relative;
+ overflow: auto;
+ margin: 0 !important;
+ padding: 20px;
+ min-height: 80px;
+ outline: none;
+ white-space: normal;
+ border: 1px solid #eee;
+ font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
+ font-size: 14px;
+ line-height: 1.6em;
+}
+.redactor-editor:focus {
+ outline: none;
+}
+.toolbar-fixed-box + .redactor-editor {
+ padding-top: 32px !important;
+}
+/*
+ Placeholder
+*/
+.redactor-placeholder:after {
+ position: absolute;
+ top: 20px;
+ left: 20px;
+ content: attr(placeholder);
+ display: block;
+ /* For Firefox */
+ color: #999 !important;
+ font-weight: normal !important;
+}
+/*
+ Toolbar
+*/
+.redactor-toolbar {
+ position: relative;
+ top: 0;
+ left: 0;
+ margin: 0 !important;
+ padding: 0 !important;
+ list-style: none !important;
+ font-size: 14px !important;
+ line-height: 1 !important;
+ background: #fff;
+ border: none;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
+}
+.redactor-toolbar:after {
+ content: "";
+ display: table;
+ clear: both;
+}
+.redactor-toolbar.redactor-toolbar-overflow {
+ overflow-y: auto;
+ height: 29px;
+ white-space: nowrap;
+}
+.redactor-toolbar.redactor-toolbar-external {
+ z-index: 999;
+ box-shadow: none;
+ border: 1px solid rgba(0, 0, 0, 0.1);
+}
+.redactor-toolbar li {
+ vertical-align: top;
+ display: inline-block;
+ margin: 0 !important;
+ padding: 0 !important;
+ outline: none;
+ list-style: none !important;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+.redactor-toolbar li a {
+ display: block;
+ color: #333;
+ text-align: center;
+ padding: 9px 10px;
+ outline: none;
+ border: none;
+ text-decoration: none;
+ cursor: pointer;
+ zoom: 1;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+.redactor-toolbar li a:hover {
+ outline: none;
+ background-color: #1f78d8;
+ color: #fff;
+}
+.redactor-toolbar li a:hover i:before {
+ color: #fff;
+}
+.redactor-toolbar li a:active,
+.redactor-toolbar li a.redactor-act {
+ outline: none;
+ background-color: #ccc;
+ color: #444;
+}
+.redactor-toolbar li a.redactor-btn-image {
+ width: 14px;
+ height: 14px;
+ background-position: center center;
+ background-repeat: no-repeat;
+}
+.redactor-toolbar li a.fa-redactor-btn {
+ display: inline-block;
+ padding: 9px 10px 8px 10px;
+ line-height: 1;
+}
+.redactor-toolbar li a.redactor-button-disabled {
+ filter: alpha(opacity=30);
+ -moz-opacity: 0.3;
+ opacity: 0.3;
+}
+.redactor-toolbar li a.redactor-button-disabled:hover {
+ color: #333;
+ outline: none;
+ background-color: transparent !important;
+ cursor: default;
+}
+.redactor-toolbar li a.redactor-button-focus {
+ color: #fff;
+ background: #000;
+}
+/*
+ CodeMirror
+*/
+.redactor-box .CodeMirror {
+ display: none;
+}
+/*
+ Icons
+*/
+.re-icon {
+ font-family: 'RedactorFont';
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+.re-icon i:before {
+ position: relative;
+ font-size: 14px;
+}
+.re-video:before {
+ content: "\e600";
+}
+.re-unorderedlist:before {
+ content: "\e601";
+}
+.re-undo:before {
+ content: "\e602";
+}
+.re-underline:before {
+ content: "\e603";
+}
+.re-textdirection:before {
+ content: "\e604";
+}
+.re-fontcolor:before {
+ content: "\e605";
+}
+.re-table:before {
+ content: "\e606";
+}
+.re-redo:before {
+ content: "\e607";
+}
+.re-quote:before {
+ content: "\e608";
+}
+.re-outdent:before {
+ content: "\e609";
+}
+.re-orderedlist:before {
+ content: "\e60a";
+}
+.re-link:before {
+ content: "\e60b";
+}
+.re-horizontalrule:before {
+ content: "\e60c";
+}
+.re-italic:before {
+ content: "\e60d";
+}
+.re-indent:before {
+ content: "\e60e";
+}
+.re-image:before {
+ content: "\e60f";
+}
+.re-fullscreen:before {
+ content: "\e610";
+}
+.re-normalscreen:before {
+ content: "\e611";
+}
+.re-formatting:before {
+ content: "\e612";
+}
+.re-fontsize:before {
+ content: "\e613";
+}
+.re-fontfamily:before {
+ content: "\e614";
+}
+.re-deleted:before {
+ content: "\e615";
+}
+.re-html:before {
+ content: "\e616";
+}
+.re-clips:before {
+ content: "\e617";
+}
+.re-bold:before {
+ content: "\e618";
+}
+.re-backcolor:before {
+ content: "\e619";
+}
+.re-file:before {
+ content: "\e61a";
+}
+.re-alignright:before {
+ content: "\e61b";
+}
+.re-alignment:before,
+.re-alignleft:before {
+ content: "\e61c";
+}
+.re-alignjustify:before {
+ content: "\e61d";
+}
+.re-aligncenter:before {
+ content: "\e61e";
+}
+.re-gallery:before {
+ content: "\e61f";
+}
+/*
+ Toolbar tooltip
+*/
+.redactor-toolbar-tooltip {
+ position: absolute;
+ z-index: 1054;
+ text-align: center;
+ top: 0;
+ left: 0;
+ background: #000;
+ color: #fff;
+ padding: 5px 8px;
+ line-height: 1;
+ font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
+ font-size: 12px;
+ border-radius: 2px;
+}
+/*
+ Dropdown
+*/
+.redactor-dropdown {
+ position: absolute;
+ top: 28px;
+ left: 0;
+ padding: 0;
+ min-width: 220px;
+ max-height: 254px;
+ overflow: auto;
+ background-color: #fff;
+ box-shadow: 0 1px 7px rgba(0, 0, 0, 0.25);
+ font-size: 14px;
+ font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
+ line-height: 1.6em;
+}
+.redactor-dropdown a {
+ display: block;
+ padding: 10px 15px;
+ color: #000;
+ text-decoration: none;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.07);
+}
+.redactor-dropdown a:last-child {
+ border-bottom: none;
+}
+.redactor-dropdown a:hover {
+ background-color: #1f78d8;
+ color: #fff !important;
+ text-decoration: none;
+}
+.redactor-dropdown a.selected {
+ background-color: #000;
+ color: #fff;
+}
+.redactor-dropdown a.redactor-dropdown-link-inactive,
+.redactor-dropdown a.redactor-dropdown-link-inactive:hover {
+ background: none;
+ cursor: default;
+ color: #000 !important;
+ filter: alpha(opacity=40);
+ -moz-opacity: 0.4;
+ opacity: 0.4;
+}
+.redactor-dropdown a.redactor-dropdown-link-selected {
+ color: #fff;
+ background: #000;
+}
+/*
+ IMAGE BOX
+*/
+#redactor-image-box {
+ position: relative;
+ max-width: 100%;
+ display: inline-block;
+ line-height: 0;
+ outline: 1px dashed rgba(0, 0, 0, 0.6);
+}
+#redactor-image-editter {
+ position: absolute;
+ z-index: 5;
+ top: 50%;
+ left: 50%;
+ margin-top: -11px;
+ margin-left: -18px;
+ line-height: 1;
+ background-color: #000;
+ color: #fff;
+ font-size: 11px;
+ padding: 7px 10px;
+ cursor: pointer;
+}
+#redactor-image-resizer {
+ position: absolute;
+ z-index: 2;
+ line-height: 1;
+ cursor: nw-resize;
+ bottom: -4px;
+ right: -5px;
+ border: 1px solid #fff;
+ background-color: #000;
+ width: 8px;
+ height: 8px;
+}
+/*
+ LINK TOOLTIP
+*/
+.redactor-link-tooltip {
+ position: absolute;
+ z-index: 99;
+ padding: 10px;
+ line-height: 1;
+ display: inline-block;
+ background-color: #000;
+ color: #555 !important;
+}
+.redactor-link-tooltip,
+.redactor-link-tooltip a {
+ font-size: 12px;
+ font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
+}
+.redactor-link-tooltip a {
+ color: #ccc;
+ margin: 0 5px;
+ text-decoration: none;
+}
+.redactor-link-tooltip a:hover {
+ color: #fff;
+}
+/*
+ DROPAREA
+*/
+#redactor-droparea {
+ position: relative;
+ overflow: hidden;
+ padding: 140px 20px;
+ border: 3px dashed rgba(0, 0, 0, 0.1);
+}
+#redactor-droparea.drag-hover {
+ background: rgba(200, 222, 250, 0.75);
+}
+#redactor-droparea.drag-drop {
+ background: rgba(250, 248, 200, 0.5);
+}
+#redactor-droparea-placeholder {
+ text-align: center;
+ font-size: 12px;
+ color: rgba(0, 0, 0, 0.7);
+}
+/*
+ PROGRESS
+*/
+#redactor-progress {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ z-index: 1000000;
+ height: 10px;
+}
+#redactor-progress span {
+ display: block;
+ width: 100%;
+ height: 100%;
+ background-color: #3d58a8;
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent);
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
+ -o-animation: progress-bar-stripes 2s linear infinite;
+ animation: progress-bar-stripes 2s linear infinite;
+ background-size: 40px 40px;
+}
+@-webkit-keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+@-o-keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+@keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0;
+ }
+ to {
+ background-position: 0 0;
+ }
+}
+/*
+ MODAL
+*/
+#redactor-modal-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ margin: auto;
+ overflow: auto;
+ width: 100%;
+ height: 100%;
+ background-color: #000 !important;
+ filter: alpha(opacity=30);
+ -moz-opacity: 0.3;
+ opacity: 0.3;
+}
+#redactor-modal-box {
+ position: fixed;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+#redactor-modal {
+ outline: 0;
+ position: relative;
+ margin: auto;
+ margin-bottom: 20px;
+ padding: 0;
+ background: #fff;
+ color: #000;
+ font-size: 14px !important;
+ font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
+ box-shadow: 0 1px 70px rgba(0, 0, 0, 0.5);
+}
+#redactor-modal header {
+ padding: 30px 40px 5px 40px;
+ font-size: 18px;
+ font-weight: bold;
+}
+#redactor-modal section {
+ padding: 30px 40px 50px 40px;
+}
+#redactor-modal label {
+ display: block;
+ float: none !important;
+ margin: 15px 0 3px 0 !important;
+ padding: 0;
+}
+#redactor-modal input[type="radio"],
+#redactor-modal input[type="checkbox"] {
+ position: relative;
+ top: -1px;
+}
+#redactor-modal select {
+ width: 100%;
+}
+#redactor-modal input[type="text"],
+#redactor-modal input[type="password"],
+#redactor-modal input[type="email"],
+#redactor-modal input[type="url"],
+#redactor-modal textarea {
+ position: relative;
+ z-index: 2;
+ margin: 0;
+ padding: 5px 4px;
+ height: 28px;
+ border: 1px solid #ccc;
+ border-radius: 1px;
+ background-color: white;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset;
+ color: #333;
+ width: 100%;
+ font-size: 14px;
+ font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
+ -moz-transition: border 0.3s ease-in;
+ transition: border 0.3s ease-in;
+}
+#redactor-modal input[type="text"]:focus,
+#redactor-modal input[type="password"]:focus,
+#redactor-modal input[type="email"]:focus,
+#redactor-modal input[type="url"]:focus,
+#redactor-modal textarea:focus {
+ outline: none;
+ border-color: #5ca9e4;
+ box-shadow: 0 0 0 2px rgba(70, 161, 231, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2) inset;
+}
+#redactor-modal input[type="text"].redactor-input-error,
+#redactor-modal input[type="password"].redactor-input-error,
+#redactor-modal input[type="email"].redactor-input-error,
+#redactor-modal input[type="url"].redactor-input-error,
+#redactor-modal textarea.redactor-input-error {
+ border-color: #e82f2f;
+ box-shadow: 0 0 0 2px rgba(232, 47, 47, 0.3), 0 1px 2px rgba(0, 0, 0, 0.2) inset;
+}
+#redactor-modal textarea {
+ display: block;
+ margin-top: 4px;
+ line-height: 1.4em;
+}
+/*
+ Tabs in Modal
+*/
+#redactor-modal-tabber {
+ margin-bottom: 15px;
+ font-size: 12px;
+}
+#redactor-modal-tabber a {
+ border: 1px solid #ddd;
+ line-height: 1;
+ padding: 8px 15px;
+ margin-right: -1px;
+ text-decoration: none;
+ color: #000;
+}
+#redactor-modal-tabber a:hover {
+ background-color: #1f78d8;
+ border-color: #1f78d8;
+ color: #fff;
+}
+#redactor-modal-tabber a.active {
+ cursor: default;
+ background-color: #ddd;
+ border-color: #ddd;
+ color: rgba(0, 0, 0, 0.6);
+}
+/*
+ List in Modal
+*/
+#redactor-modal #redactor-modal-list {
+ margin-left: 0;
+ padding-left: 0;
+ list-style: none;
+ max-height: 250px;
+ overflow-x: auto;
+}
+#redactor-modal #redactor-modal-list li {
+ border-bottom: 1px solid #ddd;
+}
+#redactor-modal #redactor-modal-list li:last-child {
+ border-bottom: none;
+}
+#redactor-modal #redactor-modal-list a {
+ padding: 10px 5px;
+ color: #000;
+ text-decoration: none;
+ font-size: 13px;
+ display: block;
+ position: relative;
+}
+#redactor-modal #redactor-modal-list a:hover {
+ background-color: #eee;
+}
+#redactor-modal-close {
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ width: 30px;
+ height: 30px;
+ text-align: right;
+ color: #bbb;
+ font-size: 30px;
+ font-weight: 300;
+ cursor: pointer;
+ -webkit-appearance: none;
+ padding: 0;
+ border: 0;
+ background: 0;
+ outline: none;
+}
+#redactor-modal-close:hover {
+ color: #000;
+}
+#redactor-modal footer button {
+ position: relative;
+ width: 100%;
+ padding: 14px 16px;
+ margin: 0;
+ outline: none;
+ border: none;
+ background-color: #ddd;
+ color: #000;
+ text-align: center;
+ text-decoration: none;
+ font-weight: normal;
+ font-size: 12px;
+ font-family: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
+ line-height: 1;
+ cursor: pointer;
+}
+#redactor-modal footer button:hover {
+ color: #777;
+ background: none;
+ background: #bbb;
+ text-decoration: none;
+}
+#redactor-modal footer button.redactor-modal-delete-btn {
+ background: none;
+ color: #fff;
+ background-color: #b52525;
+}
+#redactor-modal footer button.redactor-modal-delete-btn:hover {
+ color: rgba(255, 255, 255, 0.6);
+ background-color: #881b1b;
+}
+#redactor-modal footer button.redactor-modal-action-btn {
+ background: none;
+ color: #fff;
+ background-color: #2461b5;
+}
+#redactor-modal footer button.redactor-modal-action-btn:hover {
+ color: rgba(255, 255, 255, 0.6);
+ background-color: #1a4580;
+}
+/*
+ ##############################################
+
+ DROPDOWN FORMATTING
+
+ ##############################################
+*/
+.redactor-dropdown .redactor-formatting-blockquote {
+ color: rgba(0, 0, 0, 0.4);
+ font-style: italic;
+}
+.redactor-dropdown .redactor-formatting-pre {
+ font-family: monospace, sans-serif;
+}
+.redactor-dropdown .redactor-formatting-h1 {
+ font-size: 36px;
+ line-height: 36px;
+ font-weight: bold;
+}
+.redactor-dropdown .redactor-formatting-h2 {
+ font-size: 24px;
+ line-height: 36px;
+ font-weight: bold;
+}
+.redactor-dropdown .redactor-formatting-h3 {
+ font-size: 21px;
+ line-height: 30px;
+ font-weight: bold;
+}
+.redactor-dropdown .redactor-formatting-h4 {
+ font-size: 18px;
+ line-height: 26px;
+ font-weight: bold;
+}
+.redactor-dropdown .redactor-formatting-h5 {
+ font-size: 16px;
+ line-height: 23px;
+ font-weight: bold;
+}
+/*
+ ##############################################
+
+ CONTENT STYLES
+
+ ##############################################
+*/
+.redactor-editor code,
+.redactor-editor pre {
+ font-family: Menlo, Monaco, monospace, sans-serif !important;
+ cursor: text;
+}
+.redactor-editor div,
+.redactor-editor p,
+.redactor-editor ul,
+.redactor-editor ol,
+.redactor-editor table,
+.redactor-editor dl,
+.redactor-editor blockquote,
+.redactor-editor pre {
+ font-size: 14px;
+ line-height: 1.6em;
+}
+.redactor-editor a {
+ color: #15c;
+ text-decoration: underline;
+}
+.redactor-editor object,
+.redactor-editor embed,
+.redactor-editor video,
+.redactor-editor img {
+ max-width: 100%;
+ width: auto;
+}
+.redactor-editor video,
+.redactor-editor img {
+ height: auto;
+}
+.redactor-editor div,
+.redactor-editor p,
+.redactor-editor ul,
+.redactor-editor ol,
+.redactor-editor table,
+.redactor-editor dl,
+.redactor-editor figure,
+.redactor-editor blockquote,
+.redactor-editor pre {
+ margin: 0;
+ margin-bottom: 15px;
+ border: none;
+ background: none;
+ box-shadow: none;
+}
+.redactor-editor iframe,
+.redactor-editor object,
+.redactor-editor hr {
+ margin-bottom: 15px;
+}
+.redactor-editor blockquote {
+ margin-left: 1.6em !important;
+ padding-left: 0;
+ color: #777;
+ font-style: italic;
+}
+.redactor-editor ul,
+.redactor-editor ol {
+ padding-left: 2em;
+}
+.redactor-editor ul ul,
+.redactor-editor ol ol,
+.redactor-editor ul ol,
+.redactor-editor ol ul {
+ margin: 2px;
+ padding: 0;
+ padding-left: 2em;
+ border: none;
+}
+.redactor-editor ol ol li {
+ list-style-type: lower-alpha;
+}
+.redactor-editor ol ol ol li {
+ list-style-type: lower-roman;
+}
+.redactor-editor dl dt {
+ font-weight: bold;
+}
+.redactor-editor dd {
+ margin-left: 1em;
+}
+.redactor-editor table {
+ border-collapse: collapse;
+ font-size: 1em;
+ width: 100%;
+}
+.redactor-editor table td,
+.redactor-editor table th {
+ padding: 5px;
+ border: 1px solid #ddd;
+ vertical-align: top;
+}
+.redactor-editor table thead td,
+.redactor-editor table th {
+ font-weight: bold;
+ border-bottom-color: #888;
+}
+.redactor-editor code {
+ background-color: #d8d7d7;
+}
+.redactor-editor pre {
+ padding: 1em;
+ border: 1px solid #ddd;
+ border-radius: 3px;
+ background: #f8f8f8;
+ font-size: 90%;
+}
+.redactor-editor hr {
+ display: block;
+ height: 1px;
+ border: 0;
+ border-top: 1px solid #ccc;
+}
+.redactor-editor h1,
+.redactor-editor h2,
+.redactor-editor h3,
+.redactor-editor h4,
+.redactor-editor h5,
+.redactor-editor h6 {
+ font-weight: bold;
+ color: #000;
+ padding: 0;
+ background: none;
+ text-rendering: optimizeLegibility;
+ margin: 0 0 .5em 0;
+}
+.redactor-editor h1,
+.redactor-editor h2,
+.redactor-editor h3,
+.redactor-editor h4 {
+ line-height: 1.3;
+}
+.redactor-editor h1 {
+ font-size: 36px;
+}
+.redactor-editor h2 {
+ font-size: 24px;
+ margin-bottom: .7em;
+}
+.redactor-editor h3 {
+ font-size: 21px;
+}
+.redactor-editor h4 {
+ font-size: 18px;
+}
+.redactor-editor h5 {
+ font-size: 16px;
+}
+.redactor-editor h6 {
+ font-size: 12px;
+ text-transform: uppercase;
+}
diff --git a/static/redactor/css/redactor.less b/static/redactor/css/redactor.less
old mode 100755
new mode 100644
index 377539c..9979b71
--- a/static/redactor/css/redactor.less
+++ b/static/redactor/css/redactor.less
@@ -1,1001 +1,1001 @@
-.clearfix() {
- &:after {
- content: "";
- display: table;
- clear: both;
- }
-}
-.transition-redactor(@transition: all linear .2s) {
- -moz-transition: @transition;
- transition: @transition;
-}
-
-.opacity-redactor(@opacity: 100) {
- filter: e(%("alpha(opacity=%d)", @opacity));
- -moz-opacity: @opacity / 100;
- opacity: @opacity / 100;
-}
-.box-sizing-redactor(@box-model) {
- -webkit-box-sizing: @box-model;
- -moz-box-sizing: @box-model;
- box-sizing: @box-model;
-}
-.striped-redactor(@color: rgba(255, 255, 255, .2); @angle: 45deg) {
- background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
- background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
- background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
-}
-
-.animation-redactor(@animation) {
- -webkit-animation: @animation;
- -o-animation: @animation;
- animation: @animation;
-}
-
-// VARIABLES
-@redactorFontFamily: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
-@redactorCodeFontFamily: Menlo, Monaco, monospace, sans-serif !important;
-
-@redactorFontSize: 14px;
-@redactorLineHeight: 1.6em;
-
-/*
- Icon font
-*/
-@font-face {
- font-family: 'RedactorFont';
- src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'),
- url(data:application/font-woff;charset=utf-8;base64,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) format('woff');
- font-weight: normal;
- font-style: normal;
-}
-
-
-/*
- Box
-*/
-.redactor-box {
- position: relative;
- overflow: visible;
- margin-bottom: 24px;
-
- & textarea {
- display: block;
- position: relative;
- margin: 0;
- padding: 0;
- width: 100%;
- overflow: auto;
- outline: none;
- border: none;
- background-color: #111;
- box-shadow: none;
- color: #ccc;
- font-size: 13px;
- font-family: @redactorCodeFontFamily;
- resize: none;
- &:focus {
- outline: none;
- }
- }
-}
-.redactor-editor,
-.redactor-box {
- background: #fff;
-}
-
-/*
- Z-index setup
-*/
-.redactor-editor,
-.redactor-box,
-.redactor-box textarea {
- z-index: auto;
-}
-.redactor-box-fullscreen {
- z-index: 1051;
-}
-.redactor-toolbar {
- z-index: 100;
-}
-.redactor-dropdown {
- z-index: 1052;
-}
-#redactor-modal-overlay,
-#redactor-modal-box,
-#redactor-modal {
- z-index: 1053;
-}
-
-/*
- Fullscreen
-*/
-body .redactor-box-fullscreen {
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
-}
-
-/*
- Utils
-*/
-.redactor-scrollbar-measure {
- position: absolute;
- top: -9999px;
- width: 50px;
- height: 50px;
- overflow: scroll;
-}
-
-/*
- Editor
-*/
-.redactor-editor {
- position: relative;
- overflow: auto;
- margin: 0 !important;
- padding: 20px;
- min-height: 80px;
- outline: none;
- white-space: normal;
- border: 1px solid #eee;
- font-family: @redactorFontFamily;
- font-size: @redactorFontSize;
- line-height: @redactorLineHeight;
- &:focus {
- outline: none;
- }
-}
-.toolbar-fixed-box + .redactor-editor {
- padding-top: 32px !important;
-}
-
-/*
- Placeholder
-*/
-.redactor-placeholder:after {
- position: absolute;
- top: 20px;
- left: 20px;
- content: attr(placeholder);
- display: block; /* For Firefox */
- color: #999 !important;
- font-weight: normal !important;
-}
-
-
-/*
- Toolbar
-*/
-.redactor-toolbar {
- position: relative;
- top: 0;
- left: 0;
- margin: 0 !important;
- padding: 0 !important;
- list-style: none !important;
- font-size: 14px !important;
- line-height: 1 !important;
-
- background: #fff;
- border: none;
- box-shadow: 0 1px 2px rgba(0, 0, 0, .2);
-
- .clearfix;
-
- &.redactor-toolbar-overflow {
- overflow-y: auto;
- height: 29px;
- white-space: nowrap;
- }
- &.redactor-toolbar-external {
- z-index: 999;
- box-shadow: none;
- border: 1px solid rgba(0, 0, 0, .1);
- }
- & li {
- vertical-align: top;
- display: inline-block;
- margin: 0 !important;
- padding: 0 !important;
- outline: none;
- list-style: none !important;
- .box-sizing-redactor(content-box);
- }
- & li a {
- display: block;
- color: #333;
- text-align: center;
- padding: 9px 10px;
- cursor: pointer;
- outline: none;
- border: none;
- text-decoration: none;
- cursor: pointer;
- zoom: 1;
- .box-sizing-redactor(content-box);
- }
- & li a {
- &:hover {
- outline: none;
- background-color: rgba(31,120,216,1);
- color: #fff;
- }
- &:hover i:before {
- color: #fff;
- }
- &:active,
- &.redactor-act {
- outline: none;
- background-color: #ccc;
- color: #444;
- }
- }
- & li a.redactor-btn-image {
- width: 14px;
- height: 14px;
- background-position: center center;
- background-repeat: no-repeat;
- }
- & li a.fa-redactor-btn {
- display: inline-block;
- padding: 9px 10px 8px 10px;
- line-height: 1;
- }
- & li a.redactor-button-disabled {
- .opacity-redactor(30);
- &:hover {
- color: #333;
- outline: none;
- background-color: transparent !important;
- cursor: default;
- }
- }
- & li a.redactor-button-focus {
- color:#fff;
- background:#000;
- }
-}
-
-/*
- CodeMirror
-*/
-.redactor-box .CodeMirror {
- display: none;
-}
-
-/*
- Icons
-*/
-.re-icon {
- font-family: 'RedactorFont';
- speak: none;
- font-style: normal;
- font-weight: normal;
- font-variant: normal;
- text-transform: none;
- line-height: 1;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-.re-icon i:before {
- position: relative;
- font-size: 14px;
-}
-
-
-.re-video:before {
- content: "\e600";
-}
-.re-unorderedlist:before {
- content: "\e601";
-}
-.re-undo:before {
- content: "\e602";
-}
-.re-underline:before {
- content: "\e603";
-}
-.re-textdirection:before {
- content: "\e604";
-}
-.re-fontcolor:before {
- content: "\e605";
-}
-.re-table:before {
- content: "\e606";
-}
-.re-redo:before {
- content: "\e607";
-}
-.re-quote:before {
- content: "\e608";
-}
-.re-outdent:before {
- content: "\e609";
-}
-.re-orderedlist:before {
- content: "\e60a";
-}
-.re-link:before {
- content: "\e60b";
-}
-.re-horizontalrule:before {
- content: "\e60c";
-}
-.re-italic:before {
- content: "\e60d";
-}
-.re-indent:before {
- content: "\e60e";
-}
-.re-image:before {
- content: "\e60f";
-}
-.re-fullscreen:before {
- content: "\e610";
-}
-.re-normalscreen:before {
- content: "\e611";
-}
-.re-formatting:before {
- content: "\e612";
-}
-.re-fontsize:before {
- content: "\e613";
-}
-.re-fontfamily:before {
- content: "\e614";
-}
-.re-deleted:before {
- content: "\e615";
-}
-.re-html:before {
- content: "\e616";
-}
-.re-clips:before {
- content: "\e617";
-}
-.re-bold:before {
- content: "\e618";
-}
-.re-backcolor:before {
- content: "\e619";
-}
-.re-file:before {
- content: "\e61a";
-}
-.re-alignright:before {
- content: "\e61b";
-}
-.re-alignment:before,
-.re-alignleft:before {
- content: "\e61c";
-}
-.re-alignjustify:before {
- content: "\e61d";
-}
-.re-aligncenter:before {
- content: "\e61e";
-}
-.re-gallery:before {
- content: "\e61f";
-}
-
-
-/*
- Toolbar tooltip
-*/
-.redactor-toolbar-tooltip {
- position: absolute;
- z-index: 1054;
- text-align: center;
- top: 0;
- left: 0;
- background: #000;
- color: #fff;
- padding: 5px 8px;
- line-height: 1;
- font-family: @redactorFontFamily;
- font-size: 12px;
- border-radius: 2px;
-}
-
-
-/*
- Dropdown
-*/
-.redactor-dropdown {
- position: absolute;
- top: 28px;
- left: 0;
- padding: 0;
- min-width: 220px;
- max-height: 254px;
- overflow: auto;
- background-color: #fff;
- box-shadow: 0 1px 7px rgba(0, 0, 0, .25);
- font-size: @redactorFontSize;
- font-family: @redactorFontFamily;
- line-height: @redactorLineHeight;
- & a {
- display: block;
- padding: 10px 15px;
- color: #000;
- text-decoration: none;
- border-bottom: 1px solid rgba(0, 0, 0, .07);
- &:last-child {
- border-bottom: none;
- }
- &:hover {
- background-color: rgba(31, 120, 216, 1);
- color: #fff !important;
- text-decoration: none;
- }
- &.selected {
- background-color: #000;
- color: #fff;
- }
- &.redactor-dropdown-link-inactive,
- &.redactor-dropdown-link-inactive:hover {
- background: none;
- cursor: default;
- color: #000 !important;
- .opacity-redactor(40);
- }
- &.redactor-dropdown-link-selected {
- color:#fff;
- background:#000;
- }
- }
-}
-
-
-/*
- IMAGE BOX
-*/
-#redactor-image-box {
- position: relative;
- max-width: 100%;
- display: inline-block;
- line-height: 0;
- outline: 1px dashed rgba(0, 0, 0, .6),
-}
-#redactor-image-editter {
- position: absolute;
- z-index: 5;
- top: 50%;
- left: 50%;
- margin-top: -11px;
- margin-left: -18px;
- line-height: 1;
- background-color: #000;
- color: #fff;
- font-size: 11px;
- padding: 7px 10px;
- cursor: pointer;
-}
-#redactor-image-resizer {
- position: absolute;
- z-index: 2;
- line-height: 1;
- cursor: nw-resize;
- bottom: -4px;
- right: -5px;
- border: 1px solid #fff;
- background-color: #000;
- width: 8px;
- height: 8px;
-}
-
-
-
-/*
- LINK TOOLTIP
-*/
-.redactor-link-tooltip {
- position: absolute;
- z-index: 99;
- padding: 10px;
- line-height: 1;
- display: inline-block;
- background-color: #000;
- color: #555 !important;
-}
-.redactor-link-tooltip,
-.redactor-link-tooltip a {
- font-size: 12px;
- font-family: @redactorFontFamily;
-}
-.redactor-link-tooltip a {
- color: #ccc;
- margin: 0 5px;
- text-decoration: none;
- &:hover {
- color: #fff;
- }
-}
-
-/*
- DROPAREA
-*/
-#redactor-droparea {
- position: relative;
- overflow: hidden;
- padding: 140px 20px;
- border: 3px dashed rgba(0, 0, 0, .1);
- &.drag-hover {
- background: rgba(200, 222, 250, 0.75);
- }
- &.drag-drop {
- background: rgba(250, 248, 200, 0.5);
- }
-}
-#redactor-droparea-placeholder {
- text-align: center;
- font-size: 12px;
- color: rgba(0, 0, 0, .7);
-}
-
-
-/*
- PROGRESS
-*/
-#redactor-progress {
- position: fixed;
- top: 0;
- left: 0;
- width: 100%;
- z-index: 1000000;
- height: 10px;
-}
-#redactor-progress span {
- display: block;
- width: 100%;
- height: 100%;
- background-color: #3d58a8;
- .striped-redactor();
- .animation-redactor(progress-bar-stripes 2s linear infinite);
- background-size: 40px 40px;
-}
-
-@-webkit-keyframes progress-bar-stripes {
- from { background-position: 40px 0; }
- to { background-position: 0 0; }
-}
-@-o-keyframes progress-bar-stripes {
- from { background-position: 40px 0; }
- to { background-position: 0 0; }
-}
-@keyframes progress-bar-stripes {
- from { background-position: 40px 0; }
- to { background-position: 0 0; }
-}
-
-
-/*
- MODAL
-*/
-#redactor-modal-overlay {
- position: fixed;
- top: 0;
- left: 0;
- margin: auto;
- overflow: auto;
- width: 100%;
- height: 100%;
- background-color: #000 !important;
- .opacity-redactor(30);
-}
-#redactor-modal-box {
- position: fixed;
- top: 0;
- left: 0;
- bottom: 0;
- right: 0;
- overflow-x: hidden;
- overflow-y: auto;
-}
-#redactor-modal {
- outline:0;
- position: relative;
- margin: auto;
- margin-bottom: 20px;
- padding: 0;
- background: #fff;
- color: #000;
- font-size: 14px !important;
- font-family: @redactorFontFamily;
- box-shadow: 0 1px 70px rgba(0, 0, 0, .5);
-
- & header {
- padding: 30px 40px 5px 40px;
- font-size: 18px;
- font-weight: bold;
- }
- & section {
- padding: 30px 40px 50px 40px;
- }
- & label {
- display: block;
- float: none !important;
- margin: 15px 0 3px 0 !important;
- padding: 0;
- }
- & input[type="radio"],
- & input[type="checkbox"] {
- position: relative;
- top: -1px;
- }
- & select {
- width: 100%;
- }
- & input[type="text"],
- & input[type="password"],
- & input[type="email"],
- & input[type="url"],
- & textarea {
- position: relative;
- z-index: 2;
- margin: 0;
- padding: 5px 4px;
- height: 28px;
- border: 1px solid #ccc;
- border-radius: 1px;
- background-color: white;
- box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset;
- color: #333;
- width: 100%;
- font-size: 14px;
- font-family: @redactorFontFamily;
- .transition-redactor(border 0.3s ease-in);
- &:focus {
- outline: none;
- border-color: #5ca9e4;
- box-shadow: 0 0 0 2px rgba(70, 161, 231, .3), 0 1px 2px rgba(0, 0, 0, .2) inset;
- }
- &.redactor-input-error {
- border-color: #e82f2f;
- box-shadow: 0 0 0 2px rgba(232, 47, 47, .3), 0 1px 2px rgba(0, 0, 0, .2) inset;
- }
- }
- & textarea {
- display: block;
- margin-top: 4px;
- line-height: 1.4em;
- }
-
-}
-
-/*
- Tabs in Modal
-*/
-#redactor-modal-tabber {
- margin-bottom: 15px;
- font-size: 12px;
- & a {
- border: 1px solid #ddd;
- line-height: 1;
- padding: 8px 15px;
- margin-right: -1px;
- text-decoration: none;
- color: #000;
- &:hover {
- background-color: rgba(31,120,216,1);
- border-color: rgba(31,120,216,1);
- color: #fff;
- }
- &.active {
- cursor: default;
- background-color: #ddd;
- border-color: #ddd;
- color: rgba(0, 0, 0, .6);
- }
- }
-}
-
-
-/*
- List in Modal
-*/
-#redactor-modal {
- #redactor-modal-list {
- margin-left: 0;
- padding-left: 0;
- list-style: none;
- max-height: 250px;
- overflow-x: auto;
- & li {
- border-bottom: 1px solid #ddd;
- &:last-child {
- border-bottom: none;
- }
- }
-
- & a {
- padding: 10px 5px;
- color: #000;
- text-decoration: none;
- font-size: 13px;
- display: block;
- position: relative;
- &:hover {
- background-color: #eee;
- }
- }
- }
-}
-
-#redactor-modal-close {
- position: absolute;
- top: 10px;
- right: 10px;
- width: 30px;
- height: 30px;
- text-align: right;
- color: #bbb;
- font-size: 30px;
- font-weight: 300;
- cursor: pointer;
- -webkit-appearance: none;
- padding:0;
- border:0;
- background:0;
- outline:none;
- &:hover {
- color: #000;
- }
-
-}
-#redactor-modal footer button {
- position: relative;
- width: 100%;
- padding: 14px 16px;
- margin: 0;
- outline: none;
- border: none;
- background-color: #ddd;
- color: #000;
- text-align: center;
- text-decoration: none;
- font-weight: normal;
- font-size: 12px;
- font-family: @redactorFontFamily;
- line-height: 1;
- cursor: pointer;
-
- &:hover {
- color: #777;
- background: none;
- background: #bbb;
- text-decoration: none;
- }
-
- &.redactor-modal-delete-btn {
- background: none;
- color: #fff;
- background-color: #b52525;
- &:hover {
- color: rgba(255, 255, 255, .6);
- background-color: #881b1b;
- }
- }
- &.redactor-modal-action-btn {
- background: none;
- color: #fff;
- background-color: #2461b5;
- &:hover {
- color: rgba(255, 255, 255, .6);
- background-color: #1a4580;
- }
- }
-}
-
-
-/*
- ##############################################
-
- DROPDOWN FORMATTING
-
- ##############################################
-*/
-.redactor-dropdown {
- & .redactor-formatting-blockquote {
- color: rgba(0, 0, 0, .4);
- font-style: italic;
- }
- & .redactor-formatting-pre {
- font-family: monospace, sans-serif;
- }
- & .redactor-formatting-h1 {
- font-size: 36px;
- line-height: 36px;
- font-weight: bold;
- }
- & .redactor-formatting-h2 {
- font-size: 24px;
- line-height: 36px;
- font-weight: bold;
- }
- & .redactor-formatting-h3 {
- font-size: 21px;
- line-height: 30px;
- font-weight: bold;
- }
- & .redactor-formatting-h4 {
- font-size: 18px;
- line-height: 26px;
- font-weight: bold;
- }
- & .redactor-formatting-h5 {
- font-size: 16px;
- line-height: 23px;
- font-weight: bold;
- }
-}
-
-
-/*
- ##############################################
-
- CONTENT STYLES
-
- ##############################################
-*/
-.redactor-editor {
- code,
- pre {
- font-family: @redactorCodeFontFamily;
- cursor: text;
- }
- div,
- p,
- ul,
- ol,
- table,
- dl,
- blockquote,
- pre {
- font-size: @redactorFontSize;
- line-height: @redactorLineHeight;
- }
- a {
- color: #15c;
- text-decoration: underline;
- }
-
- object,
- embed,
- video,
- img {
- max-width: 100%;
- width: auto;
- }
- video,
- img {
- height: auto;
- }
- div,
- p,
- ul,
- ol,
- table,
- dl,
- figure,
- blockquote,
- pre {
- margin: 0;
- margin-bottom: 15px;
- border: none;
- background: none;
- box-shadow: none;
- }
- iframe,
- object,
- hr {
- margin-bottom: 15px;
- }
- blockquote {
- margin-left: 1.6em !important;
- padding-left: 0;
- color: #777;
- font-style: italic;
- }
- ul,
- ol {
- padding-left: 2em;
- }
- ul ul,
- ol ol,
- ul ol,
- ol ul {
- margin: 2px;
- padding: 0;
- padding-left: 2em;
- border: none;
- }
- ol ol li {
- list-style-type: lower-alpha;
- }
- ol ol ol li {
- list-style-type: lower-roman;
- }
- dl dt {
- font-weight: bold;
- }
- dd {
- margin-left: 1em;
- }
- table {
- border-collapse: collapse;
- font-size: 1em;
- width: 100%;
- & td,
- & th {
- padding: 5px;
- border: 1px solid #ddd;
- vertical-align: top;
- }
- }
- table thead td,
- table th {
- font-weight: bold;
- border-bottom-color: #888;
- }
- code {
- background-color: #d8d7d7;
- }
- pre {
- padding: 1em;
- border: 1px solid #ddd;
- border-radius: 3px;
- background: #f8f8f8;
- font-size: 90%;
- }
- hr {
- display: block;
- height: 1px;
- border: 0;
- border-top: 1px solid #ccc;
- }
- h1,
- h2,
- h3,
- h4,
- h5,
- h6 {
- font-weight: bold;
- color: #000;
- padding: 0;
- background: none;
- text-rendering: optimizeLegibility;
- margin: 0 0 .5em 0;
- }
- h1,
- h2,
- h3,
- h4 {
- line-height: 1.3;
- }
- h1 {
- font-size: 36px;
- }
- h2 {
- font-size: 24px;
- margin-bottom: .7em;
- }
- h3 {
- font-size: 21px;
- }
- h4 {
- font-size: 18px;
- }
- h5 {
- font-size: 16px;
- }
- h6 {
- font-size: 12px;
- text-transform: uppercase;
- }
+.clearfix() {
+ &:after {
+ content: "";
+ display: table;
+ clear: both;
+ }
+}
+.transition-redactor(@transition: all linear .2s) {
+ -moz-transition: @transition;
+ transition: @transition;
+}
+
+.opacity-redactor(@opacity: 100) {
+ filter: e(%("alpha(opacity=%d)", @opacity));
+ -moz-opacity: @opacity / 100;
+ opacity: @opacity / 100;
+}
+.box-sizing-redactor(@box-model) {
+ -webkit-box-sizing: @box-model;
+ -moz-box-sizing: @box-model;
+ box-sizing: @box-model;
+}
+.striped-redactor(@color: rgba(255, 255, 255, .2); @angle: 45deg) {
+ background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
+ background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
+}
+
+.animation-redactor(@animation) {
+ -webkit-animation: @animation;
+ -o-animation: @animation;
+ animation: @animation;
+}
+
+// VARIABLES
+@redactorFontFamily: Arial, Helvetica, Verdana, Tahoma, sans-serif !important;
+@redactorCodeFontFamily: Menlo, Monaco, monospace, sans-serif !important;
+
+@redactorFontSize: 14px;
+@redactorLineHeight: 1.6em;
+
+/*
+ Icon font
+*/
+@font-face {
+ font-family: 'RedactorFont';
+ src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'),
+ url(data:application/font-woff;charset=utf-8;base64,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) format('woff');
+ font-weight: normal;
+ font-style: normal;
+}
+
+
+/*
+ Box
+*/
+.redactor-box {
+ position: relative;
+ overflow: visible;
+ margin-bottom: 24px;
+
+ & textarea {
+ display: block;
+ position: relative;
+ margin: 0;
+ padding: 0;
+ width: 100%;
+ overflow: auto;
+ outline: none;
+ border: none;
+ background-color: #111;
+ box-shadow: none;
+ color: #ccc;
+ font-size: 13px;
+ font-family: @redactorCodeFontFamily;
+ resize: none;
+ &:focus {
+ outline: none;
+ }
+ }
+}
+.redactor-editor,
+.redactor-box {
+ background: #fff;
+}
+
+/*
+ Z-index setup
+*/
+.redactor-editor,
+.redactor-box,
+.redactor-box textarea {
+ z-index: auto;
+}
+.redactor-box-fullscreen {
+ z-index: 1051;
+}
+.redactor-toolbar {
+ z-index: 100;
+}
+.redactor-dropdown {
+ z-index: 1052;
+}
+#redactor-modal-overlay,
+#redactor-modal-box,
+#redactor-modal {
+ z-index: 1053;
+}
+
+/*
+ Fullscreen
+*/
+body .redactor-box-fullscreen {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+}
+
+/*
+ Utils
+*/
+.redactor-scrollbar-measure {
+ position: absolute;
+ top: -9999px;
+ width: 50px;
+ height: 50px;
+ overflow: scroll;
+}
+
+/*
+ Editor
+*/
+.redactor-editor {
+ position: relative;
+ overflow: auto;
+ margin: 0 !important;
+ padding: 20px;
+ min-height: 80px;
+ outline: none;
+ white-space: normal;
+ border: 1px solid #eee;
+ font-family: @redactorFontFamily;
+ font-size: @redactorFontSize;
+ line-height: @redactorLineHeight;
+ &:focus {
+ outline: none;
+ }
+}
+.toolbar-fixed-box + .redactor-editor {
+ padding-top: 32px !important;
+}
+
+/*
+ Placeholder
+*/
+.redactor-placeholder:after {
+ position: absolute;
+ top: 20px;
+ left: 20px;
+ content: attr(placeholder);
+ display: block; /* For Firefox */
+ color: #999 !important;
+ font-weight: normal !important;
+}
+
+
+/*
+ Toolbar
+*/
+.redactor-toolbar {
+ position: relative;
+ top: 0;
+ left: 0;
+ margin: 0 !important;
+ padding: 0 !important;
+ list-style: none !important;
+ font-size: 14px !important;
+ line-height: 1 !important;
+
+ background: #fff;
+ border: none;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, .2);
+
+ .clearfix;
+
+ &.redactor-toolbar-overflow {
+ overflow-y: auto;
+ height: 29px;
+ white-space: nowrap;
+ }
+ &.redactor-toolbar-external {
+ z-index: 999;
+ box-shadow: none;
+ border: 1px solid rgba(0, 0, 0, .1);
+ }
+ & li {
+ vertical-align: top;
+ display: inline-block;
+ margin: 0 !important;
+ padding: 0 !important;
+ outline: none;
+ list-style: none !important;
+ .box-sizing-redactor(content-box);
+ }
+ & li a {
+ display: block;
+ color: #333;
+ text-align: center;
+ padding: 9px 10px;
+ cursor: pointer;
+ outline: none;
+ border: none;
+ text-decoration: none;
+ cursor: pointer;
+ zoom: 1;
+ .box-sizing-redactor(content-box);
+ }
+ & li a {
+ &:hover {
+ outline: none;
+ background-color: rgba(31,120,216,1);
+ color: #fff;
+ }
+ &:hover i:before {
+ color: #fff;
+ }
+ &:active,
+ &.redactor-act {
+ outline: none;
+ background-color: #ccc;
+ color: #444;
+ }
+ }
+ & li a.redactor-btn-image {
+ width: 14px;
+ height: 14px;
+ background-position: center center;
+ background-repeat: no-repeat;
+ }
+ & li a.fa-redactor-btn {
+ display: inline-block;
+ padding: 9px 10px 8px 10px;
+ line-height: 1;
+ }
+ & li a.redactor-button-disabled {
+ .opacity-redactor(30);
+ &:hover {
+ color: #333;
+ outline: none;
+ background-color: transparent !important;
+ cursor: default;
+ }
+ }
+ & li a.redactor-button-focus {
+ color:#fff;
+ background:#000;
+ }
+}
+
+/*
+ CodeMirror
+*/
+.redactor-box .CodeMirror {
+ display: none;
+}
+
+/*
+ Icons
+*/
+.re-icon {
+ font-family: 'RedactorFont';
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+.re-icon i:before {
+ position: relative;
+ font-size: 14px;
+}
+
+
+.re-video:before {
+ content: "\e600";
+}
+.re-unorderedlist:before {
+ content: "\e601";
+}
+.re-undo:before {
+ content: "\e602";
+}
+.re-underline:before {
+ content: "\e603";
+}
+.re-textdirection:before {
+ content: "\e604";
+}
+.re-fontcolor:before {
+ content: "\e605";
+}
+.re-table:before {
+ content: "\e606";
+}
+.re-redo:before {
+ content: "\e607";
+}
+.re-quote:before {
+ content: "\e608";
+}
+.re-outdent:before {
+ content: "\e609";
+}
+.re-orderedlist:before {
+ content: "\e60a";
+}
+.re-link:before {
+ content: "\e60b";
+}
+.re-horizontalrule:before {
+ content: "\e60c";
+}
+.re-italic:before {
+ content: "\e60d";
+}
+.re-indent:before {
+ content: "\e60e";
+}
+.re-image:before {
+ content: "\e60f";
+}
+.re-fullscreen:before {
+ content: "\e610";
+}
+.re-normalscreen:before {
+ content: "\e611";
+}
+.re-formatting:before {
+ content: "\e612";
+}
+.re-fontsize:before {
+ content: "\e613";
+}
+.re-fontfamily:before {
+ content: "\e614";
+}
+.re-deleted:before {
+ content: "\e615";
+}
+.re-html:before {
+ content: "\e616";
+}
+.re-clips:before {
+ content: "\e617";
+}
+.re-bold:before {
+ content: "\e618";
+}
+.re-backcolor:before {
+ content: "\e619";
+}
+.re-file:before {
+ content: "\e61a";
+}
+.re-alignright:before {
+ content: "\e61b";
+}
+.re-alignment:before,
+.re-alignleft:before {
+ content: "\e61c";
+}
+.re-alignjustify:before {
+ content: "\e61d";
+}
+.re-aligncenter:before {
+ content: "\e61e";
+}
+.re-gallery:before {
+ content: "\e61f";
+}
+
+
+/*
+ Toolbar tooltip
+*/
+.redactor-toolbar-tooltip {
+ position: absolute;
+ z-index: 1054;
+ text-align: center;
+ top: 0;
+ left: 0;
+ background: #000;
+ color: #fff;
+ padding: 5px 8px;
+ line-height: 1;
+ font-family: @redactorFontFamily;
+ font-size: 12px;
+ border-radius: 2px;
+}
+
+
+/*
+ Dropdown
+*/
+.redactor-dropdown {
+ position: absolute;
+ top: 28px;
+ left: 0;
+ padding: 0;
+ min-width: 220px;
+ max-height: 254px;
+ overflow: auto;
+ background-color: #fff;
+ box-shadow: 0 1px 7px rgba(0, 0, 0, .25);
+ font-size: @redactorFontSize;
+ font-family: @redactorFontFamily;
+ line-height: @redactorLineHeight;
+ & a {
+ display: block;
+ padding: 10px 15px;
+ color: #000;
+ text-decoration: none;
+ border-bottom: 1px solid rgba(0, 0, 0, .07);
+ &:last-child {
+ border-bottom: none;
+ }
+ &:hover {
+ background-color: rgba(31, 120, 216, 1);
+ color: #fff !important;
+ text-decoration: none;
+ }
+ &.selected {
+ background-color: #000;
+ color: #fff;
+ }
+ &.redactor-dropdown-link-inactive,
+ &.redactor-dropdown-link-inactive:hover {
+ background: none;
+ cursor: default;
+ color: #000 !important;
+ .opacity-redactor(40);
+ }
+ &.redactor-dropdown-link-selected {
+ color:#fff;
+ background:#000;
+ }
+ }
+}
+
+
+/*
+ IMAGE BOX
+*/
+#redactor-image-box {
+ position: relative;
+ max-width: 100%;
+ display: inline-block;
+ line-height: 0;
+ outline: 1px dashed rgba(0, 0, 0, .6),
+}
+#redactor-image-editter {
+ position: absolute;
+ z-index: 5;
+ top: 50%;
+ left: 50%;
+ margin-top: -11px;
+ margin-left: -18px;
+ line-height: 1;
+ background-color: #000;
+ color: #fff;
+ font-size: 11px;
+ padding: 7px 10px;
+ cursor: pointer;
+}
+#redactor-image-resizer {
+ position: absolute;
+ z-index: 2;
+ line-height: 1;
+ cursor: nw-resize;
+ bottom: -4px;
+ right: -5px;
+ border: 1px solid #fff;
+ background-color: #000;
+ width: 8px;
+ height: 8px;
+}
+
+
+
+/*
+ LINK TOOLTIP
+*/
+.redactor-link-tooltip {
+ position: absolute;
+ z-index: 99;
+ padding: 10px;
+ line-height: 1;
+ display: inline-block;
+ background-color: #000;
+ color: #555 !important;
+}
+.redactor-link-tooltip,
+.redactor-link-tooltip a {
+ font-size: 12px;
+ font-family: @redactorFontFamily;
+}
+.redactor-link-tooltip a {
+ color: #ccc;
+ margin: 0 5px;
+ text-decoration: none;
+ &:hover {
+ color: #fff;
+ }
+}
+
+/*
+ DROPAREA
+*/
+#redactor-droparea {
+ position: relative;
+ overflow: hidden;
+ padding: 140px 20px;
+ border: 3px dashed rgba(0, 0, 0, .1);
+ &.drag-hover {
+ background: rgba(200, 222, 250, 0.75);
+ }
+ &.drag-drop {
+ background: rgba(250, 248, 200, 0.5);
+ }
+}
+#redactor-droparea-placeholder {
+ text-align: center;
+ font-size: 12px;
+ color: rgba(0, 0, 0, .7);
+}
+
+
+/*
+ PROGRESS
+*/
+#redactor-progress {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ z-index: 1000000;
+ height: 10px;
+}
+#redactor-progress span {
+ display: block;
+ width: 100%;
+ height: 100%;
+ background-color: #3d58a8;
+ .striped-redactor();
+ .animation-redactor(progress-bar-stripes 2s linear infinite);
+ background-size: 40px 40px;
+}
+
+@-webkit-keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+@-o-keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+@keyframes progress-bar-stripes {
+ from { background-position: 40px 0; }
+ to { background-position: 0 0; }
+}
+
+
+/*
+ MODAL
+*/
+#redactor-modal-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ margin: auto;
+ overflow: auto;
+ width: 100%;
+ height: 100%;
+ background-color: #000 !important;
+ .opacity-redactor(30);
+}
+#redactor-modal-box {
+ position: fixed;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+#redactor-modal {
+ outline:0;
+ position: relative;
+ margin: auto;
+ margin-bottom: 20px;
+ padding: 0;
+ background: #fff;
+ color: #000;
+ font-size: 14px !important;
+ font-family: @redactorFontFamily;
+ box-shadow: 0 1px 70px rgba(0, 0, 0, .5);
+
+ & header {
+ padding: 30px 40px 5px 40px;
+ font-size: 18px;
+ font-weight: bold;
+ }
+ & section {
+ padding: 30px 40px 50px 40px;
+ }
+ & label {
+ display: block;
+ float: none !important;
+ margin: 15px 0 3px 0 !important;
+ padding: 0;
+ }
+ & input[type="radio"],
+ & input[type="checkbox"] {
+ position: relative;
+ top: -1px;
+ }
+ & select {
+ width: 100%;
+ }
+ & input[type="text"],
+ & input[type="password"],
+ & input[type="email"],
+ & input[type="url"],
+ & textarea {
+ position: relative;
+ z-index: 2;
+ margin: 0;
+ padding: 5px 4px;
+ height: 28px;
+ border: 1px solid #ccc;
+ border-radius: 1px;
+ background-color: white;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2) inset;
+ color: #333;
+ width: 100%;
+ font-size: 14px;
+ font-family: @redactorFontFamily;
+ .transition-redactor(border 0.3s ease-in);
+ &:focus {
+ outline: none;
+ border-color: #5ca9e4;
+ box-shadow: 0 0 0 2px rgba(70, 161, 231, .3), 0 1px 2px rgba(0, 0, 0, .2) inset;
+ }
+ &.redactor-input-error {
+ border-color: #e82f2f;
+ box-shadow: 0 0 0 2px rgba(232, 47, 47, .3), 0 1px 2px rgba(0, 0, 0, .2) inset;
+ }
+ }
+ & textarea {
+ display: block;
+ margin-top: 4px;
+ line-height: 1.4em;
+ }
+
+}
+
+/*
+ Tabs in Modal
+*/
+#redactor-modal-tabber {
+ margin-bottom: 15px;
+ font-size: 12px;
+ & a {
+ border: 1px solid #ddd;
+ line-height: 1;
+ padding: 8px 15px;
+ margin-right: -1px;
+ text-decoration: none;
+ color: #000;
+ &:hover {
+ background-color: rgba(31,120,216,1);
+ border-color: rgba(31,120,216,1);
+ color: #fff;
+ }
+ &.active {
+ cursor: default;
+ background-color: #ddd;
+ border-color: #ddd;
+ color: rgba(0, 0, 0, .6);
+ }
+ }
+}
+
+
+/*
+ List in Modal
+*/
+#redactor-modal {
+ #redactor-modal-list {
+ margin-left: 0;
+ padding-left: 0;
+ list-style: none;
+ max-height: 250px;
+ overflow-x: auto;
+ & li {
+ border-bottom: 1px solid #ddd;
+ &:last-child {
+ border-bottom: none;
+ }
+ }
+
+ & a {
+ padding: 10px 5px;
+ color: #000;
+ text-decoration: none;
+ font-size: 13px;
+ display: block;
+ position: relative;
+ &:hover {
+ background-color: #eee;
+ }
+ }
+ }
+}
+
+#redactor-modal-close {
+ position: absolute;
+ top: 10px;
+ right: 10px;
+ width: 30px;
+ height: 30px;
+ text-align: right;
+ color: #bbb;
+ font-size: 30px;
+ font-weight: 300;
+ cursor: pointer;
+ -webkit-appearance: none;
+ padding:0;
+ border:0;
+ background:0;
+ outline:none;
+ &:hover {
+ color: #000;
+ }
+
+}
+#redactor-modal footer button {
+ position: relative;
+ width: 100%;
+ padding: 14px 16px;
+ margin: 0;
+ outline: none;
+ border: none;
+ background-color: #ddd;
+ color: #000;
+ text-align: center;
+ text-decoration: none;
+ font-weight: normal;
+ font-size: 12px;
+ font-family: @redactorFontFamily;
+ line-height: 1;
+ cursor: pointer;
+
+ &:hover {
+ color: #777;
+ background: none;
+ background: #bbb;
+ text-decoration: none;
+ }
+
+ &.redactor-modal-delete-btn {
+ background: none;
+ color: #fff;
+ background-color: #b52525;
+ &:hover {
+ color: rgba(255, 255, 255, .6);
+ background-color: #881b1b;
+ }
+ }
+ &.redactor-modal-action-btn {
+ background: none;
+ color: #fff;
+ background-color: #2461b5;
+ &:hover {
+ color: rgba(255, 255, 255, .6);
+ background-color: #1a4580;
+ }
+ }
+}
+
+
+/*
+ ##############################################
+
+ DROPDOWN FORMATTING
+
+ ##############################################
+*/
+.redactor-dropdown {
+ & .redactor-formatting-blockquote {
+ color: rgba(0, 0, 0, .4);
+ font-style: italic;
+ }
+ & .redactor-formatting-pre {
+ font-family: monospace, sans-serif;
+ }
+ & .redactor-formatting-h1 {
+ font-size: 36px;
+ line-height: 36px;
+ font-weight: bold;
+ }
+ & .redactor-formatting-h2 {
+ font-size: 24px;
+ line-height: 36px;
+ font-weight: bold;
+ }
+ & .redactor-formatting-h3 {
+ font-size: 21px;
+ line-height: 30px;
+ font-weight: bold;
+ }
+ & .redactor-formatting-h4 {
+ font-size: 18px;
+ line-height: 26px;
+ font-weight: bold;
+ }
+ & .redactor-formatting-h5 {
+ font-size: 16px;
+ line-height: 23px;
+ font-weight: bold;
+ }
+}
+
+
+/*
+ ##############################################
+
+ CONTENT STYLES
+
+ ##############################################
+*/
+.redactor-editor {
+ code,
+ pre {
+ font-family: @redactorCodeFontFamily;
+ cursor: text;
+ }
+ div,
+ p,
+ ul,
+ ol,
+ table,
+ dl,
+ blockquote,
+ pre {
+ font-size: @redactorFontSize;
+ line-height: @redactorLineHeight;
+ }
+ a {
+ color: #15c;
+ text-decoration: underline;
+ }
+
+ object,
+ embed,
+ video,
+ img {
+ max-width: 100%;
+ width: auto;
+ }
+ video,
+ img {
+ height: auto;
+ }
+ div,
+ p,
+ ul,
+ ol,
+ table,
+ dl,
+ figure,
+ blockquote,
+ pre {
+ margin: 0;
+ margin-bottom: 15px;
+ border: none;
+ background: none;
+ box-shadow: none;
+ }
+ iframe,
+ object,
+ hr {
+ margin-bottom: 15px;
+ }
+ blockquote {
+ margin-left: 1.6em !important;
+ padding-left: 0;
+ color: #777;
+ font-style: italic;
+ }
+ ul,
+ ol {
+ padding-left: 2em;
+ }
+ ul ul,
+ ol ol,
+ ul ol,
+ ol ul {
+ margin: 2px;
+ padding: 0;
+ padding-left: 2em;
+ border: none;
+ }
+ ol ol li {
+ list-style-type: lower-alpha;
+ }
+ ol ol ol li {
+ list-style-type: lower-roman;
+ }
+ dl dt {
+ font-weight: bold;
+ }
+ dd {
+ margin-left: 1em;
+ }
+ table {
+ border-collapse: collapse;
+ font-size: 1em;
+ width: 100%;
+ & td,
+ & th {
+ padding: 5px;
+ border: 1px solid #ddd;
+ vertical-align: top;
+ }
+ }
+ table thead td,
+ table th {
+ font-weight: bold;
+ border-bottom-color: #888;
+ }
+ code {
+ background-color: #d8d7d7;
+ }
+ pre {
+ padding: 1em;
+ border: 1px solid #ddd;
+ border-radius: 3px;
+ background: #f8f8f8;
+ font-size: 90%;
+ }
+ hr {
+ display: block;
+ height: 1px;
+ border: 0;
+ border-top: 1px solid #ccc;
+ }
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6 {
+ font-weight: bold;
+ color: #000;
+ padding: 0;
+ background: none;
+ text-rendering: optimizeLegibility;
+ margin: 0 0 .5em 0;
+ }
+ h1,
+ h2,
+ h3,
+ h4 {
+ line-height: 1.3;
+ }
+ h1 {
+ font-size: 36px;
+ }
+ h2 {
+ font-size: 24px;
+ margin-bottom: .7em;
+ }
+ h3 {
+ font-size: 21px;
+ }
+ h4 {
+ font-size: 18px;
+ }
+ h5 {
+ font-size: 16px;
+ }
+ h6 {
+ font-size: 12px;
+ text-transform: uppercase;
+ }
}
\ No newline at end of file
diff --git a/static/redactor/css/style.css b/static/redactor/css/style.css
old mode 100755
new mode 100644
index a9c232e..e3dfedb
--- a/static/redactor/css/style.css
+++ b/static/redactor/css/style.css
@@ -1,122 +1,122 @@
-html {
- padding: 0;
- margin: 0;
-}
-body {
- font-family: "PT Sans", "Trebuchet MS", Verdana, Arial, Tahoma, sans-serif;
- font-size: 17px;
- margin: 0;
- padding: 0;
- overflow-x: hidden;
- background: #fff;
-}
-#page {
- margin: 20px;
- background: #fff;
-}
-#page:focus {
- outline: none;
-}
-
-::selection {
- background-color: #333;
- color: #fff;
- text-shadow: none;
-}
-
-div,
-p,
-ul,
-ol,
-table,
-dl,
-blockquote,
-pre,
-iframe,
-object,
-hr {
- margin-bottom: 15px;
- line-height: 1.5em;
-}
-blockquote {
- margin-left: 3em;
- font-style: italic;
- color: #777;
-}
-ul, ol {
- padding-left: 2em;
-}
-ul ul,
-ol ol,
-ul ol,
-ol ul {
- border: none;
- margin: 2px !important;
- padding: 0;
- padding-left: 2em;
-}
-dl dt { font-weight: bold; }
-dd { margin-left: 1em;}
-
-table {
- border-collapse: collapse;
- font-size: 1em;
-}
-table td {
- border: 1px solid #ddd;
- padding: 5px;
-}
-table thead td {
- border-bottom: 2px solid #000 !important;
- font-weight: bold;
-}
-code, pre {
- font-family: monospace sans-serif;
-}
-code {
- background-color: #d8d7d7;
-}
-pre {
- padding: 1em;
- border: 1px dashed #ccc;
- background: #f5f5f5;
- overflow: auto;
-}
-hr {
- display: block;
- height: 1px;
- border: 0;
- border-top: 1px solid #ccc;
-}
-
-h1, h2, h3, h4,h5 {
- font-weight: bold;
-}
-
-h1 {
- font-size: 36px;
- line-height: 40px;
- margin-bottom: 10px;
-}
-h2 {
- font-size: 30px;
- line-height: 36px;
- margin-bottom: 15px;
-}
-h3 {
- font-size: 24px;
- line-height: 30px;
- margin-bottom: 10px;
-}
-h4 {
- font-size: 18px;
- line-height: 24px;
- margin-bottom: 10px;
-}
-h4 {
- font-size: 1em;
- margin-bottom: 10px;
-}
-img:hover{
- cursor: nw-resize;
-}
+html {
+ padding: 0;
+ margin: 0;
+}
+body {
+ font-family: "PT Sans", "Trebuchet MS", Verdana, Arial, Tahoma, sans-serif;
+ font-size: 17px;
+ margin: 0;
+ padding: 0;
+ overflow-x: hidden;
+ background: #fff;
+}
+#page {
+ margin: 20px;
+ background: #fff;
+}
+#page:focus {
+ outline: none;
+}
+
+::selection {
+ background-color: #333;
+ color: #fff;
+ text-shadow: none;
+}
+
+div,
+p,
+ul,
+ol,
+table,
+dl,
+blockquote,
+pre,
+iframe,
+object,
+hr {
+ margin-bottom: 15px;
+ line-height: 1.5em;
+}
+blockquote {
+ margin-left: 3em;
+ font-style: italic;
+ color: #777;
+}
+ul, ol {
+ padding-left: 2em;
+}
+ul ul,
+ol ol,
+ul ol,
+ol ul {
+ border: none;
+ margin: 2px !important;
+ padding: 0;
+ padding-left: 2em;
+}
+dl dt { font-weight: bold; }
+dd { margin-left: 1em;}
+
+table {
+ border-collapse: collapse;
+ font-size: 1em;
+}
+table td {
+ border: 1px solid #ddd;
+ padding: 5px;
+}
+table thead td {
+ border-bottom: 2px solid #000 !important;
+ font-weight: bold;
+}
+code, pre {
+ font-family: monospace sans-serif;
+}
+code {
+ background-color: #d8d7d7;
+}
+pre {
+ padding: 1em;
+ border: 1px dashed #ccc;
+ background: #f5f5f5;
+ overflow: auto;
+}
+hr {
+ display: block;
+ height: 1px;
+ border: 0;
+ border-top: 1px solid #ccc;
+}
+
+h1, h2, h3, h4,h5 {
+ font-weight: bold;
+}
+
+h1 {
+ font-size: 36px;
+ line-height: 40px;
+ margin-bottom: 10px;
+}
+h2 {
+ font-size: 30px;
+ line-height: 36px;
+ margin-bottom: 15px;
+}
+h3 {
+ font-size: 24px;
+ line-height: 30px;
+ margin-bottom: 10px;
+}
+h4 {
+ font-size: 18px;
+ line-height: 24px;
+ margin-bottom: 10px;
+}
+h4 {
+ font-size: 1em;
+ margin-bottom: 10px;
+}
+img:hover{
+ cursor: nw-resize;
+}
diff --git a/static/redactor/css/wym.css b/static/redactor/css/wym.css
old mode 100755
new mode 100644
index 4b49331..66d325c
--- a/static/redactor/css/wym.css
+++ b/static/redactor/css/wym.css
@@ -1,139 +1,139 @@
-
-body {
- font-family: "PT Sans", "Trebuchet MS", Verdana, Arial, Tahoma, sans-serif;
- font-size: 17px;
- margin: 0;
- padding: 0;
- overflow-x: hidden;
- background-color: #f8f8f8;
-}
-
-#page {
- margin: 20px;
- background: #f8f8f8;
- border: none;
- padding: 0;
-}
-#page:focus {
- outline: none;
-}
-
-
-div,
-p,
-ul,
-ol,
-table,
-dl,
-pre,
-h1,
-h2,
-h3,
-h4,
-h5,
-blockquote {
- background-color: #fff;
- border: 1px solid #ebebeb;
- padding: 10px;
- margin: 10px 0;
-}
-
-p ul,
-p ol {
- margin: 0;
- padding: 0;
- border: none;
-}
-
-div,
-p,
-ul,
-ol,
-table,
-dl,
-blockquote,
-pre,
-iframe,
-object,
-hr {
- margin-bottom: 15px;
- line-height: 1.5em;
-}
-blockquote {
- margin-left: 3em;
- font-style: italic;
- color: #777;
-}
-div {
- background-color: #fff;
- border: 1px dashed #ebebeb;
-}
-ul, ol {
- padding-left: 2em !important;
-}
-ul ul,
-ol ol,
-ul ol,
-ol ul {
- border: none;
- margin: 2px !important;
- padding: 0;
- padding-left: 2em;
-}
-dl dt { font-weight: bold; }
-dd { margin-left: 1em;}
-
-table {
- border-collapse: collapse;
- font-size: 1em;
-}
-table td {
- border: 1px solid #ddd;
- padding: 5px;
-}
-table thead td {
- border-bottom: 2px solid #000 !important;
- font-weight: bold;
-}
-code, pre {
- font-family: monospace sans-serif;
-}
-code {
- background-color: #d8d7d7;
-}
-pre {
- padding: 1em;
- border: 1px dashed #ccc;
- background: #f5f5f5;
- overflow: auto;
-}
-hr {
- display: block;
- height: 1px;
- border: 0;
- border-top: 1px solid #ccc;
-}
-
-h1, h2, h3, h4,h5 {
- font-weight: bold;
- margin-bottom: 10px;
-}
-
-h1 {
- font-size: 36px;
-}
-h2 {
- font-size: 30px;
-}
-h3 {
- font-size: 24px;
-}
-h4 {
- font-size: 18px;
-}
-h4 {
- font-size: 1em;
-}
-img:hover{
- cursor: nw-resize;
+
+body {
+ font-family: "PT Sans", "Trebuchet MS", Verdana, Arial, Tahoma, sans-serif;
+ font-size: 17px;
+ margin: 0;
+ padding: 0;
+ overflow-x: hidden;
+ background-color: #f8f8f8;
+}
+
+#page {
+ margin: 20px;
+ background: #f8f8f8;
+ border: none;
+ padding: 0;
+}
+#page:focus {
+ outline: none;
+}
+
+
+div,
+p,
+ul,
+ol,
+table,
+dl,
+pre,
+h1,
+h2,
+h3,
+h4,
+h5,
+blockquote {
+ background-color: #fff;
+ border: 1px solid #ebebeb;
+ padding: 10px;
+ margin: 10px 0;
+}
+
+p ul,
+p ol {
+ margin: 0;
+ padding: 0;
+ border: none;
+}
+
+div,
+p,
+ul,
+ol,
+table,
+dl,
+blockquote,
+pre,
+iframe,
+object,
+hr {
+ margin-bottom: 15px;
+ line-height: 1.5em;
+}
+blockquote {
+ margin-left: 3em;
+ font-style: italic;
+ color: #777;
+}
+div {
+ background-color: #fff;
+ border: 1px dashed #ebebeb;
+}
+ul, ol {
+ padding-left: 2em !important;
+}
+ul ul,
+ol ol,
+ul ol,
+ol ul {
+ border: none;
+ margin: 2px !important;
+ padding: 0;
+ padding-left: 2em;
+}
+dl dt { font-weight: bold; }
+dd { margin-left: 1em;}
+
+table {
+ border-collapse: collapse;
+ font-size: 1em;
+}
+table td {
+ border: 1px solid #ddd;
+ padding: 5px;
+}
+table thead td {
+ border-bottom: 2px solid #000 !important;
+ font-weight: bold;
+}
+code, pre {
+ font-family: monospace sans-serif;
+}
+code {
+ background-color: #d8d7d7;
+}
+pre {
+ padding: 1em;
+ border: 1px dashed #ccc;
+ background: #f5f5f5;
+ overflow: auto;
+}
+hr {
+ display: block;
+ height: 1px;
+ border: 0;
+ border-top: 1px solid #ccc;
+}
+
+h1, h2, h3, h4,h5 {
+ font-weight: bold;
+ margin-bottom: 10px;
+}
+
+h1 {
+ font-size: 36px;
+}
+h2 {
+ font-size: 30px;
+}
+h3 {
+ font-size: 24px;
+}
+h4 {
+ font-size: 18px;
+}
+h4 {
+ font-size: 1em;
+}
+img:hover{
+ cursor: nw-resize;
}
\ No newline at end of file
diff --git a/static/redactor/jquery.redactor.init.js b/static/redactor/jquery.redactor.init.js
old mode 100755
new mode 100644
index 947a409..290801e
--- a/static/redactor/jquery.redactor.init.js
+++ b/static/redactor/jquery.redactor.init.js
@@ -1,39 +1,39 @@
-if (typeof jQuery === 'undefined' && django && django.jQuery) {
- jQuery = django.jQuery;
-}
-
-if (typeof redactor_custom_options === 'undefined') {
- redactor_custom_options = {}
-}
-
-(function($) {
- $(document).ready(function() {
- $(document).on('redactor:init', 'textarea.redactor-box', function() {
- var redactor_options = $.extend({}, $(this).data('redactor-options'),
- redactor_custom_options);
- if (typeof redactor_options.imageUploadErrorCallback === 'undefined') {
- redactor_options.imageUploadErrorCallback = function (json) {
- alert(json.error);
- }
- }
- $(this).redactor(redactor_options);
- });
- $(document).trigger('redactorWidgetReady');
-
- $('textarea.redactor-box:not([id*="__prefix__"])').each(function() {
- $(this).trigger('redactor:init');
- });
-
- // Initialize Redactor on admin's dynamically-added inline
- // formsets.
- //
- // Credit to the approach taken in django-selectable:
- // https://github.com/mlavin/django-selectable
- $(document).on('click', '.add-row', function () {
- $(this).parents('.inline-related')
- .find('tr.form-row:not(.empty-form)').last()
- .find('textarea.redactor-box')
- .trigger('redactor:init');
- });
- });
-})(jQuery);
+if (typeof jQuery === 'undefined' && django && django.jQuery) {
+ jQuery = django.jQuery;
+}
+
+if (typeof redactor_custom_options === 'undefined') {
+ redactor_custom_options = {}
+}
+
+(function($) {
+ $(document).ready(function() {
+ $(document).on('redactor:init', 'textarea.redactor-box', function() {
+ var redactor_options = $.extend({}, $(this).data('redactor-options'),
+ redactor_custom_options);
+ if (typeof redactor_options.imageUploadErrorCallback === 'undefined') {
+ redactor_options.imageUploadErrorCallback = function (json) {
+ alert(json.error);
+ }
+ }
+ $(this).redactor(redactor_options);
+ });
+ $(document).trigger('redactorWidgetReady');
+
+ $('textarea.redactor-box:not([id*="__prefix__"])').each(function() {
+ $(this).trigger('redactor:init');
+ });
+
+ // Initialize Redactor on admin's dynamically-added inline
+ // formsets.
+ //
+ // Credit to the approach taken in django-selectable:
+ // https://github.com/mlavin/django-selectable
+ $(document).on('click', '.add-row', function () {
+ $(this).parents('.inline-related')
+ .find('tr.form-row:not(.empty-form)').last()
+ .find('textarea.redactor-box')
+ .trigger('redactor:init');
+ });
+ });
+})(jQuery);
diff --git a/static/redactor/langs/ar.js b/static/redactor/langs/ar.js
old mode 100755
new mode 100644
index 7d1cb86..7e56fa0
--- a/static/redactor/langs/ar.js
+++ b/static/redactor/langs/ar.js
@@ -1,75 +1,75 @@
-(function ($) {
-$.Redactor.opts.langs['ar'] = {
- html: 'كود HTML',
- video: 'إدراج فيديو...',
- image: 'إدراج صورة...',
- table: 'جدول',
- link: 'رابط',
- link_insert: 'إدراج رابط...',
- link_edit: 'تحرير الرابط',
- unlink: 'إزالة الرابط',
- formatting: 'التنسيق',
- paragraph: 'نص عادي',
- quote: 'اقتباس',
- code: 'كود',
- header1: 'العنوان 1',
- header2: 'العنوان 2',
- header3: 'العنوان 3',
- header4: 'العنوان 4',
- header5: '5 العنوان',
- bold: 'متين',
- italic: 'مائل',
- fontcolor: 'لون الخط',
- backcolor: 'لون الخلفية',
- unorderedlist: 'قائمة منقطة',
- orderedlist: 'قائمة رقمية',
- outdent: 'أزل المسافة البادئة',
- indent: 'أضف المسافة البادئة',
- cancel: 'إلغاء',
- insert: 'إدراج',
- save: 'حفظ',
- _delete: 'حذف',
- insert_table: 'إدراج جدول...',
- insert_row_above: 'إضافة صف للأعلى',
- insert_row_below: 'إضافة صف للأسفل',
- insert_column_left: 'إضافة عمود لليسار',
- insert_column_right: 'إضافة عمود لليمين',
- delete_column: 'حذف العمود',
- delete_row: 'حذف الصف',
- delete_table: 'حذف الجدول',
- rows: 'الصفوف',
- columns: 'الأعمدة',
- add_head: 'إضافة رأس',
- delete_head: 'حذف رأس',
- title: 'العنوان',
- image_position: 'الموضع',
- none: 'بدون',
- left: 'يسار',
- right: 'يمين',
- image_web_link: 'رابط الصورة',
- text: 'نص',
- mailto: 'بريد الكتروني',
- web: 'رابط',
- video_html_code: 'كود الفيديو',
- file: 'إدراج ملف...',
- upload: 'تحميل',
- download: 'تنزيل',
- choose: 'اختيار',
- or_choose: 'أو اختيار',
- drop_file_here: 'اسحب الملف هنا',
- align_left: 'محاذاة النص الى اليسار',
- align_center: 'محاذاة النص الى الوسط',
- align_right: 'محاذاة النص الى اليمين',
- align_justify: 'ضبط النص',
- horizontalrule: 'إدراج خط فاصل',
- fullscreen: 'ملء الشاشة',
- deleted: 'محذوف',
- anchor: 'مرساة',
- link_new_tab: 'فتح الرابط في تبويب جديد',
- underline: 'مسطر',
- alignment: 'محاذاة',
- filename: 'الاسم (اختياري)',
- edit: 'تحرير',
- center: 'توسيط'
-};
+(function ($) {
+$.Redactor.opts.langs['ar'] = {
+ html: 'كود HTML',
+ video: 'إدراج فيديو...',
+ image: 'إدراج صورة...',
+ table: 'جدول',
+ link: 'رابط',
+ link_insert: 'إدراج رابط...',
+ link_edit: 'تحرير الرابط',
+ unlink: 'إزالة الرابط',
+ formatting: 'التنسيق',
+ paragraph: 'نص عادي',
+ quote: 'اقتباس',
+ code: 'كود',
+ header1: 'العنوان 1',
+ header2: 'العنوان 2',
+ header3: 'العنوان 3',
+ header4: 'العنوان 4',
+ header5: '5 العنوان',
+ bold: 'متين',
+ italic: 'مائل',
+ fontcolor: 'لون الخط',
+ backcolor: 'لون الخلفية',
+ unorderedlist: 'قائمة منقطة',
+ orderedlist: 'قائمة رقمية',
+ outdent: 'أزل المسافة البادئة',
+ indent: 'أضف المسافة البادئة',
+ cancel: 'إلغاء',
+ insert: 'إدراج',
+ save: 'حفظ',
+ _delete: 'حذف',
+ insert_table: 'إدراج جدول...',
+ insert_row_above: 'إضافة صف للأعلى',
+ insert_row_below: 'إضافة صف للأسفل',
+ insert_column_left: 'إضافة عمود لليسار',
+ insert_column_right: 'إضافة عمود لليمين',
+ delete_column: 'حذف العمود',
+ delete_row: 'حذف الصف',
+ delete_table: 'حذف الجدول',
+ rows: 'الصفوف',
+ columns: 'الأعمدة',
+ add_head: 'إضافة رأس',
+ delete_head: 'حذف رأس',
+ title: 'العنوان',
+ image_position: 'الموضع',
+ none: 'بدون',
+ left: 'يسار',
+ right: 'يمين',
+ image_web_link: 'رابط الصورة',
+ text: 'نص',
+ mailto: 'بريد الكتروني',
+ web: 'رابط',
+ video_html_code: 'كود الفيديو',
+ file: 'إدراج ملف...',
+ upload: 'تحميل',
+ download: 'تنزيل',
+ choose: 'اختيار',
+ or_choose: 'أو اختيار',
+ drop_file_here: 'اسحب الملف هنا',
+ align_left: 'محاذاة النص الى اليسار',
+ align_center: 'محاذاة النص الى الوسط',
+ align_right: 'محاذاة النص الى اليمين',
+ align_justify: 'ضبط النص',
+ horizontalrule: 'إدراج خط فاصل',
+ fullscreen: 'ملء الشاشة',
+ deleted: 'محذوف',
+ anchor: 'مرساة',
+ link_new_tab: 'فتح الرابط في تبويب جديد',
+ underline: 'مسطر',
+ alignment: 'محاذاة',
+ filename: 'الاسم (اختياري)',
+ edit: 'تحرير',
+ center: 'توسيط'
+};
})( jQuery );
\ No newline at end of file
diff --git a/static/redactor/langs/az.js b/static/redactor/langs/az.js
old mode 100755
new mode 100644
index 02d6dba..bf89261
--- a/static/redactor/langs/az.js
+++ b/static/redactor/langs/az.js
@@ -1,74 +1,74 @@
-(function ($) {
-$.Redactor.opts.langs['az'] = {
- html: 'HTML',
- video: 'Video əlavə...',
- image: 'Şəkil əlavə...',
- table: 'Cədvəl',
- link: 'Link',
- link_insert: 'Link əlavə...',
- link_edit: 'Edit link',
- unlink: 'Linki sil',
- formatting: 'Format',
- paragraph: 'Paraqraf',
- quote: 'Sitat',
- code: 'Kod',
- header1: 'Başlıq 1',
- header2: 'Başlıq 2',
- header3: 'Başlıq 3',
- header4: 'Başlıq 4',
- header5: 'Başlıq 5',
- bold: 'Qalın',
- italic: 'Kursiv',
- fontcolor: 'Yazı Rəngi',
- backcolor: 'Fon rəngi',
- unorderedlist: 'Sırasız List',
- orderedlist: 'Sıralı List',
- outdent: 'Abzası geri al',
- indent: 'Abzas',
- cancel: 'Ləğv et',
- insert: 'Əlavə et',
- save: 'Yadda saxla',
- _delete: 'Sil',
- insert_table: 'Cədvəl əlavə et...',
- insert_row_above: 'Yuxarıya sətir əlavə et',
- insert_row_below: 'Aşağıya sətir əlavə et',
- insert_column_left: 'Sola sütun əlavə et',
- insert_column_right: 'Sağa sütun əlavə et',
- delete_column: 'Sütunu sil',
- delete_row: 'Sətiri sil',
- delete_table: 'Cədvəli sil',
- rows: 'Sətirlər',
- columns: 'Sütunlar',
- add_head: 'Başlıq əlavə et',
- delete_head: 'Başlığı sil',
- title: 'Başlıq',
- image_position: 'Mövqe',
- none: 'Heç biri',
- left: 'Sol',
- right: 'Sağ',
- image_web_link: 'Şəklin Veb Link',
- text: 'Yazı',
- mailto: 'E-poçt',
- web: 'URL',
- video_html_code: 'Video Embed Kodu',
- file: 'Fayl əlavə et...',
- upload: 'Yüklə',
- download: 'Endir',
- choose: 'Seç',
- or_choose: 'Vəya seç',
- drop_file_here: 'Faylı buraya at',
- align_left: 'Yazıyı sola yanaşdır',
- align_center: 'Yazıyı ortala',
- align_right: 'Yazıyı sağa yanaşdır',
- align_justify: 'Yazının kənarlarını düzləşdir',
- horizontalrule: 'Üfuqi xətt əlavə et',
- deleted: 'Silindi',
- anchor: 'Anchor',
- link_new_tab: 'Linki yeni tabda aç',
- underline: 'Altıxətli',
- alignment: 'Düzləndirmə',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
+(function ($) {
+$.Redactor.opts.langs['az'] = {
+ html: 'HTML',
+ video: 'Video əlavə...',
+ image: 'Şəkil əlavə...',
+ table: 'Cədvəl',
+ link: 'Link',
+ link_insert: 'Link əlavə...',
+ link_edit: 'Edit link',
+ unlink: 'Linki sil',
+ formatting: 'Format',
+ paragraph: 'Paraqraf',
+ quote: 'Sitat',
+ code: 'Kod',
+ header1: 'Başlıq 1',
+ header2: 'Başlıq 2',
+ header3: 'Başlıq 3',
+ header4: 'Başlıq 4',
+ header5: 'Başlıq 5',
+ bold: 'Qalın',
+ italic: 'Kursiv',
+ fontcolor: 'Yazı Rəngi',
+ backcolor: 'Fon rəngi',
+ unorderedlist: 'Sırasız List',
+ orderedlist: 'Sıralı List',
+ outdent: 'Abzası geri al',
+ indent: 'Abzas',
+ cancel: 'Ləğv et',
+ insert: 'Əlavə et',
+ save: 'Yadda saxla',
+ _delete: 'Sil',
+ insert_table: 'Cədvəl əlavə et...',
+ insert_row_above: 'Yuxarıya sətir əlavə et',
+ insert_row_below: 'Aşağıya sətir əlavə et',
+ insert_column_left: 'Sola sütun əlavə et',
+ insert_column_right: 'Sağa sütun əlavə et',
+ delete_column: 'Sütunu sil',
+ delete_row: 'Sətiri sil',
+ delete_table: 'Cədvəli sil',
+ rows: 'Sətirlər',
+ columns: 'Sütunlar',
+ add_head: 'Başlıq əlavə et',
+ delete_head: 'Başlığı sil',
+ title: 'Başlıq',
+ image_position: 'Mövqe',
+ none: 'Heç biri',
+ left: 'Sol',
+ right: 'Sağ',
+ image_web_link: 'Şəklin Veb Link',
+ text: 'Yazı',
+ mailto: 'E-poçt',
+ web: 'URL',
+ video_html_code: 'Video Embed Kodu',
+ file: 'Fayl əlavə et...',
+ upload: 'Yüklə',
+ download: 'Endir',
+ choose: 'Seç',
+ or_choose: 'Vəya seç',
+ drop_file_here: 'Faylı buraya at',
+ align_left: 'Yazıyı sola yanaşdır',
+ align_center: 'Yazıyı ortala',
+ align_right: 'Yazıyı sağa yanaşdır',
+ align_justify: 'Yazının kənarlarını düzləşdir',
+ horizontalrule: 'Üfuqi xətt əlavə et',
+ deleted: 'Silindi',
+ anchor: 'Anchor',
+ link_new_tab: 'Linki yeni tabda aç',
+ underline: 'Altıxətli',
+ alignment: 'Düzləndirmə',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
})( jQuery );
\ No newline at end of file
diff --git a/static/redactor/langs/ba.js b/static/redactor/langs/ba.js
old mode 100755
new mode 100644
index 53b3bbb..977a393
--- a/static/redactor/langs/ba.js
+++ b/static/redactor/langs/ba.js
@@ -1,78 +1,78 @@
-(function ($) {
-$.Redactor.opts.langs['ba'] = {
- html: 'HTML',
- video: 'Ubaci video',
- image: 'Ubaci fotografiju',
- table: 'Tabela',
- link: 'Veza',
- link_insert: 'Ubaci vezu ...',
- link_edit: 'Edit link',
- unlink: 'Ukloni vezu',
- formatting: 'Stilovi',
- paragraph: 'Paragraf',
- quote: 'Citat',
- code: 'Izvorni kod',
- header1: 'Zaglavlje 1',
- header2: 'Zaglavlje 2',
- header3: 'Zaglavlje 3',
- header4: 'Zaglavlje 4',
- header5: 'Zaglavlje 5',
- bold: 'Podebljaj',
- italic: 'Nakosi',
- fontcolor: 'Boja slova',
- backcolor: 'Boja pozadine',
- unorderedlist: 'Nesortirana lista',
- orderedlist: 'Sortirana lista',
- outdent: 'Izvuci',
- indent: 'Uvuci',
- redo: 'Korak naprijed',
- undo: 'Korak nazad',
- cut: 'Izreži',
- cancel: 'Odustani',
- insert: 'Ubaci',
- save: 'Sačuvaj',
- _delete: 'Izbriši',
- insert_table: 'Ubaci tabelu',
- insert_row_above: 'Dodaj red iznad',
- insert_row_below: 'Dodaj red ispod',
- insert_column_left: 'Dodaj kolonu lijevo',
- insert_column_right: 'Dodaj kolonu desno',
- delete_column: 'Izbriši kolonu',
- delete_row: 'Izbriši red',
- delete_table: 'Izbriši tabelu',
- rows: 'Red',
- columns: 'Kolona',
- add_head: 'Dodaj zaglavlje',
- delete_head: 'Ukloni zaglavlje',
- title: 'Naslov',
- image_position: 'Pozicija',
- none: 'Bez',
- left: 'Lijevo',
- right: 'Desno',
- image_web_link: 'Web adresa fotografije',
- text: 'Tekst',
- mailto: 'Email',
- web: 'Web adresa',
- video_html_code: 'Video kod',
- file: 'Datoteka',
- upload: 'Pošalji',
- download: 'Preuzmi',
- choose: 'Odaberi',
- or_choose: 'Ili odaberi',
- drop_file_here: 'Prevuci datoteku ovdje',
- align_left: 'Poravnaj lijevo',
- align_center: 'Centriraj',
- align_right: 'Poravnaj desno',
- align_justify: 'Od ruba do ruba',
- horizontalrule: 'Ubaci horizontalnu liniju',
- fullscreen: 'Prikaz preko čitavog ekrana',
- deleted: 'Izbrisano',
- anchor: 'Sidro',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['ba'] = {
+ html: 'HTML',
+ video: 'Ubaci video',
+ image: 'Ubaci fotografiju',
+ table: 'Tabela',
+ link: 'Veza',
+ link_insert: 'Ubaci vezu ...',
+ link_edit: 'Edit link',
+ unlink: 'Ukloni vezu',
+ formatting: 'Stilovi',
+ paragraph: 'Paragraf',
+ quote: 'Citat',
+ code: 'Izvorni kod',
+ header1: 'Zaglavlje 1',
+ header2: 'Zaglavlje 2',
+ header3: 'Zaglavlje 3',
+ header4: 'Zaglavlje 4',
+ header5: 'Zaglavlje 5',
+ bold: 'Podebljaj',
+ italic: 'Nakosi',
+ fontcolor: 'Boja slova',
+ backcolor: 'Boja pozadine',
+ unorderedlist: 'Nesortirana lista',
+ orderedlist: 'Sortirana lista',
+ outdent: 'Izvuci',
+ indent: 'Uvuci',
+ redo: 'Korak naprijed',
+ undo: 'Korak nazad',
+ cut: 'Izreži',
+ cancel: 'Odustani',
+ insert: 'Ubaci',
+ save: 'Sačuvaj',
+ _delete: 'Izbriši',
+ insert_table: 'Ubaci tabelu',
+ insert_row_above: 'Dodaj red iznad',
+ insert_row_below: 'Dodaj red ispod',
+ insert_column_left: 'Dodaj kolonu lijevo',
+ insert_column_right: 'Dodaj kolonu desno',
+ delete_column: 'Izbriši kolonu',
+ delete_row: 'Izbriši red',
+ delete_table: 'Izbriši tabelu',
+ rows: 'Red',
+ columns: 'Kolona',
+ add_head: 'Dodaj zaglavlje',
+ delete_head: 'Ukloni zaglavlje',
+ title: 'Naslov',
+ image_position: 'Pozicija',
+ none: 'Bez',
+ left: 'Lijevo',
+ right: 'Desno',
+ image_web_link: 'Web adresa fotografije',
+ text: 'Tekst',
+ mailto: 'Email',
+ web: 'Web adresa',
+ video_html_code: 'Video kod',
+ file: 'Datoteka',
+ upload: 'Pošalji',
+ download: 'Preuzmi',
+ choose: 'Odaberi',
+ or_choose: 'Ili odaberi',
+ drop_file_here: 'Prevuci datoteku ovdje',
+ align_left: 'Poravnaj lijevo',
+ align_center: 'Centriraj',
+ align_right: 'Poravnaj desno',
+ align_justify: 'Od ruba do ruba',
+ horizontalrule: 'Ubaci horizontalnu liniju',
+ fullscreen: 'Prikaz preko čitavog ekrana',
+ deleted: 'Izbrisano',
+ anchor: 'Sidro',
+ link_new_tab: 'Open link in new tab',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/bg.js b/static/redactor/langs/bg.js
old mode 100755
new mode 100644
index 3588ec3..8c7695b
--- a/static/redactor/langs/bg.js
+++ b/static/redactor/langs/bg.js
@@ -1,76 +1,76 @@
-(function ($) {
-$.Redactor.opts.langs['bg'] = {
- html: 'HTML',
- video: 'Видео',
- image: 'Изображение',
- table: 'Таблица',
- link: 'Връзка',
- link_insert: 'Вкарай връзка ...',
- link_edit: 'Edit link',
- unlink: 'Премахни връзка',
- formatting: 'Стилове',
- paragraph: 'Параграф',
- quote: 'Цитат',
- code: 'Код',
- header1: 'Заглавие 1',
- header2: 'Заглавие 2',
- header3: 'Заглавие 3',
- header4: 'Заглавие 4',
- header5: 'Заглавие 5',
- bold: 'Удебели',
- italic: 'Наклони',
- fontcolor: 'Цвят на текста',
- backcolor: 'Цвят на фона',
- unorderedlist: 'Неподреден списък',
- orderedlist: 'Подреден списък',
- outdent: 'Вкарай навътре',
- indent: 'Изкарай навън',
- cancel: 'Отказ',
- insert: 'Вкарай',
- save: 'Запази',
- _delete: 'Премахни',
- insert_table: 'Вкарай таблица',
- insert_row_above: 'Добави ред отгоре',
- insert_row_below: 'Добави ред отдолу',
- insert_column_left: 'Добави колона отляво',
- insert_column_right: 'Добави колона отдясно',
- delete_column: 'Премахни колоната',
- delete_row: 'Премахни реда',
- delete_table: 'Премахни таблицата',
- rows: 'Редове',
- columns: 'Колони',
- add_head: 'Добави заглавен ред',
- delete_head: 'Премахни заглавен ред',
- title: 'Заглавие',
- image_view: 'Виж изображението',
- image_position: 'Позиция',
- left: 'Ляво',
- right: 'Дясно',
- image_web_link: 'Уеб връзка',
- text: 'Текст',
- mailto: 'Имейл',
- web: 'Адрес',
- video_html_code: 'Код за вграждане на видео',
- file: 'Файл',
- upload: 'Качи',
- download: 'Свали',
- choose: 'Избор',
- or_choose: 'Или избери',
- drop_file_here: 'Провлачете файлове тук',
- align_left: 'Подравни в ляво',
- align_center: 'Центрирай',
- align_right: 'Подравни в дясно',
- align_justify: 'Подравни двустранно',
- horizontalrule: 'Хоризонтална линия',
- fullscreen: 'Цял екран',
- deleted: 'Зачеркни',
- none: 'Няма',
- anchor: 'Котва',
- link_new_tab: 'Отваряне в нов таб',
- underline: 'Подчертай',
- alignment: 'Подравняване',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['bg'] = {
+ html: 'HTML',
+ video: 'Видео',
+ image: 'Изображение',
+ table: 'Таблица',
+ link: 'Връзка',
+ link_insert: 'Вкарай връзка ...',
+ link_edit: 'Edit link',
+ unlink: 'Премахни връзка',
+ formatting: 'Стилове',
+ paragraph: 'Параграф',
+ quote: 'Цитат',
+ code: 'Код',
+ header1: 'Заглавие 1',
+ header2: 'Заглавие 2',
+ header3: 'Заглавие 3',
+ header4: 'Заглавие 4',
+ header5: 'Заглавие 5',
+ bold: 'Удебели',
+ italic: 'Наклони',
+ fontcolor: 'Цвят на текста',
+ backcolor: 'Цвят на фона',
+ unorderedlist: 'Неподреден списък',
+ orderedlist: 'Подреден списък',
+ outdent: 'Вкарай навътре',
+ indent: 'Изкарай навън',
+ cancel: 'Отказ',
+ insert: 'Вкарай',
+ save: 'Запази',
+ _delete: 'Премахни',
+ insert_table: 'Вкарай таблица',
+ insert_row_above: 'Добави ред отгоре',
+ insert_row_below: 'Добави ред отдолу',
+ insert_column_left: 'Добави колона отляво',
+ insert_column_right: 'Добави колона отдясно',
+ delete_column: 'Премахни колоната',
+ delete_row: 'Премахни реда',
+ delete_table: 'Премахни таблицата',
+ rows: 'Редове',
+ columns: 'Колони',
+ add_head: 'Добави заглавен ред',
+ delete_head: 'Премахни заглавен ред',
+ title: 'Заглавие',
+ image_view: 'Виж изображението',
+ image_position: 'Позиция',
+ left: 'Ляво',
+ right: 'Дясно',
+ image_web_link: 'Уеб връзка',
+ text: 'Текст',
+ mailto: 'Имейл',
+ web: 'Адрес',
+ video_html_code: 'Код за вграждане на видео',
+ file: 'Файл',
+ upload: 'Качи',
+ download: 'Свали',
+ choose: 'Избор',
+ or_choose: 'Или избери',
+ drop_file_here: 'Провлачете файлове тук',
+ align_left: 'Подравни в ляво',
+ align_center: 'Центрирай',
+ align_right: 'Подравни в дясно',
+ align_justify: 'Подравни двустранно',
+ horizontalrule: 'Хоризонтална линия',
+ fullscreen: 'Цял екран',
+ deleted: 'Зачеркни',
+ none: 'Няма',
+ anchor: 'Котва',
+ link_new_tab: 'Отваряне в нов таб',
+ underline: 'Подчертай',
+ alignment: 'Подравняване',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/by.js b/static/redactor/langs/by.js
old mode 100755
new mode 100644
index 52efea7..8f88e19
--- a/static/redactor/langs/by.js
+++ b/static/redactor/langs/by.js
@@ -1,76 +1,76 @@
-(function ($) {
-$.Redactor.opts.langs['by'] = {
- html: 'Код',
- video: 'Відэа',
- image: 'Малюнак',
- table: 'Табліца',
- link: 'Спасылка',
- link_insert: 'Уставіць спасылку ...',
- link_edit: 'Edit link',
- unlink: 'Выдаліць спасылку',
- formatting: 'Стылі',
- paragraph: 'Звычайны тэкст',
- quote: 'Цытата',
- code: 'Код',
- header1: 'Загаловак 1',
- header2: 'Загаловак 2',
- header3: 'Загаловак 3',
- header4: 'Загаловак 4',
- header5: 'Загаловак 5',
- bold: 'Паўтлусты',
- italic: 'Нахільны',
- fontcolor: 'Колер тэксту',
- backcolor: 'Заліванне тэксту',
- unorderedlist: 'Звычайны спіс',
- orderedlist: 'Нумараваны спіс',
- outdent: 'Паменьшыць водступ',
- indent: 'Павялічыць водступ',
- cancel: 'Адмяніць',
- insert: 'Уставіць',
- save: 'Захаваць',
- _delete: 'Выдаліць',
- insert_table: 'Уставіць табліцу',
- insert_row_above: 'Дадаць радок зверху',
- insert_row_below: 'Дадаць радок знізу',
- insert_column_left: 'Дадаць слупок злева',
- insert_column_right: 'Дадаць слупок справа',
- delete_column: 'Выдаліць слупок',
- delete_row: 'Выдаліць радок',
- delete_table: 'Выдаліць табліцу',
- rows: 'Радкі',
- columns: 'Стаўбцы',
- add_head: 'Дадаць загаловак',
- delete_head: 'Выдаліць загаловак',
- title: 'Падказка',
- image_view: 'Запампаваць малюнак',
- image_position: 'Абцяканне тэкстам',
- none: 'Няма',
- left: 'Злева',
- right: 'Справа',
- image_web_link: 'Спасылка на малюнак',
- text: 'Тэкст',
- mailto: 'Эл. пошта ',
- web: 'URL',
- video_html_code: 'Код відэа роліка',
- file: 'Файл',
- upload: 'Загрузіць',
- download: 'Запампаваць',
- choose: 'Выбраць',
- or_choose: 'Ці іншае',
- drop_file_here: 'Перацягніце файл сюды',
- align_left: 'Па левым краі',
- align_center: 'Па цэнтры',
- align_right: 'Па правым краі',
- align_justify: 'Выраўнаваць тэкст па шырыні',
- horizontalrule: 'Гарызантальная лінейка',
- fullscreen: 'Ва ўвесь экран',
- deleted: 'Закрэслены',
- anchor: 'Anchor',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
+(function ($) {
+$.Redactor.opts.langs['by'] = {
+ html: 'Код',
+ video: 'Відэа',
+ image: 'Малюнак',
+ table: 'Табліца',
+ link: 'Спасылка',
+ link_insert: 'Уставіць спасылку ...',
+ link_edit: 'Edit link',
+ unlink: 'Выдаліць спасылку',
+ formatting: 'Стылі',
+ paragraph: 'Звычайны тэкст',
+ quote: 'Цытата',
+ code: 'Код',
+ header1: 'Загаловак 1',
+ header2: 'Загаловак 2',
+ header3: 'Загаловак 3',
+ header4: 'Загаловак 4',
+ header5: 'Загаловак 5',
+ bold: 'Паўтлусты',
+ italic: 'Нахільны',
+ fontcolor: 'Колер тэксту',
+ backcolor: 'Заліванне тэксту',
+ unorderedlist: 'Звычайны спіс',
+ orderedlist: 'Нумараваны спіс',
+ outdent: 'Паменьшыць водступ',
+ indent: 'Павялічыць водступ',
+ cancel: 'Адмяніць',
+ insert: 'Уставіць',
+ save: 'Захаваць',
+ _delete: 'Выдаліць',
+ insert_table: 'Уставіць табліцу',
+ insert_row_above: 'Дадаць радок зверху',
+ insert_row_below: 'Дадаць радок знізу',
+ insert_column_left: 'Дадаць слупок злева',
+ insert_column_right: 'Дадаць слупок справа',
+ delete_column: 'Выдаліць слупок',
+ delete_row: 'Выдаліць радок',
+ delete_table: 'Выдаліць табліцу',
+ rows: 'Радкі',
+ columns: 'Стаўбцы',
+ add_head: 'Дадаць загаловак',
+ delete_head: 'Выдаліць загаловак',
+ title: 'Падказка',
+ image_view: 'Запампаваць малюнак',
+ image_position: 'Абцяканне тэкстам',
+ none: 'Няма',
+ left: 'Злева',
+ right: 'Справа',
+ image_web_link: 'Спасылка на малюнак',
+ text: 'Тэкст',
+ mailto: 'Эл. пошта ',
+ web: 'URL',
+ video_html_code: 'Код відэа роліка',
+ file: 'Файл',
+ upload: 'Загрузіць',
+ download: 'Запампаваць',
+ choose: 'Выбраць',
+ or_choose: 'Ці іншае',
+ drop_file_here: 'Перацягніце файл сюды',
+ align_left: 'Па левым краі',
+ align_center: 'Па цэнтры',
+ align_right: 'Па правым краі',
+ align_justify: 'Выраўнаваць тэкст па шырыні',
+ horizontalrule: 'Гарызантальная лінейка',
+ fullscreen: 'Ва ўвесь экран',
+ deleted: 'Закрэслены',
+ anchor: 'Anchor',
+ link_new_tab: 'Open link in new tab',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
})( jQuery );
\ No newline at end of file
diff --git a/static/redactor/langs/ca.js b/static/redactor/langs/ca.js
old mode 100755
new mode 100644
index bf469b9..4ca4631
--- a/static/redactor/langs/ca.js
+++ b/static/redactor/langs/ca.js
@@ -1,74 +1,74 @@
-(function ($) {
-$.Redactor.opts.langs['ca'] = {
- html: 'HTML',
- video: 'Inserta Vídeo...',
- image: 'Inserta Imatge...',
- table: 'Taula',
- link: 'Enllaç',
- link_insert: 'Inserta Enllaç ...',
- link_edit: 'Edit link',
- unlink: 'Elimina enllaç',
- formatting: 'Formateja',
- paragraph: 'Paràgraf',
- quote: 'Cita',
- code: 'Codi',
- header1: 'Capçalera 1',
- header2: 'Capçalera 2',
- header3: 'Capçalera 3',
- header4: 'Capçalera 4',
- header5: 'Capçalera 5',
- bold: 'Negreta',
- italic: 'Cursiva',
- fontcolor: 'Color de la lletra',
- backcolor: 'Color del fons',
- unorderedlist: 'Llista sense ordenar',
- orderedlist: 'Llista ordenada',
- outdent: 'Treure indentació',
- indent: 'Indentar',
- cancel: 'Cancel·lar',
- insert: 'Insertar',
- save: 'Desar',
- _delete: 'Eliminar',
- insert_table: 'Insertar Taula...',
- insert_row_above: 'Insertar fila superior',
- insert_row_below: 'Insertar fila inferior',
- insert_column_left: 'Insertar columna a l\'esquerra',
- insert_column_right: 'Insertar columna a la dreta',
- delete_column: 'Eliminar Columna',
- delete_row: 'Eliminar Fila',
- delete_table: 'Eliminar Taula',
- rows: 'Files',
- columns: 'Columnes',
- add_head: 'Incloure capçalera',
- delete_head: 'Eliminar capçalera',
- title: 'Títol',
- image_position: 'Posició',
- none: 'Cap',
- left: 'Esquerra',
- right: 'Dreta',
- image_web_link: 'Enllaç web a imatge',
- text: 'Text',
- mailto: 'Direcció de correu',
- web: 'URL',
- video_html_code: 'Codi de vídeo inserit',
- file: 'Insertar Fitxer...',
- upload: 'Pujar',
- download: 'Descarregar',
- choose: 'Escull',
- or_choose: 'O escull',
- drop_file_here: 'Arrosega el fitxer fins aquí',
- align_left: 'Alinear a l\'esquerra',
- align_center: 'Alinear al centre',
- align_right: 'Alinear a la dreta',
- align_justify: 'Justificar',
- horizontalrule: 'Insertar línia horitzontal',
- deleted: 'Eliminar',
- anchor: 'Àncora',
- link_new_tab: 'Obrir enllaç en una nova pestanya',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['ca'] = {
+ html: 'HTML',
+ video: 'Inserta Vídeo...',
+ image: 'Inserta Imatge...',
+ table: 'Taula',
+ link: 'Enllaç',
+ link_insert: 'Inserta Enllaç ...',
+ link_edit: 'Edit link',
+ unlink: 'Elimina enllaç',
+ formatting: 'Formateja',
+ paragraph: 'Paràgraf',
+ quote: 'Cita',
+ code: 'Codi',
+ header1: 'Capçalera 1',
+ header2: 'Capçalera 2',
+ header3: 'Capçalera 3',
+ header4: 'Capçalera 4',
+ header5: 'Capçalera 5',
+ bold: 'Negreta',
+ italic: 'Cursiva',
+ fontcolor: 'Color de la lletra',
+ backcolor: 'Color del fons',
+ unorderedlist: 'Llista sense ordenar',
+ orderedlist: 'Llista ordenada',
+ outdent: 'Treure indentació',
+ indent: 'Indentar',
+ cancel: 'Cancel·lar',
+ insert: 'Insertar',
+ save: 'Desar',
+ _delete: 'Eliminar',
+ insert_table: 'Insertar Taula...',
+ insert_row_above: 'Insertar fila superior',
+ insert_row_below: 'Insertar fila inferior',
+ insert_column_left: 'Insertar columna a l\'esquerra',
+ insert_column_right: 'Insertar columna a la dreta',
+ delete_column: 'Eliminar Columna',
+ delete_row: 'Eliminar Fila',
+ delete_table: 'Eliminar Taula',
+ rows: 'Files',
+ columns: 'Columnes',
+ add_head: 'Incloure capçalera',
+ delete_head: 'Eliminar capçalera',
+ title: 'Títol',
+ image_position: 'Posició',
+ none: 'Cap',
+ left: 'Esquerra',
+ right: 'Dreta',
+ image_web_link: 'Enllaç web a imatge',
+ text: 'Text',
+ mailto: 'Direcció de correu',
+ web: 'URL',
+ video_html_code: 'Codi de vídeo inserit',
+ file: 'Insertar Fitxer...',
+ upload: 'Pujar',
+ download: 'Descarregar',
+ choose: 'Escull',
+ or_choose: 'O escull',
+ drop_file_here: 'Arrosega el fitxer fins aquí',
+ align_left: 'Alinear a l\'esquerra',
+ align_center: 'Alinear al centre',
+ align_right: 'Alinear a la dreta',
+ align_justify: 'Justificar',
+ horizontalrule: 'Insertar línia horitzontal',
+ deleted: 'Eliminar',
+ anchor: 'Àncora',
+ link_new_tab: 'Obrir enllaç en una nova pestanya',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/cs.js b/static/redactor/langs/cs.js
old mode 100755
new mode 100644
index 6d7caba..c45d599
--- a/static/redactor/langs/cs.js
+++ b/static/redactor/langs/cs.js
@@ -1,86 +1,86 @@
-(function ($) {
-$.Redactor.opts.langs['cs'] = {
- html: 'HTML',
- video: 'Video',
- image: 'Obrázek',
- table: 'Tabulka',
- link: 'Odkaz',
- link_insert: 'Vložit odkaz ...',
- link_edit: 'Upravit odkaz',
- unlink: 'Odstranit odkaz',
- formatting: 'Styly',
- paragraph: 'Odstavec',
- quote: 'Citace',
- code: 'Kód',
- header1: 'Nadpis 1',
- header2: 'Nadpis 2',
- header3: 'Nadpis 3',
- header4: 'Nadpis 4',
- header5: 'Nadpis 5',
- format: 'Formát',
- bold: 'Tučné',
- italic: 'Kurzíva',
- superscript: 'Horní index',
- strikethrough: 'Přeškrtnuté',
- fontcolor: 'Barva písma',
- backcolor: 'Barva pozadí',
- removeformat: 'Odstranit formátování',
- cleanformatting: 'Odstranit styly',
- lists: 'Seznamy',
- unorderedlist: 'Seznam s odrážkami',
- orderedlist: 'Číslovaný seznam',
- outdent: 'Zmenšit odsazení',
- indent: 'Zvětšit odsazení',
- redo: 'Vpřed',
- undo: 'Zpět',
- cut: 'Vyjmout',
- cancel: 'Zrušit',
- insert: 'Vložit',
- save: 'Uložit',
- _delete: 'Smazat',
- insert_table: 'Vložit tabulku',
- insert_row_above: 'Přidat řádek nahoru',
- insert_row_below: 'Přidat řádek dolu',
- insert_column_left: 'Přidat sloupec vlevo',
- insert_column_right: 'Přidat sloupec vpravo',
- delete_column: 'Smazat sloupec',
- delete_row: 'Smazat řádek',
- delete_table: 'Smazat tabulku',
- rows: 'Řádky',
- columns: 'Sloupce',
- add_head: 'Přidat záhlaví',
- delete_head: 'Smazat záhlaví',
- title: 'Titulek',
- image_view: 'Zobrazit obrázek',
- image_position: 'Zarovnání',
- none: 'Žádné',
- left: 'Vlevo',
- right: 'Vpravo',
- image_web_link: 'Odkaz na obrázek',
- text: 'Text',
- mailto: 'Email',
- web: 'URL adresa',
- video_html_code: 'Zkopírujte kód pro vložení videa do stránky',
- file: 'Soubor',
- upload: 'Nahrát',
- download: 'Stáhnout',
- choose: 'Vybrat',
- or_choose: 'nebo',
- drop_file_here: 'Přetáhněte soubor do tohoto okna',
- align_left: 'Zarovnat vlevo',
- align_center: 'Zarovnat na střed',
- align_right: 'Zarovnat vpravo',
- align_justify: 'Zarovnat do bloku',
- horizontalrule: 'Vodorovná čára',
- fullscreen: 'Celá obrazovka',
- deleted: 'Přeškrtnuté',
- none: 'Žádná',
- anchor: 'Záložka',
- link_new_tab: 'Otevírat odkaz v novém okně',
- underline: 'Podtržené',
- alignment: 'Zarovnání',
- filename: 'Název (volitelné)',
- edit: 'Upravit',
- center: 'Center'
-};
+(function ($) {
+$.Redactor.opts.langs['cs'] = {
+ html: 'HTML',
+ video: 'Video',
+ image: 'Obrázek',
+ table: 'Tabulka',
+ link: 'Odkaz',
+ link_insert: 'Vložit odkaz ...',
+ link_edit: 'Upravit odkaz',
+ unlink: 'Odstranit odkaz',
+ formatting: 'Styly',
+ paragraph: 'Odstavec',
+ quote: 'Citace',
+ code: 'Kód',
+ header1: 'Nadpis 1',
+ header2: 'Nadpis 2',
+ header3: 'Nadpis 3',
+ header4: 'Nadpis 4',
+ header5: 'Nadpis 5',
+ format: 'Formát',
+ bold: 'Tučné',
+ italic: 'Kurzíva',
+ superscript: 'Horní index',
+ strikethrough: 'Přeškrtnuté',
+ fontcolor: 'Barva písma',
+ backcolor: 'Barva pozadí',
+ removeformat: 'Odstranit formátování',
+ cleanformatting: 'Odstranit styly',
+ lists: 'Seznamy',
+ unorderedlist: 'Seznam s odrážkami',
+ orderedlist: 'Číslovaný seznam',
+ outdent: 'Zmenšit odsazení',
+ indent: 'Zvětšit odsazení',
+ redo: 'Vpřed',
+ undo: 'Zpět',
+ cut: 'Vyjmout',
+ cancel: 'Zrušit',
+ insert: 'Vložit',
+ save: 'Uložit',
+ _delete: 'Smazat',
+ insert_table: 'Vložit tabulku',
+ insert_row_above: 'Přidat řádek nahoru',
+ insert_row_below: 'Přidat řádek dolu',
+ insert_column_left: 'Přidat sloupec vlevo',
+ insert_column_right: 'Přidat sloupec vpravo',
+ delete_column: 'Smazat sloupec',
+ delete_row: 'Smazat řádek',
+ delete_table: 'Smazat tabulku',
+ rows: 'Řádky',
+ columns: 'Sloupce',
+ add_head: 'Přidat záhlaví',
+ delete_head: 'Smazat záhlaví',
+ title: 'Titulek',
+ image_view: 'Zobrazit obrázek',
+ image_position: 'Zarovnání',
+ none: 'Žádné',
+ left: 'Vlevo',
+ right: 'Vpravo',
+ image_web_link: 'Odkaz na obrázek',
+ text: 'Text',
+ mailto: 'Email',
+ web: 'URL adresa',
+ video_html_code: 'Zkopírujte kód pro vložení videa do stránky',
+ file: 'Soubor',
+ upload: 'Nahrát',
+ download: 'Stáhnout',
+ choose: 'Vybrat',
+ or_choose: 'nebo',
+ drop_file_here: 'Přetáhněte soubor do tohoto okna',
+ align_left: 'Zarovnat vlevo',
+ align_center: 'Zarovnat na střed',
+ align_right: 'Zarovnat vpravo',
+ align_justify: 'Zarovnat do bloku',
+ horizontalrule: 'Vodorovná čára',
+ fullscreen: 'Celá obrazovka',
+ deleted: 'Přeškrtnuté',
+ none: 'Žádná',
+ anchor: 'Záložka',
+ link_new_tab: 'Otevírat odkaz v novém okně',
+ underline: 'Podtržené',
+ alignment: 'Zarovnání',
+ filename: 'Název (volitelné)',
+ edit: 'Upravit',
+ center: 'Center'
+};
})( jQuery );
\ No newline at end of file
diff --git a/static/redactor/langs/da.js b/static/redactor/langs/da.js
old mode 100755
new mode 100644
index 736d7f7..7b5451c
--- a/static/redactor/langs/da.js
+++ b/static/redactor/langs/da.js
@@ -1,75 +1,75 @@
-(function ($) {
-$.Redactor.opts.langs['da'] = {
- html: 'HTML',
- video: 'Indsæt Video...',
- image: 'Indsæt Billede...',
- table: 'Tabel',
- link: 'Hyperlink',
- link_insert: 'Indsæt Hyperlink ...',
- link_edit: 'Edit link',
- unlink: 'Fjern Hyperlink',
- formatting: 'Formatering',
- paragraph: 'Paragraf',
- quote: 'Citat',
- code: 'Kode',
- header1: 'Overskrift 1',
- header2: 'Overskrift 2',
- header3: 'Overskrift 3',
- header4: 'Overskrift 4',
- header5: 'Overskrift 5',
- bold: 'Fed',
- italic: 'Kursiv',
- fontcolor: 'Skriftfarve',
- backcolor: 'Baggrundsfarve',
- unorderedlist: 'Opstilling Med Punkttegn',
- orderedlist: 'Opstilling Med Tal',
- outdent: 'Formindsk Indrykning',
- indent: 'Forøg Indrykning',
- cancel: 'Fortryd',
- insert: 'Indsæt',
- save: 'Gem',
- _delete: 'Slet',
- insert_table: 'Indsæt Tabel...',
- insert_row_above: 'Indsæt Række Over',
- insert_row_below: 'Indsæt Række Under',
- insert_column_left: 'Indsæt Kolonne Venstre',
- insert_column_right: 'Indsæt Kolonne Højre',
- delete_column: 'Slet Kolonne',
- delete_row: 'Slet Række',
- delete_table: 'Slet Tabel',
- rows: 'Rækker',
- columns: 'Kolonner',
- add_head: 'Indsæt Hoved',
- delete_head: 'Slet Hoved',
- title: 'Titel',
- image_position: 'Placering',
- none: 'Ingen',
- left: 'Venstre',
- right: 'Højre',
- image_web_link: 'Billede Web Hyperlink',
- text: 'Tekst',
- mailto: 'Email',
- web: 'URL',
- video_html_code: 'Video Indlejringskode',
- file: 'Indsæt Fil...',
- upload: 'Upload',
- download: 'Download',
- choose: 'Vælg',
- or_choose: 'Eller vælg',
- drop_file_here: 'Træk fil her',
- align_left: 'Venstrejuster',
- align_center: 'Centrer',
- align_right: 'Højrejuster',
- align_justify: 'Juster',
- horizontalrule: 'Indsæt Vandret Linje',
- fullscreen: 'Fuldskærm',
- deleted: 'Slettet',
- anchor: 'Anchor',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
+(function ($) {
+$.Redactor.opts.langs['da'] = {
+ html: 'HTML',
+ video: 'Indsæt Video...',
+ image: 'Indsæt Billede...',
+ table: 'Tabel',
+ link: 'Hyperlink',
+ link_insert: 'Indsæt Hyperlink ...',
+ link_edit: 'Edit link',
+ unlink: 'Fjern Hyperlink',
+ formatting: 'Formatering',
+ paragraph: 'Paragraf',
+ quote: 'Citat',
+ code: 'Kode',
+ header1: 'Overskrift 1',
+ header2: 'Overskrift 2',
+ header3: 'Overskrift 3',
+ header4: 'Overskrift 4',
+ header5: 'Overskrift 5',
+ bold: 'Fed',
+ italic: 'Kursiv',
+ fontcolor: 'Skriftfarve',
+ backcolor: 'Baggrundsfarve',
+ unorderedlist: 'Opstilling Med Punkttegn',
+ orderedlist: 'Opstilling Med Tal',
+ outdent: 'Formindsk Indrykning',
+ indent: 'Forøg Indrykning',
+ cancel: 'Fortryd',
+ insert: 'Indsæt',
+ save: 'Gem',
+ _delete: 'Slet',
+ insert_table: 'Indsæt Tabel...',
+ insert_row_above: 'Indsæt Række Over',
+ insert_row_below: 'Indsæt Række Under',
+ insert_column_left: 'Indsæt Kolonne Venstre',
+ insert_column_right: 'Indsæt Kolonne Højre',
+ delete_column: 'Slet Kolonne',
+ delete_row: 'Slet Række',
+ delete_table: 'Slet Tabel',
+ rows: 'Rækker',
+ columns: 'Kolonner',
+ add_head: 'Indsæt Hoved',
+ delete_head: 'Slet Hoved',
+ title: 'Titel',
+ image_position: 'Placering',
+ none: 'Ingen',
+ left: 'Venstre',
+ right: 'Højre',
+ image_web_link: 'Billede Web Hyperlink',
+ text: 'Tekst',
+ mailto: 'Email',
+ web: 'URL',
+ video_html_code: 'Video Indlejringskode',
+ file: 'Indsæt Fil...',
+ upload: 'Upload',
+ download: 'Download',
+ choose: 'Vælg',
+ or_choose: 'Eller vælg',
+ drop_file_here: 'Træk fil her',
+ align_left: 'Venstrejuster',
+ align_center: 'Centrer',
+ align_right: 'Højrejuster',
+ align_justify: 'Juster',
+ horizontalrule: 'Indsæt Vandret Linje',
+ fullscreen: 'Fuldskærm',
+ deleted: 'Slettet',
+ anchor: 'Anchor',
+ link_new_tab: 'Open link in new tab',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
})( jQuery );
\ No newline at end of file
diff --git a/static/redactor/langs/de.js b/static/redactor/langs/de.js
old mode 100755
new mode 100644
index eac9c16..e274b62
--- a/static/redactor/langs/de.js
+++ b/static/redactor/langs/de.js
@@ -1,79 +1,79 @@
-(function ($) {
-$.Redactor.opts.langs['de'] = {
- html: 'HTML',
- video: 'Video',
- image: 'Bilder',
- table: 'Tabelle',
- link: 'Link',
- link_insert: 'Link einfügen ...',
- link_edit: 'Link bearbeiten',
- unlink: 'Link entfernen',
- formatting: 'Formatvorlagen',
- paragraph: 'Absatz',
- quote: 'Zitat',
- code: 'Code',
- header1: 'Überschrift 1',
- header2: 'Überschrift 2',
- header3: 'Überschrift 3',
- header4: 'Überschrift 4',
- header5: 'Überschrift 5',
- bold: 'Fett',
- italic: 'Kursiv',
- fontcolor: 'Schriftfarbe',
- backcolor: 'Texthervorhebungsfarbe',
- unorderedlist: 'Aufzählungszeichen',
- orderedlist: 'Nummerierung',
- outdent: 'Einzug verkleinern',
- indent: 'Einzug vergrößern',
- redo: 'Wiederholen',
- undo: 'Rückgängig',
- cut: 'Ausschneiden',
- cancel: 'Abbrechen',
- insert: 'Einfügen',
- save: 'Speichern',
- _delete: 'Löschen',
- insert_table: 'Tabelle einfügen',
- insert_row_above: 'Zeile oberhalb einfügen',
- insert_row_below: 'Zeile unterhalb einfügen',
- insert_column_left: 'Spalte links einfügen',
- insert_column_right: 'Spalte rechts einfügen',
- delete_column: 'Spalte löschen',
- delete_row: 'Zeile löschen',
- delete_table: 'Tabelle löschen',
- rows: 'Zeilen',
- columns: 'Spalten',
- add_head: 'Titel einfügen',
- delete_head: 'Titel entfernen',
- title: 'Title',
- image_view: 'Bilder',
- image_position: 'Textumbruch',
- none: 'Keine',
- left: 'Links',
- right: 'Rechts',
- image_web_link: 'Bilder-Link',
- text: 'Text',
- mailto: 'Email',
- web: 'URL',
- video_html_code: 'Video-Einbettungscode',
- file: 'Datei',
- upload: 'Hochladen',
- download: 'Download',
- choose: 'Auswählen',
- or_choose: 'Oder, wählen Sie eine Datei aus',
- drop_file_here: 'Ziehen Sie eine Datei hier hin',
- align_left: 'Linksbündig',
- align_center: 'Mitte',
- align_right: 'Rechtsbündig',
- align_justify: 'Blocksatz',
- horizontalrule: 'Horizontale Linie',
- fullscreen: 'Vollbild',
- deleted: 'Durchgestrichen',
- anchor: 'Anker',
- link_new_tab: 'Link in neuem Tab öffnen',
- underline: 'Unterstrichen',
- alignment: 'Ausrichtung',
- filename: 'Name (optional)',
- edit: 'Bearbeiten',
- center: 'Center'
-};
+(function ($) {
+$.Redactor.opts.langs['de'] = {
+ html: 'HTML',
+ video: 'Video',
+ image: 'Bilder',
+ table: 'Tabelle',
+ link: 'Link',
+ link_insert: 'Link einfügen ...',
+ link_edit: 'Link bearbeiten',
+ unlink: 'Link entfernen',
+ formatting: 'Formatvorlagen',
+ paragraph: 'Absatz',
+ quote: 'Zitat',
+ code: 'Code',
+ header1: 'Überschrift 1',
+ header2: 'Überschrift 2',
+ header3: 'Überschrift 3',
+ header4: 'Überschrift 4',
+ header5: 'Überschrift 5',
+ bold: 'Fett',
+ italic: 'Kursiv',
+ fontcolor: 'Schriftfarbe',
+ backcolor: 'Texthervorhebungsfarbe',
+ unorderedlist: 'Aufzählungszeichen',
+ orderedlist: 'Nummerierung',
+ outdent: 'Einzug verkleinern',
+ indent: 'Einzug vergrößern',
+ redo: 'Wiederholen',
+ undo: 'Rückgängig',
+ cut: 'Ausschneiden',
+ cancel: 'Abbrechen',
+ insert: 'Einfügen',
+ save: 'Speichern',
+ _delete: 'Löschen',
+ insert_table: 'Tabelle einfügen',
+ insert_row_above: 'Zeile oberhalb einfügen',
+ insert_row_below: 'Zeile unterhalb einfügen',
+ insert_column_left: 'Spalte links einfügen',
+ insert_column_right: 'Spalte rechts einfügen',
+ delete_column: 'Spalte löschen',
+ delete_row: 'Zeile löschen',
+ delete_table: 'Tabelle löschen',
+ rows: 'Zeilen',
+ columns: 'Spalten',
+ add_head: 'Titel einfügen',
+ delete_head: 'Titel entfernen',
+ title: 'Title',
+ image_view: 'Bilder',
+ image_position: 'Textumbruch',
+ none: 'Keine',
+ left: 'Links',
+ right: 'Rechts',
+ image_web_link: 'Bilder-Link',
+ text: 'Text',
+ mailto: 'Email',
+ web: 'URL',
+ video_html_code: 'Video-Einbettungscode',
+ file: 'Datei',
+ upload: 'Hochladen',
+ download: 'Download',
+ choose: 'Auswählen',
+ or_choose: 'Oder, wählen Sie eine Datei aus',
+ drop_file_here: 'Ziehen Sie eine Datei hier hin',
+ align_left: 'Linksbündig',
+ align_center: 'Mitte',
+ align_right: 'Rechtsbündig',
+ align_justify: 'Blocksatz',
+ horizontalrule: 'Horizontale Linie',
+ fullscreen: 'Vollbild',
+ deleted: 'Durchgestrichen',
+ anchor: 'Anker',
+ link_new_tab: 'Link in neuem Tab öffnen',
+ underline: 'Unterstrichen',
+ alignment: 'Ausrichtung',
+ filename: 'Name (optional)',
+ edit: 'Bearbeiten',
+ center: 'Center'
+};
})( jQuery );
\ No newline at end of file
diff --git a/static/redactor/langs/el.js b/static/redactor/langs/el.js
old mode 100755
new mode 100644
index 5ec9cbe..509460f
--- a/static/redactor/langs/el.js
+++ b/static/redactor/langs/el.js
@@ -1,75 +1,75 @@
-(function ($) {
-$.Redactor.opts.langs['el'] = {
- html: 'HTML',
- video: 'Εισαγωγή βίντεο...',
- image: 'Εισαγωγή εικόνας...',
- table: 'Πίνακας',
- link: 'Σύνδεσμος',
- link_insert: 'Εισαγωγή συνδέσμου...',
- link_edit: 'Τροποποίηση συνδέσμου',
- unlink: 'Ακύρωση συνδέσμου',
- formatting: 'Μορφοποίηση',
- paragraph: 'Παράγραφος',
- quote: 'Παράθεση',
- code: 'Κώδικας',
- header1: 'Κεφαλίδα 1',
- header2: 'Κεφαλίδα 2',
- header3: 'Κεφαλίδα 3',
- header4: 'Κεφαλίδα 4',
- header5: 'Κεφαλίδα 5',
- bold: 'Έντονα',
- italic: 'Πλάγια',
- fontcolor: 'Χρώμα γραμματοσειράς',
- backcolor: 'Χρώμα επισήμανσης κειμένου',
- unorderedlist: 'Κουκκίδες',
- orderedlist: 'Αρίθμηση',
- outdent: 'Μείωση εσοχής',
- indent: 'Αύξηση εσοχής',
- cancel: 'Ακύρωση',
- insert: 'Εισαγωγή',
- save: 'Αποθήκευση',
- _delete: 'Διαγραφή',
- insert_table: 'Εισαγωγή πίνακα...',
- insert_row_above: 'Προσθήκη γραμμής επάνω',
- insert_row_below: 'Προσθήκη γραμμής κάτω',
- insert_column_left: 'Προσθήκη στήλης αριστερά',
- insert_column_right: 'Προσθήκη στήλης δεξιά',
- delete_column: 'Διαγραφή στήλης',
- delete_row: 'Διαγραφή σειράς',
- delete_table: 'Διαγραφή πίνακα',
- rows: 'Γραμμές',
- columns: 'Στήλες',
- add_head: 'Προσθήκη κεφαλίδας',
- delete_head: 'Διαγραφή κεφαλίδας',
- title: 'Τίτλος',
- image_position: 'Θέση',
- none: 'Καμία',
- left: 'Αριστερά',
- right: 'Δεξιά',
- image_web_link: 'Υπερσύνδεσμος εικόνας',
- text: 'Κείμενο',
- mailto: 'Email',
- web: 'Διεύθυνση URL',
- video_html_code: 'Κώδικας ενσωμάτωσης βίντεο',
- file: 'Εισαγωγή αρχείου...',
- upload: 'Ανέβασμα',
- download: 'Κατέβασμα',
- choose: 'Επέλεξε',
- or_choose: 'ή επέλεξε',
- drop_file_here: 'Σύρατε αρχεία εδώ',
- align_left: 'Στοίχιση αριστερά',
- align_center: 'Στοίχιση στο κέντρο',
- align_right: 'Στοίχιση δεξιά',
- align_justify: 'Πλήρης στοίχιση',
- horizontalrule: 'Εισαγωγή οριζόντιας γραμμής',
- deleted: 'Διαγράφηκε',
- anchor: 'Άγκυρα',
- link_new_tab: 'Άνοιγμα συνδέσμου σε νέα καρτέλα',
- underline: 'Υπογράμμιση',
- alignment: 'Στοίχιση',
- filename: 'Όνομα (προαιρετικό)',
- edit: 'Τροποποίηση',
- center: 'Κέντρο',
-};
-})( jQuery );
-
+(function ($) {
+$.Redactor.opts.langs['el'] = {
+ html: 'HTML',
+ video: 'Εισαγωγή βίντεο...',
+ image: 'Εισαγωγή εικόνας...',
+ table: 'Πίνακας',
+ link: 'Σύνδεσμος',
+ link_insert: 'Εισαγωγή συνδέσμου...',
+ link_edit: 'Τροποποίηση συνδέσμου',
+ unlink: 'Ακύρωση συνδέσμου',
+ formatting: 'Μορφοποίηση',
+ paragraph: 'Παράγραφος',
+ quote: 'Παράθεση',
+ code: 'Κώδικας',
+ header1: 'Κεφαλίδα 1',
+ header2: 'Κεφαλίδα 2',
+ header3: 'Κεφαλίδα 3',
+ header4: 'Κεφαλίδα 4',
+ header5: 'Κεφαλίδα 5',
+ bold: 'Έντονα',
+ italic: 'Πλάγια',
+ fontcolor: 'Χρώμα γραμματοσειράς',
+ backcolor: 'Χρώμα επισήμανσης κειμένου',
+ unorderedlist: 'Κουκκίδες',
+ orderedlist: 'Αρίθμηση',
+ outdent: 'Μείωση εσοχής',
+ indent: 'Αύξηση εσοχής',
+ cancel: 'Ακύρωση',
+ insert: 'Εισαγωγή',
+ save: 'Αποθήκευση',
+ _delete: 'Διαγραφή',
+ insert_table: 'Εισαγωγή πίνακα...',
+ insert_row_above: 'Προσθήκη γραμμής επάνω',
+ insert_row_below: 'Προσθήκη γραμμής κάτω',
+ insert_column_left: 'Προσθήκη στήλης αριστερά',
+ insert_column_right: 'Προσθήκη στήλης δεξιά',
+ delete_column: 'Διαγραφή στήλης',
+ delete_row: 'Διαγραφή σειράς',
+ delete_table: 'Διαγραφή πίνακα',
+ rows: 'Γραμμές',
+ columns: 'Στήλες',
+ add_head: 'Προσθήκη κεφαλίδας',
+ delete_head: 'Διαγραφή κεφαλίδας',
+ title: 'Τίτλος',
+ image_position: 'Θέση',
+ none: 'Καμία',
+ left: 'Αριστερά',
+ right: 'Δεξιά',
+ image_web_link: 'Υπερσύνδεσμος εικόνας',
+ text: 'Κείμενο',
+ mailto: 'Email',
+ web: 'Διεύθυνση URL',
+ video_html_code: 'Κώδικας ενσωμάτωσης βίντεο',
+ file: 'Εισαγωγή αρχείου...',
+ upload: 'Ανέβασμα',
+ download: 'Κατέβασμα',
+ choose: 'Επέλεξε',
+ or_choose: 'ή επέλεξε',
+ drop_file_here: 'Σύρατε αρχεία εδώ',
+ align_left: 'Στοίχιση αριστερά',
+ align_center: 'Στοίχιση στο κέντρο',
+ align_right: 'Στοίχιση δεξιά',
+ align_justify: 'Πλήρης στοίχιση',
+ horizontalrule: 'Εισαγωγή οριζόντιας γραμμής',
+ deleted: 'Διαγράφηκε',
+ anchor: 'Άγκυρα',
+ link_new_tab: 'Άνοιγμα συνδέσμου σε νέα καρτέλα',
+ underline: 'Υπογράμμιση',
+ alignment: 'Στοίχιση',
+ filename: 'Όνομα (προαιρετικό)',
+ edit: 'Τροποποίηση',
+ center: 'Κέντρο',
+};
+})( jQuery );
+
diff --git a/static/redactor/langs/en.js b/static/redactor/langs/en.js
old mode 100755
new mode 100644
index 3cb8a85..251d716
--- a/static/redactor/langs/en.js
+++ b/static/redactor/langs/en.js
@@ -1,74 +1,74 @@
-(function ($) {
-$.Redactor.opts.langs['en'] = {
- html: 'HTML',
- video: 'Insert Video...',
- image: 'Insert Image...',
- table: 'Table',
- link: 'Link',
- link_insert: 'Insert Link ...',
- link_edit: 'Edit link',
- unlink: 'Unlink',
- formatting: 'Formatting',
- paragraph: 'Normal text',
- quote: 'Quote',
- code: 'Code',
- header1: 'Header 1',
- header2: 'Header 2',
- header3: 'Header 3',
- header4: 'Header 4',
- header5: 'Header 5',
- bold: 'Bold',
- italic: 'Italic',
- fontcolor: 'Font Color',
- backcolor: 'Back Color',
- unorderedlist: 'Unordered List',
- orderedlist: 'Ordered List',
- outdent: 'Outdent',
- indent: 'Indent',
- cancel: 'Cancel',
- insert: 'Insert',
- save: 'Save',
- _delete: 'Delete',
- insert_table: 'Insert Table...',
- insert_row_above: 'Add Row Above',
- insert_row_below: 'Add Row Below',
- insert_column_left: 'Add Column Left',
- insert_column_right: 'Add Column Right',
- delete_column: 'Delete Column',
- delete_row: 'Delete Row',
- delete_table: 'Delete Table',
- rows: 'Rows',
- columns: 'Columns',
- add_head: 'Add Head',
- delete_head: 'Delete Head',
- title: 'Title',
- image_position: 'Position',
- none: 'None',
- left: 'Left',
- right: 'Right',
- image_web_link: 'Image Web Link',
- text: 'Text',
- mailto: 'Email',
- web: 'URL',
- video_html_code: 'Video Embed Code',
- file: 'Insert File...',
- upload: 'Upload',
- download: 'Download',
- choose: 'Choose',
- or_choose: 'Or choose',
- drop_file_here: 'Drop file here',
- align_left: 'Align text to the left',
- align_center: 'Center text',
- align_right: 'Align text to the right',
- align_justify: 'Justify text',
- horizontalrule: 'Insert Horizontal Rule',
- deleted: 'Deleted',
- anchor: 'Anchor',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['en'] = {
+ html: 'HTML',
+ video: 'Insert Video...',
+ image: 'Insert Image...',
+ table: 'Table',
+ link: 'Link',
+ link_insert: 'Insert Link ...',
+ link_edit: 'Edit link',
+ unlink: 'Unlink',
+ formatting: 'Formatting',
+ paragraph: 'Normal text',
+ quote: 'Quote',
+ code: 'Code',
+ header1: 'Header 1',
+ header2: 'Header 2',
+ header3: 'Header 3',
+ header4: 'Header 4',
+ header5: 'Header 5',
+ bold: 'Bold',
+ italic: 'Italic',
+ fontcolor: 'Font Color',
+ backcolor: 'Back Color',
+ unorderedlist: 'Unordered List',
+ orderedlist: 'Ordered List',
+ outdent: 'Outdent',
+ indent: 'Indent',
+ cancel: 'Cancel',
+ insert: 'Insert',
+ save: 'Save',
+ _delete: 'Delete',
+ insert_table: 'Insert Table...',
+ insert_row_above: 'Add Row Above',
+ insert_row_below: 'Add Row Below',
+ insert_column_left: 'Add Column Left',
+ insert_column_right: 'Add Column Right',
+ delete_column: 'Delete Column',
+ delete_row: 'Delete Row',
+ delete_table: 'Delete Table',
+ rows: 'Rows',
+ columns: 'Columns',
+ add_head: 'Add Head',
+ delete_head: 'Delete Head',
+ title: 'Title',
+ image_position: 'Position',
+ none: 'None',
+ left: 'Left',
+ right: 'Right',
+ image_web_link: 'Image Web Link',
+ text: 'Text',
+ mailto: 'Email',
+ web: 'URL',
+ video_html_code: 'Video Embed Code',
+ file: 'Insert File...',
+ upload: 'Upload',
+ download: 'Download',
+ choose: 'Choose',
+ or_choose: 'Or choose',
+ drop_file_here: 'Drop file here',
+ align_left: 'Align text to the left',
+ align_center: 'Center text',
+ align_right: 'Align text to the right',
+ align_justify: 'Justify text',
+ horizontalrule: 'Insert Horizontal Rule',
+ deleted: 'Deleted',
+ anchor: 'Anchor',
+ link_new_tab: 'Open link in new tab',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/eo.js b/static/redactor/langs/eo.js
old mode 100755
new mode 100644
index e066484..7532276
--- a/static/redactor/langs/eo.js
+++ b/static/redactor/langs/eo.js
@@ -1,75 +1,75 @@
-(function ($) {
-$.Redactor.opts.langs['eo'] = {
- html: 'HTML', // substantive
- video: 'Enŝovu videon...', // imperative
- image: 'Enŝovu bildon...', // imperative
- table: 'Tabelo', // substantive
- link: 'Ligu', // imperative
- link_insert: 'Enŝovu ligilon ...', // imperative
- link_edit: 'Edit link',
- unlink: 'Malligu', // imperative
- formatting: 'Tekstaranĝo', // substantive
- paragraph: 'Paragrafo', // substantive
- quote: 'Citaĵo', // substantive
- code: 'Kodo', // substantive
- header1: 'Kapo 1', // substantive
- header2: 'Kapo 2', // substantive
- header3: 'Kapo 3', // substantive
- header4: 'Kapo 4', // substantive
- header5: 'Kapo 5', // substantive
- bold: 'Grasa', // adjective
- italic: 'Kursiva', // adjective
- fontcolor: 'Tipara koloro', // substantive
- backcolor: 'Fona koloro', // substantive
- unorderedlist: 'Malorda listo', // substantive
- orderedlist: 'Orda listo', // substantive
- outdent: 'Malkrommarĝenu', // imperative
- indent: 'Krommarĝenu', // imperative
- cancel: 'Rezignu', // imperative
- insert: 'Enŝovu', // imperative
- save: 'Konservu', // imperative
- _delete: 'Forigu', // imperative
- insert_table: 'Enŝovu tabelon...', // imperative
- insert_row_above: 'Enŝovu vicon supren', // imperative
- insert_row_below: 'Enŝovu vicon malsupren', // imperative
- insert_column_left: 'Enŝovu kolumnon maldekstren', // imperative
- insert_column_right: 'Enŝovu kolumnon dekstren', // imperative
- delete_column: 'Forigu kolumnon', // imperative
- delete_row: 'Forigu vicon', // imperative
- delete_table: 'Forigu tabelon', // imperative
- rows: 'Vicoj', // substantive (plural)
- columns: 'Kolumnoj', // substantive (plural)
- add_head: 'Enŝovu kapon', // imperative
- delete_head: 'Forigu kapon', // imperative
- title: 'Titolo', // substantive
- image_position: 'Bildloko', // substantive
- none: 'Neniu', // determiner
- left: 'Maldekstra', // adjective
- right: 'Dekstra', // adjective
- image_web_link: 'Bilda hiperligilo', // substantive
- text: 'Teksto', // substantive
- mailto: 'Retpoŝto', // substantive
- web: 'URL', // substantive
- video_html_code: 'Videa enkorpigita kodo', // substantive
- file: 'Enŝovu dosieron...', // imperative
- upload: 'Alŝutu', // imperative
- download: 'Elŝutu', // imperative
- choose: 'Elektu', // imperative
- or_choose: 'Aŭ elektu', // imperative
- drop_file_here: 'Demetu dosieron ĉi tien', // imperative
- align_left: 'Ĝisrandigu maldekstren', // imperative
- align_center: 'Centrigu', // imperative
- align_right: 'Ĝisrandigu dekstren', // imperative
- align_justify: 'Ĝisrandigu', // imperative
- horizontalrule: 'Enŝovu horizontalan linion', // imperative
- fullscreen: 'Plenekrana', // adjective
- deleted: 'Foriga', // adjective
- anchor: 'Ankro', // substantive
- link_new_tab: 'Malfermu hiperligilon en novan langeton', // imperative
- underline: 'Substrekita', // adjective
- alignment: 'Ĝisrandigo', // substantive
- filename: 'Dosiernomo (fakultativa)', // substantive
- edit: 'Redaktu', // imperative
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['eo'] = {
+ html: 'HTML', // substantive
+ video: 'Enŝovu videon...', // imperative
+ image: 'Enŝovu bildon...', // imperative
+ table: 'Tabelo', // substantive
+ link: 'Ligu', // imperative
+ link_insert: 'Enŝovu ligilon ...', // imperative
+ link_edit: 'Edit link',
+ unlink: 'Malligu', // imperative
+ formatting: 'Tekstaranĝo', // substantive
+ paragraph: 'Paragrafo', // substantive
+ quote: 'Citaĵo', // substantive
+ code: 'Kodo', // substantive
+ header1: 'Kapo 1', // substantive
+ header2: 'Kapo 2', // substantive
+ header3: 'Kapo 3', // substantive
+ header4: 'Kapo 4', // substantive
+ header5: 'Kapo 5', // substantive
+ bold: 'Grasa', // adjective
+ italic: 'Kursiva', // adjective
+ fontcolor: 'Tipara koloro', // substantive
+ backcolor: 'Fona koloro', // substantive
+ unorderedlist: 'Malorda listo', // substantive
+ orderedlist: 'Orda listo', // substantive
+ outdent: 'Malkrommarĝenu', // imperative
+ indent: 'Krommarĝenu', // imperative
+ cancel: 'Rezignu', // imperative
+ insert: 'Enŝovu', // imperative
+ save: 'Konservu', // imperative
+ _delete: 'Forigu', // imperative
+ insert_table: 'Enŝovu tabelon...', // imperative
+ insert_row_above: 'Enŝovu vicon supren', // imperative
+ insert_row_below: 'Enŝovu vicon malsupren', // imperative
+ insert_column_left: 'Enŝovu kolumnon maldekstren', // imperative
+ insert_column_right: 'Enŝovu kolumnon dekstren', // imperative
+ delete_column: 'Forigu kolumnon', // imperative
+ delete_row: 'Forigu vicon', // imperative
+ delete_table: 'Forigu tabelon', // imperative
+ rows: 'Vicoj', // substantive (plural)
+ columns: 'Kolumnoj', // substantive (plural)
+ add_head: 'Enŝovu kapon', // imperative
+ delete_head: 'Forigu kapon', // imperative
+ title: 'Titolo', // substantive
+ image_position: 'Bildloko', // substantive
+ none: 'Neniu', // determiner
+ left: 'Maldekstra', // adjective
+ right: 'Dekstra', // adjective
+ image_web_link: 'Bilda hiperligilo', // substantive
+ text: 'Teksto', // substantive
+ mailto: 'Retpoŝto', // substantive
+ web: 'URL', // substantive
+ video_html_code: 'Videa enkorpigita kodo', // substantive
+ file: 'Enŝovu dosieron...', // imperative
+ upload: 'Alŝutu', // imperative
+ download: 'Elŝutu', // imperative
+ choose: 'Elektu', // imperative
+ or_choose: 'Aŭ elektu', // imperative
+ drop_file_here: 'Demetu dosieron ĉi tien', // imperative
+ align_left: 'Ĝisrandigu maldekstren', // imperative
+ align_center: 'Centrigu', // imperative
+ align_right: 'Ĝisrandigu dekstren', // imperative
+ align_justify: 'Ĝisrandigu', // imperative
+ horizontalrule: 'Enŝovu horizontalan linion', // imperative
+ fullscreen: 'Plenekrana', // adjective
+ deleted: 'Foriga', // adjective
+ anchor: 'Ankro', // substantive
+ link_new_tab: 'Malfermu hiperligilon en novan langeton', // imperative
+ underline: 'Substrekita', // adjective
+ alignment: 'Ĝisrandigo', // substantive
+ filename: 'Dosiernomo (fakultativa)', // substantive
+ edit: 'Redaktu', // imperative
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/es.js b/static/redactor/langs/es.js
old mode 100755
new mode 100644
index 45d2921..cbf3b61
--- a/static/redactor/langs/es.js
+++ b/static/redactor/langs/es.js
@@ -1,74 +1,74 @@
-(function ($) {
-$.Redactor.opts.langs['es'] = {
- html: 'HTML',
- video: 'Insertar video...',
- image: 'Insertar imagen...',
- table: 'Tabla',
- link: 'Enlace',
- link_insert: 'Insertar enlace ...',
- link_edit: 'Editar enlace',
- unlink: 'Desenlazar',
- formatting: 'Estilos',
- paragraph: 'Texto normal',
- quote: 'Cita',
- code: 'Código',
- header1: 'Cabecera 1',
- header2: 'Cabecera 2',
- header3: 'Cabecera 3',
- header4: 'Cabecera 4',
- header5: 'Cabecera 5',
- bold: 'Negrita',
- italic: 'Itálica',
- fontcolor: 'Color de fuente',
- backcolor: 'Color de fondo',
- unorderedlist: 'Lista desordenada',
- orderedlist: 'Lista ordenada',
- outdent: 'Disminuir sangrado',
- indent: 'Aumentar sangrado',
- cancel: 'Cancelar',
- insert: 'Insertar',
- save: 'Guardar',
- _delete: 'Borrar',
- insert_table: 'Insertar tabla...',
- insert_row_above: 'Añadir fila encima',
- insert_row_below: 'Añadir fila debajo',
- insert_column_left: 'Añadir columna a la izquierda',
- insert_column_right: 'Añadir column a la derecha',
- delete_column: 'Borrar columna',
- delete_row: 'Borrar fila',
- delete_table: 'Borrar tabla',
- rows: 'Filas',
- columns: 'Columnas',
- add_head: 'Añadir cabecera',
- delete_head: 'Borrar cabecera',
- title: 'Título',
- image_position: 'Posición',
- none: 'Ninguna',
- left: 'Izquierda',
- right: 'Derecha',
- image_web_link: 'Enlace web de la imágen',
- text: 'Texto',
- mailto: 'Email',
- web: 'URL',
- video_html_code: 'Código de inserción de video',
- file: 'Insertar archivo...',
- upload: 'Cargar',
- download: 'Descargar',
- choose: 'Elegir',
- or_choose: 'O elegir',
- drop_file_here: 'Arrastra y suelta el archivo aqui',
- align_left: 'Alinear texto a la izquierda',
- align_center: 'Centrar texto',
- align_right: 'Alinear texto a la derecha',
- align_justify: 'Justificar texto',
- horizontalrule: 'Insertar línea horizontal',
- deleted: 'Borrado',
- anchor: 'Anchor',
- link_new_tab: 'Abrir enlace en una nueva pestaña',
- underline: 'Subrayado',
- alignment: 'Alineación',
- filename: 'Nombre (opcional)',
- edit: 'Editar',
- center: 'Center'
-};
+(function ($) {
+$.Redactor.opts.langs['es'] = {
+ html: 'HTML',
+ video: 'Insertar video...',
+ image: 'Insertar imagen...',
+ table: 'Tabla',
+ link: 'Enlace',
+ link_insert: 'Insertar enlace ...',
+ link_edit: 'Editar enlace',
+ unlink: 'Desenlazar',
+ formatting: 'Estilos',
+ paragraph: 'Texto normal',
+ quote: 'Cita',
+ code: 'Código',
+ header1: 'Cabecera 1',
+ header2: 'Cabecera 2',
+ header3: 'Cabecera 3',
+ header4: 'Cabecera 4',
+ header5: 'Cabecera 5',
+ bold: 'Negrita',
+ italic: 'Itálica',
+ fontcolor: 'Color de fuente',
+ backcolor: 'Color de fondo',
+ unorderedlist: 'Lista desordenada',
+ orderedlist: 'Lista ordenada',
+ outdent: 'Disminuir sangrado',
+ indent: 'Aumentar sangrado',
+ cancel: 'Cancelar',
+ insert: 'Insertar',
+ save: 'Guardar',
+ _delete: 'Borrar',
+ insert_table: 'Insertar tabla...',
+ insert_row_above: 'Añadir fila encima',
+ insert_row_below: 'Añadir fila debajo',
+ insert_column_left: 'Añadir columna a la izquierda',
+ insert_column_right: 'Añadir column a la derecha',
+ delete_column: 'Borrar columna',
+ delete_row: 'Borrar fila',
+ delete_table: 'Borrar tabla',
+ rows: 'Filas',
+ columns: 'Columnas',
+ add_head: 'Añadir cabecera',
+ delete_head: 'Borrar cabecera',
+ title: 'Título',
+ image_position: 'Posición',
+ none: 'Ninguna',
+ left: 'Izquierda',
+ right: 'Derecha',
+ image_web_link: 'Enlace web de la imágen',
+ text: 'Texto',
+ mailto: 'Email',
+ web: 'URL',
+ video_html_code: 'Código de inserción de video',
+ file: 'Insertar archivo...',
+ upload: 'Cargar',
+ download: 'Descargar',
+ choose: 'Elegir',
+ or_choose: 'O elegir',
+ drop_file_here: 'Arrastra y suelta el archivo aqui',
+ align_left: 'Alinear texto a la izquierda',
+ align_center: 'Centrar texto',
+ align_right: 'Alinear texto a la derecha',
+ align_justify: 'Justificar texto',
+ horizontalrule: 'Insertar línea horizontal',
+ deleted: 'Borrado',
+ anchor: 'Anchor',
+ link_new_tab: 'Abrir enlace en una nueva pestaña',
+ underline: 'Subrayado',
+ alignment: 'Alineación',
+ filename: 'Nombre (opcional)',
+ edit: 'Editar',
+ center: 'Center'
+};
})( jQuery );
\ No newline at end of file
diff --git a/static/redactor/langs/es_ar.js b/static/redactor/langs/es_ar.js
old mode 100755
new mode 100644
index 5e39c6b..90bafe6
--- a/static/redactor/langs/es_ar.js
+++ b/static/redactor/langs/es_ar.js
@@ -1,75 +1,75 @@
-(function ($) {
-$.Redactor.opts.langs['es_ar'] = {
- html: 'HTML',
- video: 'Video',
- image: 'Imágen',
- table: 'Tabla',
- link: 'Enlace',
- link_insert: 'Insertar enlace ...',
- link_edit: 'Edit link',
- unlink: 'Eliminar enlace',
- formatting: 'Estilos',
- paragraph: 'Párrafo',
- quote: 'Comillas',
- code: 'Código',
- header1: 'Cabecera 1',
- header2: 'Cabecera 2',
- header3: 'Cabecera 3',
- header4: 'Cabecera 4',
- header5: 'Cabecera 5',
- bold: 'Negrita',
- italic: 'Itálica',
- fontcolor: 'Color fuente',
- backcolor: 'Color fondo',
- unorderedlist: 'Lista sin orden',
- orderedlist: 'Lista ordenada',
- outdent: 'Disminuir sangría',
- indent: 'Aumentar sangría',
- cancel: 'Cancelar',
- insert: 'Agregar',
- save: 'Guardar',
- _delete: 'Eliminar',
- insert_table: 'Agregar tabla',
- insert_row_above: 'Agregar fila arriba',
- insert_row_below: 'Agregar fila debajo',
- insert_column_left: 'Agregar columna a la izquierda',
- insert_column_right: 'Agregar column a la derecha',
- delete_column: 'Eliminar columna',
- delete_row: 'Eliminar fila',
- delete_table: 'Eliminar tabla',
- rows: 'Filas',
- columns: 'Columnas',
- add_head: 'Agregar encabezado',
- delete_head: 'Eliminar encabezado',
- title: 'Título',
- image_position: 'Posición',
- none: 'ninguna',
- left: 'izquierda',
- right: 'derecha',
- image_web_link: 'Enlace de imagen web',
- text: 'Texto',
- mailto: 'Email',
- web: 'URL',
- video_html_code: 'Código embebido del video',
- file: 'Archivo',
- upload: 'Cargar',
- download: 'Descargar',
- choose: 'Seleccionar',
- or_choose: 'O seleccionar',
- drop_file_here: 'Soltar el archivo aquí',
- align_left: 'Alinear a la izquierda',
- align_center: 'Alinear al centro',
- align_right: 'Alinear a la derecha',
- align_justify: 'Justificar',
- horizontalrule: 'Trazo horizontal',
- fullscreen: 'Pantalla completa',
- deleted: 'Eliminado',
- anchor: 'Anclaje',
- link_new_tab: 'Abrir enlace en otra pestaña',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['es_ar'] = {
+ html: 'HTML',
+ video: 'Video',
+ image: 'Imágen',
+ table: 'Tabla',
+ link: 'Enlace',
+ link_insert: 'Insertar enlace ...',
+ link_edit: 'Edit link',
+ unlink: 'Eliminar enlace',
+ formatting: 'Estilos',
+ paragraph: 'Párrafo',
+ quote: 'Comillas',
+ code: 'Código',
+ header1: 'Cabecera 1',
+ header2: 'Cabecera 2',
+ header3: 'Cabecera 3',
+ header4: 'Cabecera 4',
+ header5: 'Cabecera 5',
+ bold: 'Negrita',
+ italic: 'Itálica',
+ fontcolor: 'Color fuente',
+ backcolor: 'Color fondo',
+ unorderedlist: 'Lista sin orden',
+ orderedlist: 'Lista ordenada',
+ outdent: 'Disminuir sangría',
+ indent: 'Aumentar sangría',
+ cancel: 'Cancelar',
+ insert: 'Agregar',
+ save: 'Guardar',
+ _delete: 'Eliminar',
+ insert_table: 'Agregar tabla',
+ insert_row_above: 'Agregar fila arriba',
+ insert_row_below: 'Agregar fila debajo',
+ insert_column_left: 'Agregar columna a la izquierda',
+ insert_column_right: 'Agregar column a la derecha',
+ delete_column: 'Eliminar columna',
+ delete_row: 'Eliminar fila',
+ delete_table: 'Eliminar tabla',
+ rows: 'Filas',
+ columns: 'Columnas',
+ add_head: 'Agregar encabezado',
+ delete_head: 'Eliminar encabezado',
+ title: 'Título',
+ image_position: 'Posición',
+ none: 'ninguna',
+ left: 'izquierda',
+ right: 'derecha',
+ image_web_link: 'Enlace de imagen web',
+ text: 'Texto',
+ mailto: 'Email',
+ web: 'URL',
+ video_html_code: 'Código embebido del video',
+ file: 'Archivo',
+ upload: 'Cargar',
+ download: 'Descargar',
+ choose: 'Seleccionar',
+ or_choose: 'O seleccionar',
+ drop_file_here: 'Soltar el archivo aquí',
+ align_left: 'Alinear a la izquierda',
+ align_center: 'Alinear al centro',
+ align_right: 'Alinear a la derecha',
+ align_justify: 'Justificar',
+ horizontalrule: 'Trazo horizontal',
+ fullscreen: 'Pantalla completa',
+ deleted: 'Eliminado',
+ anchor: 'Anclaje',
+ link_new_tab: 'Abrir enlace en otra pestaña',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/fa.js b/static/redactor/langs/fa.js
old mode 100755
new mode 100644
index a6fe31c..e627455
--- a/static/redactor/langs/fa.js
+++ b/static/redactor/langs/fa.js
@@ -1,75 +1,75 @@
-(function ($) {
-$.Redactor.opts.langs['fa'] = {
- html: 'اچ تی ام ال',
- video: 'درج ویدیو...',
- image: 'درج تصویر',
- table: 'جدول',
- link: 'پیوند',
- link_insert: 'درج پیوند ...',
- link_edit: 'Edit link',
- unlink: 'از بین بردن پیوند',
- formatting: 'فالب بندی',
- paragraph: 'پراگراف',
- quote: 'نقل قول',
- code: 'کد',
- header1: 'سرامد 1',
- header2: 'سرامد 2',
- header3: 'سرامد 3',
- header4: 'سرامد 4',
- header5: 'سرامد 5',
- bold: 'درشت',
- italic: 'خمیده',
- fontcolor: 'رنگ قلم',
- backcolor: 'رنگ ضمینه',
- unorderedlist: 'فهرست نامرتب',
- orderedlist: 'فهرست مرتب شده',
- outdent: 'بیرو رفتگی',
- indent: 'تو رفتگی',
- cancel: 'انصراف',
- insert: 'درج',
- save: 'ذخیره',
- _delete: 'حذف',
- insert_table: 'درج جدول ..',
- insert_row_above: 'سطر جدید در بالا',
- insert_row_below: 'سطر جدید در پائین',
- insert_column_left: 'ستون جدید در سمت چپ',
- insert_column_right: 'ستون جدید در سمت راست',
- delete_column: 'حذف ستون',
- delete_row: 'حذف سطر',
- delete_table: 'حذف جدول',
- rows: 'سطرها',
- columns: 'ستونها',
- add_head: 'درج سر ستون ',
- delete_head: 'حذف سرستون',
- title: 'عنوان',
- image_position: 'موقعیت',
- none: 'هیچیک',
- left: 'چپ',
- right: 'راست',
- image_web_link: 'آدرس تصویر در اینترنت',
- text: 'متن',
- mailto: 'ایمیل',
- web: 'آدرس',
- video_html_code: 'کد نمایش ویدئو',
- file: 'درج فایل ....',
- upload: 'بارگزاری',
- download: 'بارگیری',
- choose: 'انتخاب کنید',
- or_choose: 'یا انتخاب کنید',
- drop_file_here: 'این فایل ها حذف شوند',
- align_left: 'چپ جین',
- align_center: 'وسط چین',
- align_right: 'راست چین',
- align_justify: 'کشیده',
- horizontalrule: 'درج خط جدا کننده',
- fullscreen: 'نمایش کامل',
- deleted: 'حذف شده',
- anchor: 'قلاب',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['fa'] = {
+ html: 'اچ تی ام ال',
+ video: 'درج ویدیو...',
+ image: 'درج تصویر',
+ table: 'جدول',
+ link: 'پیوند',
+ link_insert: 'درج پیوند ...',
+ link_edit: 'Edit link',
+ unlink: 'از بین بردن پیوند',
+ formatting: 'فالب بندی',
+ paragraph: 'پراگراف',
+ quote: 'نقل قول',
+ code: 'کد',
+ header1: 'سرامد 1',
+ header2: 'سرامد 2',
+ header3: 'سرامد 3',
+ header4: 'سرامد 4',
+ header5: 'سرامد 5',
+ bold: 'درشت',
+ italic: 'خمیده',
+ fontcolor: 'رنگ قلم',
+ backcolor: 'رنگ ضمینه',
+ unorderedlist: 'فهرست نامرتب',
+ orderedlist: 'فهرست مرتب شده',
+ outdent: 'بیرو رفتگی',
+ indent: 'تو رفتگی',
+ cancel: 'انصراف',
+ insert: 'درج',
+ save: 'ذخیره',
+ _delete: 'حذف',
+ insert_table: 'درج جدول ..',
+ insert_row_above: 'سطر جدید در بالا',
+ insert_row_below: 'سطر جدید در پائین',
+ insert_column_left: 'ستون جدید در سمت چپ',
+ insert_column_right: 'ستون جدید در سمت راست',
+ delete_column: 'حذف ستون',
+ delete_row: 'حذف سطر',
+ delete_table: 'حذف جدول',
+ rows: 'سطرها',
+ columns: 'ستونها',
+ add_head: 'درج سر ستون ',
+ delete_head: 'حذف سرستون',
+ title: 'عنوان',
+ image_position: 'موقعیت',
+ none: 'هیچیک',
+ left: 'چپ',
+ right: 'راست',
+ image_web_link: 'آدرس تصویر در اینترنت',
+ text: 'متن',
+ mailto: 'ایمیل',
+ web: 'آدرس',
+ video_html_code: 'کد نمایش ویدئو',
+ file: 'درج فایل ....',
+ upload: 'بارگزاری',
+ download: 'بارگیری',
+ choose: 'انتخاب کنید',
+ or_choose: 'یا انتخاب کنید',
+ drop_file_here: 'این فایل ها حذف شوند',
+ align_left: 'چپ جین',
+ align_center: 'وسط چین',
+ align_right: 'راست چین',
+ align_justify: 'کشیده',
+ horizontalrule: 'درج خط جدا کننده',
+ fullscreen: 'نمایش کامل',
+ deleted: 'حذف شده',
+ anchor: 'قلاب',
+ link_new_tab: 'Open link in new tab',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/fi.js b/static/redactor/langs/fi.js
old mode 100755
new mode 100644
index ac31382..6b4bb7f
--- a/static/redactor/langs/fi.js
+++ b/static/redactor/langs/fi.js
@@ -1,74 +1,74 @@
-(function ($) {
-$.Redactor.opts.langs['fi'] = {
- html: 'HTML',
- video: 'Lisää video',
- image: 'Lisää kuva',
- table: 'Taulukko',
- link: 'Linkki',
- link_insert: 'Lisää linkki',
- link_edit: 'Muokkaa linkkiä',
- unlink: 'Poista linkki',
- formatting: 'Tyylit',
- paragraph: 'Normaaliteksti',
- quote: 'Lainaus',
- code: 'Koodi',
- header1: 'Otsikko 1',
- header2: 'Otsikko 2',
- header3: 'Otsikko 3',
- header4: 'Otsikko 4',
- header5: 'Otsikko 5',
- bold: 'Lihavointi',
- italic: 'Kursivointi',
- fontcolor: 'Tekstin väri',
- backcolor: 'Taustaväri',
- unorderedlist: 'Luettelo luettelomerkein',
- orderedlist: 'Numeroitu luettelo',
- outdent: 'Vähennä sisennystä',
- indent: 'Lisää sisennystä',
- cancel: 'Peru',
- insert: 'Lisää',
- save: 'Tallenna',
- _delete: 'Poista',
- insert_table: 'Lisää taulukko',
- insert_row_above: 'Lisää rivi ylle',
- insert_row_below: 'Lisää rivi alle',
- insert_column_left: 'Lisää sarake vasemmalle',
- insert_column_right: 'Lisää sarake oikealle',
- delete_column: 'Poista sarake',
- delete_row: 'Poista rivi',
- delete_table: 'Poista taulukko',
- rows: 'Rivit',
- columns: 'Sarakkeet',
- add_head: 'Lisää otsikkorivi',
- delete_head: 'Poista otsikkorivi',
- title: 'Kuvateksti',
- image_position: 'Kuvan sijainti',
- none: 'oletus',
- left: 'vasen',
- right: 'oikea',
- image_web_link: 'Kuvan URL-osoite',
- text: 'Teksti',
- mailto: 'Sähköposti',
- web: 'URL-osoite',
- video_html_code: 'Videon upotuskoodi',
- file: 'Lisää tiedosto',
- upload: 'Lähetä',
- download: 'Lataa',
- choose: 'Valitse',
- or_choose: 'tai valitse',
- drop_file_here: 'Vedä ja pudota kuva tähän',
- align_left: 'Tasaa vasemmalle',
- align_center: 'Keskitä',
- align_right: 'Tasaa oikealle',
- align_justify: 'Tasaa molemmat reunat',
- horizontalrule: 'Lisää vaakaviiva',
- deleted: 'Poistettu',
- anchor: 'Ankkuri',
- link_new_tab: 'Avaa linkki uudessa välilehdessä',
- underline: 'Alleviivaa',
- alignment: 'Tasaus',
- filename: 'Nimi (valinnainen)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['fi'] = {
+ html: 'HTML',
+ video: 'Lisää video',
+ image: 'Lisää kuva',
+ table: 'Taulukko',
+ link: 'Linkki',
+ link_insert: 'Lisää linkki',
+ link_edit: 'Muokkaa linkkiä',
+ unlink: 'Poista linkki',
+ formatting: 'Tyylit',
+ paragraph: 'Normaaliteksti',
+ quote: 'Lainaus',
+ code: 'Koodi',
+ header1: 'Otsikko 1',
+ header2: 'Otsikko 2',
+ header3: 'Otsikko 3',
+ header4: 'Otsikko 4',
+ header5: 'Otsikko 5',
+ bold: 'Lihavointi',
+ italic: 'Kursivointi',
+ fontcolor: 'Tekstin väri',
+ backcolor: 'Taustaväri',
+ unorderedlist: 'Luettelo luettelomerkein',
+ orderedlist: 'Numeroitu luettelo',
+ outdent: 'Vähennä sisennystä',
+ indent: 'Lisää sisennystä',
+ cancel: 'Peru',
+ insert: 'Lisää',
+ save: 'Tallenna',
+ _delete: 'Poista',
+ insert_table: 'Lisää taulukko',
+ insert_row_above: 'Lisää rivi ylle',
+ insert_row_below: 'Lisää rivi alle',
+ insert_column_left: 'Lisää sarake vasemmalle',
+ insert_column_right: 'Lisää sarake oikealle',
+ delete_column: 'Poista sarake',
+ delete_row: 'Poista rivi',
+ delete_table: 'Poista taulukko',
+ rows: 'Rivit',
+ columns: 'Sarakkeet',
+ add_head: 'Lisää otsikkorivi',
+ delete_head: 'Poista otsikkorivi',
+ title: 'Kuvateksti',
+ image_position: 'Kuvan sijainti',
+ none: 'oletus',
+ left: 'vasen',
+ right: 'oikea',
+ image_web_link: 'Kuvan URL-osoite',
+ text: 'Teksti',
+ mailto: 'Sähköposti',
+ web: 'URL-osoite',
+ video_html_code: 'Videon upotuskoodi',
+ file: 'Lisää tiedosto',
+ upload: 'Lähetä',
+ download: 'Lataa',
+ choose: 'Valitse',
+ or_choose: 'tai valitse',
+ drop_file_here: 'Vedä ja pudota kuva tähän',
+ align_left: 'Tasaa vasemmalle',
+ align_center: 'Keskitä',
+ align_right: 'Tasaa oikealle',
+ align_justify: 'Tasaa molemmat reunat',
+ horizontalrule: 'Lisää vaakaviiva',
+ deleted: 'Poistettu',
+ anchor: 'Ankkuri',
+ link_new_tab: 'Avaa linkki uudessa välilehdessä',
+ underline: 'Alleviivaa',
+ alignment: 'Tasaus',
+ filename: 'Nimi (valinnainen)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/fr.js b/static/redactor/langs/fr.js
old mode 100755
new mode 100644
index 7b71e7f..396b223
--- a/static/redactor/langs/fr.js
+++ b/static/redactor/langs/fr.js
@@ -1,74 +1,74 @@
-(function ($) {
-$.Redactor.opts.langs['fr'] = {
- html: 'Code HTML',
- video: 'Insérer une vidéo...',
- image: 'Insérer une image...',
- table: 'Tableau',
- link: 'Lien',
- link_insert: 'Insérer un lien...',
- link_edit: 'Modifier le lien',
- unlink: 'Supprimer le lien',
- formatting: 'Styles',
- paragraph: 'Paragraphe',
- quote: 'Citation',
- code: 'Code',
- header1: 'Titre 1',
- header2: 'Titre 2',
- header3: 'Titre 3',
- header4: 'Titre 4',
- header5: 'Titre 5',
- bold: 'Gras',
- italic: 'Italique',
- fontcolor: 'Couleur du texte',
- backcolor: 'Couleur d\'arrière plan du texte',
- unorderedlist: 'Liste à puces',
- orderedlist: 'Liste numérotée',
- outdent: 'Diminuer le retrait',
- indent: 'Augmenter le retrait',
- cancel: 'Annuler',
- insert: 'Insérer',
- save: 'Enregistrer',
- _delete: 'Supprimer',
- insert_table: 'Insérer un tableau...',
- insert_row_above: 'Ajouter une rangée au-dessus',
- insert_row_below: 'Ajouter une rangée en-dessous',
- insert_column_left: 'Ajouter une colonne à gauche',
- insert_column_right: 'Ajouter une colonne à droite',
- delete_column: 'Supprimer la colonne',
- delete_row: 'Supprimer la rangée',
- delete_table: 'Supprimer le tableau',
- rows: 'Rangées',
- columns: 'Colonnes',
- add_head: 'Ajouter un en-tête',
- delete_head: 'Supprimer l\'en-tête',
- title: 'Titre',
- image_position: 'Position',
- none: 'Aucun',
- left: 'Gauche',
- right: 'Droite',
- image_web_link: 'Adresse URL de l\'image',
- text: 'Texte',
- mailto: 'Courriel',
- web: 'Adresse URL',
- video_html_code: 'Code d\'intégration du video',
- file: 'Insérer un fichier...',
- upload: 'Téléverser',
- download: 'Télécharger',
- choose: 'Choisir',
- or_choose: 'Ou choisissez',
- drop_file_here: 'Déposez le fichier ici',
- align_left: 'Aligner à gauche',
- align_center: 'Aligner au centre',
- align_right: 'Aligner à droite',
- align_justify: 'Justifier',
- horizontalrule: 'Insérer une ligne horizontale',
- deleted: 'Supprimé',
- anchor: 'Ancre',
- link_new_tab: 'Ouvrir le lien dans un nouvel onglet',
- underline: 'Souligner',
- alignment: 'Alignement',
- filename: 'Nom de fichier (optionnel)',
- edit: 'Edit',
- center: 'Center'
-};
+(function ($) {
+$.Redactor.opts.langs['fr'] = {
+ html: 'Code HTML',
+ video: 'Insérer une vidéo...',
+ image: 'Insérer une image...',
+ table: 'Tableau',
+ link: 'Lien',
+ link_insert: 'Insérer un lien...',
+ link_edit: 'Modifier le lien',
+ unlink: 'Supprimer le lien',
+ formatting: 'Styles',
+ paragraph: 'Paragraphe',
+ quote: 'Citation',
+ code: 'Code',
+ header1: 'Titre 1',
+ header2: 'Titre 2',
+ header3: 'Titre 3',
+ header4: 'Titre 4',
+ header5: 'Titre 5',
+ bold: 'Gras',
+ italic: 'Italique',
+ fontcolor: 'Couleur du texte',
+ backcolor: 'Couleur d\'arrière plan du texte',
+ unorderedlist: 'Liste à puces',
+ orderedlist: 'Liste numérotée',
+ outdent: 'Diminuer le retrait',
+ indent: 'Augmenter le retrait',
+ cancel: 'Annuler',
+ insert: 'Insérer',
+ save: 'Enregistrer',
+ _delete: 'Supprimer',
+ insert_table: 'Insérer un tableau...',
+ insert_row_above: 'Ajouter une rangée au-dessus',
+ insert_row_below: 'Ajouter une rangée en-dessous',
+ insert_column_left: 'Ajouter une colonne à gauche',
+ insert_column_right: 'Ajouter une colonne à droite',
+ delete_column: 'Supprimer la colonne',
+ delete_row: 'Supprimer la rangée',
+ delete_table: 'Supprimer le tableau',
+ rows: 'Rangées',
+ columns: 'Colonnes',
+ add_head: 'Ajouter un en-tête',
+ delete_head: 'Supprimer l\'en-tête',
+ title: 'Titre',
+ image_position: 'Position',
+ none: 'Aucun',
+ left: 'Gauche',
+ right: 'Droite',
+ image_web_link: 'Adresse URL de l\'image',
+ text: 'Texte',
+ mailto: 'Courriel',
+ web: 'Adresse URL',
+ video_html_code: 'Code d\'intégration du video',
+ file: 'Insérer un fichier...',
+ upload: 'Téléverser',
+ download: 'Télécharger',
+ choose: 'Choisir',
+ or_choose: 'Ou choisissez',
+ drop_file_here: 'Déposez le fichier ici',
+ align_left: 'Aligner à gauche',
+ align_center: 'Aligner au centre',
+ align_right: 'Aligner à droite',
+ align_justify: 'Justifier',
+ horizontalrule: 'Insérer une ligne horizontale',
+ deleted: 'Supprimé',
+ anchor: 'Ancre',
+ link_new_tab: 'Ouvrir le lien dans un nouvel onglet',
+ underline: 'Souligner',
+ alignment: 'Alignement',
+ filename: 'Nom de fichier (optionnel)',
+ edit: 'Edit',
+ center: 'Center'
+};
})( jQuery );
\ No newline at end of file
diff --git a/static/redactor/langs/ge.js b/static/redactor/langs/ge.js
old mode 100755
new mode 100644
index 16a74f2..88fcddf
--- a/static/redactor/langs/ge.js
+++ b/static/redactor/langs/ge.js
@@ -1,74 +1,74 @@
-(function ($) {
-$.Redactor.opts.langs['ge'] = {
- html: 'HTML კოდი',
- video: 'ვიდეოს ჩასმა',
- image: 'სურათის ჩასმა',
- table: 'ცხრილი',
- link: 'ბმული',
- link_insert: 'ბმულის ჩასმა',
- link_edit: 'ბმულის რედაქტირება',
- unlink: 'ბმულის გაუქმება',
- formatting: 'ტექსტის ფორმატირება',
- paragraph: 'პარაგრაფი',
- quote: 'ციტატა',
- code: 'კოდი',
- header1: 'სათაური 1',
- header2: 'სათაური 2',
- header3: 'სათაური 3',
- header4: 'სათაური 4',
- header5: 'სათაური 5',
- bold: 'მსხვილი',
- italic: 'დახრილი',
- fontcolor: 'ტექსტის ფერი',
- backcolor: 'ფონის ფერი',
- unorderedlist: 'დაუნომრავი სია',
- orderedlist: 'დანომრილი სია',
- outdent: 'ტექსტის გამოწევა',
- indent: 'ტექსტის შეწევა',
- cancel: 'გაუქმება',
- insert: 'ჩასმა',
- save: 'შენახვა',
- _delete: 'წაშლა',
- insert_table: 'ცხრილის ჩასმა',
- insert_row_above: 'რიგის ზემოდან დამატება',
- insert_row_below: 'რიგის ქვემოდან დამატება',
- insert_column_left: 'სვეტის მარცხნიდან დამატება',
- insert_column_right: 'სვეტის მარჯვნიდან დამატება',
- delete_column: 'სვეტის წაშლა',
- delete_row: 'რიგის წაშლა',
- delete_table: 'ცხრილის წაშლა',
- rows: 'რიგი',
- columns: 'სვეტი',
- add_head: 'სათაურის დამატება',
- delete_head: 'სათაურის წაშლა',
- title: 'სათაური',
- image_position: 'მდებარეობა',
- none: 'არსად',
- left: 'მარცხნივ',
- right: 'მარჯვნივ',
- image_web_link: 'სურათის ვებ-მისამართი',
- text: 'ტექსტი',
- mailto: 'ელ. მისამართი',
- web: 'მისამართი',
- video_html_code: 'ვიდეოს HTML Embed კოდი',
- file: 'ფაილის ჩასმა',
- upload: 'ატვირთვა',
- download: 'ჩამოტვირთვა',
- choose: 'არჩევა',
- or_choose: 'ან აირჩიეთ',
- drop_file_here: 'ჩააგდეთ ფაილი აქ',
- align_left: 'მარცხენა მხრიდან',
- align_center: 'ცენტრში',
- align_right: 'მარჯვენა მხრიდან',
- align_justify: 'ორივე მხრიდან',
- horizontalrule: 'ჰორიზონტალური ხაზის ჩასმა',
- deleted: 'ხაზგადასმული',
- anchor: 'ბმული',
- link_new_tab: 'ახალ ფანჯარაში გასხნა',
- underline: 'ხაზგასმული',
- alignment: 'ტექსტის გასწორება',
- filename: 'სახელი (არასავალდებულო)',
- edit: 'რედაქტირება',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['ge'] = {
+ html: 'HTML კოდი',
+ video: 'ვიდეოს ჩასმა',
+ image: 'სურათის ჩასმა',
+ table: 'ცხრილი',
+ link: 'ბმული',
+ link_insert: 'ბმულის ჩასმა',
+ link_edit: 'ბმულის რედაქტირება',
+ unlink: 'ბმულის გაუქმება',
+ formatting: 'ტექსტის ფორმატირება',
+ paragraph: 'პარაგრაფი',
+ quote: 'ციტატა',
+ code: 'კოდი',
+ header1: 'სათაური 1',
+ header2: 'სათაური 2',
+ header3: 'სათაური 3',
+ header4: 'სათაური 4',
+ header5: 'სათაური 5',
+ bold: 'მსხვილი',
+ italic: 'დახრილი',
+ fontcolor: 'ტექსტის ფერი',
+ backcolor: 'ფონის ფერი',
+ unorderedlist: 'დაუნომრავი სია',
+ orderedlist: 'დანომრილი სია',
+ outdent: 'ტექსტის გამოწევა',
+ indent: 'ტექსტის შეწევა',
+ cancel: 'გაუქმება',
+ insert: 'ჩასმა',
+ save: 'შენახვა',
+ _delete: 'წაშლა',
+ insert_table: 'ცხრილის ჩასმა',
+ insert_row_above: 'რიგის ზემოდან დამატება',
+ insert_row_below: 'რიგის ქვემოდან დამატება',
+ insert_column_left: 'სვეტის მარცხნიდან დამატება',
+ insert_column_right: 'სვეტის მარჯვნიდან დამატება',
+ delete_column: 'სვეტის წაშლა',
+ delete_row: 'რიგის წაშლა',
+ delete_table: 'ცხრილის წაშლა',
+ rows: 'რიგი',
+ columns: 'სვეტი',
+ add_head: 'სათაურის დამატება',
+ delete_head: 'სათაურის წაშლა',
+ title: 'სათაური',
+ image_position: 'მდებარეობა',
+ none: 'არსად',
+ left: 'მარცხნივ',
+ right: 'მარჯვნივ',
+ image_web_link: 'სურათის ვებ-მისამართი',
+ text: 'ტექსტი',
+ mailto: 'ელ. მისამართი',
+ web: 'მისამართი',
+ video_html_code: 'ვიდეოს HTML Embed კოდი',
+ file: 'ფაილის ჩასმა',
+ upload: 'ატვირთვა',
+ download: 'ჩამოტვირთვა',
+ choose: 'არჩევა',
+ or_choose: 'ან აირჩიეთ',
+ drop_file_here: 'ჩააგდეთ ფაილი აქ',
+ align_left: 'მარცხენა მხრიდან',
+ align_center: 'ცენტრში',
+ align_right: 'მარჯვენა მხრიდან',
+ align_justify: 'ორივე მხრიდან',
+ horizontalrule: 'ჰორიზონტალური ხაზის ჩასმა',
+ deleted: 'ხაზგადასმული',
+ anchor: 'ბმული',
+ link_new_tab: 'ახალ ფანჯარაში გასხნა',
+ underline: 'ხაზგასმული',
+ alignment: 'ტექსტის გასწორება',
+ filename: 'სახელი (არასავალდებულო)',
+ edit: 'რედაქტირება',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/he.js b/static/redactor/langs/he.js
old mode 100755
new mode 100644
index 2c9a455..7fc1939
--- a/static/redactor/langs/he.js
+++ b/static/redactor/langs/he.js
@@ -1,74 +1,74 @@
-(function ($) {
-$.Redactor.opts.langs['he'] = {
- html: 'HTML',
- video: 'הכנס וידאו...',
- image: 'הכנס תמונה...',
- table: 'טבלה',
- link: 'קישור',
- link_insert: 'הכנס קישור',
- link_edit: 'Edit link',
- unlink: 'הסרת קישור',
- formatting: 'עיצוב',
- paragraph: 'פסקה',
- quote: 'ציטוט',
- code: 'קוד',
- header1: 'כותרת 1',
- header2: 'כותרת 2',
- header3: 'כותרת 3',
- header4: 'כותרת 4',
- header5: 'כותרת 5',
- bold: 'מודגש',
- italic: 'מוטה',
- fontcolor: 'צבע גופן',
- backcolor: 'צבע רקע',
- unorderedlist: 'רשימת תבליטים',
- orderedlist: 'רשימה ממוספרת',
- outdent: 'הזחה החוצה',
- indent: 'הזחה פנימה',
- cancel: 'ביטול',
- insert: 'הכנס',
- save: 'שמור',
- _delete: 'מחק',
- insert_table: 'הכנס טבלה...',
- insert_row_above: 'הוסף שורה מעל',
- insert_row_below: 'הוסף שורה מתחת',
- insert_column_left: 'הוסף עמודה משמאל',
- insert_column_right: 'הוסף עמודה מימין',
- delete_column: 'מחק עמודה',
- delete_row: 'מחק שורה',
- delete_table: 'מחק טבלה',
- rows: 'שורות',
- columns: 'עמודות',
- add_head: 'הוסף Head',
- delete_head: 'מחק Head',
- title: 'כותרת',
- image_position: 'מיקום',
- none: 'ריק',
- left: 'שמאל',
- right: 'ימין',
- image_web_link: 'קישור תמונה',
- text: 'טקסט',
- mailto: 'דואר אלקטרוני',
- web: 'URL',
- video_html_code: 'קוד הטבעת וידאו',
- file: 'הכנס קובץ...',
- upload: 'טען',
- download: 'הורד',
- choose: 'בחר',
- or_choose: 'או בחר',
- drop_file_here: 'שחרר קובץ כאן',
- align_left: 'ישר טקסט לשמאל',
- align_center: 'מרכז טקסט',
- align_right: 'ישר טקסט לימין',
- align_justify: 'ישור דו צידי',
- horizontalrule: 'הכנס קו הפרדה אופקי',
- deleted: 'נמחק',
- anchor: 'עוגן',
- link_new_tab: 'פתח קישור בלשונית חדשה',
- underline: 'קו תחתון',
- alignment: 'יישור',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['he'] = {
+ html: 'HTML',
+ video: 'הכנס וידאו...',
+ image: 'הכנס תמונה...',
+ table: 'טבלה',
+ link: 'קישור',
+ link_insert: 'הכנס קישור',
+ link_edit: 'Edit link',
+ unlink: 'הסרת קישור',
+ formatting: 'עיצוב',
+ paragraph: 'פסקה',
+ quote: 'ציטוט',
+ code: 'קוד',
+ header1: 'כותרת 1',
+ header2: 'כותרת 2',
+ header3: 'כותרת 3',
+ header4: 'כותרת 4',
+ header5: 'כותרת 5',
+ bold: 'מודגש',
+ italic: 'מוטה',
+ fontcolor: 'צבע גופן',
+ backcolor: 'צבע רקע',
+ unorderedlist: 'רשימת תבליטים',
+ orderedlist: 'רשימה ממוספרת',
+ outdent: 'הזחה החוצה',
+ indent: 'הזחה פנימה',
+ cancel: 'ביטול',
+ insert: 'הכנס',
+ save: 'שמור',
+ _delete: 'מחק',
+ insert_table: 'הכנס טבלה...',
+ insert_row_above: 'הוסף שורה מעל',
+ insert_row_below: 'הוסף שורה מתחת',
+ insert_column_left: 'הוסף עמודה משמאל',
+ insert_column_right: 'הוסף עמודה מימין',
+ delete_column: 'מחק עמודה',
+ delete_row: 'מחק שורה',
+ delete_table: 'מחק טבלה',
+ rows: 'שורות',
+ columns: 'עמודות',
+ add_head: 'הוסף Head',
+ delete_head: 'מחק Head',
+ title: 'כותרת',
+ image_position: 'מיקום',
+ none: 'ריק',
+ left: 'שמאל',
+ right: 'ימין',
+ image_web_link: 'קישור תמונה',
+ text: 'טקסט',
+ mailto: 'דואר אלקטרוני',
+ web: 'URL',
+ video_html_code: 'קוד הטבעת וידאו',
+ file: 'הכנס קובץ...',
+ upload: 'טען',
+ download: 'הורד',
+ choose: 'בחר',
+ or_choose: 'או בחר',
+ drop_file_here: 'שחרר קובץ כאן',
+ align_left: 'ישר טקסט לשמאל',
+ align_center: 'מרכז טקסט',
+ align_right: 'ישר טקסט לימין',
+ align_justify: 'ישור דו צידי',
+ horizontalrule: 'הכנס קו הפרדה אופקי',
+ deleted: 'נמחק',
+ anchor: 'עוגן',
+ link_new_tab: 'פתח קישור בלשונית חדשה',
+ underline: 'קו תחתון',
+ alignment: 'יישור',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/hr.js b/static/redactor/langs/hr.js
old mode 100755
new mode 100644
index 4eeb55e..d534735
--- a/static/redactor/langs/hr.js
+++ b/static/redactor/langs/hr.js
@@ -1,75 +1,75 @@
-(function($) {
- $.Redactor.opts.langs['hr'] = {
- html: 'HTML',
- video: 'Umetni video',
- image: 'Umetni sliku',
- table: 'Tablica',
- link: 'Poveznica',
- link_insert: 'Umetni poveznicu',
- link_edit: 'Uredi poveznicu',
- unlink: 'Ukloni poveznicu',
- formatting: 'Uređivanje',
- paragraph: 'Paragraf',
- quote: 'Umetni citat',
- code: 'Izvorni kôd',
- header1: 'Zaglavlje 1',
- header2: 'Zaglavlje 2',
- header3: 'Zaglavlje 3',
- header4: 'Zaglavlje 4',
- header5: 'Zaglavlje 5',
- bold: 'Podebljaj',
- italic: 'Nakosi',
- fontcolor: 'Boja slova',
- backcolor: 'Boja pozadine',
- unorderedlist: 'Nesortirana lista',
- orderedlist: 'Sortirana lista',
- outdent: 'Izvuci',
- indent: 'Uvuci',
- cancel: 'Odustani',
- insert: 'Umetni',
- save: 'Spremi',
- _delete: 'Izbriši',
- insert_table: 'Umetni tablicu',
- insert_row_above: 'Dodaj redak iznad',
- insert_row_below: 'Dodaj redak ispod',
- insert_column_left: 'Dodaj stupac lijevo',
- insert_column_right: 'Dodaj stupac desno',
- delete_column: 'Ukloni stupac',
- delete_row: 'Ukloni redak',
- delete_table: 'Ukloni tablicu',
- rows: 'Redaka',
- columns: 'Stupaca',
- add_head: 'Dodaj zaglavlje',
- delete_head: 'Ukloni zaglavlje',
- title: 'Naslov',
- image_position: 'Poravnanje',
- none: 'Nema',
- left: 'lijevo',
- right: 'desno',
- center: 'centriraj',
- image_web_link: 'Internet adresa slike',
- text: 'Tekst',
- mailto: 'Email',
- web: 'Internet adresa',
- video_html_code: 'Video kôd',
- file: 'Umetni datoteku',
- upload: 'Pošalji datoteku',
- download: 'Preuzmi datoteku',
- choose: 'Odaberi',
- or_choose: 'ili ručno odaberi',
- drop_file_here: 'Povuci datoteku ovdje',
- align_left: 'Poravnaj lijevo',
- align_center: 'Centriraj',
- align_right: 'Poravnaj desno',
- align_justify: 'Od ruba do ruba',
- horizontalrule: 'Umetni horizontalnu crtu',
- deleted: 'Precrtaj',
- anchor: 'Sidro',
- link_new_tab: 'Otvori u novom prozoru',
- underline: 'Podvuci',
- alignment: 'Poravnanje',
- filename: 'Naziv (neobavezno)',
- edit: 'Uredi',
- fullscreen: 'Cijeli zaslon'
- };
+(function($) {
+ $.Redactor.opts.langs['hr'] = {
+ html: 'HTML',
+ video: 'Umetni video',
+ image: 'Umetni sliku',
+ table: 'Tablica',
+ link: 'Poveznica',
+ link_insert: 'Umetni poveznicu',
+ link_edit: 'Uredi poveznicu',
+ unlink: 'Ukloni poveznicu',
+ formatting: 'Uređivanje',
+ paragraph: 'Paragraf',
+ quote: 'Umetni citat',
+ code: 'Izvorni kôd',
+ header1: 'Zaglavlje 1',
+ header2: 'Zaglavlje 2',
+ header3: 'Zaglavlje 3',
+ header4: 'Zaglavlje 4',
+ header5: 'Zaglavlje 5',
+ bold: 'Podebljaj',
+ italic: 'Nakosi',
+ fontcolor: 'Boja slova',
+ backcolor: 'Boja pozadine',
+ unorderedlist: 'Nesortirana lista',
+ orderedlist: 'Sortirana lista',
+ outdent: 'Izvuci',
+ indent: 'Uvuci',
+ cancel: 'Odustani',
+ insert: 'Umetni',
+ save: 'Spremi',
+ _delete: 'Izbriši',
+ insert_table: 'Umetni tablicu',
+ insert_row_above: 'Dodaj redak iznad',
+ insert_row_below: 'Dodaj redak ispod',
+ insert_column_left: 'Dodaj stupac lijevo',
+ insert_column_right: 'Dodaj stupac desno',
+ delete_column: 'Ukloni stupac',
+ delete_row: 'Ukloni redak',
+ delete_table: 'Ukloni tablicu',
+ rows: 'Redaka',
+ columns: 'Stupaca',
+ add_head: 'Dodaj zaglavlje',
+ delete_head: 'Ukloni zaglavlje',
+ title: 'Naslov',
+ image_position: 'Poravnanje',
+ none: 'Nema',
+ left: 'lijevo',
+ right: 'desno',
+ center: 'centriraj',
+ image_web_link: 'Internet adresa slike',
+ text: 'Tekst',
+ mailto: 'Email',
+ web: 'Internet adresa',
+ video_html_code: 'Video kôd',
+ file: 'Umetni datoteku',
+ upload: 'Pošalji datoteku',
+ download: 'Preuzmi datoteku',
+ choose: 'Odaberi',
+ or_choose: 'ili ručno odaberi',
+ drop_file_here: 'Povuci datoteku ovdje',
+ align_left: 'Poravnaj lijevo',
+ align_center: 'Centriraj',
+ align_right: 'Poravnaj desno',
+ align_justify: 'Od ruba do ruba',
+ horizontalrule: 'Umetni horizontalnu crtu',
+ deleted: 'Precrtaj',
+ anchor: 'Sidro',
+ link_new_tab: 'Otvori u novom prozoru',
+ underline: 'Podvuci',
+ alignment: 'Poravnanje',
+ filename: 'Naziv (neobavezno)',
+ edit: 'Uredi',
+ fullscreen: 'Cijeli zaslon'
+ };
})(jQuery);
\ No newline at end of file
diff --git a/static/redactor/langs/hu.js b/static/redactor/langs/hu.js
old mode 100755
new mode 100644
index 694e2a1..fbab73f
--- a/static/redactor/langs/hu.js
+++ b/static/redactor/langs/hu.js
@@ -1,76 +1,76 @@
-(function ($) {
-$.Redactor.opts.langs['hu'] = {
- html: 'HTML',
- video: 'Videó',
- image: 'Kép',
- table: 'Tábla',
- link: 'Link',
- link_insert: 'Link beszúrás ...',
- link_edit: 'Edit link',
- unlink: 'Link megszüntetés',
- formatting: 'Stílusok',
- paragraph: 'Bekezdés',
- quote: 'Idézet',
- code: 'Kód',
- header1: 'Címsor 1',
- header2: 'Címsor 2',
- header3: 'Címsor 3',
- header4: 'Címsor 4',
- header5: 'Címsor 5',
- bold: 'Félkövér',
- italic: 'Dőlt',
- fontcolor: 'Szöveg szine',
- backcolor: 'Szöveg hátterének szine',
- unorderedlist: 'Nem számozott lista',
- orderedlist: 'Számozott lista',
- outdent: 'Outdent',
- indent: 'Indent',
- cancel: 'Mégsem',
- insert: 'Beszurás',
- save: 'Mentés',
- _delete: 'Törlés',
- insert_table: 'Táblázat beszúrása',
- insert_row_above: 'Sor beszúrása az aktuális sor fölé',
- insert_row_below: 'Sor beszúrása ez alá',
- insert_column_left: 'Oszlop beszúrása ettöl balra',
- insert_column_right: 'Oszlop hozzáadása ettöl jobbra',
- delete_column: 'Oszlop törlése',
- delete_row: 'Sor törlése',
- delete_table: 'Táblázat törlése',
- rows: 'Sorok',
- columns: 'Oszlopok',
- add_head: 'Fejrész hozzáadása',
- delete_head: 'Fejrész törlése',
- title: 'Felira',
- image_view: 'Kép megnézése',
- image_position: 'Pozició',
- none: 'nincs',
- left: 'bal',
- right: 'jobb',
- image_web_link: 'Link a képre',
- text: 'Szöveg',
- mailto: 'Email',
- web: 'URL',
- video_html_code: 'Videó embed code',
- file: 'File',
- upload: 'Feltöltés',
- download: 'Letöltés',
- choose: 'Válassz',
- or_choose: 'Vagy válassz',
- drop_file_here: 'Ide dobd a file-t',
- align_left: 'Balra igazítás',
- align_center: 'Középre igazítás',
- align_right: 'Jobbra igazítás',
- align_justify: 'Sorkizárt',
- horizontalrule: 'Horizontális vonal',
- fullscreen: 'Teljes képernyős',
- deleted: 'Törölt',
- anchor: 'Horgony',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['hu'] = {
+ html: 'HTML',
+ video: 'Videó',
+ image: 'Kép',
+ table: 'Tábla',
+ link: 'Link',
+ link_insert: 'Link beszúrás ...',
+ link_edit: 'Edit link',
+ unlink: 'Link megszüntetés',
+ formatting: 'Stílusok',
+ paragraph: 'Bekezdés',
+ quote: 'Idézet',
+ code: 'Kód',
+ header1: 'Címsor 1',
+ header2: 'Címsor 2',
+ header3: 'Címsor 3',
+ header4: 'Címsor 4',
+ header5: 'Címsor 5',
+ bold: 'Félkövér',
+ italic: 'Dőlt',
+ fontcolor: 'Szöveg szine',
+ backcolor: 'Szöveg hátterének szine',
+ unorderedlist: 'Nem számozott lista',
+ orderedlist: 'Számozott lista',
+ outdent: 'Outdent',
+ indent: 'Indent',
+ cancel: 'Mégsem',
+ insert: 'Beszurás',
+ save: 'Mentés',
+ _delete: 'Törlés',
+ insert_table: 'Táblázat beszúrása',
+ insert_row_above: 'Sor beszúrása az aktuális sor fölé',
+ insert_row_below: 'Sor beszúrása ez alá',
+ insert_column_left: 'Oszlop beszúrása ettöl balra',
+ insert_column_right: 'Oszlop hozzáadása ettöl jobbra',
+ delete_column: 'Oszlop törlése',
+ delete_row: 'Sor törlése',
+ delete_table: 'Táblázat törlése',
+ rows: 'Sorok',
+ columns: 'Oszlopok',
+ add_head: 'Fejrész hozzáadása',
+ delete_head: 'Fejrész törlése',
+ title: 'Felira',
+ image_view: 'Kép megnézése',
+ image_position: 'Pozició',
+ none: 'nincs',
+ left: 'bal',
+ right: 'jobb',
+ image_web_link: 'Link a képre',
+ text: 'Szöveg',
+ mailto: 'Email',
+ web: 'URL',
+ video_html_code: 'Videó embed code',
+ file: 'File',
+ upload: 'Feltöltés',
+ download: 'Letöltés',
+ choose: 'Válassz',
+ or_choose: 'Vagy válassz',
+ drop_file_here: 'Ide dobd a file-t',
+ align_left: 'Balra igazítás',
+ align_center: 'Középre igazítás',
+ align_right: 'Jobbra igazítás',
+ align_justify: 'Sorkizárt',
+ horizontalrule: 'Horizontális vonal',
+ fullscreen: 'Teljes képernyős',
+ deleted: 'Törölt',
+ anchor: 'Horgony',
+ link_new_tab: 'Open link in new tab',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/id.js b/static/redactor/langs/id.js
old mode 100755
new mode 100644
index ea9dd82..d67b146
--- a/static/redactor/langs/id.js
+++ b/static/redactor/langs/id.js
@@ -1,75 +1,75 @@
-(function ($) {
-$.Redactor.opts.langs['id'] = {
- html: 'HTML',
- video: 'Sisipkan Video...',
- image: 'Sisipkan Gambar...',
- table: 'Tabel',
- link: 'Tautan',
- link_insert: 'Sisipkan Tautan ...',
- link_edit: 'Edit link',
- unlink: 'Hapus Tautan',
- formatting: 'Format',
- paragraph: 'Paragraf',
- quote: 'Kutipan',
- code: 'Kode',
- header1: 'Header 1',
- header2: 'Header 2',
- header3: 'Header 3',
- header4: 'Header 4',
- header5: 'Header 5',
- bold: 'Tebal',
- italic: 'Miring',
- fontcolor: 'Warna Huruf',
- backcolor: 'Warna Latar',
- unorderedlist: 'Daftar tak berurutan',
- orderedlist: 'Daftar berurutan',
- outdent: 'Tulisan diluar',
- indent: 'Tulisan masuk',
- cancel: 'Batal',
- insert: 'Sisipkan',
- save: 'Simpan',
- _delete: 'Hapus',
- insert_table: 'Sisipkan Tabel...',
- insert_row_above: 'Tambahkan Baris di atas',
- insert_row_below: 'Tambahkan Baris di bawah',
- insert_column_left: 'Tambahkan Kolom di kiri',
- insert_column_right: 'Tambahkan Kolom di kanan',
- delete_column: 'Hapus Kolom',
- delete_row: 'Hapus Baris',
- delete_table: 'Hapus Tabel',
- rows: 'Baris',
- columns: 'Kolom',
- add_head: 'Tambahkan Head',
- delete_head: 'Hapus Head',
- title: 'Judul',
- image_position: 'Posisi',
- none: 'Kosong',
- left: 'Kiri',
- right: 'Kanan',
- image_web_link: 'Tautan Gambar Web',
- text: 'Teks',
- mailto: 'Email',
- web: 'URL',
- video_html_code: 'Kode pelekatan video',
- file: 'Sisipkan Berkas...',
- upload: 'Unggah',
- download: 'Unduh',
- choose: 'Pilih',
- or_choose: 'Atau pilih',
- drop_file_here: 'Letakkan berkas disini',
- align_left: 'Rata Kiri',
- align_center: 'Rata Tengah',
- align_right: 'Rata Kanan',
- align_justify: 'Rata Kiri dan Kanan',
- horizontalrule: 'Sisipkan garis horizontal',
- fullscreen: 'Layar penuh',
- deleted: 'Coret',
- anchor: 'Jangkar',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['id'] = {
+ html: 'HTML',
+ video: 'Sisipkan Video...',
+ image: 'Sisipkan Gambar...',
+ table: 'Tabel',
+ link: 'Tautan',
+ link_insert: 'Sisipkan Tautan ...',
+ link_edit: 'Edit link',
+ unlink: 'Hapus Tautan',
+ formatting: 'Format',
+ paragraph: 'Paragraf',
+ quote: 'Kutipan',
+ code: 'Kode',
+ header1: 'Header 1',
+ header2: 'Header 2',
+ header3: 'Header 3',
+ header4: 'Header 4',
+ header5: 'Header 5',
+ bold: 'Tebal',
+ italic: 'Miring',
+ fontcolor: 'Warna Huruf',
+ backcolor: 'Warna Latar',
+ unorderedlist: 'Daftar tak berurutan',
+ orderedlist: 'Daftar berurutan',
+ outdent: 'Tulisan diluar',
+ indent: 'Tulisan masuk',
+ cancel: 'Batal',
+ insert: 'Sisipkan',
+ save: 'Simpan',
+ _delete: 'Hapus',
+ insert_table: 'Sisipkan Tabel...',
+ insert_row_above: 'Tambahkan Baris di atas',
+ insert_row_below: 'Tambahkan Baris di bawah',
+ insert_column_left: 'Tambahkan Kolom di kiri',
+ insert_column_right: 'Tambahkan Kolom di kanan',
+ delete_column: 'Hapus Kolom',
+ delete_row: 'Hapus Baris',
+ delete_table: 'Hapus Tabel',
+ rows: 'Baris',
+ columns: 'Kolom',
+ add_head: 'Tambahkan Head',
+ delete_head: 'Hapus Head',
+ title: 'Judul',
+ image_position: 'Posisi',
+ none: 'Kosong',
+ left: 'Kiri',
+ right: 'Kanan',
+ image_web_link: 'Tautan Gambar Web',
+ text: 'Teks',
+ mailto: 'Email',
+ web: 'URL',
+ video_html_code: 'Kode pelekatan video',
+ file: 'Sisipkan Berkas...',
+ upload: 'Unggah',
+ download: 'Unduh',
+ choose: 'Pilih',
+ or_choose: 'Atau pilih',
+ drop_file_here: 'Letakkan berkas disini',
+ align_left: 'Rata Kiri',
+ align_center: 'Rata Tengah',
+ align_right: 'Rata Kanan',
+ align_justify: 'Rata Kiri dan Kanan',
+ horizontalrule: 'Sisipkan garis horizontal',
+ fullscreen: 'Layar penuh',
+ deleted: 'Coret',
+ anchor: 'Jangkar',
+ link_new_tab: 'Open link in new tab',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/it.js b/static/redactor/langs/it.js
old mode 100755
new mode 100644
index 695b0ed..2f85764
--- a/static/redactor/langs/it.js
+++ b/static/redactor/langs/it.js
@@ -1,77 +1,77 @@
-(function ($) {
-$.Redactor.opts.langs['it'] = {
- html: 'HTML',
- video: 'Video',
- image: 'Immagine',
- table: 'Tabella',
- link: 'Collegamento',
- link_insert: 'Inserisci un collegamento ...',
- link_edit: 'Modifica link',
- unlink: 'Rimuovi il collegamento',
- formatting: 'Stili',
- paragraph: 'Paragrafo',
- quote: 'Citazione',
- code: 'Codice',
- header1: 'H1',
- header2: 'H2',
- header3: 'H3',
- header4: 'H4',
- header5: 'H5',
- bold: 'Grassetto',
- italic: 'Corsivo',
- superscript: 'Apice',
- strikethrough: 'Barrato',
- fontcolor: 'Colore del font',
- backcolor: 'Colore di sfondo',
- unorderedlist: 'Elenco puntato',
- orderedlist: 'Elenco numerato',
- outdent: 'Rimuovi rientro',
- indent: 'Aumenta rientro',
- cancel: 'Annulla',
- insert: 'Inserisci',
- save: 'Salva',
- _delete: 'rimuovi',
- insert_table: 'Inserisci tabella',
- insert_row_above: 'Inserisci una riga sopra',
- insert_row_below: 'Inserisci una riga sotto',
- insert_column_left: 'Aggiungi una colonna a sinistra',
- insert_column_right: 'Aggiungi una colonna a destra',
- delete_column: 'Cancella colonna',
- delete_row: 'Cancella riga',
- delete_table: 'Cancella tabella',
- rows: 'Righe',
- columns: 'Colonne',
- add_head: 'Aggiungi head',
- delete_head: 'Cancella head',
- title: 'Titolo',
- image_position: 'Posizione',
- none: 'Nessuno',
- left: 'Sinistra',
- right: 'Destra',
- image_web_link: 'URL immagine',
- text: 'Testo',
- mailto: 'Email',
- web: 'URL',
- video_html_code: 'Codice da incorporare',
- file: 'File',
- upload: 'Upload',
- download: 'Download',
- choose: 'Scegli',
- or_choose: 'O Scegli',
- drop_file_here: 'Trascina il file qui',
- align_left: 'Allinea a sinistra',
- align_center: 'Allinea al centro',
- align_right: 'Allinea a destra',
- align_justify: 'Giustifica',
- horizontalrule: 'Riga orizzonatale',
- fullscreen: 'Schermo intero',
- deleted: 'Cancellato',
- anchor: 'Ancora',
- link_new_tab: 'Apri link in una nuova tab',
- underline: 'Sottolineato',
- alignment: 'Allineamento',
- filename: 'Nome (opzionale)',
- edit: 'Modifica',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['it'] = {
+ html: 'HTML',
+ video: 'Video',
+ image: 'Immagine',
+ table: 'Tabella',
+ link: 'Collegamento',
+ link_insert: 'Inserisci un collegamento ...',
+ link_edit: 'Modifica link',
+ unlink: 'Rimuovi il collegamento',
+ formatting: 'Stili',
+ paragraph: 'Paragrafo',
+ quote: 'Citazione',
+ code: 'Codice',
+ header1: 'H1',
+ header2: 'H2',
+ header3: 'H3',
+ header4: 'H4',
+ header5: 'H5',
+ bold: 'Grassetto',
+ italic: 'Corsivo',
+ superscript: 'Apice',
+ strikethrough: 'Barrato',
+ fontcolor: 'Colore del font',
+ backcolor: 'Colore di sfondo',
+ unorderedlist: 'Elenco puntato',
+ orderedlist: 'Elenco numerato',
+ outdent: 'Rimuovi rientro',
+ indent: 'Aumenta rientro',
+ cancel: 'Annulla',
+ insert: 'Inserisci',
+ save: 'Salva',
+ _delete: 'rimuovi',
+ insert_table: 'Inserisci tabella',
+ insert_row_above: 'Inserisci una riga sopra',
+ insert_row_below: 'Inserisci una riga sotto',
+ insert_column_left: 'Aggiungi una colonna a sinistra',
+ insert_column_right: 'Aggiungi una colonna a destra',
+ delete_column: 'Cancella colonna',
+ delete_row: 'Cancella riga',
+ delete_table: 'Cancella tabella',
+ rows: 'Righe',
+ columns: 'Colonne',
+ add_head: 'Aggiungi head',
+ delete_head: 'Cancella head',
+ title: 'Titolo',
+ image_position: 'Posizione',
+ none: 'Nessuno',
+ left: 'Sinistra',
+ right: 'Destra',
+ image_web_link: 'URL immagine',
+ text: 'Testo',
+ mailto: 'Email',
+ web: 'URL',
+ video_html_code: 'Codice da incorporare',
+ file: 'File',
+ upload: 'Upload',
+ download: 'Download',
+ choose: 'Scegli',
+ or_choose: 'O Scegli',
+ drop_file_here: 'Trascina il file qui',
+ align_left: 'Allinea a sinistra',
+ align_center: 'Allinea al centro',
+ align_right: 'Allinea a destra',
+ align_justify: 'Giustifica',
+ horizontalrule: 'Riga orizzonatale',
+ fullscreen: 'Schermo intero',
+ deleted: 'Cancellato',
+ anchor: 'Ancora',
+ link_new_tab: 'Apri link in una nuova tab',
+ underline: 'Sottolineato',
+ alignment: 'Allineamento',
+ filename: 'Nome (opzionale)',
+ edit: 'Modifica',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/ja.js b/static/redactor/langs/ja.js
old mode 100755
new mode 100644
index ea1324b..42fe92b
--- a/static/redactor/langs/ja.js
+++ b/static/redactor/langs/ja.js
@@ -1,75 +1,75 @@
-(function ($) {
-$.Redactor.opts.langs['ja'] = {
- html: 'HTML',
- video: 'ビデオ',
- image: 'イメージ',
- table: 'テーブル',
- link: 'リンク',
- link_insert: 'リンクの挿入 ...',
- link_edit: 'Edit link',
- unlink: 'リンクを外す',
- formatting: 'スタイル',
- paragraph: '段落',
- quote: '引用',
- code: 'コード',
- header1: 'ヘッダー 1',
- header2: 'ヘッダー 2',
- header3: 'ヘッダー 3',
- header4: 'ヘッダー 4',
- header5: 'ヘッダー 5',
- bold: '太字',
- italic: 'イタリック',
- fontcolor: 'フォント色',
- backcolor: '背景色',
- unorderedlist: '番号なしリスト',
- orderedlist: '番号つきリスト',
- outdent: '字上げ(逆インデント)',
- indent: '字下げ(インデント)',
- cancel: 'キャンセル',
- insert: '挿入',
- save: '保存',
- _delete: '削除',
- insert_table: 'テーブルの挿入',
- insert_row_above: '列を上に追加',
- insert_row_below: '列を下に追加',
- insert_column_left: '行を左に追加',
- insert_column_right: '行を右に追加',
- delete_column: '行を削除',
- delete_row: '列を削除',
- delete_table: 'テーブルを削除',
- rows: '列',
- columns: '行',
- add_head: 'テーブルヘッダの追加',
- delete_head: 'テーブルヘッダの削除',
- title: 'タイトル',
- image_position: 'イメージの位置',
- none: '無し',
- left: '左',
- right: '右',
- image_web_link: 'イメージへのリンク',
- text: 'テキスト',
- mailto: 'メール',
- web: 'URL',
- video_html_code: 'ビデオ埋め込みコード',
- file: 'ファイル',
- upload: 'アップロード',
- download: 'ダウンロード',
- choose: '選択',
- or_choose: 'または選択',
- drop_file_here: 'ファイルをここにドロップ',
- align_left: '左揃え',
- align_center: '中央揃え',
- align_right: '右揃え',
- align_justify: '均等割り付け',
- horizontalrule: '水平線',
- fullscreen: '全画面',
- deleted: '打消し',
- anchor: 'アンカー',
- link_new_tab: '新しいタブでリンクを開く',
- underline: 'アンダーライン',
- alignment: '行揃え',
- filename: '名前(オプション)',
- edit: '編集',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['ja'] = {
+ html: 'HTML',
+ video: 'ビデオ',
+ image: 'イメージ',
+ table: 'テーブル',
+ link: 'リンク',
+ link_insert: 'リンクの挿入 ...',
+ link_edit: 'Edit link',
+ unlink: 'リンクを外す',
+ formatting: 'スタイル',
+ paragraph: '段落',
+ quote: '引用',
+ code: 'コード',
+ header1: 'ヘッダー 1',
+ header2: 'ヘッダー 2',
+ header3: 'ヘッダー 3',
+ header4: 'ヘッダー 4',
+ header5: 'ヘッダー 5',
+ bold: '太字',
+ italic: 'イタリック',
+ fontcolor: 'フォント色',
+ backcolor: '背景色',
+ unorderedlist: '番号なしリスト',
+ orderedlist: '番号つきリスト',
+ outdent: '字上げ(逆インデント)',
+ indent: '字下げ(インデント)',
+ cancel: 'キャンセル',
+ insert: '挿入',
+ save: '保存',
+ _delete: '削除',
+ insert_table: 'テーブルの挿入',
+ insert_row_above: '列を上に追加',
+ insert_row_below: '列を下に追加',
+ insert_column_left: '行を左に追加',
+ insert_column_right: '行を右に追加',
+ delete_column: '行を削除',
+ delete_row: '列を削除',
+ delete_table: 'テーブルを削除',
+ rows: '列',
+ columns: '行',
+ add_head: 'テーブルヘッダの追加',
+ delete_head: 'テーブルヘッダの削除',
+ title: 'タイトル',
+ image_position: 'イメージの位置',
+ none: '無し',
+ left: '左',
+ right: '右',
+ image_web_link: 'イメージへのリンク',
+ text: 'テキスト',
+ mailto: 'メール',
+ web: 'URL',
+ video_html_code: 'ビデオ埋め込みコード',
+ file: 'ファイル',
+ upload: 'アップロード',
+ download: 'ダウンロード',
+ choose: '選択',
+ or_choose: 'または選択',
+ drop_file_here: 'ファイルをここにドロップ',
+ align_left: '左揃え',
+ align_center: '中央揃え',
+ align_right: '右揃え',
+ align_justify: '均等割り付け',
+ horizontalrule: '水平線',
+ fullscreen: '全画面',
+ deleted: '打消し',
+ anchor: 'アンカー',
+ link_new_tab: '新しいタブでリンクを開く',
+ underline: 'アンダーライン',
+ alignment: '行揃え',
+ filename: '名前(オプション)',
+ edit: '編集',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/ko.js b/static/redactor/langs/ko.js
old mode 100755
new mode 100644
index 03e0258..f6ca3a3
--- a/static/redactor/langs/ko.js
+++ b/static/redactor/langs/ko.js
@@ -1,75 +1,75 @@
-(function ($) {
-$.Redactor.opts.langs['ko'] = {
- html: 'HTML',
- video: '비디오',
- image: '이미지',
- table: '표',
- link: '링크',
- link_insert: '링크 삽입',
- link_edit: '링크 편집',
- unlink: '링크 삭제',
- formatting: '스타일',
- paragraph: '단락',
- quote: '인용',
- code: '코드',
- header1: '헤더 1',
- header2: '헤더 2',
- header3: '헤더 3',
- header4: '헤더 4',
- header5: '헤더 5',
- bold: '굵게',
- italic: '기울임꼴',
- fontcolor: '글자색',
- backcolor: '배경색',
- unorderedlist: '글머리기호',
- orderedlist: '번호매기기',
- outdent: '내어쓰기',
- indent: '들여쓰기',
- cancel: '취소',
- insert: '삽입',
- save: '저장',
- _delete: '삭제',
- insert_table: '표 삽입',
- insert_row_above: '열을 위에 추가',
- insert_row_below: '열을 아래에 추가',
- insert_column_left: '행을 왼쪽에 추가',
- insert_column_right: '행을 오른쪽에 추가',
- delete_column: '컬럼 삭제',
- delete_row: '행 삭제',
- delete_table: '표 삭제',
- rows: '행',
- columns: '열',
- add_head: '표 헤더 추가',
- delete_head: '표 헤더 체거',
- title: '제목',
- image_position: '이미지 위치',
- none: '없음',
- left: '왼쪽',
- right: '오른쪽',
- image_web_link: '이미지 링크',
- text: '텍스트',
- mailto: '메일',
- web: 'URL',
- video_html_code: '비디오 삽입(embed) 코드',
- file: '파일',
- upload: '업로드',
- download: '다운로드',
- choose: '선택',
- or_choose: '또는 선택',
- drop_file_here: '파일을 여기에 떨굼',
- align_left: '왼쪽정렬',
- align_center: '가운데정렬',
- align_right: '오른쪽정렬',
- align_justify: '가지런히정렬',
- horizontalrule: '수평선',
- fullscreen: '전체화면',
- deleted: '취소선',
- anchor: '링크',
- link_new_tab: '새로운 탭에서 링크 열기',
- underline: '밑줄',
- alignment: '정렬',
- filename: '파일명 (선택)',
- edit: '편집',
- center: 'Center'
-};
+(function ($) {
+$.Redactor.opts.langs['ko'] = {
+ html: 'HTML',
+ video: '비디오',
+ image: '이미지',
+ table: '표',
+ link: '링크',
+ link_insert: '링크 삽입',
+ link_edit: '링크 편집',
+ unlink: '링크 삭제',
+ formatting: '스타일',
+ paragraph: '단락',
+ quote: '인용',
+ code: '코드',
+ header1: '헤더 1',
+ header2: '헤더 2',
+ header3: '헤더 3',
+ header4: '헤더 4',
+ header5: '헤더 5',
+ bold: '굵게',
+ italic: '기울임꼴',
+ fontcolor: '글자색',
+ backcolor: '배경색',
+ unorderedlist: '글머리기호',
+ orderedlist: '번호매기기',
+ outdent: '내어쓰기',
+ indent: '들여쓰기',
+ cancel: '취소',
+ insert: '삽입',
+ save: '저장',
+ _delete: '삭제',
+ insert_table: '표 삽입',
+ insert_row_above: '열을 위에 추가',
+ insert_row_below: '열을 아래에 추가',
+ insert_column_left: '행을 왼쪽에 추가',
+ insert_column_right: '행을 오른쪽에 추가',
+ delete_column: '컬럼 삭제',
+ delete_row: '행 삭제',
+ delete_table: '표 삭제',
+ rows: '행',
+ columns: '열',
+ add_head: '표 헤더 추가',
+ delete_head: '표 헤더 체거',
+ title: '제목',
+ image_position: '이미지 위치',
+ none: '없음',
+ left: '왼쪽',
+ right: '오른쪽',
+ image_web_link: '이미지 링크',
+ text: '텍스트',
+ mailto: '메일',
+ web: 'URL',
+ video_html_code: '비디오 삽입(embed) 코드',
+ file: '파일',
+ upload: '업로드',
+ download: '다운로드',
+ choose: '선택',
+ or_choose: '또는 선택',
+ drop_file_here: '파일을 여기에 떨굼',
+ align_left: '왼쪽정렬',
+ align_center: '가운데정렬',
+ align_right: '오른쪽정렬',
+ align_justify: '가지런히정렬',
+ horizontalrule: '수평선',
+ fullscreen: '전체화면',
+ deleted: '취소선',
+ anchor: '링크',
+ link_new_tab: '새로운 탭에서 링크 열기',
+ underline: '밑줄',
+ alignment: '정렬',
+ filename: '파일명 (선택)',
+ edit: '편집',
+ center: 'Center'
+};
})( jQuery );
\ No newline at end of file
diff --git a/static/redactor/langs/lt.js b/static/redactor/langs/lt.js
old mode 100755
new mode 100644
index 721ca1a..d664887
--- a/static/redactor/langs/lt.js
+++ b/static/redactor/langs/lt.js
@@ -1,74 +1,74 @@
-(function ($) {
-$.Redactor.opts.langs['lt'] = {
- html: 'HTML',
- video: 'Įkelti video...',
- image: 'Įkelti paveiksliuką...',
- table: 'Lentelė',
- link: 'Nuoroda',
- link_insert: 'Įtraukti nuorodą ...',
- link_edit: 'Edit link',
- unlink: 'Panaikinti nuorodą',
- formatting: 'Formatavimas',
- paragraph: 'Paragrafas',
- quote: 'Citata',
- code: 'Išnaša',
- header1: 'Antraštė 1',
- header2: 'Antraštė 2',
- header3: 'Antraštė 3',
- header4: 'Antraštė 4',
- header5: 'Antraštė 5',
- bold: 'Ryškus',
- italic: 'Pasviras',
- fontcolor: 'Teksto spalva',
- backcolor: 'Fono spalva',
- unorderedlist: 'Sąrašas',
- orderedlist: 'Numeruotas sąrašas',
- outdent: 'Pritraukti',
- indent: 'Atitraukti',
- cancel: 'Atšaukti',
- insert: 'Įterpti',
- save: 'Išsaugoti',
- _delete: 'Ištrinti',
- insert_table: 'Įtraukti lentelę...',
- insert_row_above: 'Įterpti eilutę virš',
- insert_row_below: 'Įterpti eilutę po',
- insert_column_left: 'Įterpti stulpelį kairiau',
- insert_column_right: 'Įterpti stulpelį dešiniau',
- delete_column: 'Ištrinti stulpelį',
- delete_row: 'Ištrinti eilutę',
- delete_table: 'Ištrinti lentelę',
- rows: 'Eilutės',
- columns: 'Stulpeliai',
- add_head: 'Įterpti rubriką',
- delete_head: 'Ištrinti rubriką',
- title: 'Pavadinimas',
- image_position: 'Pozicija',
- none: 'Nėra',
- left: 'Kairė',
- right: 'Dešinė',
- image_web_link: 'Nuoroda į paveiksliuką',
- text: 'Tekstas',
- mailto: 'El. paštas',
- web: 'Nuoroda',
- video_html_code: 'Video įterpimo kodas',
- file: 'Įterpti bylą...',
- upload: 'Įkelti',
- download: 'Parsisiųsti',
- choose: 'Pasirinkti',
- or_choose: 'Arba pasirinkti',
- drop_file_here: 'Mesti failą čia',
- align_left: 'Lygiuoti iš kairės',
- align_center: 'Centruoti',
- align_right: 'Lygiuoti iš dešinės',
- align_justify: 'Išlyginti eilutes',
- horizontalrule: 'Įterpti horizontalią liniją',
- deleted: 'Ištrinta',
- anchor: 'Žymė',
- link_new_tab: 'Atidaryti nuorodą naujame lange',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['lt'] = {
+ html: 'HTML',
+ video: 'Įkelti video...',
+ image: 'Įkelti paveiksliuką...',
+ table: 'Lentelė',
+ link: 'Nuoroda',
+ link_insert: 'Įtraukti nuorodą ...',
+ link_edit: 'Edit link',
+ unlink: 'Panaikinti nuorodą',
+ formatting: 'Formatavimas',
+ paragraph: 'Paragrafas',
+ quote: 'Citata',
+ code: 'Išnaša',
+ header1: 'Antraštė 1',
+ header2: 'Antraštė 2',
+ header3: 'Antraštė 3',
+ header4: 'Antraštė 4',
+ header5: 'Antraštė 5',
+ bold: 'Ryškus',
+ italic: 'Pasviras',
+ fontcolor: 'Teksto spalva',
+ backcolor: 'Fono spalva',
+ unorderedlist: 'Sąrašas',
+ orderedlist: 'Numeruotas sąrašas',
+ outdent: 'Pritraukti',
+ indent: 'Atitraukti',
+ cancel: 'Atšaukti',
+ insert: 'Įterpti',
+ save: 'Išsaugoti',
+ _delete: 'Ištrinti',
+ insert_table: 'Įtraukti lentelę...',
+ insert_row_above: 'Įterpti eilutę virš',
+ insert_row_below: 'Įterpti eilutę po',
+ insert_column_left: 'Įterpti stulpelį kairiau',
+ insert_column_right: 'Įterpti stulpelį dešiniau',
+ delete_column: 'Ištrinti stulpelį',
+ delete_row: 'Ištrinti eilutę',
+ delete_table: 'Ištrinti lentelę',
+ rows: 'Eilutės',
+ columns: 'Stulpeliai',
+ add_head: 'Įterpti rubriką',
+ delete_head: 'Ištrinti rubriką',
+ title: 'Pavadinimas',
+ image_position: 'Pozicija',
+ none: 'Nėra',
+ left: 'Kairė',
+ right: 'Dešinė',
+ image_web_link: 'Nuoroda į paveiksliuką',
+ text: 'Tekstas',
+ mailto: 'El. paštas',
+ web: 'Nuoroda',
+ video_html_code: 'Video įterpimo kodas',
+ file: 'Įterpti bylą...',
+ upload: 'Įkelti',
+ download: 'Parsisiųsti',
+ choose: 'Pasirinkti',
+ or_choose: 'Arba pasirinkti',
+ drop_file_here: 'Mesti failą čia',
+ align_left: 'Lygiuoti iš kairės',
+ align_center: 'Centruoti',
+ align_right: 'Lygiuoti iš dešinės',
+ align_justify: 'Išlyginti eilutes',
+ horizontalrule: 'Įterpti horizontalią liniją',
+ deleted: 'Ištrinta',
+ anchor: 'Žymė',
+ link_new_tab: 'Atidaryti nuorodą naujame lange',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/lv.js b/static/redactor/langs/lv.js
old mode 100755
new mode 100644
index a0196d4..8533097
--- a/static/redactor/langs/lv.js
+++ b/static/redactor/langs/lv.js
@@ -1,74 +1,74 @@
-(function ($) {
-$.Redactor.opts.langs['lv'] = {
- html: 'HTML кods',
- video: 'Video',
- image: 'Attēls',
- table: 'Tabula',
- link: 'Saite',
- link_insert: 'Iekļaut saiti ...',
- link_edit: 'Edit link',
- unlink: 'Noņemt saiti',
- formatting: 'Stili',
- paragraph: 'Vienkāršs teksts',
- quote: 'Citāts',
- code: 'Kods',
- header1: 'Virsraksts 1',
- header2: 'Virsraksts 2',
- header3: 'Virsraksts 3',
- header4: 'Virsraksts 4',
- header5: 'Virsraksts 5',
- bold: 'Pustrekns',
- italic: 'Slīps',
- fontcolor: 'Teksta krāsa',
- backcolor: 'Fona krāsa',
- unorderedlist: 'Parasts saraksts',
- orderedlist: 'Numurēts saraksts',
- outdent: 'Samazināt atkāpi',
- indent: 'Palielināt atkāpi',
- cancel: 'Atcelt',
- insert: 'Iespraust',
- save: 'Saglabāt',
- _delete: 'Dzēst',
- insert_table: 'Iespraust tabulu',
- insert_row_above: 'Pievienot rindu no augšas',
- insert_row_below: 'Pievienot rindu no apakšas',
- insert_column_left: 'Pievienot stabiņu no kreisās puses',
- insert_column_right: 'Pievienot stabiņu no labās puses',
- delete_column: 'Dzēst stabiņu',
- delete_row: 'Dzēst rindu',
- delete_table: 'Dzēst tabulu',
- rows: 'Rindas',
- columns: 'Stabiņi',
- add_head: 'Pievienot virsrakstu',
- delete_head: 'Dzēst virsrakstu',
- title: 'Uzvedne',
- image_position: 'Аttēla apliece',
- none: 'nav',
- left: 'pa kreisi',
- right: 'pa labi',
- image_web_link: 'vai saite uz attēlu',
- text: 'Teksts',
- mailto: 'E-pasts',
- web: 'URL',
- video_html_code: 'Videoklipu kods',
- file: 'Fails',
- upload: 'Augšupielāde',
- download: 'Lejupielāde',
- choose: 'Izvēlieties',
- or_choose: 'Vai izvēlieties',
- drop_file_here: 'Vilkt failu uz šejieni',
- align_left: 'Izlīdzināt pa labi',
- align_center: 'Izlīdzināt pa kreisi',
- align_right: 'Izlīdzināt pret centru',
- align_justify: 'Izlīdzināt malas',
- horizontalrule: 'Horizontāla līnija',
- fullscreen: 'Pa visu ekrānu',
- anchor: 'Anchor',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
+(function ($) {
+$.Redactor.opts.langs['lv'] = {
+ html: 'HTML кods',
+ video: 'Video',
+ image: 'Attēls',
+ table: 'Tabula',
+ link: 'Saite',
+ link_insert: 'Iekļaut saiti ...',
+ link_edit: 'Edit link',
+ unlink: 'Noņemt saiti',
+ formatting: 'Stili',
+ paragraph: 'Vienkāršs teksts',
+ quote: 'Citāts',
+ code: 'Kods',
+ header1: 'Virsraksts 1',
+ header2: 'Virsraksts 2',
+ header3: 'Virsraksts 3',
+ header4: 'Virsraksts 4',
+ header5: 'Virsraksts 5',
+ bold: 'Pustrekns',
+ italic: 'Slīps',
+ fontcolor: 'Teksta krāsa',
+ backcolor: 'Fona krāsa',
+ unorderedlist: 'Parasts saraksts',
+ orderedlist: 'Numurēts saraksts',
+ outdent: 'Samazināt atkāpi',
+ indent: 'Palielināt atkāpi',
+ cancel: 'Atcelt',
+ insert: 'Iespraust',
+ save: 'Saglabāt',
+ _delete: 'Dzēst',
+ insert_table: 'Iespraust tabulu',
+ insert_row_above: 'Pievienot rindu no augšas',
+ insert_row_below: 'Pievienot rindu no apakšas',
+ insert_column_left: 'Pievienot stabiņu no kreisās puses',
+ insert_column_right: 'Pievienot stabiņu no labās puses',
+ delete_column: 'Dzēst stabiņu',
+ delete_row: 'Dzēst rindu',
+ delete_table: 'Dzēst tabulu',
+ rows: 'Rindas',
+ columns: 'Stabiņi',
+ add_head: 'Pievienot virsrakstu',
+ delete_head: 'Dzēst virsrakstu',
+ title: 'Uzvedne',
+ image_position: 'Аttēla apliece',
+ none: 'nav',
+ left: 'pa kreisi',
+ right: 'pa labi',
+ image_web_link: 'vai saite uz attēlu',
+ text: 'Teksts',
+ mailto: 'E-pasts',
+ web: 'URL',
+ video_html_code: 'Videoklipu kods',
+ file: 'Fails',
+ upload: 'Augšupielāde',
+ download: 'Lejupielāde',
+ choose: 'Izvēlieties',
+ or_choose: 'Vai izvēlieties',
+ drop_file_here: 'Vilkt failu uz šejieni',
+ align_left: 'Izlīdzināt pa labi',
+ align_center: 'Izlīdzināt pa kreisi',
+ align_right: 'Izlīdzināt pret centru',
+ align_justify: 'Izlīdzināt malas',
+ horizontalrule: 'Horizontāla līnija',
+ fullscreen: 'Pa visu ekrānu',
+ anchor: 'Anchor',
+ link_new_tab: 'Open link in new tab',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
})( jQuery );
\ No newline at end of file
diff --git a/static/redactor/langs/mk.js b/static/redactor/langs/mk.js
old mode 100755
new mode 100644
index dcf4513..dbddc97
--- a/static/redactor/langs/mk.js
+++ b/static/redactor/langs/mk.js
@@ -1,74 +1,74 @@
-(function ($) {
-$.Redactor.opts.langs['mk'] = {
- html: 'HTML',
- video: 'Внеси видео...',
- image: 'Внеси слика...',
- table: 'Табела',
- link: 'Линк',
- link_insert: 'Внеси линк ...',
- link_edit: 'Edit link',
- unlink: 'Избриши линк',
- formatting: 'Форматирање',
- paragraph: 'Параграф',
- quote: 'Цитат',
- code: 'Код',
- header1: 'Заглавие 1',
- header2: 'Заглавие 2',
- header3: 'Заглавие 3',
- header4: 'Заглавие 4',
- header5: 'Заглавие 5',
- bold: 'Болдирано',
- italic: 'Италик',
- fontcolor: 'Боја на фонт',
- backcolor: 'Боја на позадина',
- unorderedlist: 'Неподредена листа',
- orderedlist: 'Подредена листа',
- outdent: 'Нанадвор',
- indent: 'Навнатре',
- cancel: 'Откажи',
- insert: 'Внеси',
- save: 'Зачувај',
- _delete: 'Избриши',
- insert_table: 'Внеси табела...',
- insert_row_above: 'Додај ред над',
- insert_row_below: 'Додај ред под',
- insert_column_left: 'Додај колона лево',
- insert_column_right: 'Додај колона десно',
- delete_column: 'Избриши колона',
- delete_row: 'Избриши ред',
- delete_table: 'Избриши табела',
- rows: 'Редови',
- columns: 'Колони',
- add_head: 'Додај наслов',
- delete_head: 'Избриши наслов',
- title: 'Наслов',
- image_position: 'Позиција',
- none: 'Не позиционирај',
- left: 'Лево',
- right: 'Десно',
- image_web_link: 'Слика од линк',
- text: 'Текст',
- mailto: 'Е-маил',
- web: 'URL',
- video_html_code: 'Код за видео',
- file: 'Внеси фајл...',
- upload: 'Качи на сервер',
- download: 'Симни',
- choose: 'Одбери',
- or_choose: 'Или одбери',
- drop_file_here: 'Спушти фајл тука',
- align_left: 'Порамни текст на лево',
- align_center: 'Центрирај текст',
- align_right: 'Порамни текст на десно',
- align_justify: 'Израмни текси',
- horizontalrule: 'Внеси хоризонтална линија',
- deleted: 'Избришано',
- anchor: 'Локален линк',
- link_new_tab: 'Отвори линк во нов таб',
- underline: 'Подвлечи',
- alignment: 'Порамнување',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['mk'] = {
+ html: 'HTML',
+ video: 'Внеси видео...',
+ image: 'Внеси слика...',
+ table: 'Табела',
+ link: 'Линк',
+ link_insert: 'Внеси линк ...',
+ link_edit: 'Edit link',
+ unlink: 'Избриши линк',
+ formatting: 'Форматирање',
+ paragraph: 'Параграф',
+ quote: 'Цитат',
+ code: 'Код',
+ header1: 'Заглавие 1',
+ header2: 'Заглавие 2',
+ header3: 'Заглавие 3',
+ header4: 'Заглавие 4',
+ header5: 'Заглавие 5',
+ bold: 'Болдирано',
+ italic: 'Италик',
+ fontcolor: 'Боја на фонт',
+ backcolor: 'Боја на позадина',
+ unorderedlist: 'Неподредена листа',
+ orderedlist: 'Подредена листа',
+ outdent: 'Нанадвор',
+ indent: 'Навнатре',
+ cancel: 'Откажи',
+ insert: 'Внеси',
+ save: 'Зачувај',
+ _delete: 'Избриши',
+ insert_table: 'Внеси табела...',
+ insert_row_above: 'Додај ред над',
+ insert_row_below: 'Додај ред под',
+ insert_column_left: 'Додај колона лево',
+ insert_column_right: 'Додај колона десно',
+ delete_column: 'Избриши колона',
+ delete_row: 'Избриши ред',
+ delete_table: 'Избриши табела',
+ rows: 'Редови',
+ columns: 'Колони',
+ add_head: 'Додај наслов',
+ delete_head: 'Избриши наслов',
+ title: 'Наслов',
+ image_position: 'Позиција',
+ none: 'Не позиционирај',
+ left: 'Лево',
+ right: 'Десно',
+ image_web_link: 'Слика од линк',
+ text: 'Текст',
+ mailto: 'Е-маил',
+ web: 'URL',
+ video_html_code: 'Код за видео',
+ file: 'Внеси фајл...',
+ upload: 'Качи на сервер',
+ download: 'Симни',
+ choose: 'Одбери',
+ or_choose: 'Или одбери',
+ drop_file_here: 'Спушти фајл тука',
+ align_left: 'Порамни текст на лево',
+ align_center: 'Центрирај текст',
+ align_right: 'Порамни текст на десно',
+ align_justify: 'Израмни текси',
+ horizontalrule: 'Внеси хоризонтална линија',
+ deleted: 'Избришано',
+ anchor: 'Локален линк',
+ link_new_tab: 'Отвори линк во нов таб',
+ underline: 'Подвлечи',
+ alignment: 'Порамнување',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/nl.js b/static/redactor/langs/nl.js
old mode 100755
new mode 100644
index af9eae1..ffba8c2
--- a/static/redactor/langs/nl.js
+++ b/static/redactor/langs/nl.js
@@ -1,79 +1,79 @@
-(function ($) {
-$.Redactor.opts.langs['nl'] = {
- html: 'HTML',
- video: 'Video',
- image: 'Afbeelding',
- table: 'Tabel',
- link: 'Link',
- link_insert: 'Link invoegen...',
- link_edit: 'Edit link',
- unlink: 'Link ontkoppelen',
- formatting: 'Stijlen',
- paragraph: 'Paragraaf',
- quote: 'Citaat',
- code: 'Code',
- header1: 'Kop 1',
- header2: 'Kop 2',
- header3: 'Kop 3',
- header4: 'Kop 4',
- header5: 'Kop 5',
- bold: 'Vet',
- italic: 'Cursief',
- fontcolor: 'Tekstkleur',
- backcolor: 'Achtergrondkleur',
- unorderedlist: 'Ongeordende lijst',
- orderedlist: 'Geordende lijst',
- outdent: 'Uitspringen',
- indent: 'Inspringen',
- redo: 'Opnieuw maken',
- undo: 'Ongedaan maken',
- cut: 'Knippen',
- cancel: 'Annuleren',
- insert: 'Invoegen',
- save: 'Opslaan',
- _delete: 'Verwijderen',
- insert_table: 'Tabel invoegen',
- insert_row_above: 'Rij hierboven invoegen',
- insert_row_below: 'Rij hieronder invoegen',
- insert_column_left: 'Kolom links toevoegen',
- insert_column_right: 'Kolom rechts toevoegen',
- delete_column: 'Verwijder kolom',
- delete_row: 'Verwijder rij',
- delete_table: 'Verwijder tabel',
- rows: 'Rijen',
- columns: 'Kolommen',
- add_head: 'Titel toevoegen',
- delete_head: 'Titel verwijderen',
- title: 'Titel',
- image_position: 'Positie',
- none: 'geen',
- left: 'links',
- right: 'rechts',
- image_web_link: 'Afbeelding link',
- text: 'Tekst',
- mailto: 'Email',
- web: 'URL',
- video_html_code: 'Video embed code',
- file: 'Bestand',
- upload: 'Uploaden',
- download: 'Downloaden',
- choose: 'Kies',
- or_choose: 'Of kies',
- drop_file_here: 'Sleep bestand hier',
- align_left: 'Links uitlijnen',
- align_center: 'Centreren',
- align_right: 'Rechts uitlijnen',
- align_justify: 'Uitvullen',
- horizontalrule: 'Horizontale lijn',
- fullscreen: 'Volledig scherm',
- deleted: 'Verwijderd',
- anchor: 'Anker',
- link_new_tab: 'Open link in nieuw tabblad',
- underline: 'Onderstrepen',
- alignment: 'Uitlijning',
- filename: 'Naam (optioneel)',
- edit: 'Bewerk',
- center: 'Center'
-};
-})( jQuery );
-
+(function ($) {
+$.Redactor.opts.langs['nl'] = {
+ html: 'HTML',
+ video: 'Video',
+ image: 'Afbeelding',
+ table: 'Tabel',
+ link: 'Link',
+ link_insert: 'Link invoegen...',
+ link_edit: 'Edit link',
+ unlink: 'Link ontkoppelen',
+ formatting: 'Stijlen',
+ paragraph: 'Paragraaf',
+ quote: 'Citaat',
+ code: 'Code',
+ header1: 'Kop 1',
+ header2: 'Kop 2',
+ header3: 'Kop 3',
+ header4: 'Kop 4',
+ header5: 'Kop 5',
+ bold: 'Vet',
+ italic: 'Cursief',
+ fontcolor: 'Tekstkleur',
+ backcolor: 'Achtergrondkleur',
+ unorderedlist: 'Ongeordende lijst',
+ orderedlist: 'Geordende lijst',
+ outdent: 'Uitspringen',
+ indent: 'Inspringen',
+ redo: 'Opnieuw maken',
+ undo: 'Ongedaan maken',
+ cut: 'Knippen',
+ cancel: 'Annuleren',
+ insert: 'Invoegen',
+ save: 'Opslaan',
+ _delete: 'Verwijderen',
+ insert_table: 'Tabel invoegen',
+ insert_row_above: 'Rij hierboven invoegen',
+ insert_row_below: 'Rij hieronder invoegen',
+ insert_column_left: 'Kolom links toevoegen',
+ insert_column_right: 'Kolom rechts toevoegen',
+ delete_column: 'Verwijder kolom',
+ delete_row: 'Verwijder rij',
+ delete_table: 'Verwijder tabel',
+ rows: 'Rijen',
+ columns: 'Kolommen',
+ add_head: 'Titel toevoegen',
+ delete_head: 'Titel verwijderen',
+ title: 'Titel',
+ image_position: 'Positie',
+ none: 'geen',
+ left: 'links',
+ right: 'rechts',
+ image_web_link: 'Afbeelding link',
+ text: 'Tekst',
+ mailto: 'Email',
+ web: 'URL',
+ video_html_code: 'Video embed code',
+ file: 'Bestand',
+ upload: 'Uploaden',
+ download: 'Downloaden',
+ choose: 'Kies',
+ or_choose: 'Of kies',
+ drop_file_here: 'Sleep bestand hier',
+ align_left: 'Links uitlijnen',
+ align_center: 'Centreren',
+ align_right: 'Rechts uitlijnen',
+ align_justify: 'Uitvullen',
+ horizontalrule: 'Horizontale lijn',
+ fullscreen: 'Volledig scherm',
+ deleted: 'Verwijderd',
+ anchor: 'Anker',
+ link_new_tab: 'Open link in nieuw tabblad',
+ underline: 'Onderstrepen',
+ alignment: 'Uitlijning',
+ filename: 'Naam (optioneel)',
+ edit: 'Bewerk',
+ center: 'Center'
+};
+})( jQuery );
+
diff --git a/static/redactor/langs/no_NB.js b/static/redactor/langs/no_NB.js
old mode 100755
new mode 100644
index 02842c7..fa76a41
--- a/static/redactor/langs/no_NB.js
+++ b/static/redactor/langs/no_NB.js
@@ -1,74 +1,74 @@
-(function ($) {
- $.Redactor.opts.langs['no_NB'] = {
- html: 'HTML',
- video: 'Sett inn video...',
- image: 'Sett inn bilde...',
- table: 'Tabell',
- link: 'Link',
- link_insert: 'Sett inn link...',
- link_edit: 'Rediger link',
- unlink: 'Fjern link',
- formatting: 'Formatering',
- paragraph: 'Avsnitt',
- quote: 'Sitat',
- code: 'Kode',
- header1: 'Overskrift 1',
- header2: 'Overskrift 2',
- header3: 'Overskrift 3',
- header4: 'Overskrift 4',
- header5: 'Overskrift 5',
- bold: 'Fet',
- italic: 'Kursiv',
- fontcolor: 'Tekstfarge',
- backcolor: 'Bakgrunsfarge',
- unorderedlist: 'Usortert liste',
- orderedlist: 'Sortert liste',
- outdent: 'Redusere innrykk',
- indent: 'Innrykk',
- cancel: 'Avbryt',
- insert: 'Sett inn',
- save: 'Lagre',
- _delete: 'Slett',
- insert_table: 'Sett inn tabell...',
- insert_row_above: 'Legg til rad over',
- insert_row_below: 'Legg til rad under',
- insert_column_left: 'Legg til kolonne venstre',
- insert_column_right: 'Legg til kolonne høyre',
- delete_column: 'Slett kolonne',
- delete_row: 'Slett rad',
- delete_table: 'Slett tabell',
- rows: 'Rader',
- columns: 'Kolonner',
- add_head: 'Legg til tabellhode',
- delete_head: 'Slett tabellhode',
- title: 'Tittel',
- image_position: 'Plassering',
- none: 'Ingen',
- left: 'Venstre',
- right: 'Høyre',
- image_web_link: 'Bildelink',
- text: 'Tekst',
- mailto: 'E-Post',
- web: 'URL',
- video_html_code: 'Kode for innbyggingsvideo',
- file: 'Sett inn fil...',
- upload: 'Last opp',
- download: 'Last ned',
- choose: 'Velg',
- or_choose: 'Eller velg',
- drop_file_here: 'Slipp filen her',
- align_left: 'Venstrejuster',
- align_center: 'Midtjuster',
- align_right: 'Høyrejuster',
- align_justify: 'Balansert',
- horizontalrule: 'Sett inn horisontal linje',
- deleted: 'Slettet',
- anchor: 'Anker',
- link_new_tab: 'Åpne link i ny fane',
- underline: 'Understreking',
- alignment: 'Justering',
- filename: 'Filnavn (valgfritt)',
- edit: 'Endre',
- center: 'Midten'
- };
+(function ($) {
+ $.Redactor.opts.langs['no_NB'] = {
+ html: 'HTML',
+ video: 'Sett inn video...',
+ image: 'Sett inn bilde...',
+ table: 'Tabell',
+ link: 'Link',
+ link_insert: 'Sett inn link...',
+ link_edit: 'Rediger link',
+ unlink: 'Fjern link',
+ formatting: 'Formatering',
+ paragraph: 'Avsnitt',
+ quote: 'Sitat',
+ code: 'Kode',
+ header1: 'Overskrift 1',
+ header2: 'Overskrift 2',
+ header3: 'Overskrift 3',
+ header4: 'Overskrift 4',
+ header5: 'Overskrift 5',
+ bold: 'Fet',
+ italic: 'Kursiv',
+ fontcolor: 'Tekstfarge',
+ backcolor: 'Bakgrunsfarge',
+ unorderedlist: 'Usortert liste',
+ orderedlist: 'Sortert liste',
+ outdent: 'Redusere innrykk',
+ indent: 'Innrykk',
+ cancel: 'Avbryt',
+ insert: 'Sett inn',
+ save: 'Lagre',
+ _delete: 'Slett',
+ insert_table: 'Sett inn tabell...',
+ insert_row_above: 'Legg til rad over',
+ insert_row_below: 'Legg til rad under',
+ insert_column_left: 'Legg til kolonne venstre',
+ insert_column_right: 'Legg til kolonne høyre',
+ delete_column: 'Slett kolonne',
+ delete_row: 'Slett rad',
+ delete_table: 'Slett tabell',
+ rows: 'Rader',
+ columns: 'Kolonner',
+ add_head: 'Legg til tabellhode',
+ delete_head: 'Slett tabellhode',
+ title: 'Tittel',
+ image_position: 'Plassering',
+ none: 'Ingen',
+ left: 'Venstre',
+ right: 'Høyre',
+ image_web_link: 'Bildelink',
+ text: 'Tekst',
+ mailto: 'E-Post',
+ web: 'URL',
+ video_html_code: 'Kode for innbyggingsvideo',
+ file: 'Sett inn fil...',
+ upload: 'Last opp',
+ download: 'Last ned',
+ choose: 'Velg',
+ or_choose: 'Eller velg',
+ drop_file_here: 'Slipp filen her',
+ align_left: 'Venstrejuster',
+ align_center: 'Midtjuster',
+ align_right: 'Høyrejuster',
+ align_justify: 'Balansert',
+ horizontalrule: 'Sett inn horisontal linje',
+ deleted: 'Slettet',
+ anchor: 'Anker',
+ link_new_tab: 'Åpne link i ny fane',
+ underline: 'Understreking',
+ alignment: 'Justering',
+ filename: 'Filnavn (valgfritt)',
+ edit: 'Endre',
+ center: 'Midten'
+ };
})(jQuery);
\ No newline at end of file
diff --git a/static/redactor/langs/pl.js b/static/redactor/langs/pl.js
old mode 100755
new mode 100644
index 5be96f5..af7a35a
--- a/static/redactor/langs/pl.js
+++ b/static/redactor/langs/pl.js
@@ -1,75 +1,75 @@
-(function ($) {
-$.Redactor.opts.langs['pl'] = {
- html: 'Źródło',
- video: 'Wideo',
- image: 'Obrazek',
- table: 'Tabela',
- link: 'Link',
- link_insert: 'Wstaw link ...',
- link_edit: 'Edit link',
- unlink: 'Usuń link',
- formatting: 'Style',
- paragraph: 'Zwykły tekst',
- quote: 'Cytat',
- code: 'Kod źródłowy',
- header1: 'Nagłówek 1',
- header2: 'Nagłówek 2',
- header3: 'Nagłówek 3',
- header4: 'Nagłówek 4',
- header5: 'Nagłówek 5',
- bold: 'Pogrubiony',
- italic: 'Pochylony',
- fontcolor: 'Kolor tekstu',
- backcolor: 'Kolor tła',
- unorderedlist: 'Wypunktowanie',
- orderedlist: 'Numeracja',
- outdent: 'Zwiększ wcięcie',
- indent: 'Zmniejsz wcięcie',
- cancel: 'Anuluj',
- insert: 'Wstaw',
- save: 'Zachowaj',
- _delete: 'Usuń',
- insert_table: 'Wstaw tabele',
- insert_row_above: 'Dodaj wiersz na górze',
- insert_row_below: 'Dodaj wiersz na dole',
- insert_column_left: 'Dodaj kolumnę po lewej',
- insert_column_right: 'Dodaj kolumnę po prawej',
- delete_column: 'Usuń kolumnę',
- delete_row: 'Usuń wiersz',
- delete_table: 'Usuń tabele',
- rows: 'Wiersze',
- columns: 'Kolumny',
- add_head: 'Dodaj nagłówek',
- delete_head: 'Usuń nagłówek',
- title: 'Wskazówka',
- image_position: 'Obramowanie',
- none: 'nie ma',
- left: 'od lewej',
- right: 'od prawej',
- image_web_link: 'albo link do obrazku',
- text: 'Tekst',
- mailto: 'Poczta e-mail',
- web: 'URL',
- video_html_code: 'Kod źródłowy pliku wideo',
- file: 'Plik',
- upload: 'Wgraj na serwer',
- download: 'Pobierz',
- choose: 'Wybierz z listy',
- or_choose: 'lub wybierz',
- drop_file_here: 'Przenieś plik tutaj',
- align_left: 'Tekst do lewej',
- align_center: 'Wyśrodkuj',
- align_right: 'Tekst do prawej',
- align_justify: 'Wyjustuj',
- horizontalrule: 'Linia pozioma',
- fullscreen: 'Pełny ekran',
- deleted: 'Usunięty',
- anchor: 'Kotwica',
- link_new_tab: 'Otwórz link w nowym oknie',
- underline: 'Pokdreślony',
- alignment: 'Wyrównanie',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
+(function ($) {
+$.Redactor.opts.langs['pl'] = {
+ html: 'Źródło',
+ video: 'Wideo',
+ image: 'Obrazek',
+ table: 'Tabela',
+ link: 'Link',
+ link_insert: 'Wstaw link ...',
+ link_edit: 'Edit link',
+ unlink: 'Usuń link',
+ formatting: 'Style',
+ paragraph: 'Zwykły tekst',
+ quote: 'Cytat',
+ code: 'Kod źródłowy',
+ header1: 'Nagłówek 1',
+ header2: 'Nagłówek 2',
+ header3: 'Nagłówek 3',
+ header4: 'Nagłówek 4',
+ header5: 'Nagłówek 5',
+ bold: 'Pogrubiony',
+ italic: 'Pochylony',
+ fontcolor: 'Kolor tekstu',
+ backcolor: 'Kolor tła',
+ unorderedlist: 'Wypunktowanie',
+ orderedlist: 'Numeracja',
+ outdent: 'Zwiększ wcięcie',
+ indent: 'Zmniejsz wcięcie',
+ cancel: 'Anuluj',
+ insert: 'Wstaw',
+ save: 'Zachowaj',
+ _delete: 'Usuń',
+ insert_table: 'Wstaw tabele',
+ insert_row_above: 'Dodaj wiersz na górze',
+ insert_row_below: 'Dodaj wiersz na dole',
+ insert_column_left: 'Dodaj kolumnę po lewej',
+ insert_column_right: 'Dodaj kolumnę po prawej',
+ delete_column: 'Usuń kolumnę',
+ delete_row: 'Usuń wiersz',
+ delete_table: 'Usuń tabele',
+ rows: 'Wiersze',
+ columns: 'Kolumny',
+ add_head: 'Dodaj nagłówek',
+ delete_head: 'Usuń nagłówek',
+ title: 'Wskazówka',
+ image_position: 'Obramowanie',
+ none: 'nie ma',
+ left: 'od lewej',
+ right: 'od prawej',
+ image_web_link: 'albo link do obrazku',
+ text: 'Tekst',
+ mailto: 'Poczta e-mail',
+ web: 'URL',
+ video_html_code: 'Kod źródłowy pliku wideo',
+ file: 'Plik',
+ upload: 'Wgraj na serwer',
+ download: 'Pobierz',
+ choose: 'Wybierz z listy',
+ or_choose: 'lub wybierz',
+ drop_file_here: 'Przenieś plik tutaj',
+ align_left: 'Tekst do lewej',
+ align_center: 'Wyśrodkuj',
+ align_right: 'Tekst do prawej',
+ align_justify: 'Wyjustuj',
+ horizontalrule: 'Linia pozioma',
+ fullscreen: 'Pełny ekran',
+ deleted: 'Usunięty',
+ anchor: 'Kotwica',
+ link_new_tab: 'Otwórz link w nowym oknie',
+ underline: 'Pokdreślony',
+ alignment: 'Wyrównanie',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
})( jQuery );
\ No newline at end of file
diff --git a/static/redactor/langs/pt_br.js b/static/redactor/langs/pt_br.js
old mode 100755
new mode 100644
index af650b7..e987143
--- a/static/redactor/langs/pt_br.js
+++ b/static/redactor/langs/pt_br.js
@@ -1,82 +1,82 @@
-(function ($) {
-$.Redactor.opts.langs['pt_br'] = {
- html: 'Ver HTML',
- video: 'Vídeo',
- image: 'Imagem',
- table: 'Tabela',
- link: 'Link',
- link_insert: 'Inserir link...',
- link_edit: 'Edit link',
- unlink: 'Remover link',
- formatting: 'Estilos',
- paragraph: 'Parágrafo',
- quote: 'Citação',
- code: 'Código',
- header1: 'Título 1',
- header2: 'Título 2',
- header3: 'Título 3',
- header4: 'Título 4',
- header5: 'Título 5',
- bold: 'Negrito',
- italic: 'Itálico',
- fontcolor: 'Cor da fonte',
- backcolor: 'Cor do fundo',
- unorderedlist: 'Lista não ordenada',
- orderedlist: 'Lista ordenada',
- outdent: 'Remover identação',
- indent: 'Identar',
- cancel: 'Cancelar',
- insert: 'Inserir',
- save: 'Salvar',
- _delete: 'Remover',
- insert_table: 'Inserir tabela',
- add_cell: 'Adicionar coluna',
- delete_cell: 'Remover coluna',
- add_row: 'Adicionar linha',
- delete_row: 'Remover linha',
- thead: 'Cabeçalho',
- delete_table: 'Remover tabela',
- insert_row_above: 'Adicionar linha acima',
- insert_row_below: 'Adicionar linha abaixo',
- insert_column_left: 'Adicionar coluna à esquerda',
- insert_column_right: 'Adicionar coluna da direita',
- delete_column: 'Remover Coluna',
- delete_row: 'Remover linha',
- delete_table: 'Remover tabela',
- rows: 'Linhas',
- columns: 'Colunas',
- add_head: 'Adicionar cabeçalho',
- delete_head: 'Remover cabeçalho',
- title: 'Título',
- image_position: 'Posição',
- none: 'Nenhum',
- left: 'Esquerda',
- right: 'Direita',
- image_web_link: 'Link para uma imagem',
- text: 'Texto',
- mailto: 'Email',
- web: 'URL',
- video_html_code: 'Código de incorporação',
- file: 'Arquivo',
- upload: 'Upload',
- download: 'Download',
- choose: 'Escolha',
- or_choose: 'Ou escolha',
- drop_file_here: 'Arraste um arquivo até aqui',
- align_left: 'Alinhar a esquerda',
- align_center: 'Centralizar',
- align_right: 'Alinhar a direita',
- align_justify: 'Justificar',
- horizontalrule: 'Linha horizontal',
- fullscreen: 'Tela cheia',
- deleted: 'Removido',
- anchor: 'Ânchora',
- link_new_tab: 'Abrir link em nova janela/aba',
- underline: 'Underline',
- alignment: 'Alinhamento',
- filename: 'Nome (opcional)',
- edit: 'Editar',
- center: 'Center'
-};
-})( jQuery );
-
+(function ($) {
+$.Redactor.opts.langs['pt_br'] = {
+ html: 'Ver HTML',
+ video: 'Vídeo',
+ image: 'Imagem',
+ table: 'Tabela',
+ link: 'Link',
+ link_insert: 'Inserir link...',
+ link_edit: 'Edit link',
+ unlink: 'Remover link',
+ formatting: 'Estilos',
+ paragraph: 'Parágrafo',
+ quote: 'Citação',
+ code: 'Código',
+ header1: 'Título 1',
+ header2: 'Título 2',
+ header3: 'Título 3',
+ header4: 'Título 4',
+ header5: 'Título 5',
+ bold: 'Negrito',
+ italic: 'Itálico',
+ fontcolor: 'Cor da fonte',
+ backcolor: 'Cor do fundo',
+ unorderedlist: 'Lista não ordenada',
+ orderedlist: 'Lista ordenada',
+ outdent: 'Remover identação',
+ indent: 'Identar',
+ cancel: 'Cancelar',
+ insert: 'Inserir',
+ save: 'Salvar',
+ _delete: 'Remover',
+ insert_table: 'Inserir tabela',
+ add_cell: 'Adicionar coluna',
+ delete_cell: 'Remover coluna',
+ add_row: 'Adicionar linha',
+ delete_row: 'Remover linha',
+ thead: 'Cabeçalho',
+ delete_table: 'Remover tabela',
+ insert_row_above: 'Adicionar linha acima',
+ insert_row_below: 'Adicionar linha abaixo',
+ insert_column_left: 'Adicionar coluna à esquerda',
+ insert_column_right: 'Adicionar coluna da direita',
+ delete_column: 'Remover Coluna',
+ delete_row: 'Remover linha',
+ delete_table: 'Remover tabela',
+ rows: 'Linhas',
+ columns: 'Colunas',
+ add_head: 'Adicionar cabeçalho',
+ delete_head: 'Remover cabeçalho',
+ title: 'Título',
+ image_position: 'Posição',
+ none: 'Nenhum',
+ left: 'Esquerda',
+ right: 'Direita',
+ image_web_link: 'Link para uma imagem',
+ text: 'Texto',
+ mailto: 'Email',
+ web: 'URL',
+ video_html_code: 'Código de incorporação',
+ file: 'Arquivo',
+ upload: 'Upload',
+ download: 'Download',
+ choose: 'Escolha',
+ or_choose: 'Ou escolha',
+ drop_file_here: 'Arraste um arquivo até aqui',
+ align_left: 'Alinhar a esquerda',
+ align_center: 'Centralizar',
+ align_right: 'Alinhar a direita',
+ align_justify: 'Justificar',
+ horizontalrule: 'Linha horizontal',
+ fullscreen: 'Tela cheia',
+ deleted: 'Removido',
+ anchor: 'Ânchora',
+ link_new_tab: 'Abrir link em nova janela/aba',
+ underline: 'Underline',
+ alignment: 'Alinhamento',
+ filename: 'Nome (opcional)',
+ edit: 'Editar',
+ center: 'Center'
+};
+})( jQuery );
+
diff --git a/static/redactor/langs/pt_pt.js b/static/redactor/langs/pt_pt.js
old mode 100755
new mode 100644
index ca26c0d..a3e54d1
--- a/static/redactor/langs/pt_pt.js
+++ b/static/redactor/langs/pt_pt.js
@@ -1,74 +1,74 @@
-(function ($) {
-$.Redactor.opts.langs['pt_pt'] = {
- html: 'HTML',
- video: 'Inserir Video...',
- image: 'Inserir Imagem...',
- table: 'Tabela',
- link: 'Hiperligação',
- link_insert: 'Inserir Hiperligação ...',
- link_edit: 'Edit link',
- unlink: 'Remover Hiperligação',
- formatting: 'Formatação',
- paragraph: 'Parágrafo',
- quote: 'Citar',
- code: 'Código',
- header1: 'Cabeçalho 1',
- header2: 'Cabeçalho 2',
- header3: 'Cabeçalho 3',
- header4: 'Cabeçalho 4',
- header5: 'Cabeçalho 5',
- bold: 'Negrito',
- italic: 'Itálico',
- fontcolor: 'Cor da Fonte',
- backcolor: 'Cor de Fundo',
- unorderedlist: 'Lista Não Ordenada',
- orderedlist: 'Lista Ordenada',
- outdent: 'Remover Identação',
- indent: 'Identar',
- cancel: 'Cancelar',
- insert: 'Inserir',
- save: 'Guardar',
- _delete: 'Eliminar',
- insert_table: 'Inserir Tabela...',
- insert_row_above: 'Adicionar Linha Acima',
- insert_row_below: 'Adicionar Linha Abaixo',
- insert_column_left: 'Adicionar Coluna à Esquerda',
- insert_column_right: 'Adicionar Coluna à Direita',
- delete_column: 'Eliminar Coluna',
- delete_row: 'Eliminar Linha',
- delete_table: 'Eliminar Tabela',
- rows: 'Linhas',
- columns: 'Colunas',
- add_head: 'Adicionar Cabeçalho',
- delete_head: 'Eliminar Cabeçalho',
- title: 'Título',
- image_position: 'Posição',
- none: 'Nenhum',
- left: 'Esquerda',
- right: 'Direita',
- image_web_link: 'Url de Imagem',
- text: 'Texto',
- mailto: 'Email',
- web: 'URL',
- video_html_code: 'Código de Incorporação de Vídeo',
- file: 'Inserir Ficheiro...',
- upload: 'Upload',
- download: 'Download',
- choose: 'Escolha',
- or_choose: 'Ou escolha',
- drop_file_here: 'Largue o ficheiro aqui',
- align_left: 'Alinhar à esquerda',
- align_center: 'Centrar',
- align_right: 'Alinhar à direita',
- align_justify: 'Justificar',
- horizontalrule: 'Inserir Linha Horizontal',
- deleted: 'Eliminado',
- anchor: 'Âncora',
- link_new_tab: 'Abrir hiperligação em novo separador',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['pt_pt'] = {
+ html: 'HTML',
+ video: 'Inserir Video...',
+ image: 'Inserir Imagem...',
+ table: 'Tabela',
+ link: 'Hiperligação',
+ link_insert: 'Inserir Hiperligação ...',
+ link_edit: 'Edit link',
+ unlink: 'Remover Hiperligação',
+ formatting: 'Formatação',
+ paragraph: 'Parágrafo',
+ quote: 'Citar',
+ code: 'Código',
+ header1: 'Cabeçalho 1',
+ header2: 'Cabeçalho 2',
+ header3: 'Cabeçalho 3',
+ header4: 'Cabeçalho 4',
+ header5: 'Cabeçalho 5',
+ bold: 'Negrito',
+ italic: 'Itálico',
+ fontcolor: 'Cor da Fonte',
+ backcolor: 'Cor de Fundo',
+ unorderedlist: 'Lista Não Ordenada',
+ orderedlist: 'Lista Ordenada',
+ outdent: 'Remover Identação',
+ indent: 'Identar',
+ cancel: 'Cancelar',
+ insert: 'Inserir',
+ save: 'Guardar',
+ _delete: 'Eliminar',
+ insert_table: 'Inserir Tabela...',
+ insert_row_above: 'Adicionar Linha Acima',
+ insert_row_below: 'Adicionar Linha Abaixo',
+ insert_column_left: 'Adicionar Coluna à Esquerda',
+ insert_column_right: 'Adicionar Coluna à Direita',
+ delete_column: 'Eliminar Coluna',
+ delete_row: 'Eliminar Linha',
+ delete_table: 'Eliminar Tabela',
+ rows: 'Linhas',
+ columns: 'Colunas',
+ add_head: 'Adicionar Cabeçalho',
+ delete_head: 'Eliminar Cabeçalho',
+ title: 'Título',
+ image_position: 'Posição',
+ none: 'Nenhum',
+ left: 'Esquerda',
+ right: 'Direita',
+ image_web_link: 'Url de Imagem',
+ text: 'Texto',
+ mailto: 'Email',
+ web: 'URL',
+ video_html_code: 'Código de Incorporação de Vídeo',
+ file: 'Inserir Ficheiro...',
+ upload: 'Upload',
+ download: 'Download',
+ choose: 'Escolha',
+ or_choose: 'Ou escolha',
+ drop_file_here: 'Largue o ficheiro aqui',
+ align_left: 'Alinhar à esquerda',
+ align_center: 'Centrar',
+ align_right: 'Alinhar à direita',
+ align_justify: 'Justificar',
+ horizontalrule: 'Inserir Linha Horizontal',
+ deleted: 'Eliminado',
+ anchor: 'Âncora',
+ link_new_tab: 'Abrir hiperligação em novo separador',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/ro.js b/static/redactor/langs/ro.js
old mode 100755
new mode 100644
index 5e9e864..f17b56a
--- a/static/redactor/langs/ro.js
+++ b/static/redactor/langs/ro.js
@@ -1,75 +1,75 @@
-(function ($) {
-$.Redactor.opts.langs['ro'] = {
- html: 'HTML',
- video: 'Adauga video...',
- image: 'Adauga imagine...',
- table: 'Tabel',
- link: 'Legatura web',
- link_insert: 'Adauga legatura web...',
- link_edit: 'Edit link',
- unlink: 'Elimina legatura web',
- formatting: 'Formatare',
- paragraph: 'Paragraf',
- quote: 'Citat',
- code: 'Cod',
- header1: 'Titlu 1',
- header2: 'Titlu 2',
- header3: 'Titlu 3',
- header4: 'Titlu 4',
- header5: 'Titlu 5',
- bold: 'Aldin (Bold)',
- italic: 'Cursiv (Italic)',
- fontcolor: 'Culoare font',
- backcolor: 'Culoare de fundal',
- unorderedlist: 'Lista neordonata',
- orderedlist: 'Lista ordonata',
- outdent: 'Redu indentarea',
- indent: 'Mareste indentarea',
- cancel: 'Renunta',
- insert: 'Adauga',
- save: 'Salveaza',
- _delete: 'Sterge',
- insert_table: 'Adauga tabel...',
- insert_row_above: 'Adauga linie deasupra',
- insert_row_below: 'Adauga linie dedesupt',
- insert_column_left: 'Adauga coloana la stanga',
- insert_column_right: 'Adauga coloana la dreapta',
- delete_column: 'Sterge coloana',
- delete_row: 'Sterge linie',
- delete_table: 'Sterge tabela',
- rows: 'Linii',
- columns: 'Coloane',
- add_head: 'Adauga cap tabel',
- delete_head: 'Sterge cap tabel',
- title: 'Titlu',
- image_position: 'Pozitie',
- none: 'None',
- left: 'Stanga',
- right: 'Dreapta',
- image_web_link: 'Legatura web imagine',
- text: 'Text',
- mailto: 'Adresa email',
- web: 'Legatura web',
- video_html_code: 'Cod adaugare video',
- file: 'Adauga fisier...',
- upload: 'Incarca',
- download: 'Descarca',
- choose: 'Alege',
- or_choose: 'sau alege din computer',
- drop_file_here: 'Trage fisierele aici',
- align_left: 'Aliniere la stanga',
- align_center: 'Centrat',
- align_right: 'Aliniere la dreapta',
- align_justify: 'Aliniere la margini',
- horizontalrule: 'Adauga rigla orizontala',
- fullscreen: 'Afisare pe tot ecranul',
- deleted: 'Taiat (Sters)',
- anchor: 'Ancora',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['ro'] = {
+ html: 'HTML',
+ video: 'Adauga video...',
+ image: 'Adauga imagine...',
+ table: 'Tabel',
+ link: 'Legatura web',
+ link_insert: 'Adauga legatura web...',
+ link_edit: 'Edit link',
+ unlink: 'Elimina legatura web',
+ formatting: 'Formatare',
+ paragraph: 'Paragraf',
+ quote: 'Citat',
+ code: 'Cod',
+ header1: 'Titlu 1',
+ header2: 'Titlu 2',
+ header3: 'Titlu 3',
+ header4: 'Titlu 4',
+ header5: 'Titlu 5',
+ bold: 'Aldin (Bold)',
+ italic: 'Cursiv (Italic)',
+ fontcolor: 'Culoare font',
+ backcolor: 'Culoare de fundal',
+ unorderedlist: 'Lista neordonata',
+ orderedlist: 'Lista ordonata',
+ outdent: 'Redu indentarea',
+ indent: 'Mareste indentarea',
+ cancel: 'Renunta',
+ insert: 'Adauga',
+ save: 'Salveaza',
+ _delete: 'Sterge',
+ insert_table: 'Adauga tabel...',
+ insert_row_above: 'Adauga linie deasupra',
+ insert_row_below: 'Adauga linie dedesupt',
+ insert_column_left: 'Adauga coloana la stanga',
+ insert_column_right: 'Adauga coloana la dreapta',
+ delete_column: 'Sterge coloana',
+ delete_row: 'Sterge linie',
+ delete_table: 'Sterge tabela',
+ rows: 'Linii',
+ columns: 'Coloane',
+ add_head: 'Adauga cap tabel',
+ delete_head: 'Sterge cap tabel',
+ title: 'Titlu',
+ image_position: 'Pozitie',
+ none: 'None',
+ left: 'Stanga',
+ right: 'Dreapta',
+ image_web_link: 'Legatura web imagine',
+ text: 'Text',
+ mailto: 'Adresa email',
+ web: 'Legatura web',
+ video_html_code: 'Cod adaugare video',
+ file: 'Adauga fisier...',
+ upload: 'Incarca',
+ download: 'Descarca',
+ choose: 'Alege',
+ or_choose: 'sau alege din computer',
+ drop_file_here: 'Trage fisierele aici',
+ align_left: 'Aliniere la stanga',
+ align_center: 'Centrat',
+ align_right: 'Aliniere la dreapta',
+ align_justify: 'Aliniere la margini',
+ horizontalrule: 'Adauga rigla orizontala',
+ fullscreen: 'Afisare pe tot ecranul',
+ deleted: 'Taiat (Sters)',
+ anchor: 'Ancora',
+ link_new_tab: 'Open link in new tab',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/ru.js b/static/redactor/langs/ru.js
old mode 100755
new mode 100644
index 4fa407a..ed3980f
--- a/static/redactor/langs/ru.js
+++ b/static/redactor/langs/ru.js
@@ -1,75 +1,75 @@
-(function ($) {
-$.Redactor.opts.langs['ru'] = {
- html: 'Код',
- video: 'Видео',
- image: 'Изображение',
- table: 'Таблица',
- link: 'Ссылка',
- link_insert: 'Вставить ссылку ...',
- link_edit: 'Изменить ссылку',
- unlink: 'Удалить ссылку',
- formatting: 'Форматирование',
- paragraph: 'Обычный текст',
- quote: 'Цитата',
- code: 'Код',
- header1: 'Заголовок 1',
- header2: 'Заголовок 2',
- header3: 'Заголовок 3',
- header4: 'Заголовок 4',
- header5: 'Заголовок 5',
- bold: 'Полужирный',
- italic: 'Наклонный',
- fontcolor: 'Цвет текста',
- backcolor: 'Заливка текста',
- unorderedlist: 'Обычный список',
- orderedlist: 'Нумерованный список',
- outdent: 'Уменьшить отступ',
- indent: 'Увеличить отступ',
- cancel: 'Отменить',
- insert: 'Вставить',
- save: 'Сохранить',
- _delete: 'Удалить',
- insert_table: 'Вставить таблицу',
- insert_row_above: 'Добавить строку сверху',
- insert_row_below: 'Добавить строку снизу',
- insert_column_left: 'Добавить столбец слева',
- insert_column_right: 'Добавить столбец справа',
- delete_column: 'Удалить столбец',
- delete_row: 'Удалить строку',
- delete_table: 'Удалить таблицу',
- rows: 'Строки',
- columns: 'Столбцы',
- add_head: 'Добавить заголовок',
- delete_head: 'Удалить заголовок',
- title: 'Подсказка',
- image_position: 'Обтекание текстом',
- none: 'Нет',
- left: 'Cлева',
- right: 'Cправа',
- image_web_link: 'Cсылка на изображение',
- text: 'Текст',
- mailto: 'Эл. почта',
- web: 'URL',
- video_html_code: 'Код видео ролика',
- file: 'Файл',
- upload: 'Загрузить',
- download: 'Скачать',
- choose: 'Выбрать',
- or_choose: 'Или выберите',
- drop_file_here: 'Перетащите файл сюда',
- align_left: 'По левому краю',
- align_center: 'По центру',
- align_right: 'По правому краю',
- align_justify: 'Выровнять текст по ширине',
- horizontalrule: 'Горизонтальная линейка',
- fullscreen: 'Во весь экран',
- deleted: 'Зачеркнутый',
- anchor: 'Якорь',
- link_new_tab: 'Открывать в новой вкладке',
- underline: 'Подчеркнутый',
- alignment: 'Выравнивание',
- filename: 'Название (необязательно)',
- edit: 'Ред.',
- center: 'По центру'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['ru'] = {
+ html: 'Код',
+ video: 'Видео',
+ image: 'Изображение',
+ table: 'Таблица',
+ link: 'Ссылка',
+ link_insert: 'Вставить ссылку ...',
+ link_edit: 'Изменить ссылку',
+ unlink: 'Удалить ссылку',
+ formatting: 'Форматирование',
+ paragraph: 'Обычный текст',
+ quote: 'Цитата',
+ code: 'Код',
+ header1: 'Заголовок 1',
+ header2: 'Заголовок 2',
+ header3: 'Заголовок 3',
+ header4: 'Заголовок 4',
+ header5: 'Заголовок 5',
+ bold: 'Полужирный',
+ italic: 'Наклонный',
+ fontcolor: 'Цвет текста',
+ backcolor: 'Заливка текста',
+ unorderedlist: 'Обычный список',
+ orderedlist: 'Нумерованный список',
+ outdent: 'Уменьшить отступ',
+ indent: 'Увеличить отступ',
+ cancel: 'Отменить',
+ insert: 'Вставить',
+ save: 'Сохранить',
+ _delete: 'Удалить',
+ insert_table: 'Вставить таблицу',
+ insert_row_above: 'Добавить строку сверху',
+ insert_row_below: 'Добавить строку снизу',
+ insert_column_left: 'Добавить столбец слева',
+ insert_column_right: 'Добавить столбец справа',
+ delete_column: 'Удалить столбец',
+ delete_row: 'Удалить строку',
+ delete_table: 'Удалить таблицу',
+ rows: 'Строки',
+ columns: 'Столбцы',
+ add_head: 'Добавить заголовок',
+ delete_head: 'Удалить заголовок',
+ title: 'Подсказка',
+ image_position: 'Обтекание текстом',
+ none: 'Нет',
+ left: 'Cлева',
+ right: 'Cправа',
+ image_web_link: 'Cсылка на изображение',
+ text: 'Текст',
+ mailto: 'Эл. почта',
+ web: 'URL',
+ video_html_code: 'Код видео ролика',
+ file: 'Файл',
+ upload: 'Загрузить',
+ download: 'Скачать',
+ choose: 'Выбрать',
+ or_choose: 'Или выберите',
+ drop_file_here: 'Перетащите файл сюда',
+ align_left: 'По левому краю',
+ align_center: 'По центру',
+ align_right: 'По правому краю',
+ align_justify: 'Выровнять текст по ширине',
+ horizontalrule: 'Горизонтальная линейка',
+ fullscreen: 'Во весь экран',
+ deleted: 'Зачеркнутый',
+ anchor: 'Якорь',
+ link_new_tab: 'Открывать в новой вкладке',
+ underline: 'Подчеркнутый',
+ alignment: 'Выравнивание',
+ filename: 'Название (необязательно)',
+ edit: 'Ред.',
+ center: 'По центру'
+};
+})( jQuery );
diff --git a/static/redactor/langs/sk.js b/static/redactor/langs/sk.js
old mode 100755
new mode 100644
index 5cde85b..675ee0c
--- a/static/redactor/langs/sk.js
+++ b/static/redactor/langs/sk.js
@@ -1,75 +1,75 @@
-(function ($) {
-$.Redactor.opts.langs['sk'] = {
- html: 'HTML',
- video: 'Video',
- image: 'Obrázok',
- table: 'Tabulka',
- link: 'Odkaz',
- link_insert: 'Vložiť odkaz ...',
- link_edit: 'Edit link',
- unlink: 'Odstrániť odkaz',
- formatting: 'Štýl',
- paragraph: 'Odstavec',
- quote: 'Citácia',
- code: 'Kód',
- header1: 'Nadpis 1',
- header2: 'Nadpis 2',
- header3: 'Nadpis 3',
- header4: 'Nadpis 4',
- header5: 'Nadpis 5',
- bold: 'Tučné',
- italic: 'Kurzíva',
- fontcolor: 'Farba písma',
- backcolor: 'Farba pozadia',
- unorderedlist: 'Zoznam s odrážkami',
- orderedlist: 'Číslovaný zoznam',
- outdent: 'Zmenšiť odsadenie',
- indent: 'Zväčšiť odsadenie',
- cancel: 'Zrušiť',
- insert: 'Vložiť',
- save: 'Uložiť',
- _delete: 'Smazať',
- insert_table: 'Vložiť tabulku',
- insert_row_above: 'Pridať riadok hore',
- insert_row_below: 'Pridať riadok dole',
- insert_column_left: 'Pridať stĺpec vľavo',
- insert_column_right: 'Pridať stľpec vpravo',
- delete_column: 'Zmazať stľpec',
- delete_row: 'Zmazať riadok',
- delete_table: 'Zmazať tabulku',
- rows: 'Riadky',
- columns: 'Stľpce',
- add_head: 'Pridať záhlavie',
- delete_head: 'Zmazať záhlavie',
- title: 'Titulok',
- image_position: 'Pozícia',
- none: 'žiadny',
- left: 'vľavo',
- right: 'vpravo',
- image_web_link: 'Odkaz na obrázok',
- text: 'Text',
- mailto: 'Email',
- web: 'URL',
- video_html_code: 'Kód pre vloženie videa na stránku',
- file: 'Súbor',
- upload: 'Nahrát',
- download: 'Stiahnúť',
- choose: 'Vybrať',
- or_choose: 'alebo',
- drop_file_here: 'Pretiahnite súbor sem',
- align_left: 'Zarovnať vľavo',
- align_center: 'Zarovnať na stred',
- align_right: 'Zarovnať vpravo',
- align_justify: 'Zarovnať do bloku',
- horizontalrule: 'Vodorovná čiara',
- fullscreen: 'Celá obrazovka',
- deleted: 'Prečiarknuté',
- anchor: 'Záložka',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['sk'] = {
+ html: 'HTML',
+ video: 'Video',
+ image: 'Obrázok',
+ table: 'Tabulka',
+ link: 'Odkaz',
+ link_insert: 'Vložiť odkaz ...',
+ link_edit: 'Edit link',
+ unlink: 'Odstrániť odkaz',
+ formatting: 'Štýl',
+ paragraph: 'Odstavec',
+ quote: 'Citácia',
+ code: 'Kód',
+ header1: 'Nadpis 1',
+ header2: 'Nadpis 2',
+ header3: 'Nadpis 3',
+ header4: 'Nadpis 4',
+ header5: 'Nadpis 5',
+ bold: 'Tučné',
+ italic: 'Kurzíva',
+ fontcolor: 'Farba písma',
+ backcolor: 'Farba pozadia',
+ unorderedlist: 'Zoznam s odrážkami',
+ orderedlist: 'Číslovaný zoznam',
+ outdent: 'Zmenšiť odsadenie',
+ indent: 'Zväčšiť odsadenie',
+ cancel: 'Zrušiť',
+ insert: 'Vložiť',
+ save: 'Uložiť',
+ _delete: 'Smazať',
+ insert_table: 'Vložiť tabulku',
+ insert_row_above: 'Pridať riadok hore',
+ insert_row_below: 'Pridať riadok dole',
+ insert_column_left: 'Pridať stĺpec vľavo',
+ insert_column_right: 'Pridať stľpec vpravo',
+ delete_column: 'Zmazať stľpec',
+ delete_row: 'Zmazať riadok',
+ delete_table: 'Zmazať tabulku',
+ rows: 'Riadky',
+ columns: 'Stľpce',
+ add_head: 'Pridať záhlavie',
+ delete_head: 'Zmazať záhlavie',
+ title: 'Titulok',
+ image_position: 'Pozícia',
+ none: 'žiadny',
+ left: 'vľavo',
+ right: 'vpravo',
+ image_web_link: 'Odkaz na obrázok',
+ text: 'Text',
+ mailto: 'Email',
+ web: 'URL',
+ video_html_code: 'Kód pre vloženie videa na stránku',
+ file: 'Súbor',
+ upload: 'Nahrát',
+ download: 'Stiahnúť',
+ choose: 'Vybrať',
+ or_choose: 'alebo',
+ drop_file_here: 'Pretiahnite súbor sem',
+ align_left: 'Zarovnať vľavo',
+ align_center: 'Zarovnať na stred',
+ align_right: 'Zarovnať vpravo',
+ align_justify: 'Zarovnať do bloku',
+ horizontalrule: 'Vodorovná čiara',
+ fullscreen: 'Celá obrazovka',
+ deleted: 'Prečiarknuté',
+ anchor: 'Záložka',
+ link_new_tab: 'Open link in new tab',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/sl.js b/static/redactor/langs/sl.js
old mode 100755
new mode 100644
index fe50cc6..13050ef
--- a/static/redactor/langs/sl.js
+++ b/static/redactor/langs/sl.js
@@ -1,78 +1,78 @@
-(function ($) {
-$.Redactor.opts.langs['sl'] = {
- html: 'HTML',
- video: 'Video',
- image: 'Slika',
- table: 'Tabela',
- link: 'Povezava',
- link_insert: 'Vstavi povezavo...',
- link_edit: 'Edit link',
- unlink: 'Odstrani povezavo',
- formatting: 'Stili',
- paragraph: 'Odstavek',
- quote: 'Citat',
- code: 'HTML koda',
- header1: 'Naslov 1',
- header2: 'Naslov 2',
- header3: 'Naslov 3',
- header4: 'Naslov 4',
- header5: 'Naslov 5',
- bold: 'Odebeljeno',
- italic: 'Poševno',
- fontcolor: 'Barva pisave',
- backcolor: 'Barva ozadja',
- unorderedlist: 'Nesortirana lista',
- orderedlist: 'Sortirana lista',
- outdent: 'Pomik levo',
- indent: 'Pomik desno',
- redo: 'Naprej',
- undo: 'Nazaj',
- cut: 'Izreži',
- cancel: 'Prekini',
- insert: 'Vstavi',
- save: 'Shrani',
- _delete: 'Izbriši',
- insert_table: 'Vstavi tabelo',
- insert_row_above: 'Dodaj vrstico nad',
- insert_row_below: 'Dodaj vrstico pod',
- insert_column_left: 'Dodaj stolpec levo',
- insert_column_right: 'Dodaj stolpec desno',
- delete_column: 'Izbriši stolpec',
- delete_row: 'Izbriši vrstivo',
- delete_table: 'Izbriši tabelo',
- rows: 'Vrstic',
- columns: 'Stolpcev',
- add_head: 'Dodaj naslov',
- delete_head: 'Odstrani naslov',
- title: 'Naslov',
- image_position: 'Poravnava',
- none: 'brez',
- left: 'levo',
- right: 'desno',
- image_web_link: 'Povezava do slike',
- text: 'Besedilo',
- mailto: 'Email',
- web: 'WEB povezava',
- video_html_code: 'Koda videa',
- file: 'Datoteka',
- upload: 'Pošalji',
- download: 'Prenesi',
- choose: 'Izberi',
- or_choose: 'ali izberi',
- drop_file_here: 'Povleci datoteko sem',
- align_left: 'Poravnaj levo',
- align_center: 'Centriraj',
- align_right: 'Poravnaj desno',
- align_justify: 'Od roba do roba',
- horizontalrule: 'Horizontalna crta',
- fullscreen: 'Čez cel ekran',
- deleted: 'Izbrisano',
- anchor: 'Sidro',
- link_new_tab: 'Odpri povezavo v novem oknu/tabu',
- underline: 'Podčrtano',
- alignment: 'Poravnava',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['sl'] = {
+ html: 'HTML',
+ video: 'Video',
+ image: 'Slika',
+ table: 'Tabela',
+ link: 'Povezava',
+ link_insert: 'Vstavi povezavo...',
+ link_edit: 'Edit link',
+ unlink: 'Odstrani povezavo',
+ formatting: 'Stili',
+ paragraph: 'Odstavek',
+ quote: 'Citat',
+ code: 'HTML koda',
+ header1: 'Naslov 1',
+ header2: 'Naslov 2',
+ header3: 'Naslov 3',
+ header4: 'Naslov 4',
+ header5: 'Naslov 5',
+ bold: 'Odebeljeno',
+ italic: 'Poševno',
+ fontcolor: 'Barva pisave',
+ backcolor: 'Barva ozadja',
+ unorderedlist: 'Nesortirana lista',
+ orderedlist: 'Sortirana lista',
+ outdent: 'Pomik levo',
+ indent: 'Pomik desno',
+ redo: 'Naprej',
+ undo: 'Nazaj',
+ cut: 'Izreži',
+ cancel: 'Prekini',
+ insert: 'Vstavi',
+ save: 'Shrani',
+ _delete: 'Izbriši',
+ insert_table: 'Vstavi tabelo',
+ insert_row_above: 'Dodaj vrstico nad',
+ insert_row_below: 'Dodaj vrstico pod',
+ insert_column_left: 'Dodaj stolpec levo',
+ insert_column_right: 'Dodaj stolpec desno',
+ delete_column: 'Izbriši stolpec',
+ delete_row: 'Izbriši vrstivo',
+ delete_table: 'Izbriši tabelo',
+ rows: 'Vrstic',
+ columns: 'Stolpcev',
+ add_head: 'Dodaj naslov',
+ delete_head: 'Odstrani naslov',
+ title: 'Naslov',
+ image_position: 'Poravnava',
+ none: 'brez',
+ left: 'levo',
+ right: 'desno',
+ image_web_link: 'Povezava do slike',
+ text: 'Besedilo',
+ mailto: 'Email',
+ web: 'WEB povezava',
+ video_html_code: 'Koda videa',
+ file: 'Datoteka',
+ upload: 'Pošalji',
+ download: 'Prenesi',
+ choose: 'Izberi',
+ or_choose: 'ali izberi',
+ drop_file_here: 'Povleci datoteko sem',
+ align_left: 'Poravnaj levo',
+ align_center: 'Centriraj',
+ align_right: 'Poravnaj desno',
+ align_justify: 'Od roba do roba',
+ horizontalrule: 'Horizontalna crta',
+ fullscreen: 'Čez cel ekran',
+ deleted: 'Izbrisano',
+ anchor: 'Sidro',
+ link_new_tab: 'Odpri povezavo v novem oknu/tabu',
+ underline: 'Podčrtano',
+ alignment: 'Poravnava',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/sq.js b/static/redactor/langs/sq.js
old mode 100755
new mode 100644
index 8b6de35..6a39a17
--- a/static/redactor/langs/sq.js
+++ b/static/redactor/langs/sq.js
@@ -1,78 +1,78 @@
-(function ($) {
-$.Redactor.opts.langs['sq'] = {
- html: 'HTML',
- video: 'Video',
- image: 'Fotografi',
- table: 'Tabelë',
- link: 'Link',
- link_insert: 'Lidh linq ...',
- link_edit: 'Edit link',
- unlink: 'Hiq linkun',
- formatting: 'Stilet',
- paragraph: 'Paragraf',
- quote: 'Kuotë',
- code: 'Kod',
- header1: 'Header 1',
- header2: 'Header 2',
- header3: 'Header 3',
- header4: 'Header 4',
- header5: 'Header 5',
- bold: 'Te trasha / Bold',
- italic: 'Kursive / Italic',
- fontcolor: 'Ngjyra e shkronjave',
- backcolor: 'Ngjyra e mbrapavisë së shkronjave',
- unorderedlist: 'Liste pa renditje',
- orderedlist: 'Liste me renditje',
- outdent: 'Outdent',
- indent: 'Indent',
- redo: 'Ribëj',
- undo: 'Zhbëj',
- cut: 'Cut',
- cancel: 'Anulo',
- insert: 'Insert',
- save: 'Ruaje',
- _delete: 'Fshije',
- insert_table: 'Shto tabelë',
- insert_row_above: 'Shto rresht sipër',
- insert_row_below: 'Shto rresht përfundi',
- insert_column_left: 'Shto kolonë majtas',
- insert_column_right: 'Shto kolonë djathtas',
- delete_column: 'Fshije kolonën',
- delete_row: 'Fshije rreshtin',
- delete_table: 'Fshije tabelën',
- rows: 'Rreshta',
- columns: 'Kolona',
- add_head: 'Shto titujt e tabelës',
- delete_head: 'Fshije titujt e tabelës',
- title: 'Titulli',
- image_position: 'Pozita',
- none: 'Normale',
- left: 'Majtas',
- right: 'Djathtas',
- image_web_link: 'Linku i fotografisë në internet',
- text: 'Teksti',
- mailto: 'Email',
- web: 'URL',
- video_html_code: 'Video embed code',
- file: 'Fajll',
- upload: 'Ngarko',
- download: 'Shkarko',
- choose: 'Zgjedh',
- or_choose: 'Ose zgjedh',
- drop_file_here: 'Gjuaje fajllin këtu',
- align_left: 'Rreshtoje majtas',
- align_center: 'Rreshtoje në mes',
- align_right: 'Rreshtoje djathtas',
- align_justify: 'Rreshtoje të gjithin njejt',
- horizontalrule: 'Vizë horizontale',
- fullscreen: 'Pamje e plotë',
- deleted: 'E fshirë',
- anchor: 'Anchor',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['sq'] = {
+ html: 'HTML',
+ video: 'Video',
+ image: 'Fotografi',
+ table: 'Tabelë',
+ link: 'Link',
+ link_insert: 'Lidh linq ...',
+ link_edit: 'Edit link',
+ unlink: 'Hiq linkun',
+ formatting: 'Stilet',
+ paragraph: 'Paragraf',
+ quote: 'Kuotë',
+ code: 'Kod',
+ header1: 'Header 1',
+ header2: 'Header 2',
+ header3: 'Header 3',
+ header4: 'Header 4',
+ header5: 'Header 5',
+ bold: 'Te trasha / Bold',
+ italic: 'Kursive / Italic',
+ fontcolor: 'Ngjyra e shkronjave',
+ backcolor: 'Ngjyra e mbrapavisë së shkronjave',
+ unorderedlist: 'Liste pa renditje',
+ orderedlist: 'Liste me renditje',
+ outdent: 'Outdent',
+ indent: 'Indent',
+ redo: 'Ribëj',
+ undo: 'Zhbëj',
+ cut: 'Cut',
+ cancel: 'Anulo',
+ insert: 'Insert',
+ save: 'Ruaje',
+ _delete: 'Fshije',
+ insert_table: 'Shto tabelë',
+ insert_row_above: 'Shto rresht sipër',
+ insert_row_below: 'Shto rresht përfundi',
+ insert_column_left: 'Shto kolonë majtas',
+ insert_column_right: 'Shto kolonë djathtas',
+ delete_column: 'Fshije kolonën',
+ delete_row: 'Fshije rreshtin',
+ delete_table: 'Fshije tabelën',
+ rows: 'Rreshta',
+ columns: 'Kolona',
+ add_head: 'Shto titujt e tabelës',
+ delete_head: 'Fshije titujt e tabelës',
+ title: 'Titulli',
+ image_position: 'Pozita',
+ none: 'Normale',
+ left: 'Majtas',
+ right: 'Djathtas',
+ image_web_link: 'Linku i fotografisë në internet',
+ text: 'Teksti',
+ mailto: 'Email',
+ web: 'URL',
+ video_html_code: 'Video embed code',
+ file: 'Fajll',
+ upload: 'Ngarko',
+ download: 'Shkarko',
+ choose: 'Zgjedh',
+ or_choose: 'Ose zgjedh',
+ drop_file_here: 'Gjuaje fajllin këtu',
+ align_left: 'Rreshtoje majtas',
+ align_center: 'Rreshtoje në mes',
+ align_right: 'Rreshtoje djathtas',
+ align_justify: 'Rreshtoje të gjithin njejt',
+ horizontalrule: 'Vizë horizontale',
+ fullscreen: 'Pamje e plotë',
+ deleted: 'E fshirë',
+ anchor: 'Anchor',
+ link_new_tab: 'Open link in new tab',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/sr-cir.js b/static/redactor/langs/sr-cir.js
old mode 100755
new mode 100644
index 9a1f0ad..64520a8
--- a/static/redactor/langs/sr-cir.js
+++ b/static/redactor/langs/sr-cir.js
@@ -1,78 +1,78 @@
-(function ($) {
-$.Redactor.opts.langs['sr-cir'] = {
- html: 'ХТМЛ',
- video: 'Убаци видео',
- image: 'Убаци фотографију',
- table: 'Табела',
- link: 'Веза',
- link_insert: 'Убаци везу ...',
- link_edit: 'Edit link',
- unlink: 'Уклони везу',
- formatting: 'Стилови',
- paragraph: 'Параграф',
- quote: 'Цитат',
- code: 'Изворни код',
- header1: 'Заглавље 1',
- header2: 'Заглавље 2',
- header3: 'Заглавље 3',
- header4: 'Заглавље 4',
- header5: 'Заглавље 5',
- bold: 'Подебљај',
- italic: 'Накоси',
- fontcolor: 'Боја слова',
- backcolor: 'Боја позадине',
- unorderedlist: 'Несортирана листа',
- orderedlist: 'Сортирана листа',
- outdent: 'Извуци',
- indent: 'Увуци',
- redo: 'Корак напред',
- undo: 'Корак назад',
- cut: 'Изрежи',
- cancel: 'Одустани',
- insert: 'Убаци',
- save: 'Сачувај',
- _delete: 'Избриши',
- insert_table: 'Убаци табелу',
- insert_row_above: 'Додај ред изнад',
- insert_row_below: 'Додај ред испод',
- insert_column_left: 'Додај колону лево',
- insert_column_right: 'Додај колону десно',
- delete_column: 'Избриши колону',
- delete_row: 'Избриши ред',
- delete_table: 'Избриши табелу',
- rows: 'Ред',
- columns: 'Колона',
- add_head: 'Додај заглавље',
- delete_head: 'Уклони заглавље',
- title: 'Наслов',
- image_position: 'Позиција',
- none: 'Без',
- left: 'Лево',
- right: 'Десно',
- image_web_link: 'Веб адреса фотографије',
- text: 'Текст',
- mailto: 'Емаил',
- web: 'Веб адреса',
- video_html_code: 'Видео код',
- file: 'Датотека',
- upload: 'Пошаљи',
- download: 'Преузми',
- choose: 'Одабери',
- or_choose: 'Или одабери',
- drop_file_here: 'Превуци датотеку овде',
- align_left: 'Поравнај лево',
- align_center: 'Центрирај',
- align_right: 'Поравнај десно',
- align_justify: 'Од руба до руба',
- horizontalrule: 'Убаци хоризонталну линију',
- fullscreen: 'Прикажи преко читавог екрана',
- deleted: 'Избрисано',
- anchor: 'Сидро',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['sr-cir'] = {
+ html: 'ХТМЛ',
+ video: 'Убаци видео',
+ image: 'Убаци фотографију',
+ table: 'Табела',
+ link: 'Веза',
+ link_insert: 'Убаци везу ...',
+ link_edit: 'Edit link',
+ unlink: 'Уклони везу',
+ formatting: 'Стилови',
+ paragraph: 'Параграф',
+ quote: 'Цитат',
+ code: 'Изворни код',
+ header1: 'Заглавље 1',
+ header2: 'Заглавље 2',
+ header3: 'Заглавље 3',
+ header4: 'Заглавље 4',
+ header5: 'Заглавље 5',
+ bold: 'Подебљај',
+ italic: 'Накоси',
+ fontcolor: 'Боја слова',
+ backcolor: 'Боја позадине',
+ unorderedlist: 'Несортирана листа',
+ orderedlist: 'Сортирана листа',
+ outdent: 'Извуци',
+ indent: 'Увуци',
+ redo: 'Корак напред',
+ undo: 'Корак назад',
+ cut: 'Изрежи',
+ cancel: 'Одустани',
+ insert: 'Убаци',
+ save: 'Сачувај',
+ _delete: 'Избриши',
+ insert_table: 'Убаци табелу',
+ insert_row_above: 'Додај ред изнад',
+ insert_row_below: 'Додај ред испод',
+ insert_column_left: 'Додај колону лево',
+ insert_column_right: 'Додај колону десно',
+ delete_column: 'Избриши колону',
+ delete_row: 'Избриши ред',
+ delete_table: 'Избриши табелу',
+ rows: 'Ред',
+ columns: 'Колона',
+ add_head: 'Додај заглавље',
+ delete_head: 'Уклони заглавље',
+ title: 'Наслов',
+ image_position: 'Позиција',
+ none: 'Без',
+ left: 'Лево',
+ right: 'Десно',
+ image_web_link: 'Веб адреса фотографије',
+ text: 'Текст',
+ mailto: 'Емаил',
+ web: 'Веб адреса',
+ video_html_code: 'Видео код',
+ file: 'Датотека',
+ upload: 'Пошаљи',
+ download: 'Преузми',
+ choose: 'Одабери',
+ or_choose: 'Или одабери',
+ drop_file_here: 'Превуци датотеку овде',
+ align_left: 'Поравнај лево',
+ align_center: 'Центрирај',
+ align_right: 'Поравнај десно',
+ align_justify: 'Од руба до руба',
+ horizontalrule: 'Убаци хоризонталну линију',
+ fullscreen: 'Прикажи преко читавог екрана',
+ deleted: 'Избрисано',
+ anchor: 'Сидро',
+ link_new_tab: 'Open link in new tab',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/sr-lat.js b/static/redactor/langs/sr-lat.js
old mode 100755
new mode 100644
index ffdae53..fc216e6
--- a/static/redactor/langs/sr-lat.js
+++ b/static/redactor/langs/sr-lat.js
@@ -1,78 +1,78 @@
-(function ($) {
-$.Redactor.opts.langs['sr-lat'] = {
- html: 'HTML',
- video: 'Ubaci video',
- image: 'Ubaci fotografiju',
- table: 'Tabela',
- link: 'Veza',
- link_insert: 'Ubaci vezu ...',
- link_edit: 'Edit link',
- unlink: 'Ukloni vezu',
- formatting: 'Stilovi',
- paragraph: 'Paragraf',
- quote: 'Citat',
- code: 'Izvorni kod',
- header1: 'Zaglavlje 1',
- header2: 'Zaglavlje 2',
- header3: 'Zaglavlje 3',
- header4: 'Zaglavlje 4',
- header5: 'Zaglavlje 5',
- bold: 'Podebljaj',
- italic: 'Nakosi',
- fontcolor: 'Boja slova',
- backcolor: 'Boja pozadine',
- unorderedlist: 'Nesortirana lista',
- orderedlist: 'Sortirana lista',
- outdent: 'Izvuci',
- indent: 'Uvuci',
- redo: 'Korak napred',
- undo: 'Korak nazad',
- cut: 'Izreži',
- cancel: 'Odustani',
- insert: 'Ubaci',
- save: 'Sačuvaj',
- _delete: 'Izbriši',
- insert_table: 'Ubaci tabelu',
- insert_row_above: 'Dodaj red iznad',
- insert_row_below: 'Dodaj red ispod',
- insert_column_left: 'Dodaj kolonu levo',
- insert_column_right: 'Dodaj kolonu desno',
- delete_column: 'Izbriši kolonu',
- delete_row: 'Izbriši red',
- delete_table: 'Izbriši tabelu',
- rows: 'Red',
- columns: 'Kolona',
- add_head: 'Dodaj zaglavlje',
- delete_head: 'Ukloni zaglavlje',
- title: 'Naslov',
- image_position: 'Pozicija',
- none: 'Bez',
- left: 'Levo',
- right: 'Desno',
- image_web_link: 'Web adresa fotografije',
- text: 'Tekst',
- mailto: 'Email',
- web: 'Web adresa',
- video_html_code: 'Video kod',
- file: 'Datoteka',
- upload: 'Pošalji',
- download: 'Preuzmi',
- choose: 'Odaberi',
- or_choose: 'Ili odaberi',
- drop_file_here: 'Prevuci datoteku ovde',
- align_left: 'Poravnaj levo',
- align_center: 'Centriraj',
- align_right: 'Poravnaj desno',
- align_justify: 'Od ruba do ruba',
- horizontalrule: 'Ubaci horizontalnu liniju',
- fullscreen: 'Prikaz preko čitavog ekrana',
- deleted: 'Izbrisano',
- anchor: 'Sidro',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['sr-lat'] = {
+ html: 'HTML',
+ video: 'Ubaci video',
+ image: 'Ubaci fotografiju',
+ table: 'Tabela',
+ link: 'Veza',
+ link_insert: 'Ubaci vezu ...',
+ link_edit: 'Edit link',
+ unlink: 'Ukloni vezu',
+ formatting: 'Stilovi',
+ paragraph: 'Paragraf',
+ quote: 'Citat',
+ code: 'Izvorni kod',
+ header1: 'Zaglavlje 1',
+ header2: 'Zaglavlje 2',
+ header3: 'Zaglavlje 3',
+ header4: 'Zaglavlje 4',
+ header5: 'Zaglavlje 5',
+ bold: 'Podebljaj',
+ italic: 'Nakosi',
+ fontcolor: 'Boja slova',
+ backcolor: 'Boja pozadine',
+ unorderedlist: 'Nesortirana lista',
+ orderedlist: 'Sortirana lista',
+ outdent: 'Izvuci',
+ indent: 'Uvuci',
+ redo: 'Korak napred',
+ undo: 'Korak nazad',
+ cut: 'Izreži',
+ cancel: 'Odustani',
+ insert: 'Ubaci',
+ save: 'Sačuvaj',
+ _delete: 'Izbriši',
+ insert_table: 'Ubaci tabelu',
+ insert_row_above: 'Dodaj red iznad',
+ insert_row_below: 'Dodaj red ispod',
+ insert_column_left: 'Dodaj kolonu levo',
+ insert_column_right: 'Dodaj kolonu desno',
+ delete_column: 'Izbriši kolonu',
+ delete_row: 'Izbriši red',
+ delete_table: 'Izbriši tabelu',
+ rows: 'Red',
+ columns: 'Kolona',
+ add_head: 'Dodaj zaglavlje',
+ delete_head: 'Ukloni zaglavlje',
+ title: 'Naslov',
+ image_position: 'Pozicija',
+ none: 'Bez',
+ left: 'Levo',
+ right: 'Desno',
+ image_web_link: 'Web adresa fotografije',
+ text: 'Tekst',
+ mailto: 'Email',
+ web: 'Web adresa',
+ video_html_code: 'Video kod',
+ file: 'Datoteka',
+ upload: 'Pošalji',
+ download: 'Preuzmi',
+ choose: 'Odaberi',
+ or_choose: 'Ili odaberi',
+ drop_file_here: 'Prevuci datoteku ovde',
+ align_left: 'Poravnaj levo',
+ align_center: 'Centriraj',
+ align_right: 'Poravnaj desno',
+ align_justify: 'Od ruba do ruba',
+ horizontalrule: 'Ubaci horizontalnu liniju',
+ fullscreen: 'Prikaz preko čitavog ekrana',
+ deleted: 'Izbrisano',
+ anchor: 'Sidro',
+ link_new_tab: 'Open link in new tab',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/sv.js b/static/redactor/langs/sv.js
old mode 100755
new mode 100644
index aeda61a..50712af
--- a/static/redactor/langs/sv.js
+++ b/static/redactor/langs/sv.js
@@ -1,76 +1,76 @@
-(function ($) {
- $.Redactor.opts.langs['sv'] = {
- _delete: 'Tag Bort',
- add_head: 'Lägg Till Tabellhuvud',
- align_center: 'Centerjustera',
- align_justify: 'Marginaljustering',
- align_left: 'Vänsterjustera',
- align_right: 'Högerjustera',
- alignment: 'Justering',
- anchor: 'Ankare',
- backcolor: 'Bakgrundsfärg',
- bold: 'Fet',
- cancel: 'Ångra',
- choose: 'Välj',
- code: 'Kod',
- columns: 'Kolumner',
- delete_column: 'Tag Bort Kolumn',
- delete_head: 'Tag Bort Tabellhuvud',
- delete_row: 'Tag Bort Rad',
- delete_table: 'Tag Bort Tabell',
- deleted: 'Överstruken',
- download: 'Nedladdning',
- drop_file_here: 'Släpp Fil Här',
- edit: 'Ändra',
- file: 'Infoga Fil...',
- filename: 'Namn (valfritt)',
- fontcolor: 'Typsnittsfärg',
- formatting: 'Formatering',
- fullscreen: 'Fullskärm',
- header1: 'Rubrik 1',
- header2: 'Rubrik 2',
- header3: 'Rubrik 3',
- header4: 'Rubrik 4',
- header5: 'Rubrik 5',
- horizontalrule: 'Infoga Horisontell Linje',
- html: 'HTML',
- image: 'Infoga Bild...',
- image_position: 'Position',
- image_web_link: 'Bildlänk',
- indent: 'Öka indentering',
- insert: 'Infoga',
- insert_column_left: 'Lägg Till Vänsterkolumn',
- insert_column_right: 'Lägg Till Högerkolumn',
- insert_row_above: 'Lägg Till Rad Ovanför',
- insert_row_below: 'Lägg Till Rad Under',
- insert_table: 'Infoga Tabell...',
- italic: 'Kursiv',
- left: 'Vänster',
- link: 'Länk',
- link_edit: 'Ändra länk',
- link_insert: 'Infoga Länk...',
- link_new_tab: 'Öppna länk i ny flik',
- mailto: 'E-post',
- none: 'Ingen',
- or_choose: 'Eller Välj',
- orderedlist: 'Ordnad Lista',
- outdent: 'Minska Indentering',
- paragraph: 'Paragraf',
- quote: 'Citat',
- right: 'Höger',
- rows: 'Rader',
- save: 'Spara',
- table: 'Tabell',
- text: 'Text',
- title: 'Titel',
- underline: 'Understryk',
- unlink: 'Tag Bort Länk',
- unorderedlist: 'Oordnad Lista',
- upload: 'Uppladdning',
- video: 'Infoga Video...',
- video_html_code: 'Kod För Inbäddad Video',
- web: 'Webbadress',
- center: 'Center'
- };
-})( jQuery );
-
+(function ($) {
+ $.Redactor.opts.langs['sv'] = {
+ _delete: 'Tag Bort',
+ add_head: 'Lägg Till Tabellhuvud',
+ align_center: 'Centerjustera',
+ align_justify: 'Marginaljustering',
+ align_left: 'Vänsterjustera',
+ align_right: 'Högerjustera',
+ alignment: 'Justering',
+ anchor: 'Ankare',
+ backcolor: 'Bakgrundsfärg',
+ bold: 'Fet',
+ cancel: 'Ångra',
+ choose: 'Välj',
+ code: 'Kod',
+ columns: 'Kolumner',
+ delete_column: 'Tag Bort Kolumn',
+ delete_head: 'Tag Bort Tabellhuvud',
+ delete_row: 'Tag Bort Rad',
+ delete_table: 'Tag Bort Tabell',
+ deleted: 'Överstruken',
+ download: 'Nedladdning',
+ drop_file_here: 'Släpp Fil Här',
+ edit: 'Ändra',
+ file: 'Infoga Fil...',
+ filename: 'Namn (valfritt)',
+ fontcolor: 'Typsnittsfärg',
+ formatting: 'Formatering',
+ fullscreen: 'Fullskärm',
+ header1: 'Rubrik 1',
+ header2: 'Rubrik 2',
+ header3: 'Rubrik 3',
+ header4: 'Rubrik 4',
+ header5: 'Rubrik 5',
+ horizontalrule: 'Infoga Horisontell Linje',
+ html: 'HTML',
+ image: 'Infoga Bild...',
+ image_position: 'Position',
+ image_web_link: 'Bildlänk',
+ indent: 'Öka indentering',
+ insert: 'Infoga',
+ insert_column_left: 'Lägg Till Vänsterkolumn',
+ insert_column_right: 'Lägg Till Högerkolumn',
+ insert_row_above: 'Lägg Till Rad Ovanför',
+ insert_row_below: 'Lägg Till Rad Under',
+ insert_table: 'Infoga Tabell...',
+ italic: 'Kursiv',
+ left: 'Vänster',
+ link: 'Länk',
+ link_edit: 'Ändra länk',
+ link_insert: 'Infoga Länk...',
+ link_new_tab: 'Öppna länk i ny flik',
+ mailto: 'E-post',
+ none: 'Ingen',
+ or_choose: 'Eller Välj',
+ orderedlist: 'Ordnad Lista',
+ outdent: 'Minska Indentering',
+ paragraph: 'Paragraf',
+ quote: 'Citat',
+ right: 'Höger',
+ rows: 'Rader',
+ save: 'Spara',
+ table: 'Tabell',
+ text: 'Text',
+ title: 'Titel',
+ underline: 'Understryk',
+ unlink: 'Tag Bort Länk',
+ unorderedlist: 'Oordnad Lista',
+ upload: 'Uppladdning',
+ video: 'Infoga Video...',
+ video_html_code: 'Kod För Inbäddad Video',
+ web: 'Webbadress',
+ center: 'Center'
+ };
+})( jQuery );
+
diff --git a/static/redactor/langs/th.js b/static/redactor/langs/th.js
old mode 100755
new mode 100644
index 0e0dcaa..fd9f42c
--- a/static/redactor/langs/th.js
+++ b/static/redactor/langs/th.js
@@ -1,74 +1,74 @@
-(function ($) {
-$.Redactor.opts.langs['th'] = {
- html: 'HTML',
- video: 'ใส่วีดีโอ...',
- image: 'แนบรูป...',
- table: 'ตาราง',
- link: 'ลิงค์',
- link_insert: 'ใส่ลิงค์ ...',
- link_edit: 'Edit link',
- unlink: 'ลบลิงค์',
- formatting: 'รูปแบบ',
- paragraph: 'ย่อหน้า',
- quote: 'ข้อความ',
- code: 'โค้ด',
- header1: 'หัวข้อ 1',
- header2: 'หัวข้อ 2',
- header3: 'หัวข้อ 3',
- header4: 'หัวข้อ 4',
- header5: 'หัวข้อ 5',
- bold: 'ตัวหน้า',
- italic: 'ตัวเอียง',
- fontcolor: 'สีตัวอักษร',
- backcolor: 'สีพื้นหลัง',
- unorderedlist: 'รายการแบบไม่มีลำดับ',
- orderedlist: 'รายการแบบมีลำดับ',
- outdent: 'เลื่อนออก',
- indent: 'เลื่อนเข้า',
- cancel: 'ยกเลิก',
- insert: 'แนบ',
- save: 'บันทึก',
- _delete: 'ลบ',
- insert_table: 'ใส่ตาราง...',
- insert_row_above: 'แทรกแถวใหม่ด้านบน',
- insert_row_below: 'แทรกแถวใหม่ด้านล่าง',
- insert_column_left: 'แทรกคอลัมน์ทางซ้าย',
- insert_column_right: 'แทรกคอลัมน์ทางขวา',
- delete_column: 'ลบคอลัมน์',
- delete_row: 'ลบแถว',
- delete_table: 'ลบตาราง',
- rows: 'แถว',
- columns: 'คอลัมน์',
- add_head: 'ใส่หัวข้อ',
- delete_head: 'ลบหัวข้อ',
- title: 'หัวเรื่อง',
- image_position: 'ตำแหน่งรูป',
- none: 'ปรกติ',
- left: 'ซ้าย',
- right: 'ขวา',
- image_web_link: 'ลิงค์รูปภาพ',
- text: 'ตัวอักษร',
- mailto: 'อีเมล',
- web: 'เว็บไซต์',
- video_html_code: 'โค้ดวีดีโอ',
- file: 'แนบไฟล์...',
- upload: 'อัพโหลด',
- download: 'ดาวน์โหลด',
- choose: 'เลือก',
- or_choose: 'หรือเลือกไฟล์',
- drop_file_here: 'ลากไฟล์มาวางที่นี่',
- align_left: 'จัดตัวอักษรชิดซ้าย',
- align_center: 'จัดตัวอักษรกึ่งกลาง',
- align_right: 'จัดตัวอักษรชิดขวา',
- align_justify: 'จัดตัวอักษรแบบพอดีกรอบ',
- horizontalrule: 'ใส่เส้นแบ่งหน้า',
- deleted: 'ขีดออก',
- anchor: 'เชื่อมโยง',
- link_new_tab: 'เปิดลิงค์ในแทปใหม่',
- underline: 'เส้นใต้',
- alignment: 'การจัดวาง',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['th'] = {
+ html: 'HTML',
+ video: 'ใส่วีดีโอ...',
+ image: 'แนบรูป...',
+ table: 'ตาราง',
+ link: 'ลิงค์',
+ link_insert: 'ใส่ลิงค์ ...',
+ link_edit: 'Edit link',
+ unlink: 'ลบลิงค์',
+ formatting: 'รูปแบบ',
+ paragraph: 'ย่อหน้า',
+ quote: 'ข้อความ',
+ code: 'โค้ด',
+ header1: 'หัวข้อ 1',
+ header2: 'หัวข้อ 2',
+ header3: 'หัวข้อ 3',
+ header4: 'หัวข้อ 4',
+ header5: 'หัวข้อ 5',
+ bold: 'ตัวหน้า',
+ italic: 'ตัวเอียง',
+ fontcolor: 'สีตัวอักษร',
+ backcolor: 'สีพื้นหลัง',
+ unorderedlist: 'รายการแบบไม่มีลำดับ',
+ orderedlist: 'รายการแบบมีลำดับ',
+ outdent: 'เลื่อนออก',
+ indent: 'เลื่อนเข้า',
+ cancel: 'ยกเลิก',
+ insert: 'แนบ',
+ save: 'บันทึก',
+ _delete: 'ลบ',
+ insert_table: 'ใส่ตาราง...',
+ insert_row_above: 'แทรกแถวใหม่ด้านบน',
+ insert_row_below: 'แทรกแถวใหม่ด้านล่าง',
+ insert_column_left: 'แทรกคอลัมน์ทางซ้าย',
+ insert_column_right: 'แทรกคอลัมน์ทางขวา',
+ delete_column: 'ลบคอลัมน์',
+ delete_row: 'ลบแถว',
+ delete_table: 'ลบตาราง',
+ rows: 'แถว',
+ columns: 'คอลัมน์',
+ add_head: 'ใส่หัวข้อ',
+ delete_head: 'ลบหัวข้อ',
+ title: 'หัวเรื่อง',
+ image_position: 'ตำแหน่งรูป',
+ none: 'ปรกติ',
+ left: 'ซ้าย',
+ right: 'ขวา',
+ image_web_link: 'ลิงค์รูปภาพ',
+ text: 'ตัวอักษร',
+ mailto: 'อีเมล',
+ web: 'เว็บไซต์',
+ video_html_code: 'โค้ดวีดีโอ',
+ file: 'แนบไฟล์...',
+ upload: 'อัพโหลด',
+ download: 'ดาวน์โหลด',
+ choose: 'เลือก',
+ or_choose: 'หรือเลือกไฟล์',
+ drop_file_here: 'ลากไฟล์มาวางที่นี่',
+ align_left: 'จัดตัวอักษรชิดซ้าย',
+ align_center: 'จัดตัวอักษรกึ่งกลาง',
+ align_right: 'จัดตัวอักษรชิดขวา',
+ align_justify: 'จัดตัวอักษรแบบพอดีกรอบ',
+ horizontalrule: 'ใส่เส้นแบ่งหน้า',
+ deleted: 'ขีดออก',
+ anchor: 'เชื่อมโยง',
+ link_new_tab: 'เปิดลิงค์ในแทปใหม่',
+ underline: 'เส้นใต้',
+ alignment: 'การจัดวาง',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/tr.js b/static/redactor/langs/tr.js
old mode 100755
new mode 100644
index 8d16f11..4cce63d
--- a/static/redactor/langs/tr.js
+++ b/static/redactor/langs/tr.js
@@ -1,75 +1,75 @@
-(function ($) {
-$.Redactor.opts.langs['tr'] = {
- html: 'HTML',
- video: 'Video',
- image: 'Görsel',
- table: 'Tablo',
- link: 'Bağlantı',
- link_insert: 'Bağlantı Ekle ...',
- link_edit: 'Bağlantıyı Düzenle',
- unlink: 'Bağlantı Kaldır',
- formatting: 'Biçimlendirme',
- paragraph: 'Paragraf',
- quote: 'Alıntı',
- code: 'Kod',
- header1: 'Başlık 1',
- header2: 'Başlık 2',
- header3: 'Başlık 3',
- header4: 'Başlık 4',
- header5: 'Başlık 5',
- bold: 'Kalın',
- italic: 'Eğik',
- fontcolor: 'Yazı rengi',
- backcolor: 'Arkaplan rengi',
- unorderedlist: 'Sırasız liste',
- orderedlist: 'Sıralı liste',
- outdent: 'Girintiyi azalt',
- indent: 'Girintiyi artır',
- cancel: 'İptal',
- insert: 'Ekle',
- save: 'Kaydet',
- _delete: 'Sil',
- insert_table: 'Tablo ekle',
- insert_row_above: 'Üste satır ekle',
- insert_row_below: 'Alta satır ekle',
- insert_column_left: 'Sola sütun ekle',
- insert_column_right: 'Sağa sütun ekle',
- delete_column: 'Sütun sil',
- delete_row: 'Satır sil',
- delete_table: 'Tablo sil',
- rows: 'Satırlar',
- columns: 'Sütunlar',
- add_head: 'Başlık ekle',
- delete_head: 'Başlık sil',
- title: 'Başlık',
- image_position: 'Pozisyon',
- none: 'hiçbiri',
- left: 'sol',
- right: 'sağ',
- image_web_link: 'Görselin web bağlantısı',
- text: 'Metin',
- mailto: 'E-Posta',
- web: 'URL',
- video_html_code: 'Video embed kodu',
- file: 'Dosya',
- upload: 'Yükle',
- download: 'İndir',
- choose: 'Seç',
- or_choose: 'Veya seç',
- drop_file_here: 'Dosyayı buraya bırak',
- align_left: 'Sola hizala',
- align_center: 'Ortala',
- align_right: 'Sağa hizala',
- align_justify: 'Satır uzunluğuna ayarla',
- horizontalrule: 'Yatay çizgi',
- fullscreen: 'Tam ekran',
- deleted: 'Silindi',
- anchor: 'Çapa',
- link_new_tab: 'Bağlantıyı yeni pencerede aç',
- underline: 'Altı çizili',
- alignment: 'Hizalama',
- filename: 'Dosya Adı (isteğe bağlı)',
- edit: 'Düzenle',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['tr'] = {
+ html: 'HTML',
+ video: 'Video',
+ image: 'Görsel',
+ table: 'Tablo',
+ link: 'Bağlantı',
+ link_insert: 'Bağlantı Ekle ...',
+ link_edit: 'Bağlantıyı Düzenle',
+ unlink: 'Bağlantı Kaldır',
+ formatting: 'Biçimlendirme',
+ paragraph: 'Paragraf',
+ quote: 'Alıntı',
+ code: 'Kod',
+ header1: 'Başlık 1',
+ header2: 'Başlık 2',
+ header3: 'Başlık 3',
+ header4: 'Başlık 4',
+ header5: 'Başlık 5',
+ bold: 'Kalın',
+ italic: 'Eğik',
+ fontcolor: 'Yazı rengi',
+ backcolor: 'Arkaplan rengi',
+ unorderedlist: 'Sırasız liste',
+ orderedlist: 'Sıralı liste',
+ outdent: 'Girintiyi azalt',
+ indent: 'Girintiyi artır',
+ cancel: 'İptal',
+ insert: 'Ekle',
+ save: 'Kaydet',
+ _delete: 'Sil',
+ insert_table: 'Tablo ekle',
+ insert_row_above: 'Üste satır ekle',
+ insert_row_below: 'Alta satır ekle',
+ insert_column_left: 'Sola sütun ekle',
+ insert_column_right: 'Sağa sütun ekle',
+ delete_column: 'Sütun sil',
+ delete_row: 'Satır sil',
+ delete_table: 'Tablo sil',
+ rows: 'Satırlar',
+ columns: 'Sütunlar',
+ add_head: 'Başlık ekle',
+ delete_head: 'Başlık sil',
+ title: 'Başlık',
+ image_position: 'Pozisyon',
+ none: 'hiçbiri',
+ left: 'sol',
+ right: 'sağ',
+ image_web_link: 'Görselin web bağlantısı',
+ text: 'Metin',
+ mailto: 'E-Posta',
+ web: 'URL',
+ video_html_code: 'Video embed kodu',
+ file: 'Dosya',
+ upload: 'Yükle',
+ download: 'İndir',
+ choose: 'Seç',
+ or_choose: 'Veya seç',
+ drop_file_here: 'Dosyayı buraya bırak',
+ align_left: 'Sola hizala',
+ align_center: 'Ortala',
+ align_right: 'Sağa hizala',
+ align_justify: 'Satır uzunluğuna ayarla',
+ horizontalrule: 'Yatay çizgi',
+ fullscreen: 'Tam ekran',
+ deleted: 'Silindi',
+ anchor: 'Çapa',
+ link_new_tab: 'Bağlantıyı yeni pencerede aç',
+ underline: 'Altı çizili',
+ alignment: 'Hizalama',
+ filename: 'Dosya Adı (isteğe bağlı)',
+ edit: 'Düzenle',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/ua.js b/static/redactor/langs/ua.js
old mode 100755
new mode 100644
index feb37e6..157fe57
--- a/static/redactor/langs/ua.js
+++ b/static/redactor/langs/ua.js
@@ -1,76 +1,76 @@
-(function ($) {
-$.Redactor.opts.langs['ua'] = {
- html: 'Код',
- video: 'Відео',
- image: 'Зображення',
- table: 'Таблиця',
- link: 'Посилання',
- link_insert: 'Вставити посилання ...',
- link_edit: 'Edit link',
- unlink: 'Видалити посилання',
- formatting: 'Стилі',
- paragraph: 'Звичайний текст',
- quote: 'Цитата',
- code: 'Код',
- header1: 'Заголовок 1',
- header2: 'Заголовок 2',
- header3: 'Заголовок 3',
- header4: 'Заголовок 4',
- header5: 'Заголовок 5',
- bold: 'Жирний',
- italic: 'Похилий',
- fontcolor: 'Колір тексту',
- backcolor: 'Заливка тексту',
- unorderedlist: 'Звичайний список',
- orderedlist: 'Нумерований список',
- outdent: 'Зменшити відступ',
- indent: 'Збільшити відступ',
- cancel: 'Скасувати',
- insert: 'Вставити',
- save: 'Зберегти',
- _delete: 'Видалити',
- insert_table: 'Вставити таблицю',
- insert_row_above: 'Додати рядок зверху',
- insert_row_below: 'Додати рядок знизу',
- insert_column_left: 'Додати стовпець ліворуч',
- insert_column_right: 'Додати стовпець праворуч',
- delete_column: 'Видалити стовпець',
- delete_row: 'Видалити рядок',
- delete_table: 'Видалити таблицю',
- rows: 'Рядки',
- columns: 'Стовпці',
- add_head: 'Додати заголовок',
- delete_head: 'Видалити заголовок',
- title: 'Підказка',
- image_view: 'Завантажити зображення',
- image_position: 'Обтікання текстом',
- none: 'ні',
- left: 'ліворуч',
- right: 'праворуч',
- image_web_link: 'Посилання на зображення',
- text: 'Текст',
- mailto: 'Ел. пошта',
- web: 'URL',
- video_html_code: 'Код відео ролика',
- file: 'Файл',
- upload: 'Завантажити',
- download: 'Завантажити',
- choose: 'Вибрати',
- or_choose: 'Або виберіть',
- drop_file_here: 'Перетягніть файл сюди',
- align_left: 'По лівому краю',
- align_center: 'По центру',
- align_right: 'По правому краю',
- align_justify: 'Вирівняти текст по ширині',
- horizontalrule: 'Горизонтальная лінійка',
- fullscreen: 'На весь екран',
- deleted: 'Закреслений',
- anchor: 'Anchor',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
+(function ($) {
+$.Redactor.opts.langs['ua'] = {
+ html: 'Код',
+ video: 'Відео',
+ image: 'Зображення',
+ table: 'Таблиця',
+ link: 'Посилання',
+ link_insert: 'Вставити посилання ...',
+ link_edit: 'Edit link',
+ unlink: 'Видалити посилання',
+ formatting: 'Стилі',
+ paragraph: 'Звичайний текст',
+ quote: 'Цитата',
+ code: 'Код',
+ header1: 'Заголовок 1',
+ header2: 'Заголовок 2',
+ header3: 'Заголовок 3',
+ header4: 'Заголовок 4',
+ header5: 'Заголовок 5',
+ bold: 'Жирний',
+ italic: 'Похилий',
+ fontcolor: 'Колір тексту',
+ backcolor: 'Заливка тексту',
+ unorderedlist: 'Звичайний список',
+ orderedlist: 'Нумерований список',
+ outdent: 'Зменшити відступ',
+ indent: 'Збільшити відступ',
+ cancel: 'Скасувати',
+ insert: 'Вставити',
+ save: 'Зберегти',
+ _delete: 'Видалити',
+ insert_table: 'Вставити таблицю',
+ insert_row_above: 'Додати рядок зверху',
+ insert_row_below: 'Додати рядок знизу',
+ insert_column_left: 'Додати стовпець ліворуч',
+ insert_column_right: 'Додати стовпець праворуч',
+ delete_column: 'Видалити стовпець',
+ delete_row: 'Видалити рядок',
+ delete_table: 'Видалити таблицю',
+ rows: 'Рядки',
+ columns: 'Стовпці',
+ add_head: 'Додати заголовок',
+ delete_head: 'Видалити заголовок',
+ title: 'Підказка',
+ image_view: 'Завантажити зображення',
+ image_position: 'Обтікання текстом',
+ none: 'ні',
+ left: 'ліворуч',
+ right: 'праворуч',
+ image_web_link: 'Посилання на зображення',
+ text: 'Текст',
+ mailto: 'Ел. пошта',
+ web: 'URL',
+ video_html_code: 'Код відео ролика',
+ file: 'Файл',
+ upload: 'Завантажити',
+ download: 'Завантажити',
+ choose: 'Вибрати',
+ or_choose: 'Або виберіть',
+ drop_file_here: 'Перетягніть файл сюди',
+ align_left: 'По лівому краю',
+ align_center: 'По центру',
+ align_right: 'По правому краю',
+ align_justify: 'Вирівняти текст по ширині',
+ horizontalrule: 'Горизонтальная лінійка',
+ fullscreen: 'На весь екран',
+ deleted: 'Закреслений',
+ anchor: 'Anchor',
+ link_new_tab: 'Open link in new tab',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
})( jQuery );
\ No newline at end of file
diff --git a/static/redactor/langs/vi.js b/static/redactor/langs/vi.js
old mode 100755
new mode 100644
index eb7d2ba..0dc45e4
--- a/static/redactor/langs/vi.js
+++ b/static/redactor/langs/vi.js
@@ -1,74 +1,74 @@
-(function ($) {
-$.Redactor.opts.langs['vi'] = {
- html: 'Xem HTML',
- video: 'Chèn Video...',
- image: 'Chèn hình ảnh...',
- table: 'Tạo bảng',
- link: 'Đường dẫn',
- link_insert: 'Thêm đường dẫn ...',
- link_edit: 'Edit link',
- unlink: 'Loại bỏ đường dẫn',
- formatting: 'Định dạng văn bản',
- paragraph: 'Đoạn văn',
- quote: 'Trích dẫn',
- code: 'Chèn mã',
- header1: 'Tiêu đề 1',
- header2: 'Tiêu đề 2',
- header3: 'Tiêu đề 3',
- header4: 'Tiêu đề 4',
- header5: 'Tiêu đề 5',
- bold: 'In đậm',
- italic: 'In nghiêng',
- fontcolor: 'Màu chữ',
- backcolor: 'Đánh dấu đoạn văn',
- unorderedlist: 'Sắp xếp theo danh sách',
- orderedlist: 'Sắp xếp theo thứ tự',
- outdent: 'Bỏ thụt đầu dòng',
- indent: 'Thụt đầu dòng',
- cancel: 'Hủy bỏ',
- insert: 'Chèn',
- save: 'Lưu lại',
- _delete: 'Xóa',
- insert_table: 'Chèn bảng...',
- insert_row_above: 'Thêm hàng bên trên',
- insert_row_below: 'Thêm hàng bên dưới',
- insert_column_left: 'Thêm cột trái',
- insert_column_right: 'Thêm cột phải',
- delete_column: 'Xóa cột',
- delete_row: 'Xóa hàng',
- delete_table: 'Xóa bảng',
- rows: 'Hàng',
- columns: 'Cột',
- add_head: 'Thêm tiêu đề bảng',
- delete_head: 'Xóa tiêu đề bảng',
- title: 'Tiêu đề',
- image_position: 'Vị trí',
- none: 'Không thay đổi',
- left: 'Trái',
- right: 'Phải',
- image_web_link: 'Đường dẫn link ảnh',
- text: 'Văn bản',
- mailto: 'Email',
- web: 'Đường dẫn',
- video_html_code: 'Mã nhúng video',
- file: 'Tập tin đính kèm...',
- upload: 'Tải lên',
- download: 'Tải xuống',
- choose: 'Lựa Chọn',
- or_choose: 'Chọn từ máy tính',
- drop_file_here: 'Kéo thả hình ảnh vào đây',
- align_left: 'Căn trái',
- align_center: 'Căn giữa',
- align_right: 'Căn phải',
- align_justify: 'Dàn đều trang',
- horizontalrule: 'Chèn thanh ngang',
- deleted: 'Xóa',
- anchor: 'Liên kết',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['vi'] = {
+ html: 'Xem HTML',
+ video: 'Chèn Video...',
+ image: 'Chèn hình ảnh...',
+ table: 'Tạo bảng',
+ link: 'Đường dẫn',
+ link_insert: 'Thêm đường dẫn ...',
+ link_edit: 'Edit link',
+ unlink: 'Loại bỏ đường dẫn',
+ formatting: 'Định dạng văn bản',
+ paragraph: 'Đoạn văn',
+ quote: 'Trích dẫn',
+ code: 'Chèn mã',
+ header1: 'Tiêu đề 1',
+ header2: 'Tiêu đề 2',
+ header3: 'Tiêu đề 3',
+ header4: 'Tiêu đề 4',
+ header5: 'Tiêu đề 5',
+ bold: 'In đậm',
+ italic: 'In nghiêng',
+ fontcolor: 'Màu chữ',
+ backcolor: 'Đánh dấu đoạn văn',
+ unorderedlist: 'Sắp xếp theo danh sách',
+ orderedlist: 'Sắp xếp theo thứ tự',
+ outdent: 'Bỏ thụt đầu dòng',
+ indent: 'Thụt đầu dòng',
+ cancel: 'Hủy bỏ',
+ insert: 'Chèn',
+ save: 'Lưu lại',
+ _delete: 'Xóa',
+ insert_table: 'Chèn bảng...',
+ insert_row_above: 'Thêm hàng bên trên',
+ insert_row_below: 'Thêm hàng bên dưới',
+ insert_column_left: 'Thêm cột trái',
+ insert_column_right: 'Thêm cột phải',
+ delete_column: 'Xóa cột',
+ delete_row: 'Xóa hàng',
+ delete_table: 'Xóa bảng',
+ rows: 'Hàng',
+ columns: 'Cột',
+ add_head: 'Thêm tiêu đề bảng',
+ delete_head: 'Xóa tiêu đề bảng',
+ title: 'Tiêu đề',
+ image_position: 'Vị trí',
+ none: 'Không thay đổi',
+ left: 'Trái',
+ right: 'Phải',
+ image_web_link: 'Đường dẫn link ảnh',
+ text: 'Văn bản',
+ mailto: 'Email',
+ web: 'Đường dẫn',
+ video_html_code: 'Mã nhúng video',
+ file: 'Tập tin đính kèm...',
+ upload: 'Tải lên',
+ download: 'Tải xuống',
+ choose: 'Lựa Chọn',
+ or_choose: 'Chọn từ máy tính',
+ drop_file_here: 'Kéo thả hình ảnh vào đây',
+ align_left: 'Căn trái',
+ align_center: 'Căn giữa',
+ align_right: 'Căn phải',
+ align_justify: 'Dàn đều trang',
+ horizontalrule: 'Chèn thanh ngang',
+ deleted: 'Xóa',
+ anchor: 'Liên kết',
+ link_new_tab: 'Open link in new tab',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/zh_cn.js b/static/redactor/langs/zh_cn.js
old mode 100755
new mode 100644
index 228b21e..663347e
--- a/static/redactor/langs/zh_cn.js
+++ b/static/redactor/langs/zh_cn.js
@@ -1,75 +1,75 @@
-(function ($) {
-$.Redactor.opts.langs['zh_cn'] = {
- html: 'HTML代码',
- video: '视频',
- image: '图片',
- table: '表格',
- link: '链接',
- link_insert: '插入链接',
- link_edit: 'Edit link',
- unlink: '取消链接',
- formatting: '样式',
- paragraph: '段落',
- quote: '引用',
- code: '代码',
- header1: '一级标题',
- header2: '二级标题',
- header3: '三级标题',
- header4: '四级标题',
- header5: 'Header 5',
- bold: '粗体',
- italic: '斜体',
- fontcolor: '字体颜色',
- backcolor: '背景颜色',
- unorderedlist: '项目编号',
- orderedlist: '数字编号',
- outdent: '减少缩进',
- indent: '增加缩进',
- cancel: '取消',
- insert: '插入',
- save: '保存',
- _delete: '删除',
- insert_table: '插入表格',
- insert_row_above: '在上方插入',
- insert_row_below: '在下方插入',
- insert_column_left: '在左侧插入',
- insert_column_right: '在右侧插入',
- delete_column: '删除整列',
- delete_row: '删除整行',
- delete_table: '删除表格',
- rows: '行',
- columns: '列',
- add_head: '添加标题',
- delete_head: '删除标题',
- title: '标题',
- image_position: '位置',
- none: '无',
- left: '左',
- right: '右',
- image_web_link: '图片网页链接',
- text: '文本',
- mailto: '邮箱',
- web: '网址',
- video_html_code: '视频嵌入代码',
- file: '文件',
- upload: '上传',
- download: '下载',
- choose: '选择',
- or_choose: '或选择',
- drop_file_here: '将文件拖拽至此区域',
- align_left: '左对齐',
- align_center: '居中',
- align_right: '右对齐',
- align_justify: '两端对齐',
- horizontalrule: '水平线',
- fullscreen: '全屏',
- deleted: '删除',
- anchor: '锚点',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
-})( jQuery );
+(function ($) {
+$.Redactor.opts.langs['zh_cn'] = {
+ html: 'HTML代码',
+ video: '视频',
+ image: '图片',
+ table: '表格',
+ link: '链接',
+ link_insert: '插入链接',
+ link_edit: 'Edit link',
+ unlink: '取消链接',
+ formatting: '样式',
+ paragraph: '段落',
+ quote: '引用',
+ code: '代码',
+ header1: '一级标题',
+ header2: '二级标题',
+ header3: '三级标题',
+ header4: '四级标题',
+ header5: 'Header 5',
+ bold: '粗体',
+ italic: '斜体',
+ fontcolor: '字体颜色',
+ backcolor: '背景颜色',
+ unorderedlist: '项目编号',
+ orderedlist: '数字编号',
+ outdent: '减少缩进',
+ indent: '增加缩进',
+ cancel: '取消',
+ insert: '插入',
+ save: '保存',
+ _delete: '删除',
+ insert_table: '插入表格',
+ insert_row_above: '在上方插入',
+ insert_row_below: '在下方插入',
+ insert_column_left: '在左侧插入',
+ insert_column_right: '在右侧插入',
+ delete_column: '删除整列',
+ delete_row: '删除整行',
+ delete_table: '删除表格',
+ rows: '行',
+ columns: '列',
+ add_head: '添加标题',
+ delete_head: '删除标题',
+ title: '标题',
+ image_position: '位置',
+ none: '无',
+ left: '左',
+ right: '右',
+ image_web_link: '图片网页链接',
+ text: '文本',
+ mailto: '邮箱',
+ web: '网址',
+ video_html_code: '视频嵌入代码',
+ file: '文件',
+ upload: '上传',
+ download: '下载',
+ choose: '选择',
+ or_choose: '或选择',
+ drop_file_here: '将文件拖拽至此区域',
+ align_left: '左对齐',
+ align_center: '居中',
+ align_right: '右对齐',
+ align_justify: '两端对齐',
+ horizontalrule: '水平线',
+ fullscreen: '全屏',
+ deleted: '删除',
+ anchor: '锚点',
+ link_new_tab: 'Open link in new tab',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
+})( jQuery );
diff --git a/static/redactor/langs/zh_tw.js b/static/redactor/langs/zh_tw.js
old mode 100755
new mode 100644
index 58ae9e5..413bfdf
--- a/static/redactor/langs/zh_tw.js
+++ b/static/redactor/langs/zh_tw.js
@@ -1,75 +1,75 @@
-(function ($) {
-$.Redactor.opts.langs['zh_tw'] = {
- html: 'HTML',
- video: '插入影片',
- image: '插入圖片',
- table: '表格',
- link: '連結',
- link_insert: '插入連結',
- link_edit: 'Edit link',
- unlink: '移除連結',
- formatting: '樣式',
- paragraph: '段落',
- quote: '引用',
- code: '原始碼',
- header1: '標題 1',
- header2: '標題 2',
- header3: '標題 3',
- header4: '標題 4',
- header5: '標題 5',
- bold: '將文字變成粗體',
- italic: '將文字變成斜體',
- fontcolor: '選擇文字顏色',
- backcolor: '選擇文字底色',
- unorderedlist: '項目列表',
- orderedlist: '編號列表',
- outdent: '減少縮排',
- indent: '增加縮排',
- cancel: '取消',
- insert: '插入',
- save: '儲存',
- _delete: '刪除',
- insert_table: '插入表格',
- insert_row_above: '加入上方橫列',
- insert_row_below: '加入下方橫列',
- insert_column_left: '加入左方直欄',
- insert_column_right: '加入右方直欄',
- delete_column: '刪除整欄',
- delete_row: '刪除整列',
- delete_table: '刪除表格',
- rows: '橫列',
- columns: '直欄',
- add_head: '加入表格標題',
- delete_head: '刪除表格標題',
- title: '標題',
- image_position: '位置',
- none: '無',
- left: '靠左',
- right: '靠右',
- image_web_link: '連結',
- text: '內文',
- mailto: 'Email',
- web: '網址',
- video_html_code: '嵌入影片的原始碼',
- file: '插入文件',
- upload: '上傳',
- download: '下載',
- choose: '選擇',
- or_choose: '或選擇',
- drop_file_here: '將文件拖曳至此',
- align_left: '將文字對齊至左側',
- align_center: '將文字置中',
- align_right: '將文字對齊至右側',
- align_justify: '對齊至兩側',
- horizontalrule: '插入水平線',
- fullscreen: '全銀幕',
- deleted: '刪除線',
- anchor: '錨點',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- center: 'Center'
-};
+(function ($) {
+$.Redactor.opts.langs['zh_tw'] = {
+ html: 'HTML',
+ video: '插入影片',
+ image: '插入圖片',
+ table: '表格',
+ link: '連結',
+ link_insert: '插入連結',
+ link_edit: 'Edit link',
+ unlink: '移除連結',
+ formatting: '樣式',
+ paragraph: '段落',
+ quote: '引用',
+ code: '原始碼',
+ header1: '標題 1',
+ header2: '標題 2',
+ header3: '標題 3',
+ header4: '標題 4',
+ header5: '標題 5',
+ bold: '將文字變成粗體',
+ italic: '將文字變成斜體',
+ fontcolor: '選擇文字顏色',
+ backcolor: '選擇文字底色',
+ unorderedlist: '項目列表',
+ orderedlist: '編號列表',
+ outdent: '減少縮排',
+ indent: '增加縮排',
+ cancel: '取消',
+ insert: '插入',
+ save: '儲存',
+ _delete: '刪除',
+ insert_table: '插入表格',
+ insert_row_above: '加入上方橫列',
+ insert_row_below: '加入下方橫列',
+ insert_column_left: '加入左方直欄',
+ insert_column_right: '加入右方直欄',
+ delete_column: '刪除整欄',
+ delete_row: '刪除整列',
+ delete_table: '刪除表格',
+ rows: '橫列',
+ columns: '直欄',
+ add_head: '加入表格標題',
+ delete_head: '刪除表格標題',
+ title: '標題',
+ image_position: '位置',
+ none: '無',
+ left: '靠左',
+ right: '靠右',
+ image_web_link: '連結',
+ text: '內文',
+ mailto: 'Email',
+ web: '網址',
+ video_html_code: '嵌入影片的原始碼',
+ file: '插入文件',
+ upload: '上傳',
+ download: '下載',
+ choose: '選擇',
+ or_choose: '或選擇',
+ drop_file_here: '將文件拖曳至此',
+ align_left: '將文字對齊至左側',
+ align_center: '將文字置中',
+ align_right: '將文字對齊至右側',
+ align_justify: '對齊至兩側',
+ horizontalrule: '插入水平線',
+ fullscreen: '全銀幕',
+ deleted: '刪除線',
+ anchor: '錨點',
+ link_new_tab: 'Open link in new tab',
+ underline: 'Underline',
+ alignment: 'Alignment',
+ filename: 'Name (optional)',
+ edit: 'Edit',
+ center: 'Center'
+};
})( jQuery );
\ No newline at end of file
diff --git a/static/redactor/redactor.js b/static/redactor/redactor.js
old mode 100755
new mode 100644
index 0f11c9d..44deabf
--- a/static/redactor/redactor.js
+++ b/static/redactor/redactor.js
@@ -1,9450 +1,9450 @@
-/*
- Redactor 10.2.2
- Updated: July 15, 2015
-
- http://imperavi.com/redactor/
-
- Copyright (c) 2009-2015, Imperavi LLC.
- License: http://imperavi.com/redactor/license/
-
- Usage: $('#content').redactor();
-*/
-
-(function($)
-{
-
- 'use strict';
-
- if (!Function.prototype.bind)
- {
- Function.prototype.bind = function(scope)
- {
- var fn = this;
- return function()
- {
- return fn.apply(scope);
- };
- };
- }
-
- var uuid = 0;
-
- // Plugin
- $.fn.redactor = function(options)
- {
- var val = [];
- var args = Array.prototype.slice.call(arguments, 1);
-
- if (typeof options === 'string')
- {
- this.each(function()
- {
- var instance = $.data(this, 'redactor');
- var func;
-
- if (options.search(/\./) != '-1')
- {
- func = options.split('.');
- if (typeof instance[func[0]] != 'undefined')
- {
- func = instance[func[0]][func[1]];
- }
- }
- else
- {
- func = instance[options];
- }
-
- if (typeof instance !== 'undefined' && $.isFunction(func))
- {
- var methodVal = func.apply(instance, args);
- if (methodVal !== undefined && methodVal !== instance)
- {
- val.push(methodVal);
- }
- }
- else
- {
- $.error('No such method "' + options + '" for Redactor');
- }
- });
- }
- else
- {
- this.each(function()
- {
- $.data(this, 'redactor', {});
- $.data(this, 'redactor', Redactor(this, options));
- });
- }
-
- if (val.length === 0) return this;
- else if (val.length === 1) return val[0];
- else return val;
-
- };
-
- // Initialization
- function Redactor(el, options)
- {
- return new Redactor.prototype.init(el, options);
- }
-
- // Functionality
- $.Redactor = Redactor;
- $.Redactor.VERSION = '10.2.2';
- $.Redactor.modules = ['alignment', 'autosave', 'block', 'buffer', 'build', 'button',
- 'caret', 'clean', 'code', 'core', 'dropdown', 'file', 'focus',
- 'image', 'indent', 'inline', 'insert', 'keydown', 'keyup',
- 'lang', 'line', 'link', 'linkify', 'list', 'modal', 'observe', 'paragraphize',
- 'paste', 'placeholder', 'progress', 'selection', 'shortcuts',
- 'tabifier', 'tidy', 'toolbar', 'upload', 'utils'];
-
- $.Redactor.opts = {
-
- // settings
- lang: 'en',
- direction: 'ltr', // ltr or rtl
-
- plugins: false, // array
-
- focus: false,
- focusEnd: false,
-
- placeholder: false,
-
- visual: true,
- tabindex: false,
-
- minHeight: false,
- maxHeight: false,
-
- linebreaks: false,
- replaceDivs: true,
- paragraphize: true,
- cleanStyleOnEnter: false,
- enterKey: true,
-
- cleanOnPaste: true,
- cleanSpaces: true,
- pastePlainText: false,
-
- autosave: false, // false or url
- autosaveName: false,
- autosaveInterval: 60, // seconds
- autosaveOnChange: false,
- autosaveFields: false,
-
- linkTooltip: true,
- linkProtocol: 'http',
- linkNofollow: false,
- linkSize: 50,
-
- imageEditable: true,
- imageLink: true,
- imagePosition: true,
- imageFloatMargin: '10px',
- imageResizable: true,
-
- imageUpload: null,
- imageUploadParam: 'file',
-
- uploadImageField: false,
-
- dragImageUpload: true,
-
- fileUpload: null,
- fileUploadParam: 'file',
-
- dragFileUpload: true,
-
- s3: false,
-
- convertLinks: true,
- convertUrlLinks: true,
- convertImageLinks: true,
- convertVideoLinks: true,
-
- preSpaces: 4, // or false
- tabAsSpaces: false, // true or number of spaces
- tabKey: true,
-
- scrollTarget: false,
-
- toolbar: true,
- toolbarFixed: true,
- toolbarFixedTarget: document,
- toolbarFixedTopOffset: 0, // pixels
- toolbarExternal: false, // ID selector
- toolbarOverflow: false,
-
- source: true,
- buttons: ['html', 'formatting', 'bold', 'italic', 'deleted', 'unorderedlist', 'orderedlist',
- 'outdent', 'indent', 'image', 'file', 'link', 'alignment', 'horizontalrule'], // + 'underline'
-
- buttonsHide: [],
- buttonsHideOnMobile: [],
-
- formatting: ['p', 'blockquote', 'pre', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'],
- formattingAdd: false,
-
- tabifier: true,
-
- deniedTags: ['script', 'style'],
- allowedTags: false, // or array
-
- paragraphizeBlocks: ['table', 'div', 'pre', 'form', 'ul', 'ol', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'dl', 'blockquote', 'figcaption',
- 'address', 'section', 'header', 'footer', 'aside', 'article', 'object', 'style', 'script', 'iframe', 'select', 'input', 'textarea',
- 'button', 'option', 'map', 'area', 'math', 'hr', 'fieldset', 'legend', 'hgroup', 'nav', 'figure', 'details', 'menu', 'summary', 'p'],
-
- removeComments: false,
- replaceTags: [
- ['strike', 'del'],
- ['b', 'strong']
- ],
- replaceStyles: [
- ['font-weight:\\s?bold', "strong"],
- ['font-style:\\s?italic', "em"],
- ['text-decoration:\\s?underline', "u"],
- ['text-decoration:\\s?line-through', 'del']
- ],
- removeDataAttr: false,
-
- removeAttr: false, // or multi array
- allowedAttr: false, // or multi array
-
- removeWithoutAttr: ['span'], // or false
- removeEmpty: ['p'], // or false;
-
- activeButtons: ['deleted', 'italic', 'bold', 'underline', 'unorderedlist', 'orderedlist',
- 'alignleft', 'aligncenter', 'alignright', 'justify'],
- activeButtonsStates: {
- b: 'bold',
- strong: 'bold',
- i: 'italic',
- em: 'italic',
- del: 'deleted',
- strike: 'deleted',
- ul: 'unorderedlist',
- ol: 'orderedlist',
- u: 'underline'
- },
-
- shortcuts: {
- 'ctrl+shift+m, meta+shift+m': { func: 'inline.removeFormat' },
- 'ctrl+b, meta+b': { func: 'inline.format', params: ['bold'] },
- 'ctrl+i, meta+i': { func: 'inline.format', params: ['italic'] },
- 'ctrl+h, meta+h': { func: 'inline.format', params: ['superscript'] },
- 'ctrl+l, meta+l': { func: 'inline.format', params: ['subscript'] },
- 'ctrl+k, meta+k': { func: 'link.show' },
- 'ctrl+shift+7': { func: 'list.toggle', params: ['orderedlist'] },
- 'ctrl+shift+8': { func: 'list.toggle', params: ['unorderedlist'] }
- },
- shortcutsAdd: false,
-
- // private
- buffer: [],
- rebuffer: [],
- emptyHtml: '
',
- invisibleSpace: '',
- imageTypes: ['image/png', 'image/jpeg', 'image/gif'],
- indentValue: 20,
- verifiedTags: ['a', 'img', 'b', 'strong', 'sub', 'sup', 'i', 'em', 'u', 'small', 'strike', 'del', 'cite', 'ul', 'ol', 'li'], // and for span tag special rule
- inlineTags: ['strong', 'b', 'u', 'em', 'i', 'code', 'del', 'ins', 'samp', 'kbd', 'sup', 'sub', 'mark', 'var', 'cite', 'small'],
- alignmentTags: ['P', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'DL', 'DT', 'DD', 'DIV', 'TD', 'BLOCKQUOTE', 'OUTPUT', 'FIGCAPTION', 'ADDRESS', 'SECTION', 'HEADER', 'FOOTER', 'ASIDE', 'ARTICLE'],
- blockLevelElements: ['PRE', 'UL', 'OL', 'LI'],
- highContrast: false,
- observe: {
- dropdowns: []
- },
-
- // lang
- langs: {
- en: {
- html: 'HTML',
- video: 'Insert Video',
- image: 'Insert Image',
- table: 'Table',
- link: 'Link',
- link_insert: 'Insert link',
- link_edit: 'Edit link',
- unlink: 'Unlink',
- formatting: 'Formatting',
- paragraph: 'Normal text',
- quote: 'Quote',
- code: 'Code',
- header1: 'Header 1',
- header2: 'Header 2',
- header3: 'Header 3',
- header4: 'Header 4',
- header5: 'Header 5',
- bold: 'Bold',
- italic: 'Italic',
- fontcolor: 'Font Color',
- backcolor: 'Back Color',
- unorderedlist: 'Unordered List',
- orderedlist: 'Ordered List',
- outdent: 'Outdent',
- indent: 'Indent',
- cancel: 'Cancel',
- insert: 'Insert',
- save: 'Save',
- _delete: 'Delete',
- insert_table: 'Insert Table',
- insert_row_above: 'Add Row Above',
- insert_row_below: 'Add Row Below',
- insert_column_left: 'Add Column Left',
- insert_column_right: 'Add Column Right',
- delete_column: 'Delete Column',
- delete_row: 'Delete Row',
- delete_table: 'Delete Table',
- rows: 'Rows',
- columns: 'Columns',
- add_head: 'Add Head',
- delete_head: 'Delete Head',
- title: 'Title',
- image_position: 'Position',
- none: 'None',
- left: 'Left',
- right: 'Right',
- center: 'Center',
- image_web_link: 'Image Web Link',
- text: 'Text',
- mailto: 'Email',
- web: 'URL',
- video_html_code: 'Video Embed Code or Youtube/Vimeo Link',
- file: 'Insert File',
- upload: 'Upload',
- download: 'Download',
- choose: 'Choose',
- or_choose: 'Or choose',
- drop_file_here: 'Drop file here',
- align_left: 'Align text to the left',
- align_center: 'Center text',
- align_right: 'Align text to the right',
- align_justify: 'Justify text',
- horizontalrule: 'Insert Horizontal Rule',
- deleted: 'Deleted',
- anchor: 'Anchor',
- link_new_tab: 'Open link in new tab',
- underline: 'Underline',
- alignment: 'Alignment',
- filename: 'Name (optional)',
- edit: 'Edit',
- upload_label: 'Drop file here or '
- }
- },
-
- linkify: {
- regexps: {
- youtube: /https?:\/\/(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube\.com\S*[^\w\-\s])([\w\-]{11})(?=[^\w\-]|$)(?![?=&+%\w.\-]*(?:['"][^<>]*>|<\/a>))[?=&+%\w.-]*/ig,
- vimeo: /https?:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/,
- image: /((https?|www)[^\s]+\.)(jpe?g|png|gif)(\?[^\s-]+)?/ig,
- url: /(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/ig,
- }
- },
-
- codemirror: false
- };
-
- // Functionality
- Redactor.fn = $.Redactor.prototype = {
-
- keyCode: {
- BACKSPACE: 8,
- DELETE: 46,
- UP: 38,
- DOWN: 40,
- ENTER: 13,
- SPACE: 32,
- ESC: 27,
- TAB: 9,
- CTRL: 17,
- META: 91,
- SHIFT: 16,
- ALT: 18,
- RIGHT: 39,
- LEFT: 37,
- LEFT_WIN: 91
- },
-
- // Initialization
- init: function(el, options)
- {
- this.$element = $(el);
- this.uuid = uuid++;
-
- // if paste event detected = true
- this.rtePaste = false;
- this.$pasteBox = false;
-
- this.loadOptions(options);
- this.loadModules();
-
- // formatting storage
- this.formatting = {};
-
- // block level tags
- $.merge(this.opts.blockLevelElements, this.opts.alignmentTags);
- this.reIsBlock = new RegExp('^(' + this.opts.blockLevelElements.join('|' ) + ')$', 'i');
-
- // setup allowed and denied tags
- this.tidy.setupAllowed();
-
- // setup denied tags
- if (this.opts.deniedTags !== false)
- {
- var tags = ['html', 'head', 'link', 'body', 'meta', 'applet'];
- for (var i = 0; i < tags.length; i++)
- {
- this.opts.deniedTags.push(tags[i]);
- }
- }
-
- // load lang
- this.lang.load();
-
- // extend shortcuts
- $.extend(this.opts.shortcuts, this.opts.shortcutsAdd);
-
- // start callback
- this.core.setCallback('start');
-
- // build
- this.start = true;
- this.build.run();
- },
-
- loadOptions: function(options)
- {
- this.opts = $.extend(
- {},
- $.extend(true, {}, $.Redactor.opts),
- this.$element.data(),
- options
- );
- },
- getModuleMethods: function(object)
- {
- return Object.getOwnPropertyNames(object).filter(function(property)
- {
- return typeof object[property] == 'function';
- });
- },
- loadModules: function()
- {
- var len = $.Redactor.modules.length;
- for (var i = 0; i < len; i++)
- {
- this.bindModuleMethods($.Redactor.modules[i]);
- }
- },
- bindModuleMethods: function(module)
- {
- if (typeof this[module] == 'undefined') return;
-
- // init module
- this[module] = this[module]();
-
- var methods = this.getModuleMethods(this[module]);
- var len = methods.length;
-
- // bind methods
- for (var z = 0; z < len; z++)
- {
- this[module][methods[z]] = this[module][methods[z]].bind(this);
- }
- },
- alignment: function()
- {
- return {
- left: function()
- {
- this.alignment.set('');
- },
- right: function()
- {
- this.alignment.set('right');
- },
- center: function()
- {
- this.alignment.set('center');
- },
- justify: function()
- {
- this.alignment.set('justify');
- },
- set: function(type)
- {
- // focus
- if (!this.utils.browser('msie')) this.$editor.focus();
-
- this.buffer.set();
- this.selection.save();
-
- // get blocks
- this.alignment.blocks = this.selection.getBlocks();
- this.alignment.type = type;
-
- // set alignment
- if (this.alignment.isLinebreaksOrNoBlocks())
- {
- this.alignment.setText();
- }
- else
- {
- this.alignment.setBlocks();
- }
-
- // sync
- this.selection.restore();
- this.code.sync();
- },
- setText: function()
- {
- var wrapper = this.selection.wrap('div');
- $(wrapper).attr('data-tagblock', 'redactor').css('text-align', this.alignment.type);
- },
- setBlocks: function()
- {
- $.each(this.alignment.blocks, $.proxy(function(i, el)
- {
- var $el = this.utils.getAlignmentElement(el);
- if (!$el) return;
-
- if (this.alignment.isNeedReplaceElement($el))
- {
- this.alignment.replaceElement($el);
- }
- else
- {
- this.alignment.alignElement($el);
- }
-
- }, this));
- },
- isLinebreaksOrNoBlocks: function()
- {
- return (this.opts.linebreaks && this.alignment.blocks[0] === false);
- },
- isNeedReplaceElement: function($el)
- {
- return (this.alignment.type === '' && typeof($el.data('tagblock')) !== 'undefined');
- },
- replaceElement: function($el)
- {
- $el.replaceWith($el.html());
- },
- alignElement: function($el)
- {
- $el.css('text-align', this.alignment.type);
- this.utils.removeEmptyAttr($el, 'style');
- }
- };
- },
- autosave: function()
- {
- return {
- html: false,
- enable: function()
- {
- if (!this.opts.autosave) return;
-
- this.autosave.name = (this.opts.autosaveName) ? this.opts.autosaveName : this.$textarea.attr('name');
-
- if (this.opts.autosaveOnChange) return;
- this.autosaveInterval = setInterval(this.autosave.load, this.opts.autosaveInterval * 1000);
- },
- onChange: function()
- {
- if (!this.opts.autosaveOnChange) return;
- this.autosave.load();
- },
- load: function()
- {
- this.autosave.source = this.code.get();
-
- if (this.autosave.html === this.autosave.source) return;
-
- // data
- var data = {};
- data['name'] = this.autosave.name;
- data[this.autosave.name] = this.autosave.source;
- data = this.autosave.getHiddenFields(data);
-
- // ajax
- var jsxhr = $.ajax({
- url: this.opts.autosave,
- type: 'post',
- data: data
- });
-
- jsxhr.done(this.autosave.success);
- },
- getHiddenFields: function(data)
- {
- if (this.opts.autosaveFields === false || typeof this.opts.autosaveFields !== 'object')
- {
- return data;
- }
-
- $.each(this.opts.autosaveFields, $.proxy(function(k, v)
- {
- if (v !== null && v.toString().indexOf('#') === 0) v = $(v).val();
- data[k] = v;
-
- }, this));
-
- return data;
-
- },
- success: function(data)
- {
- var json;
- try
- {
- json = $.parseJSON(data);
- }
- catch(e)
- {
- //data has already been parsed
- json = data;
- }
-
- var callbackName = (typeof json.error == 'undefined') ? 'autosave' : 'autosaveError';
-
- this.core.setCallback(callbackName, this.autosave.name, json);
- this.autosave.html = this.autosave.source;
- },
- disable: function()
- {
- clearInterval(this.autosaveInterval);
- }
- };
- },
- block: function()
- {
- return {
- formatting: function(name)
- {
- this.block.clearStyle = false;
- var type, value;
-
- if (typeof this.formatting[name].data != 'undefined') type = 'data';
- else if (typeof this.formatting[name].attr != 'undefined') type = 'attr';
- else if (typeof this.formatting[name]['class'] != 'undefined') type = 'class';
-
- if (typeof this.formatting[name].clear != 'undefined')
- {
- this.block.clearStyle = true;
- }
-
- if (type) value = this.formatting[name][type];
-
- this.block.format(this.formatting[name].tag, type, value);
-
- },
- format: function(tag, type, value)
- {
- if (tag == 'quote') tag = 'blockquote';
-
- var formatTags = ['p', 'pre', 'blockquote', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'];
- if ($.inArray(tag, formatTags) == -1) return;
-
- this.block.isRemoveInline = (tag == 'pre' || tag.search(/h[1-6]/i) != -1);
-
- // focus
- if (!this.utils.browser('msie')) this.$editor.focus();
-
- var html = $.trim(this.$editor.html());
- this.block.isEmpty = this.utils.isEmpty(html);
-
- // FF focus
- if (this.utils.browser('mozilla') && !this.focus.isFocused())
- {
- if (this.block.isEmpty)
- {
- var $first;
- if (!this.opts.linebreaks)
- {
- $first = this.$editor.children().first();
- this.caret.setEnd($first);
- }
- }
- }
-
- this.block.blocks = this.selection.getBlocks();
-
- this.block.blocksSize = this.block.blocks.length;
- this.block.type = type;
- this.block.value = value;
-
- this.buffer.set();
- this.selection.save();
-
- this.block.set(tag);
-
- this.selection.restore();
- this.code.sync();
- this.observe.load();
-
- },
- set: function(tag)
- {
-
- this.selection.get();
- this.block.containerTag = this.range.commonAncestorContainer.tagName;
-
- if (this.range.collapsed)
- {
- this.block.setCollapsed(tag);
- }
- else
- {
- this.block.setMultiple(tag);
- }
- },
- setCollapsed: function(tag)
- {
- if (this.opts.linebreaks && this.block.isEmpty && tag != 'p')
- {
- var node = document.createElement(tag);
- this.$editor.html(node);
- this.caret.setEnd(node);
-
- return;
- }
-
-
- var block = this.block.blocks[0];
- if (block === false) return;
-
- if (block.tagName == 'LI')
- {
- if (tag != 'blockquote') return;
-
- this.block.formatListToBlockquote();
- return;
- }
-
- var isContainerTable = (this.block.containerTag == 'TD' || this.block.containerTag == 'TH');
- if (isContainerTable && !this.opts.linebreaks)
- {
- document.execCommand('formatblock', false, '<' + tag + '>');
-
- block = this.selection.getBlock();
- this.block.toggle($(block));
-
- }
- else if (block.tagName.toLowerCase() != tag)
- {
- if (this.opts.linebreaks && tag == 'p')
- {
- $(block).append('
');
- this.utils.replaceWithContents(block);
- }
- else
- {
- var $formatted = this.utils.replaceToTag(block, tag);
-
- this.block.toggle($formatted);
-
- if (tag != 'p' && tag != 'blockquote') $formatted.find('img').remove();
- if (this.block.isRemoveInline) this.utils.removeInlineTags($formatted);
- if (tag == 'p' || this.block.headTag) $formatted.find('p').contents().unwrap();
-
- this.block.formatTableWrapping($formatted);
- }
- }
- else if (tag == 'blockquote' && block.tagName.toLowerCase() == tag)
- {
- // blockquote off
- if (this.opts.linebreaks)
- {
- $(block).append('
');
- this.utils.replaceWithContents(block);
- }
- else
- {
- var $el = this.utils.replaceToTag(block, 'p');
- this.block.toggle($el);
- }
- }
- else if (block.tagName.toLowerCase() == tag)
- {
- this.block.toggle($(block));
- }
-
-
- if (typeof this.block.type == 'undefined' && typeof this.block.value == 'undefined')
- {
- $(block).removeAttr('class').removeAttr('style');
- }
- },
- setMultiple: function(tag)
- {
- var block = this.block.blocks[0];
- var isContainerTable = (this.block.containerTag == 'TD' || this.block.containerTag == 'TH');
-
- if (block !== false && this.block.blocksSize === 1)
- {
- if (block.tagName.toLowerCase() == tag && tag == 'blockquote')
- {
- // blockquote off
- if (this.opts.linebreaks)
- {
- $(block).append('
');
- this.utils.replaceWithContents(block);
- }
- else
- {
- var $el = this.utils.replaceToTag(block, 'p');
- this.block.toggle($el);
- }
- }
- else if (block.tagName == 'LI')
- {
- if (tag != 'blockquote') return;
-
- this.block.formatListToBlockquote();
- }
- else if (this.block.containerTag == 'BLOCKQUOTE')
- {
- this.block.formatBlockquote(tag);
- }
- else if (this.opts.linebreaks && ((isContainerTable) || (this.range.commonAncestorContainer != block)))
- {
- this.block.formatWrap(tag);
- }
- else
- {
- if (this.opts.linebreaks && tag == 'p')
- {
- $(block).prepend('
').append('
');
- this.utils.replaceWithContents(block);
- }
- else if (block.tagName === 'TD')
- {
- this.block.formatWrap(tag);
- }
- else
- {
- var $formatted = this.utils.replaceToTag(block, tag);
-
- this.block.toggle($formatted);
-
- if (this.block.isRemoveInline) this.utils.removeInlineTags($formatted);
- if (tag == 'p' || this.block.headTag) $formatted.find('p').contents().unwrap();
- }
- }
- }
- else
- {
- if (this.opts.linebreaks || tag != 'p')
- {
- if (tag == 'blockquote')
- {
- var count = 0;
- for (var i = 0; i < this.block.blocksSize; i++)
- {
- if (this.block.blocks[i].tagName == 'BLOCKQUOTE') count++;
- }
-
- // only blockquote selected
- if (count == this.block.blocksSize)
- {
- $.each(this.block.blocks, $.proxy(function(i,s)
- {
- var $formatted = false;
- if (this.opts.linebreaks)
- {
- $(s).prepend('
').append('
');
- $formatted = this.utils.replaceWithContents(s);
- }
- else
- {
- $formatted = this.utils.replaceToTag(s, 'p');
- }
-
- if ($formatted && typeof this.block.type == 'undefined' && typeof this.block.value == 'undefined')
- {
- $formatted.removeAttr('class').removeAttr('style');
- }
-
- }, this));
-
- return;
- }
-
- }
-
- this.block.formatWrap(tag);
- }
- else
- {
- var classSize = 0;
- var toggleType = false;
- if (this.block.type == 'class')
- {
- toggleType = 'toggle';
- classSize = $(this.block.blocks).filter('.' + this.block.value).length;
-
- if (this.block.blocksSize == classSize) toggleType = 'toggle';
- else if (this.block.blocksSize > classSize) toggleType = 'set';
- else if (classSize === 0) toggleType = 'set';
-
- }
-
- var exceptTags = ['ul', 'ol', 'li', 'td', 'th', 'dl', 'dt', 'dd'];
- $.each(this.block.blocks, $.proxy(function(i,s)
- {
- if ($.inArray(s.tagName.toLowerCase(), exceptTags) != -1) return;
-
- var $formatted = this.utils.replaceToTag(s, tag);
-
- if (toggleType)
- {
- if (toggleType == 'toggle') this.block.toggle($formatted);
- else if (toggleType == 'remove') this.block.remove($formatted);
- else if (toggleType == 'set') this.block.setForce($formatted);
- }
- else this.block.toggle($formatted);
-
- if (tag != 'p' && tag != 'blockquote') $formatted.find('img').remove();
- if (this.block.isRemoveInline) this.utils.removeInlineTags($formatted);
- if (tag == 'p' || this.block.headTag) $formatted.find('p').contents().unwrap();
-
- if (typeof this.block.type == 'undefined' && typeof this.block.value == 'undefined')
- {
- $formatted.removeAttr('class').removeAttr('style');
- }
-
-
- }, this));
- }
- }
- },
- setForce: function($el)
- {
- // remove style and class if the specified setting
- if (this.block.clearStyle)
- {
- $el.removeAttr('class').removeAttr('style');
- }
-
- if (this.block.type == 'class')
- {
- $el.addClass(this.block.value);
-
- }
- else if (this.block.type == 'attr' || this.block.type == 'data')
- {
- $el.attr(this.block.value.name, this.block.value.value);
-
- }
- },
- toggle: function($el)
- {
- // remove style and class if the specified setting
- if (this.block.clearStyle)
- {
- $el.removeAttr('class').removeAttr('style');
- }
-
- if (this.block.type == 'class')
- {
- $el.toggleClass(this.block.value);
-
- }
- else if (this.block.type == 'attr' || this.block.type == 'data')
- {
- if ($el.attr(this.block.value.name) == this.block.value.value)
- {
- $el.removeAttr(this.block.value.name);
- }
- else
- {
- $el.attr(this.block.value.name, this.block.value.value);
- }
-
-
- }
- else
- {
- $el.removeAttr('style class');
-
- }
- },
- remove: function($el)
- {
- $el.removeClass(this.block.value);
- },
- formatListToBlockquote: function()
- {
- var block = $(this.block.blocks[0]).closest('ul, ol', this.$editor[0]);
-
- $(block).find('ul, ol').contents().unwrap();
- $(block).find('li').append($('
')).contents().unwrap();
-
- var $el = this.utils.replaceToTag(block, 'blockquote');
- this.block.toggle($el);
- },
- formatBlockquote: function(tag)
- {
- document.execCommand('outdent');
- document.execCommand('formatblock', false, tag);
-
- this.clean.clearUnverified();
- this.$editor.find('p:empty').remove();
-
- var formatted = this.selection.getBlock();
-
- if (tag != 'p')
- {
- $(formatted).find('img').remove();
- }
-
- if (!this.opts.linebreaks)
- {
- this.block.toggle($(formatted));
- }
-
- this.$editor.find('ul, ol, tr, blockquote, p').each($.proxy(this.utils.removeEmpty, this));
-
- if (this.opts.linebreaks && tag == 'p')
- {
- this.utils.replaceWithContents(formatted);
- }
-
- },
- formatWrap: function(tag)
- {
- if (this.block.containerTag == 'UL' || this.block.containerTag == 'OL')
- {
- if (tag == 'blockquote')
- {
- this.block.formatListToBlockquote();
- }
- else
- {
- return;
- }
- }
-
- var formatted = this.selection.wrap(tag);
- if (formatted === false) return;
-
- var $formatted = $(formatted);
-
- this.block.formatTableWrapping($formatted);
-
- var $elements = $formatted.find(this.opts.blockLevelElements.join(',') + ', td, table, thead, tbody, tfoot, th, tr');
-
- $elements.contents().unwrap();
-
- if (tag != 'p' && tag != 'blockquote') $formatted.find('img').remove();
-
- $.each(this.block.blocks, $.proxy(this.utils.removeEmpty, this));
-
- $formatted.append(this.selection.getMarker(2));
-
- if (!this.opts.linebreaks)
- {
- this.block.toggle($formatted);
- }
-
- this.$editor.find('ul, ol, tr, blockquote, p').each($.proxy(this.utils.removeEmpty, this));
- $formatted.find('blockquote:empty').remove();
-
- if (this.block.isRemoveInline)
- {
- this.utils.removeInlineTags($formatted);
- }
-
- if (this.opts.linebreaks && tag == 'p')
- {
- this.utils.replaceWithContents($formatted);
- }
-
- if (this.opts.linebreaks)
- {
- var $next = $formatted.next().next();
- if ($next.size() != 0 && $next[0].tagName === 'BR')
- {
- $next.remove();
- }
- }
-
-
-
- },
- formatTableWrapping: function($formatted)
- {
- if ($formatted.closest('table', this.$editor[0]).length === 0) return;
-
- if ($formatted.closest('tr', this.$editor[0]).length === 0) $formatted.wrap('
');
- if ($formatted.closest('td', this.$editor[0]).length === 0 && $formatted.closest('th').length === 0)
- {
- $formatted.wrap('');
- }
- },
- removeData: function(name, value)
- {
- var blocks = this.selection.getBlocks();
- $(blocks).removeAttr('data-' + name);
-
- this.code.sync();
- },
- setData: function(name, value)
- {
- var blocks = this.selection.getBlocks();
- $(blocks).attr('data-' + name, value);
-
- this.code.sync();
- },
- toggleData: function(name, value)
- {
- var blocks = this.selection.getBlocks();
- $.each(blocks, function()
- {
- if ($(this).attr('data-' + name))
- {
- $(this).removeAttr('data-' + name);
- }
- else
- {
- $(this).attr('data-' + name, value);
- }
- });
- },
- removeAttr: function(attr, value)
- {
- var blocks = this.selection.getBlocks();
- $(blocks).removeAttr(attr);
-
- this.code.sync();
- },
- setAttr: function(attr, value)
- {
- var blocks = this.selection.getBlocks();
- $(blocks).attr(attr, value);
-
- this.code.sync();
- },
- toggleAttr: function(attr, value)
- {
- var blocks = this.selection.getBlocks();
- $.each(blocks, function()
- {
- if ($(this).attr(name))
- {
- $(this).removeAttr(name);
- }
- else
- {
- $(this).attr(name, value);
- }
- });
- },
- removeClass: function(className)
- {
- var blocks = this.selection.getBlocks();
- $(blocks).removeClass(className);
-
- this.utils.removeEmptyAttr(blocks, 'class');
-
- this.code.sync();
- },
- setClass: function(className)
- {
- var blocks = this.selection.getBlocks();
- $(blocks).addClass(className);
-
- this.code.sync();
- },
- toggleClass: function(className)
- {
- var blocks = this.selection.getBlocks();
- $(blocks).toggleClass(className);
-
- this.code.sync();
- }
- };
- },
- buffer: function()
- {
- return {
- set: function(type)
- {
- if (typeof type == 'undefined' || type == 'undo')
- {
- this.buffer.setUndo();
- }
- else
- {
- this.buffer.setRedo();
- }
- },
- setUndo: function()
- {
- this.selection.save();
- this.opts.buffer.push(this.$editor.html());
- this.selection.restore();
- },
- setRedo: function()
- {
- this.selection.save();
- this.opts.rebuffer.push(this.$editor.html());
- this.selection.restore();
- },
- getUndo: function()
- {
- this.$editor.html(this.opts.buffer.pop());
- },
- getRedo: function()
- {
- this.$editor.html(this.opts.rebuffer.pop());
- },
- add: function()
- {
- this.opts.buffer.push(this.$editor.html());
- },
- undo: function()
- {
- if (this.opts.buffer.length === 0) return;
-
- this.buffer.set('redo');
- this.buffer.getUndo();
-
- this.selection.restore();
-
- setTimeout($.proxy(this.observe.load, this), 50);
- },
- redo: function()
- {
- if (this.opts.rebuffer.length === 0) return;
-
- this.buffer.set('undo');
- this.buffer.getRedo();
-
- this.selection.restore();
-
- setTimeout($.proxy(this.observe.load, this), 50);
- }
- };
- },
- build: function()
- {
- return {
- run: function()
- {
- this.build.createContainerBox();
- this.build.loadContent();
- this.build.loadEditor();
- this.build.enableEditor();
- this.build.setCodeAndCall();
- },
- isTextarea: function()
- {
- return (this.$element[0].tagName === 'TEXTAREA');
- },
- createContainerBox: function()
- {
- this.$box = $('
');
- },
- createTextarea: function()
- {
- this.$textarea = $(' ').attr('name', this.build.getTextareaName());
- },
- getTextareaName: function()
- {
- return ((typeof(name) == 'undefined')) ? 'content-' + this.uuid : this.$element.attr('id');
- },
- loadContent: function()
- {
- var func = (this.build.isTextarea()) ? 'val' : 'html';
- this.content = $.trim(this.$element[func]());
- },
- enableEditor: function()
- {
- this.$editor.attr({ 'contenteditable': true, 'dir': this.opts.direction });
- },
- loadEditor: function()
- {
- var func = (this.build.isTextarea()) ? 'fromTextarea' : 'fromElement';
- this.build[func]();
- },
- fromTextarea: function()
- {
- this.$editor = $('
');
- this.$textarea = this.$element;
- this.$box.insertAfter(this.$element).append(this.$editor).append(this.$element);
- this.$editor.addClass('redactor-editor');
-
- this.$element.hide();
- },
- fromElement: function()
- {
- this.$editor = this.$element;
- this.build.createTextarea();
- this.$box.insertAfter(this.$editor).append(this.$editor).append(this.$textarea);
- this.$editor.addClass('redactor-editor');
-
- this.$textarea.hide();
- },
- setCodeAndCall: function()
- {
- // set code
- this.code.set(this.content);
-
- this.build.setOptions();
- this.build.callEditor();
-
- // code mode
- if (this.opts.visual) return;
- setTimeout($.proxy(this.code.showCode, this), 200);
- },
- callEditor: function()
- {
- this.build.disableMozillaEditing();
- this.build.disableIeLinks();
- this.build.setEvents();
- this.build.setHelpers();
-
- // load toolbar
- if (this.opts.toolbar)
- {
- this.opts.toolbar = this.toolbar.init();
- this.toolbar.build();
- }
-
- // modal templates init
- this.modal.loadTemplates();
-
- // plugins
- this.build.plugins();
-
- // observers
- setTimeout($.proxy(this.observe.load, this), 4);
-
- // init callback
- this.core.setCallback('init');
- },
- setOptions: function()
- {
- // textarea direction
- $(this.$textarea).attr('dir', this.opts.direction);
-
- if (this.opts.linebreaks) this.$editor.addClass('redactor-linebreaks');
-
- if (this.opts.tabindex) this.$editor.attr('tabindex', this.opts.tabindex);
-
- if (this.opts.minHeight) this.$editor.css('minHeight', this.opts.minHeight);
- if (this.opts.maxHeight) this.$editor.css('maxHeight', this.opts.maxHeight);
-
- },
- setEventDropUpload: function(e)
- {
- e.preventDefault();
-
- if (!this.opts.dragImageUpload || !this.opts.dragFileUpload) return;
-
- var files = e.dataTransfer.files;
- this.upload.directUpload(files[0], e);
- },
- setEventDrop: function(e)
- {
- this.code.sync();
- setTimeout(this.clean.clearUnverified, 1);
- this.core.setCallback('drop', e);
- },
- setEvents: function()
- {
- // drop
- this.$editor.on('drop.redactor', $.proxy(function(e)
- {
- e = e.originalEvent || e;
-
- if (window.FormData === undefined || !e.dataTransfer) return true;
-
- if (e.dataTransfer.files.length === 0)
- {
- return this.build.setEventDrop(e);
- }
- else
- {
- this.build.setEventDropUpload(e);
- }
-
- setTimeout(this.clean.clearUnverified, 1);
- this.core.setCallback('drop', e);
-
- }, this));
-
-
- // click
- this.$editor.on('click.redactor', $.proxy(function(e)
- {
- var event = this.core.getEvent();
- var type = (event == 'click' || event == 'arrow') ? false : 'click';
-
- this.core.addEvent(type);
- this.utils.disableSelectAll();
- this.core.setCallback('click', e);
-
- }, this));
-
- // paste
- this.$editor.on('paste.redactor', $.proxy(this.paste.init, this));
-
- // cut
- this.$editor.on('cut.redactor', $.proxy(this.code.sync, this));
-
- // keydown
- this.$editor.on('keydown.redactor', $.proxy(this.keydown.init, this));
-
- // keyup
- this.$editor.on('keyup.redactor', $.proxy(this.keyup.init, this));
-
- // textarea keydown
- if ($.isFunction(this.opts.codeKeydownCallback))
- {
- this.$textarea.on('keydown.redactor-textarea', $.proxy(this.opts.codeKeydownCallback, this));
- }
-
- // textarea keyup
- if ($.isFunction(this.opts.codeKeyupCallback))
- {
- this.$textarea.on('keyup.redactor-textarea', $.proxy(this.opts.codeKeyupCallback, this));
- }
-
- // focus
- if ($.isFunction(this.opts.focusCallback))
- {
- this.$editor.on('focus.redactor', $.proxy(this.opts.focusCallback, this));
- }
-
- $(document).on('mousedown.redactor.' + this.uuid, $.proxy(function(e) { this.blurClickedElement = e.target; }, this));
-
-
- // blur
- this.$editor.on('blur.redactor', $.proxy(function(e)
- {
- if (this.start) return;
- if (this.rtePaste) return;
- if (!this.build.isBlured()) return;
-
- this.utils.disableSelectAll();
- if ($.isFunction(this.opts.blurCallback)) this.core.setCallback('blur', e);
-
- }, this));
- },
- isBlured: function()
- {
- if (this.blurClickedElement === true) return true;
-
- var $el = $(this.blurClickedElement);
-
- return (!$el.hasClass('redactor-toolbar, redactor-dropdown') && !$el.is('#redactor-modal') && $el.parents('.redactor-toolbar, .redactor-dropdown, #redactor-modal').length === 0);
- },
- setHelpers: function()
- {
- // linkify
- if (this.linkify.isEnabled())
- {
- this.linkify.format();
- }
-
- // placeholder
- this.placeholder.enable();
-
- // focus
- if (this.opts.focus) setTimeout(this.focus.setStart, 100);
- if (this.opts.focusEnd) setTimeout(this.focus.setEnd, 100);
-
- },
- plugins: function()
- {
- if (!this.opts.plugins) return;
-
- $.each(this.opts.plugins, $.proxy(function(i, s)
- {
- var func = (typeof RedactorPlugins !== 'undefined' && typeof RedactorPlugins[s] !== 'undefined') ? RedactorPlugins : Redactor.fn;
-
- if (!$.isFunction(func[s]))
- {
- return;
- }
-
- this[s] = func[s]();
-
- // get methods
- var methods = this.getModuleMethods(this[s]);
- var len = methods.length;
-
- // bind methods
- for (var z = 0; z < len; z++)
- {
- this[s][methods[z]] = this[s][methods[z]].bind(this);
- }
-
- if ($.isFunction(this[s].init))
- {
- this[s].init();
- }
-
-
- }, this));
-
- },
- disableMozillaEditing: function()
- {
- if (!this.utils.browser('mozilla')) return;
-
- // FF fix
- try {
- document.execCommand('enableObjectResizing', false, false);
- document.execCommand('enableInlineTableEditing', false, false);
- } catch (e) {}
- },
- disableIeLinks: function()
- {
- if (!this.utils.browser('msie')) return;
-
- // IE prevent converting links
- document.execCommand("AutoUrlDetect", false, false);
- }
- };
- },
- button: function()
- {
- return {
- build: function(btnName, btnObject)
- {
- var $button = $(' ').attr({'role': 'button', 'aria-label': btnObject.title, 'tabindex': '-1'});
-
- // click
- if (btnObject.func || btnObject.command || btnObject.dropdown)
- {
- this.button.setEvent($button, btnName, btnObject);
- }
-
- // dropdown
- if (btnObject.dropdown)
- {
- $button.addClass('redactor-toolbar-link-dropdown').attr('aria-haspopup', true);
-
- var $dropdown = $('');
- $button.data('dropdown', $dropdown);
- this.dropdown.build(btnName, $dropdown, btnObject.dropdown);
- }
-
- // tooltip
- if (this.utils.isDesktop())
- {
- this.button.createTooltip($button, btnName, btnObject.title);
- }
-
- return $button;
- },
- setEvent: function($button, btnName, btnObject)
- {
- $button.on('touchstart click', $.proxy(function(e)
- {
- if ($button.hasClass('redactor-button-disabled')) return false;
-
- var type = 'func';
- var callback = btnObject.func;
-
- if (btnObject.command)
- {
- type = 'command';
- callback = btnObject.command;
- }
- else if (btnObject.dropdown)
- {
- type = 'dropdown';
- callback = false;
- }
-
- this.button.onClick(e, btnName, type, callback);
-
- }, this));
- },
- createTooltip: function($button, name, title)
- {
- var $tooltip = $('
').addClass('redactor-toolbar-tooltip redactor-toolbar-tooltip-' + this.uuid + ' redactor-toolbar-tooltip-' + name).hide().html(title);
- $tooltip.appendTo('body');
-
- $button.on('mouseover', function()
- {
- if ($(this).hasClass('redactor-button-disabled')) return;
-
- var pos = $button.offset();
-
- $tooltip.show();
- $tooltip.css({
- top: (pos.top + $button.innerHeight()) + 'px',
- left: (pos.left + $button.innerWidth()/2 - $tooltip.innerWidth()/2) + 'px'
- });
- });
-
- $button.on('mouseout', function()
- {
- $tooltip.hide();
- });
-
- },
- onClick: function(e, btnName, type, callback)
- {
- this.button.caretOffset = this.caret.getOffset();
-
- e.preventDefault();
-
- if (this.utils.browser('msie')) e.returnValue = false;
-
- if (type == 'command') this.inline.format(callback);
- else if (type == 'dropdown') this.dropdown.show(e, btnName);
- else this.button.onClickCallback(e, callback, btnName);
- },
- onClickCallback: function(e, callback, btnName)
- {
- var func;
-
- // blur
- this.blurClickedElement = true;
-
- if ($.isFunction(callback)) callback.call(this, btnName);
- else if (callback.search(/\./) != '-1')
- {
- func = callback.split('.');
- if (typeof this[func[0]] == 'undefined') return;
-
- this[func[0]][func[1]](btnName);
- }
- else this[callback](btnName);
-
- this.observe.buttons(e, btnName);
- },
- get: function(key)
- {
- return this.$toolbar.find('a.re-' + key);
- },
- setActive: function(key)
- {
- this.button.get(key).addClass('redactor-act');
- },
- setInactive: function(key)
- {
- this.button.get(key).removeClass('redactor-act');
- },
- setInactiveAll: function(key)
- {
- if (typeof key === 'undefined')
- {
- this.$toolbar.find('a.re-icon').removeClass('redactor-act');
- }
- else
- {
- this.$toolbar.find('a.re-icon').not('.re-' + key).removeClass('redactor-act');
- }
- },
- setActiveInVisual: function()
- {
- this.$toolbar.find('a.re-icon').not('a.re-html, a.re-fullscreen').removeClass('redactor-button-disabled');
- },
- setInactiveInCode: function()
- {
- this.$toolbar.find('a.re-icon').not('a.re-html, a.re-fullscreen').addClass('redactor-button-disabled');
- },
- changeIcon: function(key, classname)
- {
- this.button.get(key).addClass('re-' + classname);
- },
- removeIcon: function(key, classname)
- {
- this.button.get(key).removeClass('re-' + classname);
- },
- setAwesome: function(key, name)
- {
- var $button = this.button.get(key);
- $button.removeClass('redactor-btn-image').addClass('fa-redactor-btn');
- $button.html(' ');
- },
- addCallback: function($btn, callback)
- {
- if ($btn == "buffer") return;
-
- var type = (callback == 'dropdown') ? 'dropdown' : 'func';
- var key = $btn.attr('rel');
- $btn.on('touchstart click', $.proxy(function(e)
- {
- if ($btn.hasClass('redactor-button-disabled')) return false;
- this.button.onClick(e, key, type, callback);
-
- }, this));
- },
- addDropdown: function($btn, dropdown)
- {
- $btn.addClass('redactor-toolbar-link-dropdown').attr('aria-haspopup', true);
-
- var key = $btn.attr('rel');
- this.button.addCallback($btn, 'dropdown');
-
- var $dropdown = $('');
- $btn.data('dropdown', $dropdown);
-
- // build dropdown
- if (dropdown) this.dropdown.build(key, $dropdown, dropdown);
-
- return $dropdown;
- },
- add: function(key, title)
- {
- if (!this.opts.toolbar) return;
-
- if (this.button.isMobileUndoRedo(key)) return "buffer";
-
- var btn = this.button.build(key, { title: title });
- btn.addClass('redactor-btn-image');
-
- this.$toolbar.append($('
').append(btn));
-
- return btn;
- },
- addFirst: function(key, title)
- {
- if (!this.opts.toolbar) return;
-
- if (this.button.isMobileUndoRedo(key)) return "buffer";
-
- var btn = this.button.build(key, { title: title });
- btn.addClass('redactor-btn-image');
- this.$toolbar.prepend($(' ').append(btn));
-
- return btn;
- },
- addAfter: function(afterkey, key, title)
- {
- if (!this.opts.toolbar) return;
-
- if (this.button.isMobileUndoRedo(key)) return "buffer";
-
- var btn = this.button.build(key, { title: title });
- btn.addClass('redactor-btn-image');
- var $btn = this.button.get(afterkey);
-
- if ($btn.length !== 0) $btn.parent().after($(' ').append(btn));
- else this.$toolbar.append($(' ').append(btn));
-
- return btn;
- },
- addBefore: function(beforekey, key, title)
- {
- if (!this.opts.toolbar) return;
-
- if (this.button.isMobileUndoRedo(key)) return "buffer";
-
- var btn = this.button.build(key, { title: title });
- btn.addClass('redactor-btn-image');
- var $btn = this.button.get(beforekey);
-
- if ($btn.length !== 0) $btn.parent().before($(' ').append(btn));
- else this.$toolbar.append($(' ').append(btn));
-
- return btn;
- },
- remove: function(key)
- {
- this.button.get(key).remove();
- },
- isMobileUndoRedo: function(key)
- {
- return (key == "undo" || key == "redo") && !this.utils.isDesktop();
- }
- };
- },
- caret: function()
- {
- return {
- setStart: function(node)
- {
- // inline tag
- if (!this.utils.isBlock(node))
- {
- var space = this.utils.createSpaceElement();
-
- $(node).prepend(space);
- this.caret.setEnd(space);
- }
- else
- {
- this.caret.set(node, 0, node, 0);
- }
- },
- setEnd: function(node)
- {
- node = node[0] || node;
- if (node.lastChild.nodeType == 1)
- {
- return this.caret.setAfter(node.lastChild);
- }
-
- this.caret.set(node, 1, node, 1);
-
- },
- set: function(orgn, orgo, focn, foco)
- {
- // focus
- // disabled in 10.0.7
- // if (!this.utils.browser('msie')) this.$editor.focus();
-
- orgn = orgn[0] || orgn;
- focn = focn[0] || focn;
-
- if (this.utils.isBlockTag(orgn.tagName) && orgn.innerHTML === '')
- {
- orgn.innerHTML = this.opts.invisibleSpace;
- }
-
- if (orgn.tagName == 'BR' && this.opts.linebreaks === false)
- {
- var parent = $(this.opts.emptyHtml)[0];
- $(orgn).replaceWith(parent);
- orgn = parent;
- focn = orgn;
- }
-
- this.selection.get();
-
- try
- {
- this.range.setStart(orgn, orgo);
- this.range.setEnd(focn, foco);
- }
- catch (e) {}
-
- this.selection.addRange();
- },
- setAfter: function(node)
- {
- try
- {
- var tag = $(node)[0].tagName;
-
- // inline tag
- if (tag != 'BR' && !this.utils.isBlock(node))
- {
- var space = this.utils.createSpaceElement();
-
- $(node).after(space);
- this.caret.setEnd(space);
- }
- else
- {
- if (tag != 'BR' && this.utils.browser('msie'))
- {
- this.caret.setStart($(node).next());
- }
- else
- {
- this.caret.setAfterOrBefore(node, 'after');
- }
- }
- }
- catch (e)
- {
- var space = this.utils.createSpaceElement();
- $(node).after(space);
- this.caret.setEnd(space);
- }
- },
- setBefore: function(node)
- {
- // block tag
- if (this.utils.isBlock(node))
- {
- this.caret.setEnd($(node).prev());
- }
- else
- {
- this.caret.setAfterOrBefore(node, 'before');
- }
- },
- setAfterOrBefore: function(node, type)
- {
- // focus
- if (!this.utils.browser('msie')) this.$editor.focus();
-
- node = node[0] || node;
-
- this.selection.get();
-
- if (type == 'after')
- {
- try {
-
- this.range.setStartAfter(node);
- this.range.setEndAfter(node);
- }
- catch (e) {}
- }
- else
- {
- try {
- this.range.setStartBefore(node);
- this.range.setEndBefore(node);
- }
- catch (e) {}
- }
-
-
- this.range.collapse(false);
- this.selection.addRange();
- },
- getOffsetOfElement: function(node)
- {
- node = node[0] || node;
-
- this.selection.get();
-
- var cloned = this.range.cloneRange();
- cloned.selectNodeContents(node);
- cloned.setEnd(this.range.endContainer, this.range.endOffset);
-
- return $.trim(cloned.toString()).length;
- },
- getOffset: function()
- {
- var offset = 0;
- var sel = window.getSelection();
-
- if (sel.rangeCount > 0)
- {
- var range = window.getSelection().getRangeAt(0);
- var caretRange = range.cloneRange();
- caretRange.selectNodeContents(this.$editor[0]);
- caretRange.setEnd(range.endContainer, range.endOffset);
- offset = caretRange.toString().length;
- }
-
- return offset;
- },
- setOffset: function(start, end)
- {
- if (typeof end == 'undefined') end = start;
- if (!this.focus.isFocused()) this.focus.setStart();
-
- var sel = this.selection.get();
- var node, offset = 0;
- var walker = document.createTreeWalker(this.$editor[0], NodeFilter.SHOW_TEXT, null, null);
-
- while (node == walker.nextNode())
- {
- offset += node.nodeValue.length;
- if (offset > start)
- {
- this.range.setStart(node, node.nodeValue.length + start - offset);
- start = Infinity;
- }
-
- if (offset >= end)
- {
- this.range.setEnd(node, node.nodeValue.length + end - offset);
- break;
- }
- }
-
- this.range.collapse(false);
- this.selection.addRange();
- },
- // deprecated
- setToPoint: function(start, end)
- {
- this.caret.setOffset(start, end);
- },
- getCoords: function()
- {
- return this.caret.getOffset();
- }
- };
- },
- clean: function()
- {
- return {
- onSet: function(html)
- {
- //html = this.clean.savePreCode(html);
-
- // convert script tag
- html = html.replace(/');
-
- // restore form tag
- html = this.clean.restoreFormTags(html);
-
- var chars = {
- '\u2122': '™',
- '\u00a9': '©',
- '\u2026': '…',
- '\u2014': '—',
- '\u2010': '‐'
- };
- // replace special characters
- $.each(chars, function(i,s)
- {
- html = html.replace(new RegExp(i, 'g'), s);
- });
-
- // remove last br in FF
- if (this.utils.browser('mozilla'))
- {
- html = html.replace(/ $/gi, '');
- }
-
- // remove br in the of li
- html = html.replace(new RegExp(' ', 'gi'), '');
- html = html.replace(new RegExp('
', 'gi'), '');
-
- // remove empty attributes
- html = html.replace(/<(.*?)rel="\s*?"(.*?[^>]?)>/gi, '<$1$2">');
- html = html.replace(/<(.*?)style="\s*?"(.*?[^>]?)>/gi, '<$1$2">');
- html = html.replace(/="">/gi, '>');
- html = html.replace(/""">/gi, '">');
- html = html.replace(/"">/gi, '">');
-
- // remove verified
- html = html.replace(/
]) data-tagblock="redactor"(.*?[^>])>/gi, '
');
- html = html.replace(/<(.*?) data-verified="redactor"(.*?[^>])>/gi, '<$1$2>');
-
- var $div = $("
").html($.parseHTML(html, document, true));
- $div.find("span").removeAttr("rel");
-
- $div.find('pre .redactor-invisible-space').each(function()
- {
- $(this).contents().unwrap();
- });
-
- html = $div.html();
-
- // remove rel attribute from img
- html = html.replace(/
])rel="(.*?[^>])"(.*?[^>])>/gi, '
');
- html = html.replace(/
(.*?)<\/span>/gi, '$1');
-
- html = html.replace(/ data-save-url="(.*?[^>])"/gi, '');
-
- // remove image resize
- html = html.replace(/])>([\w\W]*?) <\/span>/gi, '$3 ');
- html = html.replace(/])>(.*?)<\/span>/gi, '');
- html = html.replace(/])>(.*?)<\/span>/gi, '');
-
- // remove font tag
- html = html.replace(//gi, '');
- html = html.replace(/<\/font>/gi, '');
-
- // tidy html
- html = this.tidy.load(html);
-
- // link nofollow
- if (this.opts.linkNofollow)
- {
- html = html.replace(/])>/gi, ' ');
- html = html.replace(/ ])>/gi, ' ');
- }
-
- // reconvert inline
- html = html.replace(/\sdata-redactor-(tag|class|style)="(.*?[^>])"/gi, '');
- html = html.replace(new RegExp('<(.*?) data-verified="redactor"(.*?[^>])>', 'gi'), '<$1$2>');
- html = html.replace(new RegExp('<(.*?) data-verified="redactor">', 'gi'), '<$1>');
-
- html = html.replace(/&/g, '&');
-
- return html;
- },
- onPaste: function(html, setMode)
- {
- html = $.trim(html);
- html = html.replace(/\$/g, '$');
-
- // convert dirty spaces
- html = html.replace(//gi, '');
- html = html.replace(/ <\/span>/gi, ' ');
- html = html.replace(/]*>\t<\/span>/gi, '\t');
- html = html.replace(/]*>(\s| )<\/span>/gi, ' ');
-
- if (this.opts.pastePlainText)
- {
- return this.clean.getPlainText(html);
- }
-
- if (!this.utils.isSelectAll() && typeof setMode == 'undefined')
- {
- if (this.utils.isCurrentOrParent(['FIGCAPTION', 'A']))
- {
- return this.clean.getPlainText(html, false);
- }
-
- if (this.utils.isCurrentOrParent('PRE'))
- {
- html = html.replace(/”/g, '"');
- html = html.replace(/“/g, '"');
- html = html.replace(/‘/g, '\'');
- html = html.replace(/’/g, '\'');
-
- return this.clean.getPreCode(html);
- }
-
- if (this.utils.isCurrentOrParent(['BLOCKQUOTE', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6']))
- {
- html = this.clean.getOnlyImages(html);
-
- if (!this.utils.browser('msie'))
- {
- var block = this.selection.getBlock();
- if (block && block.tagName == 'P')
- {
- html = html.replace(/ /gi, '
');
- }
- }
-
- return html;
- }
-
- if (this.utils.isCurrentOrParent(['TD']))
- {
- html = this.clean.onPasteTidy(html, 'td');
-
- if (this.opts.linebreaks) html = this.clean.replaceParagraphsToBr(html);
-
- html = this.clean.replaceDivsToBr(html);
-
- return html;
- }
-
-
- if (this.utils.isCurrentOrParent(['LI']))
- {
- return this.clean.onPasteTidy(html, 'li');
- }
- }
-
-
- html = this.clean.isSingleLine(html, setMode);
-
- if (!this.clean.singleLine)
- {
- if (this.opts.linebreaks) html = this.clean.replaceParagraphsToBr(html);
- if (this.opts.replaceDivs) html = this.clean.replaceDivs(html);
-
- html = this.clean.saveFormTags(html);
- }
-
-
- html = this.clean.onPasteWord(html);
- html = this.clean.onPasteExtra(html);
-
- html = this.clean.onPasteTidy(html, 'all');
-
-
- // paragraphize
- if (!this.clean.singleLine && this.opts.paragraphize)
- {
- html = this.paragraphize.load(html);
- }
-
- html = this.clean.removeDirtyStyles(html);
- html = this.clean.onPasteRemoveSpans(html);
- html = this.clean.onPasteRemoveEmpty(html);
-
-
- html = this.clean.convertInline(html);
-
- return html;
- },
- onPasteWord: function(html)
- {
- // comments
- html = html.replace(//gi, '');
-
- // style
- html = html.replace(/
-
-
-
-
-
-
-
-
-
-
404
- {% if request.GET.error %}{{ request.GET.error }}{% else %}error{% endif %}
-
-
-
-
+
+
+
+
+
+ 404
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
404
+ {% if request.GET.error %}{{ request.GET.error }}{% else %}error{% endif %}
+
+
+
+
\ No newline at end of file
diff --git a/templates/500.html b/templates/500.html
old mode 100755
new mode 100644
index 100fb15..116e156
--- a/templates/500.html
+++ b/templates/500.html
@@ -1,291 +1,291 @@
-
-
-
-
-
- 500
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
500
- error
-
-
-
-
+
+
+
+
+
+ 500
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
500
+ error
+
+
+
+
\ No newline at end of file
diff --git a/templates/access_error.html b/templates/access_error.html
old mode 100755
new mode 100644
index a58b7e3..6541497
--- a/templates/access_error.html
+++ b/templates/access_error.html
@@ -1,73 +1,73 @@
-{% extends 'base_index.html' %}
-{% load static %}
-{% load course_filter %}
-{% block page_title %}Доступ на страницу закрыт{% endblock %}
-{% block title %}Доступ запрещен{% endblock %}
-{% block head %}
-{% endblock %}
-{% block content %}
-
-
-{% if request.user.is_authenticated %}
-
-
-
-
Последняя активность
-
-
-
-
минуту назад Курс «Профессия веб-разработчик», занятие 6
-
Ваше домашнее задание одобрено преподавателем.
-
-
-
-
-
23:30 Курс «Профессия веб-разработчик», занятие 6.
-
Ваше домашнее задание проверено преподавателем. Вам необходимо провести работу над ошибками
-
-
-
-
-
-
понедельник, 03.02.2015 Курс «Профессия веб-разработчик», занятие 6.
-
Преподаватель оставил комментарий
-
-
-
-
-
-
-
-
-
-
- {% endif %}
-{% endblock %}
+{% extends 'base_index.html' %}
+{% load static %}
+{% load course_filter %}
+{% block page_title %}Доступ на страницу закрыт{% endblock %}
+{% block title %}Доступ запрещен{% endblock %}
+{% block head %}
+{% endblock %}
+{% block content %}
+
+
+{% if request.user.is_authenticated %}
+
+
+
+
Последняя активность
+
+
+
+
минуту назад Курс «Профессия веб-разработчик», занятие 6
+
Ваше домашнее задание одобрено преподавателем.
+
+
+
+
+
23:30 Курс «Профессия веб-разработчик», занятие 6.
+
Ваше домашнее задание проверено преподавателем. Вам необходимо провести работу над ошибками
+
+
+
+
+
+
понедельник, 03.02.2015 Курс «Профессия веб-разработчик», занятие 6.
+
Преподаватель оставил комментарий
+
+
+
+
+
+
+
+
+
+
+ {% endif %}
+{% endblock %}
diff --git a/templates/activation.html b/templates/activation.html
old mode 100755
new mode 100644
index 9b564ce..31be363
--- a/templates/activation.html
+++ b/templates/activation.html
@@ -1,365 +1,365 @@
-{% load static %}
-
-
-
-
- {% block title %}{% endblock %} {{ NAME }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {% block head %}
- {% endblock %}
-
-
-
-
-
-
-
-
-
- Обрежте изображение, если это необходимо.
-
-
-
-
-
-
-
- Сохранить
- Назад
-
-
-
- Ошибка загрузки файла
-
-
-
-
-
-
-
-
-
-
-
-
-Вы можете загрузить изображение в формате JPG, GIF или PNG.
- Минимальный размер изображения 256x256
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{% block js %}
-{% endblock %}
-
-
+{% load static %}
+
+
+
+
+ {% block title %}{% endblock %} {{ NAME }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% block head %}
+ {% endblock %}
+
+
+
+
+
+
+
+
+
+ Обрежте изображение, если это необходимо.
+
+
+
+
+
+
+
+ Сохранить
+ Назад
+
+
+
+ Ошибка загрузки файла
+
+
+
+
+
+
+
+
+
+
+
+
+Вы можете загрузить изображение в формате JPG, GIF или PNG.
+ Минимальный размер изображения 256x256
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% block js %}
+{% endblock %}
+
+
diff --git a/templates/admin_profile.html b/templates/admin_profile.html
old mode 100755
new mode 100644
index f89b5e7..e54f0ff
--- a/templates/admin_profile.html
+++ b/templates/admin_profile.html
@@ -1,140 +1,140 @@
-{% extends 'base_index.html' %}
-{% block modals %}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{% endblock %}
-{% block asside %}
-
-{% endblock %}
-
-
-
-{% block content %}
-
-
-
-
-
-
Пользователи системы
-
-
-
-
-
-
-
- Поиск пользователей
-
- Поиск
-
-
-
Результатов нет
-
-
-
- Пользователь
- Телефон
- Действие
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{% endblock %}
+{% extends 'base_index.html' %}
+{% block modals %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
+{% block asside %}
+
+{% endblock %}
+
+
+
+{% block content %}
+
+
+
+
+
+
Пользователи системы
+
+
+
+
+
+
+
+ Поиск пользователей
+
+ Поиск
+
+
+
Результатов нет
+
+
+
+ Пользователь
+ Телефон
+ Действие
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
diff --git a/templates/all_actions.html b/templates/all_actions.html
old mode 100755
new mode 100644
index 2fa8969..b1e1b70
--- a/templates/all_actions.html
+++ b/templates/all_actions.html
@@ -1,35 +1,35 @@
-{% extends 'base_index.html' %}
-{% load course_filter %}
-{% block title %}История активности {% endblock %}
-{% block content %}
-
-
-
-
-
История активности
-
- {% for i in b_actions %}
-
-
-
-
-
-
{{ i.place }}{{ i.date }}
-
-
-
-
- {% endfor %}
-
-
-
-
-
-
+{% extends 'base_index.html' %}
+{% load course_filter %}
+{% block title %}История активности {% endblock %}
+{% block content %}
+
+
+
+
+
История активности
+
+ {% for i in b_actions %}
+
+
+
+
+
+
{{ i.place }}{{ i.date }}
+
+
+
+
+ {% endfor %}
+
+
+
+
+
+
{% endblock %}
\ No newline at end of file
diff --git a/templates/all_articles.html b/templates/all_articles.html
old mode 100755
new mode 100644
index 3be34a9..c9cd9f3
--- a/templates/all_articles.html
+++ b/templates/all_articles.html
@@ -1,117 +1,117 @@
-{% extends 'base_index.html' %}
-{% block title %}Статьи{% endblock %}
-{% block head %}
-
-
-
-
-{% endblock %}
-{% block content %}
-
-
-
-
-
- Обучающие статьи
-
- Все статьи
-
-
-
- Непрочитанные
-
-
-
-
-
-
-
Все статьи {{ articles|length }}
-
{{ views }}
-
-
-
-
-
-
-
-
-
-
- {% for article in articles %}
-
-
-
-
-
-
{{ article.section.title }} {{ article.date }}
-
-
{{ article.preview.description }}
- {% if article.tags %}
-
{% for tag in article.tags.content %}#{{ tag.name }} {% endfor %}
- {% endif %}
-
-
-
Читать статью
-
- {{ article.favorites.count }}
- {{ article.views.count }}
- {{ article.likes.count }}
-
-
-
-
-
-
-
- {% endfor %}
-
-
-
-
-{% endblock %}
-{% block js %}
-
-
-
-
-
+{% extends 'base_index.html' %}
+{% block title %}Статьи{% endblock %}
+{% block head %}
+
+
+
+
+{% endblock %}
+{% block content %}
+
+
+
+
+
+ Обучающие статьи
+
+ Все статьи
+
+
+
+ Непрочитанные
+
+
+
+
+
+
+
Все статьи {{ articles|length }}
+
{{ views }}
+
+
+
+
+
+
+
+
+
+
+ {% for article in articles %}
+
+
+
+
+
+
{{ article.section.title }} {{ article.date }}
+
+
{{ article.preview.description }}
+ {% if article.tags %}
+
{% for tag in article.tags.content %}#{{ tag.name }} {% endfor %}
+ {% endif %}
+
+
+
Читать статью
+
+ {{ article.favorites.count }}
+ {{ article.views.count }}
+ {{ article.likes.count }}
+
+
+
+
+
+
+
+ {% endfor %}
+
+
+
+
+{% endblock %}
+{% block js %}
+
+
+
+
+
{% endblock %}
\ No newline at end of file
diff --git a/templates/all_comments.html b/templates/all_comments.html
old mode 100755
new mode 100644
index aad4292..6d37a66
--- a/templates/all_comments.html
+++ b/templates/all_comments.html
@@ -1,244 +1,244 @@
-{% extends 'reports/base_index.html' %}
-{% load comment_filter %}
-{% block title %}Все комментарии{% endblock %}
-{% block head %}
-
-
-{% endblock %}
-{% block content %}
-
-
-
Комментарии
-
- 0
-
-
-
-
-
-
-
-
-
-
-
- {% for comment in lessons %}
-
- {% if not comment.comment.saw %}
-
-
- {% endif %}
- {% empty %}
-
- {% endfor %}
-
-
-
-
- {% for comment in articles %}
-
- {% empty %}
-
- {% endfor %}
-
-
-
-
-
-{% endblock %}
-{% block js %}
-
-
+{% extends 'reports/base_index.html' %}
+{% load comment_filter %}
+{% block title %}Все комментарии{% endblock %}
+{% block head %}
+
+
+{% endblock %}
+{% block content %}
+
+
+
Комментарии
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+ {% for comment in lessons %}
+
+ {% if not comment.comment.saw %}
+
+
+ {% endif %}
+ {% empty %}
+
+ {% endfor %}
+
+
+
+
+ {% for comment in articles %}
+
+ {% empty %}
+
+ {% endfor %}
+
+
+
+
+
+{% endblock %}
+{% block js %}
+
+
{% endblock %}
\ No newline at end of file
diff --git a/templates/articles.html b/templates/articles.html
old mode 100755
new mode 100644
index 45075dd..8960a49
--- a/templates/articles.html
+++ b/templates/articles.html
@@ -1,120 +1,120 @@
-{% extends 'base_index.html' %}
-{% load static %}
-
-
-{% block head_title %}{{ article.social.title }}{% endblock %}
-{% block title %}{{ article.title }}{% endblock %}
-
- {% block head %}
- {{ article.css|safe }}
-
- {% endblock %}
-
-{% block head_description1 %}{{ article.social.description }}{% endblock %}
-{% block head_description2 %}{{ article.social.description }}{% endblock %}
-
-{% block head_image %}{{ article.social.image }}{% endblock %}
-
-{% block app-content-body %}style="background:#fff;"{% endblock %}
-
-{% block content %}
- {{ article.page|safe }}
-
-
-
-
-
-
- {% for tag in article.tags.content %}
- #{{ tag.name }}
- {% endfor %}
-
-
-
-
- Понравилась статья?
- Поделись с друзьями:
- Сказать спасибо {{ article.get_likes_length }}
- * Спасибо, что оценили нашу работу
-
-
-
-
Понравилась статья?
- Поделись с друзьями:
-
-
Сказать спасибо {{ article.get_likes_length }}
-
* Спасибо, что оценили нашу работу
-
-
-
-
-
- {% include 'comments_block.html' %}
-
-
-
-
-{% endblock %}
-
- {% block js %}
-
- {% if not request.user.is_authenticated %}
-
- {% endif %}
-
-
- {{ article.js|safe }}
+{% extends 'base_index.html' %}
+{% load static %}
+
+
+{% block head_title %}{{ article.social.title }}{% endblock %}
+{% block title %}{{ article.title }}{% endblock %}
+
+ {% block head %}
+ {{ article.css|safe }}
+
+ {% endblock %}
+
+{% block head_description1 %}{{ article.social.description }}{% endblock %}
+{% block head_description2 %}{{ article.social.description }}{% endblock %}
+
+{% block head_image %}{{ article.social.image }}{% endblock %}
+
+{% block app-content-body %}style="background:#fff;"{% endblock %}
+
+{% block content %}
+ {{ article.page|safe }}
+
+
+
+
+
+
+ {% for tag in article.tags.content %}
+ #{{ tag.name }}
+ {% endfor %}
+
+
+
+
+ Понравилась статья?
+ Поделись с друзьями:
+ Сказать спасибо {{ article.get_likes_length }}
+ * Спасибо, что оценили нашу работу
+
+
+
+
Понравилась статья?
+ Поделись с друзьями:
+
+
Сказать спасибо {{ article.get_likes_length }}
+
* Спасибо, что оценили нашу работу
+
+
+
+
+
+ {% include 'comments_block.html' %}
+
+
+
+
+{% endblock %}
+
+ {% block js %}
+
+ {% if not request.user.is_authenticated %}
+
+ {% endif %}
+
+
+ {{ article.js|safe }}
{% endblock %}
\ No newline at end of file
diff --git a/templates/auth_error.html b/templates/auth_error.html
old mode 100755
new mode 100644
index c29d2e2..4432b25
--- a/templates/auth_error.html
+++ b/templates/auth_error.html
@@ -1,34 +1,34 @@
-{% extends 'base_index.html' %}
-{% load static %}
-{% load course_filter %}
-{% block title %}Доступ на страницу закрыт{% endblock %}
-{% block page_title %}Доступ на страницу закрыт{% endblock %}
-{% block head %}
-{% endblock %}
-{% block content %}
-
-
-
-
-
- Доступ на страницу закрыт
-
-
-
-
-
- {% if request.user.is_authenticated %}
-
-
Вам не открыт доступ к этому материалу, поскольку вы еще не дошли до этого материала
- {% else %}
-
-
Авторизуйтесь для получения доступа на эту страницу
- {% endif %}
-
-
-
-{% endblock %}
+{% extends 'base_index.html' %}
+{% load static %}
+{% load course_filter %}
+{% block title %}Доступ на страницу закрыт{% endblock %}
+{% block page_title %}Доступ на страницу закрыт{% endblock %}
+{% block head %}
+{% endblock %}
+{% block content %}
+
+
+
+
+
+ Доступ на страницу закрыт
+
+
+
+
+
+ {% if request.user.is_authenticated %}
+
+
Вам не открыт доступ к этому материалу, поскольку вы еще не дошли до этого материала
+ {% else %}
+
+
Авторизуйтесь для получения доступа на эту страницу
+ {% endif %}
+
+
+
+{% endblock %}
diff --git a/templates/auth_modals.html b/templates/auth_modals.html
old mode 100755
new mode 100644
index b925cb4..20f66b1
--- a/templates/auth_modals.html
+++ b/templates/auth_modals.html
@@ -1,624 +1,624 @@
-
-
-
-
-
-
-
- Обрежте изображение, если это необходимо.
-
-
- Сохранить
- Назад
-
-
-
-
-
-
-
- Сохранить
- Назад
-
-
-
- Ошибка загрузки файла
-
-
-
-
-
-
-
-
-
-
-
-
-Вы можете загрузить изображение в формате JPG, GIF или PNG.
- Минимальный размер изображения 256x256
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Подтверждение действия
-
- Вы уверены, что хотите
- Подтвердить
- Отмена
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Материал не доступен
-
Материал вам еще не доступен. Выполните все задания до и доступ откроется вам автоматически
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Добавлен новый материал
-
Материал вам еще недоступен. Для получения доступа, необходимо просмотреть уроки/выполнить задания указанные ниже:
-
- {% for i in waiting_materials %}
- {% if forloop.first %}
- {{ i.obj }}Перейти
- {% else %}
- {{ i.lesson }}
- {% endif %}
- {% endfor %}
-
-
*Новый материал необходимо пройти по порядку предоставления
-
-
-
-
-
-
-
-{% if waiting_materials %}
- {% if waiting_materials.0.type not in request.path or waiting_materials.0.obj.id not in request.path %}
-
- {% endif %}
-{% endif %}
-
-
-
-
-
-
-
-
-
-
-
-
Доcтуп заблокирован
-
Данный материал находится в обработке. Если в течении 48 часов у вас не появился доступ к материалам, обратитесь на почту info@bedev.ru
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Ваши подписки
-
-
-
- Сохранить
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Получения полного доступа к курсу
-
Проверка домашних заданий, общение с преподавателем онлайн и полный доступ ко всем урокам курса
- доступны в полной версии курса.
-
в полной версии курса « »
-
-
-
16
- основных модулей
-
-
-
16
-
- дополнительных модулей
-
-
-
- проверка домашних заданий
- стажировка
- трудоустройство
- общение с преподавателем
- работа над реальными проктами
-
-
-
-
-
-
стоимость курса:
-
от 6 777 руб. в месяц
-
-
-
Оставить заявку на курс
-
- Заявка на курс вас ни к чему не обязывает.
- После регистрации с вами свяжется менеджер,
- чтобы рассказать детали курса.
-
-
-
-
-
-
-
-
-
-
-
-
-
-{% if request.user.is_admin and request.user.is_staff %}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{% endif %}
-
-{% if request.user.is_authenticated and request.user.email == '!!wies@1312s.ru' %}
-
-
-
-
-
-
-
-
-
-
-
- Пошел нахуй!
-
- Поити
-
-
-
-
-
-
-
-{% endif %}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+ Обрежте изображение, если это необходимо.
+
+
+ Сохранить
+ Назад
+
+
+
+
+
+
+
+ Сохранить
+ Назад
+
+
+
+ Ошибка загрузки файла
+
+
+
+
+
+
+
+
+
+
+
+
+Вы можете загрузить изображение в формате JPG, GIF или PNG.
+ Минимальный размер изображения 256x256
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Подтверждение действия
+
+ Вы уверены, что хотите
+ Подтвердить
+ Отмена
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Материал не доступен
+
Материал вам еще не доступен. Выполните все задания до и доступ откроется вам автоматически
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Добавлен новый материал
+
Материал вам еще недоступен. Для получения доступа, необходимо просмотреть уроки/выполнить задания указанные ниже:
+
+ {% for i in waiting_materials %}
+ {% if forloop.first %}
+ {{ i.obj }}Перейти
+ {% else %}
+ {{ i.lesson }}
+ {% endif %}
+ {% endfor %}
+
+
*Новый материал необходимо пройти по порядку предоставления
+
+
+
+
+
+
+
+{% if waiting_materials %}
+ {% if waiting_materials.0.type not in request.path or waiting_materials.0.obj.id not in request.path %}
+
+ {% endif %}
+{% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
Доcтуп заблокирован
+
Данный материал находится в обработке. Если в течении 48 часов у вас не появился доступ к материалам, обратитесь на почту info@bedev.ru
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Ваши подписки
+
+
+
+ Сохранить
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Получения полного доступа к курсу
+
Проверка домашних заданий, общение с преподавателем онлайн и полный доступ ко всем урокам курса
+ доступны в полной версии курса.
+
в полной версии курса « »
+
+
+
16
+ основных модулей
+
+
+
16
+
+ дополнительных модулей
+
+
+
+ проверка домашних заданий
+ стажировка
+ трудоустройство
+ общение с преподавателем
+ работа над реальными проктами
+
+
+
+
+
+
стоимость курса:
+
от 6 777 руб. в месяц
+
+
+
Оставить заявку на курс
+
+ Заявка на курс вас ни к чему не обязывает.
+ После регистрации с вами свяжется менеджер,
+ чтобы рассказать детали курса.
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% if request.user.is_admin and request.user.is_staff %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endif %}
+
+{% if request.user.is_authenticated and request.user.email == '!!wies@1312s.ru' %}
+
+
+
+
+
+
+
+
+
+
+
+ Пошел нахуй!
+
+ Поити
+
+
+
+
+
+
+
+{% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/base_index.html b/templates/base_index.html
old mode 100755
new mode 100644
diff --git a/templates/by_error.html b/templates/by_error.html
old mode 100755
new mode 100644
index 5906187..9767cca
--- a/templates/by_error.html
+++ b/templates/by_error.html
@@ -1,34 +1,34 @@
-{% extends 'base_index.html' %}
-{% load static %}
-{% load course_filter %}
-{% block title %}Доступ на страницу закрыт{% endblock %}
-{% block page_title %}Доступ на страницу закрыт{% endblock %}
-{% block head %}
-{% endblock %}
-{% block content %}
-
-
-
-
-
- Доступ на страницу закрыт
-
-
-
-
-
- {% if request.user.is_authenticated %}
-
-
Купите курс для получения доступа на эту страницу
- {% else %}
-
-
Авторизуйтесь для получения доступа на эту страницу
- {% endif %}
-
-
-
-{% endblock %}
+{% extends 'base_index.html' %}
+{% load static %}
+{% load course_filter %}
+{% block title %}Доступ на страницу закрыт{% endblock %}
+{% block page_title %}Доступ на страницу закрыт{% endblock %}
+{% block head %}
+{% endblock %}
+{% block content %}
+
+
+
+
+
+ Доступ на страницу закрыт
+
+
+
+
+
+ {% if request.user.is_authenticated %}
+
+
Купите курс для получения доступа на эту страницу
+ {% else %}
+
+
Авторизуйтесь для получения доступа на эту страницу
+ {% endif %}
+
+
+
+{% endblock %}
diff --git a/templates/comment_one.html b/templates/comment_one.html
index d1a2d0e..e598ea7 100644
--- a/templates/comment_one.html
+++ b/templates/comment_one.html
@@ -32,36 +32,7 @@
-
-
- {% if request.user.is_authenticated %}
-
-
-
Последняя активность
-
-
-
-
минуту назад Курс «Профессия веб-разработчик», занятие 6
-
Ваше домашнее задание одобрено преподавателем.
-
-
-
-
-
23:30 Курс «Профессия веб-разработчик», занятие 6.
-
Ваше домашнее задание проверено преподавателем. Вам необходимо провести работу над ошибками
-
-
-
-
-
понедельник, 03.02.2015 Курс «Профессия веб-разработчик», занятие 6.
-
Преподаватель оставил комментарий
-
-
-
-
-
- {% endif %}
-
+{% include 'right_site.html' %}
{% endblock %}
\ No newline at end of file
diff --git a/templates/contacts.html b/templates/contacts.html
old mode 100755
new mode 100644
index becaade..376d822
--- a/templates/contacts.html
+++ b/templates/contacts.html
@@ -1,43 +1,43 @@
-{% extends 'base_index.html' %}
-{% block title %}Контакты компании{% endblock %}
-{% block page_title %}Контакты компании{% endblock %}
-{% block content %}
-
-
-
-
-
- Контакты компании
-
-
-
-
-
-
-
-
-
Наш офис
-
Россия, Москва Бауманская улица, 11с8
-
-
-
Юридическая информация
-
ИП Коропов Игорь Валентинович ИНН 504793474705 ОГРНИП 314504727900026
-
-
-
Контакты
-
Общие вопросы:
-{{ SUPPORT }}
-Тех вопросы:
-{{ SUPPORT }}
-
-
-
-
-
-
-
-
+{% extends 'base_index.html' %}
+{% block title %}Контакты компании{% endblock %}
+{% block page_title %}Контакты компании{% endblock %}
+{% block content %}
+
+
+
+
+
+ Контакты компании
+
+
+
+
+
+
+
+
+
Наш офис
+
Россия, Москва Бауманская улица, 11с8
+
+
+
Юридическая информация
+
ИП Коропов Игорь Валентинович ИНН 504793474705 ОГРНИП 314504727900026
+
+
+
Контакты
+
Общие вопросы:
+{{ SUPPORT }}
+Тех вопросы:
+{{ SUPPORT }}
+
+
+
+
+
+
+
+
{% endblock %}
\ No newline at end of file
diff --git a/templates/course.html b/templates/course.html
old mode 100755
new mode 100644
index f2593c7..564dcf7
--- a/templates/course.html
+++ b/templates/course.html
@@ -1,324 +1,333 @@
-{% extends 'base_index.html' %}
-{% load course_filter %}
-{% block title %}Курс {{ course.head.title }}{% endblock %}
-{% block content %}
-
-
-
-
-
-
-
-
-
-
-
- {{ course.head.level.title }} уровень
-
-
-
- {{ course.head.title }}
-
-
- {% if course.head.skills %}
-
-
Приобретаемые навыки:
- {% for skill in course.head.skills %}
-
{% if skill.mini_icon %} {% endif %}{{ skill }}
- {% endfor %}
-
- {% endif %}
-
- {{ course.head.lessons }} урока(-ов)
-
-
-
-
- {% if course.head.progress != 0 %}
-
- {{ course.head.progress }}%
-
- {% endif %}
-
-
-
-
-
-
-
-
-
- {{ course.head.level.title }} уровень
-
-
-
- {{ course.head.title }}
-
-
- {% if course.head.skills %}
-
-
Приобретаемые навыки:
- {% for skill in course.head.skills %}
-
{% if skill.mini_icon %} {% endif %}{{ skill }}
- {% endfor %}
-
- {% endif %}
-
- {{ course.head.lessons }} урока(-ов)
-
-
-
-
- {% if course.head.progress != 0 %}
-
- {{ course.head.progress }}%
-
- {% endif %}
-
-
-
-
-
-
-
-
-
-
-{% include 'right_site.html' %}
-
-{% endblock %}
-{% block js %}
-
-
-{% endblock %}
+{% extends 'base_index.html' %}
+{% load course_filter %}
+{% block title %}Курс {{ course.head.title }}{% endblock %}
+{% block content %}
+
+
+
+
+
+
+
+
+
+
+
+ {{ course.head.level.title }} уровень
+
+
+
+ {{ course.head.title }}
+
+
+ {% if course.head.skills %}
+
+
Приобретаемые навыки:
+ {% for skill in course.head.skills %}
+
{% if skill.mini_icon %} {% endif %}{{ skill }}
+ {% endfor %}
+
+ {% endif %}
+
+ {{ course.head.lessons }} урока(-ов)
+
+
+
+
+ {% if course.head.progress != 0 %}
+
+ {{ course.head.progress }}%
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+ {{ course.head.level.title }} уровень
+
+
+
+ {{ course.head.title }}
+
+
+ {% if course.head.skills %}
+
+
Приобретаемые навыки:
+ {% for skill in course.head.skills %}
+
{% if skill.mini_icon %} {% endif %}{{ skill }}
+ {% endfor %}
+
+ {% endif %}
+
+ {{ course.head.lessons }} урока(-ов)
+
+
+
+
+ {% if course.head.progress != 0 %}
+
+ {{ course.head.progress }}%
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
+{% include 'right_site.html' %}
+
+{% endblock %}
+{% block js %}
+
+
+{% endblock %}
diff --git a/templates/everyone_modals.html b/templates/everyone_modals.html
old mode 100755
new mode 100644
index 787405a..9d632a3
--- a/templates/everyone_modals.html
+++ b/templates/everyone_modals.html
@@ -1,165 +1,165 @@
-
-
-
-
-
-
-
-
-
-
-
-
Новый Email
-
Ваш почтовый ящик изменен.
-
Закрыть
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Задать вопрос
-
Вопрос отправлен
-
Закрыть
-
-
-
-
-
-
-
-
-{% if request.GET.success_pay %}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Счет оплачен
-
Желаем вам продуктивного обучения.
- {% if request.GET.course_id %}
-
Страницы курса
- {% endif %}
-
-
-
-
-
-
-
-
-{% endif %}
-
-{% if request.GET.fail_pay %}
-
-
-
-
-
-
-
-
-
-
-
-
Платеж не принят
-
Во время проведеня платежа произошла ошибка.
- {% if request.GET.fail_pay_id %}
-
Получить новый счет
- {% endif %}
- {% if request.GET.fail_url %}
-
Повторить оплату
- {% endif %}
-
-
-
-
-
-
-
-
-
-{% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
Новый Email
+
Ваш почтовый ящик изменен.
+
Закрыть
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Задать вопрос
+
Вопрос отправлен
+
Закрыть
+
+
+
+
+
+
+
+
+{% if request.GET.success_pay %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Счет оплачен
+
Желаем вам продуктивного обучения.
+ {% if request.GET.course_id %}
+
Страницы курса
+ {% endif %}
+
+
+
+
+
+
+
+
+{% endif %}
+
+{% if request.GET.fail_pay %}
+
+
+
+
+
+
+
+
+
+
+
+
Платеж не принят
+
Во время проведеня платежа произошла ошибка.
+ {% if request.GET.fail_pay_id %}
+
Получить новый счет
+ {% endif %}
+ {% if request.GET.fail_url %}
+
Повторить оплату
+ {% endif %}
+
+
+
+
+
+
+
+
+
+{% endif %}
diff --git a/templates/exam.html b/templates/exam.html
old mode 100755
new mode 100644
index 0c384be..e7844e5
--- a/templates/exam.html
+++ b/templates/exam.html
@@ -1,333 +1,333 @@
-{% extends 'base_index.html' %}
-{% block head %}
-
-
-{% endblock %}
-{% block title %}{{ course.head.title }} / Домашнее задание{% endblock %}
-
-
-{% block content %}
-
- {% if exam.heaad.status == 'T' %}
-
- {% endif %}
-
-
-
-
-
-
-
-
-
-
- {{ course.level.title }} уровень
-
-
-
- {{ course.head.title }}
-
-
-
-
Приобретаемые навыки:
- {% for skill in course.head.skills %}
-
{% if skill.mini_icon %} {% endif %}{{ skill }}
- {% endfor %}
-
-
- {{ course.head.lessons }} урока(-ов)
-
-
-
-
- {% if course.head.progress != 0 %}
-
- {{ course.head.progress }}%
-
- {% endif %}
-
-
-
-
-
-
-
-
-
- {{ course.level.title }} уровень
-
-
-
- {{ course.head.title }}
-
-
-
-
Приобретаемые навыки:
- {% for skill in course.head.skills %}
-
{% if skill.mini_icon %} {% endif %}{{ skill }}
- {% endfor %}
-
-
- {{ course.head.lessons }} урока(-ов)
-
-
-
-
- {% if course.head.progress != 0 %}
-
- {{ course.head.progress }}%
-
- {% endif %}
-
-
-
-
-
-
-
-
-
-
Описание задания
-
- {{ exam.head.description|safe }}
-
-
-
-
-
- {% if exam.materials %}
-
-
-
- Материалы к заданию
-
- {% for i in exam.materials %}
-
- {% endfor %}
-
-
- {% endif %}
-
-
-
-
-
-
-
- {% if exam.tries %}
-
Попыток: ({{ exam.tries|length }} ) :
- {% endif %}
-
- {% if exam.tries %}
- {% for try in exam.tries %}
-
-
-
-
-
-
-
-
LMS: ~#
-
-
Попытка №{{ forloop.counter }}
-
-
-
-
- {{ try.teacher.get_full_name }}
- {{ try.teacher.get_short_name }}
-
-
-
-
-
- {{ try.status.title }}
-
-
-
-
-
-
-
- {% for comment in try.comments %}
-
-
-
-
-
-
-
- {{ comment.owner }}
-
-
- {{ comment.date }}
-
-
-
{{ comment.text|safe }}
- {% for file in comment.files %}
-
- {% endfor %}
-
-
-
-
-
- {% endfor %}
-
- {% endfor %}
- {% endif %}
- {% if request.user.is_authenticated %}
- {% if exam.head.status.flag != 'N' and exam.head.status.flag != 'F' %}
-
-
- ОТПРАВКА КОММЕНТАРИЯ
-
-
-
-
- ОСТАВИТЬ СООБЩЕНИЕ :
-
- {% if request.user.is_authenticated and resuqest.user.in_role == 'Ts' or request.user.in_role == 'A' %}
-
- Просто отправить
- Заставить одобрить
- Заставить отказать
- {% endif %}
-
-
-
-
-
-
-
-
-
-
-
-
-
- Добавить файл
-
-
-
-
-
- {% endif %}
- {% else %}
-
Для работы с домашним заданием, авторизуйтесь.
- {% endif %}
-
-
-
-
-
-
-
-{% include 'right_site.html' %}
-
-
-
-{% endblock %}
-
-{% block js %}
-
-
-
+{% extends 'base_index.html' %}
+{% block head %}
+
+
+{% endblock %}
+{% block title %}{{ course.head.title }} / Домашнее задание{% endblock %}
+
+
+{% block content %}
+
+ {% if exam.heaad.status == 'T' %}
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
+ {{ course.level.title }} уровень
+
+
+
+ {{ course.head.title }}
+
+
+
+
Приобретаемые навыки:
+ {% for skill in course.head.skills %}
+
{% if skill.mini_icon %} {% endif %}{{ skill }}
+ {% endfor %}
+
+
+ {{ course.head.lessons }} урока(-ов)
+
+
+
+
+ {% if course.head.progress != 0 %}
+
+ {{ course.head.progress }}%
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+ {{ course.level.title }} уровень
+
+
+
+ {{ course.head.title }}
+
+
+
+
Приобретаемые навыки:
+ {% for skill in course.head.skills %}
+
{% if skill.mini_icon %} {% endif %}{{ skill }}
+ {% endfor %}
+
+
+ {{ course.head.lessons }} урока(-ов)
+
+
+
+
+ {% if course.head.progress != 0 %}
+
+ {{ course.head.progress }}%
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
Описание задания
+
+ {{ exam.head.description|safe }}
+
+
+
+
+
+ {% if exam.materials %}
+
+
+
+ Материалы к заданию
+
+ {% for i in exam.materials %}
+
+ {% endfor %}
+
+
+ {% endif %}
+
+
+
+
+
+
+
+ {% if exam.tries %}
+
Попыток: ({{ exam.tries|length }} ) :
+ {% endif %}
+
+ {% if exam.tries %}
+ {% for try in exam.tries %}
+
+
+
+
+
+
+
+
LMS: ~#
+
+
Попытка №{{ forloop.counter }}
+
+
+
+
+ {{ try.teacher.get_full_name }}
+ {{ try.teacher.get_short_name }}
+
+
+
+
+
+ {{ try.status.title }}
+
+
+
+
+
+
+
+ {% for comment in try.comments %}
+
+
+
+
+
+
+
+ {{ comment.owner }}
+
+
+ {{ comment.date }}
+
+
+
{{ comment.text|safe }}
+ {% for file in comment.files %}
+
+ {% endfor %}
+
+
+
+
+
+ {% endfor %}
+
+ {% endfor %}
+ {% endif %}
+ {% if request.user.is_authenticated %}
+ {% if exam.head.status.flag != 'N' and exam.head.status.flag != 'F' %}
+
+
+ ОТПРАВКА КОММЕНТАРИЯ
+
+
+
+
+ ОСТАВИТЬ СООБЩЕНИЕ :
+
+ {% if request.user.is_authenticated and resuqest.user.in_role == 'Ts' or request.user.in_role == 'A' %}
+
+ Просто отправить
+ Заставить одобрить
+ Заставить отказать
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Добавить файл
+
+
+
+
+
+ {% endif %}
+ {% else %}
+
Для работы с домашним заданием, авторизуйтесь.
+ {% endif %}
+
+
+
+
+
+
+
+{% include 'right_site.html' %}
+
+
+
+{% endblock %}
+
+{% block js %}
+
+
+
{% endblock %}
\ No newline at end of file
diff --git a/templates/fail_pay.html b/templates/fail_pay.html
old mode 100755
new mode 100644
index 3eab4a7..115ba5c
--- a/templates/fail_pay.html
+++ b/templates/fail_pay.html
@@ -1,185 +1,185 @@
-{% extends 'base_index.html' %}
-{% load static %}
-{% load course_filter %}
-{% block page_title %}Доступные курсы{% endblock %}
-{% block head %}
-{% endblock %}
-{% block content %}
-
-
-
-
-
- Доступные курсы
-
-
-
-
-
-
- {% for i in courses %}
-
-
-
- {% if i.level == 'B' %}
-
- {{ i.get_level_display }} уровень
-
- {% else %}
- {% if i.level == 'A' %}
-
- {{ i.get_level_display }} уровень
-
- {% else %}
- {% if i.level == 'E' %}
-
- {{ i.get_level_display }} уровень
-
- {% endif %}
- {% endif %}
- {% endif %}
-
-
- {% if i.id|get_progress_persent:request.user.id != 0 %}
-
- {{ i.id|get_progress_persent:request.user.id }}%
-
- {% endif %}
-
{{ i.title }}
- {{ i.lessons_length }} урока(-ов)
-
- {% for skill in i.get_skills %}
- {{ skill.skill }}
- {% endfor %}
-
-
-
- {% for n in i.skills %}
- {{ i.skill }}
- {% endfor %}
-
-
-
-
-
-
-
-
- {% endfor %}
-
-
-
-
-
-{% if request.user.is_authenticated %}
- {% if actions %}
-
-
-
Последняя активность
ВСЯ ИСТОРИЯ
-
- {% for i in actions %}
-
-
-
{{ i.date }} {{ i.place }}
-
{{ i.text|safe }}
-
-
- {% endfor %}
-
-
-
- {% endif %}
- {% endif %}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Hi John, What's up...
-
-
2 minutes ago
-
-
-
-
-
-
-
-
Lorem ipsum dolor :)
-
-
1 minutes ago
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{% endblock %}
-
-{% block js %}
-
-
+{% extends 'base_index.html' %}
+{% load static %}
+{% load course_filter %}
+{% block page_title %}Доступные курсы{% endblock %}
+{% block head %}
+{% endblock %}
+{% block content %}
+
+
+
+
+
+ Доступные курсы
+
+
+
+
+
+
+ {% for i in courses %}
+
+
+
+ {% if i.level == 'B' %}
+
+ {{ i.get_level_display }} уровень
+
+ {% else %}
+ {% if i.level == 'A' %}
+
+ {{ i.get_level_display }} уровень
+
+ {% else %}
+ {% if i.level == 'E' %}
+
+ {{ i.get_level_display }} уровень
+
+ {% endif %}
+ {% endif %}
+ {% endif %}
+
+
+ {% if i.id|get_progress_persent:request.user.id != 0 %}
+
+ {{ i.id|get_progress_persent:request.user.id }}%
+
+ {% endif %}
+
{{ i.title }}
+ {{ i.lessons_length }} урока(-ов)
+
+ {% for skill in i.get_skills %}
+ {{ skill.skill }}
+ {% endfor %}
+
+
+
+ {% for n in i.skills %}
+ {{ i.skill }}
+ {% endfor %}
+
+
+
+
+
+
+
+
+ {% endfor %}
+
+
+
+
+
+{% if request.user.is_authenticated %}
+ {% if actions %}
+
+
+
Последняя активность
ВСЯ ИСТОРИЯ
+
+ {% for i in actions %}
+
+
+
{{ i.date }} {{ i.place }}
+
{{ i.text|safe }}
+
+
+ {% endfor %}
+
+
+
+ {% endif %}
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Hi John, What's up...
+
+
2 minutes ago
+
+
+
+
+
+
+
+
Lorem ipsum dolor :)
+
+
1 minutes ago
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
+
+{% block js %}
+
+
{% endblock %}
\ No newline at end of file
diff --git a/templates/faq.html b/templates/faq.html
old mode 100755
new mode 100644
index a9a02ed..71a8321
--- a/templates/faq.html
+++ b/templates/faq.html
@@ -1,111 +1,111 @@
-{% extends 'base_index.html' %}
-{% block title %}Часто задаваемые вопросы{% endblock %}
-{% block content %}
-
-
-
-
-
- {% if admin %}Внутренняя Ф@ка{% else %}Помощь в системе{% endif %}
-
-
-
-
-
- {% if a_faqs %}
-
- {% for i in a_faqs %}
-
- {% endfor %}
-
-
-
-
-
- {% if admin %}Пользовательская Ф@ка{% endif %}
-
-
-
-
- {% endif %}
-
-
-
-
-
- {% for i in faqs %}
-
- {% endfor %}
-
-
- {% include 'right_site.html' %}
-{% endblock %}
-{% block js %}
-
+{% extends 'base_index.html' %}
+{% block title %}Часто задаваемые вопросы{% endblock %}
+{% block content %}
+
+
+
+
+
+ {% if admin %}Внутренняя Ф@ка{% else %}Помощь в системе{% endif %}
+
+
+
+
+
+ {% if a_faqs %}
+
+ {% for i in a_faqs %}
+
+ {% endfor %}
+
+
+
+
+
+ {% if admin %}Пользовательская Ф@ка{% endif %}
+
+
+
+
+ {% endif %}
+
+
+
+
+
+ {% for i in faqs %}
+
+ {% endfor %}
+
+
+ {% include 'right_site.html' %}
+{% endblock %}
+{% block js %}
+
{% endblock %}
\ No newline at end of file
diff --git a/templates/faq_one.html b/templates/faq_one.html
old mode 100755
new mode 100644
index d775651..7fb4a83
--- a/templates/faq_one.html
+++ b/templates/faq_one.html
@@ -1,25 +1,25 @@
-{% extends 'base_index.html' %}
-{% block title %}Часто задаваемые вопросы{% endblock %}
-{% block content %}
-
-
-
-
-
- Назад
- {{ faq.question }}
- {% if request.user.is_authenticated and request.user.is_admin %}
-
- {% endif %}
-
-
-
-
-
{{ faq.answer|safe }}
-
- {% include 'right_site.html' %}
+{% extends 'base_index.html' %}
+{% block title %}Часто задаваемые вопросы{% endblock %}
+{% block content %}
+
+
+
+
+
+ Назад
+ {{ faq.question }}
+ {% if request.user.is_authenticated and request.user.is_admin %}
+
+ {% endif %}
+
+
+
+
+
{{ faq.answer|safe }}
+
+ {% include 'right_site.html' %}
{% endblock %}
\ No newline at end of file
diff --git a/templates/freeweek_more.html b/templates/freeweek_more.html
old mode 100755
new mode 100644
index 4a3d68b..78bc911
--- a/templates/freeweek_more.html
+++ b/templates/freeweek_more.html
@@ -1,55 +1,55 @@
-{% extends 'reports/base_index.html' %}
-{% load course_filter %}
-{% block title %}Бесплатная неделя{% endblock %}
-{% block page_title %}Бесплатная неделя{% endblock %}
-{% block head %}
-{% endblock %}
-{% block content %}
-
- {{ title }}
-
-
-
- Всего пользователей
- Прошли активацию
- Java [ {{ java.all }} ]
- Web [ {{ web.all }} ]
- Android [ {{ android.all }} ]
- C# [ {{ csh.all }} ]
-
-
- {{ all }}
- {{ active.count }} [{{ active.persent }}%]
-
- Проходят обучение: {{ java.in.count }}
- Получили домашку: {{ java.in_hw }}
- Сдали домашку: {{ java.out_hw }}
-
-
- Проходят обучение: {{ web.in.count }}
- Получили домашку: {{ web.in_hw }}
- Сдали домашку: {{ web.out_hw }}
-
-
- Проходят обучение: {{ android.in.count }}
- Получили домашку: {{ android.in_hw }}
- Сдали домашку: {{ android.out_hw }}
-
-
- Проходят обучение: {{ csh.in.count }}
- Получили домашку: {{ csh.in_hw }}
- Сдали домашку: {{ csh.out_hw }}
-
-
-
-
-
- Открыть конкретику
- Открыть конкретику
- Открыть конкретику
- Открыть конкретику
-
-
-{% endblock %}
-{% block js %}
-{% endblock %}
+{% extends 'reports/base_index.html' %}
+{% load course_filter %}
+{% block title %}Бесплатная неделя{% endblock %}
+{% block page_title %}Бесплатная неделя{% endblock %}
+{% block head %}
+{% endblock %}
+{% block content %}
+
+ {{ title }}
+
+
+
+ Всего пользователей
+ Прошли активацию
+ Java [ {{ java.all }} ]
+ Web [ {{ web.all }} ]
+ Android [ {{ android.all }} ]
+ C# [ {{ csh.all }} ]
+
+
+ {{ all }}
+ {{ active.count }} [{{ active.persent }}%]
+
+ Проходят обучение: {{ java.in.count }}
+ Получили домашку: {{ java.in_hw }}
+ Сдали домашку: {{ java.out_hw }}
+
+
+ Проходят обучение: {{ web.in.count }}
+ Получили домашку: {{ web.in_hw }}
+ Сдали домашку: {{ web.out_hw }}
+
+
+ Проходят обучение: {{ android.in.count }}
+ Получили домашку: {{ android.in_hw }}
+ Сдали домашку: {{ android.out_hw }}
+
+
+ Проходят обучение: {{ csh.in.count }}
+ Получили домашку: {{ csh.in_hw }}
+ Сдали домашку: {{ csh.out_hw }}
+
+
+
+
+
+ Открыть конкретику
+ Открыть конкретику
+ Открыть конкретику
+ Открыть конкретику
+
+
+{% endblock %}
+{% block js %}
+{% endblock %}
diff --git a/templates/good_pay.html b/templates/good_pay.html
old mode 100755
new mode 100644
index 3eab4a7..115ba5c
--- a/templates/good_pay.html
+++ b/templates/good_pay.html
@@ -1,185 +1,185 @@
-{% extends 'base_index.html' %}
-{% load static %}
-{% load course_filter %}
-{% block page_title %}Доступные курсы{% endblock %}
-{% block head %}
-{% endblock %}
-{% block content %}
-
-
-
-
-
- Доступные курсы
-
-
-
-
-
-
- {% for i in courses %}
-
-
-
- {% if i.level == 'B' %}
-
- {{ i.get_level_display }} уровень
-
- {% else %}
- {% if i.level == 'A' %}
-
- {{ i.get_level_display }} уровень
-
- {% else %}
- {% if i.level == 'E' %}
-
- {{ i.get_level_display }} уровень
-
- {% endif %}
- {% endif %}
- {% endif %}
-
-
- {% if i.id|get_progress_persent:request.user.id != 0 %}
-
- {{ i.id|get_progress_persent:request.user.id }}%
-
- {% endif %}
-
{{ i.title }}
- {{ i.lessons_length }} урока(-ов)
-
- {% for skill in i.get_skills %}
- {{ skill.skill }}
- {% endfor %}
-
-
-
- {% for n in i.skills %}
- {{ i.skill }}
- {% endfor %}
-
-
-
-
-
-
-
-
- {% endfor %}
-
-
-
-
-
-{% if request.user.is_authenticated %}
- {% if actions %}
-
-
-
Последняя активность
ВСЯ ИСТОРИЯ
-
- {% for i in actions %}
-
-
-
{{ i.date }} {{ i.place }}
-
{{ i.text|safe }}
-
-
- {% endfor %}
-
-
-
- {% endif %}
- {% endif %}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Hi John, What's up...
-
-
2 minutes ago
-
-
-
-
-
-
-
-
Lorem ipsum dolor :)
-
-
1 minutes ago
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{% endblock %}
-
-{% block js %}
-
-
+{% extends 'base_index.html' %}
+{% load static %}
+{% load course_filter %}
+{% block page_title %}Доступные курсы{% endblock %}
+{% block head %}
+{% endblock %}
+{% block content %}
+
+
+
+
+
+ Доступные курсы
+
+
+
+
+
+
+ {% for i in courses %}
+
+
+
+ {% if i.level == 'B' %}
+
+ {{ i.get_level_display }} уровень
+
+ {% else %}
+ {% if i.level == 'A' %}
+
+ {{ i.get_level_display }} уровень
+
+ {% else %}
+ {% if i.level == 'E' %}
+
+ {{ i.get_level_display }} уровень
+
+ {% endif %}
+ {% endif %}
+ {% endif %}
+
+
+ {% if i.id|get_progress_persent:request.user.id != 0 %}
+
+ {{ i.id|get_progress_persent:request.user.id }}%
+
+ {% endif %}
+
{{ i.title }}
+ {{ i.lessons_length }} урока(-ов)
+
+ {% for skill in i.get_skills %}
+ {{ skill.skill }}
+ {% endfor %}
+
+
+
+ {% for n in i.skills %}
+ {{ i.skill }}
+ {% endfor %}
+
+
+
+
+
+
+
+
+ {% endfor %}
+
+
+
+
+
+{% if request.user.is_authenticated %}
+ {% if actions %}
+
+
+
Последняя активность
ВСЯ ИСТОРИЯ
+
+ {% for i in actions %}
+
+
+
{{ i.date }} {{ i.place }}
+
{{ i.text|safe }}
+
+
+ {% endfor %}
+
+
+
+ {% endif %}
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Hi John, What's up...
+
+
2 minutes ago
+
+
+
+
+
+
+
+
Lorem ipsum dolor :)
+
+
1 minutes ago
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
+
+{% block js %}
+
+
{% endblock %}
\ No newline at end of file
diff --git a/templates/homework.html b/templates/homework.html
old mode 100755
new mode 100644
index 915f2aa..8de6d43
--- a/templates/homework.html
+++ b/templates/homework.html
@@ -1,336 +1,336 @@
-{% extends 'base_index.html' %}
-{% block head %}
-
-
-{% endblock %}
-{% block title %}{{ course.head.title }} / Домашнее задание{% endblock %}
-
-{% block content %}
-
- {% if homework.heaad.status == 'T' %}
-
- {% endif %}
-
-
-
-
-
-
-
-
-
-
- {{ course.level.title }} уровень
-
-
-
- {{ course.head.title }}
-
-
-
-
Приобретаемые навыки:
- {% for skill in course.head.skills %}
-
{% if skill.mini_icon %} {% endif %}{{ skill }}
- {% endfor %}
-
-
- {{ course.head.lessons }} урока(-ов)
-
-
-
-
- {% if course.head.progress != 0 %}
-
- {{ course.head.progress }}%
-
- {% endif %}
-
-
-
-
-
-
-
-
-
- {{ course.level.title }} уровень
-
-
-
- {{ course.head.title }}
-
-
-
-
Приобретаемые навыки:
- {% for skill in course.head.skills %}
-
{% if skill.mini_icon %} {% endif %}{{ skill }}
- {% endfor %}
-
-
- {{ course.head.lessons }} урока(-ов)
-
-
-
-
- {% if course.head.progress != 0 %}
-
- {{ course.head.progress }}%
-
- {% endif %}
-
-
-
-
-
-
-
-
-
-
Описание задания
-
- {{ homework.head.description|safe }}
-
-
-
-
-
- {% if homework.materials %}
-
-
-
- Материалы к заданию
-
- {% for i in homework.materials %}
-
- {% endfor %}
-
-
- {% endif %}
-
-
-
-
-
-
- {% if homework.tries %}
-
Попыток: ({{ homework.tries|length }} )
- {% if homework.head.status.flag == 'T' or homework.head.status.flag == 'A' %}
- {% if homework.head.delay.status %}
- Могут быть незначительные задержки с проверкой{% if homework.head.delay.description %}: "{{ homework.head.delay.description|safe }}" {% endif %}
- {% endif %}
- {% endif %}
-
- {% endif %}
-
- {% if homework.tries %}
- {% for try in homework.tries %}
-
-
-
-
-
-
-
-
LMS: ~#
-
-
Попытка №{{ forloop.counter }}
-
-
-
-
- {{ try.teacher.get_full_name }}
- {{ try.teacher.get_short_name }}
-
-
-
-
-
- {{ try.status.title }}
-
-
-
-
-
-
-
- {% for comment in try.comments %}
-
-
-
-
-
-
-
- {{ comment.owner }}
-
-
- {{ comment.date }}
-
-
-
{{ comment.text|safe }}
- {% for file in comment.files %}
-
- {% endfor %}
-
-
-
-
-
- {% endfor %}
-
- {% endfor %}
- {% endif %}
- {% if request.user.is_authenticated %}
- {% if homework.head.status.flag != 'N' and homework.head.status.flag != 'F' %}
-
-
- Отправка комментария
-
-
-
-
- Оставить сообщение :
-
- {% if request.user.is_authenticated and resuqest.user.in_role == 'Ts' or request.user.in_role == 'A' %}
-
- Просто отправить
- Заставить одобрить
- Заставить отказать
- {% endif %}
-
-
-
-
-
-
-
-
-
-
-
-
-
- Добавить файл
-
-
-
-
-
- {% endif %}
- {% else %}
-
Для работы с домашним заданием, авторизуйтесь.
- {% endif %}
-
-
-
-
-
-
-
-{% include 'right_site.html' %}
-
-{% endblock %}
-
-{% block js %}
-
-
-
+{% extends 'base_index.html' %}
+{% block head %}
+
+
+{% endblock %}
+{% block title %}{{ course.head.title }} / Домашнее задание{% endblock %}
+
+{% block content %}
+
+ {% if homework.heaad.status == 'T' %}
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
+ {{ course.level.title }} уровень
+
+
+
+ {{ course.head.title }}
+
+
+
+
Приобретаемые навыки:
+ {% for skill in course.head.skills %}
+
{% if skill.mini_icon %} {% endif %}{{ skill }}
+ {% endfor %}
+
+
+ {{ course.head.lessons }} урока(-ов)
+
+
+
+
+ {% if course.head.progress != 0 %}
+
+ {{ course.head.progress }}%
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+ {{ course.level.title }} уровень
+
+
+
+ {{ course.head.title }}
+
+
+
+
Приобретаемые навыки:
+ {% for skill in course.head.skills %}
+
{% if skill.mini_icon %} {% endif %}{{ skill }}
+ {% endfor %}
+
+
+ {{ course.head.lessons }} урока(-ов)
+
+
+
+
+ {% if course.head.progress != 0 %}
+
+ {{ course.head.progress }}%
+
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
Описание задания
+
+ {{ homework.head.description|safe }}
+
+
+
+
+
+ {% if homework.materials %}
+
+
+
+ Материалы к заданию
+
+ {% for i in homework.materials %}
+
+ {% endfor %}
+
+
+ {% endif %}
+
+
+
+
+
+
+ {% if homework.tries %}
+
Попыток: ({{ homework.tries|length }} )
+ {% if homework.head.status.flag == 'T' or homework.head.status.flag == 'A' %}
+ {% if homework.head.delay.status %}
+ Могут быть незначительные задержки с проверкой{% if homework.head.delay.description %}: "{{ homework.head.delay.description|safe }}" {% endif %}
+ {% endif %}
+ {% endif %}
+
+ {% endif %}
+
+ {% if homework.tries %}
+ {% for try in homework.tries %}
+
+
+
+
+
+
+
+
LMS: ~#
+
+
Попытка №{{ forloop.counter }}
+
+
+
+
+ {{ try.teacher.get_full_name }}
+ {{ try.teacher.get_short_name }}
+
+
+
+
+
+ {{ try.status.title }}
+
+
+
+
+
+
+
+ {% for comment in try.comments %}
+
+
+
+
+
+
+
+ {{ comment.owner }}
+
+
+ {{ comment.date }}
+
+
+
{{ comment.text|safe }}
+ {% for file in comment.files %}
+
+ {% endfor %}
+
+
+
+
+
+ {% endfor %}
+
+ {% endfor %}
+ {% endif %}
+ {% if request.user.is_authenticated %}
+ {% if homework.head.status.flag != 'N' and homework.head.status.flag != 'F' %}
+
+
+ Отправка комментария
+
+
+
+
+ Оставить сообщение :
+
+ {% if request.user.is_authenticated and resuqest.user.in_role == 'Ts' or request.user.in_role == 'A' %}
+
+ Просто отправить
+ Заставить одобрить
+ Заставить отказать
+ {% endif %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Добавить файл
+
+
+
+
+
+ {% endif %}
+ {% else %}
+
Для работы с домашним заданием, авторизуйтесь.
+ {% endif %}
+
+
+
+
+
+
+
+{% include 'right_site.html' %}
+
+{% endblock %}
+
+{% block js %}
+
+
+
{% endblock %}
\ No newline at end of file
diff --git a/templates/index.html b/templates/index.html
old mode 100755
new mode 100644
diff --git a/templates/index_menu.html b/templates/index_menu.html
old mode 100755
new mode 100644
index f793934..80e484f
--- a/templates/index_menu.html
+++ b/templates/index_menu.html
@@ -1,136 +1,136 @@
-