├── .gitignore ├── .gitmodules ├── .travis.yml ├── LICENSE ├── README.rst ├── docs ├── Makefile ├── _static │ ├── example-1.png │ └── example-2.png ├── build ├── conf.py ├── index.rst ├── jsdoc │ ├── _global_.rst │ ├── jQuery.fn.booleanField.rst │ ├── jQuery.fn.charField.rst │ ├── jQuery.fn.choicesField.rst │ ├── jQuery.fn.dateField.rst │ ├── jQuery.fn.datetimeField.rst │ ├── jQuery.fn.foreignkeyField.rst │ ├── jQuery.fn.foreignkeyFieldSelect.rst │ ├── jQuery.fn.manytomanyField.rst │ ├── jQuery.fn.rst │ ├── jQuery.fn.textField.rst │ ├── jQuery.rst │ └── toc.rst ├── make.bat ├── requirements.txt └── topics │ ├── adaptors.rst │ ├── adaptors │ ├── base.rst │ ├── boolean.rst │ ├── char.rst │ ├── choices.rst │ ├── date.rst │ ├── foreignkey.rst │ ├── manytomany.rst │ └── text.rst │ ├── develop │ ├── documentation.rst │ ├── env.rst │ └── tests.rst │ ├── developers.rst │ ├── installation.rst │ ├── javascriptapi.rst │ ├── options.rst │ ├── settings.rst │ ├── usage-examples.rst │ ├── utils.rst │ ├── widgets.rst │ └── widgets │ └── custom.rst ├── editlive ├── __init__.py ├── adaptors │ ├── __init__.py │ ├── base.py │ ├── boolean.py │ ├── char.py │ ├── choices.py │ ├── date.py │ ├── foreignkey.py │ ├── inlines.py │ ├── manytomany.py │ └── text.py ├── ajax.py ├── conf │ ├── __init__.py │ └── settings.py ├── docs_settings.py ├── layout.py ├── models.py ├── static │ └── editlive │ │ ├── Makefile │ │ ├── contrib │ │ ├── bootstrap │ │ │ ├── css │ │ │ │ ├── bootstrap-responsive.css │ │ │ │ ├── bootstrap-responsive.min.css │ │ │ │ ├── bootstrap.css │ │ │ │ └── bootstrap.min.css │ │ │ ├── img │ │ │ │ ├── glyphicons-halflings-white.png │ │ │ │ └── glyphicons-halflings.png │ │ │ └── js │ │ │ │ ├── bootstrap.js │ │ │ │ └── bootstrap.min.js │ │ └── jquery-ui-bootstrap │ │ │ ├── README.md │ │ │ ├── css │ │ │ ├── demo.css │ │ │ ├── less │ │ │ │ ├── bootstrap │ │ │ │ │ ├── accordion.less │ │ │ │ │ ├── alerts.less │ │ │ │ │ ├── bootstrap.less │ │ │ │ │ ├── breadcrumbs.less │ │ │ │ │ ├── button-groups.less │ │ │ │ │ ├── buttons.less │ │ │ │ │ ├── carousel.less │ │ │ │ │ ├── close.less │ │ │ │ │ ├── code.less │ │ │ │ │ ├── component-animations.less │ │ │ │ │ ├── dropdowns.less │ │ │ │ │ ├── forms.less │ │ │ │ │ ├── grid.less │ │ │ │ │ ├── hero-unit.less │ │ │ │ │ ├── labels.less │ │ │ │ │ ├── layouts.less │ │ │ │ │ ├── mixins.less │ │ │ │ │ ├── modals.less │ │ │ │ │ ├── navbar.less │ │ │ │ │ ├── navs.less │ │ │ │ │ ├── pager.less │ │ │ │ │ ├── pagination.less │ │ │ │ │ ├── popovers.less │ │ │ │ │ ├── progress-bars.less │ │ │ │ │ ├── reset.less │ │ │ │ │ ├── responsive.less │ │ │ │ │ ├── scaffolding.less │ │ │ │ │ ├── sprites.less │ │ │ │ │ ├── tables.less │ │ │ │ │ ├── thumbnails.less │ │ │ │ │ ├── tooltip.less │ │ │ │ │ ├── type.less │ │ │ │ │ ├── utilities.less │ │ │ │ │ ├── variables.less │ │ │ │ │ └── wells.less │ │ │ │ ├── custom-theme │ │ │ │ │ ├── accordion.less │ │ │ │ │ ├── autocomplete.less │ │ │ │ │ ├── button.less │ │ │ │ │ ├── core.less │ │ │ │ │ ├── datepicker.less │ │ │ │ │ ├── dialog.less │ │ │ │ │ ├── icons.less │ │ │ │ │ ├── jquery-ui-bootstrap.less │ │ │ │ │ ├── menu.less │ │ │ │ │ ├── mixins.less │ │ │ │ │ ├── overlays.less │ │ │ │ │ ├── progressbar.less │ │ │ │ │ ├── resizable.less │ │ │ │ │ ├── selectable.less │ │ │ │ │ ├── slider.less │ │ │ │ │ ├── tabs.less │ │ │ │ │ ├── toolbar.less │ │ │ │ │ └── variables.less │ │ │ │ ├── custom.less │ │ │ │ └── style.less │ │ │ └── style.css │ │ │ ├── img │ │ │ ├── glyphicons-halflings-white.png │ │ │ ├── glyphicons-halflings.png │ │ │ ├── ui-bg_flat_0_aaaaaa_40x100.png │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png │ │ │ ├── ui-bg_glass_65_ffffff_1x400.png │ │ │ ├── ui-bg_glass_75_dadada_1x400.png │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png │ │ │ ├── ui-bg_glass_75_ffffff_1x400.png │ │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png │ │ │ ├── ui-bg_inset-soft_95_fef1ec_1x100.png │ │ │ ├── ui-icons_222222_256x240.png │ │ │ ├── ui-icons_2e83ff_256x240.png │ │ │ ├── ui-icons_454545_256x240.png │ │ │ ├── ui-icons_888888_256x240.png │ │ │ ├── ui-icons_cccccc_256x240.png │ │ │ ├── ui-icons_cd0a0a_256x240.png │ │ │ ├── ui-icons_f6cf3b_256x240.png │ │ │ └── ui-icons_ffffff_256x240.png │ │ │ ├── index.html │ │ │ ├── js │ │ │ ├── bootstrap │ │ │ │ ├── .jshintrc │ │ │ │ ├── bootstrap-affix.js │ │ │ │ ├── bootstrap-alert.js │ │ │ │ ├── bootstrap-button.js │ │ │ │ ├── bootstrap-carousel.js │ │ │ │ ├── bootstrap-collapse.js │ │ │ │ ├── bootstrap-dropdown.js │ │ │ │ ├── bootstrap-modal.js │ │ │ │ ├── bootstrap-popover.js │ │ │ │ ├── bootstrap-scrollspy.js │ │ │ │ ├── bootstrap-tab.js │ │ │ │ ├── bootstrap-tooltip.js │ │ │ │ ├── bootstrap-transition.js │ │ │ │ ├── bootstrap-typeahead.js │ │ │ │ ├── bootstrap.js │ │ │ │ ├── bootstrap.min.js │ │ │ │ └── tests │ │ │ │ │ ├── index.html │ │ │ │ │ ├── phantom.js │ │ │ │ │ ├── server.js │ │ │ │ │ ├── unit │ │ │ │ │ ├── bootstrap-affix.js │ │ │ │ │ ├── bootstrap-alert.js │ │ │ │ │ ├── bootstrap-button.js │ │ │ │ │ ├── bootstrap-carousel.js │ │ │ │ │ ├── bootstrap-collapse.js │ │ │ │ │ ├── bootstrap-dropdown.js │ │ │ │ │ ├── bootstrap-modal.js │ │ │ │ │ ├── bootstrap-phantom.js │ │ │ │ │ ├── bootstrap-popover.js │ │ │ │ │ ├── bootstrap-scrollspy.js │ │ │ │ │ ├── bootstrap-tab.js │ │ │ │ │ ├── bootstrap-tooltip.js │ │ │ │ │ ├── bootstrap-transition.js │ │ │ │ │ └── bootstrap-typeahead.js │ │ │ │ │ └── vendor │ │ │ │ │ ├── jquery.js │ │ │ │ │ ├── qunit.css │ │ │ │ │ └── qunit.js │ │ │ ├── jquery-ui.custom.min.js │ │ │ ├── jquery.min.js │ │ │ ├── less.min.js │ │ │ └── modernizr-respond.min.js │ │ │ ├── less │ │ │ ├── bootstrap │ │ │ │ ├── accordion.less │ │ │ │ ├── alerts.less │ │ │ │ ├── bootstrap.less │ │ │ │ ├── breadcrumbs.less │ │ │ │ ├── button-groups.less │ │ │ │ ├── buttons.less │ │ │ │ ├── carousel.less │ │ │ │ ├── close.less │ │ │ │ ├── code.less │ │ │ │ ├── component-animations.less │ │ │ │ ├── dropdowns.less │ │ │ │ ├── forms.less │ │ │ │ ├── grid.less │ │ │ │ ├── hero-unit.less │ │ │ │ ├── labels-badges.less │ │ │ │ ├── layouts.less │ │ │ │ ├── mixins.less │ │ │ │ ├── modals.less │ │ │ │ ├── navbar.less │ │ │ │ ├── navs.less │ │ │ │ ├── pager.less │ │ │ │ ├── pagination.less │ │ │ │ ├── popovers.less │ │ │ │ ├── progress-bars.less │ │ │ │ ├── reset.less │ │ │ │ ├── responsive-1200px-min.less │ │ │ │ ├── responsive-767px-max.less │ │ │ │ ├── responsive-768px-979px.less │ │ │ │ ├── responsive-navbar.less │ │ │ │ ├── responsive-utilities.less │ │ │ │ ├── responsive.less │ │ │ │ ├── scaffolding.less │ │ │ │ ├── sprites.less │ │ │ │ ├── tables.less │ │ │ │ ├── thumbnails.less │ │ │ │ ├── tooltip.less │ │ │ │ ├── type.less │ │ │ │ ├── utilities.less │ │ │ │ ├── variables.less │ │ │ │ └── wells.less │ │ │ ├── custom.less │ │ │ ├── jq-ui-bootstrap │ │ │ │ ├── accordion.less │ │ │ │ ├── autocomplete.less │ │ │ │ ├── button.less │ │ │ │ ├── core.less │ │ │ │ ├── datepicker.less │ │ │ │ ├── dialog.less │ │ │ │ ├── icons.less │ │ │ │ ├── jq-ui-bootstrap.less │ │ │ │ ├── menu.less │ │ │ │ ├── mixins.less │ │ │ │ ├── overlays.less │ │ │ │ ├── progressbar.less │ │ │ │ ├── resizable.less │ │ │ │ ├── selectable.less │ │ │ │ ├── slider.less │ │ │ │ ├── tabs.less │ │ │ │ ├── toolbar.less │ │ │ │ └── variables.less │ │ │ ├── style.less │ │ │ └── thirdParty │ │ │ │ ├── enhanced.less │ │ │ │ ├── ui.daterangepicker.less │ │ │ │ └── wijmo-theming.less │ │ │ └── third-party │ │ │ ├── jQuery-UI-Date-Range-Picker │ │ │ ├── css │ │ │ │ └── ui.daterangepicker.css │ │ │ ├── index.html │ │ │ └── js │ │ │ │ ├── date.js │ │ │ │ ├── daterangepicker.jQuery.compressed.js │ │ │ │ └── daterangepicker.jQuery.js │ │ │ ├── jQuery-UI-Date-Time-Picker │ │ │ ├── jquery-ui-timepicker-addon.js │ │ │ └── jquery-ui-timepicker.css │ │ │ ├── jQuery-UI-FileInput │ │ │ ├── css │ │ │ │ └── enhanced.css │ │ │ ├── images │ │ │ │ ├── icon-generic.gif │ │ │ │ ├── icon-image.gif │ │ │ │ ├── icon-media.gif │ │ │ │ └── icon-zip.gif │ │ │ └── js │ │ │ │ ├── enhance.min.js │ │ │ │ └── fileinput.jquery.js │ │ │ └── wijmo │ │ │ ├── jquery.bgiframe-2.1.3-pre.js │ │ │ ├── jquery.mousewheel.min.js │ │ │ ├── jquery.wijmo-open.1.5.0.css │ │ │ └── jquery.wijmo-open.1.5.0.min.js │ │ ├── css │ │ └── editlive.css │ │ ├── js │ │ ├── jquery.editlive.ajaxform.js │ │ ├── jquery.editlive.boolean.js │ │ ├── jquery.editlive.char.js │ │ ├── jquery.editlive.choices.js │ │ ├── jquery.editlive.date.js │ │ ├── jquery.editlive.datetime.js │ │ ├── jquery.editlive.foreignkey.js │ │ ├── jquery.editlive.js │ │ ├── jquery.editlive.listactions.js │ │ ├── jquery.editlive.manytomany.js │ │ ├── jquery.editlive.sync.js │ │ └── jquery.editlive.text.js │ │ └── less │ │ ├── base.less │ │ ├── editlive.less │ │ ├── mixins.less │ │ └── utilities.less ├── templates │ └── editlive │ │ └── test │ │ ├── base.html │ │ ├── biginteger.html │ │ ├── boolean.html │ │ ├── char.html │ │ ├── commaseparatedinteger.html │ │ ├── date.html │ │ ├── datetime.html │ │ ├── decimal.html │ │ ├── default.html │ │ ├── email.html │ │ ├── file.html │ │ ├── filepath.html │ │ ├── float.html │ │ ├── genericipaddress.html │ │ ├── image.html │ │ ├── integer.html │ │ ├── ipaddress.html │ │ ├── nullboolean.html │ │ ├── positiveinteger.html │ │ ├── positivesmallinteger.html │ │ ├── slug.html │ │ ├── smallinteger.html │ │ ├── text.html │ │ ├── time.html │ │ └── url.html ├── templatetags │ ├── __init__.py │ └── editlive_tags.py ├── tests.py ├── urls.py ├── utils.py └── views.py ├── example_project ├── example_project │ ├── __init__.py │ ├── envs │ │ ├── __init__.py │ │ ├── common.py │ │ ├── dev.py │ │ ├── lettuce.py │ │ ├── lettuce_memory.py │ │ ├── local.py │ │ ├── local.py.dist │ │ └── util │ │ │ ├── __init__.py │ │ │ └── environment_settings.py │ ├── settings.py │ ├── settings.py-bak │ ├── terrain.py │ ├── urls.py │ └── wsgi.py ├── manage.py ├── requirements.txt ├── run-server ├── run-tests └── test_app │ ├── __init__.py │ ├── admin.py │ ├── features │ ├── char.feature │ ├── date.feature │ ├── datetime.feature │ ├── email.feature │ ├── float.feature │ ├── genericipaddress.feature │ ├── integer.feature │ ├── ipaddress.feature │ ├── positiveinteger.feature │ ├── positivesmallinteger.feature │ ├── slug.feature │ ├── smallinteger.feature │ ├── steps.py │ ├── terrain.py │ ├── text.feature │ └── time.feature │ ├── fixtures │ └── initial_data.json │ ├── models.py │ ├── static │ └── test_app │ │ └── img │ │ └── favicon.ico │ ├── templates │ └── test_app │ │ ├── base.html │ │ ├── home.html │ │ └── soup.html │ ├── tests.py │ ├── urls.py │ └── views.py └── setup.py /.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | *.pot 3 | *.pyc 4 | local_settings.py 5 | *.egg-info 6 | docs/_build/ 7 | editlive_test_env/ 8 | example_project/testdb.sqlite3 9 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "docs/_themes/jsdoc-for-sphinx"] 2 | path = docs/_themes/jsdoc-for-sphinx 3 | url = https://github.com/jterrace/jsdoc-for-sphinx.git 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | env: 3 | global: 4 | - PATH=$PATH:/tmp/bin 5 | # matrix: 6 | # - BROWSER=firefox 7 | # - BROWSER=chrome 8 | python: 9 | # "2.6" 10 | - "2.7" 11 | install: 12 | - "/home/travis/virtualenv/python2.7/bin/python setup.py install" 13 | # "wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -" 14 | # "sudo /bin/sh -c 'echo \"deb http://dl.google.com/linux/chrome/deb/ stable main\" >> /etc/apt/sources.list.d/google.list'" 15 | # "sudo apt-get update" 16 | # "sudo apt-get install google-chrome-stable" 17 | # Install Google Chrome 18 | #- "sudo apt-get -f install" 19 | #- "wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb" 20 | #- "sudo apt-get install libgconf2-4" 21 | #- "sudo dpkg -i google-chrome*.deb" 22 | # Install the Google Chrome webdriver 23 | #- "mkdir /tmp/bin" 24 | #- "wget https://chromedriver.googlecode.com/files/chromedriver_linux32_23.0.1240.0.zip" 25 | #- "unzip chromedriver_linux32_23.0.1240.0.zip" 26 | #- "mv chromedriver /tmp/bin" 27 | - "pip install -r docs/requirements.txt --use-mirrors" 28 | - "pip install -r example_project/requirements.txt --use-mirrors" 29 | before_script: 30 | # Setup headless X per http://about.travis-ci.org/docs/user/gui-and-headless-browsers/ 31 | - "export DISPLAY=:99.0" 32 | - "sh -e /etc/init.d/xvfb start" 33 | script: 34 | - "export BROWSER=FIREFOX" 35 | - "PATH=$PATH:/tmp/bin sudo /home/travis/virtualenv/python2.7/bin/python example_project/manage.py harvest -A dajaxice,south,editlive" 36 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) Maxime Haineault and individual contributors. 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without modification, 5 | are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, 8 | this list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 14 | 3. Neither the name of Maxime Haineault nor the names of its contributors may be used 15 | to endorse or promote products derived from this software without 16 | specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 19 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 22 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 24 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 25 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 27 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | -------------------------------------------------------------------------------- /docs/_static/example-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/docs/_static/example-1.png -------------------------------------------------------------------------------- /docs/_static/example-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/docs/_static/example-2.png -------------------------------------------------------------------------------- /docs/build: -------------------------------------------------------------------------------- 1 | java -jar ~/Ubuntu\ One/SDKs/jsdoc_toolkit-2.4.0/jsdoc-toolkit/jsrun.jar \ 2 | ~/Ubuntu\ One/SDKs/jsdoc_toolkit-2.4.0/jsdoc-toolkit/app/run.js \ 3 | -a --directory=./jsdoc --recurse=2 -v ../editlive/static/editlive/js/ \ 4 | -t=_themes/jsdoc-for-sphinx/ \ 5 | && make html 6 | -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- 1 | .. almir documentation master file, created by 2 | 3 | .. _index: 4 | .. _contents: 5 | 6 | .. |example1| image:: /_static/example-1.png 7 | .. |example2| image:: /_static/example-2.png 8 | 9 | Django editlive documentation 10 | +++++++++++++++++++++++++++++ 11 | 12 | 13 | :Author: Maxime Haineault 14 | :Source code: `github.com project `_ 15 | :Bug tracker: `github.com issues `_ 16 | :Generated: |today| 17 | :License: Open source, `BSD license`_ 18 | :Version: |release| 19 | 20 | .. _BSD license: https://github.com/h3/django-editlive/blob/master/LICENSE 21 | 22 | .. rubric:: Everything you need to know about Django editlive. 23 | 24 | .. sidebar:: Live examples 25 | 26 | You can `see editlive in action on here`__ 27 | 28 | .. __: http://editlive.motion-m.ca/ 29 | 30 | 31 | Django editlive is a Free Open Source project which aims to make it easy to 32 | make elegant inline editable fields from database objects. 33 | 34 | Here's a simple example: 35 | 36 | .. code-block:: django 37 | 38 | {% load editlive_tags %} 39 | 40 | {% editlive "request.user.first_name" as firstname %} 41 | Hello {{ firstname }}, how are you ? 42 | 43 | 44 | This would output something like `Hello [John], how are you ?`. 45 | 46 | |example1| 47 | 48 | The name `[John]` would be a clickable `span` element called the "placeholder". 49 | 50 | |example2| 51 | 52 | When the placeholder is clicked, it's replaced by an input field and when this field 53 | is blurred, it is automatically saved to the database with AJAX. To cancel an edit you 54 | must use the escape key. 55 | 56 | 57 | Adaptors are special classes which are used to abstract the different fields types and 58 | interact with them. Learn more about it below: 59 | 60 | Table of Contents 61 | ================= 62 | 63 | .. toctree:: 64 | :maxdepth: 2 65 | 66 | topics/installation 67 | topics/settings 68 | topics/usage-examples 69 | topics/options 70 | topics/javascriptapi 71 | topics/adaptors 72 | topics/widgets 73 | topics/developers 74 | -------------------------------------------------------------------------------- /docs/jsdoc/_global_.rst: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | .. Classes and methods 6 | 7 | _global_ 8 | ================================================================================ 9 | 10 | .. class-title 11 | 12 | 13 | 14 | 15 | Methods 16 | ------- 17 | 18 | .. class-methods 19 | 20 | 21 | 22 | .. js:function:: _renderItem(ul, item) 23 | 24 | 25 | 26 | :param ul: 27 | 28 | 29 | 30 | :param item: 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /docs/jsdoc/jQuery.fn.booleanField.rst: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | .. Classes and methods 6 | 7 | jQuery.fn.booleanField 8 | ================================================================================ 9 | 10 | .. class-title 11 | 12 | 13 | booleanField - Widget for boolean fields (drop down menu) 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | Constructor 26 | ----------- 27 | 28 | .. js:class:: jQuery.fn.booleanField() 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /docs/jsdoc/jQuery.fn.charField.rst: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | .. Classes and methods 6 | 7 | jQuery.fn.charField 8 | ================================================================================ 9 | 10 | .. class-title 11 | 12 | 13 | charField - the base widget 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | Constructor 26 | ----------- 27 | 28 | .. js:class:: jQuery.fn.charField() 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | Methods 39 | ------- 40 | 41 | .. class-methods 42 | 43 | 44 | 45 | .. js:function:: charField._set_value(v) 46 | 47 | 48 | 49 | :param mixed v: 50 | - The new value. 51 | 52 | 53 | 54 | 55 | 56 | 57 | :returns: v - The new value. 58 | :rtype: mixed 59 | 60 | 61 | 62 | Updates the internal widget value and the DOM element's value 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /docs/jsdoc/jQuery.fn.choicesField.rst: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | .. Classes and methods 6 | 7 | jQuery.fn.choicesField 8 | ================================================================================ 9 | 10 | .. class-title 11 | 12 | 13 | choicesField - A widget for choices fields (dropdown menu) 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | Constructor 26 | ----------- 27 | 28 | .. js:class:: jQuery.fn.choicesField() 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /docs/jsdoc/jQuery.fn.dateField.rst: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | .. Classes and methods 6 | 7 | jQuery.fn.dateField 8 | ================================================================================ 9 | 10 | .. class-title 11 | 12 | 13 | dateField - A date picker widget 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | Constructor 26 | ----------- 27 | 28 | .. js:class:: jQuery.fn.dateField() 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /docs/jsdoc/jQuery.fn.datetimeField.rst: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | .. Classes and methods 6 | 7 | jQuery.fn.datetimeField 8 | ================================================================================ 9 | 10 | .. class-title 11 | 12 | 13 | datetimeField - A datetime picker widget 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | Constructor 26 | ----------- 27 | 28 | .. js:class:: jQuery.fn.datetimeField() 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /docs/jsdoc/jQuery.fn.foreignkeyField.rst: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | .. Classes and methods 6 | 7 | jQuery.fn.foreignkeyField 8 | ================================================================================ 9 | 10 | .. class-title 11 | 12 | 13 | foreignkeyField - Autocomplete widget for foreignkey field 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | Constructor 26 | ----------- 27 | 28 | .. js:class:: jQuery.fn.foreignkeyField() 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /docs/jsdoc/jQuery.fn.foreignkeyFieldSelect.rst: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | .. Classes and methods 6 | 7 | jQuery.fn.foreignkeyFieldSelect 8 | ================================================================================ 9 | 10 | .. class-title 11 | 12 | 13 | foreignkeyFieldSelect - Standard dropdown select for foreignkey field 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | Constructor 26 | ----------- 27 | 28 | .. js:class:: jQuery.fn.foreignkeyFieldSelect() 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /docs/jsdoc/jQuery.fn.manytomanyField.rst: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | .. Classes and methods 6 | 7 | jQuery.fn.manytomanyField 8 | ================================================================================ 9 | 10 | .. class-title 11 | 12 | 13 | manytomanyField - Widget for many to many field 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | Constructor 26 | ----------- 27 | 28 | .. js:class:: jQuery.fn.manytomanyField() 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /docs/jsdoc/jQuery.fn.rst: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | .. Classes and methods 6 | 7 | jQuery.fn 8 | ================================================================================ 9 | 10 | .. class-title 11 | 12 | 13 | See (http://jquery.com/) 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | Constructor 26 | ----------- 27 | 28 | .. js:class:: jQuery.fn() 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /docs/jsdoc/jQuery.fn.textField.rst: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | .. Classes and methods 6 | 7 | jQuery.fn.textField 8 | ================================================================================ 9 | 10 | .. class-title 11 | 12 | 13 | textField - Widget for text field (textarea) 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | Constructor 26 | ----------- 27 | 28 | .. js:class:: jQuery.fn.textField() 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /docs/jsdoc/jQuery.rst: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | .. Classes and methods 6 | 7 | jQuery 8 | ================================================================================ 9 | 10 | .. class-title 11 | 12 | 13 | See (http://jquery.com/). 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | Constructor 26 | ----------- 27 | 28 | .. js:class:: jQuery() 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /docs/jsdoc/toc.rst: -------------------------------------------------------------------------------- 1 | ################### 2 | JsDoc Reference 3 | ################### 4 | 5 | 6 | 7 | .. toctree:: 8 | 9 | 10 | _global_ 11 | jQuery 12 | jQuery.fn 13 | jQuery.fn.booleanField 14 | jQuery.fn.charField 15 | jQuery.fn.choicesField 16 | jQuery.fn.dateField 17 | jQuery.fn.datetimeField 18 | jQuery.fn.foreignkeyField 19 | jQuery.fn.foreignkeyFieldSelect 20 | jQuery.fn.manytomanyField 21 | jQuery.fn.textField 22 | 23 | 24 | -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- 1 | Django==1.4.5 2 | South==0.7.6 3 | django-dajaxice==0.5.4 4 | virtualenv==1.8.4 5 | -------------------------------------------------------------------------------- /docs/topics/adaptors.rst: -------------------------------------------------------------------------------- 1 | Adaptors 2 | ++++++++ 3 | 4 | Adaptor are special class which are used as abstract API to work with 5 | editlive objects. They provide basic functionnalities such as rendering, 6 | validating and updating an object. Each django field types can have its own 7 | adaptor. 8 | 9 | Currently, the following adaptors are provided as default: 10 | 11 | .. toctree:: 12 | adaptors/base 13 | adaptors/boolean 14 | adaptors/char 15 | adaptors/choices 16 | adaptors/date 17 | adaptors/foreignkey 18 | adaptors/manytomany 19 | adaptors/text 20 | -------------------------------------------------------------------------------- /docs/topics/adaptors/base.rst: -------------------------------------------------------------------------------- 1 | :mod:`editlive.adaptors.base` -- Base Adaptor 2 | +++++++++++++++++++++++++++++++++++++++++++++ 3 | 4 | .. automodule:: editlive.adaptors.base 5 | :members: 6 | :undoc-members: 7 | :exclude-members: BaseInlineAdaptor 8 | :show-inheritance: 9 | -------------------------------------------------------------------------------- /docs/topics/adaptors/boolean.rst: -------------------------------------------------------------------------------- 1 | :mod:`editlive.adaptors.boolean` -- Boolean Adaptor 2 | +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 | 4 | .. automodule:: editlive.adaptors.boolean 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/topics/adaptors/char.rst: -------------------------------------------------------------------------------- 1 | :mod:`editlive.adaptors.char` -- Char Adaptor 2 | +++++++++++++++++++++++++++++++++++++++++++++ 3 | 4 | .. automodule:: editlive.adaptors.char 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/topics/adaptors/choices.rst: -------------------------------------------------------------------------------- 1 | :mod:`editlive.adaptors.choices` -- Choices Adaptor 2 | +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 | 4 | .. automodule:: editlive.adaptors.choices 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/topics/adaptors/date.rst: -------------------------------------------------------------------------------- 1 | :mod:`editlive.adaptors.boolean` -- Date and DateTime Adaptors 2 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 | 4 | .. automodule:: editlive.adaptors.date 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/topics/adaptors/foreignkey.rst: -------------------------------------------------------------------------------- 1 | :mod:`editlive.adaptors.foreignkey` -- ForeignKey Adaptor 2 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 | 4 | .. automodule:: editlive.adaptors.foreignkey 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/topics/adaptors/manytomany.rst: -------------------------------------------------------------------------------- 1 | :mod:`editlive.adaptors.manytomany` -- ManyToMany Adaptor 2 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 | 4 | .. automodule:: editlive.adaptors.manytomany 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/topics/adaptors/text.rst: -------------------------------------------------------------------------------- 1 | :mod:`editlive.adaptors.text` -- Text Adaptor 2 | +++++++++++++++++++++++++++++++++++++++++++++ 3 | 4 | .. automodule:: editlive.adaptors.text 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: 8 | -------------------------------------------------------------------------------- /docs/topics/develop/env.rst: -------------------------------------------------------------------------------- 1 | 2 | .. _test-and-dev-env: 3 | 4 | Testing and development environment 5 | +++++++++++++++++++++++++++++++++++ 6 | 7 | An example project is included to provide quick bootstraping of 8 | a development and testing environment. 9 | 10 | 11 | Create a virtualenv 12 | ------------------- 13 | 14 | .. code-block:: bash 15 | 16 | cd django-editlive/ 17 | virtualenv --distribute --no-site-packages editlive_test_env 18 | source editlive_test_env/bin/activate 19 | 20 | 21 | Install requirements 22 | -------------------- 23 | 24 | .. code-block:: bash 25 | 26 | pip install -r docs/requirements.txt 27 | pip install -r example_project/requirements.txt 28 | 29 | 30 | Install Google Chrome & Google Chrome Webdriver 31 | ----------------------------------------------- 32 | 33 | **Note:** This installation has only been tested on Ubuntu 12+. 34 | 35 | .. code-block:: bash 36 | 37 | # Install Google Chrome (if not already installed!) 38 | wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb 39 | sudo apt-get install libgconf2-4 40 | sudo dpkg -i google-chrome*.deb 41 | 42 | # Install the Google Chrome webdriver 43 | wget https://chromedriver.googlecode.com/files/chromedriver_linux32_23.0.1240.0.zip 44 | unzip chromedriver_linux32_23.0.1240.0.zip 45 | mv chromedriver /usr/local/bin 46 | -------------------------------------------------------------------------------- /docs/topics/developers.rst: -------------------------------------------------------------------------------- 1 | Developers 2 | ++++++++++ 3 | 4 | On this page you will find information for developers who want to contribute to this project. 5 | 6 | .. toctree:: 7 | :maxdepth: 4 8 | 9 | utils 10 | develop/env 11 | develop/documentation 12 | develop/tests 13 | -------------------------------------------------------------------------------- /docs/topics/options.rst: -------------------------------------------------------------------------------- 1 | Options 2 | +++++++ 3 | 4 | The editlive template tags accepts three kind of options. 5 | 6 | * **template tag options**: these options affect the template tag behavior 7 | * **data options**: options starting with `data_` 8 | * **widget options**: all other options you may pass will be sent to the jQuery UI widget 9 | 10 | Template tag options 11 | -------------------- 12 | 13 | wrapclass 14 | ^^^^^^^^^ 15 | 16 | Add a CSS class to the control's container.: 17 | 18 | .. code-block:: django 19 | 20 | {%load editlive_tags%} 21 | {%editlive "object.date_test" wrapclass="lead" as field%}{{field}} 22 | 23 | load_tags 24 | ^^^^^^^^^ 25 | 26 | Editlive fields are rendered with standard django template. This option is used to load extra 27 | template tags in these template instance. As is this option is not really useful, it's more a 28 | complement to the next option. 29 | 30 | template_filters 31 | ^^^^^^^^^^^^^^^^ 32 | 33 | With the `template_filters` option you can control the rendering of the placeholder value. 34 | 35 | mini 36 | ^^^^ 37 | 38 | Smaller placeholder/input. 39 | 40 | maxwidth 41 | ^^^^^^^^ 42 | 43 | Set max width of the placeholder. 44 | 45 | width 46 | ^^^^^ 47 | 48 | Set the width of the placeholder. 49 | 50 | readonly 51 | ^^^^^^^^ 52 | 53 | Toggle readonly mode: 54 | 55 | .. code-block:: django 56 | 57 | {%load editlive_tags%} 58 | {%editlive "object.date_test" readonly=object.is_archived as field%}{{field}} 59 | 60 | formset 61 | ^^^^^^^ 62 | 63 | If you are iterating over a object set you will need to use the formset argument so 64 | each field as its own id. 65 | 66 | .. code-block:: django 67 | 68 | 69 | {% for line in object.relatedobject_set.all %} 70 | 71 | 72 | 73 | 74 | {% endfor %} 75 |
{% editlive "line.name" formset="myformset" line_name %}{{ line_name }}{% editlive "line.email" formset="myformset" line_email %}{{ line_email }}
76 | 77 | class 78 | ^^^^^ 79 | 80 | Add class to the wrapper. A `fixedwidth` class helper is provided. When used in conjunction with 81 | `width`, if the text of the placeholder is wider than its container will be truncated and an elipsis 82 | will be added: 83 | 84 | class="fixedwidth span1" 85 | 86 | .. code-block:: django 87 | 88 | {%load editlive_tags%} 89 | {%editlive "object.date_test" width="100" class="fixedwidth" as field%}{{field}} 90 | -------------------------------------------------------------------------------- /docs/topics/utils.rst: -------------------------------------------------------------------------------- 1 | :mod:`editlive.utils` -- Utils 2 | ++++++++++++++++++++++++++++++ 3 | 4 | Editlive utils provide utility functions to perform editlive related tasks. 5 | 6 | .. automodule:: editlive.utils 7 | :members: 8 | :undoc-members: 9 | -------------------------------------------------------------------------------- /docs/topics/widgets.rst: -------------------------------------------------------------------------------- 1 | UI widgets 2 | ++++++++++ 3 | 4 | UI widgets are basically just Jquery UI widget which respect a certain API. 5 | 6 | .. toctree:: 7 | ../jsdoc/toc 8 | widgets/custom 9 | -------------------------------------------------------------------------------- /editlive/__init__.py: -------------------------------------------------------------------------------- 1 | """Django editlive 2 | 3 | .. moduleauthor:: Maxime Haineault 4 | 5 | """ 6 | 7 | VERSION = "0.0.1" 8 | -------------------------------------------------------------------------------- /editlive/adaptors/__init__.py: -------------------------------------------------------------------------------- 1 | """Adaptors 2 | 3 | .. moduleauthor:: Maxime Haineault 4 | 5 | """ 6 | from editlive.adaptors.char import BaseAdaptor 7 | from editlive.adaptors.char import CharAdaptor 8 | from editlive.adaptors.boolean import BooleanAdaptor 9 | from editlive.adaptors.choices import ChoicesAdaptor 10 | from editlive.adaptors.date import DateAdaptor, DateTimeAdaptor, TimeAdaptor 11 | from editlive.adaptors.foreignkey import ForeignKeyAdaptor 12 | from editlive.adaptors.inlines import StackedInlineAdaptor, TabularInlineAdaptor 13 | from editlive.adaptors.manytomany import ManyToManyAdaptor 14 | from editlive.adaptors.text import TextAdaptor 15 | -------------------------------------------------------------------------------- /editlive/adaptors/boolean.py: -------------------------------------------------------------------------------- 1 | from editlive.adaptors.base import BaseAdaptor 2 | 3 | 4 | class BooleanAdaptor(BaseAdaptor): 5 | """The BooleanAdaptor is used for BooleanField. 6 | 7 | .. note:: 8 | 9 | Not tested with NullBooleanField. 10 | 11 | """ 12 | 13 | def __init__(self, *args, **kwargs): 14 | super(BooleanAdaptor, self).__init__(*args, **kwargs) 15 | if self.form_field: 16 | self.attributes.update({'data-type': 'booleanField'}) 17 | 18 | def get_value(self): 19 | """Instead of returning True or False we return 'on' or 'off' 20 | """ 21 | if callable(self.field_value): 22 | v = self.field_value() 23 | v = self.field_value 24 | return v and 'on' or 'off' 25 | 26 | # def set_value(self, value): 27 | # self.field_value = value 28 | # setattr(self.obj, self.field_name, self.field_value) 29 | # return value 30 | -------------------------------------------------------------------------------- /editlive/adaptors/char.py: -------------------------------------------------------------------------------- 1 | """ 2 | .. module:: CharAdaptor 3 | .. moduleauthor:: Maxime Haineault 4 | """ 5 | 6 | from editlive.adaptors.base import BaseAdaptor 7 | 8 | 9 | class CharAdaptor(BaseAdaptor): 10 | """The CharAdaptor is used for CharField and unknown field types". 11 | """ 12 | 13 | def __init__(self, *args, **kwargs): 14 | super(CharAdaptor, self).__init__(*args, **kwargs) 15 | if self.form_field: 16 | self.attributes.update({'data-type': 'charField'}) 17 | -------------------------------------------------------------------------------- /editlive/adaptors/choices.py: -------------------------------------------------------------------------------- 1 | from editlive.adaptors.base import BaseAdaptor 2 | 3 | 4 | class ChoicesAdaptor(BaseAdaptor): 5 | """The ChoicesAdaptor is used for fields with a `choices` argument. 6 | """ 7 | 8 | def __init__(self, *args, **kwargs): 9 | super(ChoicesAdaptor, self).__init__(*args, **kwargs) 10 | if self.form_field: 11 | self.attributes.update({'data-type': 'choicesField'}) 12 | 13 | def get_value(self): 14 | """Instead of returning the field value we call and 15 | return the object's `get_FIELD_display` method. 16 | """ 17 | if callable(self.field_value): 18 | return self.field_value() 19 | return getattr(self.obj, 'get_%s_display' % self.field.name)() 20 | -------------------------------------------------------------------------------- /editlive/adaptors/foreignkey.py: -------------------------------------------------------------------------------- 1 | from editlive.adaptors.base import BaseAdaptor 2 | 3 | 4 | class ForeignKeyAdaptor(BaseAdaptor): 5 | """The ForeignKeyAdaptor is used for ForeignKey fields". 6 | """ 7 | 8 | def __init__(self, *args, **kwargs): 9 | super(ForeignKeyAdaptor, self).__init__(*args, **kwargs) 10 | if self.form_field: 11 | self.attributes.update({ 12 | 'data-type': 'foreignkeyField', 13 | 'data-source': '#%s' % self.attributes.get('data-field-id'), 14 | }) 15 | 16 | def set_value(self, value): 17 | self.field_value = value 18 | setattr(self.obj, '%s_id' % \ 19 | self.get_real_field_name(), self.field_value) 20 | return self.field_value 21 | 22 | def render_value(self, value=None): 23 | val = value or getattr(self.obj, self.get_real_field_name()) 24 | rendered_val = '' if val is None else unicode(val) 25 | return rendered_val 26 | -------------------------------------------------------------------------------- /editlive/adaptors/inlines.py: -------------------------------------------------------------------------------- 1 | from editlive.adaptors.base import BaseInlineAdaptor 2 | 3 | 4 | class TabularInlineAdaptor(BaseInlineAdaptor): 5 | pass 6 | 7 | 8 | class StackedInlineAdaptor(BaseInlineAdaptor): 9 | pass 10 | -------------------------------------------------------------------------------- /editlive/adaptors/manytomany.py: -------------------------------------------------------------------------------- 1 | from editlive.adaptors.base import BaseAdaptor 2 | 3 | 4 | class ManyToManyAdaptor(BaseAdaptor): 5 | """The ManyToManyAdaptor is used for ManyToMany fields". 6 | """ 7 | 8 | def __init__(self, *args, **kwargs): 9 | super(ManyToManyAdaptor, self).__init__(*args, **kwargs) 10 | if self.form_field: 11 | self.attributes.update({ 12 | 'data-type': 'manytomanyField', 13 | 'data-source': '#%s' % self.attributes.get('data-field-id'), 14 | }) 15 | 16 | def set_value(self, value): 17 | if value is None: 18 | self.field_value = [] 19 | getattr(self.obj, self.field_name).clear() 20 | else: 21 | self.field_value = value 22 | setattr(self.obj, self.field_name, value) 23 | return value 24 | -------------------------------------------------------------------------------- /editlive/adaptors/text.py: -------------------------------------------------------------------------------- 1 | from editlive.adaptors.base import BaseAdaptor 2 | 3 | 4 | class TextAdaptor(BaseAdaptor): 5 | """The TextAdaptor is used for Text fields. 6 | """ 7 | def __init__(self, *args, **kwargs): 8 | super(TextAdaptor, self).__init__(*args, **kwargs) 9 | if self.form_field: 10 | self.attributes.update({'data-type': 'textField'}) 11 | -------------------------------------------------------------------------------- /editlive/conf/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/conf/__init__.py -------------------------------------------------------------------------------- /editlive/conf/settings.py: -------------------------------------------------------------------------------- 1 | from django.conf import settings as settings 2 | 3 | 4 | DATE_FORMAT = getattr(settings, 'DATE_FORMAT') 5 | DATETIME_FORMAT = getattr(settings, 'DATETIME_FORMAT') 6 | 7 | DATE_WIDGET_FORMAT = getattr(settings, 'EDITLIVE_DATE_WIDGET_FORMAT', 'yy-mm-dd') 8 | TIME_WIDGET_FORMAT = getattr(settings, 'EDITLIVE_TIME_WIDGET_FORMAT', 'hh:mm') 9 | 10 | EDITLIVE_DEFAULT_ADAPTORS = { 11 | # Fields 12 | 'char': 'editlive.adaptors.CharAdaptor', 13 | 'text': 'editlive.adaptors.TextAdaptor', 14 | 'date': 'editlive.adaptors.DateAdaptor', 15 | 'datetime': 'editlive.adaptors.DateTimeAdaptor', 16 | 'boolean': 'editlive.adaptors.BooleanAdaptor', 17 | 'fk': 'editlive.adaptors.ForeignKeyAdaptor', 18 | 'choices': 'editlive.adaptors.ChoicesAdaptor', 19 | 'm2m': 'editlive.adaptors.ManyToManyAdaptor', 20 | 'time': 'editlive.adaptors.TimeAdaptor', 21 | #'file': 'editlive.adaptors.FileAdaptor', 22 | #'image': 'editlive.adaptors.ImageAdaptor', 23 | 24 | # Inlines 25 | 'tabular': 'editlive.adaptors.TabularInlineAdaptor', 26 | 'stacked': 'editlive.adaptors.StackedInlineAdaptor', 27 | } 28 | 29 | #EDITLIVE_SYNC_TEMPLATE = """ 30 | # 37 | #""" 38 | -------------------------------------------------------------------------------- /editlive/docs_settings.py: -------------------------------------------------------------------------------- 1 | """ 2 | Django dummy settings for docs project. 3 | """ 4 | # import source code dir 5 | import os 6 | import sys 7 | sys.path.insert(0, os.getcwd()) 8 | sys.path.insert(0, os.path.join(os.getcwd(), os.pardir)) 9 | 10 | SITE_ID = 666 11 | DEBUG = True 12 | TEMPLATE_DEBUG = DEBUG 13 | 14 | DATABASES = {"default": { 15 | "NAME": ":memory:", 16 | "ENGINE": "django.db.backends.sqlite3", 17 | }} 18 | 19 | INSTALLED_APPS = ( 20 | 'django.contrib.auth', 21 | 'django.contrib.contenttypes', 22 | 'django.contrib.sessions', 23 | 'django.contrib.sites', 24 | 'dajaxice', 25 | 'editlive', 26 | ) 27 | -------------------------------------------------------------------------------- /editlive/layout.py: -------------------------------------------------------------------------------- 1 | from crispy_forms.layout import Field 2 | 3 | 4 | class Editlive(object): 5 | def __init__(self, widget_type, **kwargs): 6 | self.widget_type = widget_type 7 | self.options = [] 8 | for k in kwargs: 9 | self.options.append( 10 | k.replace('_', '-') + '="' + kwargs.get(k) + '"') 11 | 12 | def render(self, form, form_style, context): 13 | self.options.append('data-type="' + self.widget_type + '"') 14 | return '' % " ".join(self.options) 15 | -------------------------------------------------------------------------------- /editlive/models.py: -------------------------------------------------------------------------------- 1 | from django.db import models 2 | 3 | # Create your models here. 4 | -------------------------------------------------------------------------------- /editlive/static/editlive/Makefile: -------------------------------------------------------------------------------- 1 | BOOTSTRAP = ./css/editlive.css 2 | BOOTSTRAP_LESS = ./less/base.less 3 | DATE=$(shell date +%I:%M%p) 4 | CHECK=\033[32m✔\033[39m 5 | 6 | 7 | # 8 | # BUILD DOCS 9 | # 10 | 11 | build: 12 | @echo "Building Bootstrap..." 13 | @recess --compile ${BOOTSTRAP_LESS} > ${BOOTSTRAP} 14 | @echo "Compiling LESS with Recess... ${CHECK} Done" 15 | @echo "Bootstrap successfully built at ${DATE}." 16 | 17 | # 18 | # BUILD SIMPLE BOOTSTRAP DIRECTORY 19 | # recess & uglifyjs are required 20 | # 21 | 22 | bootstrap: 23 | mkdir -p css 24 | recess --compile ${BOOTSTRAP_LESS} > css/editlive.css 25 | recess --compress ${BOOTSTRAP_LESS} > css/editlive.min.css 26 | 27 | # 28 | # WATCH LESS FILES 29 | # 30 | 31 | watch: 32 | echo "Watching less files..."; \ 33 | watchr -e "watch('less/.*\.less') { system 'make' }" 34 | 35 | 36 | 37 | .PHONY: watch 38 | -------------------------------------------------------------------------------- /editlive/static/editlive/contrib/bootstrap/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/bootstrap/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /editlive/static/editlive/contrib/bootstrap/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/bootstrap/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /editlive/static/editlive/contrib/jquery-ui-bootstrap/README.md: -------------------------------------------------------------------------------- 1 | #jQuery UI Bootstrap 2 | 3 | ##Summary 4 | 5 | This is a project I started to bring the beauty of Twitter's Bootstrap to jQuery UI widgets. 6 | 7 | Twitter's Bootstrap was one of my favorite projects to come out of 2011, but having used it regularly it left me wanting two things: 8 | 9 | * The ability to work side-by-side with jQuery UI (something which caused a number of widgets to break visually) 10 | * The ability to theme jQuery UI widgets using Bootstrap styles. Whilst I love jQuery UI, I (like others) find some of the current themes to look a little dated. My hope is that this theme provides a decent alternative for others that feel the same. 11 | 12 | To clarify, this project doesn't aim or intend to replace Twitter Bootstrap. It merely provides a jQuery UI-compatible theme inspired by Bootstrap's design. It also provides a version of Bootstrap CSS with a few (minor) sections commented out which enable the theme to work along-side it. 13 | 14 | I welcome any and all feedback as I'd very much like this theme to be as solid as possible. 15 | 16 | ##Browser-support 17 | 18 | All modern browsers are targeted by this theme with 'lo-res' experiences (i.e no gradients, border-radius etc.) provided for users using older browsers. 19 | 20 | There *are* some minor known issues lingering that I'm working on, but the hope is that in time those will all get ironed out. 21 | 22 | ##jQuery UI support 23 | 24 | This theme targets jQuery UI 1.8.16 and the default version of jQuery included in the (current) jQuery UI builds (jQuery 1.6.2). I'm aware of jQuery 1.7.1 and intend on upgrading anything necessary in the theme to use it when the jQuery UI team officially include it in their theme packs. 25 | 26 | 27 | ##Demo 28 | 29 | For a live preview of the theme, see [http://addyosmani.github.com/jquery-ui-bootstrap](http://addyosmani.github.com/jquery-ui-bootstrap). 30 | 31 | A [blog post](http://addyosmani.com/blog/jquery-ui-bootstrap/) with some more details about the project is also available. 32 | -------------------------------------------------------------------------------- /editlive/static/editlive/contrib/jquery-ui-bootstrap/css/demo.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * jQuery UI Bootstrap (0.22) 3 | * http://addyosmani.github.com/jquery-ui-bootstrap 4 | * 5 | * Copyright 2012, Addy Osmani 6 | * Dual licensed under the MIT or GPL Version 2 licenses. 7 | * 8 | * Portions copyright jQuery UI & Twitter Bootstrap 9 | */ 10 | 11 | 12 | .demoHeaders { 13 | margin-top: 1.5em; 14 | margin-bottom: 1em; 15 | } 16 | 17 | #dialog_link,#modal_link { 18 | padding: .4em 1em .4em 20px; 19 | text-decoration: none; 20 | position: relative; 21 | } 22 | 23 | #dialog_link span.ui-icon, #modal_link span.ui-icon { 24 | margin: 0 5px 0 0; 25 | position: absolute; 26 | left: .2em; 27 | top: 50%; 28 | margin-top: -8px; 29 | } 30 | 31 | ul#icons { 32 | margin: 0; 33 | padding: 0; 34 | } 35 | 36 | ul#icons li { 37 | margin: 2px; 38 | position: relative; 39 | padding: 4px 0; 40 | cursor: pointer; 41 | float: left; 42 | list-style: none; 43 | } 44 | 45 | ul#icons span.ui-icon { 46 | float: left; 47 | margin: 0 4px; 48 | } 49 | 50 | #jq-buttons button,#jq-button-icons button{ 51 | float: left; 52 | margin-right: 4px; 53 | } 54 | 55 | #components { 56 | margin: 2em 0 1em; 57 | width: 900px; 58 | margin: 0 auto; 59 | padding: 50px; 60 | } 61 | 62 | #dialog2 label, #dialog2 input { 63 | display: block; 64 | } 65 | 66 | #dialog2 label { 67 | margin-top: 0.5em; 68 | } 69 | 70 | #dialog2 input, #dialog2 textarea { 71 | width: 95%; 72 | } 73 | 74 | #tabs2 { 75 | margin-top: 1em; 76 | } 77 | 78 | #tabs2 li .ui-icon-close { 79 | float: left; 80 | margin: 0.4em 0.2em 0 0; 81 | cursor: pointer; 82 | } 83 | 84 | #add_tab { 85 | cursor: pointer; 86 | } 87 | 88 | .span10 { 89 | width: 500px; 90 | margin-right: 10px; 91 | } 92 | 93 | .span4 { 94 | width: 290px; 95 | } 96 | 97 | .ui-widget-overlay { 98 | width: 500px; 99 | } 100 | 101 | .alert-message p{ 102 | line-height:18px; 103 | margin-bottom:18px; 104 | } 105 | 106 | #toolbar { 107 | padding: 10px 4px; 108 | } 109 | 110 | input[type="text"], 111 | input[type="password"], 112 | .ui-autocomplete-input, 113 | textarea, 114 | .uneditable-input{ 115 | width: 210px; 116 | height: 18px; 117 | } -------------------------------------------------------------------------------- /editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/accordion.less: -------------------------------------------------------------------------------- 1 | // ACCORDION 2 | // --------- 3 | 4 | 5 | // Parent container 6 | .accordion { 7 | margin-bottom: @baseLineHeight; 8 | } 9 | 10 | // Group == heading + body 11 | .accordion-group { 12 | margin-bottom: 2px; 13 | border: 1px solid #e5e5e5; 14 | .border-radius(4px); 15 | } 16 | .accordion-heading { 17 | border-bottom: 0; 18 | } 19 | .accordion-heading .accordion-toggle { 20 | display: block; 21 | padding: 8px 15px; 22 | } 23 | 24 | // Inner needs the styles because you can't animate properly with any styles on the element 25 | .accordion-inner { 26 | padding: 9px 15px; 27 | border-top: 1px solid #e5e5e5; 28 | } 29 | -------------------------------------------------------------------------------- /editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/alerts.less: -------------------------------------------------------------------------------- 1 | // ALERT STYLES 2 | // ------------ 3 | 4 | // Base alert styles 5 | .alert { 6 | padding: 8px 35px 8px 14px; 7 | margin-bottom: @baseLineHeight; 8 | text-shadow: 0 1px 0 rgba(255,255,255,.5); 9 | background-color: @warningBackground; 10 | border: 1px solid @warningBorder; 11 | .border-radius(4px); 12 | } 13 | .alert, 14 | .alert-heading { 15 | color: @warningText; 16 | } 17 | 18 | // Adjust close link position 19 | .alert .close { 20 | position: relative; 21 | top: -2px; 22 | right: -21px; 23 | line-height: 18px; 24 | } 25 | 26 | // Alternate styles 27 | // ---------------- 28 | 29 | .alert-success { 30 | background-color: @successBackground; 31 | border-color: @successBorder; 32 | } 33 | .alert-success, 34 | .alert-success .alert-heading { 35 | color: @successText; 36 | } 37 | .alert-danger, 38 | .alert-error { 39 | background-color: @errorBackground; 40 | border-color: @errorBorder; 41 | } 42 | .alert-danger, 43 | .alert-error, 44 | .alert-danger .alert-heading, 45 | .alert-error .alert-heading { 46 | color: @errorText; 47 | } 48 | .alert-info { 49 | background-color: @infoBackground; 50 | border-color: @infoBorder; 51 | } 52 | .alert-info, 53 | .alert-info .alert-heading { 54 | color: @infoText; 55 | } 56 | 57 | 58 | // Block alerts 59 | // ------------------------ 60 | .alert-block { 61 | padding-top: 14px; 62 | padding-bottom: 14px; 63 | } 64 | .alert-block > p, 65 | .alert-block > ul { 66 | margin-bottom: 0; 67 | } 68 | .alert-block p + p { 69 | margin-top: 5px; 70 | } 71 | -------------------------------------------------------------------------------- /editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/bootstrap.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v2.0.0 3 | * 4 | * Copyright 2012 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world @twitter by @mdo and @fat. 9 | */ 10 | 11 | // CSS Reset 12 | @import "reset.less"; 13 | 14 | // Core variables and mixins 15 | @import "variables.less"; // Modify this for custom colors, font-sizes, etc 16 | @import "mixins.less"; 17 | 18 | // Grid system and page structure 19 | @import "scaffolding.less"; 20 | @import "grid.less"; 21 | @import "layouts.less"; 22 | 23 | // Base CSS 24 | @import "type.less"; 25 | @import "code.less"; 26 | @import "forms.less"; 27 | @import "tables.less"; 28 | 29 | // Components: common 30 | @import "sprites.less"; 31 | @import "dropdowns.less"; 32 | @import "wells.less"; 33 | @import "component-animations.less"; 34 | @import "close.less"; 35 | 36 | // Components: Buttons & Alerts 37 | @import "buttons.less"; 38 | @import "button-groups.less"; 39 | @import "alerts.less"; // Note: alerts share common CSS with buttons and thus have styles in buttons.less 40 | 41 | // Components: Nav 42 | @import "navs.less"; 43 | @import "navbar.less"; 44 | @import "breadcrumbs.less"; 45 | @import "pagination.less"; 46 | @import "pager.less"; 47 | 48 | // Components: Popovers 49 | @import "modals.less"; 50 | @import "tooltip.less"; 51 | @import "popovers.less"; 52 | 53 | // Components: Misc 54 | @import "thumbnails.less"; 55 | @import "labels.less"; 56 | @import "progress-bars.less"; 57 | @import "accordion.less"; 58 | @import "carousel.less"; 59 | @import "hero-unit.less"; 60 | 61 | // Utility classes 62 | @import "utilities.less"; // Has to be last to override when necessary 63 | -------------------------------------------------------------------------------- /editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/breadcrumbs.less: -------------------------------------------------------------------------------- 1 | // BREADCRUMBS 2 | // ----------- 3 | 4 | .breadcrumb { 5 | padding: 7px 14px; 6 | margin: 0 0 @baseLineHeight; 7 | #gradient > .vertical(@white, #f5f5f5); 8 | border: 1px solid #ddd; 9 | .border-radius(3px); 10 | .box-shadow(inset 0 1px 0 @white); 11 | li { 12 | display: inline; 13 | text-shadow: 0 1px 0 @white; 14 | } 15 | .divider { 16 | padding: 0 5px; 17 | color: @grayLight; 18 | } 19 | .active a { 20 | color: @grayDark; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/carousel.less: -------------------------------------------------------------------------------- 1 | // CAROUSEL 2 | // -------- 3 | 4 | .carousel { 5 | position: relative; 6 | margin-bottom: @baseLineHeight; 7 | line-height: 1; 8 | } 9 | 10 | .carousel-inner { 11 | overflow: hidden; 12 | width: 100%; 13 | position: relative; 14 | } 15 | 16 | .carousel { 17 | 18 | .item { 19 | display: none; 20 | position: relative; 21 | .transition(.6s ease-in-out left); 22 | } 23 | 24 | // Account for jankitude on images 25 | .item > img { 26 | display: block; 27 | line-height: 1; 28 | } 29 | 30 | .active, 31 | .next, 32 | .prev { display: block; } 33 | 34 | .active { 35 | left: 0; 36 | } 37 | 38 | .next, 39 | .prev { 40 | position: absolute; 41 | top: 0; 42 | width: 100%; 43 | } 44 | 45 | .next { 46 | left: 100%; 47 | } 48 | .prev { 49 | left: -100%; 50 | } 51 | .next.left, 52 | .prev.right { 53 | left: 0; 54 | } 55 | 56 | .active.left { 57 | left: -100%; 58 | } 59 | .active.right { 60 | left: 100%; 61 | } 62 | 63 | } 64 | 65 | // Left/right controls for nav 66 | // --------------------------- 67 | 68 | .carousel-control { 69 | position: absolute; 70 | top: 40%; 71 | left: 15px; 72 | width: 40px; 73 | height: 40px; 74 | margin-top: -20px; 75 | font-size: 60px; 76 | font-weight: 100; 77 | line-height: 30px; 78 | color: @white; 79 | text-align: center; 80 | background: @grayDarker; 81 | border: 3px solid @white; 82 | .border-radius(23px); 83 | .opacity(50); 84 | 85 | // we can't have this transition here 86 | // because webkit cancels the carousel 87 | // animation if you trip this while 88 | // in the middle of another animation 89 | // ;_; 90 | // .transition(opacity .2s linear); 91 | 92 | // Reposition the right one 93 | &.right { 94 | left: auto; 95 | right: 15px; 96 | } 97 | 98 | // Hover state 99 | &:hover { 100 | color: @white; 101 | text-decoration: none; 102 | .opacity(90); 103 | } 104 | } 105 | 106 | // Caption for text below images 107 | // ----------------------------- 108 | 109 | .carousel-caption { 110 | position: absolute; 111 | left: 0; 112 | right: 0; 113 | bottom: 0; 114 | padding: 10px 15px 5px; 115 | background: @grayDark; 116 | background: rgba(0,0,0,.75); 117 | } 118 | .carousel-caption h4, 119 | .carousel-caption p { 120 | color: @white; 121 | } 122 | -------------------------------------------------------------------------------- /editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/close.less: -------------------------------------------------------------------------------- 1 | // CLOSE ICONS 2 | // ----------- 3 | 4 | .close { 5 | float: right; 6 | font-size: 20px; 7 | font-weight: bold; 8 | line-height: @baseLineHeight; 9 | color: @black; 10 | text-shadow: 0 1px 0 rgba(255,255,255,1); 11 | .opacity(20); 12 | &:hover { 13 | color: @black; 14 | text-decoration: none; 15 | .opacity(40); 16 | cursor: pointer; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/code.less: -------------------------------------------------------------------------------- 1 | // Code.less 2 | // Code typography styles for the and
 elements
 3 | // --------------------------------------------------------
 4 | 
 5 | // Inline and block code styles
 6 | code,
 7 | pre {
 8 |   padding: 0 3px 2px;
 9 |   #font > #family > .monospace;
10 |   font-size: @baseFontSize - 1;
11 |   color: @grayDark;
12 |   .border-radius(3px);
13 | }
14 | code {
15 |   padding: 3px 4px;
16 |   color: #d14;
17 |   background-color: #f7f7f9;
18 |   border: 1px solid #e1e1e8;
19 | }
20 | pre {
21 |   display: block;
22 |   padding: (@baseLineHeight - 1) / 2;
23 |   margin: 0 0 @baseLineHeight / 2;
24 |   font-size: 12px;
25 |   line-height: @baseLineHeight;
26 |   background-color: #f5f5f5;
27 |   border: 1px solid #ccc; // fallback for IE7-8
28 |   border: 1px solid rgba(0,0,0,.15);
29 |   .border-radius(4px);
30 |   white-space: pre;
31 |   white-space: pre-wrap;
32 |   word-break: break-all;
33 | 
34 |   // Make prettyprint styles more spaced out for readability
35 |   &.prettyprint {
36 |     margin-bottom: @baseLineHeight;
37 |   }
38 | 
39 |   // Account for some code outputs that place code tags in pre tags
40 |   code {
41 |     padding: 0;
42 |     background-color: transparent;
43 |   }
44 | }
45 | 


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/component-animations.less:
--------------------------------------------------------------------------------
 1 | // COMPONENT ANIMATIONS
 2 | // --------------------
 3 | 
 4 | .fade {
 5 |   .transition(opacity .15s linear);
 6 |   opacity: 0;
 7 |   &.in {
 8 |     opacity: 1;
 9 |   }
10 | }
11 | 
12 | .collapse {
13 |   .transition(height .35s ease);
14 |   position:relative;
15 |   overflow:hidden;
16 |   height: 0;
17 |   &.in { height: auto; }
18 | }
19 | 


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/grid.less:
--------------------------------------------------------------------------------
1 | // GRID SYSTEM
2 | // -----------
3 | 
4 | // Fixed (940px)
5 | #gridSystem > .generate(@gridColumns, @gridColumnWidth, @gridGutterWidth);
6 | 
7 | // Fluid (940px)
8 | #fluidGridSystem > .generate(@gridColumns, @fluidGridColumnWidth, @fluidGridGutterWidth);
9 | 


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/hero-unit.less:
--------------------------------------------------------------------------------
 1 | // HERO UNIT
 2 | // ---------
 3 | 
 4 | .hero-unit {
 5 |   padding: 60px;
 6 |   margin-bottom: 30px;
 7 |   background-color: #f5f5f5;
 8 |   .border-radius(6px);
 9 |   h1 {
10 |     margin-bottom: 0;
11 |     font-size: 60px;
12 |     line-height: 1;
13 |     letter-spacing: -1px;
14 |   }
15 |   p {
16 |     font-size: 18px;
17 |     font-weight: 200;
18 |     line-height: @baseLineHeight * 1.5;
19 |   }
20 | }
21 | 


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/labels.less:
--------------------------------------------------------------------------------
 1 | // LABELS
 2 | // ------
 3 | 
 4 | .label {
 5 |   padding: 1px 3px 2px;
 6 |   font-size: @baseFontSize * .75;
 7 |   font-weight: bold;
 8 |   color: @white;
 9 |   text-transform: uppercase;
10 |   background-color: @grayLight;
11 |   .border-radius(3px);
12 | }
13 | .label-important { background-color: @errorText; }
14 | .label-warning   { background-color: @orange; }
15 | .label-success   { background-color: @successText; }
16 | .label-info      { background-color: @infoText; }
17 | 


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/layouts.less:
--------------------------------------------------------------------------------
 1 | //
 2 | // Layouts
 3 | // Fixed-width and fluid (with sidebar) layouts
 4 | // --------------------------------------------
 5 | 
 6 | 
 7 | // Container (centered, fixed-width layouts)
 8 | .container {
 9 |   .container-fixed();
10 | }
11 | 
12 | // Fluid layouts (left aligned, with sidebar, min- & max-width content)
13 | .container-fluid {
14 |   padding-left: @gridGutterWidth;
15 |   padding-right: @gridGutterWidth;
16 |   .clearfix();
17 | }


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/modals.less:
--------------------------------------------------------------------------------
 1 | // MODALS
 2 | // ------
 3 | 
 4 | .modal-open {
 5 |   .dropdown-menu {  z-index: @zindexDropdown + @zindexModal; }
 6 |   .dropdown.open { *z-index: @zindexDropdown + @zindexModal; }
 7 |   .popover       {  z-index: @zindexPopover  + @zindexModal; }
 8 |   .tooltip       {  z-index: @zindexTooltip  + @zindexModal; }
 9 | }
