You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by ry...@apache.org on 2008/11/17 23:42:49 UTC
svn commit: r718422 [8/9] - in /lucene/solr/trunk: ./ contrib/javascript/
contrib/javascript/example/ contrib/javascript/example/reuters/
contrib/javascript/example/reuters/images/
contrib/javascript/example/testsolr/ contrib/javascript/example/testsol...
Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/class.tmpl
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/class.tmpl?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/class.tmpl (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/class.tmpl Mon Nov 17 14:42:45 2008
@@ -0,0 +1,487 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset={+IO.encoding+}" />
+ <meta name="generator" content="JsDoc Toolkit" />
+ {! Link.base = "../"; /* all generated links will be relative to this */ !}
+ <title>JsDoc Reference - {+data.alias+}</title>
+
+ <style type="text/css">
+ {+include("static/default.css")+}
+ </style>
+ </head>
+
+ <body>
+<!-- ============================== header ================================= -->
+ <!-- begin static/header.html -->
+ {+include("static/header.html")+}
+ <!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+ <div id="index">
+ <!-- begin publish.classesIndex -->
+ {+publish.classesIndex+}
+ <!-- end publish.classesIndex -->
+ </div>
+
+ <div id="content">
+<!-- ============================== class title ============================ -->
+ <h1 class="classTitle">
+ {!
+ var classType = "";
+
+ if (data.isBuiltin()) {
+ classType += "Built-In ";
+ }
+
+ if (data.isNamespace) {
+ if (data.is('FUNCTION')) {
+ classType += "Function ";
+ }
+ classType += "Namespace ";
+ }
+ else {
+ classType += "Class ";
+ }
+ !}
+ {+classType+}{+data.alias+}
+ </h1>
+
+<!-- ============================== class summary ========================== -->
+ <p class="description">
+ <if test="data.augments.length"><br />Extends
+ {+
+ data.augments
+ .sort()
+ .map(
+ function($) { return new Link().toSymbol($); }
+ )
+ .join(", ")
+ +}.<br />
+ </if>
+
+ {+resolveLinks(data.classDesc)+}
+
+ <if test="!data.isBuiltin()">{# isn't defined in any file #}
+ <br /><i>Defined in: </i> {+new Link().toSrc(data.srcFile)+}.
+ </if>
+ </p>
+
+<!-- ============================== constructor summary ==================== -->
+ <if test="!data.isBuiltin() && (data.isNamespace || data.is('CONSTRUCTOR'))">
+ <table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class {+data.alias+}.">
+ <caption>{+classType+}Summary</caption>
+ <thead>
+ <tr>
+ <th scope="col">Constructor Attributes</th>
+ <th scope="col">Constructor Name and Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td class="attributes">{!
+ if (data.isPrivate) output += "<private> ";
+ if (data.isInner) output += "<inner> ";
+ !} </td>
+ <td class="nameDescription" {!if (data.comment.getTag("hilited").length){output += 'style="color: red"'}!}>
+ <div class="fixedFont">
+ <b>{+ new Link().toSymbol(data.alias).inner('constructor')+}</b><if test="classType != 'Namespace '">{+ makeSignature(data.params) +}</if>
+ </div>
+ <div class="description">{+resolveLinks(summarize(data.desc))+}</div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </if>
+
+<!-- ============================== properties summary ===================== -->
+ <if test="data.properties.length">
+ {! var ownProperties = data.properties.filter(function($){return $.memberOf == data.alias && !$.isNamespace}).sort(makeSortby("name")); !}
+ <if test="ownProperties.length">
+ <table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class {+data.alias+}.">
+ <caption>Field Summary</caption>
+ <thead>
+ <tr>
+ <th scope="col">Field Attributes</th>
+ <th scope="col">Field Name and Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <for each="member" in="ownProperties">
+ <tr>
+ <td class="attributes">{!
+ if (member.isPrivate) output += "<private> ";
+ if (member.isInner) output += "<inner> ";
+ if (member.isStatic) output += "<static> ";
+ if (member.isConstant) output += "<constant> ";
+ !} </td>
+ <td class="nameDescription">
+ <div class="fixedFont">
+ <if test="member.isStatic && member.memberOf != '_global_'">{+member.memberOf+}.</if><b>{+new Link().toSymbol(member.alias).withText(member.name)+}</b>
+ </div>
+ <div class="description">{+resolveLinks(summarize(member.desc))+}</div>
+ </td>
+ </tr>
+ </for>
+ </tbody>
+ </table>
+ </if>
+
+ <if test="data.inheritsFrom.length">
+ <dl class="inheritsList">
+ {!
+ var borrowedMembers = data.properties.filter(function($) {return $.memberOf != data.alias});
+
+ var contributers = [];
+ borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)});
+ for (var i = 0, l = contributers.length; i < l; i++) {
+ output +=
+ "<dt>Fields borrowed from class "+new Link().toSymbol(contributers[i])+": </dt>"
+ +
+ "<dd>" +
+ borrowedMembers
+ .filter(
+ function($) { return $.memberOf == contributers[i] }
+ )
+ .sort(makeSortby("name"))
+ .map(
+ function($) { return new Link().toSymbol($.alias).withText($.name) }
+ )
+ .join(", ")
+ +
+ "</dd>";
+ }
+ !}
+ </dl>
+ </if>
+ </if>
+
+<!-- ============================== methods summary ======================== -->
+ <if test="data.methods.length">
+ {! var ownMethods = data.methods.filter(function($){return $.memberOf == data.alias && !$.isNamespace}).sort(makeSortby("name")); !}
+ <if test="ownMethods.length">
+ <table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class {+data.alias+}.">
+ <caption>Method Summary</caption>
+ <thead>
+ <tr>
+ <th scope="col">Method Attributes</th>
+ <th scope="col">Method Name and Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <for each="member" in="ownMethods">
+ <tr>
+ <td class="attributes">{!
+ if (member.isPrivate) output += "<private> ";
+ if (member.isInner) output += "<inner> ";
+ if (member.isStatic) output += "<static> ";
+ !} </td>
+ <td class="nameDescription">
+ <div class="fixedFont"><if test="member.isStatic && member.memberOf != '_global_'">{+member.memberOf+}.</if><b>{+new Link().toSymbol(member.alias).withText(member.name)+}</b>{+makeSignature(member.params)+}
+ </div>
+ <div class="description">{+resolveLinks(summarize(member.desc))+}</div>
+ </td>
+ </tr>
+ </for>
+ </tbody>
+ </table>
+ </if>
+
+ <if test="data.inheritsFrom.length">
+ <dl class="inheritsList">
+ {!
+ var borrowedMembers = data.methods.filter(function($) {return $.memberOf != data.alias});
+ var contributers = [];
+ borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)});
+ for (var i = 0, l = contributers.length; i < l; i++) {
+ output +=
+ "<dt>Methods borrowed from class "+new Link().toSymbol(contributers[i])+": </dt>"
+ +
+ "<dd>" +
+ borrowedMembers
+ .filter(
+ function($) { return $.memberOf == contributers[i] }
+ )
+ .sort(makeSortby("name"))
+ .map(
+ function($) { return new Link().toSymbol($.alias).withText($.name) }
+ )
+ .join(", ")
+ +
+ "</dd>";
+ }
+
+ !}
+ </dl>
+ </if>
+ </if>
+
+<!-- ============================== constructor details ==================== -->
+ <if test="!data.isBuiltin() && (data.isNamespace || data.is('CONSTRUCTOR'))">
+ <div class="details"><a name="constructor"> </a>
+ <div class="sectionTitle">
+ {+classType+}Detail
+ </div>
+
+ <div class="fixedFont">{!
+ if (data.isPrivate) output += "<private> ";
+ if (data.isInner) output += "<inner> ";
+ !}
+ <b>{+ data.alias +}</b><if test="classType != 'Namespace '">{+ makeSignature(data.params) +}</if>
+ </div>
+
+ <div class="description">
+ {+resolveLinks(data.desc)+}
+ <if test="data.author"><br /><i>Author: </i>{+data.author+}.</if>
+ </div>
+
+ <if test="data.example.length">
+ <for each="example" in="data.example">
+ <pre class="code">{+example+}</pre>
+ </for>
+ </if>
+
+
+ <if test="data.params.length">
+ <dl class="detailList">
+ <dt class="heading">Parameters:</dt>
+ <for each="item" in="data.params">
+ <dt>
+ {+((item.type)?""+("<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type)+"}</span> ")) : "")+} <b>{+item.name+}</b>
+ <if test="item.isOptional"><i>Optional<if test="item.defaultValue">, Default: {+item.defaultValue+}</if></i></if>
+ </dt>
+ <dd>{+resolveLinks(item.desc)+}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="data.deprecated">
+ <dl class="detailList">
+ <dt class="heading">Deprecated:</dt>
+ <dt>
+ {+resolveLinks(data.deprecated)+}
+ </dt>
+ </dl>
+ </if>
+ <if test="data.since">
+ <dl class="detailList">
+ <dt class="heading">Since:</dt>
+ <dd>{+ data.since +}</dd>
+ </dl>
+ </if>
+ <if test="data.exceptions.length">
+ <dl class="detailList">
+ <dt class="heading">Throws:</dt>
+ <for each="item" in="data.exceptions">
+ <dt>
+ {+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
+ </dt>
+ <dd>{+resolveLinks(item.desc)+}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="data.returns.length">
+ <dl class="detailList">
+ <dt class="heading">Returns:</dt>
+ <for each="item" in="data.returns">
+ <dd>{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}{+resolveLinks(item.desc)+}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="data.requires.length">
+ <dl class="detailList">
+ <dt class="heading">Requires:</dt>
+ <for each="item" in="data.requires">
+ <dd>{+ resolveLinks(item) +}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="data.see.length">
+ <dl class="detailList">
+ <dt class="heading">See:</dt>
+ <for each="item" in="data.see">
+ <dd>{+ new Link().toSymbol(item) +}</dd>
+ </for>
+ </dl>
+ </if>
+
+ </div>
+ </if>
+
+<!-- ============================== field details ========================== -->
+ <if test="defined(ownProperties) && ownProperties.length">
+ <div class="sectionTitle">
+ Field Detail
+ </div>
+ <for each="member" in="ownProperties">
+ <a name="{+Link.symbolNameToLinkName(member)+}"> </a>
+ <div class="fixedFont">{!
+ if (member.isPrivate) output += "<private> ";
+ if (member.isInner) output += "<inner> ";
+ if (member.isStatic) output += "<static> ";
+ if (member.isConstant) output += "<constant> ";
+ !}
+
+ <if test="member.type"><span class="light">{{+new Link().toSymbol(member.type)+}}</span></if>
+ <if test="member.isStatic && member.memberOf != '_global_'"><span class="light">{+member.memberOf+}.</span></if><b>{+member.name+}</b>
+
+ </div>
+ <div class="description">
+ {+resolveLinks(member.desc)+}
+ <if test="member.srcFile != data.srcFile">
+ <br />
+ <i>Defined in: </i> {+new Link().toSrc(member.srcFile)+}.
+ </if>
+ <if test="member.author"><br /><i>Author: </i>{+member.author+}.</if>
+ </div>
+
+ <if test="member.example.length">
+ <for each="example" in="member.example">
+ <pre class="code">{+example+}</pre>
+ </for>
+ </if>
+
+ <if test="member.deprecated">
+ <dl class="detailList">
+ <dt class="heading">Deprecated:</dt>
+ <dt>
+ {+ member.deprecated +}
+ </dt>
+ </dl>
+ </if>
+ <if test="member.since">
+ <dl class="detailList">
+ <dt class="heading">Since:</dt>
+ <dd>{+ member.since +}</dd>
+ </dl>
+ </if>
+ <if test="member.see.length">
+ <dl class="detailList">
+ <dt class="heading">See:</dt>
+ <for each="item" in="member.see">
+ <dd>{+ new Link().toSymbol(item) +}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="member.defaultValue">
+ <dl class="detailList">
+ <dt class="heading">Default Value:</dt>
+ <dd>
+ {+resolveLinks(member.defaultValue)+}
+ </dd>
+ </dl>
+ </if>
+
+ <if test="!$member_last"><hr /></if>
+ </for>
+ </if>
+
+<!-- ============================== method details ========================= -->
+ <if test="defined(ownMethods) && ownMethods.length">
+ <div class="sectionTitle">
+ Method Detail
+ </div>
+ <for each="member" in="ownMethods">
+ <a name="{+Link.symbolNameToLinkName(member)+}"> </a>
+ <div class="fixedFont">{!
+ if (member.isPrivate) output += "<private> ";
+ if (member.isInner) output += "<inner> ";
+ if (member.isStatic) output += "<static> ";
+ !}
+
+ <if test="member.type"><span class="light">{{+new Link().toSymbol(member.type)+}}</span></if>
+ <if test="member.isStatic && member.memberOf != '_global_'"><span class="light">{+member.memberOf+}.</span></if><b>{+member.name+}</b>{+makeSignature(member.params)+}
+
+ </div>
+ <div class="description">
+ {+resolveLinks(member.desc)+}
+ <if test="member.srcFile != data.srcFile">
+ <br />
+ <i>Defined in: </i> {+new Link().toSrc(member.srcFile)+}.
+ </if>
+ <if test="member.author"><br /><i>Author: </i>{+member.author+}.</if>
+ </div>
+
+ <if test="member.example.length">
+ <for each="example" in="member.example">
+ <pre class="code">{+example+}</pre>
+ </for>
+ </if>
+
+ <if test="member.params.length">
+ <dl class="detailList">
+ <dt class="heading">Parameters:</dt>
+ <for each="item" in="member.params">
+ <dt>
+ {+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}<b>{+item.name+}</b>
+ <if test="item.isOptional"><i>Optional<if test="item.defaultValue">, Default: {+item.defaultValue+}</if></i></if>
+ </dt>
+ <dd>{+resolveLinks(item.desc)+}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="member.deprecated">
+ <dl class="detailList">
+ <dt class="heading">Deprecated:</dt>
+ <dt>
+ {+member.deprecated+}
+ </dt>
+ </dl>
+ </if>
+ <if test="member.since">
+ <dl class="detailList">
+ <dt class="heading">Since:</dt>
+ <dd>{+ member.since +}</dd>
+ </dl>
+ </dl>
+ </if>
+ <if test="member.exceptions.length">
+ <dl class="detailList">
+ <dt class="heading">Throws:</dt>
+ <for each="item" in="member.exceptions">
+ <dt>
+ {+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
+ </dt>
+ <dd>{+resolveLinks(item.desc)+}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="member.returns.length">
+ <dl class="detailList">
+ <dt class="heading">Returns:</dt>
+ <for each="item" in="member.returns">
+ <dd>{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}{+resolveLinks(item.desc)+}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="member.requires.length">
+ <dl class="detailList">
+ <dt class="heading">Requires:</dt>
+ <for each="item" in="member.requires">
+ <dd>{+ resolveLinks(item) +}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="member.see.length">
+ <dl class="detailList">
+ <dt class="heading">See:</dt>
+ <for each="item" in="member.see">
+ <dd>{+ new Link().toSymbol(item) +}</dd>
+ </for>
+ </dl>
+ </if>
+
+ <if test="!$member_last"><hr /></if>
+ </for>
+ </if>
+
+ <hr />
+ </div>
+
+<!-- ============================== footer ================================= -->
+ <div class="fineprint" style="clear:both">
+ <if test="JSDOC.opt.D.copyright">©{+JSDOC.opt.D.copyright+}<br /></if>
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> {+JSDOC.VERSION+} on {+new Date()+}
+ </div>
+ </body>
+</html>
Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/index.tmpl
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/index.tmpl?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/index.tmpl (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/index.tmpl Mon Nov 17 14:42:45 2008
@@ -0,0 +1,39 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset={+IO.encoding+}"" />
+
+ <title>JsDoc Reference - Index</title>
+ <meta name="generator" content="JsDoc Toolkit" />
+
+ <style type="text/css">
+ {+include("static/default.css")+}
+ </style>
+ </head>
+
+ <body>
+ {+include("static/header.html")+}
+
+ <div id="index">
+ {+publish.classesIndex+}
+ </div>
+
+ <div id="content">
+ <h1 class="classTitle">Class Index</h1>
+
+ <for each="thisClass" in="data">
+ <div>
+ <h2>{+(new Link().toSymbol(thisClass.alias))+}</h2>
+ {+resolveLinks(summarize(thisClass.classDesc))+}
+ </div>
+ <hr />
+ </for>
+
+ </div>
+ <div class="fineprint" style="clear:both">
+ <if test="JSDOC.opt.D.copyright">©{+JSDOC.opt.D.copyright+}<br /></if>
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> {+JSDOC.VERSION+} on {+new Date()+}
+ </div>
+ </body>
+</html>
\ No newline at end of file
Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/publish.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/publish.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/publish.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/publish.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,166 @@
+function publish(symbolSet) {
+ publish.conf = { // trailing slash expected for dirs
+ ext: ".html",
+ outDir: JSDOC.opt.d || SYS.pwd+"../out/jsdoc/",
+ templatesDir: SYS.pwd+"../templates/jsdoc/",
+ symbolsDir: "symbols/",
+ srcDir: "symbols/src/"
+ };
+
+
+ if (JSDOC.opt.s && defined(Link) && Link.prototype._makeSrcLink) {
+ Link.prototype._makeSrcLink = function(srcFilePath) {
+ return "<"+srcFilePath+">";
+ }
+ }
+
+ IO.mkPath((publish.conf.outDir+"symbols/src").split("/"));
+
+ // used to check the details of things being linked to
+ Link.symbolSet = symbolSet;
+
+ try {
+ var classTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+"class.tmpl");
+ var classesTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+"allclasses.tmpl");
+ }
+ catch(e) {
+ print(e.message);
+ quit();
+ }
+
+ // filters
+ function hasNoParent($) {return ($.memberOf == "")}
+ function isaFile($) {return ($.is("FILE"))}
+ function isaClass($) {return ($.is("CONSTRUCTOR") || $.isNamespace)}
+
+ var symbols = symbolSet.toArray();
+
+ var files = JSDOC.opt.srcFiles;
+ for (var i = 0, l = files.length; i < l; i++) {
+ var file = files[i];
+ var srcDir = publish.conf.outDir + "symbols/src/";
+ makeSrcFile(file, srcDir);
+ }
+
+ var classes = symbols.filter(isaClass).sort(makeSortby("alias"));
+
+ Link.base = "../";
+ publish.classesIndex = classesTemplate.process(classes); // kept in memory
+
+ for (var i = 0, l = classes.length; i < l; i++) {
+ var symbol = classes[i];
+ var output = "";
+ output = classTemplate.process(symbol);
+
+ IO.saveFile(publish.conf.outDir+"symbols/", symbol.alias+publish.conf.ext, output);
+ }
+
+ // regenrate the index with different relative links
+ Link.base = "";
+ publish.classesIndex = classesTemplate.process(classes);
+
+ try {
+ var classesindexTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+"index.tmpl");
+ }
+ catch(e) { print(e.message); quit(); }
+
+ var classesIndex = classesindexTemplate.process(classes);
+ IO.saveFile(publish.conf.outDir, "index"+publish.conf.ext, classesIndex);
+ classesindexTemplate = classesIndex = classes = null;
+
+ try {
+ var fileindexTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+"allfiles.tmpl");
+ }
+ catch(e) { print(e.message); quit(); }
+
+ var documentedFiles = symbols.filter(isaFile);
+ var allFiles = [];
+
+ for (var i = 0; i < files.length; i++) {
+ allFiles.push(new JSDOC.Symbol(files[i], [], "FILE", new JSDOC.DocComment("/** */")));
+ }
+
+ for (var i = 0; i < documentedFiles.length; i++) {
+ var offset = files.indexOf(documentedFiles[i].alias);
+ allFiles[offset] = documentedFiles[i];
+ }
+
+ allFiles = allFiles.sort(makeSortby("name"));
+
+ var filesIndex = fileindexTemplate.process(allFiles);
+ IO.saveFile(publish.conf.outDir, "files"+publish.conf.ext, filesIndex);
+ fileindexTemplate = filesIndex = files = null;
+}
+
+
+/** Just the first sentence. */
+function summarize(desc) {
+ if (typeof desc != "undefined")
+ return desc.match(/([\w\W]+?\.)[^a-z0-9]/i)? RegExp.$1 : desc;
+}
+
+/** make a symbol sorter by some attribute */
+function makeSortby(attribute) {
+ return function(a, b) {
+ if (a[attribute] != undefined && b[attribute] != undefined) {
+ a = a[attribute].toLowerCase();
+ b = b[attribute].toLowerCase();
+ if (a < b) return -1;
+ if (a > b) return 1;
+ return 0;
+ }
+ }
+}
+
+function include(path) {
+ var path = publish.conf.templatesDir+path;
+ return IO.readFile(path);
+}
+
+function makeSrcFile(path, srcDir, name) {
+ if (JSDOC.opt.s) return;
+
+ if (!name) {
+ name = path.replace(/\.\.?[\\\/]/g, "").replace(/[\\\/]/g, "_");
+ name = name.replace(/\:/g, "_");
+ }
+
+ var src = {path: path, name:name, charset: IO.encoding, hilited: ""};
+
+ if (defined(JSDOC.PluginManager)) {
+ JSDOC.PluginManager.run("onPublishSrc", src);
+ }
+
+ if (src.hilited) {
+ IO.saveFile(srcDir, name+publish.conf.ext, src.hilited);
+ }
+}
+
+function makeSignature(params) {
+ if (!params) return "()";
+ var signature = "("
+ +
+ params.filter(
+ function($) {
+ return $.name.indexOf(".") == -1; // don't show config params in signature
+ }
+ ).map(
+ function($) {
+ return $.name;
+ }
+ ).join(", ")
+ +
+ ")";
+ return signature;
+}
+
+/** Find symbol {@link ...} strings in text and turn into html links */
+function resolveLinks(str, from) {
+ str = str.replace(/\{@link ([^} ]+) ?\}/gi,
+ function(match, symbolName) {
+ return new Link().toSymbol(symbolName);
+ }
+ );
+
+ return str;
+}
\ No newline at end of file
Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/static/default.css
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/static/default.css?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/static/default.css (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/static/default.css Mon Nov 17 14:42:45 2008
@@ -0,0 +1,162 @@
+/* default.css */
+body
+{
+ font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+ width: 800px;
+}
+
+.header
+{
+ clear: both;
+ background-color: #ccc;
+ padding: 8px;
+}
+
+h1
+{
+ font-size: 150%;
+ font-weight: bold;
+ padding: 0;
+ margin: 1em 0 0 .3em;
+}
+
+hr
+{
+ border: none 0;
+ border-top: 1px solid #7F8FB1;
+ height: 1px;
+}
+
+pre.code
+{
+ display: block;
+ padding: 8px;
+ border: 1px dashed #ccc;
+}
+
+#index
+{
+ margin-top: 24px;
+ float: left;
+ width: 160px;
+ position: absolute;
+ left: 8px;
+ background-color: #F3F3F3;
+ padding: 8px;
+}
+
+#content
+{
+ margin-left: 190px;
+ width: 600px;
+}
+
+.classList
+{
+ list-style-type: none;
+ padding: 0;
+ margin: 0 0 0 8px;
+ font-family: arial, sans-serif;
+ font-size: 1em;
+ overflow: auto;
+}
+
+.classList li
+{
+ padding: 0;
+ margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+ font-size:170%;
+ line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+ background-color: #7F8FB1;
+ color: #fff;
+ font-size:130%;
+ text-align: left;
+ padding: 2px 6px 2px 6px;
+ border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+ vertical-align: top;
+ padding: 4px;
+ border-bottom: 1px #7F8FB1 solid;
+ border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+ border-left: 1px #7F8FB1 solid;
+ width: 140px;
+ text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+ line-height: 15px;
+ color: #002EBE;
+ font-family: "Courier New",Courier,monospace;
+ font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+ text-align: left;
+ font-size: 13px;
+ line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+ line-height: 15px;
+ padding: 4px;
+ padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+ list-style: square;
+ margin-left: 20px;
+ padding-left: 0;
+}
+
+.detailList {
+ margin-left: 20px;
+ line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+ font-weight: bold;
+ padding-bottom: 6px;
+ margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+ color: #777;
+ font-style: italic;
+}
+
+.fineprint
+{
+ text-align: right;
+ font-size: 10px;
+}
\ No newline at end of file
Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/static/header.html
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/static/header.html?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/static/header.html (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/static/header.html Mon Nov 17 14:42:45 2008
@@ -0,0 +1,2 @@
+<div id="header">
+</div>
\ No newline at end of file
Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/static/index.html
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/static/index.html?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/static/index.html (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/static/index.html Mon Nov 17 14:42:45 2008
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+ <title>Generated Javascript Documentation</title>
+</head>
+<frameset cols="20%,80%">
+ <frame src="allclasses-frame.html" name="packageFrame" />
+ <frame src="splash.html" name="classFrame" />
+ <noframes>
+ <body>
+ <p>
+ This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+ </p>
+ </body>
+ </noframes>
+</frameset>
+</html>
\ No newline at end of file
Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/symbol.tmpl
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/symbol.tmpl?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/symbol.tmpl (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/jsdoc/symbol.tmpl Mon Nov 17 14:42:45 2008
@@ -0,0 +1,35 @@
+<symbol alias="{+data.alias+}">
+ <name>{+data.name+}</name>
+ <memberOf>{+data.memberOf+}</memberOf>
+ <isStatic>{+data.isStatic+}</isStatic>
+ <isa>{+data.isa+}</isa>
+ <desc>{+data.desc+}</desc>
+ <classDesc>{+data.classDesc+}</classDesc>
+
+ <methods><for each="method" in="data.methods">
+ <method>
+ <name>{+method.name+}</name>
+ <memberOf>{+method.memberOf+}</memberOf>
+ <isStatic>{+method.isStatic+}</isStatic>
+ <desc>{+method.desc+}</desc>
+ <params><for each="param" in="method.params">
+ <param>
+ <type>{+param.type+}</type>
+ <name>{+param.name+}</name>
+ <desc>{+param.desc+}</desc>
+ <defaultValue>{+param.defaultValue+}</defaultValue>
+ </param></for>
+ </params>
+ </method></for>
+ </methods>
+
+ <properties><for each="property" in="data.properties">
+ <property>
+ <name>{+property.name+}</name>
+ <memberOf>{+property.memberOf+}</memberOf>
+ <isStatic>{+property.isStatic+}</isStatic>
+ <desc>{+property.desc+}</desc>
+ <type>{+property.type+}</type>
+ </property></for>
+ </properties>
+</symbol>
Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/allclasses.tmpl
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/allclasses.tmpl?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/allclasses.tmpl (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/allclasses.tmpl Mon Nov 17 14:42:45 2008
@@ -0,0 +1,17 @@
+<div align="center">{+new Link().toFile("index.html").withText("Class Index")+}
+| {+new Link().toFile("files.html").withText("File Index")+}</div>
+<hr />
+<h2>Classes</h2>
+<ul class="classList">
+ <for each="thisClass" in="data">
+ <li>{!
+ if (thisClass.alias == "_global_") {
+ output += "<i>"+new Link().toClass(thisClass.alias)+"</i>";
+ }
+ else {
+ output += new Link().toClass(thisClass.alias);
+ }
+ !}</li>
+ </for>
+</ul>
+<hr />
\ No newline at end of file
Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/allfiles.tmpl
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/allfiles.tmpl?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/allfiles.tmpl (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/allfiles.tmpl Mon Nov 17 14:42:45 2008
@@ -0,0 +1,56 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset={+IO.encoding+}"" />
+ {! Link.base = ""; /* all generated links will be relative to this */ !}
+ <title>JsDoc Reference - File Index</title>
+ <meta name="generator" content="JsDoc Toolkit" />
+
+ <style type="text/css">
+ {+include("static/default.css")+}
+ </style>
+ </head>
+
+ <body>
+ {+include("static/header.html")+}
+
+ <div id="index">
+ {+publish.classesIndex+}
+ </div>
+
+ <div id="content">
+ <h1 class="classTitle">File Index</h1>
+
+ <for each="item" in="data">
+ <div>
+ <h2>{+new Link().toSrc(item.alias).withText(item.name)+}</h2>
+ <if test="item.desc">{+resolveLinks(summarize(item.desc))+}</if>
+ <dl>
+ <if test="item.author">
+ <dt class="heading">Author:</dt>
+ <dd>{+item.author+}</dd>
+ </if>
+ <if test="item.version">
+ <dt class="heading">Version:</dt>
+ <dd>{+item.version+}</dd>
+ </if>
+ {! var locations = item.comment.getTag('location').map(function($){return $.toString().replace(/(^\$ ?| ?\$$)/g, '').replace(/^HeadURL: https:/g, 'http:');}) !}
+ <if test="locations.length">
+ <dt class="heading">Location:</dt>
+ <for each="location" in="locations">
+ <dd><a href="{+location+}">{+location+}</a></dd>
+ </for>
+ </if>
+ </dl>
+ </div>
+ <hr />
+ </for>
+
+ </div>
+ <div class="fineprint" style="clear:both">
+ <if test="JSDOC.opt.D.copyright">©{+JSDOC.opt.D.copyright+}<br /></if>
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> {+JSDOC.VERSION+} on {+new Date()+}
+ </div>
+ </body>
+</html>
\ No newline at end of file
Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/class.tmpl
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/class.tmpl?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/class.tmpl (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/class.tmpl Mon Nov 17 14:42:45 2008
@@ -0,0 +1,487 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset={+IO.encoding+}" />
+ <meta name="generator" content="JsDoc Toolkit" />
+ {! Link.base = "../"; /* all generated links will be relative to this */ !}
+ <title>JsDoc Reference - {+data.alias+}</title>
+
+ <style type="text/css">
+ {+include("static/default.css")+}
+ </style>
+ </head>
+
+ <body>
+<!-- ============================== header ================================= -->
+ <!-- begin static/header.html -->
+ {+include("static/header.html")+}
+ <!-- end static/header.html -->
+
+<!-- ============================== classes index ============================ -->
+ <div id="index">
+ <!-- begin publish.classesIndex -->
+ {+publish.classesIndex+}
+ <!-- end publish.classesIndex -->
+ </div>
+
+ <div id="content">
+<!-- ============================== class title ============================ -->
+ <h1 class="classTitle">
+ {!
+ var classType = "";
+
+ if (data.isBuiltin()) {
+ classType += "Built-In ";
+ }
+
+ if (data.isNamespace) {
+ if (data.is('FUNCTION')) {
+ classType += "Function ";
+ }
+ classType += "Namespace ";
+ }
+ else {
+ classType += "Class ";
+ }
+ !}
+ {+classType+}{+data.alias+}
+ </h1>
+
+<!-- ============================== class summary ========================== -->
+ <p class="description">
+ <if test="data.augments.length"><br />Extends
+ {+
+ data.augments
+ .sort()
+ .map(
+ function($) { return new Link().toSymbol($); }
+ )
+ .join(", ")
+ +}.<br />
+ </if>
+
+ {+resolveLinks(data.classDesc)+}
+
+ <if test="!data.isBuiltin()">{# isn't defined in any file #}
+ <br /><i>Defined in: </i> {+new Link().toSrc(data.srcFile)+}.
+ </if>
+ </p>
+
+<!-- ============================== constructor summary ==================== -->
+ <if test="!data.isBuiltin() && (data.isNamespace || data.is('CONSTRUCTOR'))">
+ <table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class {+data.alias+}.">
+ <caption>{+classType+}Summary</caption>
+ <thead>
+ <tr>
+ <th scope="col">Constructor Attributes</th>
+ <th scope="col">Constructor Name and Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td class="attributes">{!
+ if (data.isPrivate) output += "<private> ";
+ if (data.isInner) output += "<inner> ";
+ !} </td>
+ <td class="nameDescription" {!if (data.comment.getTag("hilited").length){output += 'style="color: red"'}!}>
+ <div class="fixedFont">
+ <b>{+ new Link().toSymbol(data.alias).inner('constructor')+}</b><if test="classType != 'Namespace '">{+ makeSignature(data.params) +}</if>
+ </div>
+ <div class="description">{+resolveLinks(summarize(data.desc))+}</div>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </if>
+
+<!-- ============================== properties summary ===================== -->
+ <if test="data.properties.length">
+ {! var ownProperties = data.properties.filter(function($){return $.memberOf == data.alias && !$.isNamespace}).sort(makeSortby("name")); !}
+ <if test="ownProperties.length">
+ <table class="summaryTable" cellspacing="0" summary="A summary of the fields documented in the class {+data.alias+}.">
+ <caption>Field Summary</caption>
+ <thead>
+ <tr>
+ <th scope="col">Field Attributes</th>
+ <th scope="col">Field Name and Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <for each="member" in="ownProperties">
+ <tr>
+ <td class="attributes">{!
+ if (member.isPrivate) output += "<private> ";
+ if (member.isInner) output += "<inner> ";
+ if (member.isStatic) output += "<static> ";
+ if (member.isConstant) output += "<constant> ";
+ !} </td>
+ <td class="nameDescription">
+ <div class="fixedFont">
+ <if test="member.isStatic && member.memberOf != '_global_'">{+member.memberOf+}.</if><b>{+new Link().toSymbol(member.alias).withText(member.name)+}</b>
+ </div>
+ <div class="description">{+resolveLinks(summarize(member.desc))+}</div>
+ </td>
+ </tr>
+ </for>
+ </tbody>
+ </table>
+ </if>
+
+ <if test="data.inheritsFrom.length">
+ <dl class="inheritsList">
+ {!
+ var borrowedMembers = data.properties.filter(function($) {return $.memberOf != data.alias});
+
+ var contributers = [];
+ borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)});
+ for (var i = 0, l = contributers.length; i < l; i++) {
+ output +=
+ "<dt>Fields borrowed from class "+new Link().toSymbol(contributers[i])+": </dt>"
+ +
+ "<dd>" +
+ borrowedMembers
+ .filter(
+ function($) { return $.memberOf == contributers[i] }
+ )
+ .sort(makeSortby("name"))
+ .map(
+ function($) { return new Link().toSymbol($.alias).withText($.name) }
+ )
+ .join(", ")
+ +
+ "</dd>";
+ }
+ !}
+ </dl>
+ </if>
+ </if>
+
+<!-- ============================== methods summary ======================== -->
+ <if test="data.methods.length">
+ {! var ownMethods = data.methods.filter(function($){return $.memberOf == data.alias && !$.isNamespace}).sort(makeSortby("name")); !}
+ <if test="ownMethods.length">
+ <table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class {+data.alias+}.">
+ <caption>Method Summary</caption>
+ <thead>
+ <tr>
+ <th scope="col">Method Attributes</th>
+ <th scope="col">Method Name and Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <for each="member" in="ownMethods">
+ <tr>
+ <td class="attributes">{!
+ if (member.isPrivate) output += "<private> ";
+ if (member.isInner) output += "<inner> ";
+ if (member.isStatic) output += "<static> ";
+ !} </td>
+ <td class="nameDescription">
+ <div class="fixedFont"><if test="member.isStatic && member.memberOf != '_global_'">{+member.memberOf+}.</if><b>{+new Link().toSymbol(member.alias).withText(member.name)+}</b>{+makeSignature(member.params)+}
+ </div>
+ <div class="description">{+resolveLinks(summarize(member.desc))+}</div>
+ </td>
+ </tr>
+ </for>
+ </tbody>
+ </table>
+ </if>
+
+ <if test="data.inheritsFrom.length">
+ <dl class="inheritsList">
+ {!
+ var borrowedMembers = data.methods.filter(function($) {return $.memberOf != data.alias});
+ var contributers = [];
+ borrowedMembers.map(function($) {if (contributers.indexOf($.memberOf) < 0) contributers.push($.memberOf)});
+ for (var i = 0, l = contributers.length; i < l; i++) {
+ output +=
+ "<dt>Methods borrowed from class "+new Link().toSymbol(contributers[i])+": </dt>"
+ +
+ "<dd>" +
+ borrowedMembers
+ .filter(
+ function($) { return $.memberOf == contributers[i] }
+ )
+ .sort(makeSortby("name"))
+ .map(
+ function($) { return new Link().toSymbol($.alias).withText($.name) }
+ )
+ .join(", ")
+ +
+ "</dd>";
+ }
+
+ !}
+ </dl>
+ </if>
+ </if>
+
+<!-- ============================== constructor details ==================== -->
+ <if test="!data.isBuiltin() && (data.isNamespace || data.is('CONSTRUCTOR'))">
+ <div class="details"><a name="constructor"> </a>
+ <div class="sectionTitle">
+ {+classType+}Detail
+ </div>
+
+ <div class="fixedFont">{!
+ if (data.isPrivate) output += "<private> ";
+ if (data.isInner) output += "<inner> ";
+ !}
+ <b>{+ data.alias +}</b><if test="classType != 'Namespace '">{+ makeSignature(data.params) +}</if>
+ </div>
+
+ <div class="description">
+ {+resolveLinks(data.desc)+}
+ <if test="data.author"><br /><i>Author: </i>{+data.author+}.</if>
+ </div>
+
+ <if test="data.example.length">
+ <for each="example" in="data.example">
+ <pre class="code">{+example+}</pre>
+ </for>
+ </if>
+
+
+ <if test="data.params.length">
+ <dl class="detailList">
+ <dt class="heading">Parameters:</dt>
+ <for each="item" in="data.params">
+ <dt>
+ {+((item.type)?""+("<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type)+"}</span> ")) : "")+} <b>{+item.name+}</b>
+ <if test="item.isOptional"><i>Optional<if test="item.defaultValue">, Default: {+item.defaultValue+}</if></i></if>
+ </dt>
+ <dd>{+resolveLinks(item.desc)+}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="data.deprecated">
+ <dl class="detailList">
+ <dt class="heading">Deprecated:</dt>
+ <dt>
+ {+resolveLinks(data.deprecated)+}
+ </dt>
+ </dl>
+ </if>
+ <if test="data.since">
+ <dl class="detailList">
+ <dt class="heading">Since:</dt>
+ <dd>{+ data.since +}</dd>
+ </dl>
+ </if>
+ <if test="data.exceptions.length">
+ <dl class="detailList">
+ <dt class="heading">Throws:</dt>
+ <for each="item" in="data.exceptions">
+ <dt>
+ {+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
+ </dt>
+ <dd>{+resolveLinks(item.desc)+}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="data.returns.length">
+ <dl class="detailList">
+ <dt class="heading">Returns:</dt>
+ <for each="item" in="data.returns">
+ <dd>{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}{+resolveLinks(item.desc)+}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="data.requires.length">
+ <dl class="detailList">
+ <dt class="heading">Requires:</dt>
+ <for each="item" in="data.requires">
+ <dd>{+ resolveLinks(item) +}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="data.see.length">
+ <dl class="detailList">
+ <dt class="heading">See:</dt>
+ <for each="item" in="data.see">
+ <dd>{+ new Link().toSymbol(item) +}</dd>
+ </for>
+ </dl>
+ </if>
+
+ </div>
+ </if>
+
+<!-- ============================== field details ========================== -->
+ <if test="defined(ownProperties) && ownProperties.length">
+ <div class="sectionTitle">
+ Field Detail
+ </div>
+ <for each="member" in="ownProperties">
+ <a name="{+Link.symbolNameToLinkName(member)+}"> </a>
+ <div class="fixedFont">{!
+ if (member.isPrivate) output += "<private> ";
+ if (member.isInner) output += "<inner> ";
+ if (member.isStatic) output += "<static> ";
+ if (member.isConstant) output += "<constant> ";
+ !}
+
+ <if test="member.type"><span class="light">{{+new Link().toSymbol(member.type)+}}</span></if>
+ <if test="member.isStatic && member.memberOf != '_global_'"><span class="light">{+member.memberOf+}.</span></if><b>{+member.name+}</b>
+
+ </div>
+ <div class="description">
+ {+resolveLinks(member.desc)+}
+ <if test="member.srcFile != data.srcFile">
+ <br />
+ <i>Defined in: </i> {+new Link().toSrc(member.srcFile)+}.
+ </if>
+ <if test="member.author"><br /><i>Author: </i>{+member.author+}.</if>
+ </div>
+
+ <if test="member.example.length">
+ <for each="example" in="member.example">
+ <pre class="code">{+example+}</pre>
+ </for>
+ </if>
+
+ <if test="member.deprecated">
+ <dl class="detailList">
+ <dt class="heading">Deprecated:</dt>
+ <dt>
+ {+ member.deprecated +}
+ </dt>
+ </dl>
+ </if>
+ <if test="member.since">
+ <dl class="detailList">
+ <dt class="heading">Since:</dt>
+ <dd>{+ member.since +}</dd>
+ </dl>
+ </if>
+ <if test="member.see.length">
+ <dl class="detailList">
+ <dt class="heading">See:</dt>
+ <for each="item" in="member.see">
+ <dd>{+ new Link().toSymbol(item) +}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="member.defaultValue">
+ <dl class="detailList">
+ <dt class="heading">Default Value:</dt>
+ <dd>
+ {+resolveLinks(member.defaultValue)+}
+ </dd>
+ </dl>
+ </if>
+
+ <if test="!$member_last"><hr /></if>
+ </for>
+ </if>
+
+<!-- ============================== method details ========================= -->
+ <if test="defined(ownMethods) && ownMethods.length">
+ <div class="sectionTitle">
+ Method Detail
+ </div>
+ <for each="member" in="ownMethods">
+ <a name="{+Link.symbolNameToLinkName(member)+}"> </a>
+ <div class="fixedFont">{!
+ if (member.isPrivate) output += "<private> ";
+ if (member.isInner) output += "<inner> ";
+ if (member.isStatic) output += "<static> ";
+ !}
+
+ <if test="member.type"><span class="light">{{+new Link().toSymbol(member.type)+}}</span></if>
+ <if test="member.isStatic && member.memberOf != '_global_'"><span class="light">{+member.memberOf+}.</span></if><b>{+member.name+}</b>{+makeSignature(member.params)+}
+
+ </div>
+ <div class="description">
+ {+resolveLinks(member.desc)+}
+ <if test="member.srcFile != data.srcFile">
+ <br />
+ <i>Defined in: </i> {+new Link().toSrc(member.srcFile)+}.
+ </if>
+ <if test="member.author"><br /><i>Author: </i>{+member.author+}.</if>
+ </div>
+
+ <if test="member.example.length">
+ <for each="example" in="member.example">
+ <pre class="code">{+example+}</pre>
+ </for>
+ </if>
+
+ <if test="member.params.length">
+ <dl class="detailList">
+ <dt class="heading">Parameters:</dt>
+ <for each="item" in="member.params">
+ <dt>
+ {+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}<b>{+item.name+}</b>
+ <if test="item.isOptional"><i>Optional<if test="item.defaultValue">, Default: {+item.defaultValue+}</if></i></if>
+ </dt>
+ <dd>{+resolveLinks(item.desc)+}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="member.deprecated">
+ <dl class="detailList">
+ <dt class="heading">Deprecated:</dt>
+ <dt>
+ {+member.deprecated+}
+ </dt>
+ </dl>
+ </if>
+ <if test="member.since">
+ <dl class="detailList">
+ <dt class="heading">Since:</dt>
+ <dd>{+ member.since +}</dd>
+ </dl>
+ </dl>
+ </if>
+ <if test="member.exceptions.length">
+ <dl class="detailList">
+ <dt class="heading">Throws:</dt>
+ <for each="item" in="member.exceptions">
+ <dt>
+ {+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+} <b>{+item.name+}</b>
+ </dt>
+ <dd>{+resolveLinks(item.desc)+}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="member.returns.length">
+ <dl class="detailList">
+ <dt class="heading">Returns:</dt>
+ <for each="item" in="member.returns">
+ <dd>{+((item.type)?"<span class=\"light fixedFont\">{"+(new Link().toSymbol(item.type))+"}</span> " : "")+}{+resolveLinks(item.desc)+}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="member.requires.length">
+ <dl class="detailList">
+ <dt class="heading">Requires:</dt>
+ <for each="item" in="member.requires">
+ <dd>{+ resolveLinks(item) +}</dd>
+ </for>
+ </dl>
+ </if>
+ <if test="member.see.length">
+ <dl class="detailList">
+ <dt class="heading">See:</dt>
+ <for each="item" in="member.see">
+ <dd>{+ new Link().toSymbol(item) +}</dd>
+ </for>
+ </dl>
+ </if>
+
+ <if test="!$member_last"><hr /></if>
+ </for>
+ </if>
+
+ <hr />
+ </div>
+
+<!-- ============================== footer ================================= -->
+ <div class="fineprint" style="clear:both">
+ <if test="JSDOC.opt.D.copyright">©{+JSDOC.opt.D.copyright+}<br /></if>
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blank">JsDoc Toolkit</a> {+JSDOC.VERSION+} on {+new Date()+}
+ </div>
+ </body>
+</html>
Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/index.tmpl
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/index.tmpl?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/index.tmpl (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/index.tmpl Mon Nov 17 14:42:45 2008
@@ -0,0 +1,39 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset={+IO.encoding+}"" />
+
+ <title>JsDoc Reference - Index</title>
+ <meta name="generator" content="JsDoc Toolkit" />
+
+ <style type="text/css">
+ {+include("static/default.css")+}
+ </style>
+ </head>
+
+ <body>
+ {+include("static/header.html")+}
+
+ <div id="index">
+ {+publish.classesIndex+}
+ </div>
+
+ <div id="content">
+ <h1 class="classTitle">Class Index</h1>
+
+ <for each="thisClass" in="data">
+ <div>
+ <h2>{+(new Link().toSymbol(thisClass.alias))+}</h2>
+ {+resolveLinks(summarize(thisClass.classDesc))+}
+ </div>
+ <hr />
+ </for>
+
+ </div>
+ <div class="fineprint" style="clear:both">
+ <if test="JSDOC.opt.D.copyright">©{+JSDOC.opt.D.copyright+}<br /></if>
+ Documentation generated by <a href="http://www.jsdoctoolkit.org/" target="_blankt">JsDoc Toolkit</a> {+JSDOC.VERSION+} on {+new Date()+}
+ </div>
+ </body>
+</html>
\ No newline at end of file
Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/publish.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/publish.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/publish.js (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/publish.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,166 @@
+function publish(symbolSet) {
+ publish.conf = { // trailing slash expected for dirs
+ ext: ".html",
+ outDir: JSDOC.opt.d || SYS.pwd+"../out/jsdoc/",
+ templatesDir: SYS.pwd+"../templates/jsdoc/",
+ symbolsDir: "symbols/",
+ srcDir: "symbols/src/"
+ };
+
+
+ if (JSDOC.opt.s && defined(Link) && Link.prototype._makeSrcLink) {
+ Link.prototype._makeSrcLink = function(srcFilePath) {
+ return "<"+srcFilePath+">";
+ }
+ }
+
+ IO.mkPath((publish.conf.outDir+"symbols/src").split("/"));
+
+ // used to check the details of things being linked to
+ Link.symbolSet = symbolSet;
+
+ try {
+ var classTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+"class.tmpl");
+ var classesTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+"allclasses.tmpl");
+ }
+ catch(e) {
+ print(e.message);
+ quit();
+ }
+
+ // filters
+ function hasNoParent($) {return ($.memberOf == "")}
+ function isaFile($) {return ($.is("FILE"))}
+ function isaClass($) {return ($.is("CONSTRUCTOR") || $.isNamespace)}
+
+ var symbols = symbolSet.toArray();
+
+ var files = JSDOC.opt.srcFiles;
+ for (var i = 0, l = files.length; i < l; i++) {
+ var file = files[i];
+ var srcDir = publish.conf.outDir + "symbols/src/";
+ makeSrcFile(file, srcDir);
+ }
+
+ var classes = symbols.filter(isaClass).sort(makeSortby("alias"));
+
+ Link.base = "../";
+ publish.classesIndex = classesTemplate.process(classes); // kept in memory
+
+ for (var i = 0, l = classes.length; i < l; i++) {
+ var symbol = classes[i];
+ var output = "";
+ output = classTemplate.process(symbol);
+
+ IO.saveFile(publish.conf.outDir+"symbols/", symbol.alias+publish.conf.ext, output);
+ }
+
+ // regenrate the index with different relative links
+ Link.base = "";
+ publish.classesIndex = classesTemplate.process(classes);
+
+ try {
+ var classesindexTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+"index.tmpl");
+ }
+ catch(e) { print(e.message); quit(); }
+
+ var classesIndex = classesindexTemplate.process(classes);
+ IO.saveFile(publish.conf.outDir, "index"+publish.conf.ext, classesIndex);
+ classesindexTemplate = classesIndex = classes = null;
+
+ try {
+ var fileindexTemplate = new JSDOC.JsPlate(publish.conf.templatesDir+"allfiles.tmpl");
+ }
+ catch(e) { print(e.message); quit(); }
+
+ var documentedFiles = symbols.filter(isaFile);
+ var allFiles = [];
+
+ for (var i = 0; i < files.length; i++) {
+ allFiles.push(new JSDOC.Symbol(files[i], [], "FILE", new JSDOC.DocComment("/** */")));
+ }
+
+ for (var i = 0; i < documentedFiles.length; i++) {
+ var offset = files.indexOf(documentedFiles[i].alias);
+ allFiles[offset] = documentedFiles[i];
+ }
+
+ allFiles = allFiles.sort(makeSortby("name"));
+
+ var filesIndex = fileindexTemplate.process(allFiles);
+ IO.saveFile(publish.conf.outDir, "files"+publish.conf.ext, filesIndex);
+ fileindexTemplate = filesIndex = files = null;
+}
+
+
+/** Just the first sentence. */
+function summarize(desc) {
+ if (typeof desc != "undefined")
+ return desc.match(/([\w\W]+?\.)[^a-z0-9]/i)? RegExp.$1 : desc;
+}
+
+/** make a symbol sorter by some attribute */
+function makeSortby(attribute) {
+ return function(a, b) {
+ if (a[attribute] != undefined && b[attribute] != undefined) {
+ a = a[attribute].toLowerCase();
+ b = b[attribute].toLowerCase();
+ if (a < b) return -1;
+ if (a > b) return 1;
+ return 0;
+ }
+ }
+}
+
+function include(path) {
+ var path = publish.conf.templatesDir+path;
+ return IO.readFile(path);
+}
+
+function makeSrcFile(path, srcDir, name) {
+ if (JSDOC.opt.s) return;
+
+ if (!name) {
+ name = path.replace(/\.\.?[\\\/]/g, "").replace(/[\\\/]/g, "_");
+ name = name.replace(/\:/g, "_");
+ }
+
+ var src = {path: path, name:name, charset: IO.encoding, hilited: ""};
+
+ if (defined(JSDOC.PluginManager)) {
+ JSDOC.PluginManager.run("onPublishSrc", src);
+ }
+
+ if (src.hilited) {
+ IO.saveFile(srcDir, name+publish.conf.ext, src.hilited);
+ }
+}
+
+function makeSignature(params) {
+ if (!params) return "()";
+ var signature = "("
+ +
+ params.filter(
+ function($) {
+ return $.name.indexOf(".") == -1; // don't show config params in signature
+ }
+ ).map(
+ function($) {
+ return $.name;
+ }
+ ).join(", ")
+ +
+ ")";
+ return signature;
+}
+
+/** Find symbol {@link ...} strings in text and turn into html links */
+function resolveLinks(str, from) {
+ str = str.replace(/\{@link ([^} ]+) ?\}/gi,
+ function(match, symbolName) {
+ return new Link().toSymbol(symbolName);
+ }
+ );
+
+ return str;
+}
\ No newline at end of file
Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/static/default.css
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/static/default.css?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/static/default.css (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/static/default.css Mon Nov 17 14:42:45 2008
@@ -0,0 +1,162 @@
+/* default.css */
+body
+{
+ font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
+ width: 800px;
+}
+
+.header
+{
+ clear: both;
+ background-color: #ccc;
+ padding: 8px;
+}
+
+h1
+{
+ font-size: 150%;
+ font-weight: bold;
+ padding: 0;
+ margin: 1em 0 0 .3em;
+}
+
+hr
+{
+ border: none 0;
+ border-top: 1px solid #7F8FB1;
+ height: 1px;
+}
+
+pre.code
+{
+ display: block;
+ padding: 8px;
+ border: 1px dashed #ccc;
+}
+
+#index
+{
+ margin-top: 24px;
+ float: left;
+ width: 160px;
+ position: absolute;
+ left: 8px;
+ background-color: #F3F3F3;
+ padding: 8px;
+}
+
+#content
+{
+ margin-left: 190px;
+ width: 600px;
+}
+
+.classList
+{
+ list-style-type: none;
+ padding: 0;
+ margin: 0 0 0 8px;
+ font-family: arial, sans-serif;
+ font-size: 1em;
+ overflow: auto;
+}
+
+.classList li
+{
+ padding: 0;
+ margin: 0 0 8px 0;
+}
+
+.summaryTable { width: 100%; }
+
+h1.classTitle
+{
+ font-size:170%;
+ line-height:130%;
+}
+
+h2 { font-size: 110%; }
+caption, div.sectionTitle
+{
+ background-color: #7F8FB1;
+ color: #fff;
+ font-size:130%;
+ text-align: left;
+ padding: 2px 6px 2px 6px;
+ border: 1px #7F8FB1 solid;
+}
+
+div.sectionTitle { margin-bottom: 8px; }
+.summaryTable thead { display: none; }
+
+.summaryTable td
+{
+ vertical-align: top;
+ padding: 4px;
+ border-bottom: 1px #7F8FB1 solid;
+ border-right: 1px #7F8FB1 solid;
+}
+
+/*col#summaryAttributes {}*/
+.summaryTable td.attributes
+{
+ border-left: 1px #7F8FB1 solid;
+ width: 140px;
+ text-align: right;
+}
+
+td.attributes, .fixedFont
+{
+ line-height: 15px;
+ color: #002EBE;
+ font-family: "Courier New",Courier,monospace;
+ font-size: 13px;
+}
+
+.summaryTable td.nameDescription
+{
+ text-align: left;
+ font-size: 13px;
+ line-height: 15px;
+}
+
+.summaryTable td.nameDescription, .description
+{
+ line-height: 15px;
+ padding: 4px;
+ padding-left: 4px;
+}
+
+.summaryTable { margin-bottom: 8px; }
+
+ul.inheritsList
+{
+ list-style: square;
+ margin-left: 20px;
+ padding-left: 0;
+}
+
+.detailList {
+ margin-left: 20px;
+ line-height: 15px;
+}
+.detailList dt { margin-left: 20px; }
+
+.detailList .heading
+{
+ font-weight: bold;
+ padding-bottom: 6px;
+ margin-left: 0;
+}
+
+.light, td.attributes, .light a:link, .light a:visited
+{
+ color: #777;
+ font-style: italic;
+}
+
+.fineprint
+{
+ text-align: right;
+ font-size: 10px;
+}
\ No newline at end of file
Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/static/header.html
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/static/header.html?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/static/header.html (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/static/header.html Mon Nov 17 14:42:45 2008
@@ -0,0 +1,2 @@
+<div id="header">
+</div>
\ No newline at end of file
Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/static/index.html
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/static/index.html?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/static/index.html (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/static/index.html Mon Nov 17 14:42:45 2008
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8" />
+ <title>Generated Javascript Documentation</title>
+</head>
+<frameset cols="20%,80%">
+ <frame src="allclasses-frame.html" name="packageFrame" />
+ <frame src="splash.html" name="classFrame" />
+ <noframes>
+ <body>
+ <p>
+ This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
+ </p>
+ </body>
+ </noframes>
+</frameset>
+</html>
\ No newline at end of file
Added: lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/symbol.tmpl
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/symbol.tmpl?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/symbol.tmpl (added)
+++ lucene/solr/trunk/contrib/javascript/lib/jsdoc/jsdoc-toolkit/templates/solrjs/symbol.tmpl Mon Nov 17 14:42:45 2008
@@ -0,0 +1,35 @@
+<symbol alias="{+data.alias+}">
+ <name>{+data.name+}</name>
+ <memberOf>{+data.memberOf+}</memberOf>
+ <isStatic>{+data.isStatic+}</isStatic>
+ <isa>{+data.isa+}</isa>
+ <desc>{+data.desc+}</desc>
+ <classDesc>{+data.classDesc+}</classDesc>
+
+ <methods><for each="method" in="data.methods">
+ <method>
+ <name>{+method.name+}</name>
+ <memberOf>{+method.memberOf+}</memberOf>
+ <isStatic>{+method.isStatic+}</isStatic>
+ <desc>{+method.desc+}</desc>
+ <params><for each="param" in="method.params">
+ <param>
+ <type>{+param.type+}</type>
+ <name>{+param.name+}</name>
+ <desc>{+param.desc+}</desc>
+ <defaultValue>{+param.defaultValue+}</defaultValue>
+ </param></for>
+ </params>
+ </method></for>
+ </methods>
+
+ <properties><for each="property" in="data.properties">
+ <property>
+ <name>{+property.name+}</name>
+ <memberOf>{+property.memberOf+}</memberOf>
+ <isStatic>{+property.isStatic+}</isStatic>
+ <desc>{+property.desc+}</desc>
+ <type>{+property.type+}</type>
+ </property></for>
+ </properties>
+</symbol>
Added: lucene/solr/trunk/contrib/javascript/src/clientside/AutocompleteWidget.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/src/clientside/AutocompleteWidget.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/src/clientside/AutocompleteWidget.js (added)
+++ lucene/solr/trunk/contrib/javascript/src/clientside/AutocompleteWidget.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,91 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * <p> Autocomplete input filed that suggests facet values. It can show facet values of multiple
+ * fields (specified by "fieldNames"), as well as perform a fulltext query ("fulltextFieldName")
+ * in case no suggested value is selected. </p>
+ *
+ * It uses the autocomplete box found at http://docs.jquery.com/UI/Autocomplete/autocomplete.
+ *
+ * @class AutocompleteWidget
+ * @augments jQuery.solrjs.AbstractClientSideWidget
+ */
+jQuery.solrjs.AutocompleteWidget = jQuery.solrjs.createClass ("AbstractClientSideWidget", /** @lends jQuery.solrjs.AutocompleteWidget.prototype */{
+
+ /**
+ * A list of facet fields.
+ * @field
+ * @public
+ */
+ fieldNames : [] ,
+
+ /**
+ * The field to search in if when no suggestion is selected.
+ * @field
+ * @public
+ */
+ fulltextFieldName : "",
+
+ getSolrUrl : function(start) {
+ var ret = "&facet=true&facet.limit=-1";
+ for (var j = 0; j < this.fieldNames.length; j++) {
+ ret += "&facet.field=" + this.fieldNames[j];
+ }
+ return ret;
+
+ },
+
+ handleResult : function(data) {
+
+ // create new input field
+ jQuery(this.target).empty();
+ var input = jQuery('<input/>').attr("id", this.id + "_input").appendTo(this.target);
+
+ // create autocomplete list
+ var list = [];
+ for (var j = 0; j < this.fieldNames.length; j++) {
+ var field = this.fieldNames[j];
+ var values = data.facet_counts.facet_fields[field];
+ for (var i = 0; i < values.length; i = i + 2) {
+ var label = values[i] + " (" + values[i+1] + ") - " + field;
+ var value = values[i];
+ list.push({text:label, value:value, field:field});
+ }
+ }
+
+ // add selection listeners for suggests and fulltext search.
+ var me = this;
+ me.selectionMade = false;
+ input.autocomplete(list, {
+ formatItem: function(item) {
+ return item.text;
+ }
+ }).result(function(event, item) {
+ var items = [new jQuery.solrjs.QueryItem({field: item.field , value:item.value})];
+ solrjsManager.selectItems(me.id, items);
+ me.selectionMade = true;
+ });
+ jQuery("#" + this.id + "_input").html("test").bind("keydown", function(event) {
+ if (me.selectionMade == false && event.keyCode==13) {
+ var items = [new jQuery.solrjs.QueryItem({field: me.fulltextFieldName , value:"\"" + event.target.value + "\""})];
+ solrjsManager.selectItems(me.id, items);
+ }
+ });
+ }
+
+});
\ No newline at end of file
Propchange: lucene/solr/trunk/contrib/javascript/src/clientside/AutocompleteWidget.js
------------------------------------------------------------------------------
svn:executable = *
Added: lucene/solr/trunk/contrib/javascript/src/clientside/CalendarWidget.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/src/clientside/CalendarWidget.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/src/clientside/CalendarWidget.js (added)
+++ lucene/solr/trunk/contrib/javascript/src/clientside/CalendarWidget.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,105 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * A calenader facet field. it uses solr's date facet capabilities, and displays
+ * the document count of one day using the DHTML calendar from www.dynarch.com/projects/calendar
+ *
+ * @class CalendarWidget
+ * @augments jQuery.solrjs.AbstractClientSideWidget
+ */
+jQuery.solrjs.CalendarWidget = jQuery.solrjs.createClass ("AbstractClientSideWidget", {
+
+ /**
+ * Start date, used to restrict the calendar ui as well
+ * as the solr date facets.
+ *
+ * @field
+ * @public
+ */
+ startDate : null,
+
+ /**
+ * Start date, used to restrict the calendar ui as well
+ * as the solr date facets.
+ *
+ * @field
+ * @public
+ */
+ endDate : null,
+
+ /**
+ * Current date facet array.
+ *
+ * @field
+ * @private
+ */
+ dates : null,
+
+ getSolrUrl : function(start) {
+ return "&facet=true&facet.mincount=1&facet.date=date&facet.date.start=1987-01-01T00:00:00.000Z/DAY&facet.date.end=1987-11-31T00:00:00.000Z/DAY%2B1DAY&facet.date.gap=%2B1DAY";
+ },
+
+ handleResult : function(data) {
+
+ var me = this;
+ me.dates = [];
+ jQuery.each(data.facet_counts.facet_dates.date, function(key, value) {
+ var date = new Date(key.slice(0, 4), parseInt(key.slice(6, 8)) - 1, key.slice(8, 10));
+ me.dates[date] = value;
+ });
+
+ jQuery(this.target).empty();
+
+ var parent = document.getElementById("calendar");
+
+ // construct a calendar giving only the "selected" handler.
+ var cal = new Calendar(0, null, function (cal, date) {
+ if (cal.dateClicked) {
+ var dateString = "[" + date + "T00:00:00Z TO " + date + "T23:59:59Z]";
+ var items = [new jQuery.solrjs.QueryItem({field: me.fieldName , value:date, toSolrQuery: function() { return "date:" + dateString }})];
+ solrjsManager.selectItems(me.id, items);
+ }
+ });
+ cal.dateClicked = false;
+ cal.weekNumbers = false;
+ cal.setDateFormat("%Y-%m-%d");
+ cal.setTtDateFormat("solrjs");
+
+ cal.setDateStatusHandler(function(date) {
+ if (me.dates[date] != null && me.dates[date] > 0) {
+ return "solrjs solrjs_value_" + me.dates[date];
+ }
+ return true;
+ });
+
+ cal.create(parent);
+ cal.show();
+ cal.setDate(new Date(1987, 2, 1));
+
+ // override pribt method to display document count
+ var oldPrint = Date.prototype.print;
+ Date.prototype.print = function(string) {
+ if (string.indexOf("solrjs") == -1) {
+ return oldPrint.call(this, string);
+ }
+ return me.dates[this] + " documents found!";
+ }
+ }
+
+});
+
Propchange: lucene/solr/trunk/contrib/javascript/src/clientside/CalendarWidget.js
------------------------------------------------------------------------------
svn:executable = *
Added: lucene/solr/trunk/contrib/javascript/src/clientside/CountryCodeWidget.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/src/clientside/CountryCodeWidget.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/src/clientside/CountryCodeWidget.js (added)
+++ lucene/solr/trunk/contrib/javascript/src/clientside/CountryCodeWidget.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,125 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Takes a solr field that stores an ISO-3166 country code. It creates facet values and
+ * displays them in a selection dropdown as well as on a google chart map item.
+ *
+ * @class CountryCodeWidget
+ * @augments jQuery.solrjs.AbstractClientSideWidget
+ */
+jQuery.solrjs.CountryCodeWidget = jQuery.solrjs.createClass ("AbstractClientSideWidget", {
+
+ /**
+ * The width of the map images.
+ *
+ * @field
+ * @public
+ */
+ width : 350,
+
+ /**
+ * The height of the map images.
+ *
+ * @field
+ * @public
+ */
+ height : 180,
+
+ /**
+ * The field name of the iso country code field.
+ *
+ * @field
+ * @public
+ */
+ fieldName : "",
+
+ getSolrUrl : function(start) {
+ return "&facet=true&facet.mincount=1&facet.limit=-1&facet.field=" + this.fieldName;
+ },
+
+ handleResult : function(data) {
+ jQuery(this.target).empty();
+
+ // get facet counts
+ var values = data.facet_counts.facet_fields[this.fieldName];
+ var maxCount = 0;
+ var objectedItems = [];
+ for (var i = 0; i < values.length; i = i + 2) {
+ var c = parseInt(values[i+1]);
+ if (c > maxCount) {
+ maxCount = c;
+ }
+ objectedItems.push({label:values[i], count:values[i+1]});
+ }
+
+ // create a select for regions
+ var container = jQuery("<div/>").attr("id", "solrjs_" + this.id).appendTo(this.target);
+ var select = jQuery("<select/>").appendTo(container);
+ var me = this;
+ select.change(function () {
+ jQuery("#solrjs_" + me.id + " img").each(function (i,item) {
+ jQuery(item).css("display", "none");
+ });
+ jQuery("#solrjs_" + me.id + this[this.selectedIndex].value).css("display", "block");
+ });
+ jQuery("<option/>").html("view the World ").attr("value", "world").appendTo(select);
+ jQuery("<option/>").html("view Africa").attr("value", "africa").appendTo(select);
+ jQuery("<option/>").html("view Asia").attr("value", "asia").appendTo(select);
+ jQuery("<option/>").html("view Europe").attr("value", "europe").appendTo(select);
+ jQuery("<option/>").html("view the Middle East").attr("value", "middle_east").appendTo(select);
+ jQuery("<option/>").html("view South America").attr("value", "south_america").appendTo(select);
+ jQuery("<option/>").html("view North America").attr("value", "usa").appendTo(select);
+
+ // create a select for facet values
+ var codes = "";
+ var mapvalues = "t:";
+ var countrySelect = jQuery("<select/>").appendTo(container);
+ countrySelect.change(function () {
+ var items = [new jQuery.solrjs.QueryItem({field: me.fieldName , value:this[this.selectedIndex].value})];
+ solrjsManager.selectItems(me.id, items);
+ });
+ jQuery("<option/>").html("--select--").attr("value", "-1").appendTo(countrySelect);;
+
+ // create map data
+ for (var i = 0; i < objectedItems.length; i++) {
+ if (objectedItems[i].label.length != 2) {
+ continue;
+ }
+ codes += objectedItems[i].label;
+ var currentValue = objectedItems[i].count;
+ var percent = (objectedItems[i].count / maxCount);
+ var tagvalue = parseInt(percent * 100);
+ mapvalues += tagvalue + ".0";
+ if (i < objectedItems.length - 1) {
+ mapvalues += ",";
+ }
+ jQuery("<option/>").html(objectedItems[i].label + " (" + currentValue + ")").attr("value", objectedItems[i].label).appendTo(countrySelect);
+ }
+
+ // show maps
+ jQuery("<img/>").attr("id", "solrjs_" + this.id + "africa").css("display", "none").attr("src","http://chart.apis.google.com/chart?chco=f5f5f5,edf0d4,6c9642,365e24,13390a&chd=" + mapvalues + "&chf=bg,s,eaf7fe&chtm=africa&chld="+ codes +"&chs="+this.width+"x"+this.height+"&cht=t").appendTo(container);
+ jQuery("<img/>").attr("id", "solrjs_" + this.id + "asia").css("display", "none").attr("src","http://chart.apis.google.com/chart?chco=f5f5f5,edf0d4,6c9642,365e24,13390a&chd=" + mapvalues + "&chf=bg,s,eaf7fe&chtm=asia&chld="+ codes +"&chs="+this.width+"x"+this.height+"&cht=t").appendTo(container);
+ jQuery("<img/>").attr("id", "solrjs_" + this.id + "europe").css("display", "none").attr("src","http://chart.apis.google.com/chart?chco=f5f5f5,edf0d4,6c9642,365e24,13390a&chd=" + mapvalues + "&chf=bg,s,eaf7fe&chtm=europe&chld="+ codes +"&chs="+this.width+"x"+this.height+"&cht=t").appendTo(container);
+ jQuery("<img/>").attr("id", "solrjs_" + this.id + "middle_east").css("display", "none").attr("src","http://chart.apis.google.com/chart?chco=f5f5f5,edf0d4,6c9642,365e24,13390a&chd=" + mapvalues + "&chf=bg,s,eaf7fe&chtm=middle_east&chld="+ codes +"&chs="+this.width+"x"+this.height+"&cht=t").appendTo(container);
+ jQuery("<img/>").attr("id", "solrjs_" + this.id + "south_america").css("display", "none").attr("src","http://chart.apis.google.com/chart?chco=f5f5f5,edf0d4,6c9642,365e24,13390a&chd=" + mapvalues + "&chf=bg,s,eaf7fe&chtm=south_america&chld="+ codes +"&chs="+this.width+"x"+this.height+"&cht=t").appendTo(container);
+ jQuery("<img/>").attr("id", "solrjs_" + this.id + "usa").css("display", "none").attr("src","http://chart.apis.google.com/chart?chco=f5f5f5,edf0d4,6c9642,365e24,13390a&chd=" + mapvalues + "&chf=bg,s,eaf7fe&chtm=usa&chld="+ codes +"&chs="+this.width+"x"+this.height+"&cht=t").appendTo(container);
+ jQuery("<img/>").attr("id", "solrjs_" + this.id + "world").css("display", "block").attr("src","http://chart.apis.google.com/chart?chco=f5f5f5,edf0d4,6c9642,365e24,13390a&chd=" + mapvalues + "&chf=bg,s,eaf7fe&chtm=world&chld="+ codes +"&chs="+this.width+"x"+this.height+"&cht=t").appendTo(container);
+
+
+ }
+});
\ No newline at end of file
Propchange: lucene/solr/trunk/contrib/javascript/src/clientside/CountryCodeWidget.js
------------------------------------------------------------------------------
svn:executable = *
Added: lucene/solr/trunk/contrib/javascript/src/clientside/ExtensibleResultWidget.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/src/clientside/ExtensibleResultWidget.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/src/clientside/ExtensibleResultWidget.js (added)
+++ lucene/solr/trunk/contrib/javascript/src/clientside/ExtensibleResultWidget.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * A simple base class for result widgets (list of documents, including paging).
+ * Implementations should override the renderResult(docs, pageSize, offset, numFound)
+ * funtion to render the result.
+ *
+ * @class ExtensibleResultWidget
+ * @augments jQuery.solrjs.AbstractClientSideWidget
+ */
+jQuery.solrjs.ExtensibleResultWidget = jQuery.solrjs.createClass ("AbstractClientSideWidget", {
+
+ isResult : true,
+
+ getSolrUrl : function(start) {
+ return ""; // no special params need
+ },
+
+ handleResult : function(data) {
+ jQuery(this.target).empty();
+ this.renderResult(data.response.docs, parseInt(data.responseHeader.params.rows), data.responseHeader.params.start, data.response.numFound);
+ },
+
+ renderResult : function(docs, pageSize, offset, numFound) {
+ throw "Abstract method renderDataItem";
+ }
+});
\ No newline at end of file
Added: lucene/solr/trunk/contrib/javascript/src/clientside/FacetWidget.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/src/clientside/FacetWidget.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/src/clientside/FacetWidget.js (added)
+++ lucene/solr/trunk/contrib/javascript/src/clientside/FacetWidget.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,53 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * A simple facet widteh that shows the facet values as list. It remembers the selection
+ * and shows a "value(x)" label after selection.
+ *
+ * @class ExtensibleResultWidget
+ * @augments jQuery.solrjs.AbstractClientSideWidget
+ */
+jQuery.solrjs.FacetWidget = jQuery.solrjs.createClass ("AbstractClientSideWidget", {
+
+ saveSelection : true,
+
+ getSolrUrl : function(start) {
+ return "&facet=true&facet.field=" + this.fieldName;
+ },
+
+ handleResult : function(data) {
+ var values = data.facet_counts.facet_fields[this.fieldName];
+ jQuery(this.target).html("");
+
+ for (var i = 0; i < values.length; i = i + 2) {
+ var items = "[new jQuery.solrjs.QueryItem({field:'" + this.fieldName + "',value:'" + values[i] + "'})]";
+ var label = values[i] + "(" + values[i+1] + ")";
+ jQuery('<a/>').html(label).attr("href","javascript:solrjsManager.selectItems('" + this.id + "'," + items + ")").appendTo(this.target);
+ jQuery('<br/>').appendTo(this.target);
+ }
+ },
+
+ handleSelect : function(data) {
+ jQuery(this.target).html(this.selectedItems[0].value);
+ jQuery('<a/>').html("(x)").attr("href","javascript:solrjsManager.deselectItems('" + this.id + "')").appendTo(this.target);
+ },
+
+ handleDeselect : function(data) {
+ // do nothing
+ }
+});
\ No newline at end of file
Added: lucene/solr/trunk/contrib/javascript/src/clientside/TagcloudWidget.js
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/javascript/src/clientside/TagcloudWidget.js?rev=718422&view=auto
==============================================================================
--- lucene/solr/trunk/contrib/javascript/src/clientside/TagcloudWidget.js (added)
+++ lucene/solr/trunk/contrib/javascript/src/clientside/TagcloudWidget.js Mon Nov 17 14:42:45 2008
@@ -0,0 +1,82 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * A facet widget that renders the values as a tagcloud.
+ *
+ * @class TagcloudWidget
+ * @augments jQuery.solrjs.AbstractClientSideWidget
+ */
+jQuery.solrjs.TagcloudWidget = jQuery.solrjs.createClass ("AbstractClientSideWidget", {
+
+ /**
+ * Maximum count of items in the tagcloud.
+ *
+ * @field
+ * @public
+ */
+ size : 20,
+
+ /**
+ * The facet field name.
+ *
+ * @field
+ * @public
+ */
+ fieldName : "",
+
+ getSolrUrl : function(start) {
+ return "&facet=true&facet.mincount=1&facet.field=" + this.fieldName + "&facet.limit=" + this.size;
+ },
+
+ handleResult : function(data) {
+ var values = data.facet_counts.facet_fields[this.fieldName];
+ jQuery(this.target).empty();
+
+ if (values.length == 0) {
+ jQuery("<div/>").html("not items found in current selection").appendTo(this.target);
+ }
+
+ var maxCount = 0;
+ var objectedItems = [];
+ for (var i = 0; i < values.length; i = i + 2) {
+ var c = parseInt(values[i+1]);
+ if (c > maxCount) {
+ maxCount = c;
+ }
+ objectedItems.push({label:values[i], count:values[i+1]});
+ }
+
+ objectedItems.sort(function(a,b) {
+ if (a.label < b.label) {
+ return -1;
+ }
+ return 1;
+ });
+
+ for (var i = 0; i < objectedItems.length; i++) {
+ var label = objectedItems[i].label;
+ var items = "[new jQuery.solrjs.QueryItem({field:'" + this.fieldName + "',value:'" + label + "'})]";
+ var percent = (objectedItems[i].count / maxCount);
+ var tagvalue = parseInt(percent * 10);
+ jQuery("<a/>").html(label).addClass("solrjs_tagcloud_item").addClass("solrjs_tagcloud_size_" + tagvalue).attr("href","javascript:solrjsManager.selectItems('" + this.id + "'," + items + ")").appendTo(this.target);
+ }
+
+ jQuery("<div/>").addClass("solrjs_tagcloud_clearer").appendTo(this.target);
+
+ }
+});
\ No newline at end of file
Propchange: lucene/solr/trunk/contrib/javascript/src/clientside/TagcloudWidget.js
------------------------------------------------------------------------------
svn:executable = *