You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ha...@apache.org on 2011/02/04 11:43:46 UTC
svn commit: r1067141 - in /ofbiz/trunk: applications/party/data/
applications/product/data/ applications/product/data/helpdata/
applications/product/entitydef/
applications/product/script/org/ofbiz/product/imagemanagement/
applications/product/serviced...
Author: hansbak
Date: Fri Feb 4 10:43:45 2011
New Revision: 1067141
URL: http://svn.apache.org/viewvc?rev=1067141&view=rev
Log:
Correction on rev 1067073. removing of unrequired fields, change the order of the seed/demo data, so hopefully buidbot is ok again
Modified:
ofbiz/trunk/applications/party/data/PartyDemoData.xml
ofbiz/trunk/applications/product/data/ProductSecurityData.xml
ofbiz/trunk/applications/product/data/ProductTypeData.xml
ofbiz/trunk/applications/product/data/helpdata/HELP_IMAGEMANAGEMENT.xml
ofbiz/trunk/applications/product/entitydef/entitymodel.xml
ofbiz/trunk/applications/product/entitydef/entitymodel_view.xml
ofbiz/trunk/applications/product/script/org/ofbiz/product/imagemanagement/ImageManagementEvents.xml
ofbiz/trunk/applications/product/script/org/ofbiz/product/imagemanagement/ImageManagementServices.xml
ofbiz/trunk/applications/product/servicedef/secas.xml
ofbiz/trunk/applications/product/servicedef/services.xml
ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/CropImage.java
ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/FrameImage.java
ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/ImageManagementServices.java
ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/RotateImage.java
ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/WatermarkImage.java
ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml
ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/ImageGallery.ftl
ofbiz/trunk/applications/product/widget/catalog/ImageManagementForms.xml
ofbiz/trunk/applications/product/widget/catalog/ImageManagementScreens.xml
ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl
Modified: ofbiz/trunk/applications/party/data/PartyDemoData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/data/PartyDemoData.xml?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/party/data/PartyDemoData.xml (original)
+++ ofbiz/trunk/applications/party/data/PartyDemoData.xml Fri Feb 4 10:43:45 2011
@@ -24,6 +24,7 @@
<Party partyId="Company"/>
<Party partyId="DemoEmployee"/>
<PartyRole partyId="admin" roleTypeId="EMAIL_ADMIN"/>
+ <PartyRole partyId="admin" roleTypeId="IMAGEAPPROVER"/>
<PartyRole partyId="Company" roleTypeId="_NA_"/>
<PartyRelationship partyIdFrom="admin" roleTypeIdFrom="EMAIL_ADMIN" partyIdTo="Company" roleTypeIdTo="_NA_" fromDate="2000-01-01 00:00:00"/>
<PartyRole partyId="DemoEmployee" roleTypeId="EMAIL_ADMIN"/>
Modified: ofbiz/trunk/applications/product/data/ProductSecurityData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/data/ProductSecurityData.xml?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/data/ProductSecurityData.xml (original)
+++ ofbiz/trunk/applications/product/data/ProductSecurityData.xml Fri Feb 4 10:43:45 2011
@@ -109,5 +109,4 @@ under the License.
<SecurityPermission description="Upload photos in the Image Management." permissionId="IMAGE_MANAGEMENT_UPLOAD"/>
<SecurityGroupPermission groupId="IMAGEUPLOAD" permissionId="IMAGE_MANAGEMENT_UPLOAD"/>
- <PartyRole partyId="admin" roleTypeId="IMAGEAPPROVER"/>
</entity-engine-xml>
Modified: ofbiz/trunk/applications/product/data/ProductTypeData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/data/ProductTypeData.xml?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/data/ProductTypeData.xml (original)
+++ ofbiz/trunk/applications/product/data/ProductTypeData.xml Fri Feb 4 10:43:45 2011
@@ -593,9 +593,8 @@ under the License.
<!-- Image Management -->
<RoleType roleTypeId="IMAGEAPPROVER" hasTable="N" description="Image Approver"/>
- <PartyContentType partyContentTypeId="IMAGEAPPROVER" description="Image Approver"/>
-
<ProductContentType description="Image" hasTable="N" parentTypeId="" productContentTypeId="IMAGE"/>
+ <ProductContentType description="Image Thumbnail" hasTable="N" parentTypeId="" productContentTypeId="DEFAULT_IMAGE"/>
<ProductContentType description="Frame" hasTable="N" parentTypeId="" productContentTypeId="FRAME"/>
<ContentType contentTypeId="IMAGE_FRAME" description="Frame Image"/>
Modified: ofbiz/trunk/applications/product/data/helpdata/HELP_IMAGEMANAGEMENT.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/data/helpdata/HELP_IMAGEMANAGEMENT.xml?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/data/helpdata/HELP_IMAGEMANAGEMENT.xml (original)
+++ ofbiz/trunk/applications/product/data/helpdata/HELP_IMAGEMANAGEMENT.xml Fri Feb 4 10:43:45 2011
@@ -123,14 +123,14 @@
<section>
<title>Manage</title>
<section>
- <para>You can edit image such as add frame, embedded watermark, crop image etc. You can also add caption, sort order, exclude image and choose thumbnail in this function.</para>
+ <para>You can edit image such as add frame, embedded watermark, crop image etc. You can also add caption, sort order, enable image and choose thumbnail in this function.</para>
<para>Note: You must have Image Management Admin permission for access this function.</para>
<orderedlist>
<listitem>
<para>Click 'Manage' Button, then you can choose action including 'Frame', 'Watermark', 'Crop' and 'Rotate' (see below for more details).</para>
<para>Enter your image caption.</para>
<para>Sort order of image by enter order number.</para>
- <para>Exclude image by tick excluded checkbox.</para>
+ <para>Enable image by tick enable checkbox.</para>
<para>Select image thumbnail of product.</para>
<para>Click 'Submit' button.</para>
</listitem>
Modified: ofbiz/trunk/applications/product/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/entitydef/entitymodel.xml?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/applications/product/entitydef/entitymodel.xml Fri Feb 4 10:43:45 2011
@@ -2928,6 +2928,7 @@ under the License.
<field name="useTime" type="numeric"></field>
<field name="useTimeUomId" type="id"></field>
<field name="useRoleTypeId" type="id"></field>
+ <field name="sequenceNum" type="numeric"></field>
<prim-key field="productId"/>
<prim-key field="contentId"/>
<prim-key field="productContentTypeId"/>
@@ -4814,15 +4815,4 @@ under the License.
<key-map field-name="productPromoContentTypeId" rel-field-name="productContentTypeId"/>
</relation>
</entity>
-
- <!-- Image Management -->
- <extend-entity entity-name="ProductContent">
- <field name="defaultSequenceNum" type="numeric"/>
- <field name="exclude" type="indicator"/>
- <field name="thumbnail" type="indicator"/>
- </extend-entity>
-
- <extend-entity entity-name="PartyContent">
- <field name="statusId" type="id"></field>
- </extend-entity>
</entitymodel>
Modified: ofbiz/trunk/applications/product/entitydef/entitymodel_view.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/entitydef/entitymodel_view.xml?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/entitydef/entitymodel_view.xml (original)
+++ ofbiz/trunk/applications/product/entitydef/entitymodel_view.xml Fri Feb 4 10:43:45 2011
@@ -20,22 +20,23 @@ under the License.
<entitymodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/entitymodel.xsd">
- <view-entity entity-name="PartyContentProductContentAndInfo"
+ <view-entity entity-name="ContentApprovalProductContentAndInfo"
package-name="org.ofbiz.content.content"
- title="PartyContent, ProductContent, Content and DataResource View Entity">
- <member-entity entity-alias="PAC" entity-name="PartyContent"/>
+ title="ContentApproval, ProductContent, Content and DataResource View Entity">
+ <member-entity entity-alias="CA" entity-name="ContentApproval"/>
<member-entity entity-alias="PRC" entity-name="ProductContent"/>
<member-entity entity-alias="CO" entity-name="Content"/>
<member-entity entity-alias="DR" entity-name="DataResource"/>
- <alias-all entity-alias="PAC"/>
+ <alias-all entity-alias="CA"/>
<alias-all entity-alias="PRC">
- <exclude field="contentId"/>
+ <exclude field="contentId"/>
+ <exclude field="sequenceNum"/>
</alias-all>
<alias-all entity-alias="CO">
- <exclude field="contentId"/>
+ <exclude field="contentId"/>
</alias-all>
<alias-all entity-alias="DR" prefix="dr"/>
- <view-link entity-alias="PAC" rel-entity-alias="PRC">
+ <view-link entity-alias="CA" rel-entity-alias="PRC">
<key-map field-name="contentId"/>
</view-link>
<view-link entity-alias="PRC" rel-entity-alias="CO">
Modified: ofbiz/trunk/applications/product/script/org/ofbiz/product/imagemanagement/ImageManagementEvents.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/script/org/ofbiz/product/imagemanagement/ImageManagementEvents.xml?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/script/org/ofbiz/product/imagemanagement/ImageManagementEvents.xml (original)
+++ ofbiz/trunk/applications/product/script/org/ofbiz/product/imagemanagement/ImageManagementEvents.xml Fri Feb 4 10:43:45 2011
@@ -21,28 +21,22 @@ under the License.
<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd">
- <simple-method method-name="setImageThumbnail" short-description="Set Image Thumbnail">
- <!-- change status lastest thumbnail to 'N' -->
- <entity-and list="lastestThumbnails" entity-name="ProductContent">
+ <simple-method method-name="setDefaultImage" short-description="Set Default Image">
+ <entity-and entity-name="ProductContent" list="lastestDefaults">
<field-map field-name="productId" from-field="parameters.productId"/>
- <field-map field-name="productContentTypeId" value="IMAGE"/>
- <field-map field-name="thumbnail" value="Y"/>
+ <field-map field-name="productContentTypeId" value="DEFAULT_IMAGE"/>
</entity-and>
- <first-from-list entry="lastestThumbnail" list="lastestThumbnails"/>
- <if-not-empty field="lastestThumbnail">
- <set field="lastestThumbnail.thumbnail" value="N"/>
- <store-value value-field="lastestThumbnail"/>
- </if-not-empty>
+ <iterate list="lastestDefaults" entry="lastestDefault">
+ <remove-value value-field="lastestDefault"/>
+ </iterate>
- <!-- set status thumbnail to 'Y' -->
- <entity-and list="productContents" entity-name="ProductContent">
- <field-map field-name="productId" from-field="parameters.productId"/>
- <field-map field-name="contentId" from-field="parameters.contentId"/>
- <field-map field-name="productContentTypeId" value="IMAGE"/>
- </entity-and>
- <first-from-list entry="productContent" list="productContents"/>
- <set field="productContent.thumbnail" value="Y"/>
- <store-value value-field="productContent"/>
+ <now-timestamp field="nowTimestamp"/>
+ <make-value entity-name="ProductContent" value-field="productContent"/>
+ <set field="productContent.productId" from-field="parameters.productId"/>
+ <set field="productContent.contentId" from-field="parameters.contentId"/>
+ <set field="productContent.productContentTypeId" value="DEFAULT_IMAGE"/>
+ <set field="productContent.fromDate" from-field="nowTimestamp"/>
+ <create-value value-field="productContent"/>
<!-- set thumbnail to product -->
<entity-and list="productContentAndInfos" entity-name="ProductContentAndInfo">
Modified: ofbiz/trunk/applications/product/script/org/ofbiz/product/imagemanagement/ImageManagementServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/script/org/ofbiz/product/imagemanagement/ImageManagementServices.xml?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/script/org/ofbiz/product/imagemanagement/ImageManagementServices.xml (original)
+++ ofbiz/trunk/applications/product/script/org/ofbiz/product/imagemanagement/ImageManagementServices.xml Fri Feb 4 10:43:45 2011
@@ -155,14 +155,14 @@ under the License.
</entity-and>
<remove-value value-field="contentRoles[0]"/>
- <entity-condition entity-name="PartyContent" list="partyContents">
+ <entity-condition entity-name="ContentApproval" list="contentApprovals">
<condition-list combine="and">
<condition-expr field-name="contentId" from-field="parameters.contentId"/>
- <condition-expr field-name="partyContentTypeId" value="IMAGEAPPROVER"/>
+ <condition-expr field-name="roleTypeId" value="IMAGEAPPROVER"/>
</condition-list>
</entity-condition>
- <iterate entry="partyContent" list="partyContents">
- <remove-value value-field="partyContent"/>
+ <iterate entry="contentApproval" list="contentApprovals">
+ <remove-value value-field="contentApproval"/>
</iterate>
<entity-one value-field="content" entity-name="Content">
@@ -195,22 +195,28 @@ under the License.
</simple-method>
<simple-method method-name="setImageDetail" short-description="Set Image Detail">
- <!-- set sort order (defaultSequenceNum) and exclude -->
<entity-one value-field="productContent" entity-name="ProductContent"/>
- <set field="productContent.defaultSequenceNum" from-field="parameters.defaultSequenceNum" type="Long"/>
+ <set field="productContent.sequenceNum" from-field="parameters.sequenceNum" type="Long"/>
<store-value value-field="productContent"/>
- <if-not-empty field="parameters.defaultSequenceNum">
+ <if-not-empty field="parameters.sequenceNum">
<script location="component://image_management/webapp/image_management/WEB-INF/actions/sortSequenceNum.groovy"/>
- <set field="productContent.defaultSequenceNum" from-field="parameters.defaultSequenceNum" type="Long"/>
+ <set field="productContent.sequenceNum" from-field="parameters.sequenceNum" type="Long"/>
<store-value value-field="productContent"/>
</if-not-empty>
- <set field="productContent.exclude" from-field="parameters.exclude" type="String"/>
- <store-value value-field="productContent"/>
<!-- set caption -->
<entity-one value-field="content" entity-name="Content"/>
<set field="content.description" from-field="parameters.description"/>
<store-value value-field="content"/>
+
+ <if-compare field="content.statusId" operator="equals" value="IM_APPROVED">
+ <entity-one value-field="dataResource" entity-name="DataResource">
+ <field-map field-name="dataResourceId" from-field="content.dataResourceId"/>
+ </entity-one>
+ <log level="always" message="===========parameters.drIsPublic========== : ${parameters.drIsPublic}"></log>
+ <set field="dataResource.isPublic" from-field="parameters.drIsPublic"/>
+ <store-value value-field="dataResource"/>
+ </if-compare>
</simple-method>
<simple-method method-name="updateStatusImageManagement" short-description="Update Status Image Management">
@@ -220,22 +226,22 @@ under the License.
statusId = StringUtil.split(checkStatusVal, "/");
if (statusId) return statusId[0];
}"/>
- <entity-and entity-name="PartyContent" list="partyContents">
+ <entity-and entity-name="ContentApproval" list="contentApprovals">
<field-map field-name="partyId" from-field="userLogin.partyId"/>
<field-map field-name="contentId" from-field="parameters.contentId"/>
- <field-map field-name="partyContentTypeId" value="IMAGEAPPROVER"/>
+ <field-map field-name="roleTypeId" value="IMAGEAPPROVER"/>
</entity-and>
- <first-from-list entry="partyContent" list="partyContents"/>
+ <first-from-list entry="contentApproval" list="contentApprovals"/>
<if-not-empty field="parameters.checkStatusId">
- <set field="partyContent.statusId" from-field="parameters.checkStatusId"/>
+ <set field="contentApproval.approvalStatusId" from-field="parameters.checkStatusId"/>
</if-not-empty>
- <store-value value-field="partyContent"/>
+ <store-value value-field="contentApproval"/>
<if-compare field="parameters.checkStatusId" operator="equals" value="IM_REJECTED">
- <entity-condition entity-name="PartyContent" list="checkRejects">
+ <entity-condition entity-name="ContentApproval" list="checkRejects">
<condition-list combine="and">
<condition-expr field-name="contentId" operator="equals" from-field="parameters.contentId"/>
- <condition-expr field-name="partyContentTypeId" operator="equals" value="IMAGEAPPROVER"/>
+ <condition-expr field-name="roleTypeId" operator="equals" value="IMAGEAPPROVER"/>
</condition-list>
</entity-condition>
<iterate entry="checkReject" list="checkRejects">
@@ -248,10 +254,10 @@ under the License.
<store-value value-field="content"/>
<else>
<if-compare field="parameters.checkStatusId" operator="equals" value="IM_APPROVED">
- <entity-count entity-name="PartyContent" count-field="countParty">
+ <entity-count entity-name="ContentApproval" count-field="countParty">
<condition-list combine="and">
<condition-expr field-name="contentId" operator="equals" from-field="parameters.contentId"/>
- <condition-expr field-name="partyContentTypeId" operator="equals" value="IMAGEAPPROVER"/>
+ <condition-expr field-name="roleTypeId" operator="equals" value="IMAGEAPPROVER"/>
</condition-list>
</entity-count>
<if-compare field="countParty" operator="equals" value="1">
@@ -265,15 +271,13 @@ under the License.
</entity-and>
<first-from-list entry="productContent" list="productContents"/>
<set field="productContent.purchaseFromDate" from-field="nowTimestamp"/>
- <set field="productContent.exclude" value="N"/>
- <set field="productContent.thumbnail" value="N"/>
<store-value value-field="productContent"/>
<else>
- <entity-count entity-name="PartyContent" count-field="countApprove">
+ <entity-count entity-name="ContentApproval" count-field="countApprove">
<condition-list combine="and">
<condition-expr field-name="contentId" operator="equals" from-field="parameters.contentId"/>
- <condition-expr field-name="partyContentTypeId" operator="equals" value="IMAGEAPPROVER"/>
- <condition-expr field-name="statusId" operator="equals" value="IM_APPROVED"/>
+ <condition-expr field-name="roleTypeId" operator="equals" value="IMAGEAPPROVER"/>
+ <condition-expr field-name="approvalStatusId" operator="equals" value="IM_APPROVED"/>
</condition-list>
</entity-count>
<if-compare field="countApprove" operator="greater-equals" value="2">
@@ -287,18 +291,16 @@ under the License.
</entity-and>
<first-from-list entry="productContent" list="productContents"/>
<set field="productContent.purchaseFromDate" from-field="nowTimestamp"/>
- <set field="productContent.exclude" value="N"/>
- <set field="productContent.thumbnail" value="N"/>
<store-value value-field="productContent"/>
- <entity-condition entity-name="PartyContent" list="checkApproveList">
+ <entity-condition entity-name="ContentApproval" list="checkApproveList">
<condition-list combine="and">
<condition-expr field-name="contentId" operator="equals" from-field="parameters.contentId"/>
- <condition-expr field-name="partyContentTypeId" operator="equals" value="IMAGEAPPROVER"/>
+ <condition-expr field-name="roleTypeId" operator="equals" value="IMAGEAPPROVER"/>
</condition-list>
</entity-condition>
<iterate entry="checkApprove" list="checkApproveList">
- <set field="checkApprove.statusId" value="IM_APPROVED"/>
+ <set field="checkApprove.approvalStatusId" value="IM_APPROVED"/>
<store-value value-field="checkApprove"/>
</iterate>
</if-compare>
@@ -337,28 +339,28 @@ under the License.
<store-value value-field="productContent"/>
</simple-method>
- <simple-method method-name="createImagePartyContent" short-description="Create Party Content of Image">
+ <simple-method method-name="createImageContentApproval" short-description="Create Content Approval of Image">
<now-timestamp field="nowTimestam"/>
<entity-and entity-name="PartyRole" list="partyRoles">
<field-map field-name="roleTypeId" value="IMAGEAPPROVER"/>
</entity-and>
<iterate list="partyRoles" entry="partyRole">
- <set field="partyContent.partyId" from-field="partyRole.partyId"/>
- <set field="partyContent.contentId" from-field="parameters.contentId"/>
- <set field="partyContent.partyContentTypeId" value="IMAGEAPPROVER"/>
- <set field="partyContent.fromDate" from-field="nowTimestam"/>
- <set field="partyContent.statusId" value="IM_PENDING"/>
- <call-service service-name="createPartyContent" in-map-name="partyContent"/>
+ <set field="contentApproval.partyId" from-field="partyRole.partyId"/>
+ <set field="contentApproval.contentId" from-field="parameters.contentId"/>
+ <set field="contentApproval.roleTypeId" value="IMAGEAPPROVER"/>
+ <set field="contentApproval.approvalDate" from-field="nowTimestam"/>
+ <set field="contentApproval.approvalStatusId" value="IM_PENDING"/>
+ <call-service service-name="createContentApproval" in-map-name="contentApproval"/>
</iterate>
</simple-method>
- <simple-method method-name="removeImagePartyContent" short-description="Remove Party Content of Image">
- <entity-and entity-name="PartyContent" list="partyContents">
+ <simple-method method-name="removeImageContentApproval" short-description="Remove Content Approval of Image">
+ <entity-and entity-name="ContentApproval" list="contentApprovals">
<field-map field-name="partyId" from-field="parameters.partyId"/>
- <field-map field-name="partyContentTypeId" value="IMAGEAPPROVER"/>
+ <field-map field-name="roleTypeId" value="IMAGEAPPROVER"/>
</entity-and>
- <iterate list="partyContents" entry="partyContent">
- <remove-value value-field="partyContent"/>
+ <iterate list="contentApprovals" entry="contentApproval">
+ <remove-value value-field="contentApproval"/>
</iterate>
</simple-method>
</simple-methods>
Modified: ofbiz/trunk/applications/product/servicedef/secas.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/servicedef/secas.xml?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/servicedef/secas.xml (original)
+++ ofbiz/trunk/applications/product/servicedef/secas.xml Fri Feb 4 10:43:45 2011
@@ -132,7 +132,7 @@ under the License.
<!-- Remove party content of image -->
<eca service="deletePartyRole" event="commit">
<condition field-name="roleTypeId" operator="equals" value="IMAGEAPPROVER"/>
- <action service="removeImagePartyContent" mode="sync"/>
+ <action service="removeImageContentApproval" mode="sync"/>
</eca>
</service-eca>
Modified: ofbiz/trunk/applications/product/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/servicedef/services.xml?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/servicedef/services.xml (original)
+++ ofbiz/trunk/applications/product/servicedef/services.xml Fri Feb 4 10:43:45 2011
@@ -1428,14 +1428,6 @@ under the License.
<attribute mode="IN" name="uploadedFile" optional="false" type="java.nio.ByteBuffer"/>
</service>
- <service name="addImageCaption" engine="simple"
- location="component://product/script/org/ofbiz/product/imagemanagement/ImageManagementServices.xml" invoke="addImageCaption" auth="true">
- <description>Replace Image To Exist Image.</description>
- <attribute mode="IN" name="productId" optional="false" type="String"/>
- <attribute mode="IN" name="contentId" optional="false" type="String"/>
- <attribute mode="IN" name="description" optional="true" type="String"/>
- </service>
-
<service name="imageCrop" engine="java"
location="org.ofbiz.product.imagemanagement.CropImage" invoke="imageCrop" auth="true">
<description>Crop Image</description>
@@ -1459,8 +1451,8 @@ under the License.
location="component://product/script/org/ofbiz/product/imagemanagement/ImageManagementServices.xml" invoke="setImageDetail" auth="true">
<auto-attributes include="pk" mode="IN" optional="false"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
- <attribute name="defaultSequenceNum" mode="IN" type="Integer" optional="true"/>
- <attribute name="exclude" mode="IN" type="String" optional="true" default-value="N"/>
+ <attribute name="sequenceNum" mode="IN" type="Integer" optional="true"/>
+ <attribute name="drIsPublic" mode="IN" type="String" optional="true" default-value="N"/>
<attribute name="description" mode="IN" type="String" optional="true"/>
</service>
@@ -1476,13 +1468,13 @@ under the License.
<attribute name="description" mode="IN" type="String" optional="true"/>
</service>
- <service name="createImagePartyContent" engine="simple"
- location="component://product/script/org/ofbiz/product/imagemanagement/ImageManagementServices.xml" invoke="createImagePartyContent" auth="true">
+ <service name="createImageContentApproval" engine="simple"
+ location="component://product/script/org/ofbiz/product/imagemanagement/ImageManagementServices.xml" invoke="createImageContentApproval" auth="true">
<attribute name="contentId" mode="IN" type="String" optional="false"/>
</service>
- <service name="removeImagePartyContent" engine="simple"
- location="component://product/script/org/ofbiz/product/imagemanagement/ImageManagementServices.xml" invoke="removeImagePartyContent" auth="true">
+ <service name="removeImageContentApproval" engine="simple"
+ location="component://product/script/org/ofbiz/product/imagemanagement/ImageManagementServices.xml" invoke="removeImageContentApproval" auth="true">
<attribute name="partyId" mode="IN" type="String" optional="false"/>
</service>
Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/CropImage.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/CropImage.java?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/CropImage.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/CropImage.java Fri Feb 4 10:43:45 2011
@@ -136,11 +136,11 @@ public class CropImage {
return ServiceUtil.returnError(e.getMessage());
}
- Map<String, Object> partyContentCtx = FastMap.newInstance();
- partyContentCtx.put("contentId", contentId);
- partyContentCtx.put("userLogin", userLogin);
+ Map<String, Object> contentApprovalCtx = FastMap.newInstance();
+ contentApprovalCtx.put("contentId", contentId);
+ contentApprovalCtx.put("userLogin", userLogin);
try {
- dispatcher.runSync("createImagePartyContent", partyContentCtx);
+ dispatcher.runSync("createImageContentApproval", contentApprovalCtx);
} catch (GenericServiceException e) {
Debug.logError(e, module);
return ServiceUtil.returnError(e.getMessage());
Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/FrameImage.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/FrameImage.java?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/FrameImage.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/FrameImage.java Fri Feb 4 10:43:45 2011
@@ -194,11 +194,11 @@ public class FrameImage {
result.putAll(context);
}
- Map<String, Object> partyContentCtx = FastMap.newInstance();
- partyContentCtx.put("contentId", contentId);
- partyContentCtx.put("userLogin", userLogin);
+ Map<String, Object> contentApprovalCtx = FastMap.newInstance();
+ contentApprovalCtx.put("contentId", contentId);
+ contentApprovalCtx.put("userLogin", userLogin);
try {
- dispatcher.runSync("createImagePartyContent", partyContentCtx);
+ dispatcher.runSync("createImageContentApproval", contentApprovalCtx);
} catch (GenericServiceException e) {
Debug.logError(e, module);
result = ServiceUtil.returnError(e.getMessage());
Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/ImageManagementServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/ImageManagementServices.java?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/ImageManagementServices.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/ImageManagementServices.java Fri Feb 4 10:43:45 2011
@@ -291,11 +291,11 @@ public class ImageManagementServices {
return ServiceUtil.returnError(e.getMessage());
}
- Map<String, Object> partyContentCtx = FastMap.newInstance();
- partyContentCtx.put("contentId", contentId);
- partyContentCtx.put("userLogin", userLogin);
+ Map<String, Object> contentApprovalCtx = FastMap.newInstance();
+ contentApprovalCtx.put("contentId", contentId);
+ contentApprovalCtx.put("userLogin", userLogin);
try {
- dispatcher.runSync("createImagePartyContent", partyContentCtx);
+ dispatcher.runSync("createImageContentApproval", contentApprovalCtx);
} catch (GenericServiceException e) {
Debug.logError(e, module);
return ServiceUtil.returnError(e.getMessage());
Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/RotateImage.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/RotateImage.java?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/RotateImage.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/RotateImage.java Fri Feb 4 10:43:45 2011
@@ -144,11 +144,11 @@ public class RotateImage {
return ServiceUtil.returnError(e.getMessage());
}
- Map<String, Object> partyContentCtx = FastMap.newInstance();
- partyContentCtx.put("contentId", contentId);
- partyContentCtx.put("userLogin", userLogin);
+ Map<String, Object> contentApprovalCtx = FastMap.newInstance();
+ contentApprovalCtx.put("contentId", contentId);
+ contentApprovalCtx.put("userLogin", userLogin);
try {
- dispatcher.runSync("createImagePartyContent", partyContentCtx);
+ dispatcher.runSync("createImageContentApproval", contentApprovalCtx);
} catch (GenericServiceException e) {
Debug.logError(e, module);
return ServiceUtil.returnError(e.getMessage());
Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/WatermarkImage.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/WatermarkImage.java?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/WatermarkImage.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/WatermarkImage.java Fri Feb 4 10:43:45 2011
@@ -220,11 +220,11 @@ public class WatermarkImage{
request.setAttribute("_ERROR_MESSAGE_", e.getMessage());return "error";
}
- Map<String, Object> partyContentCtx = FastMap.newInstance();
- partyContentCtx.put("contentId", contentId);
- partyContentCtx.put("userLogin", userLogin);
+ Map<String, Object> contentApprovalCtx = FastMap.newInstance();
+ contentApprovalCtx.put("contentId", contentId);
+ contentApprovalCtx.put("userLogin", userLogin);
try {
- dispatcher.runSync("createImagePartyContent", partyContentCtx);
+ dispatcher.runSync("createImageContentApproval", contentApprovalCtx);
} catch (GenericServiceException e) {
Debug.logError(e, module);
request.setAttribute("_ERROR_MESSAGE_", e.getMessage());return "error";
Modified: ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml Fri Feb 4 10:43:45 2011
@@ -2735,9 +2735,9 @@ under the License.
<response name="success" type="view" value="ListImageManage"/>
<response name="error" type="view" value="ListImageManage"/>
</request-map>
- <request-map uri="setImageThumbnail">
+ <request-map uri="setDefaultImage">
<security https="true" auth="true"/>
- <event type="simple" path="component://product/script/org/ofbiz/product/imagemanagement/ImageManagementEvents.xml" invoke="setImageThumbnail"/>
+ <event type="simple" path="component://product/script/org/ofbiz/product/imagemanagement/ImageManagementEvents.xml" invoke="setDefaultImage"/>
<response name="success" type="view" value="ListImageManage"/>
<response name="error" type="view" value="ListImageManage"/>
</request-map>
@@ -2843,12 +2843,6 @@ under the License.
<response name="success" type="view" value="ListImageReplace"/>
<response name="error" type="view" value="ListImageReplace"/>
</request-map>
- <request-map uri="addImageCaption">
- <security https="true" auth="true"/>
- <event type="service" invoke="addImageCaption"/>
- <response name="success" type="view" value="ListImageCaption"/>
- <response name="error" type="view" value="ListImageCaption"/>
- </request-map>
<request-map uri="CropImage">
<security https="true" auth="true"/>
<event type="service" invoke="imageCrop"/>
Modified: ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/ImageGallery.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/ImageGallery.ftl?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/ImageGallery.ftl (original)
+++ ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/ImageGallery.ftl Fri Feb 4 10:43:45 2011
@@ -39,7 +39,7 @@ under the License.
<tbody>
<tr valign="middle">
<#-- <td align="center"><a href="/catalog/images/${seoUrl}-${product.productId}/${seoUrl}-${contentName}" target="_blank"><img src="<@o...@ofbizContentUrl>" vspace="5" hspace="5" alt=""/></a></td> -->
- <td align="center"><a href="<@o...@ofbizContentUrl>" target="_blank"><img src="<@o...@ofbizContentUrl>" vspace="5" hspace="5" alt=""/></a></td>
+ <td align="center"><a href="<@o...@ofbizContentUrl>" target="_blank"><img src="<@o...@ofbizContentUrl>" vspace="5" hspace="5" alt=""/></a></td>
</tr>
<tr valign="middle">
<#-- <td align="center"><a href="javascript:lookup_popup2('ImageShare?contentId=${productContentAndInfo.contentId}&dataResourceId=${productContentAndInfo.dataResourceId}&seoUrl=/catalog/images/${seoUrl}-${product.productId}/${seoUrl}-${contentName}','' ,500,500);" class="buttontext">Share</a></td> -->
Modified: ofbiz/trunk/applications/product/widget/catalog/ImageManagementForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/widget/catalog/ImageManagementForms.xml?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/widget/catalog/ImageManagementForms.xml (original)
+++ ofbiz/trunk/applications/product/widget/catalog/ImageManagementForms.xml Fri Feb 4 10:43:45 2011
@@ -68,7 +68,7 @@ under the License.
<field name="submitButton" title="${uiLabelMap.CommonSubmit}" widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
- <form name="ImageApprove" type="multi" title="" list-name="partyContentProductContentAndInfos" odd-row-style="alternate-row" default-table-style="basic-table"
+ <form name="ImageApprove" type="multi" title="" list-name="contentApprovalProductContentAndInfos" odd-row-style="alternate-row" default-table-style="basic-table"
use-row-submit="true" separate-columns="true" target="updateStatusImageManagement">
<row-actions>
<entity-and entity-name="ContentDataResourceView" list="contentDataResourceViews">
@@ -124,7 +124,7 @@ under the License.
<field name="submitButton" title="${uiLabelMap.CommonSubmit}" widget-style="smallSubmit"><submit button-type="button"/></field>
</form>
- <form name="ListPeopleApproved" type="list" title="" list-name="partyContentProductContentAndInfos" odd-row-style="alternate-row" default-table-style="basic-table"
+ <form name="ListPeopleApproved" type="list" title="" list-name="contentApprovalProductContentAndInfos" odd-row-style="alternate-row" default-table-style="basic-table"
use-row-submit="true" separate-columns="true" target="">
<row-actions>
<entity-one entity-name="ContentDataResourceView" value-field="contentDataResourceView">
@@ -280,7 +280,7 @@ under the License.
<condition-expr field-name="statusId" value="IM_PENDING"/>
</condition-list>
</condition-list>
- <order-by field-name="defaultSequenceNum"/>
+ <order-by field-name="sequenceNum"/>
<order-by field-name="statusId"/>
</entity-condition>
</actions>
@@ -317,10 +317,10 @@ under the License.
</drop-down>
</field>
<field name="description" use-when="${groovy: return context.statusId == 'IM_APPROVED'; }" title="Caption"><text/></field>
- <field name="defaultSequenceNum" use-when="${groovy: return context.statusId == 'IM_APPROVED'; }" title="Sort Order"><text maxlength="2" size="5"/></field>
- <field name="exclude" use-when="${groovy: return context.statusId == 'IM_APPROVED'; }" title="Exclude"><check/></field>
- <field name="thumbnail">
- <hyperlink target="setImageThumbnail" description=" ${thumbnail}">
+ <field name="sequenceNum" use-when="${groovy: return context.statusId == 'IM_APPROVED'; }" title="Sort Order"><text maxlength="2" size="5"/></field>
+ <field name="drIsPublic" use-when="${groovy: return context.statusId == 'IM_APPROVED'; }" title="Enable"><check/></field>
+ <field name="thumbnail" use-when="${groovy: return context.statusId == 'IM_APPROVED'; }" title="Default Image" widget-style="buttontext">
+ <hyperlink target="setDefaultImage" description="Set Default">
<parameter param-name="productId"/>
<parameter param-name="contentId"/>
<parameter param-name="contentIdTo"/>
@@ -338,14 +338,36 @@ under the License.
<sort-field name="drObjectInfo"/>
<sort-field name="action"/>
<sort-field name="description"/>
- <sort-field name="defaultSequenceNum"/>
- <sort-field name="exclude"/>
+ <sort-field name="sequenceNum"/>
+ <sort-field name="drIsPublic"/>
<sort-field name="thumbnail"/>
<sort-field name="drDataResourceName"/>
<sort-field name="statusId"/>
</sort-order>
</form>
+ <form name="showDefaultImage" type="single" title="" header-row-style="header-row" default-table-style="basic-table">
+ <actions>
+ <entity-and entity-name="ProductContentAndInfo" list="productContentAndInfos">
+ <field-map field-name="productId" from-field="parameters.productId"/>
+ <field-map field-name="productContentTypeId" value="DEFAULT_IMAGE"/>
+ </entity-and>
+ <entity-and entity-name="ContentAssoc" list="contentAssocs">
+ <field-map field-name="contentId" from-field="productContentAndInfos[0].contentId"/>
+ <field-map field-name="contentAssocTypeId" value="IMAGE_THUMBNAIL"/>
+ </entity-and>
+ <set field="contentIdTo" from-field="contentAssocs[0].contentIdTo"/>
+ <entity-and entity-name="ContentDataResourceView" list="contentDataResourceViews">
+ <field-map field-name="contentId" from-field="contentIdTo"/>
+ </entity-and>
+ <set field="drObjectInfo" from-field="contentDataResourceViews[0].drObjectInfo"/>
+ <entity-and entity-name="ContentDataResourceView" list="origContentDataResourceViews">
+ <field-map field-name="contentId"/>
+ </entity-and>
+ </actions>
+ <field name="drObjectInfo" title=" "><image/></field>
+ </form>
+
<form name="ImageFrames" type="single" title="" target="uploadFrame" header-row-style="header-row" default-table-style="basic-table" target-window="_self">
<actions>
<script location="component://product/webapp/catalog/WEB-INF/actions/imagemanagement/ImageFrame.groovy"/>
@@ -823,13 +845,7 @@ under the License.
</entity-and>
</row-actions>
<field name="drObjectInfo" title="Image"><image/></field>
- <field name="drDataResourceName" title="Image Name">
- <hyperlink target="${currentFormName}" description="${drDataResourceName}">
- <parameter param-name="productId"/>
- <parameter param-name="contentId"/>
- <parameter param-name="dataResourceId"/>
- </hyperlink>
- </field>
+ <field name="drDataResourceName" title="Image Name"><display/></field>
<field name="contentId"><display/></field>
<field name="dataResourceId"><display/></field>
<field name="fromDate"><display/></field>
Modified: ofbiz/trunk/applications/product/widget/catalog/ImageManagementScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/widget/catalog/ImageManagementScreens.xml?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/widget/catalog/ImageManagementScreens.xml (original)
+++ ofbiz/trunk/applications/product/widget/catalog/ImageManagementScreens.xml Fri Feb 4 10:43:45 2011
@@ -90,9 +90,11 @@ under the License.
<entity-condition entity-name="ProductContentAndInfo" list="productContentAndInfos">
<condition-list combine="and">
<condition-expr field-name="productId" from-field="parameters.productId"/>
+ <condition-expr field-name="productContentTypeId" value="IMAGE"/>
<condition-expr field-name="statusId" value="IM_APPROVED"/>
+ <condition-expr field-name="drIsPublic" value="Y"/>
</condition-list>
- <order-by field-name="defaultSequenceNum"/>
+ <order-by field-name="sequenceNum"/>
</entity-condition>
<entity-and list="productContents" entity-name="ProductContent">
@@ -203,11 +205,11 @@ under the License.
<entity-condition entity-name="PartyRole" list="partyRoles">
<condition-expr field-name="roleTypeId" value="IMAGEAPPROVER"/>
</entity-condition>
- <entity-condition entity-name="PartyContentProductContentAndInfo" list="partyContentProductContentAndInfos">
+ <entity-condition entity-name="ContentApprovalProductContentAndInfo" list="contentApprovalProductContentAndInfos">
<condition-list combine="and">
<condition-expr field-name="partyId" from-field="userLogin.partyId"/>
- <condition-expr field-name="partyContentTypeId" value="IMAGEAPPROVER"/>
- <condition-expr field-name="statusId" value="IM_PENDING"/>
+ <condition-expr field-name="roleTypeId" value="IMAGEAPPROVER"/>
+ <condition-expr field-name="approvalStatusId" value="IM_PENDING"/>
</condition-list>
<order-by field-name="productId"/>
</entity-condition>
@@ -254,11 +256,11 @@ under the License.
<entity-one entity-name="UserLogin" value-field="userLoginInfo">
<field-map field-name="userLoginId" from-field="parameters.createdByUserLogin"/>
</entity-one>
- <entity-condition entity-name="PartyContentProductContentAndInfo" list="partyContentProductContentAndInfos">
+ <entity-condition entity-name="ContentApprovalProductContentAndInfo" list="contentApprovalProductContentAndInfos">
<condition-list combine="and">
<condition-expr field-name="partyId" from-field="userLoginInfo.partyId"/>
- <condition-expr field-name="partyContentTypeId" value="IMAGEAPPROVER"/>
- <condition-expr field-name="statusId" value="IM_PENDING"/>
+ <condition-expr field-name="roleTypeId" value="IMAGEAPPROVER"/>
+ <condition-expr field-name="approvalStatusId" value="IM_PENDING"/>
</condition-list>
<order-by field-name="productId"/>
</entity-condition>
@@ -442,6 +444,9 @@ under the License.
<screenlet title="${uiLabelMap.Manage}">
<include-form name="ListImageManage" location="component://product/widget/catalog/ImageManagementForms.xml"/>
</screenlet>
+ <screenlet title="Default Image">
+ <include-form name="showDefaultImage" location="component://product/widget/catalog/ImageManagementForms.xml"/>
+ </screenlet>
</widgets>
<fail-widgets>
<label text="${uiLabelMap.ProductNoExistingProductsFound}"/>
@@ -1041,7 +1046,7 @@ under the License.
</condition>
<widgets>
<screenlet title="${uiLabelMap.CommonRemove}">
- <include-form name="ImageManage" location="component://product/widget/catalog/ImageManagementForms.xml"/>
+ <include-form name="ImageRemove" location="component://product/widget/catalog/ImageManagementForms.xml"/>
</screenlet>
</widgets>
<fail-widgets>
Modified: ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl?rev=1067141&r1=1067140&r2=1067141&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl (original)
+++ ofbiz/trunk/specialpurpose/ecommerce/webapp/ecommerce/catalog/productdetail.ftl Fri Feb 4 10:43:45 2011
@@ -361,7 +361,7 @@ ${virtualVariantJavaScript?if_exists}
</#if>
</div>
<#-- Show Image Approved -->
- <#assign productContentAndInfos = delegator.findByAnd("ProductContentAndInfo", {"productId", product.productId?if_exists, "productContentTypeId", "IMAGE", "statusId", "IM_APPROVED", "exclude", "N"}, Static["org.ofbiz.base.util.UtilMisc"].toList("defaultSequenceNum"))>
+ <#assign productContentAndInfos = delegator.findByAnd("ProductContentAndInfo", {"productId", product.productId?if_exists, "productContentTypeId", "IMAGE", "statusId", "IM_APPROVED", "drIsPublic", "Y"}, Static["org.ofbiz.base.util.UtilMisc"].toList("sequenceNum"))>
<div id="additionalImageBox">
<#if productContentAndInfos?has_content>
<#list productContentAndInfos as productContentAndInfo>