TokiCLI 0.1.1 → 0.2.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 +4 -4
- data/.gitignore +2 -0
- data/CHANGELOG.md +7 -0
- data/README.md +56 -10
- data/TokiCLI.gemspec +5 -2
- data/lib/API/dbapi.rb +104 -67
- data/lib/API/helpers.rb +47 -3
- data/lib/TokiCLI/app.rb +88 -12
- data/lib/TokiCLI/version.rb +1 -1
- data/lib/TokiCLI/view.rb +5 -1
- data/lib/TokiServer/Gemfile +6 -0
- data/lib/TokiServer/README.md +37 -0
- data/lib/TokiServer/bower.json +8 -0
- data/lib/TokiServer/bower_components/fastclick/.bower.json +23 -0
- data/lib/TokiServer/bower_components/fastclick/LICENSE +22 -0
- data/lib/TokiServer/bower_components/fastclick/README.md +133 -0
- data/lib/TokiServer/bower_components/fastclick/bower.json +13 -0
- data/lib/TokiServer/bower_components/fastclick/lib/fastclick.js +790 -0
- data/lib/TokiServer/bower_components/foundation/.bower.json +30 -0
- data/lib/TokiServer/bower_components/foundation/bower.json +20 -0
- data/lib/TokiServer/bower_components/foundation/css/foundation.css +4860 -0
- data/lib/TokiServer/bower_components/foundation/css/normalize.css +320 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation.js +5543 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation.min.js +3 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation/foundation.abide.js +299 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation/foundation.accordion.js +59 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation/foundation.alert.js +43 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation/foundation.clearing.js +534 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation/foundation.dropdown.js +311 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation/foundation.equalizer.js +74 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation/foundation.interchange.js +331 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation/foundation.joyride.js +843 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation/foundation.js +611 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation/foundation.magellan.js +178 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation/foundation.offcanvas.js +108 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation/foundation.orbit.js +610 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation/foundation.reveal.js +437 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation/foundation.slider.js +199 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation/foundation.tab.js +167 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation/foundation.tooltip.js +298 -0
- data/lib/TokiServer/bower_components/foundation/js/foundation/foundation.topbar.js +425 -0
- data/lib/TokiServer/bower_components/foundation/js/vendor/fastclick.js +9 -0
- data/lib/TokiServer/bower_components/foundation/js/vendor/jquery.cookie.js +8 -0
- data/lib/TokiServer/bower_components/foundation/js/vendor/jquery.js +26 -0
- data/lib/TokiServer/bower_components/foundation/js/vendor/modernizr.js +8 -0
- data/lib/TokiServer/bower_components/foundation/js/vendor/placeholder.js +2 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation.scss +45 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/_functions.scss +101 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/_settings.scss +1289 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_accordion.scss +53 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_alert-boxes.scss +126 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_block-grid.scss +132 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_breadcrumbs.scss +127 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_button-groups.scss +108 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_buttons.scss +222 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_clearing.scss +247 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_dropdown-buttons.scss +129 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_dropdown.scss +248 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_flex-video.scss +51 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_forms.scss +498 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_global.scss +429 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_grid.scss +260 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_inline-lists.scss +57 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_joyride.scss +220 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_keystrokes.scss +61 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_labels.scss +104 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_magellan.scss +34 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_offcanvas.scss +355 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_orbit.scss +423 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_pagination.scss +150 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_panels.scss +90 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_pricing-tables.scss +150 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_progress-bars.scss +79 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_range-slider.scss +148 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_reveal-new.scss +0 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_reveal.scss +216 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_side-nav.scss +115 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_split-buttons.scss +191 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_sub-nav.scss +125 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_switch.scss +294 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_tables.scss +129 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_tabs.scss +109 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_thumbs.scss +68 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_tooltips.scss +140 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_top-bar.scss +644 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_type.scss +511 -0
- data/lib/TokiServer/bower_components/foundation/scss/foundation/components/_visibility.scss +408 -0
- data/lib/TokiServer/bower_components/foundation/scss/normalize.scss +425 -0
- data/lib/TokiServer/bower_components/jquery-placeholder/.bower.json +17 -0
- data/lib/TokiServer/bower_components/jquery-placeholder/.gitattributes +1 -0
- data/lib/TokiServer/bower_components/jquery-placeholder/.gitignore +1 -0
- data/lib/TokiServer/bower_components/jquery-placeholder/LICENSE-MIT.txt +20 -0
- data/lib/TokiServer/bower_components/jquery-placeholder/README.md +76 -0
- data/lib/TokiServer/bower_components/jquery-placeholder/bower.json +5 -0
- data/lib/TokiServer/bower_components/jquery-placeholder/demo.html +55 -0
- data/lib/TokiServer/bower_components/jquery-placeholder/jquery.placeholder.js +185 -0
- data/lib/TokiServer/bower_components/jquery-placeholder/tests/index.html +32 -0
- data/lib/TokiServer/bower_components/jquery-placeholder/tests/tests.js +134 -0
- data/lib/TokiServer/bower_components/jquery.cookie/.bower.json +28 -0
- data/lib/TokiServer/bower_components/jquery.cookie/jquery.cookie.js +117 -0
- data/lib/TokiServer/bower_components/jquery/.bower.json +37 -0
- data/lib/TokiServer/bower_components/jquery/MIT-LICENSE.txt +21 -0
- data/lib/TokiServer/bower_components/jquery/bower.json +27 -0
- data/lib/TokiServer/bower_components/jquery/dist/jquery.js +9190 -0
- data/lib/TokiServer/bower_components/jquery/dist/jquery.min.js +5 -0
- data/lib/TokiServer/bower_components/jquery/dist/jquery.min.map +1 -0
- data/lib/TokiServer/bower_components/jquery/src/ajax.js +806 -0
- data/lib/TokiServer/bower_components/jquery/src/ajax/jsonp.js +89 -0
- data/lib/TokiServer/bower_components/jquery/src/ajax/load.js +75 -0
- data/lib/TokiServer/bower_components/jquery/src/ajax/parseJSON.js +13 -0
- data/lib/TokiServer/bower_components/jquery/src/ajax/parseXML.js +28 -0
- data/lib/TokiServer/bower_components/jquery/src/ajax/script.js +64 -0
- data/lib/TokiServer/bower_components/jquery/src/ajax/var/nonce.js +5 -0
- data/lib/TokiServer/bower_components/jquery/src/ajax/var/rquery.js +3 -0
- data/lib/TokiServer/bower_components/jquery/src/ajax/xhr.js +135 -0
- data/lib/TokiServer/bower_components/jquery/src/attributes.js +11 -0
- data/lib/TokiServer/bower_components/jquery/src/attributes/attr.js +143 -0
- data/lib/TokiServer/bower_components/jquery/src/attributes/classes.js +158 -0
- data/lib/TokiServer/bower_components/jquery/src/attributes/prop.js +96 -0
- data/lib/TokiServer/bower_components/jquery/src/attributes/support.js +35 -0
- data/lib/TokiServer/bower_components/jquery/src/attributes/val.js +163 -0
- data/lib/TokiServer/bower_components/jquery/src/callbacks.js +205 -0
- data/lib/TokiServer/bower_components/jquery/src/core.js +498 -0
- data/lib/TokiServer/bower_components/jquery/src/core/access.js +60 -0
- data/lib/TokiServer/bower_components/jquery/src/core/init.js +123 -0
- data/lib/TokiServer/bower_components/jquery/src/core/parseHTML.js +39 -0
- data/lib/TokiServer/bower_components/jquery/src/core/ready.js +97 -0
- data/lib/TokiServer/bower_components/jquery/src/core/var/rsingleTag.js +4 -0
- data/lib/TokiServer/bower_components/jquery/src/css.js +451 -0
- data/lib/TokiServer/bower_components/jquery/src/css/addGetHookIf.js +24 -0
- data/lib/TokiServer/bower_components/jquery/src/css/curCSS.js +57 -0
- data/lib/TokiServer/bower_components/jquery/src/css/defaultDisplay.js +70 -0
- data/lib/TokiServer/bower_components/jquery/src/css/hiddenVisibleSelectors.js +15 -0
- data/lib/TokiServer/bower_components/jquery/src/css/support.js +91 -0
- data/lib/TokiServer/bower_components/jquery/src/css/swap.js +28 -0
- data/lib/TokiServer/bower_components/jquery/src/css/var/cssExpand.js +3 -0
- data/lib/TokiServer/bower_components/jquery/src/css/var/getStyles.js +5 -0
- data/lib/TokiServer/bower_components/jquery/src/css/var/isHidden.js +13 -0
- data/lib/TokiServer/bower_components/jquery/src/css/var/rmargin.js +3 -0
- data/lib/TokiServer/bower_components/jquery/src/css/var/rnumnonpx.js +5 -0
- data/lib/TokiServer/bower_components/jquery/src/data.js +179 -0
- data/lib/TokiServer/bower_components/jquery/src/data/Data.js +181 -0
- data/lib/TokiServer/bower_components/jquery/src/data/accepts.js +20 -0
- data/lib/TokiServer/bower_components/jquery/src/data/var/data_priv.js +5 -0
- data/lib/TokiServer/bower_components/jquery/src/data/var/data_user.js +5 -0
- data/lib/TokiServer/bower_components/jquery/src/deferred.js +149 -0
- data/lib/TokiServer/bower_components/jquery/src/deprecated.js +13 -0
- data/lib/TokiServer/bower_components/jquery/src/dimensions.js +50 -0
- data/lib/TokiServer/bower_components/jquery/src/effects.js +649 -0
- data/lib/TokiServer/bower_components/jquery/src/effects/Tween.js +114 -0
- data/lib/TokiServer/bower_components/jquery/src/effects/animatedSelector.js +13 -0
- data/lib/TokiServer/bower_components/jquery/src/event.js +868 -0
- data/lib/TokiServer/bower_components/jquery/src/event/alias.js +39 -0
- data/lib/TokiServer/bower_components/jquery/src/event/support.js +9 -0
- data/lib/TokiServer/bower_components/jquery/src/exports/amd.js +24 -0
- data/lib/TokiServer/bower_components/jquery/src/exports/global.js +32 -0
- data/lib/TokiServer/bower_components/jquery/src/intro.js +44 -0
- data/lib/TokiServer/bower_components/jquery/src/jquery.js +36 -0
- data/lib/TokiServer/bower_components/jquery/src/manipulation.js +582 -0
- data/lib/TokiServer/bower_components/jquery/src/manipulation/_evalUrl.js +18 -0
- data/lib/TokiServer/bower_components/jquery/src/manipulation/support.js +31 -0
- data/lib/TokiServer/bower_components/jquery/src/manipulation/var/rcheckableType.js +3 -0
- data/lib/TokiServer/bower_components/jquery/src/offset.js +204 -0
- data/lib/TokiServer/bower_components/jquery/src/outro.js +1 -0
- data/lib/TokiServer/bower_components/jquery/src/queue.js +142 -0
- data/lib/TokiServer/bower_components/jquery/src/queue/delay.js +22 -0
- data/lib/TokiServer/bower_components/jquery/src/selector-native.js +172 -0
- data/lib/TokiServer/bower_components/jquery/src/selector-sizzle.js +14 -0
- data/lib/TokiServer/bower_components/jquery/src/selector.js +1 -0
- data/lib/TokiServer/bower_components/jquery/src/serialize.js +111 -0
- data/lib/TokiServer/bower_components/jquery/src/sizzle/dist/sizzle.js +2044 -0
- data/lib/TokiServer/bower_components/jquery/src/sizzle/dist/sizzle.min.js +3 -0
- data/lib/TokiServer/bower_components/jquery/src/sizzle/dist/sizzle.min.map +1 -0
- data/lib/TokiServer/bower_components/jquery/src/traversing.js +200 -0
- data/lib/TokiServer/bower_components/jquery/src/traversing/findFilter.js +100 -0
- data/lib/TokiServer/bower_components/jquery/src/traversing/var/rneedsContext.js +6 -0
- data/lib/TokiServer/bower_components/jquery/src/var/arr.js +3 -0
- data/lib/TokiServer/bower_components/jquery/src/var/class2type.js +4 -0
- data/lib/TokiServer/bower_components/jquery/src/var/concat.js +5 -0
- data/lib/TokiServer/bower_components/jquery/src/var/hasOwn.js +5 -0
- data/lib/TokiServer/bower_components/jquery/src/var/indexOf.js +5 -0
- data/lib/TokiServer/bower_components/jquery/src/var/pnum.js +3 -0
- data/lib/TokiServer/bower_components/jquery/src/var/push.js +5 -0
- data/lib/TokiServer/bower_components/jquery/src/var/rnotwhite.js +3 -0
- data/lib/TokiServer/bower_components/jquery/src/var/slice.js +5 -0
- data/lib/TokiServer/bower_components/jquery/src/var/strundefined.js +3 -0
- data/lib/TokiServer/bower_components/jquery/src/var/support.js +4 -0
- data/lib/TokiServer/bower_components/jquery/src/var/toString.js +5 -0
- data/lib/TokiServer/bower_components/jquery/src/wrap.js +78 -0
- data/lib/TokiServer/bower_components/modernizr/.bower.json +14 -0
- data/lib/TokiServer/bower_components/modernizr/.editorconfig +10 -0
- data/lib/TokiServer/bower_components/modernizr/.gitignore +2 -0
- data/lib/TokiServer/bower_components/modernizr/.travis.yml +6 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/a-download.js +8 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/audio-audiodata-api.js +4 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/audio-webaudio-api.js +4 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/battery-api.js +8 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/battery-level.js +11 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/blob-constructor.js +10 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/canvas-todataurl-type.js +28 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/contenteditable.js +9 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/contentsecuritypolicy.js +10 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/contextmenu.js +11 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/cookies.js +15 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/cors.js +3 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-backgroundposition-shorthand.js +19 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-backgroundposition-xy.js +15 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-backgroundrepeat.js +31 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-backgroundsizecover.js +10 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-boxsizing.js +9 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-calc.js +12 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-cubicbezierrange.js +8 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-displayrunin.js +18 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-displaytable.js +27 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-filters.js +7 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-hyphens.js +205 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-lastchild.js +11 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-mask.js +12 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-mediaqueries.js +3 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-objectfit.js +6 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-overflow-scrolling.js +9 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-pointerevents.js +25 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-positionsticky.js +13 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-regions.js +55 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-remunit.js +19 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-resize.js +8 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-scrollbars.js +19 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-shapes.js +4 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-subpixelfont.js +23 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-supports.js +6 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-userselect.js +10 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-vhunit.js +14 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-vmaxunit.js +14 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-vminunit.js +14 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/css-vwunit.js +14 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/custom-protocol-handler.js +10 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/dart.js +6 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/dataview-api.js +4 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/dom-classlist.js +4 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/dom-createElement-attrs.js +11 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/dom-dataset.js +9 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/dom-microdata.js +4 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/elem-datalist.js +12 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/elem-details.js +25 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/elem-output.js +4 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/elem-progress-meter.js +11 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/elem-ruby.js +53 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/elem-time.js +4 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/elem-track.js +11 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/emoji.js +11 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/es5-strictmode.js +7 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/event-deviceorientation-motion.js +11 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/exif-orientation.js +32 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/file-api.js +12 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/file-filesystem.js +9 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/forms-fileinput.js +13 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/forms-formattribute.js +29 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/forms-inputnumber-l10n.js +32 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/forms-placeholder.js +10 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/forms-speechinput.js +19 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/forms-validation.js +62 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/fullscreen-api.js +10 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/gamepad.js +12 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/getusermedia.js +5 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/ie8compat.js +12 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/iframe-sandbox.js +5 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/iframe-seamless.js +5 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/iframe-srcdoc.js +5 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/img-apng.js +26 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/img-webp.js +20 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/json.js +7 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/lists-reversed.js +6 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/mathml.js +23 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/network-connection.js +22 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/network-eventsource.js +5 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/network-xhr2.js +13 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/notification.js +10 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/performance.js +5 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/pointerlock-api.js +4 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/quota-management-api.js +11 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/requestanimationframe.js +7 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/script-async.js +3 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/script-defer.js +3 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/style-scoped.js +6 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/svg-filters.js +13 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/unicode.js +32 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/url-data-uri.js +26 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/userdata.js +7 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/vibration.js +4 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/web-intents.js +6 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/webgl-extensions.js +42 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/websockets-binary.js +20 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/window-framed.js +8 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/workers-blobworkers.js +66 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/workers-dataworkers.js +34 -0
- data/lib/TokiServer/bower_components/modernizr/feature-detects/workers-sharedworkers.js +3 -0
- data/lib/TokiServer/bower_components/modernizr/grunt.js +69 -0
- data/lib/TokiServer/bower_components/modernizr/media/Modernizr 2 Logo.ai +292 -1
- data/lib/TokiServer/bower_components/modernizr/media/Modernizr 2 Logo.eps +0 -0
- data/lib/TokiServer/bower_components/modernizr/media/Modernizr 2 Logo.pdf +292 -1
- data/lib/TokiServer/bower_components/modernizr/media/Modernizr 2 Logo.png +0 -0
- data/lib/TokiServer/bower_components/modernizr/media/Modernizr 2 Logo.svg +35 -0
- data/lib/TokiServer/bower_components/modernizr/modernizr.js +1406 -0
- data/lib/TokiServer/bower_components/modernizr/readme.md +28 -0
- data/lib/TokiServer/bower_components/modernizr/test/basic.html +65 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse.html +1451 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/Windsong-webfont.eot +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/Windsong-webfont.otf +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/Windsong-webfont.svg +147 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/Windsong-webfont.ttf +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/Windsong-webfont.woff +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/alpha.png +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/apng_test.png +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/before-after.png +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/form_validation.html +15 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/ga.js +43 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/green5x5.png +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/hashchange.html +16 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/jquery.min.js +18 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/mathml.html +120 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/mathml_ref.png +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/modernizr-1.7.min.js +2 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/png_alpha_result.png +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/pushstate.html +40 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/red30x30.png +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/ruby.png +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/stroked-text.png +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/style.css +168 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/svg-html-blur.png +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/svg-img.svg +5 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/svg-img.svg.1 +5 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/svg_blur.png +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/table.png +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/text-shadow1.png +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/text-shadow2.png +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/windsong_font.png +0 -0
- data/lib/TokiServer/bower_components/modernizr/test/caniuse_files/xhtml.html +14 -0
- data/lib/TokiServer/bower_components/modernizr/test/index.html +104 -0
- data/lib/TokiServer/bower_components/modernizr/test/js/basic.html +65 -0
- data/lib/TokiServer/bower_components/modernizr/test/js/dumpdata.js +75 -0
- data/lib/TokiServer/bower_components/modernizr/test/js/lib/detect-global.js +153 -0
- data/lib/TokiServer/bower_components/modernizr/test/js/lib/jquery-1.7b2.js +9279 -0
- data/lib/TokiServer/bower_components/modernizr/test/js/lib/jsonselect.js +279 -0
- data/lib/TokiServer/bower_components/modernizr/test/js/lib/polyfills.js +96 -0
- data/lib/TokiServer/bower_components/modernizr/test/js/lib/uaparser.js +215 -0
- data/lib/TokiServer/bower_components/modernizr/test/js/setup.js +44 -0
- data/lib/TokiServer/bower_components/modernizr/test/js/unit-caniuse.js +191 -0
- data/lib/TokiServer/bower_components/modernizr/test/js/unit.js +669 -0
- data/lib/TokiServer/bower_components/modernizr/test/qunit/qunit.css +231 -0
- data/lib/TokiServer/bower_components/modernizr/test/qunit/qunit.js +1932 -0
- data/lib/TokiServer/bower_components/modernizr/test/qunit/run-qunit.js +72 -0
- data/lib/TokiServer/config.rb +25 -0
- data/lib/TokiServer/humans.txt +8 -0
- data/lib/TokiServer/itunesicon.rb +60 -0
- data/lib/TokiServer/js/app.js +3 -0
- data/lib/TokiServer/public/stylesheets/app.css +8094 -0
- data/lib/TokiServer/robots.txt +4 -0
- data/lib/TokiServer/scss/_settings.scss +1240 -0
- data/lib/TokiServer/scss/app.scss +102 -0
- data/lib/TokiServer/tokiserver.rb +377 -0
- data/lib/TokiServer/views/apps_total.erb +28 -0
- data/lib/TokiServer/views/error.erb +25 -0
- data/lib/TokiServer/views/index.erb +191 -0
- data/lib/TokiServer/views/layout.erb +20 -0
- data/lib/TokiServer/views/name_log.erb +50 -0
- data/lib/TokiServer/views/name_split.erb +37 -0
- data/lib/TokiServer/views/name_total.erb +34 -0
- metadata +416 -4
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "jquery-placeholder",
|
|
3
|
+
"version": "2.0.8",
|
|
4
|
+
"main": [
|
|
5
|
+
"jquery.placeholder.js"
|
|
6
|
+
],
|
|
7
|
+
"homepage": "https://github.com/mathiasbynens/jquery-placeholder",
|
|
8
|
+
"_release": "2.0.8",
|
|
9
|
+
"_resolution": {
|
|
10
|
+
"type": "version",
|
|
11
|
+
"tag": "v2.0.8",
|
|
12
|
+
"commit": "051f21ef5279f4887d9caf6af7af211d933ba670"
|
|
13
|
+
},
|
|
14
|
+
"_source": "git://github.com/mathiasbynens/jquery-placeholder.git",
|
|
15
|
+
"_target": "~2.0.7",
|
|
16
|
+
"_originalSource": "jquery-placeholder"
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* eol=lf
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.DS_Store
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Copyright Mathias Bynens <http://mathiasbynens.be/>
|
|
2
|
+
|
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
4
|
+
a copy of this software and associated documentation files (the
|
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
9
|
+
the following conditions:
|
|
10
|
+
|
|
11
|
+
The above copyright notice and this permission notice shall be
|
|
12
|
+
included in all copies or substantial portions of the Software.
|
|
13
|
+
|
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# HTML5 Placeholder jQuery Plugin
|
|
2
|
+
|
|
3
|
+
## Demo & Examples
|
|
4
|
+
|
|
5
|
+
[http://mathiasbynens.be/demo/placeholder](http://mathiasbynens.be/demo/placeholder)
|
|
6
|
+
|
|
7
|
+
## Example Usage
|
|
8
|
+
|
|
9
|
+
### HTML
|
|
10
|
+
|
|
11
|
+
```html
|
|
12
|
+
<input type="text" name="name" placeholder="e.g. John Doe">
|
|
13
|
+
<input type="email" name="email" placeholder="e.g. address@example.ext">
|
|
14
|
+
<input type="url" name="url" placeholder="e.g. http://mathiasbynens.be/">
|
|
15
|
+
<input type="tel" name="tel" placeholder="e.g. +32 472 77 69 88">
|
|
16
|
+
<input type="password" name="password" placeholder="e.g. h4x0rpr00fz">
|
|
17
|
+
<input type="search" name="search" placeholder="Search this site…">
|
|
18
|
+
<textarea name="message" placeholder="Your message goes here"></textarea>
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### jQuery
|
|
22
|
+
|
|
23
|
+
Use the plugin as follows:
|
|
24
|
+
|
|
25
|
+
```js
|
|
26
|
+
$('input, textarea').placeholder();
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
You’ll still be able to use `jQuery#val()` to get and set the input values. If the element is currently showing a placeholder, `.val()` will return an empty string instead of the placeholder text, just like it does in browsers with a native `@placeholder` implementation. Calling `.val('')` to set an element’s value to the empty string will result in the placeholder text (re)appearing.
|
|
30
|
+
|
|
31
|
+
### CSS
|
|
32
|
+
|
|
33
|
+
The plugin automatically adds `class="placeholder"` to the elements who are currently showing their placeholder text. You can use this to style placeholder text differently:
|
|
34
|
+
|
|
35
|
+
```css
|
|
36
|
+
input, textarea { color: #000; }
|
|
37
|
+
.placeholder { color: #aaa; }
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
I’d suggest sticking to the `#aaa` color for placeholder text, as it’s the default in most browsers that support `@placeholder`. If you really want to, though, you can [style the placeholder text in some of the browsers that natively support it](http://stackoverflow.com/questions/2610497/change-an-inputs-html5-placeholder-color-with-css/2610741#2610741).
|
|
41
|
+
|
|
42
|
+
## Installation
|
|
43
|
+
|
|
44
|
+
You can install jquery-placeholder by using [Bower](http://bower.io).
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
bower install jquery-placeholder
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Notes
|
|
51
|
+
|
|
52
|
+
* Requires jQuery 1.6+. For an older version of this plugin that works under jQuery 1.4.2+, see [v1.8.7](https://github.com/mathiasbynens/jquery-placeholder/tree/v1.8.7).
|
|
53
|
+
* Works in all A-grade browsers, including IE6.
|
|
54
|
+
* Automatically checks if the browser natively supports the HTML5 `placeholder` attribute for `input` and `textarea` elements. If this is the case, the plugin won’t do anything. If `@placeholder` is only supported for `input` elements, the plugin will leave those alone and apply to `textarea`s exclusively. (This is the case for Safari 4, Opera 11.00, and possibly other browsers.)
|
|
55
|
+
* Caches the results of its two feature tests in `jQuery.fn.placeholder.input` and `jQuery.fn.placeholder.textarea`. For example, if `@placeholder` is natively supported for `input` elements, `jQuery.fn.placeholder.input` will be `true`. After loading the plugin, you can re-use these properties in your own code.
|
|
56
|
+
* Makes sure it never causes duplicate IDs in your DOM, even in browsers that need an extra `input` element to fake `@placeholder` for password inputs. This means you can safely do stuff like:
|
|
57
|
+
|
|
58
|
+
```html
|
|
59
|
+
<label for="bar">Example label</label>
|
|
60
|
+
<input type="password" placeholder="foo" id="bar">
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
And the `<label>` will always point to the `<input>` element you’d expect. Also, all CSS styles based on the ID will just work™.
|
|
64
|
+
|
|
65
|
+
## License
|
|
66
|
+
|
|
67
|
+
This plugin is available under [the MIT license](http://mths.be/mit).
|
|
68
|
+
|
|
69
|
+
## Thanks to…
|
|
70
|
+
|
|
71
|
+
* [Paul Irish](http://paulirish.com/) for his inspiring snippet in [jQuery 1.4 Hawtness #1](http://jquery14.com/day-05/jquery-1-4-hawtness-1-with-paul-irish)
|
|
72
|
+
* everyone from [#jquery](http://webchat.freenode.net/?channels=jquery) for the tips, ideas and patches
|
|
73
|
+
* temp01 for his major contributions
|
|
74
|
+
* anyone who [contributed a patch](https://github.com/mathiasbynens/jquery-placeholder/contributors) or [made a helpful suggestion](https://github.com/mathiasbynens/jquery-placeholder/issues)
|
|
75
|
+
|
|
76
|
+
_– [Mathias](http://mathiasbynens.be/)_
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<!-- If you’re looking for the online demo, it’s here: http://mathiasbynens.be/demo/placeholder -->
|
|
3
|
+
<html lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<meta charset="utf-8">
|
|
6
|
+
<title>HTML5 placeholder jQuery Plugin</title>
|
|
7
|
+
<style>
|
|
8
|
+
body, input, textarea { font: 1em/1.4 Helvetica, Arial; }
|
|
9
|
+
label code { cursor: pointer; float: left; width: 150px; }
|
|
10
|
+
input { width: 14em; }
|
|
11
|
+
textarea { height: 5em; width: 20em; }
|
|
12
|
+
.placeholder { color: #aaa; }
|
|
13
|
+
.note { border: 1px solid orange; padding: 1em; background: #ffffe0; }
|
|
14
|
+
/* #p { background: lime; } */
|
|
15
|
+
</style>
|
|
16
|
+
</head>
|
|
17
|
+
<body>
|
|
18
|
+
<h1>HTML5 Placeholder jQuery Plugin</h1>
|
|
19
|
+
<p>Check out <a href="http://mths.be/placeholder">the HTML5 Placeholder jQuery Plugin project page on GitHub</a>.</p>
|
|
20
|
+
<pre><code>$(function() {<br> $('input, textarea').placeholder();<br>});</code></pre>
|
|
21
|
+
<form>
|
|
22
|
+
<p><label><code>type=search</code> <input type="search" name="search" placeholder="Search this site…"></label></p>
|
|
23
|
+
<p><label><code>type=text</code> <input type="text" name="name" placeholder="e.g. John Doe"></label></p>
|
|
24
|
+
<p><label><code>type=email</code> <input type="email" name="email" placeholder="e.g. address@example.ext"></label></p>
|
|
25
|
+
<p><label><code>type=url</code> <input type="url" name="url" placeholder="e.g. http://mathiasbynens.be/"></label></p>
|
|
26
|
+
<p><label><code>type=tel</code> <input type="tel" name="tel" placeholder="e.g. +32 472 77 69 88"></label></p>
|
|
27
|
+
<p><label for="p"><code>type=password</code> </label><input type="password" name="password" placeholder="e.g. hunter2" id="p"></p>
|
|
28
|
+
<p><label><code>textarea</code> <textarea name="message" placeholder="Your message goes here"></textarea></label></p>
|
|
29
|
+
<p><input type="submit" value="type=submit"></p>
|
|
30
|
+
</form>
|
|
31
|
+
<p>— <a href="http://mathiasbynens.be/" title="Mathias Bynens, front-end developer">Mathias</a></p>
|
|
32
|
+
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
|
|
33
|
+
<script src="jquery.placeholder.js"></script>
|
|
34
|
+
<script>
|
|
35
|
+
// To test the @id toggling on password inputs in browsers that don’t support changing an input’s @type dynamically (e.g. Firefox 3.6 or IE), uncomment this:
|
|
36
|
+
// $.fn.hide = function() { return this; }
|
|
37
|
+
// Then uncomment the last rule in the <style> element (in the <head>).
|
|
38
|
+
$(function() {
|
|
39
|
+
// Invoke the plugin
|
|
40
|
+
$('input, textarea').placeholder();
|
|
41
|
+
// That’s it, really.
|
|
42
|
+
// Now display a message if the browser supports placeholder natively
|
|
43
|
+
var html;
|
|
44
|
+
if ($.fn.placeholder.input && $.fn.placeholder.textarea) {
|
|
45
|
+
html = '<strong>Your current browser natively supports <code>placeholder</code> for <code>input</code> and <code>textarea</code> elements.</strong> The plugin won’t run in this case, since it’s not needed. If you want to test the plugin, use an older browser ;)';
|
|
46
|
+
} else if ($.fn.placeholder.input) {
|
|
47
|
+
html = '<strong>Your current browser natively supports <code>placeholder</code> for <code>input</code> elements, but not for <code>textarea</code> elements.</strong> The plugin will only do its thang on the <code>textarea</code>s.';
|
|
48
|
+
}
|
|
49
|
+
if (html) {
|
|
50
|
+
$('<p class="note">' + html + '</p>').insertAfter('form');
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
</script>
|
|
54
|
+
</body>
|
|
55
|
+
</html>
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/*! http://mths.be/placeholder v2.0.8 by @mathias */
|
|
2
|
+
;(function(window, document, $) {
|
|
3
|
+
|
|
4
|
+
// Opera Mini v7 doesn’t support placeholder although its DOM seems to indicate so
|
|
5
|
+
var isOperaMini = Object.prototype.toString.call(window.operamini) == '[object OperaMini]';
|
|
6
|
+
var isInputSupported = 'placeholder' in document.createElement('input') && !isOperaMini;
|
|
7
|
+
var isTextareaSupported = 'placeholder' in document.createElement('textarea') && !isOperaMini;
|
|
8
|
+
var prototype = $.fn;
|
|
9
|
+
var valHooks = $.valHooks;
|
|
10
|
+
var propHooks = $.propHooks;
|
|
11
|
+
var hooks;
|
|
12
|
+
var placeholder;
|
|
13
|
+
|
|
14
|
+
if (isInputSupported && isTextareaSupported) {
|
|
15
|
+
|
|
16
|
+
placeholder = prototype.placeholder = function() {
|
|
17
|
+
return this;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
placeholder.input = placeholder.textarea = true;
|
|
21
|
+
|
|
22
|
+
} else {
|
|
23
|
+
|
|
24
|
+
placeholder = prototype.placeholder = function() {
|
|
25
|
+
var $this = this;
|
|
26
|
+
$this
|
|
27
|
+
.filter((isInputSupported ? 'textarea' : ':input') + '[placeholder]')
|
|
28
|
+
.not('.placeholder')
|
|
29
|
+
.bind({
|
|
30
|
+
'focus.placeholder': clearPlaceholder,
|
|
31
|
+
'blur.placeholder': setPlaceholder
|
|
32
|
+
})
|
|
33
|
+
.data('placeholder-enabled', true)
|
|
34
|
+
.trigger('blur.placeholder');
|
|
35
|
+
return $this;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
placeholder.input = isInputSupported;
|
|
39
|
+
placeholder.textarea = isTextareaSupported;
|
|
40
|
+
|
|
41
|
+
hooks = {
|
|
42
|
+
'get': function(element) {
|
|
43
|
+
var $element = $(element);
|
|
44
|
+
|
|
45
|
+
var $passwordInput = $element.data('placeholder-password');
|
|
46
|
+
if ($passwordInput) {
|
|
47
|
+
return $passwordInput[0].value;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return $element.data('placeholder-enabled') && $element.hasClass('placeholder') ? '' : element.value;
|
|
51
|
+
},
|
|
52
|
+
'set': function(element, value) {
|
|
53
|
+
var $element = $(element);
|
|
54
|
+
|
|
55
|
+
var $passwordInput = $element.data('placeholder-password');
|
|
56
|
+
if ($passwordInput) {
|
|
57
|
+
return $passwordInput[0].value = value;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (!$element.data('placeholder-enabled')) {
|
|
61
|
+
return element.value = value;
|
|
62
|
+
}
|
|
63
|
+
if (value == '') {
|
|
64
|
+
element.value = value;
|
|
65
|
+
// Issue #56: Setting the placeholder causes problems if the element continues to have focus.
|
|
66
|
+
if (element != safeActiveElement()) {
|
|
67
|
+
// We can't use `triggerHandler` here because of dummy text/password inputs :(
|
|
68
|
+
setPlaceholder.call(element);
|
|
69
|
+
}
|
|
70
|
+
} else if ($element.hasClass('placeholder')) {
|
|
71
|
+
clearPlaceholder.call(element, true, value) || (element.value = value);
|
|
72
|
+
} else {
|
|
73
|
+
element.value = value;
|
|
74
|
+
}
|
|
75
|
+
// `set` can not return `undefined`; see http://jsapi.info/jquery/1.7.1/val#L2363
|
|
76
|
+
return $element;
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
if (!isInputSupported) {
|
|
81
|
+
valHooks.input = hooks;
|
|
82
|
+
propHooks.value = hooks;
|
|
83
|
+
}
|
|
84
|
+
if (!isTextareaSupported) {
|
|
85
|
+
valHooks.textarea = hooks;
|
|
86
|
+
propHooks.value = hooks;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
$(function() {
|
|
90
|
+
// Look for forms
|
|
91
|
+
$(document).delegate('form', 'submit.placeholder', function() {
|
|
92
|
+
// Clear the placeholder values so they don't get submitted
|
|
93
|
+
var $inputs = $('.placeholder', this).each(clearPlaceholder);
|
|
94
|
+
setTimeout(function() {
|
|
95
|
+
$inputs.each(setPlaceholder);
|
|
96
|
+
}, 10);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
// Clear placeholder values upon page reload
|
|
101
|
+
$(window).bind('beforeunload.placeholder', function() {
|
|
102
|
+
$('.placeholder').each(function() {
|
|
103
|
+
this.value = '';
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function args(elem) {
|
|
110
|
+
// Return an object of element attributes
|
|
111
|
+
var newAttrs = {};
|
|
112
|
+
var rinlinejQuery = /^jQuery\d+$/;
|
|
113
|
+
$.each(elem.attributes, function(i, attr) {
|
|
114
|
+
if (attr.specified && !rinlinejQuery.test(attr.name)) {
|
|
115
|
+
newAttrs[attr.name] = attr.value;
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
return newAttrs;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function clearPlaceholder(event, value) {
|
|
122
|
+
var input = this;
|
|
123
|
+
var $input = $(input);
|
|
124
|
+
if (input.value == $input.attr('placeholder') && $input.hasClass('placeholder')) {
|
|
125
|
+
if ($input.data('placeholder-password')) {
|
|
126
|
+
$input = $input.hide().next().show().attr('id', $input.removeAttr('id').data('placeholder-id'));
|
|
127
|
+
// If `clearPlaceholder` was called from `$.valHooks.input.set`
|
|
128
|
+
if (event === true) {
|
|
129
|
+
return $input[0].value = value;
|
|
130
|
+
}
|
|
131
|
+
$input.focus();
|
|
132
|
+
} else {
|
|
133
|
+
input.value = '';
|
|
134
|
+
$input.removeClass('placeholder');
|
|
135
|
+
input == safeActiveElement() && input.select();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function setPlaceholder() {
|
|
141
|
+
var $replacement;
|
|
142
|
+
var input = this;
|
|
143
|
+
var $input = $(input);
|
|
144
|
+
var id = this.id;
|
|
145
|
+
if (input.value == '') {
|
|
146
|
+
if (input.type == 'password') {
|
|
147
|
+
if (!$input.data('placeholder-textinput')) {
|
|
148
|
+
try {
|
|
149
|
+
$replacement = $input.clone().attr({ 'type': 'text' });
|
|
150
|
+
} catch(e) {
|
|
151
|
+
$replacement = $('<input>').attr($.extend(args(this), { 'type': 'text' }));
|
|
152
|
+
}
|
|
153
|
+
$replacement
|
|
154
|
+
.removeAttr('name')
|
|
155
|
+
.data({
|
|
156
|
+
'placeholder-password': $input,
|
|
157
|
+
'placeholder-id': id
|
|
158
|
+
})
|
|
159
|
+
.bind('focus.placeholder', clearPlaceholder);
|
|
160
|
+
$input
|
|
161
|
+
.data({
|
|
162
|
+
'placeholder-textinput': $replacement,
|
|
163
|
+
'placeholder-id': id
|
|
164
|
+
})
|
|
165
|
+
.before($replacement);
|
|
166
|
+
}
|
|
167
|
+
$input = $input.removeAttr('id').hide().prev().attr('id', id).show();
|
|
168
|
+
// Note: `$input[0] != input` now!
|
|
169
|
+
}
|
|
170
|
+
$input.addClass('placeholder');
|
|
171
|
+
$input[0].value = $input.attr('placeholder');
|
|
172
|
+
} else {
|
|
173
|
+
$input.removeClass('placeholder');
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
function safeActiveElement() {
|
|
178
|
+
// Avoid IE9 `document.activeElement` of death
|
|
179
|
+
// https://github.com/mathiasbynens/jquery-placeholder/pull/99
|
|
180
|
+
try {
|
|
181
|
+
return document.activeElement;
|
|
182
|
+
} catch (exception) {}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
}(this, document, jQuery));
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>jquery-placeholder test suite</title>
|
|
6
|
+
<link rel="stylesheet" href="http://code.jquery.com/qunit/qunit-1.12.0.css">
|
|
7
|
+
<style>
|
|
8
|
+
.placeholder { color: #aaa; }
|
|
9
|
+
#input-type-password { border: 5px solid lime; }
|
|
10
|
+
</style>
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
<div id="qunit"></div>
|
|
14
|
+
<div id="fixtures">
|
|
15
|
+
<!-- I explicitly want these to be visible in the page, for easier debugging. -->
|
|
16
|
+
<form>
|
|
17
|
+
<p><label><code>type=search</code> <input id="input-type-search" type="search" name="search" placeholder="Search this site..."></label></p>
|
|
18
|
+
<p><label><code>type=text</code> <input id="input-type-text" type="text" name="name" placeholder="e.g. John Doe"></label></p>
|
|
19
|
+
<p><label><code>type=email</code> <input id="input-type-email" type="email" name="email" placeholder="e.g. address@example.ext"></label></p>
|
|
20
|
+
<p><label><code>type=url</code> <input id="input-type-url" type="url" name="url" placeholder="e.g. http://mathiasbynens.be/"></label></p>
|
|
21
|
+
<p><label><code>type=tel</code> <input id="input-type-tel" type="tel" name="tel" placeholder="e.g. +32 472 77 69 88"></label></p>
|
|
22
|
+
<p><label for="input-type-password"><code>type=password</code> </label><input id="input-type-password" type="password" name="password" placeholder="e.g. hunter2"></p>
|
|
23
|
+
<p><label><code>textarea</code> <textarea id="textarea" name="message" placeholder="Your message goes here"></textarea></label></p>
|
|
24
|
+
<p><input type="submit" value="type=submit"></p>
|
|
25
|
+
</form>
|
|
26
|
+
</div>
|
|
27
|
+
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
|
|
28
|
+
<script src="http://code.jquery.com/qunit/qunit-1.12.0.js"></script>
|
|
29
|
+
<script src="../jquery.placeholder.js"></script>
|
|
30
|
+
<script src="tests.js"></script>
|
|
31
|
+
</body>
|
|
32
|
+
</html>
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
(function($) {
|
|
2
|
+
|
|
3
|
+
module('jQuery#placeholder');
|
|
4
|
+
|
|
5
|
+
test('caches results of feature tests', function() {
|
|
6
|
+
strictEqual(typeof $.fn.placeholder.input, 'boolean', '$.fn.placeholder.input');
|
|
7
|
+
strictEqual(typeof $.fn.placeholder.textarea, 'boolean', '$.fn.placeholder.textarea');
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
if ($.fn.placeholder.input && $.fn.placeholder.textarea) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
var testElement = function($el) {
|
|
15
|
+
|
|
16
|
+
var el = $el[0];
|
|
17
|
+
var placeholder = el.getAttribute('placeholder');
|
|
18
|
+
|
|
19
|
+
strictEqual($el.placeholder(), $el, 'should be chainable');
|
|
20
|
+
|
|
21
|
+
strictEqual(el.value, placeholder, 'should set `placeholder` text as `value`');
|
|
22
|
+
strictEqual($el.prop('value'), '', 'propHooks works properly');
|
|
23
|
+
strictEqual($el.val(), '', 'valHooks works properly');
|
|
24
|
+
ok($el.hasClass('placeholder'), 'should have `placeholder` class');
|
|
25
|
+
|
|
26
|
+
// test on focus
|
|
27
|
+
$el.focus();
|
|
28
|
+
strictEqual(el.value, '', '`value` should be the empty string on focus');
|
|
29
|
+
strictEqual($el.prop('value'), '', 'propHooks works properly');
|
|
30
|
+
strictEqual($el.val(), '', 'valHooks works properly');
|
|
31
|
+
ok(!$el.hasClass('placeholder'), 'should not have `placeholder` class on focus');
|
|
32
|
+
|
|
33
|
+
// and unfocus (blur) again
|
|
34
|
+
$el.blur();
|
|
35
|
+
|
|
36
|
+
strictEqual(el.value, placeholder, 'should set `placeholder` text as `value`');
|
|
37
|
+
strictEqual($el.prop('value'), '', 'propHooks works properly');
|
|
38
|
+
strictEqual($el.val(), '', 'valHooks works properly');
|
|
39
|
+
ok($el.hasClass('placeholder'), 'should have `placeholder` class');
|
|
40
|
+
|
|
41
|
+
// change the value
|
|
42
|
+
$el.val('lorem ipsum');
|
|
43
|
+
strictEqual($el.prop('value'), 'lorem ipsum', '`$el.val(string)` should change the `value` property');
|
|
44
|
+
strictEqual(el.value, 'lorem ipsum', '`$el.val(string)` should change the `value` attribute');
|
|
45
|
+
ok(!$el.hasClass('placeholder'), '`$el.val(string)` should remove `placeholder` class');
|
|
46
|
+
|
|
47
|
+
// and clear it again
|
|
48
|
+
$el.val('');
|
|
49
|
+
strictEqual($el.prop('value'), '', '`$el.val("")` should change the `value` property');
|
|
50
|
+
strictEqual(el.value, placeholder, '`$el.val("")` should change the `value` attribute');
|
|
51
|
+
ok($el.hasClass('placeholder'), '`$el.val("")` should re-enable `placeholder` class');
|
|
52
|
+
|
|
53
|
+
// make sure the placeholder property works as expected.
|
|
54
|
+
strictEqual($el.prop('placeholder'), placeholder, '$el.prop(`placeholder`) should return the placeholder value');
|
|
55
|
+
$el.prop('placeholder', 'new placeholder');
|
|
56
|
+
strictEqual($el.prop('placeholder'), 'new placeholder', '$el.prop(`placeholder`, <string>) should set the placeholder value');
|
|
57
|
+
strictEqual($el.value, 'new placeholder', '$el.prop(`placeholder`, <string>) should update the displayed placeholder value');
|
|
58
|
+
$el.prop('placeholder', placeholder);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
test('emulates placeholder for <input type=text>', function() {
|
|
62
|
+
testElement( $('#input-type-text') );
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
test('emulates placeholder for <input type=search>', function() {
|
|
66
|
+
testElement( $('#input-type-search') );
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
test('emulates placeholder for <input type=email>', function() {
|
|
70
|
+
testElement( $('#input-type-email') );
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
test('emulates placeholder for <input type=url>', function() {
|
|
74
|
+
testElement( $('#input-type-url') );
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
test('emulates placeholder for <input type=tel>', function() {
|
|
78
|
+
testElement( $('#input-type-tel') );
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
test('emulates placeholder for <input type=tel>', function() {
|
|
82
|
+
testElement( $('#input-type-tel') );
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
test('emulates placeholder for <input type=password>', function() {
|
|
86
|
+
var selector = '#input-type-password';
|
|
87
|
+
|
|
88
|
+
var $el = $(selector);
|
|
89
|
+
var el = $el[0];
|
|
90
|
+
|
|
91
|
+
var placeholder = el.getAttribute('placeholder');
|
|
92
|
+
|
|
93
|
+
strictEqual($el.placeholder(), $el, 'should be chainable');
|
|
94
|
+
|
|
95
|
+
// Re-select the element, as it gets replaced by another one in some browsers
|
|
96
|
+
$el = $(selector);
|
|
97
|
+
el = $el[0];
|
|
98
|
+
|
|
99
|
+
strictEqual(el.value, placeholder, 'should set `placeholder` text as `value`');
|
|
100
|
+
strictEqual($el.prop('value'), '', 'propHooks works properly');
|
|
101
|
+
strictEqual($el.val(), '', 'valHooks works properly');
|
|
102
|
+
ok($el.hasClass('placeholder'), 'should have `placeholder` class');
|
|
103
|
+
|
|
104
|
+
// test on focus
|
|
105
|
+
$el.focus();
|
|
106
|
+
|
|
107
|
+
// Re-select the element, as it gets replaced by another one in some browsers
|
|
108
|
+
$el = $(selector);
|
|
109
|
+
el = $el[0];
|
|
110
|
+
|
|
111
|
+
strictEqual(el.value, '', '`value` should be the empty string on focus');
|
|
112
|
+
strictEqual($el.prop('value'), '', 'propHooks works properly');
|
|
113
|
+
strictEqual($el.val(), '', 'valHooks works properly');
|
|
114
|
+
ok(!$el.hasClass('placeholder'), 'should not have `placeholder` class on focus');
|
|
115
|
+
|
|
116
|
+
// and unfocus (blur) again
|
|
117
|
+
$el.blur();
|
|
118
|
+
|
|
119
|
+
// Re-select the element, as it gets replaced by another one in some browsers
|
|
120
|
+
$el = $(selector);
|
|
121
|
+
el = $el[0];
|
|
122
|
+
|
|
123
|
+
strictEqual(el.value, placeholder, 'should set `placeholder` text as `value`');
|
|
124
|
+
strictEqual($el.prop('value'), '', 'propHooks works properly');
|
|
125
|
+
strictEqual($el.val(), '', 'valHooks works properly');
|
|
126
|
+
ok($el.hasClass('placeholder'), 'should have `placeholder` class');
|
|
127
|
+
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
test('emulates placeholder for <textarea></textarea>', function() {
|
|
131
|
+
testElement( $('#textarea') );
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
}(jQuery));
|