Repository: incubator-juneau
Updated Branches:
  refs/heads/master f20625a7e -> b96f60147


Simplified MenuItemWidget.

Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/b96f6014
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/b96f6014
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/b96f6014

Branch: refs/heads/master
Commit: b96f601477ae635ca7d03d4c70f9bd9a9e2f6be4
Parents: f20625a
Author: JamesBognar <[email protected]>
Authored: Thu Jul 13 16:34:46 2017 -0400
Committer: JamesBognar <[email protected]>
Committed: Thu Jul 13 16:34:46 2017 -0400

----------------------------------------------------------------------
 RELEASE-NOTES.txt                               |  10 +
 .../juneau/internal/StringBuilderWriter.java    |  10 +
 .../apache/juneau/serializer/Serializer.java    |   3 +
 .../juneau/serializer/SerializerSession.java    |   6 +
 juneau-core/src/main/javadoc/overview.html      |  31 ++-
 juneau-microservice-template/pom.xml            |   4 +-
 .../juneau/rest/widget/ContentTypeMenuItem.java |  31 ++-
 .../juneau/rest/widget/MenuItemWidget.java      |  88 ++++++--
 .../juneau/rest/widget/QueryMenuItem.java       |  12 +-
 .../juneau/rest/widget/StyleMenuItem.java       |  24 +-
 .../juneau/rest/widget/QueryMenuItem.html       | 217 +++++++++----------
 11 files changed, 264 insertions(+), 172 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/b96f6014/RELEASE-NOTES.txt
----------------------------------------------------------------------
diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 98cdd92..b8c5229 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -11,6 +11,16 @@
 * specific language governing permissions and limitations under the License.   
                                           *
 
***************************************************************************************************************************
 
