Author: michiel
Date: 2010-07-05 19:26:49 +0200 (Mon, 05 Jul 2010)
New Revision: 42810

Modified:
   mmbase/trunk/applications/searchrelate/example-webapp/jetty-env.xml
   
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/WEB-INF/tags/mm/searchrelateexample/html.tagx
   
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/example.js
   
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/index.jspx
   
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/relatednodes-nested.jspx
   
mmbase/trunk/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/relate.tagx
   
mmbase/trunk/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/search.tagx
   
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/List.js.jsp
   
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/PathSearcher.js.jsp
   
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/Searcher.js.jsp
   
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/node.tr.jspx
   
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.jspx
   
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/searcher.jspx
Log:
ported stuff from 1.9

Modified: mmbase/trunk/applications/searchrelate/example-webapp/jetty-env.xml
===================================================================
--- mmbase/trunk/applications/searchrelate/example-webapp/jetty-env.xml 
2010-07-05 17:23:29 UTC (rev 42809)
+++ mmbase/trunk/applications/searchrelate/example-webapp/jetty-env.xml 
2010-07-05 17:26:49 UTC (rev 42810)
@@ -15,6 +15,7 @@
           <Item>../src/main/webapp</Item>
           <Item>../target/war/work/org.mmbase.jquery/jquery-ui</Item>
           <Item>../target/war/work/org.mmbase.jquery/ajaxfileupload</Item>
+          <Item>../target/war/work/org.mmbase.jquery/jquery-form</Item>
           <Item>./target/war/work/org.mmbase.tinymce/tinymce-jquery</Item>
           <Item>../src/main/examples</Item>
           <Item>../../../base-webapp/src/main/webapp</Item>

Modified: 
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/WEB-INF/tags/mm/searchrelateexample/html.tagx
===================================================================
--- 
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/WEB-INF/tags/mm/searchrelateexample/html.tagx
 2010-07-05 17:23:29 UTC (rev 42809)
+++ 
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/WEB-INF/tags/mm/searchrelateexample/html.tagx
 2010-07-05 17:26:49 UTC (rev 42810)
@@ -40,6 +40,7 @@
         <title>${_title}</title>
         <jsp:directive.include file="/mmbase/validation/javascript.jspxf" />
         <jsp:directive.include file="/mmbase/jquery/jquery-ui.jspx" />
+        <jsp:directive.include file="/mmbase/jquery/jquery.form.jspx" />
         <jsp:directive.include file="/mmbase/upload/javascript.jspxf" />
         <mm:link page="/mmbase/searchrelate/page.css.jsp">
           <link rel="stylesheet" href="${_}" type="text/css" />

Modified: 
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/example.js
===================================================================
--- 
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/example.js
    2010-07-05 17:23:29 UTC (rev 42809)
+++ 
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/example.js
    2010-07-05 17:26:49 UTC (rev 42810)
