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, "/"); + 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> |
Free forum by Nabble | Edit this page |