Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

+ 4.0.6, ! Fixes issue #57, ! multicategory searches work in the Pick…

…y standard frontend
  • Loading branch information...
commit b231ff7586d9b877157b8d728d7c4debe6df9e3c 1 parent dee31aa
Florian R. Hanke authored
6 client/javascripts/picky.min.js
View
@@ -11,7 +11,7 @@ this.searchTextEntered=function(a,c){if($.inArray(c.keyCode,[0,8,13,32,46,48,49,
new PickyController(b);var e=this.insert=function(d,j,n){g.insert(d,j||{},n||true)};this.insertFromURL=function(d){if(d&&d!="")e(d);else(d=g.lastQuery())&&e(d)};window.History&&window.History.Adapter.bind(window,"statechange",function(){var d=window.History.getState();(d=g.extractQuery(d.url))&&e(d)})};var PickyAddination=function(b,i){this.remove=function(){i.find(".addination").remove()};this.render=function(g){var e=g.total,d,j=g.renderedAmount();d=g.offset+j;j=d+j;g=g.total;if(g<j)j=g;d={offset:d,start:d+1,end:j};if(d.offset<e){e=$("<div class='addination'>"+t("results.addination.more")+"</div>");e.bind("click",{offset:d.offset},b.addinationClicked);return e}else return""}};var PickyResultsRenderer=function(b,i){var g=i.wrapResults||'<ol class="results"></ol>',e=["street_number","zipcode"],d=function(k){var m=k[k.length-1];k=k.slice(0,k.length-1);if(k==[])k=[k];if(!e.include(m[0]))if(m[1].match(/[^\*~]$/))m[1]+="*";k.push(m);return k},j=function(k){for(var m=Localization.explanations&&Localization.explanations[PickyI18n.locale]||{},r=[],p,a=0,c=k.length;a<c;a++){p=k[a];var f=p[0];f=m[f]||f;r.push([f,p[1]])}return r},n=function(k,m){return[k.replace(/([\w\s\u00c4\u00e4\u00d6\u00f6\u00dc\u00fc\u00e9\u00e8\u00e0]+)/,
"<strong>$1</strong>"),m].join(" ")},s=function(k,m){var r=Localization.explanation_delimiters[PickyI18n.locale],p=j(d(m)),a="",c=[];p=$.map(p,function(f){var o=f[0];f=f[1];if(a==""||o==a){f=f.replace(/[\w,]+:(.+)/,"$1");c.push(f);a=o}else{var q=n(a,c.join(" "));c=[];c.push(f);a=o;return q}});p.push(n(a,c.join(" ")));p=p.join(" "+r+" ");return'<span class="explanation">'+k+" "+p+"</span>"},u=function(k,m){var r='<div class="header">';r+=s(m.type,m.combination);if(k.offset>0)r+='<div class="tothetop"><a href="#" onclick="javascript:$(\'body\').animate({scrollTop: 0}, 500);">&uarr;</a></div>';
return r};this.render=function(k){var m=$("#picky div.results");k.allocations.each(function(r,p){if(p.entries.length>0){m.append(u(k,p)).append(p.entries.join(""));m.children("li").wrapAll(g)}});m.append(b.render(k))}};function AllocationRenderer(b,i){function g(a){var c={},f={},o=[],q;q=0;for(l=a.length;q<l;q++){var w=a[q][0];if(w in c){c[w]=c[w]+" "+a[q][1];o.push(q)}else{c[w]=a[q][1];f[q]=w}}for(q in f)a[q][1]=c[f[q]];for(q=o.length-1;q>=0;q--)a.remove(o[q]);return a}function e(a){return $.map(a,function(c,f){return"%"+(f+1)+"$s"}).join(" ")}function d(a){if(a.length==0)return"";var c=a=g(a);c.sort(function(x,z){return x[0]<z[0]?-1:1});for(var f=[],o=0,q=c.length;o<q;o++)f.push(c[o][0]);var w=f.length==1,v=r[f]||
-(r[f]=e(f));if($.type(v)==="string"){r[f]={format:v};v=r[f]}var h=1,y=v.format;$.each(a,function(x,z){var A=z[0],B=z[1];if(v.filter)B=v.filter(B);A=k[A]||A;if(w&&!(v&&v.ignoreSingle))return y=B+"&nbsp;("+A+")";y=y.replace(RegExp("%"+h+"\\$s","g"),B);h+=1;return h});return y}function j(a){for(var c=[],f=0,o=m.length;f<o;f++)c.push([]);c.push([]);f=0;for(o=a.length;f<o;f++){for(var q=a[f],w=q[0],v=false,h=0,y=m.length;h<y;h++)if(m[h].include(w)){c[h].push(q);v=true;break}v||c[c.length-1].push(q)}var x;
-for(a=c.length-1;a>=0;a--){x=c[a];if(x.length>0)break}x=x[x.length-1];p.include(x[0])||(x[1]+="...");return $.map(c,function(z){return d(z)})}function n(a){var c=[],f,o;for(o in a){f=a[o][0];f=u[f]||f;c[o]=f+":"+a[o][1]}return c.join(" ")}var s=PickyI18n.locale,u=Localization.qualifiers&&Localization.qualifiers[s]||{},k=Localization.explanations&&Localization.explanations[s]||{},m=i.groups||[],r=Localization.choices&&Localization.choices[s]||{};this.explanation=this.query=this.text="";var p=["street_number",
-"zipcode"];this.contract=g;this.rendered=d;this.groupify=j;this.querify=n;this.render=function(a){var c=a.combination,f=a.count;a=n(c);c=j(c).join(" ");c=$('<li><div class="text">'+c+'</div><div class="count">'+f+"</div></li>");c.bind("click",{query:a},b);return c}};var PickyAllocationsCloud=function(b,i){var g=$("#picky .allocations"),e=g.find(".shown"),d=g.find(".more"),j=g.find(".hidden"),n=function(){g.hide()},s=new AllocationRenderer(function(m){n();b.allocationChosen(m)},i),u=function(m){var r=[];m.each(function(p,a){r.push(s.render(a))});return r},k=function(m){if(m.length==0)return $("#search .allocations").hide();e.empty();d.hide();j.empty().hide();if(m.length>3){$.each(m.slice(0,2),function(r,p){e.append(p)});$.each(m.slice(2),function(r,p){j.append(p)});
+(r[f]=e(f));if($.type(v)==="string"){r[f]={format:v};v=r[f]}var h=1,y=v.format;$.each(a,function(x,z){var B=z[0],A=z[2];if(v.filter)A=v.filter(A);console.log(A);B=k[B]||B;if(w&&!(v&&v.ignoreSingle))return y=A+"&nbsp;("+B+")";y=y.replace(RegExp("%"+h+"\\$s","g"),A);h+=1;return h});return y}function j(a){for(var c=[],f=0,o=m.length;f<o;f++)c.push([]);c.push([]);f=0;for(o=a.length;f<o;f++){for(var q=a[f],w=q[0],v=false,h=0,y=m.length;h<y;h++)if(m[h].include(w)){c[h].push(q);v=true;break}v||c[c.length-
+1].push(q)}var x;for(a=c.length-1;a>=0;a--){x=c[a];if(x.length>0)break}x=x[x.length-1];p.include(x[0])||(x[1]+="...");return $.map(c,function(z){return d(z)})}function n(a){var c=[],f,o;for(o in a){f=a[o][0];f=u[f]||f;c[o]=f+":"+a[o][2]}return c.join(" ")}var s=PickyI18n.locale,u=Localization.qualifiers&&Localization.qualifiers[s]||{},k=Localization.explanations&&Localization.explanations[s]||{},m=i.groups||[],r=Localization.choices&&Localization.choices[s]||{};this.explanation=this.query=this.text=
+"";var p=["street_number","zipcode"];this.contract=g;this.rendered=d;this.groupify=j;this.querify=n;this.render=function(a){var c=a.combination,f=a.count;a=n(c);c=j(c).join(" ");c=$('<li><div class="text">'+c+'</div><div class="count">'+f+"</div></li>");c.bind("click",{query:a},b);return c}};var PickyAllocationsCloud=function(b,i){var g=$("#picky .allocations"),e=g.find(".shown"),d=g.find(".more"),j=g.find(".hidden"),n=function(){g.hide()},s=new AllocationRenderer(function(m){n();b.allocationChosen(m)},i),u=function(m){var r=[];m.each(function(p,a){r.push(s.render(a))});return r},k=function(m){if(m.length==0)return $("#search .allocations").hide();e.empty();d.hide();j.empty().hide();if(m.length>3){$.each(m.slice(0,2),function(r,p){e.append(p)});$.each(m.slice(2),function(r,p){j.append(p)});
d.show()}else $.each(m,function(r,p){e.append(p)});return $("#search .allocations").show()};d.click(function(){d.hide();j.show()});this.hide=n;this.show=function(m){k(u(m.allocations));g.show()}};
BIN  client/javascripts/picky.source.js.tar
View
Binary file not shown
13 client/javascripts/source/picky.allocation_renderer.js
View
@@ -27,6 +27,7 @@ function AllocationRenderer(allocationChosenCallback, config) {
var insert = {}; // remembers the insertion locations
var remove = []; // remembers the remove indexes
var i;
+
for (i = 0, l = zipped.length; i < l; i++) {
var key = zipped[i][0];
if (key in hash) {
@@ -97,12 +98,14 @@ function AllocationRenderer(allocationChosenCallback, config) {
// Replace each word into the formatting string.
//
- $.each(zipped, function(i, author_original_token) {
- var category = author_original_token[0];
- var word = author_original_token[1];
-
+ $.each(zipped, function(i, original_token) {
+ var category = original_token[0];
+ var word = original_token[2];
+
if (formatting.filter) { word = formatting.filter(word); }
+ console.log(word);
+
var explanation = explanations[category] || category;
if (single && !(formatting && formatting.ignoreSingle)) {
result = word + '&nbsp;(' + explanation + ')';
@@ -197,7 +200,7 @@ function AllocationRenderer(allocationChosenCallback, config) {
for (var i in zipped) {
qualifier = zipped[i][0];
qualifier = qualifiers[qualifier] || qualifier; // Use the returned qualifier if none is given.
- query_parts[i] = qualifier + ':' + zipped[i][1];
+ query_parts[i] = qualifier + ':' + zipped[i][2];
};
return query_parts.join(' ');
};
13 client/test_project/javascripts/picky.allocation_renderer.js
View
@@ -27,6 +27,7 @@ function AllocationRenderer(allocationChosenCallback, config) {
var insert = {}; // remembers the insertion locations
var remove = []; // remembers the remove indexes
var i;
+
for (i = 0, l = zipped.length; i < l; i++) {
var key = zipped[i][0];
if (key in hash) {
@@ -97,12 +98,14 @@ function AllocationRenderer(allocationChosenCallback, config) {
// Replace each word into the formatting string.
//
- $.each(zipped, function(i, author_original_token) {
- var category = author_original_token[0];
- var word = author_original_token[1];
-
+ $.each(zipped, function(i, original_token) {
+ var category = original_token[0];
+ var word = original_token[2];
+
if (formatting.filter) { word = formatting.filter(word); }
+ console.log(word);
+
var explanation = explanations[category] || category;
if (single && !(formatting && formatting.ignoreSingle)) {
result = word + '&nbsp;(' + explanation + ')';
@@ -197,7 +200,7 @@ function AllocationRenderer(allocationChosenCallback, config) {
for (var i in zipped) {
qualifier = zipped[i][0];
qualifier = qualifiers[qualifier] || qualifier; // Use the returned qualifier if none is given.
- query_parts[i] = qualifier + ':' + zipped[i][1];
+ query_parts[i] = qualifier + ':' + zipped[i][2];
};
return query_parts.join(' ');
};
6 generators/prototypes/client/sinatra/javascripts/picky.min.js
View
@@ -11,7 +11,7 @@ this.searchTextEntered=function(a,c){if($.inArray(c.keyCode,[0,8,13,32,46,48,49,
new PickyController(b);var e=this.insert=function(d,j,n){g.insert(d,j||{},n||true)};this.insertFromURL=function(d){if(d&&d!="")e(d);else(d=g.lastQuery())&&e(d)};window.History&&window.History.Adapter.bind(window,"statechange",function(){var d=window.History.getState();(d=g.extractQuery(d.url))&&e(d)})};var PickyAddination=function(b,i){this.remove=function(){i.find(".addination").remove()};this.render=function(g){var e=g.total,d,j=g.renderedAmount();d=g.offset+j;j=d+j;g=g.total;if(g<j)j=g;d={offset:d,start:d+1,end:j};if(d.offset<e){e=$("<div class='addination'>"+t("results.addination.more")+"</div>");e.bind("click",{offset:d.offset},b.addinationClicked);return e}else return""}};var PickyResultsRenderer=function(b,i){var g=i.wrapResults||'<ol class="results"></ol>',e=["street_number","zipcode"],d=function(k){var m=k[k.length-1];k=k.slice(0,k.length-1);if(k==[])k=[k];if(!e.include(m[0]))if(m[1].match(/[^\*~]$/))m[1]+="*";k.push(m);return k},j=function(k){for(var m=Localization.explanations&&Localization.explanations[PickyI18n.locale]||{},r=[],p,a=0,c=k.length;a<c;a++){p=k[a];var f=p[0];f=m[f]||f;r.push([f,p[1]])}return r},n=function(k,m){return[k.replace(/([\w\s\u00c4\u00e4\u00d6\u00f6\u00dc\u00fc\u00e9\u00e8\u00e0]+)/,
"<strong>$1</strong>"),m].join(" ")},s=function(k,m){var r=Localization.explanation_delimiters[PickyI18n.locale],p=j(d(m)),a="",c=[];p=$.map(p,function(f){var o=f[0];f=f[1];if(a==""||o==a){f=f.replace(/[\w,]+:(.+)/,"$1");c.push(f);a=o}else{var q=n(a,c.join(" "));c=[];c.push(f);a=o;return q}});p.push(n(a,c.join(" ")));p=p.join(" "+r+" ");return'<span class="explanation">'+k+" "+p+"</span>"},u=function(k,m){var r='<div class="header">';r+=s(m.type,m.combination);if(k.offset>0)r+='<div class="tothetop"><a href="#" onclick="javascript:$(\'body\').animate({scrollTop: 0}, 500);">&uarr;</a></div>';
return r};this.render=function(k){var m=$("#picky div.results");k.allocations.each(function(r,p){if(p.entries.length>0){m.append(u(k,p)).append(p.entries.join(""));m.children("li").wrapAll(g)}});m.append(b.render(k))}};function AllocationRenderer(b,i){function g(a){var c={},f={},o=[],q;q=0;for(l=a.length;q<l;q++){var w=a[q][0];if(w in c){c[w]=c[w]+" "+a[q][1];o.push(q)}else{c[w]=a[q][1];f[q]=w}}for(q in f)a[q][1]=c[f[q]];for(q=o.length-1;q>=0;q--)a.remove(o[q]);return a}function e(a){return $.map(a,function(c,f){return"%"+(f+1)+"$s"}).join(" ")}function d(a){if(a.length==0)return"";var c=a=g(a);c.sort(function(x,z){return x[0]<z[0]?-1:1});for(var f=[],o=0,q=c.length;o<q;o++)f.push(c[o][0]);var w=f.length==1,v=r[f]||
-(r[f]=e(f));if($.type(v)==="string"){r[f]={format:v};v=r[f]}var h=1,y=v.format;$.each(a,function(x,z){var A=z[0],B=z[1];if(v.filter)B=v.filter(B);A=k[A]||A;if(w&&!(v&&v.ignoreSingle))return y=B+"&nbsp;("+A+")";y=y.replace(RegExp("%"+h+"\\$s","g"),B);h+=1;return h});return y}function j(a){for(var c=[],f=0,o=m.length;f<o;f++)c.push([]);c.push([]);f=0;for(o=a.length;f<o;f++){for(var q=a[f],w=q[0],v=false,h=0,y=m.length;h<y;h++)if(m[h].include(w)){c[h].push(q);v=true;break}v||c[c.length-1].push(q)}var x;
-for(a=c.length-1;a>=0;a--){x=c[a];if(x.length>0)break}x=x[x.length-1];p.include(x[0])||(x[1]+="...");return $.map(c,function(z){return d(z)})}function n(a){var c=[],f,o;for(o in a){f=a[o][0];f=u[f]||f;c[o]=f+":"+a[o][1]}return c.join(" ")}var s=PickyI18n.locale,u=Localization.qualifiers&&Localization.qualifiers[s]||{},k=Localization.explanations&&Localization.explanations[s]||{},m=i.groups||[],r=Localization.choices&&Localization.choices[s]||{};this.explanation=this.query=this.text="";var p=["street_number",
-"zipcode"];this.contract=g;this.rendered=d;this.groupify=j;this.querify=n;this.render=function(a){var c=a.combination,f=a.count;a=n(c);c=j(c).join(" ");c=$('<li><div class="text">'+c+'</div><div class="count">'+f+"</div></li>");c.bind("click",{query:a},b);return c}};var PickyAllocationsCloud=function(b,i){var g=$("#picky .allocations"),e=g.find(".shown"),d=g.find(".more"),j=g.find(".hidden"),n=function(){g.hide()},s=new AllocationRenderer(function(m){n();b.allocationChosen(m)},i),u=function(m){var r=[];m.each(function(p,a){r.push(s.render(a))});return r},k=function(m){if(m.length==0)return $("#search .allocations").hide();e.empty();d.hide();j.empty().hide();if(m.length>3){$.each(m.slice(0,2),function(r,p){e.append(p)});$.each(m.slice(2),function(r,p){j.append(p)});
+(r[f]=e(f));if($.type(v)==="string"){r[f]={format:v};v=r[f]}var h=1,y=v.format;$.each(a,function(x,z){var B=z[0],A=z[2];if(v.filter)A=v.filter(A);console.log(A);B=k[B]||B;if(w&&!(v&&v.ignoreSingle))return y=A+"&nbsp;("+B+")";y=y.replace(RegExp("%"+h+"\\$s","g"),A);h+=1;return h});return y}function j(a){for(var c=[],f=0,o=m.length;f<o;f++)c.push([]);c.push([]);f=0;for(o=a.length;f<o;f++){for(var q=a[f],w=q[0],v=false,h=0,y=m.length;h<y;h++)if(m[h].include(w)){c[h].push(q);v=true;break}v||c[c.length-
+1].push(q)}var x;for(a=c.length-1;a>=0;a--){x=c[a];if(x.length>0)break}x=x[x.length-1];p.include(x[0])||(x[1]+="...");return $.map(c,function(z){return d(z)})}function n(a){var c=[],f,o;for(o in a){f=a[o][0];f=u[f]||f;c[o]=f+":"+a[o][2]}return c.join(" ")}var s=PickyI18n.locale,u=Localization.qualifiers&&Localization.qualifiers[s]||{},k=Localization.explanations&&Localization.explanations[s]||{},m=i.groups||[],r=Localization.choices&&Localization.choices[s]||{};this.explanation=this.query=this.text=
+"";var p=["street_number","zipcode"];this.contract=g;this.rendered=d;this.groupify=j;this.querify=n;this.render=function(a){var c=a.combination,f=a.count;a=n(c);c=j(c).join(" ");c=$('<li><div class="text">'+c+'</div><div class="count">'+f+"</div></li>");c.bind("click",{query:a},b);return c}};var PickyAllocationsCloud=function(b,i){var g=$("#picky .allocations"),e=g.find(".shown"),d=g.find(".more"),j=g.find(".hidden"),n=function(){g.hide()},s=new AllocationRenderer(function(m){n();b.allocationChosen(m)},i),u=function(m){var r=[];m.each(function(p,a){r.push(s.render(a))});return r},k=function(m){if(m.length==0)return $("#search .allocations").hide();e.empty();d.hide();j.empty().hide();if(m.length>3){$.each(m.slice(0,2),function(r,p){e.append(p)});$.each(m.slice(2),function(r,p){j.append(p)});
d.show()}else $.each(m,function(r,p){e.append(p)});return $("#search .allocations").show()};d.click(function(){d.hide();j.show()});this.hide=n;this.show=function(m){k(u(m.allocations));g.show()}};
4 history.textile
View
@@ -1,5 +1,9 @@
h2. Upcoming Version
+h2. 4.0.6
+
+* hanke: (client) Fixed "bug #57":https://github.com/floere/picky/issues/57, multicategory selections in the Javascript user interface.
+
h2. 4.0.5
* hanke: (server) Experimental release of @only@ option for searches. Does the same as @only:that_category@, but implicitly, in the search. E.g. @only :cat1, :cat2@.
6 server/lib/picky/query/token.rb
View
@@ -154,6 +154,12 @@ def qualify
else
[@qualifiers.split(@@split_qualifiers), @text]
end
+ # if @text.blank?
+ # @qualifiers = nil
+ # @text = @qualifiers || EMPTY_STRING
+ # else
+ # @qualifiers = @qualifiers.split @@split_qualifiers
+ # end
end
# Internally, qualifiers are nil if there are none.
2  version.rb
View
@@ -1,3 +1,3 @@
module Picky
- VERSION = '4.0.5'
+ VERSION = '4.0.6'
end
Please sign in to comment.
Something went wrong with that request. Please try again.