svn commit: r1052521 [1/8] - in /ofbiz/trunk: ./ applications/order/ applications/product/ applications/product/config/ applications/product/data/ applications/product/data/helpdata/ applications/product/entitydef/ applications/product/lib/ application...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1052521 [1/8] - in /ofbiz/trunk: ./ applications/order/ applications/product/ applications/product/config/ applications/product/data/ applications/product/data/helpdata/ applications/product/entitydef/ applications/product/lib/ application...

hansbak-2
Author: hansbak
Date: Fri Dec 24 15:22:49 2010
New Revision: 1052521

URL: http://svn.apache.org/viewvc?rev=1052521&view=rev
Log:
the first version of a product image management system when you want to upload and approve prand manupulate product images, see catalog -> image management

Added:
    ofbiz/trunk/applications/product/data/helpdata/HELP_IMAGEMANAGEMENT.xml
    ofbiz/trunk/applications/product/entitydef/entitymodel_view.xml
    ofbiz/trunk/applications/product/lib/
    ofbiz/trunk/applications/product/lib/dozer-4.2.1.jar   (with props)
    ofbiz/trunk/applications/product/lib/watermarker-0.0.4.jar   (with props)
    ofbiz/trunk/applications/product/script/org/ofbiz/product/imagemanagement/
    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/src/org/ofbiz/product/imagemanagement/
    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/ImageUrlServlet.java
    ofbiz/trunk/applications/product/src/org/ofbiz/product/imagemanagement/ReplaceImage.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/actions/imagemanagement/
    ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/imagemanagement/ImageFrame.groovy
    ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/imagemanagement/ImageRecentlyApproved.groovy
    ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/imagemanagement/ImageUpload.groovy
    ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/imagemanagement/automaticResize.groovy
    ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/imagemanagement/checkAction.groovy
    ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/imagemanagement/checkRejected.groovy
    ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/imagemanagement/seoLocales.groovy
    ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/imagemanagement/sortSequenceNum.groovy
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/AddMultipleImages.ftl
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/AutomaticResize.ftl
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/ImageCrop.ftl
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/ImageFrame.ftl
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/ImageGallery.ftl
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/ImageRecentlyApproved.ftl
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/ImageRotateButton.ftl
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/ImageRotating.ftl
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/ImageShare.ftl
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/ImageWatermark.ftl
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/ResizeImage.ftl
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/js/
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/js/jquery.Jcrop.css
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/js/jquery.Jcrop.js
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/js/jquery.Jcrop.min.js
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/js/jquery.Rotate.js
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/js/jquery.form.js
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/js/jquery.function.js
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/js/jquery.min.js
    ofbiz/trunk/applications/product/webapp/catalog/imagemanagement/showPeopleApprove.ftl
    ofbiz/trunk/applications/product/widget/catalog/ImageManagementForms.xml
    ofbiz/trunk/applications/product/widget/catalog/ImageManagementScreens.xml
Modified:
    ofbiz/trunk/.classpath
    ofbiz/trunk/applications/order/ofbiz-component.xml
    ofbiz/trunk/applications/product/build.xml
    ofbiz/trunk/applications/product/config/ImageProperties.xml
    ofbiz/trunk/applications/product/config/ProductUiLabels.xml
    ofbiz/trunk/applications/product/data/ProductDemoData.xml
    ofbiz/trunk/applications/product/data/ProductHelpData.xml
    ofbiz/trunk/applications/product/data/ProductSecurityData.xml
    ofbiz/trunk/applications/product/data/ProductTypeData.xml
    ofbiz/trunk/applications/product/entitydef/entitymodel.xml
    ofbiz/trunk/applications/product/ofbiz-component.xml
    ofbiz/trunk/applications/product/servicedef/secas.xml
    ofbiz/trunk/applications/product/servicedef/services.xml
    ofbiz/trunk/applications/product/src/org/ofbiz/product/image/ScaleImage.java
    ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml
    ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/web.xml
    ofbiz/trunk/applications/product/widget/catalog/CatalogMenus.xml
    ofbiz/trunk/applications/product/widget/catalog/CommonScreens.xml
    ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilMisc.java

Modified: ofbiz/trunk/.classpath
URL: http://svn.apache.org/viewvc/ofbiz/trunk/.classpath?rev=1052521&r1=1052520&r2=1052521&view=diff
==============================================================================
--- ofbiz/trunk/.classpath (original)
+++ ofbiz/trunk/.classpath Fri Dec 24 15:22:49 2010
@@ -4,6 +4,8 @@
     <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
     <classpathentry kind="lib" path="applications/content/lib/lucene-core-3.0.3.jar"/>
     <classpathentry kind="lib" path="applications/content/lib/poi-3.2-FINAL-20081019.jar"/>
+    <classpathentry kind="lib" path="framework/base/lib/watermarker-0.0.4.jar"/>
+    <classpathentry kind="lib" path="framework/base/lib/dozer-4.2.1.jar"/>
     <classpathentry kind="lib" path="framework/base/lib/ant-1.7.1.jar"/>
     <classpathentry kind="lib" path="framework/base/lib/ant-junit-1.7.1.jar"/>
     <classpathentry kind="lib" path="framework/base/lib/ant-launcher-1.7.1.jar"/>

Modified: ofbiz/trunk/applications/order/ofbiz-component.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/ofbiz-component.xml?rev=1052521&r1=1052520&r2=1052521&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/ofbiz-component.xml (original)
+++ ofbiz/trunk/applications/order/ofbiz-component.xml Fri Dec 24 15:22:49 2010
@@ -38,7 +38,6 @@ under the License.
     <entity-resource type="data" reader-name="seed" loader="main" location="data/OrderHelpData.xml"/>
     <entity-resource type="data" reader-name="demo" loader="main" location="data/OrderDemoUser.xml"/>
     <entity-resource type="data" reader-name="demo" loader="main" location="data/OrderDemoData.xml"/>
-    <entity-resource type="data" reader-name="demo" loader="main" location="data/SalesOrderDemoData.xml"/>
 
     <service-resource type="model" loader="main" location="servicedef/services.xml"/>
     <service-resource type="model" loader="main" location="servicedef/services_cart.xml"/>

Modified: ofbiz/trunk/applications/product/build.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/build.xml?rev=1052521&r1=1052520&r2=1052521&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/build.xml (original)
+++ ofbiz/trunk/applications/product/build.xml Fri Dec 24 15:22:49 2010
@@ -47,6 +47,7 @@ under the License.
         <fileset dir="../content/lib" includes="*.jar"/>
         <fileset dir="../content/build/lib" includes="*.jar"/>
         <fileset dir="../party/build/lib" includes="*.jar"/>
+        <fileset dir="lib" includes="*.jar"/>
     </path>
 
     <target name="init">

Modified: ofbiz/trunk/applications/product/config/ImageProperties.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/config/ImageProperties.xml?rev=1052521&r1=1052520&r2=1052521&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/config/ImageProperties.xml (original)
+++ ofbiz/trunk/applications/product/config/ImageProperties.xml Fri Dec 24 15:22:49 2010
@@ -35,4 +35,36 @@ under the License.
         <dimension name="height" value="600"/>
         <dimension name="width" value="600"/>
     </size>
+    <size name="100x75">
+        <dimension name="height" value="75"/>
+        <dimension name="width" value="100"/>
+    </size>
+    <size name="150x112">
+        <dimension name="height" value="112"/>
+        <dimension name="width" value="150"/>
+    </size>
+   <size name="320x240">
+        <dimension name="height" value="240"/>
+        <dimension name="width" value="320"/>
+    </size>
+     <size name="640x480">
+        <dimension name="height" value="480"/>
+        <dimension name="width" value="640"/>
+    </size>
+    <size name="800x600">
+        <dimension name="height" value="600"/>
+        <dimension name="width" value="800"/>
+    </size>
+    <size name="1024x768">
+        <dimension name="height" value="768"/>
+        <dimension name="width" value="1024"/>
+    </size>
+    <size name="1280x1024">
+        <dimension name="height" value="1024"/>
+        <dimension name="width" value="1280"/>
+    </size>
+     <size name="1600x1200">
+        <dimension name="height" value="1200"/>
+        <dimension name="width" value="1600"/>
+    </size>
 </imageSize>

