diff --git a/.gitignore b/.gitignore index e43b0f9..462ebaf 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ .DS_Store + +build-min +build +bower_components \ No newline at end of file diff --git a/.ruby-gemset b/.ruby-gemset new file mode 100644 index 0000000..7f69805 --- /dev/null +++ b/.ruby-gemset @@ -0,0 +1 @@ +visualsearch diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 0000000..eca07e4 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +2.1.2 diff --git a/bower.json b/bower.json index d1d64c2..dd3d64c 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "visualsearch", - "version": "0.5.0", + "version": "0.5.1", "homepage": "http://documentcloud.github.io/visualsearch/", "authors": [ "Samuel Clay", diff --git a/build-min/dependencies.js.gz b/build-min/dependencies.js.gz index b35b656..da901c4 100644 Binary files a/build-min/dependencies.js.gz and b/build-min/dependencies.js.gz differ diff --git a/build-min/visualsearch-datauri.css.gz b/build-min/visualsearch-datauri.css.gz index 937ea1e..f19d804 100644 Binary files a/build-min/visualsearch-datauri.css.gz and b/build-min/visualsearch-datauri.css.gz differ diff --git a/build-min/visualsearch.css b/build-min/visualsearch.css index fb6449b..2a3f282 100644 --- a/build-min/visualsearch.css +++ b/build-min/visualsearch.css @@ -1 +1 @@ -.VS-search .VS-icon{background-repeat:no-repeat;background-position:center center;vertical-align:middle;width:16px;height:16px}.VS-search .VS-icon-cancel{width:11px;height:11px;background-position:center 0;background-image:url(../images/embed/icons/cancel_search.png?1311104738);cursor:pointer}.VS-search .VS-icon-cancel:hover{background-position:center -11px}.VS-search .VS-icon-search{width:12px;height:12px;background-image:url(../images/embed/icons/search_glyph.png?1311104738)}.VS-search div,.VS-search span,.VS-search a,.VS-search img,.VS-search ul,.VS-search li,.VS-search form,.VS-search label,.VS-interface ul,.VS-interface li,.VS-interface{margin:0;padding:0;border:0;outline:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline}.VS-search :focus{outline:0}.VS-search{line-height:1;color:black}.VS-search ol,.VS-search ul{list-style:none}.VS-search{font-family:Arial,sans-serif;color:#373737;font-size:12px}.VS-search input{display:block;border:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;outline:none;margin:0;padding:4px;background:transparent;font-size:16px;line-height:20px;width:100%}.VS-interface,.VS-search .dialog,.VS-search input{font-family:"Lucida Grande","Lucida Sans Unicode",Helvetica,Arial,sans-serif!important;line-height:1.1em}.VS-search .VS-search-box{cursor:text;position:relative;background:transparent;border:2px solid #ccc;border-radius:16px;-webkit-border-radius:16px;-moz-border-radius:16px;background-color:#fafafa;-webkit-box-shadow:inset 0 0 3px #ccc;-moz-box-shadow:inset 0 0 3px #ccc;box-shadow:inset 0 0 3px #ccc;min-height:28px;height:auto}.VS-search.VS-readonly .VS-search-box{cursor:default}.VS-search .VS-search-box.VS-focus{border-color:#acf;-webkit-box-shadow:inset 0 0 3px #acf;-moz-box-shadow:inset 0 0 3px #acf;box-shadow:inset 0 0 3px #acf}.VS-search .VS-placeholder{position:absolute;top:7px;left:4px;margin:0 20px 0 22px;color:#808080;font-size:14px}.VS-search .VS-search-box.VS-focus .VS-placeholder,.VS-search .VS-search-box .VS-placeholder.VS-hidden{display:none}.VS-search .VS-search-inner{position:relative;margin:0 20px 0 22px;overflow:hidden}.VS-search input{width:100px}.VS-search input,.VS-search .VS-input-width-tester{padding:6px 0;float:left;color:#808080;font:13px/17px Helvetica,Arial}.VS-search.VS-focus input{color:#606060}.VS-search .VS-icon-search{position:absolute;left:9px;top:8px}.VS-search .VS-icon-cancel{position:absolute;right:9px;top:8px}.VS-search.VS-readonly .VS-icon-cancel{display:none}.VS-search .search_facet{float:left;margin:0;padding:0 0 0 14px;position:relative;border:1px solid transparent;height:20px;margin:3px -3px 3px 0}.VS-search.VS-readonly .search_facet{padding-left:0}.VS-search .search_facet.is_selected{margin-left:-3px;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px;background-color:#d2e6fd;background-image:-moz-linear-gradient(top,#d2e6fd,#b0d1f9);background-image:-webkit-gradient(linear,left top,left bottom,from(#d2e6fd),to(#b0d1f9));background-image:linear-gradient(top,#d2e6fd,#b0d1f9);border:1px solid #6eadf5}.VS-search .search_facet .category{float:left;text-transform:uppercase;font-weight:bold;font-size:10px;color:#808080;padding:8px 0 5px;line-height:13px;cursor:pointer;padding:4px 0 0}.VS-search.VS-readonly .search_facet .category{cursor:default}.VS-search .search_facet.is_selected .category{margin-left:3px}.VS-search .search_facet .search_facet_input_container{float:left}.VS-search .search_facet input{margin:0;padding:0;color:#000;font-size:13px;line-height:16px;padding:5px 0 5px 4px;height:16px;width:auto;z-index:100;position:relative;padding-top:1px;padding-bottom:2px;padding-right:3px}.VS-search .search_facet.is_editing input,.VS-search .search_facet.is_selected input{color:#000}.VS-search.VS-readonly .search_facet .search_facet_remove{display:none}.VS-search .search_facet .search_facet_remove{position:absolute;left:0;top:4px}.VS-search .search_facet.is_selected .search_facet_remove{opacity:.4;left:3px;filter:alpha(opacity=40);background-position:center -11px}.VS-search .search_facet .search_facet_remove:hover{opacity:1}.VS-search .search_facet.is_editing .category,.VS-search .search_facet.is_selected .category{color:#000}.VS-search .search_facet.search_facet_maybe_delete .category,.VS-search .search_facet.search_facet_maybe_delete input{color:darkred}.VS-search .search_input{height:28px;float:left;margin-left:-1px}.VS-search .search_input input{padding:6px 3px 6px 2px;line-height:10px;height:22px;margin-top:-4px;width:10px;z-index:100;min-width:4px;position:relative}.VS-search .search_input.is_editing input{color:#202020}.ui-helper-hidden-accessible{display:none}.VS-interface.ui-autocomplete{position:absolute;border:1px solid #C0C0C0;border-top:1px solid #D9D9D9;background-color:#F6F6F6;cursor:pointer;z-index:10000;padding:0;margin:0;width:auto;min-width:80px;max-width:220px;max-height:240px;overflow-y:auto;overflow-x:hidden;font-size:13px;top:5px;opacity:.97;box-shadow:3px 4px 5px -2px rgba(0,0,0,0.5);-webkit-box-shadow:3px 4px 5px -2px rgba(0,0,0,0.5);-moz-box-shadow:3px 4px 5px -2px rgba(0,0,0,0.5)}.VS-interface.ui-autocomplete .ui-autocomplete-category{text-transform:capitalize;font-size:11px;padding:4px 4px 4px;border-top:1px solid #A2A2A2;border-bottom:1px solid #A2A2A2;background-color:#B7B7B7;text-shadow:0 -1px 0 #999;font-weight:bold;color:white;cursor:default}.VS-interface.ui-autocomplete .ui-menu-item{float:none}.VS-interface.ui-autocomplete .ui-menu-item a{color:#000;outline:none;display:block;padding:3px 4px 5px;border-radius:none;line-height:1;background-color:#F8F8F8;background-image:-moz-linear-gradient(top,#F8F8F8,#F3F3F3);background-image:-webkit-gradient(linear,left top,left bottom,from(#F8F8F8),to(#F3F3F3));background-image:linear-gradient(top,#F8F8F8,#F3F3F3);border-top:1px solid #FAFAFA;border-bottom:1px solid #f0f0f0}.VS-interface.ui-autocomplete .ui-menu-item a:active{outline:none}.VS-interface.ui-autocomplete .ui-menu-item .ui-state-hover,.VS-interface.ui-autocomplete .ui-menu-item .ui-state-focus{background-color:#6483F7;background-image:-moz-linear-gradient(top,#648bF5,#2465f3);background-image:-webkit-gradient(linear,left top,left bottom,from(#648bF5),to(#2465f3));background-image:linear-gradient(top,#648bF5,#2465f3);border-top:1px solid #5b83ec;border-bottom:1px solid #1459e9;border-left:none;border-right:none;color:white;margin:0}.VS-interface.ui-autocomplete .ui-corner-all{border-radius:0}.VS-interface.ui-autocomplete li{list-style:none;width:auto} \ No newline at end of file +.VS-search .VS-icon{background-repeat:no-repeat;background-position:center center;vertical-align:middle;width:16px;height:16px}.VS-search .VS-icon-cancel{width:11px;height:11px;background-position:center 0;background-image:url(../images/embed/icons/cancel_search.png?1414940158);cursor:pointer}.VS-search .VS-icon-cancel:hover{background-position:center -11px}.VS-search .VS-icon-search{width:12px;height:12px;background-image:url(../images/embed/icons/search_glyph.png?1414940158)}.VS-search div,.VS-search span,.VS-search a,.VS-search img,.VS-search ul,.VS-search li,.VS-search form,.VS-search label,.VS-interface ul,.VS-interface li,.VS-interface{margin:0;padding:0;border:0;outline:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline}.VS-search :focus{outline:0}.VS-search{line-height:1;color:black}.VS-search ol,.VS-search ul{list-style:none}.VS-search{font-family:Arial,sans-serif;color:#373737;font-size:12px}.VS-search input{display:block;border:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;outline:none;margin:0;padding:4px;background:transparent;font-size:16px;line-height:20px;width:100%}.VS-interface,.VS-search .dialog,.VS-search input{font-family:"Lucida Grande","Lucida Sans Unicode",Helvetica,Arial,sans-serif!important;line-height:1.1em}.VS-search .VS-search-box{cursor:text;position:relative;background:transparent;border:2px solid #ccc;border-radius:16px;-webkit-border-radius:16px;-moz-border-radius:16px;background-color:#fafafa;-webkit-box-shadow:inset 0 0 3px #ccc;-moz-box-shadow:inset 0 0 3px #ccc;box-shadow:inset 0 0 3px #ccc;min-height:28px;height:auto}.VS-search.VS-readonly .VS-search-box{cursor:default}.VS-search .VS-search-box.VS-focus{border-color:#acf;-webkit-box-shadow:inset 0 0 3px #acf;-moz-box-shadow:inset 0 0 3px #acf;box-shadow:inset 0 0 3px #acf}.VS-search .VS-placeholder{position:absolute;top:7px;left:4px;margin:0 20px 0 22px;color:#808080;font-size:14px}.VS-search .VS-search-box.VS-focus .VS-placeholder,.VS-search .VS-search-box .VS-placeholder.VS-hidden{display:none}.VS-search .VS-search-inner{position:relative;margin:0 20px 0 22px;overflow:hidden}.VS-search input{width:100px}.VS-search input,.VS-search .VS-input-width-tester{padding:6px 0;float:left;color:#808080;font:13px/17px Helvetica,Arial}.VS-search.VS-focus input{color:#606060}.VS-search .VS-icon-search{position:absolute;left:9px;top:8px}.VS-search .VS-icon-cancel{position:absolute;right:9px;top:8px}.VS-search.VS-readonly .VS-icon-cancel{display:none}.VS-search .search_facet{float:left;margin:0;padding:0 0 0 14px;position:relative;border:1px solid transparent;height:20px;margin:3px -3px 3px 0}.VS-search.VS-readonly .search_facet{padding-left:0}.VS-search .search_facet.is_selected{margin-left:-3px;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px;background-color:#d2e6fd;background-image:-moz-linear-gradient(top,#d2e6fd,#b0d1f9);background-image:-webkit-gradient(linear,left top,left bottom,from(#d2e6fd),to(#b0d1f9));background-image:linear-gradient(top,#d2e6fd,#b0d1f9);border:1px solid #6eadf5}.VS-search .search_facet .category{float:left;text-transform:uppercase;font-weight:bold;font-size:10px;color:#808080;padding:8px 0 5px;line-height:13px;cursor:pointer;padding:4px 0 0}.VS-search.VS-readonly .search_facet .category{cursor:default}.VS-search .search_facet.is_selected .category{margin-left:3px}.VS-search .search_facet .search_facet_input_container{float:left}.VS-search .search_facet input{margin:0;padding:0;color:#000;font-size:13px;line-height:16px;padding:5px 0 5px 4px;height:16px;width:auto;z-index:100;position:relative;padding-top:1px;padding-bottom:2px;padding-right:3px}.VS-search .search_facet.is_editing input,.VS-search .search_facet.is_selected input{color:#000}.VS-search.VS-readonly .search_facet .search_facet_remove{display:none}.VS-search .search_facet .search_facet_remove{position:absolute;left:0;top:4px}.VS-search .search_facet.is_selected .search_facet_remove{opacity:.4;left:3px;filter:alpha(opacity=40);background-position:center -11px}.VS-search .search_facet .search_facet_remove:hover{opacity:1}.VS-search .search_facet.is_editing .category,.VS-search .search_facet.is_selected .category{color:#000}.VS-search .search_facet.search_facet_maybe_delete .category,.VS-search .search_facet.search_facet_maybe_delete input{color:darkred}.VS-search .search_input{height:28px;float:left;margin-left:-1px}.VS-search .search_input input{padding:6px 3px 6px 2px;line-height:10px;height:22px;margin-top:-4px;width:10px;z-index:100;min-width:4px;position:relative}.VS-search .search_input.is_editing input{color:#202020}.ui-helper-hidden-accessible{display:none}.VS-interface.ui-autocomplete{position:absolute;border:1px solid #C0C0C0;border-top:1px solid #D9D9D9;background-color:#F6F6F6;cursor:pointer;z-index:10000;padding:0;margin:0;width:auto;min-width:80px;max-width:220px;max-height:240px;overflow-y:auto;overflow-x:hidden;font-size:13px;top:5px;opacity:.97;box-shadow:3px 4px 5px -2px rgba(0,0,0,0.5);-webkit-box-shadow:3px 4px 5px -2px rgba(0,0,0,0.5);-moz-box-shadow:3px 4px 5px -2px rgba(0,0,0,0.5)}.VS-interface.ui-autocomplete .ui-autocomplete-category{text-transform:capitalize;font-size:11px;padding:4px 4px 4px;border-top:1px solid #A2A2A2;border-bottom:1px solid #A2A2A2;background-color:#B7B7B7;text-shadow:0 -1px 0 #999;font-weight:bold;color:white;cursor:default}.VS-interface.ui-autocomplete .ui-menu-item{float:none}.VS-interface.ui-autocomplete .ui-menu-item a{color:#000;outline:none;display:block;padding:3px 4px 5px;border-radius:none;line-height:1;background-color:#F8F8F8;background-image:-moz-linear-gradient(top,#F8F8F8,#F3F3F3);background-image:-webkit-gradient(linear,left top,left bottom,from(#F8F8F8),to(#F3F3F3));background-image:linear-gradient(top,#F8F8F8,#F3F3F3);border-top:1px solid #FAFAFA;border-bottom:1px solid #f0f0f0}.VS-interface.ui-autocomplete .ui-menu-item a:active{outline:none}.VS-interface.ui-autocomplete .ui-menu-item .ui-state-hover,.VS-interface.ui-autocomplete .ui-menu-item .ui-state-focus{background-color:#6483F7;background-image:-moz-linear-gradient(top,#648bF5,#2465f3);background-image:-webkit-gradient(linear,left top,left bottom,from(#648bF5),to(#2465f3));background-image:linear-gradient(top,#648bF5,#2465f3);border-top:1px solid #5b83ec;border-bottom:1px solid #1459e9;border-left:none;border-right:none;color:white;margin:0}.VS-interface.ui-autocomplete .ui-corner-all{border-radius:0}.VS-interface.ui-autocomplete li{list-style:none;width:auto} \ No newline at end of file diff --git a/build-min/visualsearch.css.gz b/build-min/visualsearch.css.gz index 432a661..bce54eb 100644 Binary files a/build-min/visualsearch.css.gz and b/build-min/visualsearch.css.gz differ diff --git a/build/visualsearch-datauri.css b/build/visualsearch-datauri.css index 54e39ac..e7ef9c5 100644 --- a/build/visualsearch-datauri.css +++ b/build/visualsearch-datauri.css @@ -265,7 +265,7 @@ Source: http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/ /* ================ */ .ui-helper-hidden-accessible { - display: none; + display: block; } .VS-interface.ui-autocomplete { diff --git a/demo.html b/demo.html index 0251024..b6c1ba8 100644 --- a/demo.html +++ b/demo.html @@ -1,4 +1,4 @@ - + @@ -302,9 +302,9 @@

Demo Try searching for: account, }, facetMatches : function(callback) { callback([ - 'account', - 'filter', - 'access', + 'account', + 'filter', + 'access', 'title', { label: 'city', category: 'location' }, { label: 'address', category: 'location' }, @@ -455,7 +455,7 @@

Demo Try searching for: account, }); }); - + diff --git a/demo_ajax.html b/demo_ajax.html new file mode 100644 index 0000000..a67ef59 --- /dev/null +++ b/demo_ajax.html @@ -0,0 +1,242 @@ + + + + + + DocumentCloud's VisualSearch.js + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

