rails_tokeninput-1.7.0/ 0000755 0000041 0000041 00000000000 12554347103 015145 5 ustar www-data www-data rails_tokeninput-1.7.0/Rakefile 0000644 0000041 0000041 00000000034 12554347103 016607 0 ustar www-data www-data require "bundler/gem_tasks" rails_tokeninput-1.7.0/Gemfile 0000644 0000041 0000041 00000000144 12554347103 016437 0 ustar www-data www-data source "http://rubygems.org" # Specify your gem's dependencies in rails_tokeninput.gemspec gemspec rails_tokeninput-1.7.0/MIT_LICENSE 0000644 0000041 0000041 00000002320 12554347103 016660 0 ustar www-data www-data rails_tokeninput License (note that this license only really covers the ruby part of the code, jquery.tokeninput has it's own license). —————— The MIT License (MIT) Copyright (c) 2015, Han Kang Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. rails_tokeninput-1.7.0/lib/ 0000755 0000041 0000041 00000000000 12554347103 015713 5 ustar www-data www-data rails_tokeninput-1.7.0/lib/rails_tokeninput/ 0000755 0000041 0000041 00000000000 12554347103 021305 5 ustar www-data www-data rails_tokeninput-1.7.0/lib/rails_tokeninput/engine.rb 0000644 0000041 0000041 00000000132 12554347103 023073 0 ustar www-data www-data module RailsTokeninput module Rails class Engine < ::Rails::Engine end end end rails_tokeninput-1.7.0/lib/rails_tokeninput/version.rb 0000644 0000041 0000041 00000000057 12554347103 023321 0 ustar www-data www-data module RailsTokeninput VERSION = "1.7.0" end rails_tokeninput-1.7.0/lib/rails_tokeninput.rb 0000644 0000041 0000041 00000000165 12554347103 021634 0 ustar www-data www-data if defined? Rails && Rails::VERSION::MAJOR == 3 && Rails::VERSION::MINOR >= 1 require 'rails_tokeninput/engine' end rails_tokeninput-1.7.0/metadata.yml 0000644 0000041 0000041 00000004632 12554347103 017455 0 ustar www-data www-data --- !ruby/object:Gem::Specification name: rails_tokeninput version: !ruby/object:Gem::Version version: 1.7.0 platform: ruby authors: - Han autorequire: bindir: bin cert_chain: [] date: 2015-02-15 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: railties requirement: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 3.1.0 type: :runtime prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: 3.1.0 - !ruby/object:Gem::Dependency name: bundler requirement: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: 1.0.0 type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: 1.0.0 - !ruby/object:Gem::Dependency name: rails requirement: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '3.1' type: :development prerelease: false version_requirements: !ruby/object:Gem::Requirement requirements: - - "~>" - !ruby/object:Gem::Version version: '3.1' description: Gem installation of jquery tokeninput scripts and stylesheets email: - han@logicallsat.com executables: [] extensions: [] extra_rdoc_files: [] files: - ".gitignore" - Gemfile - MIT_LICENSE - README.md - Rakefile - app/assets/javascripts/jquery.tokeninput.js - app/assets/javascripts/jquery.tokeninput.min.js - app/assets/stylesheets/token-input-facebook.css - app/assets/stylesheets/token-input-mac.css - app/assets/stylesheets/token-input.css - lib/rails_tokeninput.rb - lib/rails_tokeninput/engine.rb - lib/rails_tokeninput/version.rb - rails_tokeninput.gemspec homepage: '' licenses: [] metadata: {} post_install_message: rdoc_options: [] require_paths: - lib - app required_ruby_version: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' required_rubygems_version: !ruby/object:Gem::Requirement requirements: - - ">=" - !ruby/object:Gem::Version version: '0' requirements: [] rubyforge_project: rails_tokeninput rubygems_version: 2.2.2 signing_key: specification_version: 4 summary: Jquery Tokeninput automated install for Rails 3.1+ test_files: [] rails_tokeninput-1.7.0/.gitignore 0000644 0000041 0000041 00000000053 12554347103 017133 0 ustar www-data www-data *.gem .bundle Gemfile.lock pkg/* .DS_Store rails_tokeninput-1.7.0/rails_tokeninput.gemspec 0000644 0000041 0000041 00000001602 12554347103 022103 0 ustar www-data www-data # -*- encoding: utf-8 -*- $:.push File.expand_path("../lib", __FILE__) require "rails_tokeninput/version" Gem::Specification.new do |s| s.name = "rails_tokeninput" s.version = RailsTokeninput::VERSION s.authors = ["Han"] s.email = ["han@logicallsat.com"] s.homepage = "" s.summary = %q{Jquery Tokeninput automated install for Rails 3.1+} s.description = %q{Gem installation of jquery tokeninput scripts and stylesheets} s.rubyforge_project = "rails_tokeninput" s.files = `git ls-files`.split("\n") s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n") s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) } s.require_paths = ["lib", "app"] s.add_dependency "railties", ">= 3.1.0" s.add_development_dependency "bundler", "~> 1.0.0" s.add_development_dependency "rails", "~> 3.1" end rails_tokeninput-1.7.0/app/ 0000755 0000041 0000041 00000000000 12554347103 015725 5 ustar www-data www-data rails_tokeninput-1.7.0/app/assets/ 0000755 0000041 0000041 00000000000 12554347103 017227 5 ustar www-data www-data rails_tokeninput-1.7.0/app/assets/javascripts/ 0000755 0000041 0000041 00000000000 12554347103 021560 5 ustar www-data www-data rails_tokeninput-1.7.0/app/assets/javascripts/jquery.tokeninput.min.js 0000755 0000041 0000041 00000033632 12554347103 026430 0 ustar www-data www-data /*! jquery.tokeninput 2014-04-02 */ !function(a){function b(a){return String(null===a||void 0===a?"":a)}function c(a){return b(a).replace(i,function(a){return h[a]})}var d={method:"GET",queryParam:"q",searchDelay:300,minChars:1,propertyToSearch:"name",jsonContainer:null,contentType:"json",excludeCurrent:!1,excludeCurrentParameter:"x",prePopulate:null,processPrePopulate:!1,hintText:"Type in a search term",noResultsText:"No results",searchingText:"Searching...",deleteText:"×",animateDropdown:!0,placeholder:null,theme:null,zindex:999,resultsLimit:null,enableHTML:!1,resultsFormatter:function(a){var b=a[this.propertyToSearch];return"
"+(this.enableHTML?b:c(b))+"
"+i(a(b).data("settings").searchingText)+"
"),v())}function x(){a(b).data("settings").hintText&&(W.html(""+i(a(b).data("settings").hintText)+"
"),v())}function y(a){return a.replace(Z,"\\$&")}function z(a,b){return a.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+y(b)+")(?![^<>]*>)(?![^&;]+;)","gi"),function(a,b){return""+i(b)+""})}function A(a,b,c){return a.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+y(b)+")(?![^<>]*>)(?![^&;]+;)","g"),z(b,c))}function B(c){if(a(b).data("settings").excludeCurrent){var d=a(b).data("tokenInputObject").getTokens(),e=[];d.length&&(a.each(c,function(c,f){var g=!0;a.each(d,function(c,d){return f[a(b).data("settings").propertyToSearch]==d[a(b).data("settings").propertyToSearch]?(g=!1,!1):void 0}),g&&e.push(f)}),c=e)}return c}function C(c,d){if(d=B(d),d&&d.length){W.empty();var e=a(""+i(a(b).data("settings").noResultsText)+"
"),v())}function D(c){c&&(T&&E(a(T)),c.addClass(a(b).data("settings").classes.selectedDropdownItem),T=c.get(0))}function E(c){c.removeClass(a(b).data("settings").classes.selectedDropdownItem),T=null}function F(){var c=P.val();c&&c.length&&(R&&q(a(R),f.AFTER),c.length>=a(b).data("settings").minChars?(w(),clearTimeout(K),K=setTimeout(function(){G(c)},a(b).data("settings").searchDelay)):u())}function G(c){var d=c+H(),e=O.get(d);if(e)a.isFunction(a(b).data("settings").onCachedResult)&&(e=a(b).data("settings").onCachedResult.call(Q,e)),C(c,e);else if(a(b).data("settings").url){var f=H(),g={};if(g.data={},f.indexOf("?")>-1){var i=f.split("?");g.url=i[0];var j=i[1].split("&");a.each(j,function(a,b){var c=b.split("=");g.data[c[0]]=c[1]})}else g.url=f;if(g.data[a(b).data("settings").queryParam]=c,g.type=a(b).data("settings").method,g.dataType=a(b).data("settings").contentType,a(b).data("settings").crossDomain&&(g.dataType="jsonp"),a(b).data("settings").excludeCurrent){var k=a(b).data("tokenInputObject").getTokens(),l=a.map(k,function(c){return"function"==typeof a(b).data("settings").tokenValue?a(b).data("settings").tokenValue.call(this,c):c[a(b).data("settings").tokenValue]});g.data[a(b).data("settings").excludeCurrentParameter]=l.join(a(b).data("settings").tokenDelimiter)}g.success=function(e){O.add(d,a(b).data("settings").jsonContainer?e[a(b).data("settings").jsonContainer]:e),a.isFunction(a(b).data("settings").onResult)&&(e=a(b).data("settings").onResult.call(Q,e)),P.val()===c&&C(c,a(b).data("settings").jsonContainer?e[a(b).data("settings").jsonContainer]:e)},h.onSend&&h.onSend(g),a.ajax(g)}else if(a(b).data("settings").local_data){var m=a.grep(a(b).data("settings").local_data,function(d){return d[a(b).data("settings").propertyToSearch].toLowerCase().indexOf(c.toLowerCase())>-1});O.add(d,m),a.isFunction(a(b).data("settings").onResult)&&(m=a(b).data("settings").onResult.call(Q,m)),C(c,m)}}function H(){var c=a(b).data("settings").url;return"function"==typeof a(b).data("settings").url&&(c=a(b).data("settings").url.call(a(b).data("settings"))),c}function I(a){setTimeout(function(){a.focus()},50)}if("string"==typeof d||"function"==typeof d){a(b).data("settings").url=d;var J=H();void 0===a(b).data("settings").crossDomain&&"string"==typeof J&&(a(b).data("settings").crossDomain=-1===J.indexOf("://")?!1:location.href.split(/\/+/g)[1]!==J.split(/\/+/g)[1])}else"object"==typeof d&&(a(b).data("settings").local_data=d);a(b).data("settings").classes?a(b).data("settings").classes=a.extend({},e,a(b).data("settings").classes):a(b).data("settings").theme?(a(b).data("settings").classes={},a.each(e,function(c,d){a(b).data("settings").classes[c]=d+"-"+a(b).data("settings").theme})):a(b).data("settings").classes=e;var K,L,M=[],N=0,O=new a.TokenList.Cache,P=a('').css({outline:"none"}).attr("id",a(b).data("settings").idPrefix+b.id).focus(function(){return a(b).data("settings").disabled?!1:((null===a(b).data("settings").tokenLimit||a(b).data("settings").tokenLimit!==N)&&x(),void U.addClass(a(b).data("settings").classes.focused))}).blur(function(){u(),a(b).data("settings").allowFreeTagging&&m(),a(this).val(""),U.removeClass(a(b).data("settings").classes.focused)}).bind("keyup keydown blur update",l).keydown(function(c){var d,e;switch(c.keyCode){case g.LEFT:case g.RIGHT:case g.UP:case g.DOWN:if(0===this.value.length)d=V.prev(),e=V.next(),d.length&&d.get(0)===R||e.length&&e.get(0)===R?c.keyCode===g.LEFT||c.keyCode===g.UP?q(a(R),f.BEFORE):q(a(R),f.AFTER):c.keyCode!==g.LEFT&&c.keyCode!==g.UP||!d.length?c.keyCode!==g.RIGHT&&c.keyCode!==g.DOWN||!e.length||p(a(e.get(0))):p(a(d.get(0)));else{var h=null;c.keyCode===g.DOWN||c.keyCode===g.RIGHT?(h=a(W).find("li").first(),T&&(h=a(T).next())):(h=a(W).find("li").last(),T&&(h=a(T).prev())),D(h)}break;case g.BACKSPACE:if(d=V.prev(),0===this.value.length)return R?(s(a(R)),Q.change()):d.length&&p(a(d.get(0))),!1;1===a(this).val().length?u():setTimeout(function(){F()},5);break;case g.TAB:case g.ENTER:case g.NUMPAD_ENTER:case g.COMMA:if(T)o(a(T).data("tokeninput")),Q.change();else{if(a(b).data("settings").allowFreeTagging){if(a(b).data("settings").allowTabOut&&""===a(this).val())return!0;m()}else if(a(this).val(""),a(b).data("settings").allowTabOut)return!0;c.stopPropagation(),c.preventDefault()}return!1;case g.ESCAPE:return u(),!0;default:String.fromCharCode(c.which)&&setTimeout(function(){F()},5)}});h.placeholder&&P.attr("placeholder",h.placeholder);var Q=a(b).hide().val("").focus(function(){I(P)}).blur(function(){return P.blur(),Q}),R=null,S=0,T=null,U=a("" + (this.enableHTML ? string : _escapeHTML(string)) + "
" + escapeHTML($(input).data("settings").searchingText) + "
"); show_dropdown(); } } function show_dropdown_hint () { if($(input).data("settings").hintText) { dropdown.html("" + escapeHTML($(input).data("settings").hintText) + "
"); show_dropdown(); } } var regexp_special_chars = new RegExp('[.\\\\+*?\\[\\^\\]$(){}=!<>|:\\-]', 'g'); function regexp_escape(term) { return term.replace(regexp_special_chars, '\\$&'); } // Highlight the query part of the search term function highlight_term(value, term) { return value.replace( new RegExp( "(?![^&;]+;)(?!<[^<>]*)(" + regexp_escape(term) + ")(?![^<>]*>)(?![^&;]+;)", "gi" ), function(match, p1) { return "" + escapeHTML(p1) + ""; } ); } function find_value_and_highlight_term(template, value, term) { return template.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + regexp_escape(value) + ")(?![^<>]*>)(?![^&;]+;)", "g"), highlight_term(value, term)); } // exclude existing tokens from dropdown, so the list is clearer function excludeCurrent(results) { if ($(input).data("settings").excludeCurrent) { var currentTokens = $(input).data("tokenInputObject").getTokens(), trimmedList = []; if (currentTokens.length) { $.each(results, function(index, value) { var notFound = true; $.each(currentTokens, function(cIndex, cValue) { if (value[$(input).data("settings").propertyToSearch] == cValue[$(input).data("settings").propertyToSearch]) { notFound = false; return false; } }); if (notFound) { trimmedList.push(value); } }); results = trimmedList; } } return results; } // Populate the results dropdown with some results function populate_dropdown (query, results) { // exclude current tokens if configured results = excludeCurrent(results); if(results && results.length) { dropdown.empty(); var dropdown_ul = $("" + escapeHTML($(input).data("settings").noResultsText) + "
"); show_dropdown(); } } } // Highlight an item in the results dropdown function select_dropdown_item (item) { if(item) { if(selected_dropdown_item) { deselect_dropdown_item($(selected_dropdown_item)); } item.addClass($(input).data("settings").classes.selectedDropdownItem); selected_dropdown_item = item.get(0); } } // Remove highlighting from an item in the results dropdown function deselect_dropdown_item (item) { item.removeClass($(input).data("settings").classes.selectedDropdownItem); selected_dropdown_item = null; } // Do a search and show the "searching" dropdown if the input is longer // than $(input).data("settings").minChars function do_search() { var query = input_box.val(); if(query && query.length) { if(selected_token) { deselect_token($(selected_token), POSITION.AFTER); } if(query.length >= $(input).data("settings").minChars) { show_dropdown_searching(); clearTimeout(timeout); timeout = setTimeout(function(){ run_search(query); }, $(input).data("settings").searchDelay); } else { hide_dropdown(); } } } // Do the actual search function run_search(query) { var cache_key = query + computeURL(); var cached_results = cache.get(cache_key); if (cached_results) { if ($.isFunction($(input).data("settings").onCachedResult)) { cached_results = $(input).data("settings").onCachedResult.call(hidden_input, cached_results); } populate_dropdown(query, cached_results); } else { // Are we doing an ajax search or local data search? if($(input).data("settings").url) { var url = computeURL(); // Extract existing get params var ajax_params = {}; ajax_params.data = {}; if(url.indexOf("?") > -1) { var parts = url.split("?"); ajax_params.url = parts[0]; var param_array = parts[1].split("&"); $.each(param_array, function (index, value) { var kv = value.split("="); ajax_params.data[kv[0]] = kv[1]; }); } else { ajax_params.url = url; } // Prepare the request ajax_params.data[$(input).data("settings").queryParam] = query; ajax_params.type = $(input).data("settings").method; ajax_params.dataType = $(input).data("settings").contentType; if ($(input).data("settings").crossDomain) { ajax_params.dataType = "jsonp"; } // exclude current tokens? // send exclude list to the server, so it can also exclude existing tokens if ($(input).data("settings").excludeCurrent) { var currentTokens = $(input).data("tokenInputObject").getTokens(); var tokenList = $.map(currentTokens, function (el) { if(typeof $(input).data("settings").tokenValue == 'function') return $(input).data("settings").tokenValue.call(this, el); return el[$(input).data("settings").tokenValue]; }); ajax_params.data[$(input).data("settings").excludeCurrentParameter] = tokenList.join($(input).data("settings").tokenDelimiter); } // Attach the success callback ajax_params.success = function(results) { cache.add(cache_key, $(input).data("settings").jsonContainer ? results[$(input).data("settings").jsonContainer] : results); if($.isFunction($(input).data("settings").onResult)) { results = $(input).data("settings").onResult.call(hidden_input, results); } // only populate the dropdown if the results are associated with the active search query if(input_box.val() === query) { populate_dropdown(query, $(input).data("settings").jsonContainer ? results[$(input).data("settings").jsonContainer] : results); } }; // Provide a beforeSend callback if (settings.onSend) { settings.onSend(ajax_params); } // Make the request $.ajax(ajax_params); } else if($(input).data("settings").local_data) { // Do the search through local data var results = $.grep($(input).data("settings").local_data, function (row) { return row[$(input).data("settings").propertyToSearch].toLowerCase().indexOf(query.toLowerCase()) > -1; }); cache.add(cache_key, results); if($.isFunction($(input).data("settings").onResult)) { results = $(input).data("settings").onResult.call(hidden_input, results); } populate_dropdown(query, results); } } } // compute the dynamic URL function computeURL() { var url = $(input).data("settings").url; if(typeof $(input).data("settings").url == 'function') { url = $(input).data("settings").url.call($(input).data("settings")); } return url; } // Bring browser focus to the specified object. // Use of setTimeout is to get around an IE bug. // (See, e.g., http://stackoverflow.com/questions/2600186/focus-doesnt-work-in-ie) // // obj: a jQuery object to focus() function focus_with_timeout(obj) { setTimeout(function() { obj.focus(); }, 50); } }; // Really basic cache for the results $.TokenList.Cache = function (options) { var settings, data = {}, size = 0, flush; settings = $.extend({ max_size: 500 }, options); flush = function () { data = {}; size = 0; }; this.add = function (query, results) { if (size > settings.max_size) { flush(); } if (!data[query]) { size += 1; } data[query] = results; }; this.get = function (query) { return data[query]; }; }; }(jQuery)); rails_tokeninput-1.7.0/app/assets/stylesheets/ 0000755 0000041 0000041 00000000000 12554347103 021603 5 ustar www-data www-data rails_tokeninput-1.7.0/app/assets/stylesheets/token-input-mac.css 0000755 0000041 0000041 00000011200 12554347103 025325 0 ustar www-data www-data /* Example tokeninput style #2: Mac Style */ fieldset.token-input-mac { position: relative; padding: 0; margin: 5px 0; background: #fff; width: 400px; border: 1px solid #A4BDEC; border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; } fieldset.token-input-mac.token-input-dropdown-mac { border-radius: 10px 10px 0 0; -moz-border-radius: 10px 10px 0 0; -webkit-border-radius: 10px 10px 0 0; box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25); -moz-box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25); -webkit-box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25); } ul.token-input-list-mac { overflow: hidden; height: auto !important; height: 1%; cursor: text; font-size: 12px; font-family: Verdana, sans-serif; min-height: 1px; z-index: 999; margin: 0; padding: 3px; background: transparent; } ul.token-input-list-mac.error { border: 1px solid #C52020; } ul.token-input-list-mac li { list-style-type: none; } li.token-input-token-mac p { display: inline; padding: 0; margin: 0; } li.token-input-token-mac span { color: #a6b3cf; margin-left: 5px; font-weight: bold; cursor: pointer; } /* TOKENS */ li.token-input-token-mac { font-family: "Lucida Grande", Arial, sans-serif; font-size: 9pt; line-height: 12pt; overflow: hidden; height: 16px; margin: 3px; padding: 0 10px; background: none; background-color: #dee7f8; color: #000; cursor: default; border: 1px solid #a4bdec; border-radius: 15px; -moz-border-radius: 15px; -webkit-border-radius: 15px; float: left; } li.token-input-highlighted-token-mac { background-color: #bbcef1; border: 1px solid #598bec; color: #000; } li.token-input-selected-token-mac { background-color: #598bec; border: 1px solid transparent; color: #fff; } li.token-input-highlighted-token-mac span.token-input-delete-token-mac { color: #000; } li.token-input-selected-token-mac span.token-input-delete-token-mac { color: #fff; } li.token-input-input-token-mac { border: none; background: transparent; float: left; padding: 0; margin: 0; } li.token-input-input-token-mac input { border: 0; width: 100px; padding: 3px; background-color: transparent; margin: 0; } div.token-input-dropdown-mac { position: absolute; border: 1px solid #A4BDEC; border-top: none; left: -1px; right: -1px; background-color: #fff; overflow: hidden; cursor: default; font-size: 10pt; font-family: "Lucida Grande", Arial, sans-serif; padding: 5px; border-radius: 0 0 10px 10px; -moz-border-radius: 0 0 10px 10px; -webkit-border-radius: 0 0 10px 10px; box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25); -moz-box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25); -webkit-box-shadow: 0 5px 20px 0 rgba(0,0,0,0.25); clip:rect(0px, 1000px, 1000px, -10px); } div.token-input-dropdown-mac p { font-size: 8pt; margin: 0; padding: 0 5px; font-style: italic; color: #aaa; } div.token-input-dropdown-mac h3.token-input-dropdown-category-mac { font-family: "Lucida Grande", Arial, sans-serif; font-size: 10pt; font-weight: bold; border: none; padding: 0 5px; margin: 0; } div.token-input-dropdown-mac ul { margin: 0; padding: 0; } div.token-input-dropdown-mac ul li { list-style-type: none; cursor: pointer; background: none; background-color: #fff; margin: 0; padding: 0 0 0 25px; } div.token-input-dropdown-mac ul li.token-input-dropdown-item-mac { background-color: #fff; } div.token-input-dropdown-mac ul li.token-input-dropdown-item-mac.odd { background-color: #ECF4F9; border-radius: 15px; -moz-border-radius: 15px; -webkit-border-radius: 15px; } div.token-input-dropdown-mac ul li.token-input-dropdown-item-mac span.token-input-dropdown-item-description-mac { float: right; font-size: 8pt; font-style: italic; padding: 0 10px 0 0; color: #999; } div.token-input-dropdown-mac ul li strong { font-weight: bold; text-decoration: underline; font-style: none; } div.token-input-dropdown-mac ul li.token-input-selected-dropdown-item-mac, div.token-input-dropdown-mac ul li.token-input-selected-dropdown-item-mac.odd { background-color: #598bec; color: #fff; border-radius: 15px; -moz-border-radius: 15px; -webkit-border-radius: 15px; } div.token-input-dropdown-mac ul li.token-input-selected-dropdown-item-mac span.token-input-dropdown-item-description-mac, div.token-input-dropdown-mac ul li.token-input-selected-dropdown-item-mac.odd span.token-input-dropdown-item-description-mac { color: #fff; } rails_tokeninput-1.7.0/app/assets/stylesheets/token-input-facebook.css 0000755 0000041 0000041 00000004755 12554347103 026357 0 ustar www-data www-data /* Example tokeninput style #2: Facebook style */ ul.token-input-list-facebook { overflow: hidden; height: auto !important; height: 1%; width: 400px; border: 1px solid #8496ba; cursor: text; font-size: 12px; font-family: Verdana, sans-serif; min-height: 1px; z-index: 999; margin: 0; padding: 0; background-color: #fff; list-style-type: none; clear: left; } ul.token-input-list-facebook li input { border: 0; width: 100px; padding: 3px 8px; background-color: white; margin: 2px 0; -webkit-appearance: caret; } li.token-input-token-facebook { overflow: hidden; height: auto !important; height: 15px; margin: 3px; padding: 1px 3px; background-color: #eff2f7; color: #000; cursor: default; border: 1px solid #ccd5e4; font-size: 11px; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; float: left; white-space: nowrap; } li.token-input-token-facebook p { display: inline; padding: 0; margin: 0; } li.token-input-token-facebook span { color: #a6b3cf; margin-left: 5px; font-weight: bold; cursor: pointer; } li.token-input-selected-token-facebook { background-color: #5670a6; border: 1px solid #3b5998; color: #fff; } li.token-input-input-token-facebook { float: left; margin: 0; padding: 0; list-style-type: none; } div.token-input-dropdown-facebook { position: absolute; width: 400px; background-color: #fff; overflow: hidden; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; cursor: default; font-size: 11px; font-family: Verdana, sans-serif; z-index: 1; } div.token-input-dropdown-facebook p { margin: 0; padding: 5px; font-weight: bold; color: #777; } div.token-input-dropdown-facebook ul { margin: 0; padding: 0; } div.token-input-dropdown-facebook ul li { background-color: #fff; padding: 3px; margin: 0; list-style-type: none; } div.token-input-dropdown-facebook ul li.token-input-dropdown-item-facebook { background-color: #fff; } div.token-input-dropdown-facebook ul li.token-input-dropdown-item2-facebook { background-color: #fff; } div.token-input-dropdown-facebook ul li em { font-weight: bold; font-style: normal; } div.token-input-dropdown-facebook ul li.token-input-selected-dropdown-item-facebook { background-color: #3b5998; color: #fff; } rails_tokeninput-1.7.0/app/assets/stylesheets/token-input.css 0000755 0000041 0000041 00000004532 12554347103 024601 0 ustar www-data www-data /* Example tokeninput style #1: Token vertical list*/ ul.token-input-list { overflow: hidden; height: auto !important; height: 1%; width: 400px; border: 1px solid #999; cursor: text; font-size: 12px; font-family: Verdana, sans-serif; z-index: 999; margin: 0; padding: 0; background-color: #fff; list-style-type: none; clear: left; } ul.token-input-list li { list-style-type: none; } ul.token-input-list li input { border: 0; width: 350px; padding: 3px 8px; background-color: white; -webkit-appearance: caret; } ul.token-input-disabled, ul.token-input-disabled li input { background-color: #E8E8E8; } ul.token-input-disabled li.token-input-token { background-color: #D9E3CA; color: #7D7D7D } ul.token-input-disabled li.token-input-token span { color: #CFCFCF; cursor: default; } li.token-input-token { overflow: hidden; height: auto !important; height: 1%; margin: 3px; padding: 3px 5px; background-color: #d0efa0; color: #000; font-weight: bold; cursor: default; display: block; } li.token-input-token p { float: left; padding: 0; margin: 0; } li.token-input-token span { float: right; color: #777; cursor: pointer; } li.token-input-selected-token { background-color: #08844e; color: #fff; } li.token-input-selected-token span { color: #bbb; } div.token-input-dropdown { position: absolute; width: 400px; background-color: #fff; overflow: hidden; border-left: 1px solid #ccc; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; cursor: default; font-size: 12px; font-family: Verdana, sans-serif; z-index: 1; } div.token-input-dropdown p { margin: 0; padding: 5px; font-weight: bold; color: #777; } div.token-input-dropdown ul { margin: 0; padding: 0; } div.token-input-dropdown ul li { background-color: #fff; padding: 3px; list-style-type: none; } div.token-input-dropdown ul li.token-input-dropdown-item { background-color: #fafafa; } div.token-input-dropdown ul li.token-input-dropdown-item2 { background-color: #fff; } div.token-input-dropdown ul li em { font-weight: bold; font-style: normal; } div.token-input-dropdown ul li.token-input-selected-dropdown-item { background-color: #d0efa0; } rails_tokeninput-1.7.0/README.md 0000644 0000041 0000041 00000002151 12554347103 016423 0 ustar www-data www-data # Rails Tokeninput [](http://badge.fury.io/rb/rails_tokeninput) **Rails Tokeninput** is a small, lightweight gem which helps to automate installing of the jquery tokeninput plugin, including the standard included stylesheets. # Included Javascripts/Stylesheets jquery.tokeninput.js jquery.tokeninput.min.js token-input-facebook.css token-input-mac.css token-input.css ### Installation This gem should work out of the box. All you have to do is add the gem to your Gemfile: gem 'rails_tokeninput' Then bundle install or update (depending on if you want to upgrade an older version of this gem). bundle install bundle update In your assets/javascripts/application.js, you will need to add d3 to your manifest: //= require jquery . . //= require jquery.tokeninput In your assets/stylesheets/application.css, you can add the stylesheets you want by including them in your css manifest: *= require_self . . *= require token-input-facebook ..etc. ## As of 3-15-2012, the version numbers for this gem reflects the version number of the plugin.