+
+Release Notes - Juneau - Version 6.3.1
+
+** Bug
+    * [JUNEAU-59] - Fix "Copyright (c) 2016, Apache Foundation" year in 
documentation.
+
+** Improvement
+    * [JUNEAU-58] - Embed HTML in @HtmlDoc.description
+
+
 Release Notes - Juneau - Version 6.3.0
 
 ** Bug

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/b96f6014/juneau-core/src/main/java/org/apache/juneau/internal/StringBuilderWriter.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/internal/StringBuilderWriter.java 
b/juneau-core/src/main/java/org/apache/juneau/internal/StringBuilderWriter.java
index e83a85e..81bdda3 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/internal/StringBuilderWriter.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/internal/StringBuilderWriter.java
@@ -33,6 +33,16 @@ public final class StringBuilderWriter extends Writer {
        }
 
        /**
+        * Create a new string writer around an existing string builder.
+        *
+        * @param sb The string builder being wrapped.
+        */
+       public StringBuilderWriter(StringBuilder sb) {
+               this.sb = sb;
+               lock = null;
+       }
+
+       /**
         * Create a new string writer using the specified initial 
string-builder size.
         *
         * @param initialSize

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/b96f6014/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java 
b/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java
index ac46f35..6e1d9d0 100644
--- a/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java
+++ b/juneau-core/src/main/java/org/apache/juneau/serializer/Serializer.java
@@ -154,6 +154,7 @@ public abstract class Serializer extends CoreObject {
         *              <li>{@link Writer}
         *              <li>{@link OutputStream} - Output will be written as 
UTF-8 encoded stream.
         *              <li>{@link File} - Output will be written as 
system-default encoded stream.
+        *              <li>{@link StringBuilder} - Output will be written to 
the specified string builder.
         *      </ul>
         *      <br>Stream-based serializers can handle the following output 
class types:
         *      <ul>
@@ -181,6 +182,7 @@ public abstract class Serializer extends CoreObject {
         *              <li>{@link Writer}
         *              <li>{@link OutputStream} - Output will be written as 
UTF-8 encoded stream.
         *              <li>{@link File} - Output will be written as 
system-default encoded stream.
+        *              <li>{@link StringBuilder} - Output will be written to 
the specified string builder.
         *      </ul>
         *      <br>Stream-based serializers can handle the following output 
class types:
         *      <ul>
@@ -222,6 +224,7 @@ public abstract class Serializer extends CoreObject {
         *              <li>{@link Writer}
         *              <li>{@link OutputStream} - Output will be written as 
UTF-8 encoded stream.
         *              <li>{@link File} - Output will be written as 
system-default encoded stream.
+        *              <li>{@link StringBuilder} - Output will be written to 
the specified string builder.
         *      </ul>
         *      <br>Stream-based serializers can handle the following output 
class types:
         *      <ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/b96f6014/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerSession.java
----------------------------------------------------------------------
diff --git 
a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerSession.java 
b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerSession.java
index f3c03ff..66ff3e1 100644
--- 
a/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerSession.java
+++ 
b/juneau-core/src/main/java/org/apache/juneau/serializer/SerializerSession.java
@@ -24,6 +24,7 @@ import java.util.*;
 
 import org.apache.juneau.*;
 import org.apache.juneau.http.*;
+import org.apache.juneau.internal.*;
 import org.apache.juneau.transform.*;
 
 /**
@@ -234,6 +235,11 @@ public class SerializerSession extends BeanSession {
                                writer = new OutputStreamWriter(new 
BufferedOutputStream(new FileOutputStream((File)output)));
                        return writer;
                }
+               if (output instanceof StringBuilder) {
+                       if (writer == null)
+                               writer = new 
StringBuilderWriter((StringBuilder)output);
+                       return writer;
+               }
                throw new SerializeException("Cannot convert object of type {0} 
to a Writer.", output.getClass().getName());
        }
 

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/b96f6014/juneau-core/src/main/javadoc/overview.html
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/overview.html 
b/juneau-core/src/main/javadoc/overview.html
index 8a03c94..eb21b94 100644
--- a/juneau-core/src/main/javadoc/overview.html
+++ b/juneau-core/src/main/javadoc/overview.html
@@ -6813,6 +6813,7 @@
        
        <h5 class='toc'>What's new in each release</h5>
        <ul class='toc'>
+               <li><p><a class='doclink' href='#6.3.2'>6.3.2 (TBD)</a></p>
                <li><p><a class='doclink' href='#6.3.1'>6.3.1 (TBD)</a></p>
                <li><p><a class='doclink' href='#6.3.0'>6.3.0 (Jun 30, 
2017)</a></p>
                <li><p><a class='doclink' href='#6.2.0'>6.2.0 (Apr 28, 
2017)</a></p>
@@ -6882,10 +6883,34 @@
        </ul>
 
        <!-- 
========================================================================================================
 -->
+       <a id="6.3.2"></a>
+       <h3 class='topic' onclick='toggle(this)'>6.3.2 (TBD)</h3>
+       <div class='topic'>
+               <p>
+               </p>
+
+               <h6 class='topic'>org.apache.juneau</h6>
+               <ul class='spaced-list'>
+                       <li>
+                               Serializers can now serialize to {@link 
StringBuilder StringBuilders}.
+               </ul>
+               
+               <h6 class='topic'>org.apache.juneau.rest</h6>
+               <ul class='spaced-list'>
+                       <li>
+                               Simplified {@link 
org.apache.juneau.rest.widget.MenuItemWidget}.
+                               <br>Exposes an abstract method {@link 
org.apache.juneau.rest.widget.MenuItemWidget#getContent()} that
+                               can return raw HTML via readers or 
char-sequences, or any other object (such as HTML5 beans) that will
+                               get converted to HTML using {@link 
org.apache.juneau.html.HtmlSerializer#DEFAULT}.
+               </ul>
+       </div>
+       
+       <!-- 
========================================================================================================
 -->
        <a id="6.3.1"></a>
        <h3 class='topic' onclick='toggle(this)'>6.3.1 (TBD)</h3>
        <div class='topic'>
                <p>
+                       Juneau 6.3.1 is a minor release.
                </p>
 
                <h6 class='topic'>org.apache.juneau</h6>
@@ -6928,10 +6953,8 @@
                                <br><img 
src='doc-files/ReleaseNotes_631_OriginalStyle.png'>
                        <li>
                                Simplified the stylesheets and HTML code.
-                               <ul>
-                                       <li>Replaced <code><xt>&lt;a</xt> 
<xa>class</xa>=<xs>'link'</xs><xt>&gt;</xt></code> with just 
<code><xt>&lt;nav&gt;</xt>/<xt>&lt;a&gt;</xt></code>.
-                                       <li>The nav links are now an ordered 
list of elements.
-                               </ul>
+                               <br>For example, the nav links are now an 
ordered list of elements which makes rendering as as side-bar
+                               (for example) easier to do in CSS.
                        <li>
                                Modifications to the following 
<ja>@HtmlDoc</ja> annotations:
                                <ul>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/b96f6014/juneau-microservice-template/pom.xml
----------------------------------------------------------------------
diff --git a/juneau-microservice-template/pom.xml 
b/juneau-microservice-template/pom.xml
index 7c49274..30fe508 100644
--- a/juneau-microservice-template/pom.xml
+++ b/juneau-microservice-template/pom.xml
@@ -26,11 +26,11 @@
        <modelVersion>4.0.0</modelVersion>
        <groupId>juneau-microservice-template</groupId>
        <artifactId>juneau-microservice-template</artifactId>
-       <version>6.2.1</version>
+       <version>6.3.2</version>
        <name>Apache Juneau Microservice Template</name>
        <description>A template project developers use to start with to create 
a microservice.</description>
        <properties>
-               <juneau.version>6.2.1-incubating-SNAPSHOT</juneau.version>
+               <juneau.version>6.3.2-incubating-SNAPSHOT</juneau.version>
                
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
        <dependencies>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/b96f6014/juneau-rest/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java
 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java
index 195c7a6..43c896f 100644
--- 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java
+++ 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/ContentTypeMenuItem.java
@@ -12,9 +12,12 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.rest.widget;
 
+import static org.apache.juneau.dto.html5.HtmlBuilder.*;
+
 import java.net.*;
 import java.util.*;
 
+import org.apache.juneau.dto.html5.*;
 import org.apache.juneau.http.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.utils.*;
@@ -55,28 +58,20 @@ import org.apache.juneau.utils.*;
  */
 public class ContentTypeMenuItem extends MenuItemWidget {
 
-       /**
-        * Looks at the supported media types from the request and constructs a 
list of hyperlinks to render the data
-        * as plain-text.
-        */
-       @Override /* Widget */
-       public String getHtml(RestRequest req) throws Exception {
-               StringBuilder sb = new StringBuilder();
-               sb.append(""
-                       + "<div class='menu-item'>"
-                       + "\n\t<a class='link' 
onclick='menuClick(this)'>content-types</a>"
-                       + "\n\t<div class='popup-content'>"
-               );
+       @Override /* MenuItemWidget */
+       public String getLabel(RestRequest req) {
+               return "content-type";
+       }
+
+       @Override /* MenuItemWidget */
+       public Div getContent(RestRequest req) {
+               Div div = div();
                List<MediaType> l = new 
ArrayList<MediaType>(req.getSerializerGroup().getSupportedMediaTypes());
                Collections.sort(l);
                for (MediaType mt : l) {
                        URI uri = req.getUri(true, new 
AMap<String,String>().append("plainText","true").append("Accept",mt.toString()));
-                       sb.append("\n\t\t<a class='link' 
href='").append(uri).append("'>").append(mt).append("</a><br>");
+                       div.children(a(uri, mt), br());
                }
-               sb.append(""
-                       + "\n\t</div>"
-                       + "\n</div>"
-               );
-               return sb.toString();
+               return div;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/b96f6014/juneau-rest/src/main/java/org/apache/juneau/rest/widget/MenuItemWidget.java
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/MenuItemWidget.java 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/MenuItemWidget.java
index 666da8c..e65ca3f 100644
--- 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/MenuItemWidget.java
+++ 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/MenuItemWidget.java
@@ -12,6 +12,10 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.rest.widget;
 
+import java.io.*;
+
+import org.apache.juneau.html.*;
+import org.apache.juneau.internal.*;
 import org.apache.juneau.rest.*;
 
 /**
@@ -19,32 +23,30 @@ import org.apache.juneau.rest.*;
  *
  * <p>
  * Defines some simple CSS and Javascript for enabling drop-down menus in the 
nav section of the page (although
- * nothing keeps you from using it in an arbirary location in the page).
+ * nothing keeps you from using it in an arbitrary location in the page).
  *
  * <p>
  * The script specifies a <js>"menuClick(element)"</js> function that toggles 
the visibility of the next sibling of the
  * element.
  *
  * <p>
- * Subclasses should implement a {@link #getHtml(RestRequest)} that returns 
the following content:
- * <p class='bcode'>
- *     <xt>&lt;div</xt> <xa>class</xa>=<xs>'menu-item'</xs><xt>&gt;</xt>
- *             <xc>&lt;!-- Normally visible content with 
onclick='menuClick(this)' --&gt;</xc>
- *             <xt>&lt;div</xt> 
<xa>class</xa>=<xs>'popup-content'</xs><xt>&gt;</xt>
- *                             <xc>&lt;!-- Normally hidden popup-content 
--&gt;</xc>
- *             <xt>&lt;/div&gt;</xt>
- *     <xt>&lt;/div&gt;</xt>
- * </p>
+ * Subclasses should implement the following two methods:
+ * <ul>
+ *     <li>{@link #getLabel(RestRequest)} - The menu item label.
+ *     <li>{@link #getContent(RestRequest)} - The menu item content.
  *
  * <p>
- * For example, to render a link that brings up a simple dialog:
+ * For example, to render a link that brings up a simple dialog in a div tag:
  * <p class='bcode'>
- *     <xt>&lt;div</xt> <xa>class</xa>=<xs>'menu-item'</xs><xt>&gt;</xt>
- *             <xt>&lt;a</xt> <xa>class</xa>=<xs>'link'</xs> 
<xa>onclick</xa>=<xs>'menuClick(this)'</xs><xt>&gt;</xt>my-menu-item<xt>&lt;/a&gt;</xt>
- *             <xt>&lt;div</xt> 
<xa>class</xa>=<xs>'popup-content'</xs><xt>&gt;</xt>
- *                             Surprise!
- *             <xt>&lt;/div&gt;</xt>
- *     <xt>&lt;/div&gt;</xt>
+ *     <ja>@Override</ja>
+ *     <jk>public</jk> String getLabel() {
+ *             <jk>return</jk> <js>"my-menu-item"</js>;
+ *     };
+ *
+ *     <ja>@Override</ja>
+ *     <jk>public</jk> Div getLabel() {
+ *             <jk>return</jk> 
Html5Builder.<jsm>div</jsm>(<js>"Surprise!"</js>).style(<js>"color:red"</js>);
+ *     };
  * </p>
  *
  * <p>
@@ -56,7 +58,7 @@ public abstract class MenuItemWidget extends Widget {
        /**
         * Returns the Javascript needed for the show and hide actions of the 
menu item.
         */
-       @Override
+       @Override /* Widget */
        public String getScript(RestRequest req) throws Exception {
                return loadScript("MenuItemWidget.js");
        }
@@ -65,8 +67,56 @@ public abstract class MenuItemWidget extends Widget {
         * Defines a <js>"menu-item"</js> class that needs to be used on the 
outer element of the HTML returned by the
         * {@link #getHtml(RestRequest)} method.
         */
-       @Override
+       @Override /* Widget */
        public String getStyle(RestRequest req) throws Exception {
                return loadStyle("MenuItemWidget.css");
        }
+
+       @Override /* Widget */
+       public String getHtml(RestRequest req) throws Exception {
+               StringBuilder sb = new StringBuilder();
+               sb.append(""
+                       + "<div class='menu-item'>"
+                       + "\n\t<a class='link' 
onclick='menuClick(this)'>"+getLabel(req)+"</a>"
+                       + "\n\t<div class='popup-content'>"
+               );
+               Object o = getContent(req);
+               if (o instanceof Reader)
+                       IOUtils.pipe((Reader)o, new StringBuilderWriter(sb));
+               else if (o instanceof CharSequence)
+                       sb.append((CharSequence)o);
+               else
+                       HtmlSerializer.DEFAULT.serialize(getContent(req), sb);
+               sb.append(""
+                       + "\n\t</div>"
+                       + "\n</div>"
+               );
+               return sb.toString();
+       }
+
+       /**
+        * The label for the menu item as it's rendered in the menu bar.
+        *
+        * @param req The HTTP request object.
+        * @return The menu item label.
+        * @throws Exception
+        */
+       public abstract String getLabel(RestRequest req) throws Exception;
+
+       /**
+        * The content of the popup.
+        *
+        * @param req The HTTP request object.
+        * @return
+        *      The content of the popup.
+        *      <br>Can be any of the following types:
+        *      <ul>
+        *              <li>{@link Reader} - Serialized directly to the output.
+        *              <li>{@link CharSequence} - Serialized directly to the 
output.
+        *              <li>Other - Serialized as HTML using {@link 
HtmlSerializer#DEFAULT}.
+        *      </ul>
+        *      Note that this includes any of the {@link 
org.apache.juneau.dto.html5} beans.
+        * @throws Exception
+        */
+       public abstract Object getContent(RestRequest req) throws Exception;
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/b96f6014/juneau-rest/src/main/java/org/apache/juneau/rest/widget/QueryMenuItem.java
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/QueryMenuItem.java 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/QueryMenuItem.java
index 4a71f8b..d4eab91 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/QueryMenuItem.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/QueryMenuItem.java
@@ -76,11 +76,13 @@ public class QueryMenuItem extends MenuItemWidget {
                        + loadStyle("QueryMenuItem.css");
        }
 
-       /**
-        * Returns the HTML for rendering the query form and tooltips.
-        */
-       @Override /* Widget */
-       public String getHtml(RestRequest req) throws Exception {
+       @Override /* MenuItemWidget */
+       public String getLabel(RestRequest req) throws Exception {
+               return "query";
+       }
+
+       @Override /* MenuItemWidget */
+       public String getContent(RestRequest req) throws Exception {
                return loadHtml("QueryMenuItem.html");
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/b96f6014/juneau-rest/src/main/java/org/apache/juneau/rest/widget/StyleMenuItem.java
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/StyleMenuItem.java 
b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/StyleMenuItem.java
index c173829..7ba89d0 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/widget/StyleMenuItem.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/widget/StyleMenuItem.java
@@ -12,6 +12,9 @@
 // 
***************************************************************************************************************************
 package org.apache.juneau.rest.widget;
 
+import static org.apache.juneau.dto.html5.HtmlBuilder.*;
+
+import org.apache.juneau.dto.html5.*;
 import org.apache.juneau.rest.*;
 import org.apache.juneau.utils.*;
 
@@ -49,26 +52,21 @@ public class StyleMenuItem extends MenuItemWidget {
 
        private static final String[] BUILT_IN_STYLES = {"devops", "light", 
"original"};
 
+       @Override /* MenuItemWidget */
+       public String getLabel(RestRequest req) {
+               return "styles";
+       }
        /**
         * Looks at the supported media types from the request and constructs a 
list of hyperlinks to render the data
         * as plain-text.
         */
        @Override /* Widget */
-       public String getHtml(RestRequest req) throws Exception {
-               StringBuilder sb = new StringBuilder();
-               sb.append(""
-                       + "<div class='menu-item'>"
-                       + "\n\t<a class='link' 
onclick='menuClick(this)'>styles</a>"
-                       + "\n\t<div class='popup-content'>"
-               );
+       public Div getContent(RestRequest req) throws Exception {
+               Div div = div();
                for (String s : BUILT_IN_STYLES) {
                        java.net.URI uri = req.getUri(true, new 
AMap<String,String>().append("stylesheet", "styles/"+s+".css"));
-                       sb.append("\n\t\t<a class='link' 
href='").append(uri).append("'>").append(s).append("</a><br>");
+                       div.children(a(uri, s), br());
                }
-               sb.append(""
-                       + "\n\t</div>"
-                       + "\n</div>"
-               );
-               return sb.toString();
+               return div;
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/b96f6014/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/QueryMenuItem.html
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/QueryMenuItem.html
 
b/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/QueryMenuItem.html
index a149ba9..f4be41c 100644
--- 
a/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/QueryMenuItem.html
+++ 
b/juneau-rest/src/main/resources/org/apache/juneau/rest/widget/QueryMenuItem.html
@@ -13,114 +13,109 @@
  *
  
***************************************************************************************************************************
  -->
-<div class='menu-item'>
-       <a class='link' onclick='menuClick(this)'>query</a>
-       <div class='popup-content'>
-               <form style='margin:0px'>
-                       <table>
-                               <tr>
-                                       <th>Search:</th>
-                                       <td>
-                                               <input name="s" size="50" 
value='$R{query.s}'>
-                                       </td>
-                                       <td>
-                                               <div class="tooltip">
-                                                       <small>(?)</small>
-                                                       <span 
class="tooltiptext">
-                                                               Comma-delimited 
list of key/value pair search terms.
-                                                               <br>
-                                                               <br>Keys are 
column names.  Values are search terms.
-                                                               <br>
-                                                               
<br><b>Example:</b>&nbsp;&nbsp;<code>[column1=foo*, column2&lt;100, 
column3=2013-2016.06.30]</code>
-                                                               <br>
-                                                               <br><b>String 
fields:</b>
-                                                               <br> - 
<code>'*'</code> represents any character
-                                                               <br> - 
<code>'?'</code> represents one character
-                                                               <br> - Use 
single or double quotes for phrases
-                                                               
<br>&nbsp;&nbsp;&nbsp;e.g. <code>[column='foo bar']</code> - The term 'foo bar'
-                                                               <br> - Multiple 
search terms are ORed 
-                                                               
<br>&nbsp;&nbsp;&nbsp;e.g. <code>[column=foo bar]</code> - 'foo' OR 'bar'
-                                                               <br> - Prepend 
<code>'+'</code> on tokens that must match
-                                                               
<br>&nbsp;&nbsp;&nbsp;e.g. <code>[column=+foo* +*bar]</code> - Start with 'foo' 
AND end with 'bar'.
-                                                               <br> - Prepend 
<code>'-'</code> on tokens that must not match 
-                                                               
<br>&nbsp;&nbsp;&nbsp;e.g. <code>[column=+foo* -*bar]</code> - Start with 'foo' 
AND does not end with 'bar'.
-                                                               <br>
-                                                               <br><b>Numeric 
fields:</b>
-                                                               
<br><code>[column=123]</code> - A single number
-                                                               
<br><code>[column=1 2 3]</code> - Multiple numbers
-                                                               
<br><code>[column=1-100]</code> - Between two numbers
-                                                               
<br><code>[column=1-100 200-300]</code> - Two ranges of numbers
-                                                               
<br><code>[column&gt;100]</code> - Greater than a number
-                                                               
<br><code>[column&gt;=100]</code> - Greater than or equal to a number
-                                                               
<br><code>[column=!123]</code> - Not a specific number
-                                                               <br>
-                                                               
<br><b>Date/Calendar fields:</b>
-                                                               
<br><code>[column=2001]</code> - A specific year
-                                                               
<br><code>[column=2001.01.01.10.50]</code> - A specific time
-                                                               
<br><code>[column&gt;2001]</code> - After a specific year
-                                                               
<br><code>[column&gt;=2001]</code> - During or after a specific year
-                                                               
<br><code>[column=2001-2003.06.30]</code> - A date range
-                                                               
<br><code>[column=2001 2003 2005]</code> - Multiple ORed dates
-                                                       </span>
-                                               </div>
-                                       </td>
-                               </tr>
-                               <tr>
-                                       <th>View:</th>
-                                       <td>
-                                               <input name="v" size="50" 
value='$R{query.v}'>
-                                       </td>
-                                       <td>
-                                               <div class="tooltip">
-                                                       <small>(?)</small>
-                                                       <span 
class="tooltiptext">
-                                                               Comma-delimited 
list of columns to display.
-                                                               <br>
-                                                               
<br><b>Example:</b>&nbsp;&nbsp;<code>[column1, column2]</code>
-                                                       </span>
-                                               </div>
-                                       </td>
-                               </tr>
-                               <tr>
-                                       <th>Sort:</th>
-                                       <td>
-                                               <input name="o" size="50" 
value='$R{query.o}'>
-                                       </td>
-                                       <td>
-                                               <div class="tooltip">
-                                                       <small>(?)</small>
-                                                       <span 
class="tooltiptext">
-                                                               Comma-delimited 
list of columns to sort by.
-                                                               <br>Columns can 
be suffixed with '-' to indicate descending order.
-                                                               <br>
-                                                               
<br><b>Example:</b>&nbsp;&nbsp;<code>[column1, column2-]</code>
-                                                               <br>
-                                                               
<br><b>Notes:</b>
-                                                               <br> - Columns 
containing collections/arrays/lists are sorted by size.
-                                                       </span>
-                                               </div>
-                                       </td>
-                               </tr>
-                               <tr>
-                                       <th>Page:</th>
-                                       <td>
-                                               Position: <input name='p' 
type='number' style='width:50px' step=20 min=0 value='$R{query.p}'>
-                                               Limit: <input name='l' 
type='number' style='width:50px' step=20 min=0 value='$R{query.l}'>
-                                               <span 
style='float:right'>Ignore-case: <input name='i' type='checkbox' 
value='true'></span>
-                                       </td>
-                                       <td>
-                                       </td>
-                               </tr> 
-                               <tr>
-                                       <th>
-                                               &nbsp;
-                                       </th>
-                                       <td colspan='2' 
style='text-align:right'>
-                                               <input type='reset' 
value='Reset'>
-                                               <input type="submit" 
value='Submit'>
-                                       </td>
-                               </tr>
-                       </table>
-               </form>
-       </div>
-</div>
\ No newline at end of file
+<form style='margin:0px'>
+       <table>
+               <tr>
+                       <th>Search:</th>
+                       <td>
+                               <input name="s" size="50" value='$R{query.s}'>
+                       </td>
+                       <td>
+                               <div class="tooltip">
+                                       <small>(?)</small>
+                                       <span class="tooltiptext">
+                                               Comma-delimited list of 
key/value pair search terms.
+                                               <br>
+                                               <br>Keys are column names.  
Values are search terms.
+                                               <br>
+                                               
<br><b>Example:</b>&nbsp;&nbsp;<code>[column1=foo*, column2&lt;100, 
column3=2013-2016.06.30]</code>
+                                               <br>
+                                               <br><b>String fields:</b>
+                                               <br> - <code>'*'</code> 
represents any character
+                                               <br> - <code>'?'</code> 
represents one character
+                                               <br> - Use single or double 
quotes for phrases
+                                               <br>&nbsp;&nbsp;&nbsp;e.g. 
<code>[column='foo bar']</code> - The term 'foo bar'
+                                               <br> - Multiple search terms 
are ORed 
+                                               <br>&nbsp;&nbsp;&nbsp;e.g. 
<code>[column=foo bar]</code> - 'foo' OR 'bar'
+                                               <br> - Prepend <code>'+'</code> 
on tokens that must match
+                                               <br>&nbsp;&nbsp;&nbsp;e.g. 
<code>[column=+foo* +*bar]</code> - Start with 'foo' AND end with 'bar'.
+                                               <br> - Prepend <code>'-'</code> 
on tokens that must not match 
+                                               <br>&nbsp;&nbsp;&nbsp;e.g. 
<code>[column=+foo* -*bar]</code> - Start with 'foo' AND does not end with 
'bar'.
+                                               <br>
+                                               <br><b>Numeric fields:</b>
+                                               <br><code>[column=123]</code> - 
A single number
+                                               <br><code>[column=1 2 3]</code> 
- Multiple numbers
+                                               <br><code>[column=1-100]</code> 
- Between two numbers
+                                               <br><code>[column=1-100 
200-300]</code> - Two ranges of numbers
+                                               
<br><code>[column&gt;100]</code> - Greater than a number
+                                               
<br><code>[column&gt;=100]</code> - Greater than or equal to a number
+                                               <br><code>[column=!123]</code> 
- Not a specific number
+                                               <br>
+                                               <br><b>Date/Calendar fields:</b>
+                                               <br><code>[column=2001]</code> 
- A specific year
+                                               
<br><code>[column=2001.01.01.10.50]</code> - A specific time
+                                               
<br><code>[column&gt;2001]</code> - After a specific year
+                                               
<br><code>[column&gt;=2001]</code> - During or after a specific year
+                                               
<br><code>[column=2001-2003.06.30]</code> - A date range
+                                               <br><code>[column=2001 2003 
2005]</code> - Multiple ORed dates
+                                       </span>
+                               </div>
+                       </td>
+               </tr>
+               <tr>
+                       <th>View:</th>
+                       <td>
+                               <input name="v" size="50" value='$R{query.v}'>
+                       </td>
+                       <td>
+                               <div class="tooltip">
+                                       <small>(?)</small>
+                                       <span class="tooltiptext">
+                                               Comma-delimited list of columns 
to display.
+                                               <br>
+                                               
<br><b>Example:</b>&nbsp;&nbsp;<code>[column1, column2]</code>
+                                       </span>
+                               </div>
+                       </td>
+               </tr>
+               <tr>
+                       <th>Sort:</th>
+                       <td>
+                               <input name="o" size="50" value='$R{query.o}'>
+                       </td>
+                       <td>
+                               <div class="tooltip">
+                                       <small>(?)</small>
+                                       <span class="tooltiptext">
+                                               Comma-delimited list of columns 
to sort by.
+                                               <br>Columns can be suffixed 
with '-' to indicate descending order.
+                                               <br>
+                                               
<br><b>Example:</b>&nbsp;&nbsp;<code>[column1, column2-]</code>
+                                               <br>
+                                               <br><b>Notes:</b>
+                                               <br> - Columns containing 
collections/arrays/lists are sorted by size.
+                                       </span>
+                               </div>
+                       </td>
+               </tr>
+               <tr>
+                       <th>Page:</th>
+                       <td>
+                               Position: <input name='p' type='number' 
style='width:50px' step=20 min=0 value='$R{query.p}'>
+                               Limit: <input name='l' type='number' 
style='width:50px' step=20 min=0 value='$R{query.l}'>
+                               <span style='float:right'>Ignore-case: <input 
name='i' type='checkbox' value='true'></span>
+                       </td>
+                       <td>
+                       </td>
+               </tr> 
+               <tr>
+                       <th>
+                               &nbsp;
+                       </th>
+                       <td colspan='2' style='text-align:right'>
+                               <input type='reset' value='Reset'>
+                               <input type="submit" value='Submit'>
+                       </td>
+               </tr>
+       </table>
+</form>
\ No newline at end of file

Reply via email to