Modified: ofbiz/trunk/applications/product/config/ProductUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/config/ProductUiLabels.xml?rev=1052521&r1=1052520&r2=1052521&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/config/ProductUiLabels.xml (original)
+++ ofbiz/trunk/applications/product/config/ProductUiLabels.xml Fri Dec 24 15:22:49 2010
@@ -19,6 +19,39 @@
     under the License.
 -->
 <resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+    <property key="Approve">
+        <value xml:lang="en">Approve</value>
+        <value xml:lang="th">ยืนยัน</value>
+    </property>
+    <property key="Approved">
+        <value xml:lang="en">Approved</value>
+        <value xml:lang="th">ยืนยันแล้ว</value>
+    </property>
+    <property key="AutomaticResize">
+        <value xml:lang="en">Automatic Resize</value>
+        <value xml:lang="th">เปลี่ยนขนาดอัตโนมัติ</value>
+    </property>
+    <property key="CatalogWebAnalytics">
+        <value xml:lang="en">Web Analytics</value>
+    </property>
+    <property key="CatalogWebAnalyticsConfigs">
+        <value xml:lang="en">Web Analytics Configuration</value>
+    </property>
+    <property key="CatalogWebAnalyticsTypes">
+        <value xml:lang="en">Web Analytics Types</value>
+    </property>
+    <property key="ChooseImageToReplace">
+        <value xml:lang="en">Choose Image to Replace</value>
+        <value xml:lang="th">เลือกภาพสำหรับแทนที่</value>
+    </property>
+    <property key="ChooseProductID">
+        <value xml:lang="en">Choose Product ID</value>
+        <value xml:lang="th">เลือกรหัสสินค้า</value>
+    </property>
+    <property key="ChooseReplacementImage">
+        <value xml:lang="en">Choose Replacement Image</value>
+        <value xml:lang="th">เลือกภาพที่จะแทนที่</value>
+    </property>
     <property key="FacilityActualShippingCharges">
         <value xml:lang="en">Actual shipping charges</value>
         <value xml:lang="it">Ricarico di spedizione attuale</value>
@@ -4831,7 +4864,59 @@
         <value xml:lang="zh">人工服务好的标准类型标识</value>
         <value xml:lang="zh_TW">工項成品規範類型ID</value>
     </property>
-    <property key="PageTitleAddFacilityGroupRollup">
+    <property key="Gallery">
+        <value xml:lang="en">Gallery</value>
+        <value xml:lang="th">แกลลอรี่</value>
+    </property>
+    <property key="ImageApprove">
+        <value xml:lang="en">Approve</value>
+        <value xml:lang="th">ยืนยันรูปภาพ</value>
+    </property>
+
+    <property key="ImageCropping">
+        <value xml:lang="en">Image Cropping</value>
+        <value xml:lang="th">ตัดภาพ</value>
+    </property>
+    <property key="ImageFrames">
+        <value xml:lang="en">Image Frames</value>
+        <value xml:lang="th">เฟรม</value>
+    </property>
+    <property key="ImageManagement">
+        <value xml:lang="en">Image Management</value>
+        <value xml:lang="th">จัดการรูปภาพ</value>
+    </property>
+    <property key="ImageManagementApplication">
+        <value xml:lang="en">Image Management Application</value>
+        <value xml:lang="th">โปรแกรมจัดการรูปภาพ</value>
+    </property>
+    <property key="ImageRecentlyApproved">
+        <value xml:lang="en">Recently Approved</value>
+        <value xml:lang="th">รูปภาพยืนยันล่าสุด</value>
+    </property>
+    <property key="ImageRejected">
+        <value xml:lang="en">Rejected</value>
+        <value xml:lang="th">ปฏิเสธรูปภาพ</value>
+    </property>
+    <property key="ImageRotating">
+        <value xml:lang="en">Image Rotating</value>
+        <value xml:lang="th">หมุนภาพ</value>
+    </property>
+    <property key="ImageUpload">
+        <value xml:lang="en">Upload</value>
+        <value xml:lang="th">อัพโหลดรูป</value>
+    </property>
+    <property key="ImageUploadList">
+        <value xml:lang="en">Image Upload List</value>
+        <value xml:lang="th">รูปภาพที่อัพโหลด</value>
+    </property>
+    <property key="ImageWatermarking">
+        <value xml:lang="en">Image Watermarking</value>
+        <value xml:lang="th">ลายน้ำ</value>
+    </property>
+    <property key="Manage">
+        <value xml:lang="en">Manage</value>
+        <value xml:lang="th">จัดการ</value>
+    </property>    <property key="PageTitleAddFacilityGroupRollup">
         <value xml:lang="de">Einrichtungsgruppe Rollup hinzufügen</value>
         <value xml:lang="en">Add Facility Group Rollup</value>
         <value xml:lang="es">Añadir despliegue de grupo de almacenes</value>
@@ -23524,4 +23609,28 @@
         <value xml:lang="zh">你搜索</value>
         <value xml:lang="zh_TW">你所搜索的</value>
     </property>
+    <property key="RecentlyApproved">
+        <value xml:lang="en">Recently Approved</value>
+        <value xml:lang="th">แกลลอรี่</value>
+    </property>
+    <property key="Rejected">
+        <value xml:lang="en">Rejected</value>
+        <value xml:lang="th">ปฏิเสธ</value>
+    </property>
+    <property key="Replace">
+        <value xml:lang="en">Replace</value>
+        <value xml:lang="th">แทนที่</value>
+    </property>
+    <property key="ShareImage">
+        <value xml:lang="en">Share Image</value>
+        <value xml:lang="th">แบ่งบันภาพ</value>
+    </property>
+    <property key="Upload">
+        <value xml:lang="en">Upload</value>
+        <value xml:lang="th">อัพโหลด</value>
+    </property>
+    <property key="WelcomeMessage">
+        <value xml:lang="en">Welcome to the Image Management</value>
+        <value xml:lang="th">ยินดีต้อนรับสู้รบบการจัดการรูปภาพ</value>
+    </property>
 </resource>

Modified: ofbiz/trunk/applications/product/data/ProductDemoData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/data/ProductDemoData.xml?rev=1052521&r1=1052520&r2=1052521&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/data/ProductDemoData.xml (original)
+++ ofbiz/trunk/applications/product/data/ProductDemoData.xml Fri Dec 24 15:22:49 2010
@@ -22,5 +22,25 @@ under the License.
     <!-- Limited user demo -->
     <UserLoginSecurityGroup groupId="CATALOGADMIN_LTD" userLoginId="ltdadmin" fromDate="2001-01-01 12:00:00.0"/>
     <UserLoginSecurityGroup groupId="CATALOGADMIN_LTD" userLoginId="ltdadmin1" fromDate="2001-01-01 12:00:00.0"/>
