Author: adrianc
Date: Fri Aug 24 16:16:18 2007
New Revision: 569568

URL: http://svn.apache.org/viewvc?rev=569568&view=rev
Log:
More fixes in the forum feature in the content component. I also added a few 
comments to indicate what different fields are used for.

The eCommerce component organized forum data one way, and the content component 
organized it another way. After discussion on the dev ml, I determined that the 
content component was storing data incorrectly.

This commit is not backwards compatible with existing forum messages. Existing 
forum messages will have to have the contents of ContentAssoc.contentId and 
ContentAssoc.contentIdTo swapped before updating to this revision.

Modified:
    ofbiz/trunk/applications/content/entitydef/entitymodel.xml
    
ofbiz/trunk/applications/content/src/org/ofbiz/content/ContentManagementServices.java
    ofbiz/trunk/applications/content/widget/forum/ForumForms.xml
    ofbiz/trunk/applications/content/widget/forum/ForumScreens.xml
    ofbiz/trunk/applications/content/widget/forum/ForumTrees.xml

Modified: ofbiz/trunk/applications/content/entitydef/entitymodel.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/entitydef/entitymodel.xml?rev=569568&r1=569567&r2=569568&view=diff
==============================================================================
--- ofbiz/trunk/applications/content/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/applications/content/entitydef/entitymodel.xml Fri Aug 24 
16:16:18 2007
@@ -187,7 +187,7 @@
             title="Content Entity">
       <field name="contentId" type="id-ne"></field>
       <field name="contentTypeId" type="id"></field>
-      <field name="ownerContentId" type="id"></field>
+      <field name="ownerContentId" type="id"></field> <!-- used for 
permissions checking -->
       <field name="decoratorContentId" type="id"></field> 
       <field name="instanceOfContentId" type="id"></field>
       <field name="dataResourceId" type="id"></field>
@@ -263,7 +263,7 @@
         <key-map field-name="contentId" rel-field-name="contentIdStart" />
       </relation>
     </entity>
-    <view-entity entity-name="ContentAndRole" 
package-name="org.ofbiz.content.content" title="Content And Role Entity">
+    <view-entity entity-name="ContentAndRole" 
package-name="org.ofbiz.content.content" title="Content And Role View Entity">
         <member-entity entity-alias="CNT" entity-name="Content"/>
         <member-entity entity-alias="CRLE" entity-name="ContentRole"/>
         <alias-all entity-alias="CNT"/>
@@ -311,8 +311,8 @@
     <entity entity-name="ContentAssoc"
             package-name="org.ofbiz.content.content"
             title="Content Association Entity">
-      <field name="contentId" type="id-ne"></field>
-      <field name="contentIdTo" type="id-ne"></field>
+      <field name="contentId" type="id-ne"></field> <!-- "parent" content -->
+      <field name="contentIdTo" type="id-ne"></field> <!-- "child" or "sub" 
content -->
       <field name="contentAssocTypeId" type="id"></field>
       <field name="fromDate" type="date-time"></field>
       <field name="thruDate" type="date-time"></field>
@@ -359,7 +359,7 @@
     </entity>
     <view-entity entity-name="ContentAssocDataResourceViewFrom"
                 package-name="org.ofbiz.content.content"
-                title="Main Assoc To and DataResource">
+                title="Main Assoc From and DataResource View Entity">
       <member-entity entity-alias="CO" entity-name="Content"/>
       <member-entity entity-alias="CA" entity-name="ContentAssoc"/>
       <member-entity entity-alias="DR" entity-name="DataResource"/>
@@ -402,7 +402,7 @@
     </view-entity>
     <view-entity entity-name="ContentAssocDataResourceViewTo"
                 package-name="org.ofbiz.content.content"
-                title="Main Assoc To and DataResource">
+                title="Main Assoc To and DataResource View Entity">
       <member-entity entity-alias="CO" entity-name="Content"/>
       <member-entity entity-alias="CA" entity-name="ContentAssoc"/>
       <member-entity entity-alias="DR" entity-name="DataResource"/>
