diff --git a/jquery.indextank.renderer.js b/jquery.indextank.renderer.js index b3b91bb..e12eb05 100644 --- a/jquery.indextank.renderer.js +++ b/jquery.indextank.renderer.js @@ -30,6 +30,7 @@ r.appendTo(base.$el); }); base.$el.css({opacity: 1}); + base.options.afterRender(base.$el); }); base.$el.bind("Indextank.AjaxSearch.noResults", function(e, query) { @@ -59,7 +60,11 @@ .append( $("").addClass("description").html(item.snippet_text || item.text) ); }, setupContainer: function($el){ - $el.html(""); + $el.html(""); + }, + afterRender: function($el) { + // do nothing. You may want to re arrange items, + // append some sort of legend, zebra items, you name it. } }; diff --git a/tests/unit/jquery.indextank.renderer.js b/tests/unit/jquery.indextank.renderer.js index b05849e..e6ec565 100644 --- a/tests/unit/jquery.indextank.renderer.js +++ b/tests/unit/jquery.indextank.renderer.js @@ -15,6 +15,10 @@ module("Module Renderer", { this.okSetupContainer = function() { ok(true, "okSetupContainer"); }; + + this.okAfterRender = function() { + ok(true, "okAfterRender"); + }; }, teardown: function() { } @@ -28,6 +32,15 @@ test( "check that setupContainer function gets called once for each search", fun r.trigger("Indextank.AjaxSearch.success", this.resultSet); }); +test( "check that afterRender function gets called once for each search", function() { + expect(3); + r = $("
").indextank_Renderer({afterRender:this.okAfterRender, format:this.dummyFmt}); + r.trigger("Indextank.AjaxSearch.success", this.resultSet); + r.trigger("Indextank.AjaxSearch.success", this.resultSet); + r.trigger("Indextank.AjaxSearch.success", this.resultSet); +}); + + test( "check it calls format function for each result", function() { expect(4);