+    
+    <!-- Image Management user demo -->
+    <Party partyId="imageAdmin" partyTypeId="PERSON" statusId="PARTY_ENABLED"/>
+    <Person partyId="imageAdmin" firstName="Image Management" lastName="Administrator"/>
+    <UserLogin userLoginId="imageAdmin" partyId="imageAdmin" currentPassword="{SHA}47b56994cbc2b6d10aa1be30f70165adb305a41a"/>
+    <UserLoginSecurityGroup userLoginId="imageAdmin" groupId="FULLADMIN" fromDate="2010-01-01 12:00:00.0"/>
+    <UserLoginSecurityGroup userLoginId="imageAdmin" groupId="IMAGEADMIN" fromDate="2010-01-01 12:00:00.0"/>
+    <UserLoginSecurityGroup userLoginId="imageAdmin" groupId="IMAGEUPLOAD" fromDate="2010-01-01 12:00:00.0"/>
+    
+    <Party partyId="imageAdmin2" partyTypeId="PERSON" statusId="PARTY_ENABLED"/>
+    <Person partyId="imageAdmin2" firstName="Image Management" lastName="Administrator 2"/>
+    <UserLogin userLoginId="imageAdmin2" partyId="imageAdmin2" currentPassword="{SHA}47b56994cbc2b6d10aa1be30f70165adb305a41a"/>
+    <UserLoginSecurityGroup userLoginId="imageAdmin2" groupId="FULLADMIN" fromDate="2010-01-01 12:00:00.0"/>
+    <UserLoginSecurityGroup userLoginId="imageAdmin2" groupId="IMAGEAPPROVE" fromDate="2010-01-01 12:00:00.0"/>
+    
+    <Party partyId="imageUpload" partyTypeId="PERSON" statusId="PARTY_ENABLED"/>
+    <Person partyId="imageUpload" firstName="Image Management" lastName="Upload"/>
+    <UserLogin userLoginId="imageUpload" partyId="imageUpload" currentPassword="{SHA}47b56994cbc2b6d10aa1be30f70165adb305a41a"/>
+    <UserLoginSecurityGroup userLoginId="imageUpload" groupId="FULLADMIN" fromDate="2010-01-01 12:00:00.0"/>
+    <UserLoginSecurityGroup userLoginId="imageUpload" groupId="IMAGEUPLOAD" fromDate="2010-01-01 12:00:00.0"/>
 
 </entity-engine-xml>

Modified: ofbiz/trunk/applications/product/data/ProductHelpData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/data/ProductHelpData.xml?rev=1052521&r1=1052520&r2=1052521&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/data/ProductHelpData.xml (original)
+++ ofbiz/trunk/applications/product/data/ProductHelpData.xml Fri Dec 24 15:22:49 2010
@@ -26,4 +26,9 @@ under the License.
     <Content contentId="PRODCATALOG_main" contentTypeId="DOCUMENT" contentName="Main Catalog Help" templateDataResourceId="HELP_TEMPL" dataResourceId="PRODCATALOG_main" statusId="CTNT_IN_PROGRESS" mimeTypeId="text/html"/>
     <ContentAssoc contentId="HELP_PRODUCT" contentIdTo="PRODCATALOG_main" contentAssocTypeId="TREE_CHILD" fromDate="2006-01-12 01:01:01" sequenceNum="000" mapKey="PRODCATALOG_main"/>
 
+    <!-- Image Management -->
+    <DataResource dataResourceId="IMAGEMANAGEMENT_MAIN" localeString="en" dataResourceTypeId="OFBIZ_FILE" objectInfo="applications/product/data/helpdata/HELP_IMAGEMANAGEMENT.xml" dataTemplateTypeId="NONE" statusId="CTNT_IN_PROGRESS" dataResourceName="Image Management" mimeTypeId="text/xml" isPublic="Y" />
+    <Content contentId="IMAGEMANAGEMENT_MAIN" contentTypeId="DOCUMENT" contentName="Image Management" templateDataResourceId="HELP_TEMPL" dataResourceId="IMAGEMANAGEMENT_MAIN" statusId="CTNT_IN_PROGRESS" mimeTypeId="text/html"/>
+    <ContentAssoc contentId="PRODCATALOG_main" contentIdTo="IMAGEMANAGEMENT_MAIN" contentAssocTypeId="TREE_CHILD" fromDate="2006-01-12 01:01:01" sequenceNum="01" mapKey="PRODCATALOG_Imagemanagement"/>
+
 </entity-engine-xml>

Modified: ofbiz/trunk/applications/product/data/ProductSecurityData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/data/ProductSecurityData.xml?rev=1052521&r1=1052520&r2=1052521&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/data/ProductSecurityData.xml (original)
+++ ofbiz/trunk/applications/product/data/ProductSecurityData.xml Fri Dec 24 15:22:49 2010
@@ -92,4 +92,20 @@ under the License.
     <SecurityGroupPermission groupId="FLEXADMIN" permissionId="FACILITY_VIEW"/>
     <SecurityGroupPermission groupId="VIEWADMIN" permissionId="FACILITY_VIEW"/>
     <SecurityGroupPermission groupId="BIZADMIN" permissionId="FACILITY_ADMIN"/>
+    
+    <!-- Image Management security -->
+    <SecurityGroup description="Image Management Admin." groupId="IMAGEADMIN"/>
+    <SecurityPermission description="All operations in the Image Management." permissionId="IMAGE_MANAGEMENT_ADMIN"/>
+    <SecurityGroupPermission groupId="IMAGEADMIN" permissionId="IMAGE_MANAGEMENT_ADMIN"/>
+    <SecurityGroupPermission groupId="IMAGEADMIN" permissionId="IMAGE_MANAGEMENT_APPROVE"/>
+    <SecurityGroupPermission groupId="IMAGEADMIN" permissionId="IMAGE_MANAGEMENT_UPLOAD"/>
+    <SecurityGroupPermission groupId="FULLADMIN" permissionId="IMAGE_MANAGEMENT_ADMIN"/>
+    
+    <SecurityGroup description="Image Management Approve" groupId="IMAGEAPPROVE"/>
+    <SecurityPermission description="Approve photos in the Image Management." permissionId="IMAGE_MANAGEMENT_APPROVE"/>
+    <SecurityGroupPermission groupId="IMAGEAPPROVE" permissionId="IMAGE_MANAGEMENT_APPROVE"/>
+    
+    <SecurityGroup description="Image Management Upload." groupId="IMAGEUPLOAD"/>
+    <SecurityPermission description="Upload photos in the Image Management." permissionId="IMAGE_MANAGEMENT_UPLOAD"/>
+    <SecurityGroupPermission groupId="IMAGEUPLOAD" permissionId="IMAGE_MANAGEMENT_UPLOAD"/>
 </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=1052521&r1=1052520&r2=1052521&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/data/ProductTypeData.xml (original)
+++ ofbiz/trunk/applications/product/data/ProductTypeData.xml Fri Dec 24 15:22:49 2010
@@ -584,7 +584,49 @@ under the License.
     <WebSite webSiteId="FACILITY" siteName="Facility Manager" visualThemeSetId="BACKOFFICE"/>
 
     <WebAnalyticsType description="Web Analytics" hasTable="N" parentTypeId="" webAnalyticsTypeId="WEB_ANALYTICS"/>
-    <WebAnalyticsType webAnalyticsTypeId="GOOGLE_ANALYTICS" parentTypeId="WEB_ANALYTICS" hasTable="N" description="Google Analytics"/>    
+    <WebAnalyticsType webAnalyticsTypeId="GOOGLE_ANALYTICS" parentTypeId="WEB_ANALYTICS" hasTable="N" description="Google Analytics"/>
     <WebAnalyticsType webAnalyticsTypeId="BING_ANALYTICS" parentTypeId="WEB_ANALYTICS" hasTable="N" description="Bing Analytics"/>
