ad2games-ui_components 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/Rakefile +28 -0
- data/app/assets/javascripts/ui_components.js.erb +26 -0
- data/app/assets/javascripts/ui_components/chosen_init.coffee +9 -0
- data/app/assets/javascripts/ui_components/domchange.coffee +1 -0
- data/app/assets/javascripts/ui_components/hide_empty_dropdowns.coffee +4 -0
- data/app/assets/javascripts/ui_components/modal.coffee +1 -0
- data/app/assets/javascripts/ui_components/navbar.coffee +2 -0
- data/app/assets/javascripts/ui_components/sticky_header.coffee +24 -0
- data/app/assets/javascripts/ui_components/submit_on_change.coffee +3 -0
- data/app/assets/javascripts/ui_components/turbolinks_progressbar.coffee +2 -0
- data/app/assets/stylesheets/a2g_ui_components.scss +8 -0
- data/app/assets/stylesheets/default_theme/button.scss +160 -0
- data/app/assets/stylesheets/default_theme/common.scss +15 -0
- data/app/assets/stylesheets/default_theme/footer.scss +7 -0
- data/app/assets/stylesheets/default_theme/form.scss +72 -0
- data/app/assets/stylesheets/default_theme/navbar.scss +55 -0
- data/app/assets/stylesheets/default_theme/table.scss +68 -0
- data/app/assets/stylesheets/default_theme/toolbar.scss +117 -0
- data/app/assets/stylesheets/libs.scss +6 -0
- data/app/assets/stylesheets/ui_components.scss.erb +15 -0
- data/app/assets/stylesheets/ui_components/checkbox_list.scss +11 -0
- data/app/assets/stylesheets/ui_components/date_range.scss +5 -0
- data/app/assets/stylesheets/ui_components/markdown_textarea.scss +7 -0
- data/app/assets/stylesheets/variables.scss +893 -0
- data/app/cells/checkbox_list/checkbox_list.yml +7 -0
- data/app/cells/checkbox_list/checkbox_list_cell.rb +33 -0
- data/app/cells/datagrid_filter/datagrid_filter.yml +14 -0
- data/app/cells/datagrid_filter/datagrid_filter_cell.rb +35 -0
- data/app/cells/date_range/date_range.coffee +69 -0
- data/app/cells/date_range/date_range.yml +7 -0
- data/app/cells/date_range/date_range_cell.rb +55 -0
- data/app/cells/form_cell_base.rb +26 -0
- data/app/cells/hello_world/hello_world.slim +1 -0
- data/app/cells/hello_world/hello_world.yml +5 -0
- data/app/cells/hello_world/hello_world_cell.rb +4 -0
- data/app/cells/markdown_readonly/markdown_readonly.coffee +5 -0
- data/app/cells/markdown_readonly/markdown_readonly.slim +1 -0
- data/app/cells/markdown_readonly/markdown_readonly.yml +4 -0
- data/app/cells/markdown_readonly/markdown_readonly_cell.rb +4 -0
- data/app/cells/markdown_textarea/markdown_textarea.coffee +9 -0
- data/app/cells/markdown_textarea/markdown_textarea.slim +9 -0
- data/app/cells/markdown_textarea/markdown_textarea.yml +8 -0
- data/app/cells/markdown_textarea/markdown_textarea_cell.rb +42 -0
- data/app/cells/modal/modal.coffee +2 -0
- data/app/cells/modal/modal.slim +12 -0
- data/app/cells/modal/modal.yml +22 -0
- data/app/cells/modal/modal_cell.rb +31 -0
- data/app/cells/select/select.coffee +35 -0
- data/app/cells/select/select.yml +14 -0
- data/app/cells/select/select_cell.rb +59 -0
- data/app/helpers/ui_components/view_helper.rb +8 -0
- data/lib/generators/generate_component.thor +32 -0
- data/lib/tasks/styleguide.rake +8 -0
- data/lib/ui_components.rb +14 -0
- data/lib/ui_components/cell.rb +16 -0
- data/lib/ui_components/cell_attributes.rb +49 -0
- data/lib/ui_components/docu_cop.rb +31 -0
- data/lib/ui_components/engine.rb +26 -0
- data/lib/ui_components/form_helper.rb +32 -0
- data/lib/ui_components/templates/cell.tt +2 -0
- data/lib/ui_components/templates/coffee.tt +0 -0
- data/lib/ui_components/templates/config.tt +9 -0
- data/lib/ui_components/templates/sass.tt +0 -0
- data/lib/ui_components/templates/view.tt +0 -0
- data/vendor/assets/bower_components/ajax-chosen/CHANGELOG.md +10 -0
- data/vendor/assets/bower_components/ajax-chosen/Cakefile +93 -0
- data/vendor/assets/bower_components/ajax-chosen/Makefile +2 -0
- data/vendor/assets/bower_components/ajax-chosen/README.md +131 -0
- data/vendor/assets/bower_components/ajax-chosen/VERSION +1 -0
- data/vendor/assets/bower_components/ajax-chosen/bower.json +23 -0
- data/vendor/assets/bower_components/ajax-chosen/data.json +57 -0
- data/vendor/assets/bower_components/ajax-chosen/docs/ajax-chosen.html +71 -0
- data/vendor/assets/bower_components/ajax-chosen/docs/docco.css +186 -0
- data/vendor/assets/bower_components/ajax-chosen/index.html +47 -0
- data/vendor/assets/bower_components/ajax-chosen/lib/ajax-chosen.js +159 -0
- data/vendor/assets/bower_components/ajax-chosen/lib/ajax-chosen.min.js +17 -0
- data/vendor/assets/bower_components/ajax-chosen/package.json +18 -0
- data/vendor/assets/bower_components/ajax-chosen/src/ajax-chosen.coffee +183 -0
- data/vendor/assets/bower_components/bootstrap-chosen/README.md +29 -0
- data/vendor/assets/bower_components/bootstrap-chosen/bootstrap-chosen-variables.less +24 -0
- data/vendor/assets/bower_components/bootstrap-chosen/bootstrap-chosen-variables.scss +16 -0
- data/vendor/assets/bower_components/bootstrap-chosen/bootstrap-chosen.less +473 -0
- data/vendor/assets/bower_components/bootstrap-chosen/bootstrap-chosen.scss +459 -0
- data/vendor/assets/bower_components/bootstrap-chosen/bower.json +25 -0
- data/vendor/assets/bower_components/bootstrap-chosen/chosen-sprite.png +0 -0
- data/vendor/assets/bower_components/bootstrap-chosen/chosen-sprite@2x.png +0 -0
- data/vendor/assets/bower_components/bootstrap-daterangepicker/README.md +200 -0
- data/vendor/assets/bower_components/bootstrap-daterangepicker/bower.json +20 -0
- data/vendor/assets/bower_components/bootstrap-daterangepicker/daterangepicker-bs2.css +303 -0
- data/vendor/assets/bower_components/bootstrap-daterangepicker/daterangepicker-bs3.css +335 -0
- data/vendor/assets/bower_components/bootstrap-daterangepicker/daterangepicker.js +1348 -0
- data/vendor/assets/bower_components/bootstrap-daterangepicker/examples.html +272 -0
- data/vendor/assets/bower_components/bootstrap-daterangepicker/package.js +18 -0
- data/vendor/assets/bower_components/bootstrap-daterangepicker/package.json +32 -0
- data/vendor/assets/bower_components/chosen/bower.json +50 -0
- data/vendor/assets/bower_components/chosen/chosen-sprite.png +0 -0
- data/vendor/assets/bower_components/chosen/chosen-sprite@2x.png +0 -0
- data/vendor/assets/bower_components/chosen/chosen.css +448 -0
- data/vendor/assets/bower_components/chosen/chosen.jquery.js +1272 -0
- data/vendor/assets/bower_components/highlightjs/LICENSE +24 -0
- data/vendor/assets/bower_components/highlightjs/Makefile +21 -0
- data/vendor/assets/bower_components/highlightjs/README.md +12 -0
- data/vendor/assets/bower_components/highlightjs/bower.json +14 -0
- data/vendor/assets/bower_components/highlightjs/component.json +12 -0
- data/vendor/assets/bower_components/highlightjs/composer.json +26 -0
- data/vendor/assets/bower_components/highlightjs/highlight.pack.js +15263 -0
- data/vendor/assets/bower_components/highlightjs/highlight.pack.min.js +12 -0
- data/vendor/assets/bower_components/highlightjs/package.json +8 -0
- data/vendor/assets/bower_components/highlightjs/styles/agate.css +108 -0
- data/vendor/assets/bower_components/highlightjs/styles/androidstudio.css +66 -0
- data/vendor/assets/bower_components/highlightjs/styles/arduino-light.css +88 -0
- data/vendor/assets/bower_components/highlightjs/styles/arta.css +73 -0
- data/vendor/assets/bower_components/highlightjs/styles/ascetic.css +45 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-cave-dark.css +83 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-cave-light.css +85 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-cave.dark.css +113 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-cave.light.css +113 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-dune-dark.css +69 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-dune-light.css +69 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-dune.dark.css +94 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-dune.light.css +94 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-estuary-dark.css +84 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-estuary-light.css +84 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-estuary.dark.css +113 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-estuary.light.css +113 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-forest-dark.css +69 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-forest-light.css +69 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-forest.dark.css +94 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-forest.light.css +94 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-heath-dark.css +69 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-heath-light.css +69 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-heath.dark.css +94 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-heath.light.css +94 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-lakeside-dark.css +69 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-lakeside-light.css +69 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-lakeside.dark.css +94 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-lakeside.light.css +94 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-plateau-dark.css +84 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-plateau-light.css +84 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-plateau.dark.css +113 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-plateau.light.css +113 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-savanna-dark.css +84 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-savanna-light.css +84 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-savanna.dark.css +113 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-savanna.light.css +113 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-seaside-dark.css +69 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-seaside-light.css +69 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-seaside.dark.css +94 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-seaside.light.css +94 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-sulphurpool-dark.css +69 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-sulphurpool-light.css +69 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-sulphurpool.dark.css +94 -0
- data/vendor/assets/bower_components/highlightjs/styles/atelier-sulphurpool.light.css +94 -0
- data/vendor/assets/bower_components/highlightjs/styles/brown-paper.css +64 -0
- data/vendor/assets/bower_components/highlightjs/styles/brown-papersq.png +0 -0
- data/vendor/assets/bower_components/highlightjs/styles/brown_paper.css +103 -0
- data/vendor/assets/bower_components/highlightjs/styles/brown_papersq.png +0 -0
- data/vendor/assets/bower_components/highlightjs/styles/codepen-embed.css +60 -0
- data/vendor/assets/bower_components/highlightjs/styles/color-brewer.css +71 -0
- data/vendor/assets/bower_components/highlightjs/styles/dark.css +63 -0
- data/vendor/assets/bower_components/highlightjs/styles/darkula.css +74 -0
- data/vendor/assets/bower_components/highlightjs/styles/default.css +99 -0
- data/vendor/assets/bower_components/highlightjs/styles/docco.css +97 -0
- data/vendor/assets/bower_components/highlightjs/styles/dracula.css +76 -0
- data/vendor/assets/bower_components/highlightjs/styles/far.css +71 -0
- data/vendor/assets/bower_components/highlightjs/styles/foundation.css +88 -0
- data/vendor/assets/bower_components/highlightjs/styles/github-gist.css +71 -0
- data/vendor/assets/bower_components/highlightjs/styles/github.css +99 -0
- data/vendor/assets/bower_components/highlightjs/styles/googlecode.css +89 -0
- data/vendor/assets/bower_components/highlightjs/styles/grayscale.css +101 -0
- data/vendor/assets/bower_components/highlightjs/styles/gruvbox-dark.css +108 -0
- data/vendor/assets/bower_components/highlightjs/styles/gruvbox-light.css +108 -0
- data/vendor/assets/bower_components/highlightjs/styles/hopscotch.css +83 -0
- data/vendor/assets/bower_components/highlightjs/styles/hybrid.css +102 -0
- data/vendor/assets/bower_components/highlightjs/styles/idea.css +97 -0
- data/vendor/assets/bower_components/highlightjs/styles/ir-black.css +73 -0
- data/vendor/assets/bower_components/highlightjs/styles/ir_black.css +106 -0
- data/vendor/assets/bower_components/highlightjs/styles/kimbie.dark.css +74 -0
- data/vendor/assets/bower_components/highlightjs/styles/kimbie.light.css +74 -0
- data/vendor/assets/bower_components/highlightjs/styles/magula.css +70 -0
- data/vendor/assets/bower_components/highlightjs/styles/mono-blue.css +59 -0
- data/vendor/assets/bower_components/highlightjs/styles/monokai-sublime.css +83 -0
- data/vendor/assets/bower_components/highlightjs/styles/monokai.css +70 -0
- data/vendor/assets/bower_components/highlightjs/styles/monokai_sublime.css +154 -0
- data/vendor/assets/bower_components/highlightjs/styles/obsidian.css +88 -0
- data/vendor/assets/bower_components/highlightjs/styles/paraiso-dark.css +72 -0
- data/vendor/assets/bower_components/highlightjs/styles/paraiso-light.css +72 -0
- data/vendor/assets/bower_components/highlightjs/styles/paraiso.dark.css +96 -0
- data/vendor/assets/bower_components/highlightjs/styles/paraiso.light.css +96 -0
- data/vendor/assets/bower_components/highlightjs/styles/pojoaque.css +83 -0
- data/vendor/assets/bower_components/highlightjs/styles/pojoaque.jpg +0 -0
- data/vendor/assets/bower_components/highlightjs/styles/qtcreator_dark.css +83 -0
- data/vendor/assets/bower_components/highlightjs/styles/qtcreator_light.css +83 -0
- data/vendor/assets/bower_components/highlightjs/styles/railscasts.css +106 -0
- data/vendor/assets/bower_components/highlightjs/styles/rainbow.css +85 -0
- data/vendor/assets/bower_components/highlightjs/styles/school-book.css +72 -0
- data/vendor/assets/bower_components/highlightjs/styles/school-book.png +0 -0
- data/vendor/assets/bower_components/highlightjs/styles/school_book.css +111 -0
- data/vendor/assets/bower_components/highlightjs/styles/school_book.png +0 -0
- data/vendor/assets/bower_components/highlightjs/styles/solarized-dark.css +84 -0
- data/vendor/assets/bower_components/highlightjs/styles/solarized-light.css +84 -0
- data/vendor/assets/bower_components/highlightjs/styles/solarized_dark.css +107 -0
- data/vendor/assets/bower_components/highlightjs/styles/solarized_light.css +107 -0
- data/vendor/assets/bower_components/highlightjs/styles/sunburst.css +102 -0
- data/vendor/assets/bower_components/highlightjs/styles/tomorrow-night-blue.css +75 -0
- data/vendor/assets/bower_components/highlightjs/styles/tomorrow-night-bright.css +74 -0
- data/vendor/assets/bower_components/highlightjs/styles/tomorrow-night-eighties.css +74 -0
- data/vendor/assets/bower_components/highlightjs/styles/tomorrow-night.css +75 -0
- data/vendor/assets/bower_components/highlightjs/styles/tomorrow.css +72 -0
- data/vendor/assets/bower_components/highlightjs/styles/vs.css +68 -0
- data/vendor/assets/bower_components/highlightjs/styles/xcode.css +93 -0
- data/vendor/assets/bower_components/highlightjs/styles/zenburn.css +80 -0
- data/vendor/assets/bower_components/jquery.floatThead/CONTRIBUTING.md +33 -0
- data/vendor/assets/bower_components/jquery.floatThead/README.md +285 -0
- data/vendor/assets/bower_components/jquery.floatThead/bower.json +34 -0
- data/vendor/assets/bower_components/jquery.floatThead/dist/jquery.floatThead-slim.js +899 -0
- data/vendor/assets/bower_components/jquery.floatThead/dist/jquery.floatThead-slim.min.js +3 -0
- data/vendor/assets/bower_components/jquery.floatThead/dist/jquery.floatThead.js +964 -0
- data/vendor/assets/bower_components/jquery.floatThead/dist/jquery.floatThead.min.js +3 -0
- data/vendor/assets/bower_components/jquery.floatThead/license.txt +21 -0
- data/vendor/assets/bower_components/jquery/AUTHORS.txt +278 -0
- data/vendor/assets/bower_components/jquery/LICENSE.txt +36 -0
- data/vendor/assets/bower_components/jquery/README.md +65 -0
- data/vendor/assets/bower_components/jquery/bower.json +14 -0
- data/vendor/assets/bower_components/jquery/dist/jquery.js +9842 -0
- data/vendor/assets/bower_components/jquery/dist/jquery.min.js +4 -0
- data/vendor/assets/bower_components/jquery/dist/jquery.min.map +1 -0
- data/vendor/assets/bower_components/jquery/dist/jquery.slim.js +7877 -0
- data/vendor/assets/bower_components/jquery/dist/jquery.slim.min.js +4 -0
- data/vendor/assets/bower_components/jquery/dist/jquery.slim.min.map +1 -0
- data/vendor/assets/bower_components/jquery/sizzle/LICENSE.txt +36 -0
- data/vendor/assets/bower_components/jquery/sizzle/dist/sizzle.js +2143 -0
- data/vendor/assets/bower_components/jquery/sizzle/dist/sizzle.min.js +3 -0
- data/vendor/assets/bower_components/jquery/sizzle/dist/sizzle.min.map +1 -0
- data/vendor/assets/bower_components/jquery/src/ajax.js +845 -0
- data/vendor/assets/bower_components/jquery/src/ajax/jsonp.js +100 -0
- data/vendor/assets/bower_components/jquery/src/ajax/load.js +83 -0
- data/vendor/assets/bower_components/jquery/src/ajax/parseJSON.js +13 -0
- data/vendor/assets/bower_components/jquery/src/ajax/parseXML.js +27 -0
- data/vendor/assets/bower_components/jquery/src/ajax/script.js +68 -0
- data/vendor/assets/bower_components/jquery/src/ajax/var/location.js +3 -0
- data/vendor/assets/bower_components/jquery/src/ajax/var/nonce.js +5 -0
- data/vendor/assets/bower_components/jquery/src/ajax/var/rquery.js +3 -0
- data/vendor/assets/bower_components/jquery/src/ajax/xhr.js +167 -0
- data/vendor/assets/bower_components/jquery/src/attributes.js +11 -0
- data/vendor/assets/bower_components/jquery/src/attributes/attr.js +142 -0
- data/vendor/assets/bower_components/jquery/src/attributes/classes.js +177 -0
- data/vendor/assets/bower_components/jquery/src/attributes/prop.js +125 -0
- data/vendor/assets/bower_components/jquery/src/attributes/support.js +36 -0
- data/vendor/assets/bower_components/jquery/src/attributes/val.js +177 -0
- data/vendor/assets/bower_components/jquery/src/callbacks.js +232 -0
- data/vendor/assets/bower_components/jquery/src/core.js +494 -0
- data/vendor/assets/bower_components/jquery/src/core/DOMEval.js +14 -0
- data/vendor/assets/bower_components/jquery/src/core/access.js +65 -0
- data/vendor/assets/bower_components/jquery/src/core/init.js +134 -0
- data/vendor/assets/bower_components/jquery/src/core/parseHTML.js +41 -0
- data/vendor/assets/bower_components/jquery/src/core/ready.js +103 -0
- data/vendor/assets/bower_components/jquery/src/core/support.js +18 -0
- data/vendor/assets/bower_components/jquery/src/core/var/rsingleTag.js +5 -0
- data/vendor/assets/bower_components/jquery/src/css.js +515 -0
- data/vendor/assets/bower_components/jquery/src/css/addGetHookIf.js +24 -0
- data/vendor/assets/bower_components/jquery/src/css/adjustCSS.js +65 -0
- data/vendor/assets/bower_components/jquery/src/css/curCSS.js +60 -0
- data/vendor/assets/bower_components/jquery/src/css/defaultDisplay.js +72 -0
- data/vendor/assets/bower_components/jquery/src/css/hiddenVisibleSelectors.js +18 -0
- data/vendor/assets/bower_components/jquery/src/css/showHide.js +48 -0
- data/vendor/assets/bower_components/jquery/src/css/support.js +121 -0
- data/vendor/assets/bower_components/jquery/src/css/var/cssExpand.js +3 -0
- data/vendor/assets/bower_components/jquery/src/css/var/getStyles.js +15 -0
- data/vendor/assets/bower_components/jquery/src/css/var/isHidden.js +16 -0
- data/vendor/assets/bower_components/jquery/src/css/var/rmargin.js +3 -0
- data/vendor/assets/bower_components/jquery/src/css/var/rnumnonpx.js +5 -0
- data/vendor/assets/bower_components/jquery/src/css/var/swap.js +24 -0
- data/vendor/assets/bower_components/jquery/src/data.js +187 -0
- data/vendor/assets/bower_components/jquery/src/data/Data.js +200 -0
- data/vendor/assets/bower_components/jquery/src/data/accepts.js +20 -0
- data/vendor/assets/bower_components/jquery/src/data/support.js +23 -0
- data/vendor/assets/bower_components/jquery/src/data/var/acceptData.js +18 -0
- data/vendor/assets/bower_components/jquery/src/data/var/dataPriv.js +5 -0
- data/vendor/assets/bower_components/jquery/src/data/var/dataUser.js +5 -0
- data/vendor/assets/bower_components/jquery/src/deferred.js +158 -0
- data/vendor/assets/bower_components/jquery/src/deferred/exceptionHook.js +19 -0
- data/vendor/assets/bower_components/jquery/src/deprecated.js +32 -0
- data/vendor/assets/bower_components/jquery/src/dimensions.js +54 -0
- data/vendor/assets/bower_components/jquery/src/effects.js +629 -0
- data/vendor/assets/bower_components/jquery/src/effects/Tween.js +121 -0
- data/vendor/assets/bower_components/jquery/src/effects/animatedSelector.js +13 -0
- data/vendor/assets/bower_components/jquery/src/effects/support.js +58 -0
- data/vendor/assets/bower_components/jquery/src/event.js +710 -0
- data/vendor/assets/bower_components/jquery/src/event/ajax.js +20 -0
- data/vendor/assets/bower_components/jquery/src/event/alias.js +27 -0
- data/vendor/assets/bower_components/jquery/src/event/focusin.js +53 -0
- data/vendor/assets/bower_components/jquery/src/event/support.js +9 -0
- data/vendor/assets/bower_components/jquery/src/event/trigger.js +199 -0
- data/vendor/assets/bower_components/jquery/src/exports/amd.js +24 -0
- data/vendor/assets/bower_components/jquery/src/exports/global.js +26 -0
- data/vendor/assets/bower_components/jquery/src/intro.js +44 -0
- data/vendor/assets/bower_components/jquery/src/jquery.js +37 -0
- data/vendor/assets/bower_components/jquery/src/manipulation.js +481 -0
- data/vendor/assets/bower_components/jquery/src/manipulation/_evalUrl.js +20 -0
- data/vendor/assets/bower_components/jquery/src/manipulation/buildFragment.js +102 -0
- data/vendor/assets/bower_components/jquery/src/manipulation/createSafeFragment.js +20 -0
- data/vendor/assets/bower_components/jquery/src/manipulation/getAll.js +21 -0
- data/vendor/assets/bower_components/jquery/src/manipulation/setGlobalEval.js +20 -0
- data/vendor/assets/bower_components/jquery/src/manipulation/support.js +33 -0
- data/vendor/assets/bower_components/jquery/src/manipulation/var/nodeNames.js +5 -0
- data/vendor/assets/bower_components/jquery/src/manipulation/var/rcheckableType.js +3 -0
- data/vendor/assets/bower_components/jquery/src/manipulation/var/rleadingWhitespace.js +3 -0
- data/vendor/assets/bower_components/jquery/src/manipulation/var/rscriptType.js +3 -0
- data/vendor/assets/bower_components/jquery/src/manipulation/var/rtagName.js +3 -0
- data/vendor/assets/bower_components/jquery/src/manipulation/wrapMap.js +27 -0
- data/vendor/assets/bower_components/jquery/src/offset.js +218 -0
- data/vendor/assets/bower_components/jquery/src/outro.js +2 -0
- data/vendor/assets/bower_components/jquery/src/queue.js +143 -0
- data/vendor/assets/bower_components/jquery/src/queue/delay.js +22 -0
- data/vendor/assets/bower_components/jquery/src/selector-native.js +211 -0
- data/vendor/assets/bower_components/jquery/src/selector-sizzle.js +14 -0
- data/vendor/assets/bower_components/jquery/src/selector.js +1 -0
- data/vendor/assets/bower_components/jquery/src/serialize.js +125 -0
- data/vendor/assets/bower_components/jquery/src/support.js +63 -0
- data/vendor/assets/bower_components/jquery/src/traversing.js +175 -0
- data/vendor/assets/bower_components/jquery/src/traversing/findFilter.js +100 -0
- data/vendor/assets/bower_components/jquery/src/traversing/var/dir.js +20 -0
- data/vendor/assets/bower_components/jquery/src/traversing/var/rneedsContext.js +6 -0
- data/vendor/assets/bower_components/jquery/src/traversing/var/siblings.js +15 -0
- data/vendor/assets/bower_components/jquery/src/var/arr.js +3 -0
- data/vendor/assets/bower_components/jquery/src/var/class2type.js +5 -0
- data/vendor/assets/bower_components/jquery/src/var/concat.js +5 -0
- data/vendor/assets/bower_components/jquery/src/var/deletedIds.js +3 -0
- data/vendor/assets/bower_components/jquery/src/var/document.js +3 -0
- data/vendor/assets/bower_components/jquery/src/var/documentElement.js +5 -0
- data/vendor/assets/bower_components/jquery/src/var/hasOwn.js +5 -0
- data/vendor/assets/bower_components/jquery/src/var/indexOf.js +5 -0
- data/vendor/assets/bower_components/jquery/src/var/pnum.js +3 -0
- data/vendor/assets/bower_components/jquery/src/var/push.js +5 -0
- data/vendor/assets/bower_components/jquery/src/var/rcssNum.js +7 -0
- data/vendor/assets/bower_components/jquery/src/var/rnotwhite.js +3 -0
- data/vendor/assets/bower_components/jquery/src/var/slice.js +5 -0
- data/vendor/assets/bower_components/jquery/src/var/support.js +5 -0
- data/vendor/assets/bower_components/jquery/src/var/toString.js +5 -0
- data/vendor/assets/bower_components/jquery/src/wrap.js +79 -0
- data/vendor/assets/bower_components/marked/Gulpfile.js +22 -0
- data/vendor/assets/bower_components/marked/LICENSE +19 -0
- data/vendor/assets/bower_components/marked/Makefile +12 -0
- data/vendor/assets/bower_components/marked/README.md +406 -0
- data/vendor/assets/bower_components/marked/bin/marked +187 -0
- data/vendor/assets/bower_components/marked/bower.json +24 -0
- data/vendor/assets/bower_components/marked/component.json +10 -0
- data/vendor/assets/bower_components/marked/doc/broken.md +426 -0
- data/vendor/assets/bower_components/marked/doc/todo.md +2 -0
- data/vendor/assets/bower_components/marked/index.js +1 -0
- data/vendor/assets/bower_components/marked/lib/marked.js +1285 -0
- data/vendor/assets/bower_components/marked/man/marked.1 +91 -0
- data/vendor/assets/bower_components/marked/marked.min.js +6 -0
- data/vendor/assets/bower_components/marked/package.json +24 -0
- data/vendor/assets/bower_components/moment/CHANGELOG.md +423 -0
- data/vendor/assets/bower_components/moment/LICENSE +22 -0
- data/vendor/assets/bower_components/moment/Moment.js.nuspec +28 -0
- data/vendor/assets/bower_components/moment/README.md +39 -0
- data/vendor/assets/bower_components/moment/benchmarks/clone.js +10 -0
- data/vendor/assets/bower_components/moment/bower.json +20 -0
- data/vendor/assets/bower_components/moment/locale/af.js +71 -0
- data/vendor/assets/bower_components/moment/locale/ar-ma.js +57 -0
- data/vendor/assets/bower_components/moment/locale/ar-sa.js +101 -0
- data/vendor/assets/bower_components/moment/locale/ar-tn.js +55 -0
- data/vendor/assets/bower_components/moment/locale/ar.js +134 -0
- data/vendor/assets/bower_components/moment/locale/az.js +107 -0
- data/vendor/assets/bower_components/moment/locale/be.js +154 -0
- data/vendor/assets/bower_components/moment/locale/bg.js +88 -0
- data/vendor/assets/bower_components/moment/locale/bn.js +111 -0
- data/vendor/assets/bower_components/moment/locale/bo.js +108 -0
- data/vendor/assets/bower_components/moment/locale/br.js +109 -0
- data/vendor/assets/bower_components/moment/locale/bs.js +140 -0
- data/vendor/assets/bower_components/moment/locale/ca.js +77 -0
- data/vendor/assets/bower_components/moment/locale/cs.js +157 -0
- data/vendor/assets/bower_components/moment/locale/cv.js +61 -0
- data/vendor/assets/bower_components/moment/locale/cy.js +79 -0
- data/vendor/assets/bower_components/moment/locale/da.js +58 -0
- data/vendor/assets/bower_components/moment/locale/de-at.js +74 -0
- data/vendor/assets/bower_components/moment/locale/de.js +73 -0
- data/vendor/assets/bower_components/moment/locale/el.js +94 -0
- data/vendor/assets/bower_components/moment/locale/en-au.js +64 -0
- data/vendor/assets/bower_components/moment/locale/en-ca.js +61 -0
- data/vendor/assets/bower_components/moment/locale/en-gb.js +65 -0
- data/vendor/assets/bower_components/moment/locale/eo.js +71 -0
- data/vendor/assets/bower_components/moment/locale/es.js +77 -0
- data/vendor/assets/bower_components/moment/locale/et.js +78 -0
- data/vendor/assets/bower_components/moment/locale/eu.js +62 -0
- data/vendor/assets/bower_components/moment/locale/fa.js +103 -0
- data/vendor/assets/bower_components/moment/locale/fi.js +107 -0
- data/vendor/assets/bower_components/moment/locale/fo.js +58 -0
- data/vendor/assets/bower_components/moment/locale/fr-ca.js +56 -0
- data/vendor/assets/bower_components/moment/locale/fr.js +60 -0
- data/vendor/assets/bower_components/moment/locale/fy.js +69 -0
- data/vendor/assets/bower_components/moment/locale/gl.js +73 -0
- data/vendor/assets/bower_components/moment/locale/he.js +80 -0
- data/vendor/assets/bower_components/moment/locale/hi.js +121 -0
- data/vendor/assets/bower_components/moment/locale/hr.js +141 -0
- data/vendor/assets/bower_components/moment/locale/hu.js +111 -0
- data/vendor/assets/bower_components/moment/locale/hy-am.js +118 -0
- data/vendor/assets/bower_components/moment/locale/id.js +81 -0
- data/vendor/assets/bower_components/moment/locale/is.js +126 -0
- data/vendor/assets/bower_components/moment/locale/it.js +68 -0
- data/vendor/assets/bower_components/moment/locale/ja.js +63 -0
- data/vendor/assets/bower_components/moment/locale/ka.js +109 -0
- data/vendor/assets/bower_components/moment/locale/km.js +56 -0
- data/vendor/assets/bower_components/moment/locale/ko.js +65 -0
- data/vendor/assets/bower_components/moment/locale/lb.js +139 -0
- data/vendor/assets/bower_components/moment/locale/lt.js +120 -0
- data/vendor/assets/bower_components/moment/locale/lv.js +79 -0
- data/vendor/assets/bower_components/moment/locale/mk.js +88 -0
- data/vendor/assets/bower_components/moment/locale/ml.js +69 -0
- data/vendor/assets/bower_components/moment/locale/mr.js +120 -0
- data/vendor/assets/bower_components/moment/locale/ms-my.js +80 -0
- data/vendor/assets/bower_components/moment/locale/my.js +89 -0
- data/vendor/assets/bower_components/moment/locale/nb.js +59 -0
- data/vendor/assets/bower_components/moment/locale/ne.js +121 -0
- data/vendor/assets/bower_components/moment/locale/nl.js +69 -0
- data/vendor/assets/bower_components/moment/locale/nn.js +58 -0
- data/vendor/assets/bower_components/moment/locale/pl.js +100 -0
- data/vendor/assets/bower_components/moment/locale/pt-br.js +58 -0
- data/vendor/assets/bower_components/moment/locale/pt.js +62 -0
- data/vendor/assets/bower_components/moment/locale/ro.js +73 -0
- data/vendor/assets/bower_components/moment/locale/ru.js +176 -0
- data/vendor/assets/bower_components/moment/locale/sk.js +158 -0
- data/vendor/assets/bower_components/moment/locale/sl.js +146 -0
- data/vendor/assets/bower_components/moment/locale/sq.js +67 -0
- data/vendor/assets/bower_components/moment/locale/sr-cyrl.js +107 -0
- data/vendor/assets/bower_components/moment/locale/sr.js +107 -0
- data/vendor/assets/bower_components/moment/locale/sv.js +65 -0
- data/vendor/assets/bower_components/moment/locale/ta.js +130 -0
- data/vendor/assets/bower_components/moment/locale/th.js +63 -0
- data/vendor/assets/bower_components/moment/locale/tl-ph.js +60 -0
- data/vendor/assets/bower_components/moment/locale/tr.js +94 -0
- data/vendor/assets/bower_components/moment/locale/tzm-latn.js +56 -0
- data/vendor/assets/bower_components/moment/locale/tzm.js +56 -0
- data/vendor/assets/bower_components/moment/locale/uk.js +163 -0
- data/vendor/assets/bower_components/moment/locale/uz.js +56 -0
- data/vendor/assets/bower_components/moment/locale/vi.js +64 -0
- data/vendor/assets/bower_components/moment/locale/zh-cn.js +125 -0
- data/vendor/assets/bower_components/moment/locale/zh-tw.js +99 -0
- data/vendor/assets/bower_components/moment/meteor/README.md +25 -0
- data/vendor/assets/bower_components/moment/meteor/export.js +3 -0
- data/vendor/assets/bower_components/moment/meteor/test.js +5 -0
- data/vendor/assets/bower_components/moment/min/locales.js +7306 -0
- data/vendor/assets/bower_components/moment/min/locales.min.js +4 -0
- data/vendor/assets/bower_components/moment/min/moment-with-locales.js +9792 -0
- data/vendor/assets/bower_components/moment/min/moment-with-locales.min.js +10 -0
- data/vendor/assets/bower_components/moment/min/moment.min.js +7 -0
- data/vendor/assets/bower_components/moment/moment.js +3043 -0
- data/vendor/assets/bower_components/moment/scripts/npm_prepublish.sh +43 -0
- data/vendor/assets/bower_components/underscore/LICENSE +23 -0
- data/vendor/assets/bower_components/underscore/README.md +22 -0
- data/vendor/assets/bower_components/underscore/bower.json +7 -0
- data/vendor/assets/bower_components/underscore/underscore-min.js +6 -0
- data/vendor/assets/bower_components/underscore/underscore-min.map +1 -0
- data/vendor/assets/bower_components/underscore/underscore.js +1548 -0
- metadata +782 -0
@@ -0,0 +1 @@
|
|
1
|
+
1.0.1
|
@@ -0,0 +1,23 @@
|
|
1
|
+
{
|
2
|
+
"name": "ajax-chosen",
|
3
|
+
"version": "1.0.0",
|
4
|
+
"homepage": "https://github.com/michaelperrin/ajax-chosen",
|
5
|
+
"authors": [
|
6
|
+
"Ryan LeFevre",
|
7
|
+
"Michaël Perrin"
|
8
|
+
],
|
9
|
+
"description": "A complement to the jQuery library Chosen that adds ajax autocomplete",
|
10
|
+
"main": "./lib/ajax-chosen.min.js",
|
11
|
+
"license": "MIT",
|
12
|
+
"dependencies": {
|
13
|
+
"jquery": ">= 1.9.0",
|
14
|
+
"chosen": ">= 1.0.0"
|
15
|
+
},
|
16
|
+
"ignore": [
|
17
|
+
"**/.*",
|
18
|
+
"node_modules",
|
19
|
+
"bower_components",
|
20
|
+
"test",
|
21
|
+
"tests"
|
22
|
+
]
|
23
|
+
}
|
@@ -0,0 +1,57 @@
|
|
1
|
+
{
|
2
|
+
"states": [
|
3
|
+
"Alabama",
|
4
|
+
"Alaska",
|
5
|
+
"Arizona",
|
6
|
+
"Arkansas",
|
7
|
+
"California",
|
8
|
+
"Colorado",
|
9
|
+
"Connecticut",
|
10
|
+
"Delaware",
|
11
|
+
"District of Columbia",
|
12
|
+
"Florida",
|
13
|
+
"Georgia",
|
14
|
+
"Hawaii",
|
15
|
+
"Idaho",
|
16
|
+
"Illinois",
|
17
|
+
"Indiana",
|
18
|
+
"Iowa",
|
19
|
+
"Kansas",
|
20
|
+
"Kentucky",
|
21
|
+
"Louisiana",
|
22
|
+
"Maine",
|
23
|
+
"Maryland",
|
24
|
+
"Massachusetts",
|
25
|
+
"Michigan",
|
26
|
+
"Minnesota",
|
27
|
+
"Mississippi",
|
28
|
+
"Missouri",
|
29
|
+
"Montana",
|
30
|
+
"Nebraska",
|
31
|
+
"Nevada",
|
32
|
+
"New Hampshire",
|
33
|
+
"New Jersey",
|
34
|
+
"New Mexico",
|
35
|
+
"New York",
|
36
|
+
"North Carolina",
|
37
|
+
"North Dakota",
|
38
|
+
"Ohio",
|
39
|
+
"Oklahoma",
|
40
|
+
"Oregon",
|
41
|
+
"Pennsylvania",
|
42
|
+
"Puerto Rico",
|
43
|
+
"Rhode Island",
|
44
|
+
"South Carolina",
|
45
|
+
"South Dakota",
|
46
|
+
"Tennessee",
|
47
|
+
"Texas",
|
48
|
+
"Utah",
|
49
|
+
"Vermont",
|
50
|
+
"Virginia",
|
51
|
+
"Virgin Islands",
|
52
|
+
"Washington",
|
53
|
+
"West Virginia",
|
54
|
+
"Wisconsin",
|
55
|
+
"Wyoming"
|
56
|
+
]
|
57
|
+
}
|
@@ -0,0 +1,71 @@
|
|
1
|
+
<!DOCTYPE html> <html> <head> <title>ajax-chosen.coffee</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" media="all" href="docco.css" /> </head> <body> <div id="container"> <div id="background"></div> <table cellpadding="0" cellspacing="0"> <thead> <tr> <th class="docs"> <h1> ajax-chosen.coffee </h1> </th> <th class="code"> </th> </tr> </thead> <tbody> <tr id="section-1"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-1">¶</a> </div> </td> <td class="code"> <div class="highlight"><pre><span class="nx">do</span> <span class="nf">($ = jQuery) -></span>
|
2
|
+
|
3
|
+
<span class="nv">$.fn.ajaxChosen = </span><span class="nf">(settings = {}, callback = ->) -></span>
|
4
|
+
<span class="nv">defaultOptions =</span>
|
5
|
+
<span class="nv">minTermLength: </span><span class="mi">3</span>
|
6
|
+
<span class="nv">afterTypeDelay: </span><span class="mi">500</span>
|
7
|
+
<span class="nv">jsonTermKey: </span><span class="s2">"term"</span></pre></div> </td> </tr> <tr id="section-2"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-2">¶</a> </div> <p>This will come in handy later.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">select = </span><span class="err">@</span>
|
8
|
+
|
9
|
+
<span class="nv">chosenXhr = </span><span class="kc">null</span>
|
10
|
+
</pre></div> </td> </tr> <tr id="section-3"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-3">¶</a> </div> <p>Merge options with defaults</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">options = </span><span class="nx">$</span><span class="p">.</span><span class="nx">extend</span> <span class="p">{},</span> <span class="nx">defaultOptions</span><span class="p">,</span> <span class="nx">settings</span></pre></div> </td> </tr> <tr id="section-4"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-4">¶</a> </div> <p>Load chosen. To make things clear, I have taken the liberty
|
11
|
+
of using the .chzn-autoselect class to specify input elements
|
12
|
+
we want to use with ajax autocomplete.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">@chosen</span><span class="p">()</span>
|
13
|
+
|
14
|
+
<span class="nx">@each</span> <span class="o">-></span></pre></div> </td> </tr> <tr id="section-5"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-5">¶</a> </div> <p>Now that chosen is loaded normally, we can bootstrap it with
|
15
|
+
our ajax autocomplete code.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">$</span><span class="p">(</span><span class="err">@</span><span class="p">).</span><span class="nx">next</span><span class="p">(</span><span class="s1">'.chzn-container'</span><span class="p">)</span>
|
16
|
+
<span class="p">.</span><span class="nx">find</span><span class="p">(</span><span class="s2">".search-field > input, .chzn-search > input"</span><span class="p">)</span>
|
17
|
+
<span class="p">.</span><span class="nx">bind</span> <span class="s1">'keyup'</span><span class="p">,</span> <span class="o">-></span></pre></div> </td> </tr> <tr id="section-6"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-6">¶</a> </div> <p>This code will be executed every time the user types a letter
|
18
|
+
into the input form that chosen has created</p> </td> <td class="code"> <div class="highlight"><pre> </pre></div> </td> </tr> <tr id="section-7"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-7">¶</a> </div> <p>Retrieve the current value of the input form</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">val = </span><span class="nx">$</span><span class="p">.</span><span class="nx">trim</span> <span class="nx">$</span><span class="p">(</span><span class="err">@</span><span class="p">).</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'value'</span><span class="p">)</span></pre></div> </td> </tr> <tr id="section-8"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-8">¶</a> </div> <p>Depending on how much text the user has typed, let them know
|
19
|
+
if they need to keep typing or if we are looking for their data</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">msg = </span><span class="k">if</span> <span class="nx">val</span><span class="p">.</span><span class="nx">length</span> <span class="o"><</span> <span class="nx">options</span><span class="p">.</span><span class="nx">minTermLength</span> <span class="k">then</span> <span class="s2">"Keep typing..."</span> <span class="k">else</span> <span class="s2">"Looking for '"</span> <span class="o">+</span> <span class="nx">val</span> <span class="o">+</span> <span class="s2">"'"</span>
|
20
|
+
<span class="nx">select</span><span class="p">.</span><span class="nx">next</span><span class="p">(</span><span class="s1">'.chzn-container'</span><span class="p">).</span><span class="nx">find</span><span class="p">(</span><span class="s1">'.no-results'</span><span class="p">).</span><span class="nx">text</span><span class="p">(</span><span class="nx">msg</span><span class="p">)</span>
|
21
|
+
</pre></div> </td> </tr> <tr id="section-9"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-9">¶</a> </div> <p>If input text has not changed ... do nothing</p> </td> <td class="code"> <div class="highlight"><pre> <span class="k">return</span> <span class="kc">false</span> <span class="k">if</span> <span class="nx">val</span> <span class="o">is</span> <span class="nx">$</span><span class="p">(</span><span class="err">@</span><span class="p">).</span><span class="nx">data</span><span class="p">(</span><span class="s1">'prevVal'</span><span class="p">)</span></pre></div> </td> </tr> <tr id="section-10"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-10">¶</a> </div> <p>Set the current search term so we don't execute the ajax call if
|
22
|
+
the user hits a key that isn't an input letter/number/symbol</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">$</span><span class="p">(</span><span class="err">@</span><span class="p">).</span><span class="nx">data</span><span class="p">(</span><span class="s1">'prevVal'</span><span class="p">,</span> <span class="nx">val</span><span class="p">)</span>
|
23
|
+
</pre></div> </td> </tr> <tr id="section-11"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-11">¶</a> </div> <p>At this point, we have a new term/query ... the old timer
|
24
|
+
is no longer valid. Clear it.</p> </td> <td class="code"> <div class="highlight"><pre></pre></div> </td> </tr> <tr id="section-12"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-12">¶</a> </div> <p>We delay searches by a small amount so that we don't flood the
|
25
|
+
server with ajax requests.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">clearTimeout</span><span class="p">(</span><span class="nx">@timer</span><span class="p">)</span> <span class="k">if</span> <span class="nx">@timer</span>
|
26
|
+
</pre></div> </td> </tr> <tr id="section-13"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-13">¶</a> </div> <p>Some simple validation so we don't make excess ajax calls. I am
|
27
|
+
assuming you don't want to perform a search with less than 3
|
28
|
+
characters.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="k">return</span> <span class="kc">false</span> <span class="k">if</span> <span class="nx">val</span><span class="p">.</span><span class="nx">length</span> <span class="o"><</span> <span class="nx">options</span><span class="p">.</span><span class="nx">minTermLength</span>
|
29
|
+
</pre></div> </td> </tr> <tr id="section-14"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-14">¶</a> </div> <p>This is a useful reference for later</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">field = </span><span class="nx">$</span><span class="p">(</span><span class="err">@</span><span class="p">)</span>
|
30
|
+
</pre></div> </td> </tr> <tr id="section-15"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-15">¶</a> </div> <p>Default term key is <code>term</code>. Specify alternative in options.options.jsonTermKey</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">options.data = </span><span class="p">{}</span> <span class="k">if</span> <span class="o">not</span> <span class="nx">options</span><span class="p">.</span><span class="nx">data</span><span class="o">?</span>
|
31
|
+
<span class="nx">options</span><span class="p">.</span><span class="nx">data</span><span class="p">[</span><span class="nx">options</span><span class="p">.</span><span class="nx">jsonTermKey</span><span class="p">]</span> <span class="o">=</span> <span class="nx">val</span>
|
32
|
+
</pre></div> </td> </tr> <tr id="section-16"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-16">¶</a> </div> <p>If the user provided an ajax success callback, store it so we can
|
33
|
+
call it after our bootstrapping is finished.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">success</span> <span class="o">?=</span> <span class="nx">options</span><span class="p">.</span><span class="nx">success</span>
|
34
|
+
</pre></div> </td> </tr> <tr id="section-17"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-17">¶</a> </div> <p>Create our own callback that will be executed when the ajax call is
|
35
|
+
finished.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">options.success = </span><span class="nf">(data) -></span></pre></div> </td> </tr> <tr id="section-18"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-18">¶</a> </div> <p>Exit if the data we're given is invalid</p> </td> <td class="code"> <div class="highlight"><pre> <span class="k">return</span> <span class="k">if</span> <span class="o">not</span> <span class="nx">data</span><span class="o">?</span>
|
36
|
+
</pre></div> </td> </tr> <tr id="section-19"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-19">¶</a> </div> <p>Go through all of the <option> elements in the <select> and remove
|
37
|
+
ones that have not been selected by the user. For those selected
|
38
|
+
by the user, add them to a list to filter from the results later.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">selected_values = </span><span class="p">[]</span>
|
39
|
+
<span class="nx">select</span><span class="p">.</span><span class="nx">find</span><span class="p">(</span><span class="s1">'option'</span><span class="p">).</span><span class="nx">each</span> <span class="o">-></span>
|
40
|
+
<span class="k">if</span> <span class="o">not</span> <span class="nx">$</span><span class="p">(</span><span class="err">@</span><span class="p">).</span><span class="o">is</span><span class="p">(</span><span class="s2">":selected"</span><span class="p">)</span>
|
41
|
+
<span class="nx">$</span><span class="p">(</span><span class="err">@</span><span class="p">).</span><span class="nx">remove</span><span class="p">()</span>
|
42
|
+
<span class="k">else</span>
|
43
|
+
<span class="nx">selected_values</span><span class="p">.</span><span class="nx">push</span> <span class="nx">$</span><span class="p">(</span><span class="err">@</span><span class="p">).</span><span class="nx">val</span><span class="p">()</span> <span class="o">+</span> <span class="s2">"-"</span> <span class="o">+</span> <span class="nx">$</span><span class="p">(</span><span class="err">@</span><span class="p">).</span><span class="nx">text</span><span class="p">()</span>
|
44
|
+
</pre></div> </td> </tr> <tr id="section-20"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-20">¶</a> </div> <p>Send the ajax results to the user callback so we can get an object of
|
45
|
+
value => text pairs to inject as <option> elements.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nv">items = </span><span class="nx">callback</span> <span class="nx">data</span>
|
46
|
+
</pre></div> </td> </tr> <tr id="section-21"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-21">¶</a> </div> <p>Iterate through the given data and inject the <option> elements into
|
47
|
+
the DOM if it doesn't exist in the selector already</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">$</span><span class="p">.</span><span class="nx">each</span> <span class="nx">items</span><span class="p">,</span> <span class="nf">(value, text) -></span>
|
48
|
+
<span class="k">if</span> <span class="nx">$</span><span class="p">.</span><span class="nx">inArray</span><span class="p">(</span><span class="nx">value</span> <span class="o">+</span> <span class="s2">"-"</span> <span class="o">+</span> <span class="nx">text</span><span class="p">,</span> <span class="nx">selected_values</span><span class="p">)</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span>
|
49
|
+
<span class="nx">$</span><span class="p">(</span><span class="s2">"<option />"</span><span class="p">)</span>
|
50
|
+
<span class="p">.</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'value'</span><span class="p">,</span> <span class="nx">value</span><span class="p">)</span>
|
51
|
+
<span class="p">.</span><span class="nx">html</span><span class="p">(</span><span class="nx">text</span><span class="p">)</span>
|
52
|
+
<span class="p">.</span><span class="nx">appendTo</span><span class="p">(</span><span class="nx">select</span><span class="p">)</span>
|
53
|
+
</pre></div> </td> </tr> <tr id="section-22"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-22">¶</a> </div> <p>Tell chosen that the contents of the <select> input have been updated
|
54
|
+
This makes chosen update its internal list of the input data.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">select</span><span class="p">.</span><span class="nx">trigger</span><span class="p">(</span><span class="s2">"liszt:updated"</span><span class="p">)</span>
|
55
|
+
</pre></div> </td> </tr> <tr id="section-23"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-23">¶</a> </div> <p>Finally, call the user supplied callback (if it exists)</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">success</span><span class="p">(</span><span class="nx">data</span><span class="p">)</span> <span class="k">if</span> <span class="nx">success</span><span class="o">?</span></pre></div> </td> </tr> <tr id="section-24"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-24">¶</a> </div> <p>For some reason, the contents of the input field get removed once you
|
56
|
+
call trigger above. Often, this can be very annoying (and can make some
|
57
|
+
searches impossible), so we add the value the user was typing back into
|
58
|
+
the input field.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">field</span><span class="p">.</span><span class="nx">attr</span><span class="p">(</span><span class="s1">'value'</span><span class="p">,</span> <span class="nx">val</span><span class="p">)</span></pre></div> </td> </tr> <tr id="section-25"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-25">¶</a> </div> <p>Because non-ajax Chosen isn't constantly re-building results, when it
|
59
|
+
DOES rebuild results (during liszt:updated above, it clears the input
|
60
|
+
search field before scaling it. This causes the input field width to be
|
61
|
+
at it's minimum, which is about 25px. </p> </td> <td class="code"> <div class="highlight"><pre></pre></div> </td> </tr> <tr id="section-26"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-26">¶</a> </div> <p>The proper way to fix this would be create a new method in chosen for
|
62
|
+
rebuilding results without clearing the input field. Or to call
|
63
|
+
Chosen.search<em>field</em>scale() after resetting the value above. This isn't
|
64
|
+
possible with the current state of Chosen. The quick fix is to simply reset
|
65
|
+
the width of the field after we reset the value of the input text.</p> </td> <td class="code"> <div class="highlight"><pre> <span class="nx">field</span><span class="p">.</span><span class="nx">css</span><span class="p">(</span><span class="s1">'width'</span><span class="p">,</span><span class="s1">'auto'</span><span class="p">)</span>
|
66
|
+
</pre></div> </td> </tr> <tr id="section-27"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-27">¶</a> </div> <p>Execute the ajax call to search for autocomplete data with a timer</p> </td> <td class="code"> <div class="highlight"><pre> <span class="vi">@timer = </span><span class="nx">setTimeout</span> <span class="o">-></span>
|
67
|
+
<span class="nx">chosenXhr</span><span class="p">.</span><span class="nx">abort</span><span class="p">()</span> <span class="k">if</span> <span class="nx">chosenXhr</span>
|
68
|
+
<span class="nv">chosenXhr = </span><span class="nx">$</span><span class="p">.</span><span class="nx">ajax</span><span class="p">(</span><span class="nx">options</span><span class="p">)</span>
|
69
|
+
<span class="p">,</span> <span class="nx">options</span><span class="p">.</span><span class="nx">afterTypeDelay</span>
|
70
|
+
|
71
|
+
</pre></div> </td> </tr> </tbody> </table> </div> </body> </html>
|
@@ -0,0 +1,186 @@
|
|
1
|
+
/*--------------------- Layout and Typography ----------------------------*/
|
2
|
+
body {
|
3
|
+
font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
|
4
|
+
font-size: 15px;
|
5
|
+
line-height: 22px;
|
6
|
+
color: #252519;
|
7
|
+
margin: 0; padding: 0;
|
8
|
+
}
|
9
|
+
a {
|
10
|
+
color: #261a3b;
|
11
|
+
}
|
12
|
+
a:visited {
|
13
|
+
color: #261a3b;
|
14
|
+
}
|
15
|
+
p {
|
16
|
+
margin: 0 0 15px 0;
|
17
|
+
}
|
18
|
+
h1, h2, h3, h4, h5, h6 {
|
19
|
+
margin: 0px 0 15px 0;
|
20
|
+
}
|
21
|
+
h1 {
|
22
|
+
margin-top: 40px;
|
23
|
+
}
|
24
|
+
#container {
|
25
|
+
position: relative;
|
26
|
+
}
|
27
|
+
#background {
|
28
|
+
position: fixed;
|
29
|
+
top: 0; left: 525px; right: 0; bottom: 0;
|
30
|
+
background: #f5f5ff;
|
31
|
+
border-left: 1px solid #e5e5ee;
|
32
|
+
z-index: -1;
|
33
|
+
}
|
34
|
+
#jump_to, #jump_page {
|
35
|
+
background: white;
|
36
|
+
-webkit-box-shadow: 0 0 25px #777; -moz-box-shadow: 0 0 25px #777;
|
37
|
+
-webkit-border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px;
|
38
|
+
font: 10px Arial;
|
39
|
+
text-transform: uppercase;
|
40
|
+
cursor: pointer;
|
41
|
+
text-align: right;
|
42
|
+
}
|
43
|
+
#jump_to, #jump_wrapper {
|
44
|
+
position: fixed;
|
45
|
+
right: 0; top: 0;
|
46
|
+
padding: 5px 10px;
|
47
|
+
}
|
48
|
+
#jump_wrapper {
|
49
|
+
padding: 0;
|
50
|
+
display: none;
|
51
|
+
}
|
52
|
+
#jump_to:hover #jump_wrapper {
|
53
|
+
display: block;
|
54
|
+
}
|
55
|
+
#jump_page {
|
56
|
+
padding: 5px 0 3px;
|
57
|
+
margin: 0 0 25px 25px;
|
58
|
+
}
|
59
|
+
#jump_page .source {
|
60
|
+
display: block;
|
61
|
+
padding: 5px 10px;
|
62
|
+
text-decoration: none;
|
63
|
+
border-top: 1px solid #eee;
|
64
|
+
}
|
65
|
+
#jump_page .source:hover {
|
66
|
+
background: #f5f5ff;
|
67
|
+
}
|
68
|
+
#jump_page .source:first-child {
|
69
|
+
}
|
70
|
+
table td {
|
71
|
+
border: 0;
|
72
|
+
outline: 0;
|
73
|
+
}
|
74
|
+
td.docs, th.docs {
|
75
|
+
max-width: 450px;
|
76
|
+
min-width: 450px;
|
77
|
+
min-height: 5px;
|
78
|
+
padding: 10px 25px 1px 50px;
|
79
|
+
overflow-x: hidden;
|
80
|
+
vertical-align: top;
|
81
|
+
text-align: left;
|
82
|
+
}
|
83
|
+
.docs pre {
|
84
|
+
margin: 15px 0 15px;
|
85
|
+
padding-left: 15px;
|
86
|
+
}
|
87
|
+
.docs p tt, .docs p code {
|
88
|
+
background: #f8f8ff;
|
89
|
+
border: 1px solid #dedede;
|
90
|
+
font-size: 12px;
|
91
|
+
padding: 0 0.2em;
|
92
|
+
}
|
93
|
+
.pilwrap {
|
94
|
+
position: relative;
|
95
|
+
}
|
96
|
+
.pilcrow {
|
97
|
+
font: 12px Arial;
|
98
|
+
text-decoration: none;
|
99
|
+
color: #454545;
|
100
|
+
position: absolute;
|
101
|
+
top: 3px; left: -20px;
|
102
|
+
padding: 1px 2px;
|
103
|
+
opacity: 0;
|
104
|
+
-webkit-transition: opacity 0.2s linear;
|
105
|
+
}
|
106
|
+
td.docs:hover .pilcrow {
|
107
|
+
opacity: 1;
|
108
|
+
}
|
109
|
+
td.code, th.code {
|
110
|
+
padding: 14px 15px 16px 25px;
|
111
|
+
width: 100%;
|
112
|
+
vertical-align: top;
|
113
|
+
background: #f5f5ff;
|
114
|
+
border-left: 1px solid #e5e5ee;
|
115
|
+
}
|
116
|
+
pre, tt, code {
|
117
|
+
font-size: 12px; line-height: 18px;
|
118
|
+
font-family: Monaco, Consolas, "Lucida Console", monospace;
|
119
|
+
margin: 0; padding: 0;
|
120
|
+
}
|
121
|
+
|
122
|
+
|
123
|
+
/*---------------------- Syntax Highlighting -----------------------------*/
|
124
|
+
td.linenos { background-color: #f0f0f0; padding-right: 10px; }
|
125
|
+
span.lineno { background-color: #f0f0f0; padding: 0 5px 0 5px; }
|
126
|
+
body .hll { background-color: #ffffcc }
|
127
|
+
body .c { color: #408080; font-style: italic } /* Comment */
|
128
|
+
body .err { border: 1px solid #FF0000 } /* Error */
|
129
|
+
body .k { color: #954121 } /* Keyword */
|
130
|
+
body .o { color: #666666 } /* Operator */
|
131
|
+
body .cm { color: #408080; font-style: italic } /* Comment.Multiline */
|
132
|
+
body .cp { color: #BC7A00 } /* Comment.Preproc */
|
133
|
+
body .c1 { color: #408080; font-style: italic } /* Comment.Single */
|
134
|
+
body .cs { color: #408080; font-style: italic } /* Comment.Special */
|
135
|
+
body .gd { color: #A00000 } /* Generic.Deleted */
|
136
|
+
body .ge { font-style: italic } /* Generic.Emph */
|
137
|
+
body .gr { color: #FF0000 } /* Generic.Error */
|
138
|
+
body .gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
139
|
+
body .gi { color: #00A000 } /* Generic.Inserted */
|
140
|
+
body .go { color: #808080 } /* Generic.Output */
|
141
|
+
body .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
|
142
|
+
body .gs { font-weight: bold } /* Generic.Strong */
|
143
|
+
body .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
144
|
+
body .gt { color: #0040D0 } /* Generic.Traceback */
|
145
|
+
body .kc { color: #954121 } /* Keyword.Constant */
|
146
|
+
body .kd { color: #954121; font-weight: bold } /* Keyword.Declaration */
|
147
|
+
body .kn { color: #954121; font-weight: bold } /* Keyword.Namespace */
|
148
|
+
body .kp { color: #954121 } /* Keyword.Pseudo */
|
149
|
+
body .kr { color: #954121; font-weight: bold } /* Keyword.Reserved */
|
150
|
+
body .kt { color: #B00040 } /* Keyword.Type */
|
151
|
+
body .m { color: #666666 } /* Literal.Number */
|
152
|
+
body .s { color: #219161 } /* Literal.String */
|
153
|
+
body .na { color: #7D9029 } /* Name.Attribute */
|
154
|
+
body .nb { color: #954121 } /* Name.Builtin */
|
155
|
+
body .nc { color: #0000FF; font-weight: bold } /* Name.Class */
|
156
|
+
body .no { color: #880000 } /* Name.Constant */
|
157
|
+
body .nd { color: #AA22FF } /* Name.Decorator */
|
158
|
+
body .ni { color: #999999; font-weight: bold } /* Name.Entity */
|
159
|
+
body .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
|
160
|
+
body .nf { color: #0000FF } /* Name.Function */
|
161
|
+
body .nl { color: #A0A000 } /* Name.Label */
|
162
|
+
body .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
|
163
|
+
body .nt { color: #954121; font-weight: bold } /* Name.Tag */
|
164
|
+
body .nv { color: #19469D } /* Name.Variable */
|
165
|
+
body .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
|
166
|
+
body .w { color: #bbbbbb } /* Text.Whitespace */
|
167
|
+
body .mf { color: #666666 } /* Literal.Number.Float */
|
168
|
+
body .mh { color: #666666 } /* Literal.Number.Hex */
|
169
|
+
body .mi { color: #666666 } /* Literal.Number.Integer */
|
170
|
+
body .mo { color: #666666 } /* Literal.Number.Oct */
|
171
|
+
body .sb { color: #219161 } /* Literal.String.Backtick */
|
172
|
+
body .sc { color: #219161 } /* Literal.String.Char */
|
173
|
+
body .sd { color: #219161; font-style: italic } /* Literal.String.Doc */
|
174
|
+
body .s2 { color: #219161 } /* Literal.String.Double */
|
175
|
+
body .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
|
176
|
+
body .sh { color: #219161 } /* Literal.String.Heredoc */
|
177
|
+
body .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
|
178
|
+
body .sx { color: #954121 } /* Literal.String.Other */
|
179
|
+
body .sr { color: #BB6688 } /* Literal.String.Regex */
|
180
|
+
body .s1 { color: #219161 } /* Literal.String.Single */
|
181
|
+
body .ss { color: #19469D } /* Literal.String.Symbol */
|
182
|
+
body .bp { color: #954121 } /* Name.Builtin.Pseudo */
|
183
|
+
body .vc { color: #19469D } /* Name.Variable.Class */
|
184
|
+
body .vg { color: #19469D } /* Name.Variable.Global */
|
185
|
+
body .vi { color: #19469D } /* Name.Variable.Instance */
|
186
|
+
body .il { color: #666666 } /* Literal.Number.Integer.Long */
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<title>Ajax-Chosen: Bootstrapping a Popular jQuery Plugin to add Ajax Autocomplete</title>
|
5
|
+
|
6
|
+
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
|
7
|
+
<script type="text/javascript" src="/dist/chosen/chosen/chosen.jquery.min.js"></script>
|
8
|
+
<script type="text/javascript" src="/lib/ajax-chosen.js"></script>
|
9
|
+
|
10
|
+
<link type="text/css" rel="stylesheet" href="/dist/chosen/chosen/chosen.css" />
|
11
|
+
|
12
|
+
<style type="text/css">
|
13
|
+
#example1, #example2, #example3 { width: 300px; display: block; }
|
14
|
+
</style>
|
15
|
+
|
16
|
+
<script type="text/javascript">
|
17
|
+
$(document).ready(function () {
|
18
|
+
$("#example1,#example2,#example3").ajaxChosen({
|
19
|
+
type: 'GET',
|
20
|
+
url: '/data.json',
|
21
|
+
dataType: 'json'
|
22
|
+
}, function (data) {
|
23
|
+
var terms = {};
|
24
|
+
|
25
|
+
$.each(data.states, function (i, val) {
|
26
|
+
terms[i] = val;
|
27
|
+
});
|
28
|
+
|
29
|
+
return terms;
|
30
|
+
});
|
31
|
+
});
|
32
|
+
</script>
|
33
|
+
</head>
|
34
|
+
<body>
|
35
|
+
<h1>Ajax-Chosen: Bootstrapping a jQuery Plugin</h1>
|
36
|
+
|
37
|
+
<div>
|
38
|
+
<h2>Multi Select</h2>
|
39
|
+
<select id="example1" title="Search for a state" multiple></select><br /><br />
|
40
|
+
<select id="example3" title="Search for a state" multiple></select>
|
41
|
+
</div>
|
42
|
+
<div>
|
43
|
+
<h2>Single Select</h2>
|
44
|
+
<select id="example2" title="Select for a state" search><option></option></select>
|
45
|
+
</div>
|
46
|
+
</body>
|
47
|
+
</html>
|
@@ -0,0 +1,159 @@
|
|
1
|
+
// Generated by CoffeeScript 1.6.1
|
2
|
+
|
3
|
+
(function($) {
|
4
|
+
var ajaxChosen, defaultOptions;
|
5
|
+
defaultOptions = {
|
6
|
+
minTermLength: 3,
|
7
|
+
afterTypeDelay: 500,
|
8
|
+
jsonTermKey: "term",
|
9
|
+
keepTypingMsg: "Keep typing...",
|
10
|
+
lookingForMsg: "Looking for"
|
11
|
+
};
|
12
|
+
return ajaxChosen = (function() {
|
13
|
+
|
14
|
+
function ajaxChosen(element, settings, callback, chosenOptions) {
|
15
|
+
var chosenXhr;
|
16
|
+
this.element = element;
|
17
|
+
chosenXhr = null;
|
18
|
+
this.callback_function = callback;
|
19
|
+
this.options = $.extend({}, defaultOptions, this.element.data(), settings);
|
20
|
+
this.success = settings.success;
|
21
|
+
this.element.chosen(chosenOptions ? chosenOptions : {});
|
22
|
+
this.search_field = this.element.next('.chosen-container').find(".search-field > input, .chosen-search > input");
|
23
|
+
this.register_observers();
|
24
|
+
}
|
25
|
+
|
26
|
+
ajaxChosen.prototype.register_observers = function() {
|
27
|
+
var _this = this;
|
28
|
+
this.search_field.keyup(function(evt) {
|
29
|
+
_this.update_list(evt);
|
30
|
+
});
|
31
|
+
return this.search_field.focus(function(evt) {
|
32
|
+
_this.search_field_focused(evt);
|
33
|
+
});
|
34
|
+
};
|
35
|
+
|
36
|
+
ajaxChosen.prototype.search_field_focused = function(evt) {
|
37
|
+
if (this.options.minTermLength === 0 && this.search_field.val().length === 0) {
|
38
|
+
return this.update_list(evt);
|
39
|
+
}
|
40
|
+
};
|
41
|
+
|
42
|
+
ajaxChosen.prototype.update_list = function(evt) {
|
43
|
+
var msg, options, val, _this;
|
44
|
+
this.untrimmed_val = this.search_field.val();
|
45
|
+
val = $.trim(this.search_field.val());
|
46
|
+
msg = val.length < this.options.minTermLength ? this.options.keepTypingMsg : this.options.lookingForMsg + (" '" + val + "'");
|
47
|
+
this.element.next('.chosen-container').find('.no-results').text(msg);
|
48
|
+
if (val === this.search_field.data('prevVal')) {
|
49
|
+
return false;
|
50
|
+
}
|
51
|
+
this.search_field.data('prevVal', val);
|
52
|
+
if (this.timer) {
|
53
|
+
clearTimeout(this.timer);
|
54
|
+
}
|
55
|
+
if (val.length < this.options.minTermLength) {
|
56
|
+
return false;
|
57
|
+
}
|
58
|
+
if (this.options.data == null) {
|
59
|
+
this.options.data = {};
|
60
|
+
}
|
61
|
+
this.options.data[this.options.jsonTermKey] = val;
|
62
|
+
if (this.options.dataCallback != null) {
|
63
|
+
this.options.data = this.options.dataCallback(this.options.data);
|
64
|
+
}
|
65
|
+
_this = this;
|
66
|
+
options = this.options;
|
67
|
+
options.success = function(data) {
|
68
|
+
return _this.show_results(data);
|
69
|
+
};
|
70
|
+
return this.timer = setTimeout(function() {
|
71
|
+
if (_this.chosenXhr) {
|
72
|
+
_this.chosenXhr.abort();
|
73
|
+
}
|
74
|
+
return _this.chosenXhr = $.ajax(options);
|
75
|
+
}, options.afterTypeDelay);
|
76
|
+
};
|
77
|
+
|
78
|
+
ajaxChosen.prototype.show_results = function(data) {
|
79
|
+
var items, nbItems, selected_values, _this;
|
80
|
+
if (data == null) {
|
81
|
+
return;
|
82
|
+
}
|
83
|
+
selected_values = [];
|
84
|
+
this.element.find('option').each(function() {
|
85
|
+
if (!$(this).is(":selected")) {
|
86
|
+
return $(this).remove();
|
87
|
+
} else {
|
88
|
+
return selected_values.push($(this).val() + "-" + $(this).text());
|
89
|
+
}
|
90
|
+
});
|
91
|
+
this.element.find('optgroup:empty').each(function() {
|
92
|
+
return $(this).remove();
|
93
|
+
});
|
94
|
+
items = this.callback_function != null ? this.callback_function(data, this.search_field) : data;
|
95
|
+
nbItems = 0;
|
96
|
+
_this = this;
|
97
|
+
$.each(items, function(i, element) {
|
98
|
+
var group, text, value;
|
99
|
+
nbItems++;
|
100
|
+
if (element.group) {
|
101
|
+
group = _this.element.find("optgroup[label='" + element.text + "']");
|
102
|
+
if (!group.size()) {
|
103
|
+
group = $("<optgroup />");
|
104
|
+
}
|
105
|
+
group.attr('label', element.text).appendTo(_this.element);
|
106
|
+
return $.each(element.items, function(i, element) {
|
107
|
+
var text, value;
|
108
|
+
if (typeof element === "string") {
|
109
|
+
value = i;
|
110
|
+
text = element;
|
111
|
+
} else {
|
112
|
+
value = element.value;
|
113
|
+
text = element.text;
|
114
|
+
}
|
115
|
+
if ($.inArray(value + "-" + text, selected_values) === -1) {
|
116
|
+
return $("<option />").attr('value', value).html(text).appendTo(group);
|
117
|
+
}
|
118
|
+
});
|
119
|
+
} else {
|
120
|
+
if (typeof element === "string") {
|
121
|
+
value = i;
|
122
|
+
text = element;
|
123
|
+
} else {
|
124
|
+
value = element.value;
|
125
|
+
text = element.text;
|
126
|
+
}
|
127
|
+
if ($.inArray(value + "-" + text, selected_values) === -1) {
|
128
|
+
return $("<option />").attr('value', value).html(text).appendTo(_this.element);
|
129
|
+
}
|
130
|
+
}
|
131
|
+
});
|
132
|
+
if (nbItems) {
|
133
|
+
this.element.trigger("chosen:updated");
|
134
|
+
} else {
|
135
|
+
this.element.data().chosen.no_results_clear();
|
136
|
+
this.element.data().chosen.no_results(this.search_field.val());
|
137
|
+
}
|
138
|
+
if (this.success != null) {
|
139
|
+
this.success(data);
|
140
|
+
}
|
141
|
+
return this.search_field.val(this.untrimmed_val);
|
142
|
+
};
|
143
|
+
|
144
|
+
$.fn.ajaxChosen = function(options, callback, chosenOptions) {
|
145
|
+
if (options == null) {
|
146
|
+
options = {};
|
147
|
+
}
|
148
|
+
if (chosenOptions == null) {
|
149
|
+
chosenOptions = {};
|
150
|
+
}
|
151
|
+
return this.each(function() {
|
152
|
+
return new ajaxChosen($(this), options, callback, chosenOptions);
|
153
|
+
});
|
154
|
+
};
|
155
|
+
|
156
|
+
return ajaxChosen;
|
157
|
+
|
158
|
+
})();
|
159
|
+
})(jQuery);
|