Update of /var/cvs/applications/searchrelate/templates
In directory james.mmbase.org:/tmp/cvs-serv16212

Modified Files:
        Searcher.js.jsp create.jspx page.css.jsp page.jspx relate.jspf 
Added Files:
        node.tr.jspx 
Log Message:
made creating of new nodes, and dleeting of relations work


See also: http://cvs.mmbase.org/viewcvs/applications/searchrelate/templates


node.tr.jspx is new



Index: Searcher.js.jsp
===================================================================
RCS file: /var/cvs/applications/searchrelate/templates/Searcher.js.jsp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- Searcher.js.jsp     10 Apr 2008 14:59:24 -0000      1.2
+++ Searcher.js.jsp     14 Apr 2008 15:45:15 -0000      1.3
@@ -11,7 +11,7 @@
 
  *
  * @author Michiel Meeuwissen
- * @version $Id: Searcher.js.jsp,v 1.2 2008/04/10 14:59:24 michiel Exp $
+ * @version $Id: Searcher.js.jsp,v 1.3 2008/04/14 15:45:15 michiel Exp $
  */
 
 $(document).ready(function(){
@@ -49,10 +49,11 @@
     this.logger.debug(d);
     this.logger.debug("setting up current");
     this.current       = $(d).find(".mm_relate_current")[0];
+    this.canUnrelate = $(d).hasClass("can_unrelate");
     if (this.current != null) {
        this.addSearcher(this.current, "current");
     } else {
-       log.debug("No current rep found");
+       this.logger.debug("No current rep found");
     }
 
     if (typeof MMBaseValidator == "function") {
@@ -61,7 +62,6 @@
     this.logger.debug("setting up repository");
     this.repository    = $(d).find(".mm_relate_repository")[0];
     if (this.repository != null) this.addSearcher(this.repository, 
"repository");
-    this.canUnrelate = $(d).hasClass("can_unrelate");
 
 }
 
@@ -86,8 +86,8 @@
        });
        if (this.canUnrelate) {
            $(el).find("tr.click").each(function() {
-               $(this).click(function() {
-                   anchor.searcher.unrelate(this);
+               $(this).click(function(tr) {
+                   relater.unrelate(this);
                    return false;
                })});
        }
@@ -119,7 +119,7 @@
        if (this.transaction != null) {
            params.transaction = this.transaction;
        }
-       $.ajax({async: true, url: url, type: "GET", dataType: "xml", data: 
params,
+       $.ajax({async: false, url: url, type: "GET", dataType: "xml", data: 
params,
                complete: function(res, status){
                    $(a).removeClass("submitting");
                    if (status == "success") {
@@ -264,8 +264,10 @@
     this.relater = r;
     this.type    = type;
     this.pagesize = 10;
+    this.maxpages = 20;
     this.logger  = logger != null ? logger : new MMBaseLogger();
     this.value = "";
+    this.offset = 0;
     this.transaction   = null;
     var self = this;
     $(d).find("span.transactioname").each(function() {
@@ -300,10 +302,11 @@
        this.searchResults = {};
        this.value = newSearch;
     }
+    this.offset = offset;
 
     var rep = this.getResultDiv();
     var url = "${mm:link('/mmbase/searchrelate/page.jspx')}";
-    var params = {id: this.getQueryId(), offset: offset, search: this.value, 
pagesize: this.pagesize};
+    var params = {id: this.getQueryId(), offset: offset, search: this.value, 
pagesize: this.pagesize, maxpages: this.maxpages};
 
     var result = this.searchResults["" + offset];
     $(rep).empty();
@@ -342,19 +345,49 @@
     var url = "${mm:link('/mmbase/searchrelate/create.jspx')}";
     var params = {id: this.getQueryId()};
     var self = this;
-    $.ajax({url: url, type: "GET", dataType: "xml", data: params,
+    $.ajax({url: url, type: "GET", data: params,
            complete: function(res, status){
                if ( status == "success") {
                    result = res.responseText;
                    $(rep).empty();
                    $(rep).append($(result).find("> *"));
+                   console.log($(result).find("input[name='nodemanager']")[0]);
+                   
self.validator.prefetchNodeManager($(result).find("input[name='nodemanager']")[0].value);
                    self.validator.addValidation(rep);
+                   var options = {
+                       url: "${mm:link('/mmbase/searchrelate/create.jspx')}",
+                       target:     null,
+                       success:    function(res) {
+                           var newNode = 
$(res).find("span.newnode")[0].firstChild.nodeValue;
+                           var tr = self.getTr(newNode);
+                           self.relater.relate(tr);
+                           self.search(null, self.offset);
+                       }
+                   };
+                   $(rep).find("form.mm_form").ajaxForm(options);
+
                }
            }
           });
     $(rep).append($("<p>Creating</p>"));
 }
 
+
+MMBaseSearcher.prototype.getTr = function(node) {
+    var url = "${mm:link('/mmbase/searchrelate/node.tr.jspx')}";
+    var params = {id: this.getQueryId(), node: node};
+    var result;
+    $.ajax({async: false, url: url, type: "GET", dataType: "xml", data: params,
+           complete: function(res, status){
+               if ( status == "success" || status == "notmodified" ) {
+                   result = res.responseText;
+               }
+           }
+          });
+    return result;
+}
+
+
 MMBaseSearcher.prototype.deleteNewlyRemoved = function(rep) {
     var self = this;
     var deleted = false;


Index: create.jspx
===================================================================
RCS file: /var/cvs/applications/searchrelate/templates/create.jspx,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- create.jspx 10 Apr 2008 14:59:24 -0000      1.1
+++ create.jspx 14 Apr 2008 15:45:15 -0000      1.2
@@ -5,22 +5,51 @@
     xmlns:mm="http://www.mmbase.org/mmbase-taglib-2.0";
     >
   <jsp:output omit-xml-declaration="true" />
-  <mm:content expires="0" type="application/xml">
+  <mm:content expires="0" type="text/html">
     <mm:cloud method="asis">
       <mm:import externid="id" required="true" />
       <mm:import from="session" externid="${id}" id="query" required="true" />
 
-      <table summary="Create node">
-        <mm:fieldlist nodetype="${query.nodeManager.name}" type="create">
-          <tr>
-            <th><mm:fieldinfo type="guiname" /></th>
+      <mm:form page="/mmbase/searchrelate/create.jspx">
+        <input type="hidden" name="id" value="${id}" />
+        <input type="hidden" name="nodemanager" 
value="${query.nodeManager.name}" />
+        <table  class="create" summary="Create node">
+          <tfoot>
+            <tr class="buttons">
+              <td colspan="2">
+                <input type="submit"  />
+                <input type="hidden"  name="s" />
+              </td>
+            </tr>
+          </tfoot>
+          <mm:createnode id="newnode" type="${query.nodeManager.name}">
+            <tbody>
+              <mm:fieldlist type="create" varStatus="field">
+                <tr class="fields ${field.current.name}">
+                  <th class="node">
+                    <mm:fieldinfo type="guiname" />
+                  </th>
             <td>
               <mm:fieldinfo type="input" />
               <mm:fieldinfo type="errors" />
             </td>
           </tr>
         </mm:fieldlist>
+            </tbody>
+          </mm:createnode>
       </table>
+        <mm:import externid="s" />
+        <mm:present referid="s">
+          <mm:valid>
+            <mm:commit />
+            <mm:node referid="newnode">
+              <mm:log>Created new node ${_node}</mm:log>
+              Created <span class="newnode">${_node}</span>
+            </mm:node>
+          </mm:valid>
+        </mm:present>
+      </mm:form>
     </mm:cloud>
   </mm:content>
 </div>
+


Index: page.css.jsp
===================================================================
RCS file: /var/cvs/applications/searchrelate/templates/page.css.jsp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- page.css.jsp        8 Apr 2008 16:31:20 -0000       1.1
+++ page.css.jsp        14 Apr 2008 15:45:15 -0000      1.2
@@ -87,6 +87,11 @@
   background-color: #e8d8d8;
 }
 
+.mm_related .searchable table .paging.notneeded {
+  display: none;
+}
+
+
 .failed {
  background-color: red;
 }


Index: page.jspx
===================================================================
RCS file: /var/cvs/applications/searchrelate/templates/page.jspx,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- page.jspx   10 Apr 2008 14:59:24 -0000      1.2
+++ page.jspx   14 Apr 2008 15:45:15 -0000      1.3
@@ -9,7 +9,7 @@
       Presents a table with one page of query results. Plus paging to other 
pages (in tfoot).
       Used in ajax-calls, but can also be directly included with mm:include 
(for initial results).
       @todo Searching only happens in actual mmbase queries now. How about 
lucene queries?
-      @version $Id: page.jspx,v 1.2 2008/04/10 14:59:24 michiel Exp $
+      @version $Id: page.jspx,v 1.3 2008/04/14 15:45:15 michiel Exp $
   -->
   <jsp:output omit-xml-declaration="true" />
   <mm:content expires="0" type="application/xml">
@@ -24,16 +24,16 @@
       <mm:listnodescontainer id="b" clone="query">
         <c:if test="${! empty search}">
           <mm:composite operator="OR">
-            <mm:fieldlist container="b" type="search" id="field">
-              <c:if test="${field.dataType.class.name eq 
'org.mmbase.datatypes.StringDataType'}">
-                <mm:constraint field="${field.name}" operator="LIKE" 
value="%${search}%" casesensitive="false"/>
+            <mm:fieldlist container="b" type="search" varStatus="field">
+              <c:if test="${field.current.dataType.class.name eq 
'org.mmbase.datatypes.StringDataType'}">
+                <mm:constraint field="${field.current.name}" operator="LIKE" 
value="%${search}%" casesensitive="false"/>
               </c:if>
             </mm:fieldlist>
           </mm:composite>
         </c:if>
+        <mm:size id="size" write="false" />
         <mm:maxnumber value="${pagesize}" />
         <mm:offset value="${offset}" />
-
         <fmt:message key="searchresults" var="summary">
           <fmt:param value="${search}" />
         </fmt:message>
@@ -49,7 +49,7 @@
             </tr>
           </thead>
           <!--  PAGING -->
-          <tfoot>
+          <tfoot class="paging ${size gt pagesize ? 'needed' : 'notneeded'}">
             <tr>
               <td colspan="${colcount + 2}">
                 <mm:previousbatches maxtotal="${maxpages}" indexoffset="1">
@@ -66,8 +66,8 @@
                   <jsp:text>, </jsp:text>
                   <a class="navigate" href="${'#'}${id}_${_}" 
name="${_}"><mm:index /></a>
                   <mm:last>
-                    <mm:index>
-                      <mm:compare value="${maxpages}">...</mm:compare>
+                    <mm:index write="false">
+                      <c:if test="${_ lt size / pagesize}">...</c:if>
                     </mm:index>
                   </mm:last>
                 </mm:nextbatches>
@@ -77,19 +77,7 @@
           <!--  ACTUAL SEARCHRESULT -->
           <tbody>
             <mm:listnodes varStatus="status">
-              <tr class="click ${status.index % 2 eq 0 ? 'even' : 'odd'}" 
id="${id}_node_${_node}">
-                <td class="node number">
-                  <mm:field name="number" />
-                </td>
-                <td class="node">
-                  <mm:nodeinfo type="gui" />
-                </td>
-                <mm:fieldlist type="list">
-                  <mm:fieldinfo type="name">
-                    <td class="fields ${_}"><mm:fieldinfo type="guivalue" 
/></td>
-                  </mm:fieldinfo>
-                </mm:fieldlist>
-              </tr>
+              <mm:include page="node.tr.jspx" referids="id" 
attributes="status,[EMAIL PROTECTED]" />
             </mm:listnodes>
           </tbody>
         </table>


Index: relate.jspf
===================================================================
RCS file: /var/cvs/applications/searchrelate/templates/relate.jspf,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- relate.jspf 8 Apr 2008 16:31:20 -0000       1.1
+++ relate.jspf 14 Apr 2008 15:45:15 -0000      1.2
@@ -1,11 +1,6 @@
 <mm:listnodes referid="related" jspvar="n">
   <jsp:expression>Queries.addToResult(current, n)</jsp:expression>
 </mm:listnodes>
-<%--
-    Not yet supported
-    <mm:listnodes referid="unrelated" jspvar="n">
-    <jsp:scriptlet>
-    Queries.removeFromResult(current, n);
-    </jsp:scriptlet>
-    </mm:listnodes>
---%>
+<mm:listnodes referid="unrelated" jspvar="n">
+ <jsp:expression>Queries.removeFromResult(current, n)</jsp:expression>
+</mm:listnodes>
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to