From a094a6af6f3598a75c344ac02d8ffb479de27655 Mon Sep 17 00:00:00 2001 From: James Sapara Date: Fri, 3 Feb 2012 14:48:55 -0600 Subject: [PATCH] On autocomplete 'create' we set the z-index of the input to auto, which solves show the input in modal dialogs not created in jQuery-UI. Twitter Bootstrap is a good example of where this issue would come up. --- build-min/visualsearch.js | 64 +---------------------------------- build-min/visualsearch.js.gz | Bin 6847 -> 7184 bytes build/visualsearch.js | 6 ++++ lib/js/views/search_facet.js | 3 ++ lib/js/views/search_input.js | 3 ++ 5 files changed, 13 insertions(+), 63 deletions(-) diff --git a/build-min/visualsearch.js b/build-min/visualsearch.js index 322287d..aeac1e3 100644 --- a/build-min/visualsearch.js +++ b/build-min/visualsearch.js @@ -1,63 +1 @@ -/* - VisualSearch.js 0.2.1 - (c) 2011 Samuel Clay, @samuelclay, DocumentCloud Inc. - VisualSearch.js may be freely distributed under the MIT license. - For all details and documentation: - http://documentcloud.github.com/visualsearch -*/ -(function(){var c=jQuery;if(!window.VS)window.VS={};if(!VS.app)VS.app={};if(!VS.ui)VS.ui={};if(!VS.model)VS.model={};if(!VS.utils)VS.utils={};VS.VERSION="0.2.1";VS.VisualSearch=function(a){var b={container:"",query:"",unquotable:[],callbacks:{search:c.noop,focus:c.noop,blur:c.noop,facetMatches:c.noop,valueMatches:c.noop}};this.options=_.extend({},b,a);this.options.callbacks=_.extend({},b.callbacks,a.callbacks);VS.app.hotkeys.initialize();this.searchQuery=new VS.model.SearchQuery;this.searchBox=new VS.ui.SearchBox({app:this}); -if(a.container)a=this.searchBox.render().el,c(this.options.container).html(a);this.searchBox.value(this.options.query||"");c(window).bind("unload",function(){});return this};VS.init=function(a){return new VS.VisualSearch(a)}})(); -(function(){var c=jQuery;VS.ui.SearchBox=Backbone.View.extend({id:"search",events:{"click .VS-cancel-search-box":"clearSearch","mousedown .VS-search-box":"maybeFocusSearch","dblclick .VS-search-box":"highlightSearch","click .VS-search-box":"maybeTripleClick"},initialize:function(){this.app=this.options.app;this.flags={allSelected:!1};this.facetViews=[];this.inputViews=[];_.bindAll(this,"renderFacets","_maybeDisableFacets","disableFacets","deselectAllFacets");this.app.searchQuery.bind("reset",this.renderFacets); -c(document).bind("keydown",this._maybeDisableFacets)},render:function(){c(this.el).append(JST.search_box({}));c(document.body).setMode("no","search");return this},value:function(a){return a==null?this.serialize():this.setQuery(a)},serialize:function(){var a=[],b=this.inputViews.length;this.app.searchQuery.each(_.bind(function(b,c){a.push(this.inputViews[c].value());a.push(b.serialize())},this));b&&a.push(this.inputViews[b-1].value());return _.compact(a).join(" ")},setQuery:function(a){this.currentQuery= -a;VS.app.SearchParser.parse(this.app,a)},viewPosition:function(a){a=_.indexOf(a.type=="facet"?this.facetViews:this.inputViews,a);a==-1&&(a=0);return a},searchEvent:function(a){var b=this.value();this.focusSearch(a);this.value(b);this.app.options.callbacks.search(b,this.app.searchQuery)},addFacet:function(a,b,c){a=VS.utils.inflector.trim(a);b=VS.utils.inflector.trim(b||"");if(a){var e=new VS.model.SearchFacet({category:a,value:b||"",app:this.app});this.app.searchQuery.add(e,{at:c});this.renderFacets(); -var d=_.detect(this.facetViews,function(a){if(a.model==e)return!0});_.defer(function(){d.enableEdit()})}},renderFacets:function(){this.facetViews=[];this.inputViews=[];this.$(".VS-search-inner").empty();this.app.searchQuery.each(_.bind(function(a,b){this.renderFacet(a,b)},this));this.renderSearchInput()},renderFacet:function(a,b){var c=new VS.ui.SearchFacet({app:this.app,model:a,order:b});this.renderSearchInput();this.facetViews.push(c);this.$(".VS-search-inner").children().eq(b*2).after(c.render().el); -c.calculateSize();_.defer(_.bind(c.calculateSize,c));return c},renderSearchInput:function(){var a=new VS.ui.SearchInput({position:this.inputViews.length,app:this.app});this.$(".VS-search-inner").append(a.render().el);this.inputViews.push(a)},clearSearch:function(a){var b=_.bind(function(){this.disableFacets();this.value("");this.flags.allSelected=!1;this.searchEvent(a);this.focusSearch(a)},this);this.app.options.callbacks.clearSearch?this.app.options.callbacks.clearSearch(b):b()},selectAllFacets:function(){this.flags.allSelected= -!0;c(document).one("click.selectAllFacets",this.deselectAllFacets);_.each(this.facetViews,function(a){a.selectFacet()});_.each(this.inputViews,function(a){a.selectText()})},allSelected:function(a){if(a)this.flags.allSelected=!1;return this.flags.allSelected},deselectAllFacets:function(a){this.disableFacets();if(this.$(a.target).is(".category,input")){var b=c(a.target).closest(".search_facet,.search_input"),g=_.detect(this.facetViews.concat(this.inputViews),function(a){return a.el==b[0]});g.type== -"facet"?g.selectFacet():g.type=="input"&&_.defer(function(){g.enableEdit(!0)})}},disableFacets:function(a){_.each(this.inputViews,function(b){b&&b!=a&&(b.modes.editing=="is"||b.modes.selected=="is")&&b.disableEdit()});_.each(this.facetViews,function(b){if(b&&b!=a&&(b.modes.editing=="is"||b.modes.selected=="is"))b.disableEdit(),b.deselectFacet()});this.flags.allSelected=!1;this.removeFocus();c(document).unbind("click.selectAllFacets")},resizeFacets:function(a){_.each(this.facetViews,function(b){(!a|| -b==a)&&b.resize()})},_maybeDisableFacets:function(a){if(this.flags.allSelected&&VS.app.hotkeys.key(a)=="backspace")return a.preventDefault(),this.clearSearch(a),!1;else this.flags.allSelected&&VS.app.hotkeys.printable(a)&&this.clearSearch(a)},focusNextFacet:function(a,b,c){var c=c||{},e=this.facetViews.length,d=c.viewPosition||this.viewPosition(a);c.skipToFacet?c.skipToFacet&&a.type=="text"&&e==d&&b>=0&&(b=d=0):(a.type=="text"&&b>0&&(b-=1),a.type=="facet"&&b<0&&(b+=1));var f,d=Math.min(e,d+b);a.type== -"text"?(d>=0&&d=e||d<0?(f=_.last(this.inputViews),f.enableEdit()):(f=this.facetViews[d],f.enableEdit(),f.setCursorAtEnd(b||c.startAtEnd)):(f=this.inputViews[d],f.enableEdit()));c.selectText&&f.selectText();this.resizeFacets()},maybeFocusSearch:function(a){(c(a.target).is(".VS-search-box")|| -c(a.target).is(".VS-search-inner")||a.type=="keydown")&&this.focusSearch(a)},focusSearch:function(a,b){var c=this.inputViews[this.inputViews.length-1];c.enableEdit(b);b||c.setCursorAtEnd(-1);a.type=="keydown"&&(c.keydown(a),c.box.trigger("keydown"));_.defer(_.bind(function(){this.$("input:focus").length||c.enableEdit(b)},this))},highlightSearch:function(a){if(c(a.target).is(".VS-search-box")||c(a.target).is(".VS-search-inner")||a.type=="keydown")this.inputViews[this.inputViews.length-1].startTripleClickTimer(), -this.focusSearch(a,!0)},maybeTripleClick:function(a){return this.inputViews[this.inputViews.length-1].maybeTripleClick(a)},addFocus:function(){this.app.options.callbacks.focus();this.$(".VS-search-box").addClass("VS-focus")},removeFocus:function(){this.app.options.callbacks.blur();_.any(this.facetViews.concat(this.inputViews),function(a){return a.isFocused()})||this.$(".VS-search-box").removeClass("VS-focus")},showFacetCategoryMenu:function(a){a.preventDefault();a.stopPropagation();if(this.facetCategoryMenu&& -this.facetCategoryMenu.modes.open=="is")return this.facetCategoryMenu.close();a=[{title:"Account",onClick:_.bind(this.addFacet,this,"account","")},{title:"Project",onClick:_.bind(this.addFacet,this,"project","")},{title:"Filter",onClick:_.bind(this.addFacet,this,"filter","")},{title:"Access",onClick:_.bind(this.addFacet,this,"access","")}];a=this.facetCategoryMenu||(this.facetCategoryMenu=new dc.ui.Menu({items:a,standalone:!0}));this.$(".VS-icon-search").after(a.render().open().content);return!1}})})(); -(function(){var c=jQuery;VS.ui.SearchFacet=Backbone.View.extend({type:"facet",className:"search_facet",events:{"click .category":"selectFacet","keydown input":"keydown","mousedown input":"enableEdit","mouseover .VS-icon-cancel":"showDelete","mouseout .VS-icon-cancel":"hideDelete","click .VS-icon-cancel":"remove"},initialize:function(){this.flags={canClose:!1};_.bindAll(this,"set","keydown","deselectFacet","deferDisableEdit")},render:function(){c(this.el).html(JST.search_facet({model:this.model})); -this.setMode("not","editing");this.setMode("not","selected");this.box=this.$("input");this.box.val(this.model.get("value"));this.box.bind("blur",this.deferDisableEdit);this.box.bind("input propertychange",this.keydown);this.setupAutocomplete();return this},calculateSize:function(){this.box.autoGrowInput();this.box.unbind("updated.autogrow");this.box.bind("updated.autogrow",_.bind(this.moveAutocomplete,this))},resize:function(a){this.box.trigger("resize.autogrow",a)},setupAutocomplete:function(){this.box.autocomplete({source:_.bind(this.autocompleteValues, -this),minLength:0,delay:0,autoFocus:!0,position:{offset:"0 5"},select:_.bind(function(a,b){a.preventDefault();var c=this.model.get("value");this.set(b.item.value);(c!=b.item.value||this.box.val()!=b.item.value)&&this.search(a);return!1},this),open:_.bind(function(){var a=this.box;this.box.autocomplete("widget").find(".ui-menu-item").each(function(){var b=c(this);b.data("item.autocomplete").value==a.val()&&a.data("autocomplete").menu.activate(new c.Event("mouseover"),b)})},this)});this.box.autocomplete("widget").addClass("VS-interface")}, -moveAutocomplete:function(){var a=this.box.data("autocomplete");a&&a.menu.element.position({my:"left top",at:"left bottom",of:this.box.data("autocomplete").element,collision:"flip",offset:"0 5"})},searchAutocomplete:function(){var a=this.box.data("autocomplete");if(a){var b=a.menu.element;a.search();b.outerWidth(Math.max(b.width("").outerWidth(),a.element.outerWidth()))}},closeAutocomplete:function(){var a=this.box.data("autocomplete");a&&a.close()},autocompleteValues:function(a,b){var g=this.model.get("category"), -e=this.model.get("value"),d=a.term;this.options.app.options.callbacks.valueMatches(g,d,function(a,g){g=g||{};a=a||[];if(d&&e!=d)var h=VS.utils.inflector.escapeRegExp(d||""),i=RegExp("\\b"+h,"i"),a=c.grep(a,function(a){return i.test(a)||i.test(a.value)||i.test(a.label)});g.preserveOrder?b(a):b(_.sortBy(a,function(a){return a==e||a.value==e?"":a}))})},set:function(a){a&&this.model.set({value:a})},search:function(a,b){b||(b=1);this.closeAutocomplete();this.options.app.searchBox.searchEvent(a);_.defer(_.bind(function(){this.options.app.searchBox.focusNextFacet(this, -b,{viewPosition:this.options.order})},this))},enableEdit:function(){this.modes.editing!="is"&&(this.setMode("is","editing"),this.deselectFacet(),this.box.val()==""&&this.box.val(this.model.get("value")));this.flags.canClose=!1;this.options.app.searchBox.disableFacets(this);this.options.app.searchBox.addFocus();_.defer(_.bind(function(){this.options.app.searchBox.addFocus()},this));this.resize();this.searchAutocomplete();this.box.focus()},deferDisableEdit:function(){this.flags.canClose=!0;_.delay(_.bind(function(){this.flags.canClose&& -!this.box.is(":focus")&&this.modes.editing=="is"&&this.modes.selected!="is"&&this.disableEdit()},this),250)},disableEdit:function(){var a=VS.utils.inflector.trim(this.box.val());a!=this.model.get("value")&&this.set(a);this.flags.canClose=!1;this.box.selectRange(0,0);this.box.blur();this.setMode("not","editing");this.closeAutocomplete();this.options.app.searchBox.removeFocus()},selectFacet:function(a){a&&a.preventDefault();var b=this.options.app.searchBox.allSelected();if(this.modes.selected!="is"){this.box.is(":focus")&& -(this.box.setCursorPosition(0),this.box.blur());this.flags.canClose=!1;this.closeAutocomplete();this.setMode("is","selected");this.setMode("not","editing");if(!b||a)c(document).unbind("keydown.facet",this.keydown),c(document).unbind("click.facet",this.deselectFacet),_.defer(_.bind(function(){c(document).unbind("keydown.facet").bind("keydown.facet",this.keydown);c(document).unbind("click.facet").one("click.facet",this.deselectFacet)},this)),this.options.app.searchBox.disableFacets(this),this.options.app.searchBox.addFocus(); -return!1}},deselectFacet:function(a){a&&a.preventDefault();this.modes.selected=="is"&&(this.setMode("not","selected"),this.closeAutocomplete(),this.options.app.searchBox.removeFocus());c(document).unbind("keydown.facet",this.keydown);c(document).unbind("click.facet",this.deselectFacet);return!1},isFocused:function(){return this.box.is(":focus")},showDelete:function(){c(this.el).addClass("search_facet_maybe_delete")},hideDelete:function(){c(this.el).removeClass("search_facet_maybe_delete")},setCursorAtEnd:function(a){a== --1?this.box.setCursorPosition(this.box.val().length):this.box.setCursorPosition(0)},remove:function(a){var b=this.model.get("value");this.deselectFacet();this.disableEdit();this.options.app.searchQuery.remove(this.model);b?this.search(a,-1):(this.options.app.searchBox.renderFacets(),this.options.app.searchBox.focusNextFacet(this,-1,{viewPosition:this.options.order}))},selectText:function(){this.box.selectRange(0,this.box.val().length)},keydown:function(a){var b=VS.app.hotkeys.key(a);if(b=="enter"&& -this.box.val())this.disableEdit(),this.search(a);else if(b=="left")this.modes.selected=="is"?(this.deselectFacet(),this.options.app.searchBox.focusNextFacet(this,-1,{startAtEnd:-1})):this.box.getCursorPosition()==0&&!this.box.getSelection().length&&this.selectFacet();else if(b=="right")this.modes.selected=="is"?(a.preventDefault(),this.deselectFacet(),this.setCursorAtEnd(0),this.enableEdit()):this.box.getCursorPosition()==this.box.val().length&&(a.preventDefault(),this.disableEdit(),this.options.app.searchBox.focusNextFacet(this, -1));else if(VS.app.hotkeys.shift&&b=="tab")a.preventDefault(),this.options.app.searchBox.focusNextFacet(this,-1,{startAtEnd:-1,skipToFacet:!0,selectText:!0});else if(b=="tab")a.preventDefault(),this.options.app.searchBox.focusNextFacet(this,1,{skipToFacet:!0,selectText:!0});else if(VS.app.hotkeys.command&&(a.which==97||a.which==65))return a.preventDefault(),this.options.app.searchBox.selectAllFacets(),!1;else VS.app.hotkeys.printable(a)&&this.modes.selected=="is"?(this.options.app.searchBox.focusNextFacet(this, --1,{startAtEnd:-1}),this.remove(a)):b=="backspace"&&(this.modes.selected=="is"?(a.preventDefault(),this.remove(a)):this.box.getCursorPosition()==0&&!this.box.getSelection().length&&(a.preventDefault(),this.selectFacet()));this.resize(a);a.which==null&&(this.searchAutocomplete(a),_.defer(_.bind(this.resize,this,a)))}})})(); -(function(){var c=jQuery;VS.ui.SearchInput=Backbone.View.extend({type:"text",className:"search_input",events:{"keypress input":"keypress","keydown input":"keydown","click input":"maybeTripleClick","dblclick input":"startTripleClickTimer"},initialize:function(){this.app=this.options.app;this.flags={canClose:!1};_.bindAll(this,"removeFocus","addFocus","moveAutocomplete","deferDisableEdit")},render:function(){c(this.el).html(JST.search_input({}));this.setMode("not","editing");this.setMode("not","selected"); -this.box=this.$("input");this.box.autoGrowInput();this.box.bind("updated.autogrow",this.moveAutocomplete);this.box.bind("blur",this.deferDisableEdit);this.box.bind("focus",this.addFocus);this.setupAutocomplete();return this},setupAutocomplete:function(){this.box.autocomplete({minLength:1,delay:50,autoFocus:!0,position:{offset:"0 -1"},source:_.bind(this.autocompleteValues,this),select:_.bind(function(a,b){a.preventDefault();a.stopPropagation();var c=this.options.position+(this.addTextFacetRemainder(b.item.value)? -1:0);this.app.searchBox.addFacet(b.item.value,"",c);return!1},this)});this.box.data("autocomplete")._renderMenu=function(a,b){var c="";_.each(b,_.bind(function(b){if(b.category&&b.category!=c)a.append('
  • '+b.category+"
  • "),c=b.category;this._renderItem(a,b)},this))};this.box.autocomplete("widget").addClass("VS-interface")},autocompleteValues:function(a,b){var g=a.term.match(/\w+$/),e=VS.utils.inflector.escapeRegExp(g&&g[0]||" ");this.app.options.callbacks.facetMatches(function(a, -g){var g=g||{},a=a||[],j=RegExp("^"+e,"i"),h=c.grep(a,function(a){return a&&j.test(a.label||a)});g.preserveOrder?b(h):b(_.sortBy(h,function(a){return a.label?a.category+"-"+a.label:a}))})},closeAutocomplete:function(){var a=this.box.data("autocomplete");a&&a.close()},moveAutocomplete:function(){var a=this.box.data("autocomplete");a&&a.menu.element.position({my:"left top",at:"left bottom",of:this.box.data("autocomplete").element,collision:"none",offset:"0 -1"})},searchAutocomplete:function(){var a= -this.box.data("autocomplete");if(a){var b=a.menu.element;a.search();b.outerWidth(Math.max(b.width("").outerWidth(),a.element.outerWidth()))}},addTextFacetRemainder:function(a){var b=this.box.val(),c=b.match(/\b(\w+)$/),e=RegExp(c[0],"i");c&&a.search(e)==0&&(b=b.replace(/\b(\w+)$/,""));(b=b.replace("^s+|s+$",""))&&this.app.searchBox.addFacet("text",b,this.options.position);return b},enableEdit:function(a){this.addFocus();a&&this.selectText();this.box.focus()},addFocus:function(){this.flags.canClose= -!1;this.app.searchBox.allSelected()||this.app.searchBox.disableFacets(this);this.app.searchBox.addFocus();this.setMode("is","editing");this.setMode("not","selected");this.searchAutocomplete()},disableEdit:function(){this.box.blur();this.removeFocus()},removeFocus:function(){this.flags.canClose=!1;this.app.searchBox.removeFocus();this.setMode("not","editing");this.setMode("not","selected");this.closeAutocomplete()},deferDisableEdit:function(){this.flags.canClose=!0;_.delay(_.bind(function(){this.flags.canClose&& -!this.box.is(":focus")&&this.modes.editing=="is"&&this.disableEdit()},this),250)},startTripleClickTimer:function(){this.tripleClickTimer=setTimeout(_.bind(function(){this.tripleClickTimer=null},this),500)},maybeTripleClick:function(a){if(this.tripleClickTimer)return a.preventDefault(),this.app.searchBox.selectAllFacets(),!1},isFocused:function(){return this.box.is(":focus")},value:function(){return this.box.val()},setCursorAtEnd:function(a){a==-1?this.box.setCursorPosition(this.box.val().length): -this.box.setCursorPosition(0)},selectText:function(){this.box.selectRange(0,this.box.val().length);this.app.searchBox.allSelected()?this.setMode("is","selected"):this.box.focus()},search:function(a,b){b||(b=0);this.closeAutocomplete();this.app.searchBox.searchEvent(a);_.defer(_.bind(function(){this.app.searchBox.focusNextFacet(this,b)},this))},keypress:function(a){var b=VS.app.hotkeys.key(a);if(b=="enter")return this.search(a,100);else if(VS.app.hotkeys.colon(a)){this.box.trigger("resize.autogrow", -a);var b=this.box.val(),c=[];this.app.options.callbacks.facetMatches&&this.app.options.callbacks.facetMatches(function(a){c=a});var e=_.map(c,function(a){return a.label?a.label:a});if(_.contains(e,b))return a.preventDefault(),a=this.options.position+(this.addTextFacetRemainder(b)?1:0),this.app.searchBox.addFacet(b,"",a),!1}else if(b=="backspace"&&this.box.getCursorPosition()==0&&!this.box.getSelection().length)return a.preventDefault(),a.stopPropagation(),a.stopImmediatePropagation(),this.app.searchBox.resizeFacets(), -!1},keydown:function(a){var b=VS.app.hotkeys.key(a);if(b=="left")this.box.getCursorPosition()==0&&(a.preventDefault(),this.app.searchBox.focusNextFacet(this,-1,{startAtEnd:-1}));else if(b=="right")this.box.getCursorPosition()==this.box.val().length&&(a.preventDefault(),this.app.searchBox.focusNextFacet(this,1,{selectFacet:!0}));else if(VS.app.hotkeys.shift&&b=="tab")a.preventDefault(),this.app.searchBox.focusNextFacet(this,-1,{selectText:!0});else if(b=="tab")if(a.preventDefault(),b=this.box.val(), -b.length){var c=this.options.position+(this.addTextFacetRemainder(b)?1:0);this.app.searchBox.addFacet(b,"",c)}else this.app.searchBox.focusNextFacet(this,0,{skipToFacet:!0,selectText:!0});else if(VS.app.hotkeys.command&&String.fromCharCode(a.which).toLowerCase()=="a")return a.preventDefault(),this.app.searchBox.selectAllFacets(),!1;else if(b=="backspace"&&!this.app.searchBox.allSelected()&&this.box.getCursorPosition()==0&&!this.box.getSelection().length)return a.preventDefault(),this.app.searchBox.focusNextFacet(this, --1,{backspace:!0}),!1;this.box.trigger("resize.autogrow",a)}})})();(function(){var c=jQuery;Backbone.View.prototype.setMode=function(a,b){this.modes||(this.modes={});this.modes[b]!==a&&(c(this.el).setMode(a,b),this.modes[b]=a)}})(); -(function(){var c=jQuery;VS.app.hotkeys={KEYS:{16:"shift",17:"command",91:"command",93:"command",224:"command",13:"enter",37:"left",38:"upArrow",39:"right",40:"downArrow",46:"delete",8:"backspace",9:"tab",188:"comma"},initialize:function(){_.bindAll(this,"down","up","blur");c(document).bind("keydown",this.down);c(document).bind("keyup",this.up);c(window).bind("blur",this.blur)},down:function(a){(a=this.KEYS[a.which])&&(this[a]=!0)},up:function(a){(a=this.KEYS[a.which])&&(this[a]=!1)},blur:function(){for(var a in this.KEYS)this[this.KEYS[a]]= -!1},key:function(a){return this.KEYS[a.which]},colon:function(a){return(a=a.which)&&String.fromCharCode(a)==":"},printable:function(a){var b=a.which;if(a.type=="keydown"){if(b==32||b>=48&&b<=90||b>=96&&b<=111||b>=186&&b<=192||b>=219&&b<=222)return!0}else if(b>=32&&b<=126||b>=160&&b<=500||String.fromCharCode(b)==":")return!0;return!1}}})(); -(function(){VS.utils.inflector={trim:function(c){return c.trim?c.trim():c.replace(/^\s+|\s+$/g,"")},escapeRegExp:function(c){return c.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")}}})(); -(function(){var c=jQuery;c.fn.extend({setMode:function(a,b){var b=b||"mode",c=RegExp("\\w+_"+b+"(\\s|$)","g"),e=a===null?"":a+"_"+b;this.each(function(){this.className=(this.className.replace(c,"")+" "+e).replace(/\s\s/g," ")});return e},autoGrowInput:function(){return this.each(function(){var a=c(this),b=c("
    ").css({opacity:0,top:-9999,left:-9999,position:"absolute",whiteSpace:"nowrap"}).addClass("VS-input-width-tester").addClass("VS-interface");a.next(".VS-input-width-tester").remove();a.after(b); -a.unbind("keydown.autogrow keypress.autogrow resize.autogrow change.autogrow").bind("keydown.autogrow keypress.autogrow resize.autogrow change.autogrow",function(c,e){e&&(c=e);var d=a.val();if(VS.app.hotkeys.key(c)=="backspace"){var f=a.getCursorPosition();f>0&&(d=d.slice(0,f-1)+d.slice(f,d.length))}else VS.app.hotkeys.printable(c)&&!VS.app.hotkeys.command&&(d+=String.fromCharCode(c.which));d=d.replace(/&/g,"&").replace(/\s/g," ").replace(//g,">");b.html(d);a.width(b.width()+ -3);a.trigger("updated.autogrow")});a.trigger("resize.autogrow")})},getCursorPosition:function(){var a=0,b=this.get(0);if(document.selection){b.focus();var a=document.selection.createRange(),g=document.selection.createRange().text.length;a.moveStart("character",-b.value.length);a=a.text.length-g}else if(b&&c(b).is(":visible")&&b.selectionStart!=null)a=b.selectionStart;return a},setCursorPosition:function(a){return this.each(function(){return c(this).selectRange(a,a)})},selectRange:function(a,b){return this.each(function(){if(this.setSelectionRange)this.focus(), -this.setSelectionRange(a,b);else if(this.createTextRange){var c=this.createTextRange();c.collapse(!0);c.moveEnd("character",b);c.moveStart("character",a);b-a>=0&&c.select()}})},getSelection:function(){var a=this[0];if(a.selectionStart!=null){var b=a.selectionStart,c=a.selectionEnd;return{start:b,end:c,length:c-b,text:a.value.substr(b,c-b)}}else if(document.selection){var e=document.selection.createRange();if(e)return a=a.createTextRange(),b=a.duplicate(),a.moveToBookmark(e.getBookmark()),b.setEndPoint("EndToStart", -a),b=b.text.length,c=b+e.text.length,{start:b,end:c,length:c-b,text:e.text}}return{start:0,end:0,length:0}}})})(); -(function(){VS.app.SearchParser={ALL_FIELDS:/('.+?'|".+?"|[^'"\s]{2}\S*):\s*('.+?'|".+?"|[^'"\s]\S*)/g,CATEGORY:/('.+?'|".+?"|[^'"\s]{2}\S*):\s*/,parse:function(c,a){var b=this._extractAllFacets(c,a);c.searchQuery.reset(b);return b},_extractAllFacets:function(c,a){for(var b=[],g=a;a;){var e,d,g=a,f=this._extractNextField(a);f?f.indexOf(":")!=-1?(e=f.match(this.CATEGORY)[1].replace(/(^['"]|['"]$)/g,""),d=f.replace(this.CATEGORY,"").replace(/(^['"]|['"]$)/g,""),a=VS.utils.inflector.trim(a.replace(f, -""))):f.indexOf(":")==-1&&(e="text",d=f,a=VS.utils.inflector.trim(a.replace(d,""))):(e="text",d=this._extractSearchText(a),a=VS.utils.inflector.trim(a.replace(d,"")));e&&d&&(f=new VS.model.SearchFacet({category:e,value:VS.utils.inflector.trim(d),app:c}),b.push(f));if(g==a)break}return b},_extractNextField:function(c){var a=c.match(/^\s*(\S+)\s+(?=\w+:\s?(('.+?'|".+?")|([^'"]{2}\S*)))/);return a&&a.length>=1?a[1]:this._extractFirstField(c)},_extractFirstField:function(c){return(c=c.match(this.ALL_FIELDS))&& -c.length&&c[0]},_extractSearchText:function(c){return VS.utils.inflector.trim((c||"").replace(this.ALL_FIELDS,""))}}})(); -(function(){VS.model.SearchFacet=Backbone.Model.extend({serialize:function(){var c=this.quoteCategory(this.get("category")),a=VS.utils.inflector.trim(this.get("value"));if(!a)return"";if(!_.contains(this.get("app").options.unquotable||[],c)&&c!="text")a=this.quoteValue(a);c!="text"?c+=": ":c="";return c+a},quoteCategory:function(c){var a=/"/.test(c),b=/'/.test(c),g=/\s/.test(c);return a&&!b?"'"+c+"'":g||b&&!a?'"'+c+'"':c},quoteValue:function(c){var a=/"/.test(c),b=/'/.test(c);return a&&!b?"'"+c+"'": -'"'+c+'"'}})})(); -(function(){VS.model.SearchQuery=Backbone.Collection.extend({model:VS.model.SearchFacet,serialize:function(){return this.map(function(c){return c.serialize()}).join(" ")},facets:function(){return this.map(function(c){var a={};a[c.get("category")]=c.get("value");return a})},find:function(c){var a=this.detect(function(a){return a.get("category")==c});return a&&a.get("value")},count:function(c){return this.select(function(a){return a.get("category")==c}).length},values:function(c){var a=this.select(function(a){return a.get("category")== -c});return _.map(a,function(a){return a.get("value")})},has:function(c,a){return this.any(function(b){var g=b.get("category")==c;return!a?g:g&&b.get("value")==a})},withoutCategory:function(c){return this.map(function(a){if(a.get("category")!=c)return a.serialize()}).join(" ")}})})(); -(function(){window.JST=window.JST||{};window.JST.search_box=_.template('');window.JST.search_facet=_.template('<% if (model.has(\'category\')) { %>\n
    <%= model.get(\'category\') %>:
    \n<% } %>\n\n
    \n \n
    \n\n
    '); -window.JST.search_input=_.template('')})(); +(function(){var a=jQuery;if(!window.VS){window.VS={}}if(!VS.app){VS.app={}}if(!VS.ui){VS.ui={}}if(!VS.model){VS.model={}}if(!VS.utils){VS.utils={}}VS.VERSION="0.2.1";VS.VisualSearch=function(b){var c={container:"",query:"",unquotable:[],callbacks:{search:a.noop,focus:a.noop,blur:a.noop,facetMatches:a.noop,valueMatches:a.noop}};this.options=_.extend({},c,b);this.options.callbacks=_.extend({},c.callbacks,b.callbacks);VS.app.hotkeys.initialize();this.searchQuery=new VS.model.SearchQuery();this.searchBox=new VS.ui.SearchBox({app:this});if(b.container){var d=this.searchBox.render().el;a(this.options.container).html(d)}this.searchBox.value(this.options.query||"");a(window).bind("unload",function(f){});return this};VS.init=function(b){return new VS.VisualSearch(b)}})();(function(){var a=jQuery;VS.ui.SearchBox=Backbone.View.extend({id:"search",events:{"click .VS-cancel-search-box":"clearSearch","mousedown .VS-search-box":"maybeFocusSearch","dblclick .VS-search-box":"highlightSearch","click .VS-search-box":"maybeTripleClick"},initialize:function(){this.app=this.options.app;this.flags={allSelected:false};this.facetViews=[];this.inputViews=[];_.bindAll(this,"renderFacets","_maybeDisableFacets","disableFacets","deselectAllFacets");this.app.searchQuery.bind("reset",this.renderFacets);a(document).bind("keydown",this._maybeDisableFacets)},render:function(){a(this.el).append(JST.search_box({}));a(document.body).setMode("no","search");return this},value:function(b){if(b==null){return this.serialize()}return this.setQuery(b)},serialize:function(){var c=[];var b=this.inputViews.length;this.app.searchQuery.each(_.bind(function(e,d){c.push(this.inputViews[d].value());c.push(e.serialize())},this));if(b){c.push(this.inputViews[b-1].value())}return _.compact(c).join(" ")},setQuery:function(b){this.currentQuery=b;VS.app.SearchParser.parse(this.app,b)},viewPosition:function(d){var c=d.type=="facet"?this.facetViews:this.inputViews;var b=_.indexOf(c,d);if(b==-1){b=0}return b},searchEvent:function(c){var b=this.value();this.focusSearch(c);this.value(b);this.app.options.callbacks.search(b,this.app.searchQuery)},addFacet:function(e,c,b){e=VS.utils.inflector.trim(e);c=VS.utils.inflector.trim(c||"");if(!e){return}var d=new VS.model.SearchFacet({category:e,value:c||"",app:this.app});this.app.searchQuery.add(d,{at:b});this.renderFacets();var f=_.detect(this.facetViews,function(g){if(g.model==d){return true}});_.defer(function(){f.enableEdit()})},renderFacets:function(){this.facetViews=[];this.inputViews=[];this.$(".VS-search-inner").empty();this.app.searchQuery.each(_.bind(function(c,b){this.renderFacet(c,b)},this));this.renderSearchInput()},renderFacet:function(d,b){var c=new VS.ui.SearchFacet({app:this.app,model:d,order:b});this.renderSearchInput();this.facetViews.push(c);this.$(".VS-search-inner").children().eq(b*2).after(c.render().el);c.calculateSize();_.defer(_.bind(c.calculateSize,c));return c},renderSearchInput:function(){var b=new VS.ui.SearchInput({position:this.inputViews.length,app:this.app});this.$(".VS-search-inner").append(b.render().el);this.inputViews.push(b)},clearSearch:function(c){var b=_.bind(function(){this.disableFacets();this.value("");this.flags.allSelected=false;this.searchEvent(c);this.focusSearch(c)},this);if(this.app.options.callbacks.clearSearch){this.app.options.callbacks.clearSearch(b)}else{b()}},selectAllFacets:function(){this.flags.allSelected=true;a(document).one("click.selectAllFacets",this.deselectAllFacets);_.each(this.facetViews,function(c,b){c.selectFacet()});_.each(this.inputViews,function(b,c){b.selectText()})},allSelected:function(b){if(b){this.flags.allSelected=false}return this.flags.allSelected},deselectAllFacets:function(d){this.disableFacets();if(this.$(d.target).is(".category,input")){var c=a(d.target).closest(".search_facet,.search_input");var b=_.detect(this.facetViews.concat(this.inputViews),function(e){return e.el==c[0]});if(b.type=="facet"){b.selectFacet()}else{if(b.type=="input"){_.defer(function(){b.enableEdit(true)})}}}},disableFacets:function(b){_.each(this.inputViews,function(c){if(c&&c!=b&&(c.modes.editing=="is"||c.modes.selected=="is")){c.disableEdit()}});_.each(this.facetViews,function(c){if(c&&c!=b&&(c.modes.editing=="is"||c.modes.selected=="is")){c.disableEdit();c.deselectFacet()}});this.flags.allSelected=false;this.removeFocus();a(document).unbind("click.selectAllFacets")},resizeFacets:function(b){_.each(this.facetViews,function(d,c){if(!b||d==b){d.resize()}})},_maybeDisableFacets:function(b){if(this.flags.allSelected&&VS.app.hotkeys.key(b)=="backspace"){b.preventDefault();this.clearSearch(b);return false}else{if(this.flags.allSelected&&VS.app.hotkeys.printable(b)){this.clearSearch(b)}}},focusNextFacet:function(h,g,d){d=d||{};var f=this.facetViews.length;var c=d.viewPosition||this.viewPosition(h);if(!d.skipToFacet){if(h.type=="text"&&g>0){g-=1}if(h.type=="facet"&&g<0){g+=1}}else{if(d.skipToFacet&&h.type=="text"&&f==c&&g>=0){c=0;g=0}}var b,e=Math.min(f,c+g);if(h.type=="text"){if(e>=0&&e=f||e<0){b=_.last(this.inputViews);b.enableEdit()}else{b=this.facetViews[e];b.enableEdit();b.setCursorAtEnd(g||d.startAtEnd)}}else{b=this.inputViews[e];b.enableEdit()}}}if(d.selectText){b.selectText()}this.resizeFacets()},maybeFocusSearch:function(b){if(a(b.target).is(".VS-search-box")||a(b.target).is(".VS-search-inner")||b.type=="keydown"){this.focusSearch(b)}},focusSearch:function(d,c){var b=this.inputViews[this.inputViews.length-1];b.enableEdit(c);if(!c){b.setCursorAtEnd(-1)}if(d.type=="keydown"){b.keydown(d);b.box.trigger("keydown")}_.defer(_.bind(function(){if(!this.$("input:focus").length){b.enableEdit(c)}},this))},highlightSearch:function(c){if(a(c.target).is(".VS-search-box")||a(c.target).is(".VS-search-inner")||c.type=="keydown"){var b=this.inputViews[this.inputViews.length-1];b.startTripleClickTimer();this.focusSearch(c,true)}},maybeTripleClick:function(c){var b=this.inputViews[this.inputViews.length-1];return b.maybeTripleClick(c)},addFocus:function(){this.app.options.callbacks.focus();this.$(".VS-search-box").addClass("VS-focus")},removeFocus:function(){this.app.options.callbacks.blur();var b=_.any(this.facetViews.concat(this.inputViews),function(c){return c.isFocused()});if(!b){this.$(".VS-search-box").removeClass("VS-focus")}},showFacetCategoryMenu:function(c){c.preventDefault();c.stopPropagation();if(this.facetCategoryMenu&&this.facetCategoryMenu.modes.open=="is"){return this.facetCategoryMenu.close()}var b=[{title:"Account",onClick:_.bind(this.addFacet,this,"account","")},{title:"Project",onClick:_.bind(this.addFacet,this,"project","")},{title:"Filter",onClick:_.bind(this.addFacet,this,"filter","")},{title:"Access",onClick:_.bind(this.addFacet,this,"access","")}];var d=this.facetCategoryMenu||(this.facetCategoryMenu=new dc.ui.Menu({items:b,standalone:true}));this.$(".VS-icon-search").after(d.render().open().content);return false}})})();(function(){var a=jQuery;VS.ui.SearchFacet=Backbone.View.extend({type:"facet",className:"search_facet",events:{"click .category":"selectFacet","keydown input":"keydown","mousedown input":"enableEdit","mouseover .VS-icon-cancel":"showDelete","mouseout .VS-icon-cancel":"hideDelete","click .VS-icon-cancel":"remove"},initialize:function(b){this.flags={canClose:false};_.bindAll(this,"set","keydown","deselectFacet","deferDisableEdit")},render:function(){a(this.el).html(JST.search_facet({model:this.model}));this.setMode("not","editing");this.setMode("not","selected");this.box=this.$("input");this.box.val(this.model.get("value"));this.box.bind("blur",this.deferDisableEdit);this.box.bind("input propertychange",this.keydown);this.setupAutocomplete();return this},calculateSize:function(){this.box.autoGrowInput();this.box.unbind("updated.autogrow");this.box.bind("updated.autogrow",_.bind(this.moveAutocomplete,this))},resize:function(b){this.box.trigger("resize.autogrow",b)},setupAutocomplete:function(){this.box.autocomplete({source:_.bind(this.autocompleteValues,this),minLength:0,delay:0,autoFocus:true,position:{offset:"0 5"},create:_.bind(function(c,b){a(this.el).find(".ui-autocomplete-input").css("z-index","auto")},this),select:_.bind(function(d,c){d.preventDefault();var b=this.model.get("value");this.set(c.item.value);if(b!=c.item.value||this.box.val()!=c.item.value){this.search(d)}return false},this),open:_.bind(function(d,c){var b=this.box;this.box.autocomplete("widget").find(".ui-menu-item").each(function(){var e=a(this);if(e.data("item.autocomplete")["value"]==b.val()){b.data("autocomplete").menu.activate(new a.Event("mouseover"),e)}})},this)});this.box.autocomplete("widget").addClass("VS-interface")},moveAutocomplete:function(){var b=this.box.data("autocomplete");if(b){b.menu.element.position({my:"left top",at:"left bottom",of:this.box.data("autocomplete").element,collision:"flip",offset:"0 5"})}},searchAutocomplete:function(c){var b=this.box.data("autocomplete");if(b){var d=b.menu.element;b.search();d.outerWidth(Math.max(d.width("").outerWidth(),b.element.outerWidth()))}},closeAutocomplete:function(){var b=this.box.data("autocomplete");if(b){b.close()}},autocompleteValues:function(d,f){var c=this.model.get("category");var e=this.model.get("value");var b=d.term;this.options.app.options.callbacks.valueMatches(c,b,function(i,g){g=g||{};i=i||[];if(b&&e!=b){var h=VS.utils.inflector.escapeRegExp(b||"");var j=new RegExp("\\b"+h,"i");i=a.grep(i,function(k){return j.test(k)||j.test(k.value)||j.test(k.label)})}if(g.preserveOrder){f(i)}else{f(_.sortBy(i,function(k){if(k==e||k.value==e){return""}else{return k}}))}})},set:function(b){if(!b){return}this.model.set({value:b})},search:function(c,b){if(!b){b=1}this.closeAutocomplete();this.options.app.searchBox.searchEvent(c);_.defer(_.bind(function(){this.options.app.searchBox.focusNextFacet(this,b,{viewPosition:this.options.order})},this))},enableEdit:function(){if(this.modes.editing!="is"){this.setMode("is","editing");this.deselectFacet();if(this.box.val()==""){this.box.val(this.model.get("value"))}}this.flags.canClose=false;this.options.app.searchBox.disableFacets(this);this.options.app.searchBox.addFocus();_.defer(_.bind(function(){this.options.app.searchBox.addFocus()},this));this.resize();this.searchAutocomplete();this.box.focus()},deferDisableEdit:function(){this.flags.canClose=true;_.delay(_.bind(function(){if(this.flags.canClose&&!this.box.is(":focus")&&this.modes.editing=="is"&&this.modes.selected!="is"){this.disableEdit()}},this),250)},disableEdit:function(){var b=VS.utils.inflector.trim(this.box.val());if(b!=this.model.get("value")){this.set(b)}this.flags.canClose=false;this.box.selectRange(0,0);this.box.blur();this.setMode("not","editing");this.closeAutocomplete();this.options.app.searchBox.removeFocus()},selectFacet:function(c){if(c){c.preventDefault()}var b=this.options.app.searchBox.allSelected();if(this.modes.selected=="is"){return}if(this.box.is(":focus")){this.box.setCursorPosition(0);this.box.blur()}this.flags.canClose=false;this.closeAutocomplete();this.setMode("is","selected");this.setMode("not","editing");if(!b||c){a(document).unbind("keydown.facet",this.keydown);a(document).unbind("click.facet",this.deselectFacet);_.defer(_.bind(function(){a(document).unbind("keydown.facet").bind("keydown.facet",this.keydown);a(document).unbind("click.facet").one("click.facet",this.deselectFacet)},this));this.options.app.searchBox.disableFacets(this);this.options.app.searchBox.addFocus()}return false},deselectFacet:function(b){if(b){b.preventDefault()}if(this.modes.selected=="is"){this.setMode("not","selected");this.closeAutocomplete();this.options.app.searchBox.removeFocus()}a(document).unbind("keydown.facet",this.keydown);a(document).unbind("click.facet",this.deselectFacet);return false},isFocused:function(){return this.box.is(":focus")},showDelete:function(){a(this.el).addClass("search_facet_maybe_delete")},hideDelete:function(){a(this.el).removeClass("search_facet_maybe_delete")},setCursorAtEnd:function(b){if(b==-1){this.box.setCursorPosition(this.box.val().length)}else{this.box.setCursorPosition(0)}},remove:function(c){var b=this.model.get("value");this.deselectFacet();this.disableEdit();this.options.app.searchQuery.remove(this.model);if(b){this.search(c,-1)}else{this.options.app.searchBox.renderFacets();this.options.app.searchBox.focusNextFacet(this,-1,{viewPosition:this.options.order})}},selectText:function(){this.box.selectRange(0,this.box.val().length)},keydown:function(c){var b=VS.app.hotkeys.key(c);if(b=="enter"&&this.box.val()){this.disableEdit();this.search(c)}else{if(b=="left"){if(this.modes.selected=="is"){this.deselectFacet();this.options.app.searchBox.focusNextFacet(this,-1,{startAtEnd:-1})}else{if(this.box.getCursorPosition()==0&&!this.box.getSelection().length){this.selectFacet()}}}else{if(b=="right"){if(this.modes.selected=="is"){c.preventDefault();this.deselectFacet();this.setCursorAtEnd(0);this.enableEdit()}else{if(this.box.getCursorPosition()==this.box.val().length){c.preventDefault();this.disableEdit();this.options.app.searchBox.focusNextFacet(this,1)}}}else{if(VS.app.hotkeys.shift&&b=="tab"){c.preventDefault();this.options.app.searchBox.focusNextFacet(this,-1,{startAtEnd:-1,skipToFacet:true,selectText:true})}else{if(b=="tab"){c.preventDefault();this.options.app.searchBox.focusNextFacet(this,1,{skipToFacet:true,selectText:true})}else{if(VS.app.hotkeys.command&&(c.which==97||c.which==65)){c.preventDefault();this.options.app.searchBox.selectAllFacets();return false}else{if(VS.app.hotkeys.printable(c)&&this.modes.selected=="is"){this.options.app.searchBox.focusNextFacet(this,-1,{startAtEnd:-1});this.remove(c)}else{if(b=="backspace"){if(this.modes.selected=="is"){c.preventDefault();this.remove(c)}else{if(this.box.getCursorPosition()==0&&!this.box.getSelection().length){c.preventDefault();this.selectFacet()}}}}}}}}}}this.resize(c);if(c.which==null){this.searchAutocomplete(c);_.defer(_.bind(this.resize,this,c))}}})})();(function(){var a=jQuery;VS.ui.SearchInput=Backbone.View.extend({type:"text",className:"search_input",events:{"keypress input":"keypress","keydown input":"keydown","click input":"maybeTripleClick","dblclick input":"startTripleClickTimer"},initialize:function(){this.app=this.options.app;this.flags={canClose:false};_.bindAll(this,"removeFocus","addFocus","moveAutocomplete","deferDisableEdit")},render:function(){a(this.el).html(JST.search_input({}));this.setMode("not","editing");this.setMode("not","selected");this.box=this.$("input");this.box.autoGrowInput();this.box.bind("updated.autogrow",this.moveAutocomplete);this.box.bind("blur",this.deferDisableEdit);this.box.bind("focus",this.addFocus);this.setupAutocomplete();return this},setupAutocomplete:function(){this.box.autocomplete({minLength:1,delay:50,autoFocus:true,position:{offset:"0 -1"},source:_.bind(this.autocompleteValues,this),create:_.bind(function(c,b){a(this.el).find(".ui-autocomplete-input").css("z-index","auto")},this),select:_.bind(function(f,d){f.preventDefault();f.stopPropagation();var c=this.addTextFacetRemainder(d.item.value);var b=this.options.position+(c?1:0);this.app.searchBox.addFacet(d.item.value,"",b);return false},this)});this.box.data("autocomplete")._renderMenu=function(c,b){var d="";_.each(b,_.bind(function(f,e){if(f.category&&f.category!=d){c.append('
  • '+f.category+"
  • ");d=f.category}this._renderItem(c,f)},this))};this.box.autocomplete("widget").addClass("VS-interface")},autocompleteValues:function(d,f){var b=d.term;var e=b.match(/\w+$/);var c=VS.utils.inflector.escapeRegExp(e&&e[0]||" ");this.app.options.callbacks.facetMatches(function(i,g){g=g||{};i=i||[];var j=new RegExp("^"+c,"i");var h=a.grep(i,function(k){return k&&j.test(k.label||k)});if(g.preserveOrder){f(h)}else{f(_.sortBy(h,function(k){if(k.label){return k.category+"-"+k.label}else{return k}}))}})},closeAutocomplete:function(){var b=this.box.data("autocomplete");if(b){b.close()}},moveAutocomplete:function(){var b=this.box.data("autocomplete");if(b){b.menu.element.position({my:"left top",at:"left bottom",of:this.box.data("autocomplete").element,collision:"none",offset:"0 -1"})}},searchAutocomplete:function(c){var b=this.box.data("autocomplete");if(b){var d=b.menu.element;b.search();d.outerWidth(Math.max(d.width("").outerWidth(),b.element.outerWidth()))}},addTextFacetRemainder:function(e){var d=this.box.val();var c=d.match(/\b(\w+)$/);var b=new RegExp(c[0],"i");if(c&&e.search(b)==0){d=d.replace(/\b(\w+)$/,"")}d=d.replace("^s+|s+$","");if(d){this.app.searchBox.addFacet("text",d,this.options.position)}return d},enableEdit:function(b){this.addFocus();if(b){this.selectText()}this.box.focus()},addFocus:function(){this.flags.canClose=false;if(!this.app.searchBox.allSelected()){this.app.searchBox.disableFacets(this)}this.app.searchBox.addFocus();this.setMode("is","editing");this.setMode("not","selected");this.searchAutocomplete()},disableEdit:function(){this.box.blur();this.removeFocus()},removeFocus:function(){this.flags.canClose=false;this.app.searchBox.removeFocus();this.setMode("not","editing");this.setMode("not","selected");this.closeAutocomplete()},deferDisableEdit:function(){this.flags.canClose=true;_.delay(_.bind(function(){if(this.flags.canClose&&!this.box.is(":focus")&&this.modes.editing=="is"){this.disableEdit()}},this),250)},startTripleClickTimer:function(){this.tripleClickTimer=setTimeout(_.bind(function(){this.tripleClickTimer=null},this),500)},maybeTripleClick:function(b){if(!!this.tripleClickTimer){b.preventDefault();this.app.searchBox.selectAllFacets();return false}},isFocused:function(){return this.box.is(":focus")},value:function(){return this.box.val()},setCursorAtEnd:function(b){if(b==-1){this.box.setCursorPosition(this.box.val().length)}else{this.box.setCursorPosition(0)}},selectText:function(){this.box.selectRange(0,this.box.val().length);if(!this.app.searchBox.allSelected()){this.box.focus()}else{this.setMode("is","selected")}},search:function(c,b){if(!b){b=0}this.closeAutocomplete();this.app.searchBox.searchEvent(c);_.defer(_.bind(function(){this.app.searchBox.focusNextFacet(this,b)},this))},keypress:function(h){var c=VS.app.hotkeys.key(h);if(c=="enter"){return this.search(h,100)}else{if(VS.app.hotkeys.colon(h)){this.box.trigger("resize.autogrow",h);var g=this.box.val();var f=[];if(this.app.options.callbacks.facetMatches){this.app.options.callbacks.facetMatches(function(e){f=e})}var i=_.map(f,function(e){if(e.label){return e.label}else{return e}});if(_.contains(i,g)){h.preventDefault();var d=this.addTextFacetRemainder(g);var b=this.options.position+(d?1:0);this.app.searchBox.addFacet(g,"",b);return false}}else{if(c=="backspace"){if(this.box.getCursorPosition()==0&&!this.box.getSelection().length){h.preventDefault();h.stopPropagation();h.stopImmediatePropagation();this.app.searchBox.resizeFacets();return false}}}}},keydown:function(g){var c=VS.app.hotkeys.key(g);if(c=="left"){if(this.box.getCursorPosition()==0){g.preventDefault();this.app.searchBox.focusNextFacet(this,-1,{startAtEnd:-1})}}else{if(c=="right"){if(this.box.getCursorPosition()==this.box.val().length){g.preventDefault();this.app.searchBox.focusNextFacet(this,1,{selectFacet:true})}}else{if(VS.app.hotkeys.shift&&c=="tab"){g.preventDefault();this.app.searchBox.focusNextFacet(this,-1,{selectText:true})}else{if(c=="tab"){g.preventDefault();var f=this.box.val();if(f.length){var d=this.addTextFacetRemainder(f);var b=this.options.position+(d?1:0);this.app.searchBox.addFacet(f,"",b)}else{this.app.searchBox.focusNextFacet(this,0,{skipToFacet:true,selectText:true})}}else{if(VS.app.hotkeys.command&&String.fromCharCode(g.which).toLowerCase()=="a"){g.preventDefault();this.app.searchBox.selectAllFacets();return false}else{if(c=="backspace"&&!this.app.searchBox.allSelected()){if(this.box.getCursorPosition()==0&&!this.box.getSelection().length){g.preventDefault();this.app.searchBox.focusNextFacet(this,-1,{backspace:true});return false}}}}}}}this.box.trigger("resize.autogrow",g)}})})();(function(){var a=jQuery;Backbone.View.prototype.setMode=function(c,b){this.modes||(this.modes={});if(this.modes[b]===c){return}a(this.el).setMode(c,b);this.modes[b]=c}})();(function(){var a=jQuery;VS.app.hotkeys={KEYS:{"16":"shift","17":"command","91":"command","93":"command","224":"command","13":"enter","37":"left","38":"upArrow","39":"right","40":"downArrow","46":"delete","8":"backspace","9":"tab","188":"comma"},initialize:function(){_.bindAll(this,"down","up","blur");a(document).bind("keydown",this.down);a(document).bind("keyup",this.up);a(window).bind("blur",this.blur)},down:function(c){var b=this.KEYS[c.which];if(b){this[b]=true}},up:function(c){var b=this.KEYS[c.which];if(b){this[b]=false}},blur:function(c){for(var b in this.KEYS){this[this.KEYS[b]]=false}},key:function(b){return this.KEYS[b.which]},colon:function(c){var b=c.which;return b&&String.fromCharCode(b)==":"},printable:function(c){var b=c.which;if(c.type=="keydown"){if(b==32||(b>=48&&b<=90)||(b>=96&&b<=111)||(b>=186&&b<=192)||(b>=219&&b<=222)){return true}}else{if((b>=32&&b<=126)||(b>=160&&b<=500)||(String.fromCharCode(b)==":")){return true}}return false}}})();(function(){var a=jQuery;VS.utils.inflector={trim:function(b){return b.trim?b.trim():b.replace(/^\s+|\s+$/g,"")},escapeRegExp:function(b){return b.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")}}})();(function(){var b=jQuery;b.fn.extend({setMode:function(d,e){e=e||"mode";var c=new RegExp("\\w+_"+e+"(\\s|$)","g");var f=(d===null)?"":d+"_"+e;this.each(function(){this.className=(this.className.replace(c,"")+" "+f).replace(/\s\s/g," ")});return f},autoGrowInput:function(){return this.each(function(){var e=b(this);var d=b("
    ").css({opacity:0,top:-9999,left:-9999,position:"absolute",whiteSpace:"nowrap"}).addClass("VS-input-width-tester").addClass("VS-interface");var c="keydown.autogrow keypress.autogrow resize.autogrow change.autogrow";e.next(".VS-input-width-tester").remove();e.after(d);e.unbind(c).bind(c,function(h,i){if(i){h=i}var g=e.val();if(VS.app.hotkeys.key(h)=="backspace"){var f=e.getCursorPosition();if(f>0){g=g.slice(0,f-1)+g.slice(f,g.length)}}else{if(VS.app.hotkeys.printable(h)&&!VS.app.hotkeys.command){g+=String.fromCharCode(h.which)}}g=g.replace(/&/g,"&").replace(/\s/g," ").replace(//g,">");d.html(g);e.width(d.width()+3);e.trigger("updated.autogrow")});e.trigger("resize.autogrow")})},getCursorPosition:function(){var d=0;var e=this.get(0);if(document.selection){e.focus();var f=document.selection.createRange();var c=document.selection.createRange().text.length;f.moveStart("character",-e.value.length);d=f.text.length-c}else{if(e&&b(e).is(":visible")&&e.selectionStart!=null){d=e.selectionStart}}return d},setCursorPosition:function(c){return this.each(function(){return b(this).selectRange(c,c)})},selectRange:function(d,c){return this.each(function(){if(this.setSelectionRange){this.focus();this.setSelectionRange(d,c)}else{if(this.createTextRange){var e=this.createTextRange();e.collapse(true);e.moveEnd("character",c);e.moveStart("character",d);if(c-d>=0){e.select()}}}})},getSelection:function(){var e=this[0];if(e.selectionStart!=null){var h=e.selectionStart;var c=e.selectionEnd;return{start:h,end:c,length:c-h,text:e.value.substr(h,c-h)}}else{if(document.selection){var d=document.selection.createRange();if(d){var f=e.createTextRange();var g=f.duplicate();f.moveToBookmark(d.getBookmark());g.setEndPoint("EndToStart",f);var h=g.text.length;var c=h+d.text.length;return{start:h,end:c,length:c-h,text:d.text}}}}return{start:0,end:0,length:0}}});if(b.browser.msie&&false){window.console={};var a;window.console.log=function(f){if(_.isArray(f)){var d=f[0];var e=_.map(f.slice(1),function(g){return JSON.stringify(g)}).join(" - ")}if(!a){a=b("
      ").css({position:"fixed",bottom:10,left:10,zIndex:20000,width:b("body").width()-80,border:"1px solid #000",padding:"10px",backgroundColor:"#fff",fontFamily:"arial,helvetica,sans-serif",fontSize:"11px"});b("body").append(a)}var c=b("
    1. "+d+" - "+e+"
    2. ").css({borderBottom:"1px solid #999999"});a.find("ol").append(c);_.delay(function(){c.fadeOut(500)},5000)}}})();(function(){var a=jQuery;VS.app.SearchParser={ALL_FIELDS:/('.+?'|".+?"|[^'"\s]{2}\S*):\s*('.+?'|".+?"|[^'"\s]\S*)/g,CATEGORY:/('.+?'|".+?"|[^'"\s]{2}\S*):\s*/,parse:function(b,d){var c=this._extractAllFacets(b,d);b.searchQuery.reset(c);return c},_extractAllFacets:function(b,g){var f=[];var c=g;while(g){var d,e;c=g;var h=this._extractNextField(g);if(!h){d="text";e=this._extractSearchText(g);g=VS.utils.inflector.trim(g.replace(e,""))}else{if(h.indexOf(":")!=-1){d=h.match(this.CATEGORY)[1].replace(/(^['"]|['"]$)/g,"");e=h.replace(this.CATEGORY,"").replace(/(^['"]|['"]$)/g,"");g=VS.utils.inflector.trim(g.replace(h,""))}else{if(h.indexOf(":")==-1){d="text";e=h;g=VS.utils.inflector.trim(g.replace(e,""))}}}if(d&&e){var i=new VS.model.SearchFacet({category:d,value:VS.utils.inflector.trim(e),app:b});f.push(i)}if(c==g){break}}return f},_extractNextField:function(d){var b=/^\s*(\S+)\s+(?=\w+:\s?(('.+?'|".+?")|([^'"]{2}\S*)))/;var c=d.match(b);if(c&&c.length>=1){return c[1]}else{return this._extractFirstField(d)}},_extractFirstField:function(c){var b=c.match(this.ALL_FIELDS);return b&&b.length&&b[0]},_extractSearchText:function(b){b=b||"";var c=VS.utils.inflector.trim(b.replace(this.ALL_FIELDS,""));return c}}})();(function(){var a=jQuery;VS.model.SearchFacet=Backbone.Model.extend({serialize:function(){var b=this.quoteCategory(this.get("category"));var c=VS.utils.inflector.trim(this.get("value"));if(!c){return""}if(!_.contains(this.get("app").options.unquotable||[],b)&&b!="text"){c=this.quoteValue(c)}if(b!="text"){b=b+": "}else{b=""}return b+c},quoteCategory:function(d){var e=(/"/).test(d);var b=(/'/).test(d);var c=(/\s/).test(d);if(e&&!b){return"'"+d+"'"}else{if(c||(b&&!e)){return'"'+d+'"'}else{return d}}},quoteValue:function(d){var c=(/"/).test(d);var b=(/'/).test(d);if(c&&!b){return"'"+d+"'"}else{return'"'+d+'"'}}})})();(function(){var a=jQuery;VS.model.SearchQuery=Backbone.Collection.extend({model:VS.model.SearchFacet,serialize:function(){return this.map(function(b){return b.serialize()}).join(" ")},facets:function(){return this.map(function(c){var b={};b[c.get("category")]=c.get("value");return b})},find:function(b){var c=this.detect(function(d){return d.get("category")==b});return c&&c.get("value")},count:function(b){return this.select(function(c){return c.get("category")==b}).length},values:function(b){var c=this.select(function(d){return d.get("category")==b});return _.map(c,function(d){return d.get("value")})},has:function(b,c){return this.any(function(e){var d=e.get("category")==b;if(!c){return d}return d&&e.get("value")==c})},withoutCategory:function(b){return this.map(function(c){if(c.get("category")!=b){return c.serialize()}}).join(" ")}})})();(function(){window.JST=window.JST||{};window.JST.search_box=_.template('');window.JST.search_facet=_.template('<% if (model.has(\'category\')) { %>\n
      <%= model.get(\'category\') %>:
      \n<% } %>\n\n
      \n \n
      \n\n
      ');window.JST.search_input=_.template('')})(); \ No newline at end of file diff --git a/build-min/visualsearch.js.gz b/build-min/visualsearch.js.gz index 224a180b7c6873530d43d12ba2bf6218dccf6a69..0361767d4de238e77ea2d8a2c646f27d91ee6c53 100644 GIT binary patch literal 7184 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 S3usFT{(k{)O!@0{Yybc@BFQHJ literal 6847 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 diff --git a/build/visualsearch.js b/build/visualsearch.js index 15e37ea..9e6bb63 100644 --- a/build/visualsearch.js +++ b/build/visualsearch.js @@ -542,6 +542,9 @@ VS.ui.SearchFacet = Backbone.View.extend({ delay : 0, autoFocus : true, position : {offset : "0 5"}, + create : _.bind(function(e, ui) { + $(this.el).find('.ui-autocomplete-input').css('z-index','auto'); + }, this), select : _.bind(function(e, ui) { e.preventDefault(); var originalValue = this.model.get('value'); @@ -936,6 +939,9 @@ VS.ui.SearchInput = Backbone.View.extend({ autoFocus : true, position : {offset : "0 -1"}, source : _.bind(this.autocompleteValues, this), + create : _.bind(function(e, ui) { + $(this.el).find('.ui-autocomplete-input').css('z-index','auto'); + }, this), select : _.bind(function(e, ui) { e.preventDefault(); e.stopPropagation(); diff --git a/lib/js/views/search_facet.js b/lib/js/views/search_facet.js index f81b132..ecde583 100644 --- a/lib/js/views/search_facet.js +++ b/lib/js/views/search_facet.js @@ -71,6 +71,9 @@ VS.ui.SearchFacet = Backbone.View.extend({ delay : 0, autoFocus : true, position : {offset : "0 5"}, + create : _.bind(function(e, ui) { + $(this.el).find('.ui-autocomplete-input').css('z-index','auto'); + }, this), select : _.bind(function(e, ui) { e.preventDefault(); var originalValue = this.model.get('value'); diff --git a/lib/js/views/search_input.js b/lib/js/views/search_input.js index ee565cc..0d7dbe1 100644 --- a/lib/js/views/search_input.js +++ b/lib/js/views/search_input.js @@ -53,6 +53,9 @@ VS.ui.SearchInput = Backbone.View.extend({ autoFocus : true, position : {offset : "0 -1"}, source : _.bind(this.autocompleteValues, this), + create : _.bind(function(e, ui) { + $(this.el).find('.ui-autocomplete-input').css('z-index','auto'); + }, this), select : _.bind(function(e, ui) { e.preventDefault(); e.stopPropagation();