-
+    
+    <!-- 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="Frame" hasTable="N" parentTypeId="" productContentTypeId="FRAME"/>
+    
+    <ContentType contentTypeId="IMAGE_FRAME" description="Frame Image"/>
+    
+    <ContentAssocType contentAssocTypeId="IMAGE_THUMBNAIL" description="Image Thumbnail"/>
+    
+    <StatusType description="Image Management" hasTable="N" parentTypeId="" statusTypeId="IMAGE_MANAGEMENT_ST"/>
+    <StatusItem description="Pending" sequenceId="01" statusCode="PENDING" statusId="IM_PENDING" statusTypeId="IMAGE_MANAGEMENT_ST"/>
+    <StatusItem description="Approved" sequenceId="02" statusCode="APPROVED" statusId="IM_APPROVED" statusTypeId="IMAGE_MANAGEMENT_ST"/>
+    <StatusItem description="Rejected" sequenceId="03" statusCode="REJECTED" statusId="IM_REJECTED" statusTypeId="IMAGE_MANAGEMENT_ST"/>
+    
+    <ProductFeatureCategory productFeatureCategoryId="IMAGE" description="Image"/>
+    <ProductFeatureCategory productFeatureCategoryId="TEXT" description="Text"/>
+    
+    <ProductFeature productFeatureId="IMAGE_AVATAR" productFeatureTypeId="SIZE" productFeatureCategoryId="IMAGE" description="100 X 75 (avatar)" defaultSequenceNum="1"/>
+    <ProductFeature productFeatureId="IMAGE_THUMBNAIL" productFeatureTypeId="SIZE" productFeatureCategoryId="IMAGE" description="150 X 112 (thumbnail)" defaultSequenceNum="2"/>
+    <ProductFeature productFeatureId="IMAGE_WEBSITE" productFeatureTypeId="SIZE" productFeatureCategoryId="IMAGE" description="320 X 240 (for websites and email)" defaultSequenceNum="3"/>
+    <ProductFeature productFeatureId="IMAGE_BOARD" productFeatureTypeId="SIZE" productFeatureCategoryId="IMAGE" description="640 X 480 (for message boards)" defaultSequenceNum="4"/>
+    <ProductFeature productFeatureId="IMAGE_MONITOR15" productFeatureTypeId="SIZE" productFeatureCategoryId="IMAGE" description="800 X 600 (15-inch monitor)" defaultSequenceNum="5"/>
+    <ProductFeature productFeatureId="IMAGE_MONITOR17" productFeatureTypeId="SIZE" productFeatureCategoryId="IMAGE" description="1024 X 768 (17-inch monitor)" defaultSequenceNum="6"/>
+    <ProductFeature productFeatureId="IMAGE_MONITOR19" productFeatureTypeId="SIZE" productFeatureCategoryId="IMAGE" description="1280 X 1024 (19-inch monitor)" defaultSequenceNum="7"/>
+    <ProductFeature productFeatureId="IMAGE_MONITOR21" productFeatureTypeId="SIZE" productFeatureCategoryId="IMAGE" description="1600 X 1200 (21-inch monitor)" defaultSequenceNum="8"/>
+    
+    <ProductFeature productFeatureId="TEXT_SMALL" productFeatureTypeId="SIZE" productFeatureCategoryId="TEXT" description="Small" defaultSequenceNum="1"/>
+    <ProductFeature productFeatureId="TEXT_MIDDLE" productFeatureTypeId="SIZE" productFeatureCategoryId="TEXT" description="Middle" defaultSequenceNum="2"/>
+    <ProductFeature productFeatureId="TEXT_LARGE" productFeatureTypeId="SIZE" productFeatureCategoryId="TEXT" description="Large" defaultSequenceNum="3"/>
+    <ProductFeature productFeatureId="TEXT_VERYLARGE" productFeatureTypeId="SIZE" productFeatureCategoryId="TEXT" description="Very Large" defaultSequenceNum="4"/>
+    
+    <ProductFeature productFeatureId="TEXT_WHITE" productFeatureTypeId="COLOR" productFeatureCategoryId="TEXT" description="White" defaultSequenceNum="1"/>
+    <ProductFeature productFeatureId="TEXT_GRAY" productFeatureTypeId="COLOR" productFeatureCategoryId="TEXT" description="Gray" defaultSequenceNum="2"/>
+    <ProductFeature productFeatureId="TEXT_BLACK" productFeatureTypeId="COLOR" productFeatureCategoryId="TEXT" description="Black" defaultSequenceNum="3"/>
+    <ProductFeature productFeatureId="TEXT_RED" productFeatureTypeId="COLOR" productFeatureCategoryId="TEXT" description="Red" defaultSequenceNum="4"/>
+    <ProductFeature productFeatureId="TEXT_GREEN" productFeatureTypeId="COLOR" productFeatureCategoryId="TEXT" description="Green" defaultSequenceNum="5"/>
+    <ProductFeature productFeatureId="TEXT_BLUE" productFeatureTypeId="COLOR" productFeatureCategoryId="TEXT" description="Blue" defaultSequenceNum="6"/>
+    <ProductFeature productFeatureId="TEXT_YELLOW" productFeatureTypeId="COLOR" productFeatureCategoryId="TEXT" description="Yellow" defaultSequenceNum="7"/>
+    
 </entity-engine-xml>