10 | 
11 | .modal-backdrop {
12 |   position: fixed;
13 |   top: 0;
14 |   right: 0;
15 |   bottom: 0;
16 |   left: 0;
17 |   z-index: @zindexModalBackdrop;
18 |   background-color: @black;
19 |   // Fade for backdrop
20 |   &.fade { opacity: 0; }
21 | }
22 | 
23 | .modal-backdrop,
24 | .modal-backdrop.fade.in {
25 |   .opacity(80);
26 | }
27 | 
28 | .modal {
29 |   position: fixed;
30 |   top: 50%;
31 |   left: 50%;
32 |   z-index: @zindexModal;
33 |   max-height: 500px;
34 |   overflow: auto;
35 |   width: 560px;
36 |   margin: -250px 0 0 -280px;
37 |   background-color: @white;
38 |   border: 1px solid #999;
39 |   border: 1px solid rgba(0,0,0,.3);
40 |   *border: 1px solid #999; /* IE6-7 */
41 |   .border-radius(6px);
42 |   .box-shadow(0 3px 7px rgba(0,0,0,0.3));
43 |   .background-clip(padding-box);
44 |   &.fade {
45 |     .transition(e('opacity .3s linear, top .3s ease-out'));
46 |     top: -25%;
47 |   }
48 |   &.fade.in { top: 50%; }
49 | }
50 | .modal-header {
51 |   padding: 9px 15px;
52 |   border-bottom: 1px solid #eee;
53 |   // Close icon
54 |   .close { margin-top: 2px; }
55 | }
56 | .modal-body {
57 |   padding: 15px;
58 | }
59 | .modal-footer {
60 |   padding: 14px 15px 15px;
61 |   margin-bottom: 0;
62 |   background-color: #f5f5f5;
63 |   border-top: 1px solid #ddd;
64 |   .border-radius(0 0 6px 6px);
65 |   .box-shadow(inset 0 1px 0 @white);
66 |   .clearfix();
67 |   .btn {
68 |     float: right;
69 |     margin-left: 5px;
70 |     margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
71 |   }
72 | }
73 | 


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/pager.less:
--------------------------------------------------------------------------------
 1 | // PAGER
 2 | // -----
 3 | 
 4 | .pager {
 5 |   margin-left: 0;
 6 |   margin-bottom: @baseLineHeight;
 7 |   list-style: none;
 8 |   text-align: center;
 9 |   .clearfix();
10 | }
11 | .pager li {
12 |   display: inline;
13 | }
14 | .pager a {
15 |   display: inline-block;
16 |   padding: 5px 14px;
17 |   background-color: #fff;
18 |   border: 1px solid #ddd;
19 |   .border-radius(15px);
20 | }
21 | .pager a:hover {
22 |   text-decoration: none;
23 |   background-color: #f5f5f5;
24 | }
25 | .pager .next a {
26 |   float: right;
27 | }
28 | .pager .previous a {
29 |   float: left;
30 | }
31 | 


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/pagination.less:
--------------------------------------------------------------------------------
 1 | // PAGINATION
 2 | // ----------
 3 | 
 4 | .pagination {
 5 |   height: @baseLineHeight * 2;
 6 |   margin: @baseLineHeight 0;
 7 |  }
 8 | .pagination ul {
 9 |   display: inline-block;
10 |   .ie7-inline-block();
11 |   margin-left: 0;
12 |   margin-bottom: 0;
13 |   .border-radius(3px);
14 |   .box-shadow(0 1px 2px rgba(0,0,0,.05));
15 | }
16 | .pagination li {
17 |     display: inline;
18 |   }
19 | .pagination a {
20 |   float: left;
21 |   padding: 0 14px;
22 |   line-height: (@baseLineHeight * 2) - 2;
23 |   text-decoration: none;
24 |   border: 1px solid #ddd;
25 |   border-left-width: 0;
26 | }
27 | .pagination a:hover,
28 | .pagination .active a {
29 |   background-color: #f5f5f5;
30 | }
31 | .pagination .active a {
32 |   color: @grayLight;
33 |   cursor: default;
34 | }
35 | .pagination .disabled a,
36 | .pagination .disabled a:hover {
37 |   color: @grayLight;
38 |   background-color: transparent;
39 |   cursor: default;
40 | }
41 | .pagination li:first-child a {
42 |   border-left-width: 1px;
43 |   .border-radius(3px 0 0 3px);
44 | }
45 | .pagination li:last-child a {
46 |   .border-radius(0 3px 3px 0);
47 | }
48 | 
49 | // Centered
50 | .pagination-centered {
51 |   text-align: center;
52 | }
53 | .pagination-right {
54 |   text-align: right;
55 | }
56 | 


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/popovers.less:
--------------------------------------------------------------------------------
 1 | // POPOVERS
 2 | // --------
 3 | 
 4 | .popover {
 5 |   position: absolute;
 6 |   top: 0;
 7 |   left: 0;
 8 |   z-index: @zindexPopover;
 9 |   display: none;
10 |   padding: 5px;
11 |   &.top    { margin-top:  -5px; }
12 |   &.right  { margin-left:  5px; }
13 |   &.bottom { margin-top:   5px; }
14 |   &.left   { margin-left: -5px; }
15 |   &.top .arrow    { #popoverArrow > .top(); }
16 |   &.right .arrow  { #popoverArrow > .right(); }
17 |   &.bottom .arrow { #popoverArrow > .bottom(); }
18 |   &.left .arrow   { #popoverArrow > .left();  }
19 |   .arrow {
20 |     position: absolute;
21 |     width: 0;
22 |     height: 0;
23 |   }
24 | }
25 | .popover-inner {
26 |   padding: 3px;
27 |   width: 280px;
28 |   overflow: hidden;
29 |   background: @black; // has to be full background declaration for IE fallback
30 |   background: rgba(0,0,0,.8);
31 |   .border-radius(6px);
32 |   .box-shadow(0 3px 7px rgba(0,0,0,0.3));
33 | }
34 | .popover-title {
35 |   padding: 9px 15px;
36 |   line-height: 1;
37 |   background-color: #f5f5f5;
38 |   border-bottom:1px solid #eee;
39 |   .border-radius(3px 3px 0 0);
40 | }
41 | .popover-content {
42 |   padding: 14px;
43 |   background-color: @white;
44 |   .border-radius(0 0 3px 3px);
45 |   .background-clip(padding-box);
46 |   p, ul, ol {
47 |     margin-bottom: 0;
48 |   }
49 | }
50 | 


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/progress-bars.less:
--------------------------------------------------------------------------------
 1 | // PROGRESS BARS
 2 | // -------------
 3 | 
 4 | 
 5 | // ANIMATIONS
 6 | // ----------
 7 | 
 8 | // Webkit
 9 | @-webkit-keyframes progress-bar-stripes {
10 |   from  { background-position: 0 0; }
11 |   to    { background-position: 40px 0; }
12 | }
13 | 
14 | // Firefox
15 | @-moz-keyframes progress-bar-stripes {
16 |   from  { background-position: 0 0; }
17 |   to    { background-position: 40px 0; }
18 | }
19 | 
20 | // Spec
21 | @keyframes progress-bar-stripes {
22 |   from  { background-position: 0 0; }
23 |   to    { background-position: 40px 0; }
24 | }
25 | 
26 | 
27 | 
28 | // THE BARS
29 | // --------
30 | 
31 | // Outer container
32 | .progress {
33 |   overflow: hidden;
34 |   height: 18px;
35 |   margin-bottom: 18px;
36 |   #gradient > .vertical(#f5f5f5, #f9f9f9);
37 |   .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
38 |   .border-radius(4px);
39 | }
40 | 
41 | // Bar of progress
42 | .progress .bar {
43 |   width: 0%;
44 |   height: 18px;
45 |   color: @white;
46 |   font-size: 12px;
47 |   text-align: center;
48 |   text-shadow: 0 -1px 0 rgba(0,0,0,.25);
49 |   #gradient > .vertical(#149bdf, #0480be);
50 |   .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
51 |   .box-sizing(border-box);
52 |   .transition(width .6s ease);
53 | }
54 | 
55 | // Striped bars
56 | .progress-striped .bar {
57 |   #gradient > .striped(#62c462);
58 |   .background-size(40px 40px);
59 | }
60 | 
61 | // Call animation for the active one
62 | .progress.active .bar {
63 |   -webkit-animation: progress-bar-stripes 2s linear infinite;
64 |      -moz-animation: progress-bar-stripes 2s linear infinite;
65 |           animation: progress-bar-stripes 2s linear infinite;
66 | }
67 | 
68 | 
69 | 
70 | // COLORS
71 | // ------
72 | 
73 | // Danger (red)
74 | .progress-danger .bar {
75 |   #gradient > .vertical(#ee5f5b, #c43c35);
76 | }
77 | .progress-danger.progress-striped .bar {
78 |   #gradient > .striped(#ee5f5b);
79 | }
80 | 
81 | // Success (green)
82 | .progress-success .bar {
83 |   #gradient > .vertical(#62c462, #57a957);
84 | }
85 | .progress-success.progress-striped .bar {
86 |   #gradient > .striped(#62c462);
87 | }
88 | 
89 | // Info (teal)
90 | .progress-info .bar {
91 |   #gradient > .vertical(#5bc0de, #339bb9);
92 | }
93 | .progress-info.progress-striped .bar {
94 |   #gradient > .striped(#5bc0de);
95 | }
96 | 


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/scaffolding.less:
--------------------------------------------------------------------------------
 1 | // Scaffolding
 2 | // Basic and global styles for generating a grid system, structural layout, and page templates
 3 | // -------------------------------------------------------------------------------------------
 4 | 
 5 | 
 6 | // STRUCTURAL LAYOUT
 7 | // -----------------
 8 | 
 9 | body {
10 |   margin: 0;
11 |   font-family: @baseFontFamily;
12 |   font-size: @baseFontSize;
13 |   line-height: @baseLineHeight;
14 |   color: @textColor;
15 |   background-color: @white;
16 | }
17 | 
18 | 
19 | // LINKS
20 | // -----
21 | 
22 | a {
23 |   color: @linkColor;
24 |   text-decoration: none;
25 | }
26 | a:hover {
27 |   color: @linkColorHover;
28 |   text-decoration: underline;
29 | }
30 | 


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/thumbnails.less:
--------------------------------------------------------------------------------
 1 | // THUMBNAILS
 2 | // ----------
 3 | 
 4 | .thumbnails {
 5 |   margin-left: -20px;
 6 |   list-style: none;
 7 |   .clearfix();
 8 | }
 9 | .thumbnails > li {
10 |   float: left;
11 |   margin: 0 0 @baseLineHeight 20px;
12 | }
13 | .thumbnail {
14 |   display: block;
15 |   padding: 4px;
16 |   line-height: 1;
17 |   border: 1px solid #ddd;
18 |   .border-radius(4px);
19 |   .box-shadow(0 1px 1px rgba(0,0,0,.075));
20 | }
21 | // Add a hover state for linked versions only
22 | a.thumbnail:hover {
23 |   border-color: @linkColor;
24 |   .box-shadow(0 1px 4px rgba(0,105,214,.25));
25 | }
26 | // Images and captions
27 | .thumbnail > img {
28 |   display: block;
29 |   max-width: 100%;
30 |   margin-left: auto;
31 |   margin-right: auto;
32 | }
33 | .thumbnail .caption {
34 |   padding: 9px;
35 | }
36 | 


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/tooltip.less:
--------------------------------------------------------------------------------
 1 | // TOOLTIP
 2 | // ------=
 3 | 
 4 | .tooltip {
 5 |   position: absolute;
 6 |   z-index: @zindexTooltip;
 7 |   display: block;
 8 |   visibility: visible;
 9 |   padding: 5px;
10 |   font-size: 11px;
11 |   .opacity(0);
12 |   &.in     { .opacity(80); }
13 |   &.top    { margin-top:  -2px; }
14 |   &.right  { margin-left:  2px; }
15 |   &.bottom { margin-top:   2px; }
16 |   &.left   { margin-left: -2px; }
17 |   &.top .tooltip-arrow    { #popoverArrow > .top(); }
18 |   &.left .tooltip-arrow   { #popoverArrow > .left(); }
19 |   &.bottom .tooltip-arrow { #popoverArrow > .bottom(); }
20 |   &.right .tooltip-arrow  { #popoverArrow > .right(); }
21 | }
22 | .tooltip-inner {
23 |   max-width: 200px;
24 |   padding: 3px 8px;
25 |   color: @white;
26 |   text-align: center;
27 |   text-decoration: none;
28 |   background-color: @black;
29 |   .border-radius(4px);
30 | }
31 | .tooltip-arrow {
32 |   position: absolute;
33 |   width: 0;
34 |   height: 0;
35 | }
36 | 


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/utilities.less:
--------------------------------------------------------------------------------
 1 | // UTILITY CLASSES
 2 | // ---------------
 3 | 
 4 | // Quick floats
 5 | .pull-right {
 6 |   float: right;
 7 | }
 8 | .pull-left {
 9 |   float: left;
10 | }
11 | 
12 | // Toggling content
13 | .hide {
14 |   display: none;
15 | }
16 | .show {
17 |   display: block;
18 | }
19 | 
20 | // Visibility
21 | .invisible {
22 |   visibility: hidden;
23 | }
24 | 


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/bootstrap/wells.less:
--------------------------------------------------------------------------------
 1 | // WELLS
 2 | // -----
 3 | 
 4 | .well {
 5 |   min-height: 20px;
 6 |   padding: 19px;
 7 |   margin-bottom: 20px;
 8 |   background-color: #f5f5f5;
 9 |   border: 1px solid #eee;
10 |   border: 1px solid rgba(0,0,0,.05);
11 |   .border-radius(4px);
12 |   .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
13 |   blockquote {
14 |     border-color: #ddd;
15 |     border-color: rgba(0,0,0,.15);
16 |   }
17 | }
18 | 


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/custom-theme/accordion.less:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * jQuery UI Accordion 1.8.16
 3 |  *
 4 |  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 5 |  * Dual licensed under the MIT or GPL Version 2 licenses.
 6 |  * http://jquery.org/license
 7 |  *
 8 |  * http://docs.jquery.com/UI/Accordion#theming
 9 |  */
10 | /* IE/Win - Fix animation bug - #4615 */
11 | .ui-accordion {
12 |   width: 100%;
13 |   
14 |   &-header {
15 |     cursor: pointer; 
16 |     position: relative; 
17 |     margin-top: 1px; 
18 |     zoom: 1; 
19 |     font-weight:bold; 
20 |     
21 |     &-active {
22 |       border-bottom: 0 !important; 
23 |     }
24 |     & a { 
25 |       display: block; 
26 |       font-size: 1em; 
27 |       padding: .5em .5em .5em .7em; 
28 |     }
29 | 
30 |     & .ui-icon { 
31 |       position: absolute; 
32 |       left: .5em; 
33 |       top: 50%; 
34 |       margin-top: -8px; 
35 |     }
36 |   }
37 |   
38 |   &-li-fix {
39 |     display: inline;
40 |   }
41 |   
42 |   &-content {
43 |     padding: 1em 2.2em;
44 |     margin-top: -2px; 
45 |     position: relative; 
46 |     top: 1px; 
47 |     margin-bottom: 2px; 
48 |     overflow: auto; 
49 |     display: none; 
50 |     zoom: 1; 
51 |     
52 |     &-active { 
53 |       display: block;
54 |     }
55 |   }
56 |   
57 |   &-icons .ui-accordion-header a {
58 |     padding-left: 2.2em; 
59 |   }
60 | }


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/custom-theme/autocomplete.less:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * jQuery UI Autocomplete 1.8.16
 3 |  *
 4 |  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 5 |  * Dual licensed under the MIT or GPL Version 2 licenses.
 6 |  * http://jquery.org/license
 7 |  *
 8 |  * http://docs.jquery.com/UI/Autocomplete#theming
 9 |  */
10 | .ui-autocomplete { 
11 | 	position: absolute; 
12 | 	cursor: default; 
13 | }
14 | 
15 | /* workarounds */
16 | * html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/custom-theme/jquery-ui-bootstrap.less:
--------------------------------------------------------------------------------
 1 | /*!
 2 |  * jQuery UI Bootstrap v0.23
 3 |  * Portions copyright Addy Osmani, jQuery UI & Twitter Bootstrap
 4 |  * Created the LESS version by T1gr0u
 5 |  * Released under MIT/GPL.
 6 |  */
 7 | 
 8 | @import "mixins.less";
 9 | @import "variables.less";
10 | @import "core.less";
11 | 
12 | @import "icons.less";
13 | @import "overlays.less";
14 | @import "resizable.less";
15 | @import "selectable.less";
16 | @import "accordion.less";
17 | @import "autocomplete.less";
18 | @import "menu.less";
19 | @import "button.less";
20 | 
21 | @import "dialog.less";
22 | @import "slider.less";
23 | @import "tabs.less";
24 | @import "datepicker.less";
25 | 
26 | @import "progressbar.less";
27 | @import "toolbar.less";
28 | 


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/custom-theme/menu.less:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * jQuery UI Menu 1.8.16
 3 |  *
 4 |  * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
 5 |  * Dual licensed under the MIT or GPL Version 2 licenses.
 6 |  * http://jquery.org/license
 7 |  *
 8 |  * http://docs.jquery.com/UI/Menu#theming
 9 |  */
10 | .ui-menu {
11 | 	list-style:none;
12 | 	padding: 2px;
13 | 	margin: 0;
14 | 	display:block;
15 | 	float: left;
16 | 
17 | 	.ui-menu {
18 | 		margin-top: -3px;
19 | 	}
20 | 	.ui-menu-item {
21 | 		margin:0;
22 | 		padding: 0;
23 | 		zoom: 1;
24 | 		float: left;
25 | 		clear: left;
26 | 		width: 100%;
27 | 	}
28 | 	.ui-menu-item a {
29 | 		text-decoration:none;
30 | 		display:block;
31 | 		padding:.2em .4em;
32 | 		line-height:1.5;
33 | 		zoom:1;
34 | 	}
35 | 	.ui-menu-item a.ui-state-hover, .ui-menu-item a.ui-state-active {
36 | 		font-weight: normal;
37 | 		background: @blueDark;
38 | 		color: @white;
39 | 	}
40 | }


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/custom-theme/mixins.less:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * jQuery UI Bootstrap v0.23 (Mixins)
 3 |  * Portions copyright Addy Osmani, jQuery UI & Twitter Bootstrap
 4 |  * Created the LESS version by T1gr0u
 5 |  * Released under MIT/GPL.
 6 |  */
 7 | 
 8 | 
 9 | // Border Radius
10 | #border-radius {
11 | 	.topLeft ( @radius: 4px ) {
12 | 		-moz-border-radius-topleft: @radius;
13 | 		-webkit-border-top-left-radius: @radius;
14 | 		-khtml-border-top-left-radius: @radius;
15 | 		border-top-left-radius: @radius;
16 | 	}
17 | 	.topRight ( @radius: 4px ) {
18 | 		-moz-border-radius-topright: @radius;
19 | 		-webkit-border-top-right-radius: @radius;
20 | 		-khtml-border-top-right-radius: @radius;
21 | 		border-top-right-radius: @radius;
22 | 	}
23 | 	.bottomLeft ( @radius: 4px ) {
24 | 		-moz-border-radius-bottomleft: @radius;
25 | 		-webkit-border-bottom-left-radius: @radius;
26 | 		-khtml-border-bottom-left-radius: @radius;
27 | 		border-bottom-left-radius: @radius;
28 | 	}
29 | 	.bottomRight ( @radius: 4px ) {
30 | 		-moz-border-radius-bottomright: @radius;
31 | 		-webkit-border-bottom-right-radius: @radius;
32 | 		-khtml-border-bottom-right-radius: @radius;
33 | 		border-bottom-right-radius: @radius;
34 | 	}
35 | 	
36 | 	.border( @topLeft:6px,  @topRight:6px, @bottomRight:6px, @bottomLeft:6px ) {
37 | 		-webkit-border-radius: @topLeft @topRight @bottomRight @bottomLeft;
38 | 		-moz-border-radius: @topLeft @topRight @bottomRight @bottomLeft;
39 | 		border-radius: @topLeft @topRight @bottomRight @bottomLeft;
40 | 	}
41 | 	
42 | }
43 | 
44 | // Transitions
45 | .ui_transition( @arg1, @arg2 ) {
46 | 	-webkit-transition: @arg1, @arg2;
47 | 	-moz-transition: @arg1, @arg2;
48 | 	-ms-transition: @arg1, @arg2;
49 | 	-o-transition: @arg1, @arg2;
50 | 	transition: @arg1, @arg2;
51 | }
52 | 
53 | // Drop shadows
54 | .ui_box-shadow( @arg1, @arg2 ) {
55 | 	-webkit-box-shadow: @arg1, @arg2;
56 | 	-moz-box-shadow: @arg1, @arg2;
57 | 	box-shadow: @arg1, @arg2;
58 | }


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/custom-theme/overlays.less:
--------------------------------------------------------------------------------
 1 | /* Overlays */
 2 | .ui-widget-overlay { 
 3 | 	background: @ui-grayLight1 url(../img/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;
 4 | 	.opacity( 30 );
 5 | }
 6 | .ui-widget-shadow { 
 7 | 	margin: -8px 0 0 -8px; 
 8 | 	padding: 8px; 
 9 | 	background: @ui-grayLight1 url(../img/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; 
10 | 	.opacity( 30 );
11 | 	.border-radius( 8px );
12 | 	-khtml-border-radius: 8px; 
13 | }


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/custom-theme/progressbar.less:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * jQuery UI Progressbar 1.8.16
 3 |  *
 4 |  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 5 |  * Dual licensed under the MIT or GPL Version 2 licenses.
 6 |  * http://jquery.org/license
 7 |  *
 8 |  * http://docs.jquery.com/UI/Progressbar#theming
 9 |  */
10 | .ui-progressbar {
11 | 	height:2em;
12 | 	text-align: left;
13 | 	.ui-progressbar-value {
14 | 		margin: -1px;
15 | 		height:100%;
16 | 
17 | 	/*this can be removed if ui-widget-header is blue*/
18 | 		color: @white;
19 | 		#gradient > .vertical( @blue, @blueDark );
20 | 		text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
21 | 		border-color: @blueDark @blueDark @ui-blue;
22 | 		border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
23 | 	}
24 | }


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/custom-theme/resizable.less:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * jQuery UI Resizable 1.8.16
 3 |  *
 4 |  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 5 |  * Dual licensed under the MIT or GPL Version 2 licenses.
 6 |  * http://jquery.org/license
 7 |  *
 8 |  * http://docs.jquery.com/UI/Resizable#theming
 9 |  */
10 | .ui-resizable {
11 | 	position: relative;
12 | }
13 | .ui-resizable-handle { 
14 | 	position: absolute;
15 | 	font-size: 0.1px;
16 | 	z-index: 99999; 
17 | 	display: block; 
18 | }
19 | .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle {
20 | 	display: none;
21 | }
22 | .ui-resizable-n { 
23 | 	cursor: n-resize; 
24 | 	height: 7px; 
25 | 	width: 100%; 
26 | 	top: -5px; 
27 | 	left: 0; 
28 | }
29 | .ui-resizable-s { 
30 | 	cursor: s-resize; 
31 | 	height: 7px; 
32 | 	width: 100%; 
33 | 	bottom: -5px; 
34 | 	left: 0; 
35 | }
36 | .ui-resizable-e { 
37 | 	cursor: e-resize; 
38 | 	width: 7px; 
39 | 	right: -5px; 
40 | 	top: 0; 
41 | 	height: 100%; 
42 | }
43 | .ui-resizable-w { 
44 | 	cursor: w-resize; 
45 | 	width: 7px; 
46 | 	left: -5px; 
47 | 	top: 0; 
48 | 	height: 100%; 
49 | }
50 | .ui-resizable-se { 
51 | 	cursor: se-resize; 
52 | 	width: 12px; 
53 | 	height: 12px; 
54 | 	right: 1px; 
55 | 	bottom: 1px; 
56 | }
57 | .ui-resizable-sw { 
58 | 	cursor: sw-resize; 
59 | 	width: 9px; 
60 | 	height: 9px; 
61 | 	left: -5px; 
62 | 	bottom: -5px; 
63 | }
64 | .ui-resizable-nw { 
65 | 	cursor: nw-resize; 
66 | 	width: 9px; 
67 | 	height: 9px; 
68 | 	left: -5px; 
69 | 	top: -5px; 
70 | }
71 | .ui-resizable-ne { 
72 | 	cursor: ne-resize; 
73 | 	width: 9px; 
74 | 	height: 9px; 
75 | 	right: -5px; 
76 | 	top: -5px;
77 | }


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/custom-theme/selectable.less:
--------------------------------------------------------------------------------
 1 | /*
 2 |  * jQuery UI Selectable 1.8.16
 3 |  *
 4 |  * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 5 |  * Dual licensed under the MIT or GPL Version 2 licenses.
 6 |  * http://jquery.org/license
 7 |  *
 8 |  * http://docs.jquery.com/UI/Selectable#theming
 9 |  */
10 | .ui-selectable-helper { 
11 | 	position: absolute; 
12 | 	z-index: 100; 
13 | 	border:1px dotted black; 
14 | }


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/custom-theme/toolbar.less:
--------------------------------------------------------------------------------
 1 | /**Toolbar**/
 2 | 
 3 | .ui-toolbar{
 4 | 	padding: 7px 14px;
 5 | 	margin: 0 0 18px;
 6 | 	#gradient > .vertical( @white, @ui-grayLighter );
 7 | 	border: 1px solid @ui-grayLight4;
 8 | 	.border-radius( 3px );
 9 | 	.box-shadow( inset 0 1px 0 @white );
10 | }


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/custom-theme/variables.less:
--------------------------------------------------------------------------------
 1 | /* Extra colours which aren't included in Bootstrap */
 2 | 
 3 | 
 4 | @ui-grayDark: #363636;
 5 | @ui-gray: #666;
 6 | @ui-grayLight1: #aaaaaa;
 7 | @ui-grayLight2: #bbb;
 8 | @ui-grayLight3: #ccc;
 9 | @ui-grayLight4: #ddd;
10 | @ui-grayLight5: #e5e5e5;
11 | @ui-grayLighter: #f5f5f5;
12 | 
13 | 
14 | 
15 | @ui-blue: #003f81;
16 | @ui-blueLight: #0069D6;
17 | 
18 | @ui-greenLight: #62c462;
19 | @ui-green: #57a957;
20 | @ui-greenDark: #3d773d;
21 | 
22 | @ui-redLighter: #ee5f5b;
23 | @ui-redLight: #c43c35;
24 | @ui-red: #cd0a0a;
25 | @ui-redDark: #882a25;
26 | 
27 | @ui-yellowLighter: #fceec1;
28 | @ui-yellowLight: #eedc94;
29 | @ui-yellow: #e4c652;
30 | 
31 | 


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/custom.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/custom.less


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/css/less/style.less:
--------------------------------------------------------------------------------
 1 | /*!
 2 |  * JQuery UI Bootstrap
 3 |  *
 4 |  * Copyright 2012 t1gr0u
 5 |  * Licensed under the Apache License v2.0
 6 |  * http://www.apache.org/licenses/LICENSE-2.0
 7 |  *
 8 |  * Designed and built with all the love in the world @twitter by @mdo and @fat.
 9 |  * Date: @DATE
10 |  */
11 | 
12 | // Twitter Bootstrap
13 | @import "bootstrap/bootstrap.less";
14 | 
15 | // jQuery UI Bootstrap
16 | @import "custom-theme/jquery-ui-bootstrap.less";
17 | 
18 | //Custom 
19 | @import "custom.less";


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/glyphicons-halflings-white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/glyphicons-halflings-white.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/glyphicons-halflings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/glyphicons-halflings.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-bg_flat_0_aaaaaa_40x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-bg_flat_0_aaaaaa_40x100.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-bg_glass_55_fbf9ee_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-bg_glass_55_fbf9ee_1x400.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-bg_glass_65_ffffff_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-bg_glass_65_ffffff_1x400.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-bg_glass_75_dadada_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-bg_glass_75_dadada_1x400.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-bg_glass_75_e6e6e6_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-bg_glass_75_e6e6e6_1x400.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-bg_glass_75_ffffff_1x400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-bg_glass_75_ffffff_1x400.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-bg_highlight-soft_75_cccccc_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-bg_highlight-soft_75_cccccc_1x100.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-bg_inset-soft_95_fef1ec_1x100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-bg_inset-soft_95_fef1ec_1x100.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-icons_222222_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-icons_222222_256x240.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-icons_2e83ff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-icons_2e83ff_256x240.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-icons_454545_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-icons_454545_256x240.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-icons_888888_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-icons_888888_256x240.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-icons_cccccc_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-icons_cccccc_256x240.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-icons_cd0a0a_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-icons_cd0a0a_256x240.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-icons_f6cf3b_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-icons_f6cf3b_256x240.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-icons_ffffff_256x240.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/h3/django-editlive/7f7bb388f2341b37550bf6b0a67696689bdc7d85/editlive/static/editlive/contrib/jquery-ui-bootstrap/img/ui-icons_ffffff_256x240.png


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/js/bootstrap/.jshintrc:
--------------------------------------------------------------------------------
 1 | {
 2 |     "validthis": true,
 3 |     "laxcomma" : true,
 4 |     "laxbreak" : true,
 5 |     "browser"  : true,
 6 |     "eqnull"   : true,
 7 |     "debug"    : true,
 8 |     "devel"    : true,
 9 |     "boss"     : true,
10 |     "expr"     : true,
11 |     "asi"      : true
12 | }


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/js/bootstrap/bootstrap-transition.js:
--------------------------------------------------------------------------------
 1 | /* ===================================================
 2 |  * bootstrap-transition.js v2.1.1
 3 |  * http://twitter.github.com/bootstrap/javascript.html#transitions
 4 |  * ===================================================
 5 |  * Copyright 2012 Twitter, Inc.
 6 |  *
 7 |  * Licensed under the Apache License, Version 2.0 (the "License");
 8 |  * you may not use this file except in compliance with the License.
 9 |  * You may obtain a copy of the License at
10 |  *
11 |  * http://www.apache.org/licenses/LICENSE-2.0
12 |  *
13 |  * Unless required by applicable law or agreed to in writing, software
14 |  * distributed under the License is distributed on an "AS IS" BASIS,
15 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 |  * See the License for the specific language governing permissions and
17 |  * limitations under the License.
18 |  * ========================================================== */
19 | 
20 | 
21 | !function ($) {
22 | 
23 |   $(function () {
24 | 
25 |     "use strict"; // jshint ;_;
26 | 
27 | 
28 |     /* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
29 |      * ======================================================= */
30 | 
31 |     $.support.transition = (function () {
32 | 
33 |       var transitionEnd = (function () {
34 | 
35 |         var el = document.createElement('bootstrap')
36 |           , transEndEventNames = {
37 |                'WebkitTransition' : 'webkitTransitionEnd'
38 |             ,  'MozTransition'    : 'transitionend'
39 |             ,  'OTransition'      : 'oTransitionEnd otransitionend'
40 |             ,  'transition'       : 'transitionend'
41 |             }
42 |           , name
43 | 
44 |         for (name in transEndEventNames){
45 |           if (el.style[name] !== undefined) {
46 |             return transEndEventNames[name]
47 |           }
48 |         }
49 | 
50 |       }())
51 | 
52 |       return transitionEnd && {
53 |         end: transitionEnd
54 |       }
55 | 
56 |     })()
57 | 
58 |   })
59 | 
60 | }(window.jQuery);


--------------------------------------------------------------------------------
/editlive/static/editlive/contrib/jquery-ui-bootstrap/js/bootstrap/tests/index.html:
--------------------------------------------------------------------------------
 1 | 
 2 | 
 3 | 
 4 |   Bootstrap Plugin Test Suite
 5 | 
 6 |   
 7 |   
 8 |   
 9 | 
10 |   
11 |   
12 |   
13 | 
14 |   
15 |   
16 | 
17 |   
18 |   
19 |   
20 |   
21 |   
22 |   
23 |   
24 |   
25 |   
26 |   
27 |   
28 |   
29 |   
30 |   
31 | 
32 |   
33 |   
34 |   
35 |   
36 |   
37 |   
38 |   
39 |   
40 |   
41 |   
42 |   
43 |   
44 |   
45 |   
46 | 
47 | 
48 |   
49 |

Bootstrap Plugin Test Suite

50 |

51 |

52 |
    53 |
    54 |
    55 | 56 | -------------------------------------------------------------------------------- /editlive/static/editlive/contrib/jquery-ui-bootstrap/js/bootstrap/tests/phantom.js: -------------------------------------------------------------------------------- 1 | // Simple phantom.js integration script 2 | // Adapted from Modernizr 3 | 4 | function waitFor(testFx, onReady, timeOutMillis) { 5 | var maxtimeOutMillis = timeOutMillis ? timeOutMillis : 5001 //< Default Max Timout is 5s 6 | , start = new Date().getTime() 7 | , condition = false 8 | , interval = setInterval(function () { 9 | if ((new Date().getTime() - start < maxtimeOutMillis) && !condition) { 10 | // If not time-out yet and condition not yet fulfilled 11 | condition = (typeof(testFx) === "string" ? eval(testFx) : testFx()) //< defensive code 12 | } else { 13 | if (!condition) { 14 | // If condition still not fulfilled (timeout but condition is 'false') 15 | console.log("'waitFor()' timeout") 16 | phantom.exit(1) 17 | } else { 18 | // Condition fulfilled (timeout and/or condition is 'true') 19 | typeof(onReady) === "string" ? eval(onReady) : onReady() //< Do what it's supposed to do once the condition is fulfilled 20 | clearInterval(interval) //< Stop this interval 21 | } 22 | } 23 | }, 100) //< repeat check every 100ms 24 | } 25 | 26 | 27 | if (phantom.args.length === 0 || phantom.args.length > 2) { 28 | console.log('Usage: phantom.js URL') 29 | phantom.exit() 30 | } 31 | 32 | var page = new WebPage() 33 | 34 | // Route "console.log()" calls from within the Page context to the main Phantom context (i.e. current "this") 35 | page.onConsoleMessage = function(msg) { 36 | console.log(msg) 37 | }; 38 | 39 | page.open(phantom.args[0], function(status){ 40 | if (status !== "success") { 41 | console.log("Unable to access network") 42 | phantom.exit() 43 | } else { 44 | waitFor(function(){ 45 | return page.evaluate(function(){ 46 | var el = document.getElementById('qunit-testresult') 47 | if (el && el.innerText.match('completed')) { 48 | return true 49 | } 50 | return false 51 | }) 52 | }, function(){ 53 | var failedNum = page.evaluate(function(){ 54 | var el = document.getElementById('qunit-testresult') 55 | try { 56 | return el.getElementsByClassName('failed')[0].innerHTML 57 | } catch (e) { } 58 | return 10000 59 | }); 60 | phantom.exit((parseInt(failedNum, 10) > 0) ? 1 : 0) 61 | }) 62 | } 63 | }) -------------------------------------------------------------------------------- /editlive/static/editlive/contrib/jquery-ui-bootstrap/js/bootstrap/tests/server.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Simple connect server for phantom.js 3 | * Adapted from Modernizr 4 | */ 5 | 6 | var connect = require('connect') 7 | , http = require('http') 8 | , fs = require('fs') 9 | , app = connect() 10 | .use(connect.static(__dirname + '/../../')); 11 | 12 | http.createServer(app).listen(3000); 13 | 14 | fs.writeFileSync(__dirname + '/pid.txt', process.pid, 'utf-8') -------------------------------------------------------------------------------- /editlive/static/editlive/contrib/jquery-ui-bootstrap/js/bootstrap/tests/unit/bootstrap-affix.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | 3 | module("bootstrap-affix") 4 | 5 | test("should be defined on jquery object", function () { 6 | ok($(document.body).affix, 'affix method is defined') 7 | }) 8 | 9 | test("should return element", function () { 10 | ok($(document.body).affix()[0] == document.body, 'document.body returned') 11 | }) 12 | 13 | test("should exit early if element is not visible", function () { 14 | var $affix = $('
    ').affix() 15 | $affix.data('affix').checkPosition() 16 | ok(!$affix.hasClass('affix'), 'affix class was not added') 17 | }) 18 | 19 | }) -------------------------------------------------------------------------------- /editlive/static/editlive/contrib/jquery-ui-bootstrap/js/bootstrap/tests/unit/bootstrap-alert.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | 3 | module("bootstrap-alerts") 4 | 5 | test("should be defined on jquery object", function () { 6 | ok($(document.body).alert, 'alert method is defined') 7 | }) 8 | 9 | test("should return element", function () { 10 | ok($(document.body).alert()[0] == document.body, 'document.body returned') 11 | }) 12 | 13 | test("should fade element out on clicking .close", function () { 14 | var alertHTML = '
    ' 15 | + '×' 16 | + '

    Holy guacamole! Best check yo self, you\'re not looking too good.

    ' 17 | + '
    ' 18 | , alert = $(alertHTML).alert() 19 | 20 | alert.find('.close').click() 21 | 22 | ok(!alert.hasClass('in'), 'remove .in class on .close click') 23 | }) 24 | 25 | test("should remove element when clicking .close", function () { 26 | $.support.transition = false 27 | 28 | var alertHTML = '
    ' 29 | + '×' 30 | + '

    Holy guacamole! Best check yo self, you\'re not looking too good.

    ' 31 | + '
    ' 32 | , alert = $(alertHTML).appendTo('#qunit-fixture').alert() 33 | 34 | ok($('#qunit-fixture').find('.alert-message').length, 'element added to dom') 35 | 36 | alert.find('.close').click() 37 | 38 | ok(!$('#qunit-fixture').find('.alert-message').length, 'element removed from dom') 39 | }) 40 | 41 | test("should not fire closed when close is prevented", function () { 42 | $.support.transition = false 43 | stop(); 44 | $('
    ') 45 | .bind('close', function (e) { 46 | e.preventDefault(); 47 | ok(true); 48 | start(); 49 | }) 50 | .bind('closed', function () { 51 | ok(false); 52 | }) 53 | .alert('close') 54 | }) 55 | 56 | }) -------------------------------------------------------------------------------- /editlive/static/editlive/contrib/jquery-ui-bootstrap/js/bootstrap/tests/unit/bootstrap-carousel.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | 3 | module("bootstrap-carousel") 4 | 5 | test("should be defined on jquery object", function () { 6 | ok($(document.body).carousel, 'carousel method is defined') 7 | }) 8 | 9 | test("should return element", function () { 10 | ok($(document.body).carousel()[0] == document.body, 'document.body returned') 11 | }) 12 | 13 | test("should not fire sliden when slide is prevented", function () { 14 | $.support.transition = false 15 | stop() 16 | $('