@@ -461,7 +461,7 @@
     </entity>
    <view-entity entity-name="ContentAssocViewFrom"
                 package-name="org.ofbiz.content.content"
-                title="Main Assoc To">
+                title="Main Assoc From View Entity">
       <member-entity entity-alias="CO" entity-name="Content"/>
       <member-entity entity-alias="CA" entity-name="ContentAssoc"/>
       <alias-all entity-alias="CO"/>
@@ -475,7 +475,7 @@
     </view-entity>
     <view-entity entity-name="ContentAssocViewTo"
                 package-name="org.ofbiz.content.content"
-                title="Main Assoc To">
+                title="Main Assoc To View Entity">
       <member-entity entity-alias="CO" entity-name="Content"/>
       <member-entity entity-alias="CA" entity-name="ContentAssoc"/>
       <alias-all entity-alias="CO"/>
@@ -504,7 +504,7 @@
     </entity>
     <view-entity entity-name="ContentDataResourceView"
                 package-name="org.ofbiz.content.content"
-                title="Content and DataResource">
+                title="Content and DataResource View Entity">
       <member-entity entity-alias="CO" entity-name="Content"/>
       <member-entity entity-alias="DR" entity-name="DataResource"/>
       <alias-all entity-alias="CO" />
@@ -542,7 +542,7 @@
     </view-entity>
     <view-entity entity-name="CommEventContentDataResource"
                 package-name="org.ofbiz.content.content"
-                title="CommEvent and Content and DataResource">
+                title="CommEvent and Content and DataResource View Entity">
       <member-entity entity-alias="CECA" entity-name="CommEventContentAssoc"/>
       <member-entity entity-alias="CO" entity-name="Content"/>
       <member-entity entity-alias="DR" entity-name="DataResource"/>
@@ -758,7 +758,7 @@
     </entity>
     <view-entity entity-name="SubContentDataResourceView"
                 package-name="org.ofbiz.content.content"
-                title="Content and DataResource for SubContent">
+                title="Content and DataResource for SubContent View Entity">
       <member-entity entity-alias="CO" entity-name="Content"/>
       <member-entity entity-alias="DR" entity-name="DataResource"/>
       <alias-all entity-alias="CO" />

Modified: 
ofbiz/trunk/applications/content/src/org/ofbiz/content/ContentManagementServices.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/src/org/ofbiz/content/ContentManagementServices.java?rev=569568&r1=569567&r2=569568&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/content/src/org/ofbiz/content/ContentManagementServices.java
 (original)
+++ 
ofbiz/trunk/applications/content/src/org/ofbiz/content/ContentManagementServices.java
 Fri Aug 24 16:16:18 2007