Added: 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=1052521&view=auto
==============================================================================
--- ofbiz/trunk/applications/product/data/helpdata/HELP_IMAGEMANAGEMENT.xml (added)
+++ ofbiz/trunk/applications/product/data/helpdata/HELP_IMAGEMANAGEMENT.xml Fri Dec 24 15:22:49 2010
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements. See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to you under the Apache License, Version
+    2.0 (the "License"); you may not use this file except in compliance
+    with the License. You may obtain a copy of the License at
+    http://www.apache.org/licenses/LICENSE-2.0 Unless required by
+    applicable law or agreed to in writing, software distributed under the
+    License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
+    CONDITIONS OF ANY KIND, either express or implied. See the License for
+    the specific language governing permissions and limitations under the
+    License.
+-->
+<section xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    version="5.0" xmlns:xl="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude"
+    xsi:schemaLocation="http://docbook.org/ns/docbook ../../../content/dtd/docbook.xsd"
+    xmlns="http://docbook.org/ns/docbook">
+    <title>Image Management Help.</title>
+    <para>The Image Management module manages many kind of image what user want. There are various functions including 'Gallery', 'Upload', 'Approved', 'Manage' etc.</para>
+    <para>
+         <orderedlist>
+            <listitem>
+                <para>Go to Catalog Component.</para>
+                <para>Go to Image Management.</para>
+            </listitem>
+         </orderedlist>
+    </para>
+
+    <section>
+        <title>How To Add Security Group For Image Management User</title>
+        <para>There are three security groups related in the Image Management including 'IMAGEADMIN', 'IMAGEAPPROVE' and ' IMAGEUPLOAD'.</para>
+        <para>
+            <orderedlist>
+                <listitem>
+                    <para>Go to 'Party' component.</para>
+                    <para>Search 'UserLogin' or 'Party Id'.</para>
+                    <para>Click 'UserLogin' or 'Party Id'.</para>
+                    <para>At 'User Name(s)', click 'Security Groups' button.</para>
+                    <para>At 'Add UserLogin to Security Group', select group 'IMAGEADMIN Image Management Admin' for use all operations in the Image Management.</para>
+                    <para>select 'IMAGEUPLOAD Image Management Upload': To add party's permission for uploading, or select 'IMAGEAPPROVE Image Management Approve': To add party's permission for approving.</para>
+                </listitem>
+            </orderedlist>
+        </para>
+    </section>
+    <section>
+        <title>How To Add Role For Approve Image To Party Id</title>        
+        <para>When user click partyId into party's screen already. Select the submenu 'Role(s)' to add the role to party</para>
+        <para>There is Add To Role screenlet, select role 'Image Approver'(on the combobox role type Id) then click 'add' button.</para>
+    </section>
+    <section>
+        <title>Gallery</title>
+        <section>
+            <para>Gallery shows all images which have approved.</para>
+            <para>Note: Everybody can access Gallery function.</para>
+            <orderedlist>
+                <listitem>
+                    <para>Click 'Gallery' button, then choose a 'Product Id' by type or click a find icon.</para>
+                    <para>Click 'Submit' button, then you will see all images which have approved.</para>
+                    <para>You can click 'Share' button that generates any codes to share your images to any people.</para>
+                </listitem>
+            </orderedlist>
+        </section>
+    </section>
+    <section>
+        <title>Upload</title>
+        <section>
+            <para>In this function, you can upload image files into system. You can upload many image files up to 10 files.</para>
+            <para>Note: You must have Image Management Upload permission for access Upload function.</para>
+            <orderedlist>
+                <listitem>
+                    <para>Go to 'Upload' section, Enter 'Product Id' by type or click a find icon.</para>
+                    <para>Optional, you can specify the size of images.</para>
+                    <para>Then click 'Browse' button to choose image file(s).</para>
+                    <para>Click 'Upload' button.</para>
+                </listitem>
+            </orderedlist>
+        </section>
+    </section>
+    <section>
+        <title>Recently Approved</title>
+        <section>
+            <para>In this function, you can see the images which have been approved for 14 days recently.</para>
+            <para>Note: You must have Image Management Admin permission for access this function.</para>
+            <orderedlist>
+                <listitem>
+                    <para>Click 'Recently Approved' Button, then you will see the lists of recently approved product which are separated by date.</para>
+                    <para>Click on product id to see its images with details.</para>
+                </listitem>
+            </orderedlist>
+        </section>
+    </section>
+    <section>
+        <title>Approve</title>
+        <section>
+            <para>In this function, you can set the status of each image including 'Approve', 'Pending' and 'Rejected'.</para>
+            <para>Note: You must have Image Management Admin permission for access this function.</para>
+            <orderedlist>
+                <listitem>
+                    <para>Click 'Approve' Button, then specify the status of each image.</para>
+                    <para>Choose 'Approve' status for approve image.</para>
+                    <para>Choose 'Reject' status for reject image..</para>
+                    <para>Choose 'Pending' status for pending image..</para>
+                    <para>Click 'Submit' button.</para>
+                </listitem>
+            </orderedlist>
+            <para>The images will be approved if all image administrators approved them. But if only one person rejects an image then that image will be rejected.</para>
+        </section>
+    </section>
+    <section>
+        <title>Rejected</title>
+        <section>
+            <para>The Rejected function shows the images which have rejected.</para>
+            <para>Note: You must have Image Management Admin permission for access this function.</para>
+            <orderedlist>
+                <listitem>
+                    <para>Click 'Rejected' button, then you specify the reason of rejection each image.</para>
+                    <para>Then click 'Submit' button.</para>
+                </listitem>
+            </orderedlist>
+        </section>
+    </section>
+    <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>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>Select image thumbnail of product.</para>
+                    <para>Click 'Submit' button.</para>
+                </listitem>
+            </orderedlist>
+            <section>
+                <title>- Frame</title>
+                <section>
+                    <para>In Frame function, you can merge your image with the frame image (transparent image file e.g. PNG type) together.</para>
+                    <para>The frame image should be larger than selected image.</para>
+                    <orderedlist>
+                        <listitem>
+                            <para>Choose 'Frame' then choose the image you want to merge frame.</para>
+                            <para>Select the frame image by browsing transparent image file, such as PNG type.</para>
+                            <para>Click 'Upload' button to upload the frame image.</para>
+                            <para>Enter width and height of image.</para>
+                            <para>Optional, you click 'Preview' to see example image.</para>
+                            <para>Click 'Create' button.</para>
+                        </listitem>
+                    </orderedlist>
+                </section>
+            </section>
+            <section>
+                <title>- Watermark</title>
+                <section>
+                    <para>In Watermark function, you can draw some text on your image.</para>
+                    <orderedlist>
+                        <listitem>
+                            <para>Choose 'Watermark' then choose image you want.</para>
+                            <para>Enter any text, Choose text color, text size and text position.</para>
+                            <para>Optional, you can preview image by click 'Preview' button.</para>
+                            <para>Click 'Watermark' button.</para>
+                        </listitem>
+                    </orderedlist>
+                </section>
+            </section>
+        </section>
+        <section>
+            <title>- Crop</title>
+            <section>
+                <para>You can crop any images in this function.</para>
+                <orderedlist>
+                    <listitem>
+                        <para>Choose 'Crop' then choose your image.</para>
+                        <para>Move your cursor on the image, then drag your mouse to crop image.</para>
+                        <para>You can see the preview image in the right hand side.</para>
+                        <para>Finally, you click 'Crop' button.</para>
+                    </listitem>
+                </orderedlist>
+            </section>
+        </section>
+        <section>
+            <title>- Rotate</title>
+            <section>
+                <para>You can rotate images in this function.</para>
+                <orderedlist>
+                    <listitem>
+                        <para>Choose 'Rotate' then click clockwise or counterclockwise button for ratating image.</para>
+                        <para>Click 'Submit' button</para>
+                    </listitem>
+                </orderedlist>
+            </section>
+        </section>
+    </section>
+    <section>
+        <title>Replace</title>
+        <section>
+            <para>In this function, you can replace the selected image with other image.</para>
+            <para>The image which you want to replace must be approved first.</para>
+            <orderedlist>
+                <listitem>
+                    <para>Click 'Replace' button, Enter 'Product Id' by type or click a find icon.</para>
+                    <para>Then choose the image which you want to replace.</para>
+                    <para>Choose the other image to replace with the selected image.</para>
+                    <para>Click 'Submit' button.</para>
+                </listitem>
+            </orderedlist>
+        </section>
+    </section>
+    <!--<section>
+        <title>Automatic Resize</title>
+        <section>
+            <para>You can resize any images in this function.</para>
+            <orderedlist>
+                <listitem>
+                    <para>Go to 'Automatic Resize' section, Enter 'Product Id' by type or click a find icon.</para>
+                    <para>Choose Image to resize, then you can select a size.</para>
+                    <para>Click 'Upload Image'.</para>
+                </listitem>
+            </orderedlist>
+        </section>
+    </section>-->
+</section>

Modified: ofbiz/trunk/applications/product/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/entitydef/entitymodel.xml?rev=1052521&r1=1052520&r2=1052521&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/applications/product/entitydef/entitymodel.xml Fri Dec 24 15:22:49 2010
@@ -4814,4 +4814,15 @@ 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="enable" type="indicator"/>
+        <field name="thumbnail" type="indicator"/>
+    </extend-entity>
+    
+    <extend-entity entity-name="PartyContent">
+        <field name="statusId" type="id"></field>
+    </extend-entity>
 </entitymodel>