@@ -1,25 +1,5 @@
 $().ready(function() {
-        {   // prevent default of gui of images in search results
-            $(document).bind("mmsrPaged",
-                             function (e, status, relater) {
-                                 
$(relater.div).find("a.mm_gui").removeAttr("onclick");
-                                 
$(relater.div).find("a.mm_gui").click(function(ev) {
-                                         ev.preventDefault();
-                                     });
-                             }
-                             );
-        }
 
-        {   // default 'implicit' search results are not shown,
-            // except on the 'search' example page itself
-            if (! $("body").hasClass("search")) {
-                if (typeof MMBaseSearcher == "function") {
-                    MMBaseSearcher.prototype.implicitsAreHidden();
-                }
-            }
-        }
-
-
         {  // Setup tinymcy on the example page for that.
             if ($("body").hasClass("tinymce")) {
 
@@ -29,7 +9,7 @@
                     content_css: "style.css",
                     entity_encoding : "raw", /* needed when XHTML */
                     setup : List.prototype.setupTinyMCE
-                }
+                };
 
                 // bind tinymce to news bodies already displayed:
                 $(".mm_validate.mm_nm_news.mm_f_body").each(function() {

Modified: 
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/index.jspx
===================================================================
--- 
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/index.jspx
    2010-07-05 17:23:29 UTC (rev 42809)
+++ 
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/index.jspx
    2010-07-05 17:26:49 UTC (rev 42810)
@@ -19,10 +19,10 @@
 
       <head>
         <style>
-          li a {
+          ul li a {
           color: #500;
           }
-          li.done a {
+          ul li.done a {
           color: #050;
           }
           .todo .done {
@@ -41,6 +41,16 @@
       <body>
         <h1>Search and Relate examples/tests</h1>
 
+        <form method="POST">
+          <mm:node number="127">
+            <mm:field name="time">
+              <mm:fieldinfo type="input" />
+              <mm:fieldinfo type="errors" />
+            </mm:field>
+          </mm:node>
+          <input type="submit" name="submit" />
+        </form>
+
         <div class="session">
           <mm:import externid="invalidate" />
           <mm:present referid="invalidate">

Modified: 
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/relatednodes-nested.jspx
===================================================================
--- 
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/relatednodes-nested.jspx
      2010-07-05 17:23:29 UTC (rev 42809)
+++ 
mmbase/trunk/applications/searchrelate/example-webapp/src/main/webapp/relatednodes-nested.jspx
      2010-07-05 17:26:49 UTC (rev 42810)
@@ -3,14 +3,13 @@
     title="Nested"
     prefetch="news,urls,images,people"
     xmlns:mm-sre="urn:jsptagdir:/WEB-INF/tags/mm/searchrelateexample"
-    xmlns:mm-sr="http://www.mmbase.org/tags/mm/searchrelate";
     xmlns:mm-srt="urn:jsptagdir:/WEB-INF/tags/mm/searchrelate"
     xmlns:mm="http://www.mmbase.org/mmbase-taglib-2.0";>
 
   <mm:node number="default.mags">
     <h2><mm:field name="title" /></h2>
 
-    <mm-sr:relatednodes
+    <mm-srt:relatednodes
         idvar="rid"
         type="news"
         role="posrel"
@@ -19,7 +18,7 @@
         max="3"
         >
       <h3 class="debug">${rid}</h3>
-    </mm-sr:relatednodes>
+    </mm-srt:relatednodes>
   </mm:node>
   <hr />
   <p>

Modified: 
mmbase/trunk/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/relate.tagx
===================================================================
--- 
mmbase/trunk/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/relate.tagx
 2010-07-05 17:23:29 UTC (rev 42809)
+++ 
mmbase/trunk/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/relate.tagx
 2010-07-05 17:26:49 UTC (rev 42810)
@@ -56,6 +56,9 @@
   <jsp:directive.attribute name="fields"             type="java.lang.String"
                            description="Fields to show in both lists. 
Searching still occurs with 'fieldlist type=search' " />
 
+  <jsp:directive.attribute name="aliases"             type="java.lang.Boolean"
+                           description="Whether to add columns with aliases" />
+
   <jsp:directive.attribute name="styleClass"
                            description="Extra classes to be added to outer 
div"/>
 
@@ -102,6 +105,7 @@
   <c:if test="${seq eq 0 and (empty load ? true : 'true' eq load)}">
     <jsp:directive.include file="/mmbase/validation/javascript.jspxf" />
     <mm:include page="/mmbase/jquery/jquery.jspx" />
+    <mm:include page="/mmbase/jquery/jquery.form.jspx" />
     <mm:link page="/mmbase/searchrelate/Searcher.js.jsp">
       <mm:param name="locale">${repository.cloud.locale}</mm:param>
       <script type="text/javascript" src="${_}"><jsp:text>&lt;!-- Help 
Freakin' IE --&gt;</jsp:text></script>
@@ -109,24 +113,10 @@
   </c:if>
   <jsp:directive.include file="/mmbase/searchrelate/settings.jspf" />
   <script type="text/javascript">
-    $(document).ready(function() {
     <c:if test="${! empty submit}"><!-- submit attribute given: commit 
search/relate on click of that element -->
-      $("${submit}").click(function(el) {
-        return $("#mm_related_${sid}")[0].relater.commit(el); });</c:if>
-      $("#mm_related_${sid}").each(function() {
-      if (this.relater != null) {
-    <c:if test="${! empty fields}"> this.relater.setFields('${fields}'); 
</c:if>
-    <c:if test="${! empty customizedir}"> 
this.relater.setCustomizedir('${customizedir}'); </c:if>
-    <c:if test="${! empty pagesize}"> this.relater.setPageSize(${pagesize}); 
</c:if>
-    <c:if test="${! empty maxpages}"> this.relater.setMaxPages(${maxpages}); 
</c:if>
-    <c:if test="${! empty context}"> this.relater.setContext('${context}'); 
</c:if>
-    
this.relater.setSessionName('${mm:property('org.mmbase.cloud.sessionname')}');
-    <c:if test="${! empty current}">
-      if (this.relater.current != null) { 
this.relater.current.searcher.maxNumber = ${current.maxNumber}; }
+      $("${submit}").live("click", function(el) {
+        return $("#mm_related_${sid}")[0].relater.commit(el); });
     </c:if>
-    }
-      })
-    });
   </script>
 
   <fmt:bundle
@@ -134,9 +124,17 @@
       basename="org.mmbase.searchrelate.resources.searchrelate">
     <div id="mm_related_${sid}"
          class="mm_related ${empty unrelate or ! unrelate ? '' : 
'can_unrelate'} ${empty relations or ! relations ? '' : 'can_editrelations'} 
${empty submit ? 'instant' : ''} ${select ? 'select' : '' } ${styleClass}">
-      <c:if test="${! empty transaction}">
-        <span class="transactionname" style="display: 
none;">${transaction}</span>
-      </c:if>
+      <div class="settings" style="display: none;">
+        <c:if test="${! empty transaction}"><span class="transactionname" 
style="display: none;">${transaction}</span></c:if>
+        <c:if test="${! empty fields}"><span 
class="fields">${fields}</span></c:if>
+        <c:if test="${! empty aliases}"><span 
class="aliases">${aliases}</span></c:if>
+        <c:if test="${! empty customizedir}"><span 
class="customizedir">${customizedir}</span></c:if>
+        <c:if test="${! empty pagesize}"><span 
class="pagesize">${pagesize}</span></c:if>
+        <c:if test="${! empty maxpages}"><span 
class="maxpages">${maxpages}</span></c:if>
+        <c:if test="${! empty context}"><span 
class="context">${context}</span></c:if>
+        <c:if test="${! empty current}"><span 
class="currentMaxNumber">${current.maxNumber}</span></c:if>
+        <span 
class="sessionName">'${mm:property('org.mmbase.cloud.sessionname')}</span>
+      </div>
       <c:if test="${! empty current}">
         <div class="mm_relate_current searchable">
           <jsp:invoke fragment="currentTitle" />
@@ -161,7 +159,7 @@
               </mm:isgreaterthan>
             </mm:size>
           </mm:listnodescontainer>
-          <mm:include page="/mmbase/searchrelate/page.jspx" 
referids="customizedir?,fields?,relations?">
+          <mm:include page="/mmbase/searchrelate/page.jspx" 
referids="customizedir?,fields?,aliases?,relations?">
             <c:if test="${! empty pagesize}">
               <mm:param name="pagesize" referid="pagesize" />
             </c:if>
@@ -217,7 +215,7 @@
         <c:choose>
           <c:when test="${(empty implicitRepository and 
settings['implicitRepository'] eq 'true')  || implicitRepository}">
             <mm:include page="/mmbase/searchrelate/page.jspx"
-                        referids="customizedir?,relations?,fields?">
+                        referids="customizedir?,relations?,fields?,aliases?">
               <c:if test="${! empty pagesize}">
                 <mm:param name="pagesize" referid="pagesize" />
               </c:if>

Modified: 
mmbase/trunk/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/search.tagx
===================================================================
--- 
mmbase/trunk/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/search.tagx
 2010-07-05 17:23:29 UTC (rev 42809)
+++ 
mmbase/trunk/applications/searchrelate/src/main/resources/META-INF/tags/mm/searchrelate/search.tagx
 2010-07-05 17:26:49 UTC (rev 42810)
@@ -40,6 +40,11 @@
   <jsp:directive.attribute name="pagesize"               
type="java.lang.Integer"
                            description="Size of one page. Defaults to 10." />
 
+  <jsp:directive.attribute name="fields"               type="java.lang.String"
+                           description="Fields to show" />
+  <jsp:directive.attribute name="aliases"               
type="java.lang.Boolean"
+                           description="Whether to add a collumn with aliases" 
/>
+
   <mm:import id="_pagesize" vartype="integer">${empty pagesize ? 10 : 
pagesize}</mm:import>
 
   <mm:import externid="org.mmbase.in_form" id="in_form" 
vartype="boolean">false</mm:import>
@@ -58,5 +63,7 @@
       implicitRepository="${empty implicit ? settings['implicitRepository'] : 
implicit}"
       create="${create}"
       styleClass="${styleClass}"
+      fields="${fields}"
+      aliases="${aliases}"
       />
 </jsp:root>

Modified: 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/List.js.jsp
===================================================================
--- 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/List.js.jsp
      2010-07-05 17:23:29 UTC (rev 42809)
+++ 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/List.js.jsp
      2010-07-05 17:26:49 UTC (rev 42810)
@@ -28,7 +28,7 @@
 
 $(document).ready(
     function() {
-        List.prototype.init(document, false);
+        List.prototype.init(document);
 
         // we allow mm-sr:search to be used for your own implementation of 
searcher.
         // This arranges the version arranged by mm-sr:relatednodes itself
@@ -270,16 +270,7 @@
 /**
  * Initializes every div.list in the given element to be a List
  */
-List.prototype.init = function(el, initSearchers) {
-    if (typeof initSearchers == "undefined" || initSearchers) {
-        if (typeof MMBaseRelater == "function") {
-            $(el).find("div.mm_related").each(function() {
-                    if (this.relater == null) {
-                        this.relater = new MMBaseRelater(this);
-                    }
-                });
-        }
-    }
+List.prototype.init = function(el) {
 
     var l = List; // hoping to make IE a bit faster
     $(el).find("div.list").each(function() {

Modified: 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/PathSearcher.js.jsp
===================================================================
--- 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/PathSearcher.js.jsp
      2010-07-05 17:23:29 UTC (rev 42809)
+++ 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/PathSearcher.js.jsp
      2010-07-05 17:26:49 UTC (rev 42810)
@@ -62,6 +62,10 @@
     params.nodeNumber = node;
     params.pid = this.pid;
     var url = "${mm:link('/mmbase/searchrelate/path/searcher.jspx')}";
+    var loader = $("<img src='${mm:link('/mmbase/style/ajax-loader.gif')}' 
height='32' width='32' alt='loading' class='searching' />");
+    $(td).empty();
+    $(td).append(loader);
+
     $(td).load(url, params,
                function() {
                    $(td).find("div.mm_related").each(

Modified: 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/Searcher.js.jsp
===================================================================
--- 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/Searcher.js.jsp
  2010-07-05 17:23:29 UTC (rev 42809)
+++ 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/Searcher.js.jsp
  2010-07-05 17:26:49 UTC (rev 42810)
@@ -28,12 +28,66 @@
 
 $(document).ready(
     function(){
-        $("body").find("div.mm_related").each(
-            function() {
-                if (this.relater == null) {
+        $("div.mm_related").live(
+           "click",
+           function(ev) {
+               if (this.relater == null) {
                     this.relater = new MMBaseRelater(this);
-                }
+                   $(ev.target).click();
+                   return false;
+                } else {
+                   return true;
+               }
             });
+
+       /*
+        * If you defined in your CSS that 'implicit' search results are not 
visible at all, then
+        * this method arranges the texts on the search buttons accordingly
+        * (between 'search' and 'close').
+        */
+        $("div.mm_related").
+           live("mmsrPaged",
+                function (e, status, relater, searcher) {
+                     var anchor = $(searcher.div).find("a.search")[0];
+                     anchor.searcher = searcher;
+                     var div = searcher.getResultDiv();
+                    if(! div.implicitIsVisible) {
+                        if (searcher.offset == 0 && ! 
$(div).hasClass("implicit")) {
+                            $(anchor).text('<fmt:message key="close" />');
+                        } else {
+                            $(anchor).text('<fmt:message key="search" />');
+                        }
+                    }
+                    // The onlick of mm_gui's are rather annoying
+                    // TODO, should this be configuable?
+                     $(relater.div).find("a.mm_gui").removeAttr("onclick");
+                     $(relater.div).find("a.mm_gui").click(
+                        function(ev) {
+                            ev.preventDefault();
+                        });
+                 }
+               );
+
+       $("input.search").
+           live("keyup",
+                function(e) {
+                    var target = e.target;
+                    var anchor = 
$(target).closest("div.searchable").find("a.search")[0];
+
+                     var searcher = anchor.searcher;
+                     if (searcher != null) {
+                        var div = searcher.getResultDiv();
+                        if(! div.implicitIsVisible) {
+                            if (searcher.offset == 0 && searcher.value == 
$(target).val() && ! $(div).hasClass("implicit")) {
+                                $(anchor).text('<fmt:message key="close" />');
+                            } else {
+                                $(anchor).text('<fmt:message key="search" />');
+                            }
+                        }
+                     }
+                }
+               );
+
     });
 
 /**
@@ -90,6 +144,10 @@
 
     if (this.current != null) {
         this.addSearcher(this.current, "current");
+       var maxNumber = $(d).find("div.settings span.currentMaxNumber").html();
+       if (maxNumber != null) {
+           this.current.searcher.maxNumber = maxNumber;
+       }
     } else {
         this.logger.debug("No current rep found");
     }
@@ -125,6 +183,23 @@
         );
     }
 
+
+    $(d).find("div.settings span.transactioname").each(
+       function() {
+            this.transaction = this.nodeValue;
+       });
+    $(d).find("div.settings span.fields").each(
+       function() {
+           this.fields = this.nodeValue;
+       });
+    this.setAliases($(d).find("div.settings span.aliases").html() || false);
+    this.setFields($(d).find("div.settings span.fields").html());
+    this.setCustomizedir($(d).find("div.settings span.customizedir").html());
+    this.setPageSize($(d).find("div.settings span.pagesize").html());
+    this.setMaxPages($(d).find("div.settings span.maxpages").html());
+    this.setContext($(d).find("div.settings span.context").html());
+
+
     $(this.div).trigger("mmsrRelaterReady", [self]);
 
 }
@@ -592,57 +667,77 @@
  * Set mmbase context for new objects
  */
 MMBaseRelater.prototype.setContext = function(context) {
-    if (this.current != null) {
-        this.current.searcher.context = context;
+    if (context != null) {
+       if (this.current != null) {
+            this.current.searcher.context = context;
+       }
+       if (this.repository != null) {
+            this.repository.searcher.context = context;
+       }
     }
-    if (this.repository != null) {
-        this.repository.searcher.context = context;
-    }
 };
 
 MMBaseRelater.prototype.setSessionName = function(sessionName) {
-    if (this.current != null) {
-        this.current.searcher.sessionName = sessionName;
+    if (sessionName != null) {
+       if (this.current != null) {
+            this.current.searcher.sessionName = sessionName;
+       }
+       if (this.repository != null) {
+            this.repository.searcher.sessionName = sessionName;
+       }
     }
-    if (this.repository != null) {
-        this.repository.searcher.sessionName = sessionName;
-    }
 };
 
 MMBaseRelater.prototype.setFields = function(fields) {
+    if (fields != null) {
+       if (this.current != null) {
+            this.current.searcher.setFields(fields);
+       }
+       if (this.repository != null) {
+            this.repository.searcher.setFields(fields);
+       }
+    }
+};
+MMBaseRelater.prototype.setAliases = function(a) {
     if (this.current != null) {
-        this.current.searcher.setFields(fields);
+        this.current.searcher.setAliases(a);
     }
     if (this.repository != null) {
-        this.repository.searcher.setFields(fields);
+        this.repository.searcher.setAliases(a);
     }
-}
+};
 
 MMBaseRelater.prototype.setCustomizedir = function(customizedir) {
-    if (this.current != null) {
-        this.current.searcher.setCustomizedir(customizedir);
+    if (customizedir != null) {
+       if (this.current != null) {
+            this.current.searcher.setCustomizedir(customizedir);
+       }
+       if (this.repository != null) {
+            this.repository.searcher.setCustomizedir(customizedir);
+       }
     }
-    if (this.repository != null) {
-        this.repository.searcher.setCustomizedir(customizedir);
-    }
 };
 
 MMBaseRelater.prototype.setPageSize = function(pagesize) {
-    if (this.current != null) {
-        this.current.searcher.setPageSize(pagesize);
+    if (pagesize != null) {
+       if (this.current != null) {
+            this.current.searcher.setPageSize(pagesize);
+       }
+       if (this.repository != null) {
+            this.repository.searcher.setPageSize(pagesize);
+       }
     }
-    if (this.repository != null) {
-        this.repository.searcher.setPageSize(pagesize);
-    }
 };
 
 MMBaseRelater.prototype.setMaxPages = function(maxpages) {
-    if (this.current != null) {
-        this.current.searcher.maxpages = maxpages;
+    if (maxpages != null) {
+       if (this.current != null) {
+            this.current.searcher.maxpages = maxpages;
+       }
+       if (this.repository != null) {
+            this.repository.searcher.maxpages = maxpages;
+       }
     }
-    if (this.repository != null) {
-        this.repository.searcher.maxpages = maxpages;
-    }
 };
 
 /**
@@ -658,6 +753,7 @@
     this.relater = r;
     this.type    = type;
     this.fields = "";
+    this.aliases = false;
     this.customizedir = "";
     this.pagesize = 10;
     this.maxpages = 20;
@@ -667,9 +763,7 @@
     this.transaction   = null;
     this.canEditrelations = $(r.div).hasClass("can_editrelations");
     var self = this;
-    $(d).find("span.transactioname").each(function() {
-        this.transaction = this.nodeValue;
-    });
+
     this.searchResults = {};
     this.bindEvents();
     // Arrange that pressing enter in the search-area works:
@@ -702,6 +796,10 @@
 MMBaseSearcher.prototype.setFields = function(fields) {
     this.fields = fields;
 };
+MMBaseSearcher.prototype.setAliases = function(aliases) {
+    this.aliases = aliases;
+    console.log(this.aliases);
+};
 
 MMBaseSearcher.prototype.setPageSize = function(pagesize) {
     this.pagesize = pagesize;
@@ -738,6 +836,11 @@
     var newSearch = val;
     var rep = this.getResultDiv();
 
+    if ($(rep).hasClass("implicit")) {
+       rep.implicitIsVisible = $(rep).is(":visible");
+    }
+
+
     if (newSearch != this.value) {
         $(rep).removeClass("implicit");
         this.searchResults = {};
@@ -756,12 +859,12 @@
         this.offset = offset;
     }
 
-    var rep = this.getResultDiv();
     var params = {
         id: this.getQueryId(),
         offset: offset,
         search: "" + this.value,
         fields: this.fields,
+        aliases: this.aliases,
         pagesize: this.pagesize,
         maxpages: this.maxpages,
         customizedir: this.customizedir,
@@ -770,13 +873,14 @@
 
     var result = this.searchResults["" + offset];
     this.logger.debug("Searching " + this.searchUrl + " " + params);
+    this.logger.debug(params);
 
     if (result == null) {
         var self = this;
         $.ajax({ url: this.searchUrl, type: "GET", dataType: "xml", data: 
params,
                  beforeSend: function() {
                     $(self.div).find("input.search").addClass("searching");
-                    $(rep).append($('<p><fmt:message key="searching" /></p>'));
+                    $(rep).append($('<p class=\'searching\'><fmt:message 
key="searching" /></p>'));
                  },
                  complete: function(res, status) {
                     if ( status == "success" || status == "notmodified" ) {
@@ -814,40 +918,10 @@
 
 
 /**
- * If you defined in your CSS that 'implicit' search results are not visible 
at all, then
- * you can call this method to bind events to change the texts on the search 
buttons accordingly
- * (between 'search' and 'close').
+ @deprecated Arranged automaticly.
  */
 MMBaseSearcher.prototype.implicitsAreHidden = function() {
-    $(document).bind("mmsrPaged",
-                     function (e, status, relater, searcher) {
-                         var anchor = $(searcher.div).find("a.search")[0];
-                         anchor.searcher = searcher;
-                         var div = searcher.getResultDiv();
-                         if (searcher.offset == 0 && ! 
$(div).hasClass("implicit")) {
-                             $(anchor).text('<fmt:message key="close" />');
-                         } else {
-                             $(anchor).text('<fmt:message key="search" />');
-                         }
-
-                     });
-
-    $(document).keyup(function(e) {
-            var target = e.target;
-            if (target.tagName == "input" && $(target).hasClass("search")) {
-                var anchor = $(target).closest("fieldset").find("a")[0];
-                var searcher = anchor.searcher;
-                if (searcher != null) {
-                    var div = searcher.getResultDiv();
-                    if (searcher.offset == 0 && searcher.value == 
$(target).val() && ! $(div).hasClass("implicit")) {
-                        $(anchor).text('<fmt:message key="close" />');
-                    } else {
-                        $(anchor).text('<fmt:message key="search" />');
-                    }
-                }
-            }
-
-        });
+    //DEPRECETATEd
 };
 
 
@@ -936,7 +1010,11 @@
                             }
                         }
                     };
-                    $(rep).find("form.mm_form").ajaxForm(options);
+                   if ($(rep).find("form.mm_form").ajaxForm == undefined) {
+                       alert("$.ajaxForm is not defined");
+                   } else {
+                       $(rep).find("form.mm_form").ajaxForm(options);
+                   }
 
                 }
             }

Modified: 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/node.tr.jspx
===================================================================
--- 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/node.tr.jspx
     2010-07-05 17:23:29 UTC (rev 42809)
+++ 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/node.tr.jspx
     2010-07-05 17:26:49 UTC (rev 42810)
@@ -10,14 +10,18 @@
       <mm:import externid="id"     required="true" from="request,parameters" />
       <mm:import externid="node"   required="true" from="request,parameters" />
       <mm:import externid="fields" from="request,parameters" />
+      <mm:import externid="aliases" from="request,parameters" />
       <mm:import externid="editrelations" from="request,parameters" />
       <mm:import externid="customizedir"  from="request,parameters" />
       <mm:import externid="relation"      from="request,parameters" />
-      
+
       <mm:node referid="node" jspvar="n">
         <mm:nodeinfo type="nodemanager" id="nodemanager" write="false" />
         <tr class="click ${(! empty status and status.index % 2 eq 0) ? 'even' 
: 'odd'} ${nodemanager}">
           <td class="node number"><mm:field name="number" /></td>
+          <c:if test="${aliases eq 'true'}">
+            <td class="node aliases" scope="col"><mm:aliaslist><mm:write 
/><mm:last inverse="true">, </mm:last></mm:aliaslist></td>
+          </c:if>
           <td class="node relation">
             <mm:compare referid="id" 
regexp="\w*current">${relation}</mm:compare>
           </td>

Modified: 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.jspx
===================================================================
--- 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.jspx
        2010-07-05 17:23:29 UTC (rev 42809)
+++ 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/page.jspx
        2010-07-05 17:26:49 UTC (rev 42810)
@@ -24,6 +24,7 @@
       <mm:import externid="customizedir" from="parameters"/>
       <mm:import externid="relations" id="editrelations" from="parameters" />
       <mm:import externid="fields" from="parameters" id="flds" />
+      <mm:import externid="aliases" from="parameters">false</mm:import>
 
       <mm:listnodescontainer id="b" clone="query" jspvar="bq">
         <c:if test="${! empty search}">
@@ -67,7 +68,10 @@
               <c:choose>
                 <c:when test="${!empty flds}">
                   <th class="node number" scope="col">#</th>
-                  <th class="node relation" scope="col">relation</th>
+                  <c:if test="${aliases eq 'true'}">
+                    <th class="node aliases" scope="col">alias</th>
+                  </c:if>
+                  <th class="node relation" scope="col">rel</th>
                   <th class="node guitype" scope="col"><fmt:message 
key="nodetype" /></th>
                   <mm:fieldlist nodetype="${query.nodeManager.name}" 
fields="$flds" varStatus="field">
                     <th class="fields ${field.current.name}" 
scope="col"><mm:fieldinfo type="guiname" /></th>
@@ -76,7 +80,10 @@
                 </c:when>
                 <c:otherwise>
                   <th class="node number" scope="col">#</th>
-                  <th class="node relation" scope="col">relation</th>
+                  <c:if test="${aliases eq 'true'}">
+                    <th class="node aliases" scope="col">alias</th>
+                  </c:if>
+                  <th class="node relation" scope="col">rel</th>
                   <th class="node guitype" scope="col"><fmt:message 
key="nodetype"  /></th>
                   <th class="node gui" scope="col"><jsp:text> </jsp:text></th>
                     <mm:fieldlist nodetype="${query.nodeManager.name}" 
type="list" varStatus="field">
@@ -148,7 +155,7 @@
                 </mm:isnotempty>
               </mm:compare>
 
-              <mm:include page="node.tr.jspx" 
attributes="status,_n...@node,customizedir?,f...@fields?,editrelations?,relation?"
 />
+              <mm:include page="node.tr.jspx" 
attributes="status,_n...@node,customizedir?,f...@fields?,editrelations?,relation?,aliases?"
 />
 
               <c:if test="${editrelations == true}">
                 <mm:compare referid="id" regexp="\w*current">

Modified: 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/searcher.jspx
===================================================================
--- 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/searcher.jspx
       2010-07-05 17:23:29 UTC (rev 42809)
+++ 
mmbase/trunk/applications/searchrelate/src/main/webapp/mmbase/searchrelate/path/searcher.jspx
       2010-07-05 17:26:49 UTC (rev 42810)
@@ -24,7 +24,6 @@
 
       <mm:write referid="parameters.query" jspvar="q" 
vartype="org.mmbase.bridge.NodeQuery" write="false">
 
-
         <jsp:scriptlet>Node node = null;</jsp:scriptlet>
         <c:if test="${!empty nodeNumber}">
           <mm:node referid="nodeNumber" jspvar="n">
@@ -47,8 +46,19 @@
           create="false"
           >
         <jsp:attribute name="repositoryTitle">
+          <c:if test="${! empty param.intro}">
+            <div class="intro"><jsp:text>${param.intro}</jsp:text></div>
+          </c:if>
           <c:if test="${! empty nodeNumber}">
-            <mm:node number="${nodeNumber}"><mm:nodeinfo type="gui" 
/></mm:node>
+            <div class="intro">
+              <mm:node number="${nodeNumber}">
+                <span class="type">
+                  <mm:nodeinfo type="guitype" />
+                  <jsp:text>: </jsp:text>
+                </span>
+                <mm:nodeinfo type="gui" />
+              </mm:node>
+            </div>
           </c:if>
         </jsp:attribute>
       </mm-sr:relate>

_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to