VisualSearch.js

+ +

Demo Try searching for: account, filter, access, title, + city, state, or country.

+ +
+
 
+ + +
+ + + diff --git a/lib/css/icons.css b/lib/css/icons.css index 72bce5a..4c32b16 100644 --- a/lib/css/icons.css +++ b/lib/css/icons.css @@ -4,16 +4,16 @@ vertical-align: middle; width: 16px; height: 16px; } - .VS-search .VS-icon-cancel { - width: 11px; height: 11px; - background-position: center 0; - background-image: url('../images/embed/icons/cancel_search.png'); - cursor: pointer; - } - .VS-search .VS-icon-cancel:hover { - background-position: center -11px; - } - .VS-search .VS-icon-search { - width: 12px; height: 12px; - background-image: url('../images/embed/icons/search_glyph.png'); - } +.VS-search .VS-icon-cancel { +width: 11px; height: 11px; +background-position: center 0; +background-image: url('../images/embed/icons/cancel_search.png'); +cursor: pointer; +} +.VS-search .VS-icon-cancel:hover { + background-position: center -11px; +} +.VS-search .VS-icon-search { +width: 12px; height: 12px; +background-image: url('../images/embed/icons/search_glyph.png'); +} diff --git a/lib/css/workspace.css b/lib/css/workspace.css index 498d6ff..032d114 100644 --- a/lib/css/workspace.css +++ b/lib/css/workspace.css @@ -195,26 +195,29 @@ float: left; margin-left: -1px; } - .VS-search .search_input input { - padding: 6px 3px 6px 2px; - line-height: 10px; - height: 22px; - margin-top: -4px; - width: 10px; - z-index: 100; - min-width: 4px; - position: relative; - } - .VS-search .search_input.is_editing input { - color: #202020; - } +.VS-search .search_input input { +padding: 6px 3px 6px 2px; +line-height: 10px; +height: 22px; +margin-top: -4px; +width: 10px; +z-index: 100; +min-width: 4px; +position: relative; +} +.VS-search .search_input.is_editing input { +color: #202020; +} /* ================ */ /* = Autocomplete = */ /* ================ */ .ui-helper-hidden-accessible { - display: none; + display: block; + position: fixed; + line-height: 25px; + color: #d5d5d5; } .VS-interface.ui-autocomplete { diff --git a/lib/js/models/search_facets.js b/lib/js/models/search_facets.js index 394cecd..1586aba 100644 --- a/lib/js/models/search_facets.js +++ b/lib/js/models/search_facets.js @@ -12,6 +12,11 @@ VS.model.SearchFacet = Backbone.Model.extend({ serialize : function() { var category = this.quoteCategory(this.get('category')); var value = VS.utils.inflector.trim(this.get('value')); + if(this.has('count')){ + var count = this.get('count'); + } else{ + var count = 0; + } var remainder = this.get("app").options.remainder; if (!value) return ''; diff --git a/lib/js/views/search_facet.js b/lib/js/views/search_facet.js index cb54414..a997abb 100644 --- a/lib/js/views/search_facet.js +++ b/lib/js/views/search_facet.js @@ -70,6 +70,12 @@ VS.ui.SearchFacet = Backbone.View.extend({ // than what it was, commit the facet and search for it. setupAutocomplete : function() { this.box.autocomplete({ + messages: { + noResults: "No search results.", + results: function( amount ) { + return amount + ( amount > 1 ? " results are" : " result is" ) + " available."; + } + }, source : _.bind(this.autocompleteValues, this), minLength : 0, delay : 0, diff --git a/lib/js/views/search_input.js b/lib/js/views/search_input.js index 5292984..33626c3 100644 --- a/lib/js/views/search_input.js +++ b/lib/js/views/search_input.js @@ -53,6 +53,12 @@ VS.ui.SearchInput = Backbone.View.extend({ // See `addTextFacetRemainder` for explanation on how the remainder works. setupAutocomplete : function() { this.box.autocomplete({ + messages: { + noResults: "No search results.", + results: function( amount ) { + return amount + ( amount > 1 ? " results are" : " result is" ) + " available."; + } + }, minLength : this.options.showFacets ? 0 : 1, delay : 50, autoFocus : true,