@@ -148,13 +148,13 @@
 
     /**
      * persistContentAndAssoc
-     * A combination method that will create or update all or one of the 
following
-     * a Content entity, a ContentAssoc related to the Content and 
+     * A combination method that will create or update all or one of the 
following:
+     * a Content entity, a ContentAssoc related to the Content, and 
      * the ElectronicText that may be associated with the Content.
      * The keys for determining if each entity is created is the presence
      * of the contentTypeId, contentAssocTypeId and dataResourceTypeId.
-     * This service tries to handle DataResource and ContentAssoc fields with 
and
-     * without "dr" and "ca" prefixes.
+     * This service tries to handle DataResource fields with and
+     * without "dr" prefixes.
      * Assumes binary data is always in field, "imageData".
      * 
      * This service does not accept straight ContentAssoc parameters. They 
must be prefaced with "ca" + cap first letter
@@ -213,7 +213,13 @@
         if (Debug.infoOn()) Debug.logInfo("in persist... dataResourceId(0):" + 
dataResourceId, null);
 
         GenericValue contentAssoc = delegator.makeValue("ContentAssoc", null);
+        String contentAssocTypeId = (String)context.get("contentAssocTypeId");
+        if (UtilValidate.isNotEmpty(contentAssocTypeId)) {
+            context.put("caContentAssocTypeId", contentAssocTypeId);
+        }
+        contentAssocTypeId = (String)context.get("caContentAssocTypeId");
         contentAssoc.setAllFields(context, false, "ca", null);
+        contentAssoc.put("contentId", context.get("caContentId"));
         context.putAll(contentAssoc);
 
         GenericValue electronicText = delegator.makeValue("ElectronicText", 
null);
@@ -296,7 +302,7 @@
                 //targetOperations.add("CONTENT_UPDATE");
                 Map contentContext = new HashMap();
                 ModelService contentModel = 
dispatcher.getDispatchContext().getModelService("updateContent");
-                contentContext.putAll(contentModel.makeValid(context, "IN"));
+                contentContext.putAll(contentModel.makeValid(content, "IN"));
                 contentContext.put("userLogin", userLogin);
                 contentContext.put("displayFailCond", bDisplayFailCond);
                 contentContext.put("skipPermissionCheck", 
context.get("skipPermissionCheck"));
@@ -309,7 +315,7 @@
                 //targetOperations.add("CONTENT_CREATE");
                 Map contentContext = new HashMap();
                 ModelService contentModel = 
dispatcher.getDispatchContext().getModelService("createContent");
-                contentContext.putAll(contentModel.makeValid(context, "IN"));
+                contentContext.putAll(contentModel.makeValid(content, "IN"));
                 contentContext.put("userLogin", userLogin);
                 contentContext.put("displayFailCond", bDisplayFailCond);
                 contentContext.put("skipPermissionCheck", 
context.get("skipPermissionCheck"));
@@ -362,14 +368,14 @@
         }
 
         // If parentContentIdTo or parentContentIdFrom exists, create 
association with newly created content
-        String contentAssocTypeId = (String)context.get("contentAssocTypeId");
-        if (UtilValidate.isEmpty(contentAssocTypeId)) 
-            contentAssocTypeId = (String)context.get("caContentAssocTypeId");
-
-        if (Debug.infoOn()) Debug.logInfo("CREATING contentASSOC 
contentAssocTypeId:" +  contentAssocTypeId, null);
+        if (Debug.infoOn()) {
+            Debug.logInfo("CREATING contentASSOC contentAssocTypeId:" + 
contentAssocTypeId, null);
+        }
         // create content assoc if the key values are present....
-        if (contentAssocTypeId != null && contentAssocTypeId.length() > 0 && 
contentAssoc.get("contentId") != null && contentAssoc.get("contentIdTo") != 
null ) {
-            if (Debug.infoOn()) Debug.logInfo("in persistContentAndAssoc, 
deactivateExisting:" +  deactivateExisting, null);
+        Debug.logInfo("contentAssoc: " + contentAssoc.toString(), null);
+        if (UtilValidate.isNotEmpty(contentAssocTypeId) && 
contentAssoc.get("contentId") != null && contentAssoc.get("contentIdTo") != 
null) {
+            if (Debug.infoOn())
+                Debug.logInfo("in persistContentAndAssoc, deactivateExisting:" 
+ deactivateExisting, null);
             Map contentAssocContext = new HashMap();
             contentAssocContext.put("userLogin", userLogin);
             contentAssocContext.put("displayFailCond", bDisplayFailCond);
@@ -386,13 +392,18 @@
                     if (ServiceUtil.isError(thisResult) || 
ServiceUtil.isFailure(thisResult) || UtilValidate.isNotEmpty(errMsg)) {
                         return ServiceUtil.returnError(errMsg);
                     }
-//                    results.put("contentIdTo", 
thisResult.get("contentIdTo"));
-//                    results.put("contentIdFrom", 
thisResult.get("contentIdFrom"));
-//                    //results.put("contentId", 
thisResult.get("contentIdFrom"));
-//                    results.put("contentAssocTypeId", 
thisResult.get("contentAssocTypeId"));
-//                    results.put("fromDate", thisResult.get("fromDate"));
-//                    results.put("sequenceNum", 
thisResult.get("sequenceNum"));
-                    
+                    // results.put("contentIdTo",
+                    // thisResult.get("contentIdTo"));
+                    // results.put("contentIdFrom",
+                    // thisResult.get("contentIdFrom"));
+                    // results.put("contentId",
+                    // thisResult.get("contentIdFrom"));
+                    // results.put("contentAssocTypeId",
+                    // thisResult.get("contentAssocTypeId"));
+                    // results.put("fromDate", thisResult.get("fromDate"));
+                    // results.put("sequenceNum",
+                    // thisResult.get("sequenceNum"));
+
                     results.put("caContentIdTo", 
thisResult.get("contentIdTo"));
                     results.put("caContentId", 
thisResult.get("contentIdFrom"));
                     results.put("caContentAssocTypeId", 
thisResult.get("contentAssocTypeId"));
@@ -400,7 +411,7 @@
                     results.put("caSequenceNum", 
thisResult.get("sequenceNum"));
                 } else {
                     if (deactivateExisting) {
-                        
contentAssoc.put("thruDate",UtilDateTime.nowTimestamp());
+                        contentAssoc.put("thruDate", 
UtilDateTime.nowTimestamp());
                     }
                     ModelService contentAssocModel = 
dispatcher.getDispatchContext().getModelService("updateContentAssoc");
                     Map ctx = contentAssocModel.makeValid(contentAssoc, "IN");
@@ -417,16 +428,16 @@
                 throw new GenericServiceException(e2.getMessage());
             }
             String errMsg = ServiceUtil.getErrorMessage(thisResult);
-           if (UtilValidate.isNotEmpty(errMsg)) {
-               return ServiceUtil.returnError(errMsg);
-           }
-       }
-       context.remove("skipPermissionCheck");
-       context.put("contentId", origContentId);
-       context.put("dataResourceId", origDataResourceId);
-       context.remove("dataResource");
-       Debug.logInfo("results:" + results, module);
-       return results;
+            if (UtilValidate.isNotEmpty(errMsg)) {
+                return ServiceUtil.returnError(errMsg);
+            }
+        }
+        context.remove("skipPermissionCheck");
+        context.put("contentId", origContentId);
+        context.put("dataResourceId", origDataResourceId);
+        context.remove("dataResource");
+        Debug.logInfo("results:" + results, module);
+        return results;
     }
 
     /**

Modified: ofbiz/trunk/applications/content/widget/forum/ForumForms.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/widget/forum/ForumForms.xml?rev=569568&r1=569567&r2=569568&view=diff
==============================================================================
--- ofbiz/trunk/applications/content/widget/forum/ForumForms.xml (original)
+++ ofbiz/trunk/applications/content/widget/forum/ForumForms.xml Fri Aug 24 
16:16:18 2007
@@ -166,7 +166,7 @@
         <field name="forumMessageTitle" parameter-name="description"><text 
default-value="${forumMessage.description}"/></field>
         <field name="contentTypeId"><hidden value="DOCUMENT"/></field>
         <field name="ownerContentId"><hidden 
value="${parameters.forumId}"/></field>
-        <field name="caContentIdTo"><hidden 
value="${parameters.forumMessageIdTo}"/></field>
+        <field name="caContentId"><hidden 
value="${parameters.forumMessageIdTo}"/></field>
         <field name="caContentAssocTypeId"><hidden value="RESPONSE"/></field>
         <field name="forumMessageText" parameter-name="textData"><textarea 
rows="10" visual-editor-enable="true" visual-editor-buttons="undo redo bold 
italic underline bullet indent outdent link"/></field>
         <field name="addButton" title="${uiLabelMap.CommonAdd}" 
widget-style="smallSubmit"><submit button-type="button"/></field>
@@ -176,7 +176,7 @@
     <form name="EditForumThreadMessage" type="single" 
target="updateForumThreadMessage">
         <field name="forumGroupId"><hidden 
value="${parameters.forumGroupId}"/></field>
         <field name="forumId"><hidden value="${parameters.forumId}"/></field>
-        <field name="rsp.contentId" parameter-name="contenId"><hidden/></field>
+        <field name="rsp.contentId" 
parameter-name="contentId"><hidden/></field>
         <field name="rsp.contentName" 
parameter-name="contentName"><hidden/></field>
         <field name="rsp.description" 
parameter-name="description"><text/></field>
         <field name="rsp.contentTypeId" 
parameter-name="contentTypeId"><hidden/></field>

Modified: ofbiz/trunk/applications/content/widget/forum/ForumScreens.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/widget/forum/ForumScreens.xml?rev=569568&r1=569567&r2=569568&view=diff
==============================================================================
--- ofbiz/trunk/applications/content/widget/forum/ForumScreens.xml (original)
+++ ofbiz/trunk/applications/content/widget/forum/ForumScreens.xml Fri Aug 24 
16:16:18 2007
@@ -64,7 +64,7 @@
                 </entity-one>
                 <set field="objectName" from-field="forumGroup.contentName"/>
                 <set field="objectId"  from-field="forumGroup.contentId"/>
-                <entity-and entity-name="ContentAssocDataResourceViewFrom" 
list-name="forums">
+                <entity-and entity-name="ContentAssocDataResourceViewTo" 
list-name="forums">
                     <field-map field-name="contentIdStart" 
env-name="forumGroupId"/>
                 </entity-and>
             </actions>

Modified: ofbiz/trunk/applications/content/widget/forum/ForumTrees.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/content/widget/forum/ForumTrees.xml?rev=569568&r1=569567&r2=569568&view=diff
==============================================================================
--- ofbiz/trunk/applications/content/widget/forum/ForumTrees.xml (original)
+++ ofbiz/trunk/applications/content/widget/forum/ForumTrees.xml Fri Aug 24 
16:16:18 2007
@@ -29,9 +29,9 @@
             </entity-one>
             <!--include-screen name="responseTreeLine" 
location="component://content/widget/forum/ForumScreens.xml" /-->
             <sub-node node-name="node-body">
-                <entity-condition entity-name="ContentAssocViewFrom" 
use-cache="false" >
+                <entity-condition entity-name="ContentAssocViewTo" 
use-cache="false" >
                     <condition-list combine="and">
-                        <condition-expr field-name="caContentIdTo" 
operator="equals" env-name="rsp.contentId" />
+                        <condition-expr field-name="contentIdStart" 
operator="equals" env-name="rsp.contentId" />
                         <condition-list combine="or">
                             <condition-expr field-name="caContentAssocTypeId" 
operator="equals" value="RESPONSE" />
                             <condition-expr field-name="caContentAssocTypeId" 
operator="equals" value="PUBLISH_LINK" />
@@ -45,9 +45,9 @@
         <node name="node-body" entry-name="rsp">
             <include-screen name="responseTreeLine"  
location="${parameters.mainDecoratorLocation}" />
             <sub-node node-name="node-body">
-                <entity-condition entity-name="ContentAssocViewFrom" 
use-cache="true" >
+                <entity-condition entity-name="ContentAssocViewTo" 
use-cache="true" >
                     <condition-list combine="and">
-                        <condition-expr field-name="caContentIdTo" 
operator="equals" env-name="rsp.contentId" />
+                        <condition-expr field-name="contentIdStart" 
operator="equals" env-name="rsp.contentId" />
                         <condition-expr field-name="caContentAssocTypeId" 
operator="equals" value="RESPONSE" />
                         <condition-expr field-name="caThruDate" 
operator="equals" value=""/>
                     </condition-list> 


Reply via email to