Added: ofbiz/trunk/applications/product/entitydef/entitymodel_view.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/entitydef/entitymodel_view.xml?rev=1052521&view=auto
==============================================================================
--- ofbiz/trunk/applications/product/entitydef/entitymodel_view.xml (added)
+++ ofbiz/trunk/applications/product/entitydef/entitymodel_view.xml Fri Dec 24 15:22:49 2010
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entitymodel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/entitymodel.xsd">
+    
+    <view-entity entity-name="PartyContentProductContentAndInfo"
+            package-name="org.ofbiz.content.content"
+            title="PartyContent, ProductContent, Content and DataResource View Entity">
+      <member-entity entity-alias="PAC" entity-name="PartyContent"/>
+      <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="PRC">
+       <exclude field="contentId"/>
+      </alias-all>
+      <alias-all entity-alias="CO">
+       <exclude field="contentId"/>
+      </alias-all>
+      <alias-all entity-alias="DR" prefix="dr"/>
+      <view-link entity-alias="PAC" rel-entity-alias="PRC">
+        <key-map field-name="contentId"/>
+      </view-link>
+      <view-link entity-alias="PRC" rel-entity-alias="CO">
+        <key-map field-name="contentId"/>
+      </view-link>
+      <view-link entity-alias="CO" rel-entity-alias="DR">
+        <key-map field-name="dataResourceId"/>
+      </view-link>
+      <relation type="one-nofk" rel-entity-name="ElectronicText">
+        <key-map field-name="dataResourceId"/>
+      </relation>
+      <relation type="one-nofk" rel-entity-name="ImageDataResource">
+        <key-map field-name="dataResourceId"/>
+      </relation>
+      <relation type="one-nofk" rel-entity-name="OtherDataResource">
+        <key-map field-name="dataResourceId"/>
+      </relation>
+      <relation type="many" rel-entity-name="ContentAssocDataResourceViewFrom">
+        <key-map field-name="contentId" rel-field-name="contentIdStart"/>
+      </relation>
+      <relation type="many" rel-entity-name="ContentAssocDataResourceViewTo">
+        <key-map field-name="contentId" rel-field-name="contentIdStart"/>
+      </relation>
+    </view-entity>
+    
+</entitymodel>

Added: ofbiz/trunk/applications/product/lib/dozer-4.2.1.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/lib/dozer-4.2.1.jar?rev=1052521&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/applications/product/lib/dozer-4.2.1.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ofbiz/trunk/applications/product/lib/watermarker-0.0.4.jar
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/lib/watermarker-0.0.4.jar?rev=1052521&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ofbiz/trunk/applications/product/lib/watermarker-0.0.4.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: ofbiz/trunk/applications/product/ofbiz-component.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/ofbiz-component.xml?rev=1052521&r1=1052520&r2=1052521&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/ofbiz-component.xml (original)
+++ ofbiz/trunk/applications/product/ofbiz-component.xml Fri Dec 24 15:22:49 2010
@@ -24,8 +24,10 @@ under the License.
     <resource-loader name="main" type="component"/>
     <classpath type="dir" location="config"/>
     <classpath type="jar" location="build/lib/*"/>
+    <classpath type="jar" location="lib/*"/>
 
     <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel.xml"/>
+    <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel_view.xml"/>
     <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel_old.xml"/>
     <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel_shipment.xml"/>
     <entity-resource type="model" reader-name="main" loader="main" location="entitydef/entitymodel_olap.xml"/>

Added: 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=1052521&view=auto
==============================================================================
--- ofbiz/trunk/applications/product/script/org/ofbiz/product/imagemanagement/ImageManagementEvents.xml (added)
+++ ofbiz/trunk/applications/product/script/org/ofbiz/product/imagemanagement/ImageManagementEvents.xml Fri Dec 24 15:22:49 2010
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+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">
+            <field-map field-name="productId" from-field="parameters.productId"/>
+            <field-map field-name="productContentTypeId" value="IMAGE"/>
+            <field-map field-name="thumbnail" value="Y"/>
+        </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>
+        
+        <!-- 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"/>
+        
+        <!-- set thumbnail to product -->
+        <entity-and list="productContentAndInfos" entity-name="ProductContentAndInfo">
+            <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>
+        <if-not-empty field="productContentAndInfos">
+            <set field="setThumbnailMap.productId" from-field="parameters.productId"/>
+            <set field="setThumbnailMap.contentIdTo" from-field="parameters.contentIdTo"/>
+            <call-service service-name="setThumbnail" in-map-name="setThumbnailMap"/>
+        </if-not-empty>
+    </simple-method>
+</simple-methods>

Added: 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=1052521&view=auto
==============================================================================
--- ofbiz/trunk/applications/product/script/org/ofbiz/product/imagemanagement/ImageManagementServices.xml (added)
+++ ofbiz/trunk/applications/product/script/org/ofbiz/product/imagemanagement/ImageManagementServices.xml Fri Dec 24 15:22:49 2010
@@ -0,0 +1,370 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+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="UploadProductImages" short-description="Method to upload multiple images for product">
+        <set-service-fields service-name="addMultipleuploadForProduct" map="parameters" to-map="addAdditionalViewForProductMap"/>
+        <if-not-empty field="parameters.additionalImageOne">
+            <set field="addAdditionalViewForProductMap.productId" from-field="parameters.productId"/>
+            <set field="addAdditionalViewForProductMap.imageResize" from-field="parameters.imageResize"/>
+            <set field="addAdditionalViewForProductMap.uploadedFile" from-field="parameters.additionalImageOne"/>
+            <set field="addAdditionalViewForProductMap.productContentTypeId" value="IMAGE"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_fileName" from-field="parameters._additionalImageOne_fileName"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_contentType" from-field="parameters._additionalImageOne_contentType"/>
+            <call-service service-name="addMultipleuploadForProduct" in-map-name="addAdditionalViewForProductMap"/>
+            <clear-field field="addAdditionalViewForProductMap"/>
+        </if-not-empty>
+        <if-not-empty field="parameters.additionalImageTwo">
+            <set field="addAdditionalViewForProductMap.productId" from-field="parameters.productId"/>
+            <set field="addAdditionalViewForProductMap.imageResize" from-field="parameters.imageResize"/>
+            <set field="addAdditionalViewForProductMap.uploadedFile" from-field="parameters.additionalImageTwo"/>
+            <set field="addAdditionalViewForProductMap.productContentTypeId" value="IMAGE"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_fileName" from-field="parameters._additionalImageTwo_fileName"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_contentType" from-field="parameters._additionalImageTwo_contentType"/>
+            <call-service service-name="addMultipleuploadForProduct" in-map-name="addAdditionalViewForProductMap"/>
+            <clear-field field="addAdditionalViewForProductMap"/>
+        </if-not-empty>
+        <if-not-empty field="parameters.additionalImageThree">
+            <set field="addAdditionalViewForProductMap.productId" from-field="parameters.productId"/>
+            <set field="addAdditionalViewForProductMap.imageResize" from-field="parameters.imageResize"/>
+            <set field="addAdditionalViewForProductMap.uploadedFile" from-field="parameters.additionalImageThree"/>
+            <set field="addAdditionalViewForProductMap.productContentTypeId" value="IMAGE"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_fileName" from-field="parameters._additionalImageThree_fileName"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_contentType" from-field="parameters._additionalImageThree_contentType"/>
+            <call-service service-name="addMultipleuploadForProduct" in-map-name="addAdditionalViewForProductMap"/>
+            <clear-field field="addAdditionalViewForProductMap"/>
+        </if-not-empty>
+        <if-not-empty field="parameters.additionalImageFour">
+            <set field="addAdditionalViewForProductMap.productId" from-field="parameters.productId"/>
+            <set field="addAdditionalViewForProductMap.imageResize" from-field="parameters.imageResize"/>
+            <set field="addAdditionalViewForProductMap.uploadedFile" from-field="parameters.additionalImageFour"/>
+            <set field="addAdditionalViewForProductMap.productContentTypeId" value="IMAGE"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_fileName" from-field="parameters._additionalImageFour_fileName"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_contentType" from-field="parameters._additionalImageFour_contentType"/>
+            <call-service service-name="addMultipleuploadForProduct" in-map-name="addAdditionalViewForProductMap"/>
+            <clear-field field="addAdditionalViewForProductMap"/>
+        </if-not-empty>
+        <if-not-empty field="parameters.additionalImageFive">
+            <set field="addAdditionalViewForProductMap.productId" from-field="parameters.productId"/>
+            <set field="addAdditionalViewForProductMap.imageResize" from-field="parameters.imageResize"/>
+            <set field="addAdditionalViewForProductMap.uploadedFile" from-field="parameters.additionalImageFive"/>
+            <set field="addAdditionalViewForProductMap.productContentTypeId" value="IMAGE"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_fileName" from-field="parameters._additionalImageFive_fileName"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_contentType" from-field="parameters._additionalImageFive_contentType"/>
+            <call-service service-name="addMultipleuploadForProduct" in-map-name="addAdditionalViewForProductMap"/>
+            <clear-field field="addAdditionalViewForProductMap"/>
+        </if-not-empty>
+        <if-not-empty field="parameters.additionalImageSix">
+            <set field="addAdditionalViewForProductMap.productId" from-field="parameters.productId"/>
+            <set field="addAdditionalViewForProductMap.imageResize" from-field="parameters.imageResize"/>
+            <set field="addAdditionalViewForProductMap.uploadedFile" from-field="parameters.additionalImageSix"/>
+            <set field="addAdditionalViewForProductMap.productContentTypeId" value="IMAGE"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_fileName" from-field="parameters._additionalImageSix_fileName"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_contentType" from-field="parameters._additionalImageSix_contentType"/>
+            <call-service service-name="addMultipleuploadForProduct" in-map-name="addAdditionalViewForProductMap"/>
+            <clear-field field="addAdditionalViewForProductMap"/>
+        </if-not-empty>
+        <if-not-empty field="parameters.additionalImageSeven">
+            <set field="addAdditionalViewForProductMap.productId" from-field="parameters.productId"/>
+            <set field="addAdditionalViewForProductMap.imageResize" from-field="parameters.imageResize"/>
+            <set field="addAdditionalViewForProductMap.uploadedFile" from-field="parameters.additionalImageSeven"/>
+            <set field="addAdditionalViewForProductMap.productContentTypeId" value="IMAGE"/>
+           <set field="addAdditionalViewForProductMap._uploadedFile_fileName" from-field="parameters._additionalImageSeven_fileName"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_contentType" from-field="parameters._additionalImageSeven_contentType"/>
+            <call-service service-name="addMultipleuploadForProduct" in-map-name="addAdditionalViewForProductMap"/>
+            <clear-field field="addAdditionalViewForProductMap"/>
+        </if-not-empty>
+        <if-not-empty field="parameters.additionalImageEight">
+            <set field="addAdditionalViewForProductMap.productId" from-field="parameters.productId"/>
+            <set field="addAdditionalViewForProductMap.imageResize" from-field="parameters.imageResize"/>
+            <set field="addAdditionalViewForProductMap.uploadedFile" from-field="parameters.additionalImageEight"/>
+            <set field="addAdditionalViewForProductMap.productContentTypeId" value="IMAGE"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_fileName" from-field="parameters._additionalImageEight_fileName"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_contentType" from-field="parameters._additionalImageEight_contentType"/>
+            <call-service service-name="addMultipleuploadForProduct" in-map-name="addAdditionalViewForProductMap"/>
+            <clear-field field="addAdditionalViewForProductMap"/>
+        </if-not-empty>
+        <if-not-empty field="parameters.additionalImageNine">
+            <set field="addAdditionalViewForProductMap.productId" from-field="parameters.productId"/>
+            <set field="addAdditionalViewForProductMap.imageResize" from-field="parameters.imageResize"/>
+            <set field="addAdditionalViewForProductMap.uploadedFile" from-field="parameters.additionalImageNine"/>
+            <set field="addAdditionalViewForProductMap.productContentTypeId" value="IMAGE"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_fileName" from-field="parameters._additionalImageNine_fileName"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_contentType" from-field="parameters._additionalImageNine_contentType"/>
+            <call-service service-name="addMultipleuploadForProduct" in-map-name="addAdditionalViewForProductMap"/>
+            <clear-field field="addAdditionalViewForProductMap"/>
+        </if-not-empty>
+        <if-not-empty field="parameters.additionalImageTen">
+            <set field="addAdditionalViewForProductMap.productId" from-field="parameters.productId"/>
+            <set field="addAdditionalViewForProductMap.imageResize" from-field="parameters.imageResize"/>
+            <set field="addAdditionalViewForProductMap.uploadedFile" from-field="parameters.additionalImageTen"/>
+            <set field="addAdditionalViewForProductMap.productContentTypeId" value="IMAGE"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_fileName" from-field="parameters._additionalImageTen_fileName"/>
+            <set field="addAdditionalViewForProductMap._uploadedFile_contentType" from-field="parameters._additionalImageTen_contentType"/>
+            <call-service service-name="addMultipleuploadForProduct" in-map-name="addAdditionalViewForProductMap"/>
+            <clear-field field="addAdditionalViewForProductMap"/>
+        </if-not-empty>
+        <field-to-result field="parameters.productId" result-name="productId"/>
+    </simple-method>
+  
+    <simple-method method-name="removeProductContentAndImageFile" short-description="Remove Content From Product and Image File">
+        <entity-and list="contentAssocs" entity-name="ContentAssoc">
+            <field-map field-name="contentId" from-field="parameters.contentId"/>
+            <field-map field-name="contentAssocTypeId" value="IMAGE_THUMBNAIL"/>
+        </entity-and>
+        <if-not-empty field="contentAssocs">
+            <first-from-list entry="contentAssoc" list="contentAssocs"/>
+            <remove-value value-field="contentAssoc"/>
+            
+            <set field="removeContent.contentId" from-field="contentAssoc.contentIdTo"/>
+            <set field="removeContent.productId" from-field="parameters.productId"/>
+            <call-service service-name="removeProductContentForImageManagement" in-map-name="removeContent"/>
+        </if-not-empty>
+        
+        <make-value value-field="lookupPKMap" entity-name="ProductContent"/>
+        <set-pk-fields map="parameters" value-field="lookupPKMap"/>
+        <find-by-primary-key map="lookupPKMap" value-field="lookedUpValue"/>
+        <remove-value value-field="lookedUpValue"/>
+        <set field="removeContent.contentId" from-field="parameters.contentId"/>
+        <set field="removeContent.productId" from-field="parameters.productId"/>
+        <call-service service-name="removeProductContentForImageManagement" in-map-name="removeContent"/>
+    </simple-method>
+    
+    <simple-method method-name="removeProductContentForImageManagement" short-description="Remove Content From Product">
+        <entity-and list="contentRoles" entity-name="ContentRole" >
+           <field-map field-name="contentId" from-field="parameters.contentId"/>
+        </entity-and>
+        <remove-value value-field="contentRoles[0]"/>
+        
+        <entity-condition entity-name="PartyContent" list="partyContents">
+            <condition-list combine="and">
+                <condition-expr field-name="contentId" from-field="parameters.contentId"/>
+                <condition-expr field-name="partyContentTypeId" value="IMAGEAPPROVER"/>
+            </condition-list>
+        </entity-condition>
+        <iterate entry="partyContent" list="partyContents">
+            <remove-value value-field="partyContent"/>
+        </iterate>
+        
+        <entity-one value-field="content" entity-name="Content">
+            <field-map field-name="contentId" from-field="parameters.contentId"/>
+        </entity-one>
+        
+        <set field="removeContentPKMap.contentId" from-field="parameters.contentId"/>
+        <set-service-fields service-name="removeContent" map="removeContentPKMap" to-map="removeContentMap"/>
+        <call-service service-name="removeContent" in-map-name="removeContentMap"/>
+        
+        <set field="dataResourceId" from-field="content.dataResourceId"/>
+        <entity-and list="dataResourceRoles" entity-name="DataResourceRole" >
+            <field-map field-name="dataResourceId" from-field="dataResourceId"/>
+        </entity-and>
+        <remove-value value-field="dataResourceRoles[0]"/>
+        
+        <entity-one value-field="dataResource" entity-name="DataResource">
+            <field-map field-name="dataResourceId" from-field="dataResourceId"/>
+        </entity-one>
+        
+        <set field="removeImageFile.productId" from-field="parameters.productId"/>
+        <set field="removeImageFile.contentId" from-field="parameters.contentId"/>
+        <set field="removeImageFile.dataResourceName" from-field="dataResource.dataResourceName"/>
+        <set-service-fields service-name="removeImageFileForImageManagement" map="removeImageFile" to-map="removeImageFileMap"/>
+        <call-service service-name="removeImageFileForImageManagement" in-map-name="removeImageFileMap"/>
+        
+        <set field="removeDataResourcePKMap.dataResourceId" from-field="dataResourceId"/>
+        <set-service-fields service-name="removeDataResource" map="removeDataResourcePKMap" to-map="removeDataResourceMap"/>
+        <call-service service-name="removeDataResource" in-map-name="removeDataResourceMap"/>
+    </simple-method>
+    
+    <simple-method method-name="setImageDetail" short-description="Set Image Detail">
+        <!-- set sort order (defaultSequenceNum) and exclude (enable) -->
+        <entity-one value-field="productContent" entity-name="ProductContent"/>
+        <set field="productContent.defaultSequenceNum" from-field="parameters.defaultSequenceNum" type="Long"/>
+        <store-value value-field="productContent"/>
+        <if-not-empty field="parameters.defaultSequenceNum">
+            <script location="component://image_management/webapp/image_management/WEB-INF/actions/sortSequenceNum.groovy"/>
+            <set field="productContent.defaultSequenceNum" from-field="parameters.defaultSequenceNum" type="Long"/>
+            <store-value value-field="productContent"/>
+        </if-not-empty>
+        <if-compare operator="equals" value="false" field="parameters.enable"> <!-- if ticked checked box = false -->
+            <set field="parameters.enable" value="true"/>
+            <else>
+                <set field="parameters.enable" value="false"/>
+            </else>
+        </if-compare>
+        <set field="productContent.enable" from-field="parameters.enable" type="Boolean"/>
+        <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"/>
+    </simple-method>
+    
+    <simple-method method-name="updateStatusImageManagement" short-description="Update Status Image Management">
+        <now-timestamp field="nowTimestamp"/>
+        <set field="parameters.checkStatusId" value="${groovy: import org.ofbiz.base.util.StringUtil;
+        checkStatusVal = parameters.checkStatusId;
+        statusId = StringUtil.split(checkStatusVal, &quot;/&quot;);
+        if (statusId) return statusId[0];
+        }"/>
+        <entity-and entity-name="PartyContent" list="partyContents">
+            <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"/>
+        </entity-and>
+        <first-from-list entry="partyContent" list="partyContents"/>
+        <if-not-empty field="parameters.checkStatusId">
+            <set field="partyContent.statusId" from-field="parameters.checkStatusId"/>
+        </if-not-empty>
+        <store-value value-field="partyContent"/>
+        
+        <if-compare field="parameters.checkStatusId" operator="equals" value="IM_REJECTED">
+            <entity-condition entity-name="PartyContent" 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-list>
+            </entity-condition>
+            <iterate entry="checkReject" list="checkRejects">
+                <set field="checkReject.statusId" value="IM_REJECTED"/>
+                <store-value value-field="checkReject"/>
+            </iterate>
+            <entity-one entity-name="Content" value-field="content"/>
+            <set field="content.statusId" value="IM_REJECTED"/>
+            <set field="content.createdByUserLogin" from-field="userLogin.userLoginId"/>
+            <store-value value-field="content"/>
+            <else>
+                <if-compare field="parameters.checkStatusId" operator="equals" value="IM_APPROVED">
+                    <entity-count entity-name="PartyContent" 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-list>
+                    </entity-count>
+                    <if-compare field="countParty" operator="equals" value="1">
+                        <entity-one entity-name="Content" value-field="content"/>
+                        <set field="content.statusId" value="IM_APPROVED"/>
+                        <store-value value-field="content"/>
+                        
+                        <entity-and entity-name="ProductContent" list="productContents">
+                            <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.purchaseFromDate" from-field="nowTimestamp"/>
+                        <set field="productContent.enable" value="N"/>
+                        <set field="productContent.thumbnail" value="N"/>
+                        <store-value value-field="productContent"/>
+                        <else>
+                            <entity-count entity-name="PartyContent" 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-list>
+                            </entity-count>
+                            <if-compare field="countApprove" operator="greater-equals" value="2">
+                                <entity-one entity-name="Content" value-field="content"/>
+                                <set field="content.statusId" value="IM_APPROVED"/>
+                                <store-value value-field="content"/>
+                                
+                                <entity-and entity-name="ProductContent" list="productContents">
+                                    <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.purchaseFromDate" from-field="nowTimestamp"/>
+                                <set field="productContent.enable" value="N"/>
+                                <set field="productContent.thumbnail" value="N"/>
+                                <store-value value-field="productContent"/>
+                                
+                                <entity-condition entity-name="PartyContent" 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-list>
+                                </entity-condition>
+                                <iterate entry="checkApprove" list="checkApproveList">
+                                    <set field="checkApprove.statusId" value="IM_APPROVED"/>
+                                    <store-value value-field="checkApprove"/>
+                                </iterate>
+                            </if-compare>
+                        </else>
+                    </if-compare>
+                </if-compare>
+            </else>
+        </if-compare>
+    </simple-method>
+    
+    <simple-method method-name="addRejectedReasonImageManagement" short-description="Add Rejected Reason Image Management">
+        <now-timestamp field="nowTimestam"/>
+        <entity-one entity-name="Content" value-field="content"/>
+        <if-not-empty field="parameters.description">
+            <if-compare field="parameters.description" value="RETAKE_PHOTO" operator="equals">
+                <set field="content.description" value="Re-take Photo"/>
+            </if-compare>
+            <if-compare field="parameters.description" value="REMOVE_LOGO" operator="equals">
+                <set field="content.description" value="Remove Logo"/>
+            </if-compare>
+            <if-compare field="parameters.description" value="OTHER" operator="equals">
+                <set field="content.description" value="Other"/>
+            </if-compare>
+            <else>
+                <set field="content.description" value="Other"/>
+            </else>
+        </if-not-empty>
+        <store-value value-field="content"/>
+        
+        <entity-and entity-name="ProductContent" list="productContents">
+            <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.thruDate" from-field="nowTimestam"/>
+        <store-value value-field="productContent"/>
+    </simple-method>
+    
+    <simple-method method-name="createImagePartyContent" short-description="Create Party Content 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"/>
+        </iterate>
+    </simple-method>
+    
+    <simple-method method-name="removeImagePartyContent" short-description="Remove Party Content of Image">
+        <entity-and entity-name="PartyContent" list="partyContents">
+            <field-map field-name="partyId" from-field="parameters.partyId"/>
+            <field-map field-name="partyContentTypeId" value="IMAGEAPPROVER"/>
+        </entity-and>
+        <iterate list="partyContents" entry="partyContent">
+            <remove-value value-field="partyContent"/>
+        </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=1052521&r1=1052520&r2=1052521&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/servicedef/secas.xml (original)
+++ ofbiz/trunk/applications/product/servicedef/secas.xml Fri Dec 24 15:22:49 2010
@@ -128,5 +128,11 @@ under the License.
     <eca service="receiveInventoryProduct" event="commit">
         <action service="updateProductAverageCostOnReceiveInventory" mode="sync"/>
     </eca>
+    
+    <!-- Remove party content of image  -->
+    <eca service="deletePartyRole" event="commit">
+        <condition field-name="roleTypeId" operator="equals" value="IMAGEAPPROVER"/>
+        <action service="removeImagePartyContent" mode="sync"/>
+    </eca>
 
 </service-eca>