| /* |
| * 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. |
| */ |
| |
| import org.ofbiz.entity.*; |
| import org.ofbiz.entity.util.*; |
| import org.ofbiz.base.util.*; |
| import java.sql.Timestamp; |
| import org.ofbiz.base.util.ObjectType |
| |
| contentId = parameters.contentId; |
| if (!contentId) { |
| contentId = null; |
| } |
| |
| productContentTypeId = parameters.productContentTypeId; |
| |
| fromDate = parameters.fromDate; |
| if (!fromDate) { |
| fromDate = null; |
| } else { |
| fromDate = ObjectType.simpleTypeConvert(fromDate, "Timestamp", null, null, false) |
| } |
| |
| |
| description = parameters.description; |
| if (!description) { |
| description = null; |
| } |
| |
| productContent = delegator.findOne("ProductContent", [contentId : contentId, productId : productId, productContentTypeId : productContentTypeId, fromDate : fromDate], false); |
| if (!productContent) { |
| productContent = [:]; |
| productContent.productId = productId; |
| productContent.contentId = contentId; |
| productContent.productContentTypeId = productContentTypeId; |
| productContent.fromDate = fromDate; |
| productContent.thruDate = parameters.thruDate; |
| productContent.purchaseFromDate = parameters.purchaseFromDate; |
| productContent.purchaseThruDate = parameters.purchaseThruDate; |
| productContent.useCountLimit = parameters.useCountLimit; |
| productContent.useTime = parameters.useTime; |
| productContent.useTimeUomId = parameters.useTimeUomId; |
| productContent.useRoleTypeId = parameters.useRoleTypeId; |
| } |
| context.productContent = productContent; |
| |
| productContentData = [:]; |
| productContentData.putAll(productContent); |
| |
| content = [:]; |
| context.contentId = contentId; |
| if (contentId) { |
| content = delegator.findOne("Content", [contentId : contentId], false); |
| context.content = content; |
| } else { |
| if (description) { |
| content.description = description; |
| } |
| } |
| |
| //Email |
| if ("FULFILLMENT_EMAIL".equals(productContentTypeId)) { |
| emailData = [:]; |
| if (contentId && content) { |
| subjectDr = content.getRelatedOne("DataResource", false); |
| if (subjectDr) { |
| subject = subjectDr.getRelatedOne("ElectronicText", false); |
| emailData.subject = subject.textData; |
| emailData.subjectDataResourceId = subject.dataResourceId; |
| } |
| serviceCtx = [userLogin : userLogin, contentId : contentId, mapKeys : ['plainBody', 'htmlBody']]; |
| result = dispatcher.runSync("findAssocContent", serviceCtx); |
| contentAssocs = result.get("contentAssocs"); |
| if (contentAssocs) { |
| contentAssocs.each { contentAssoc -> |
| bodyContent = contentAssoc.getRelatedOne("ToContent", false); |
| bodyDr = bodyContent.getRelatedOne("DataResource", false); |
| body = bodyDr.getRelatedOne("ElectronicText", false); |
| emailData.put(contentAssoc.mapKey, body.textData); |
| emailData.put(contentAssoc.get("mapKey")+"DataResourceId", body.dataResourceId); |
| } |
| } |
| } |
| |
| context.contentFormName = "EditProductContentEmail"; |
| context.emailData = emailData; |
| } else if ("DIGITAL_DOWNLOAD".equals(productContentTypeId)) { |
| downloadData = [:]; |
| if (contentId && content) { |
| downloadDr = content.getRelatedOne("DataResource", false); |
| if (downloadDr) { |
| download = downloadDr.getRelatedOne("OtherDataResource", false); |
| if (download) { |
| downloadData.file = download.dataResourceContent; |
| downloadData.fileDataResourceId = download.dataResourceId; |
| } |
| } |
| } |
| context.contentFormName = "EditProductContentDownload"; |
| context.downloadData = downloadData; |
| } else if ("FULFILLMENT_EXTERNAL".equals(productContentTypeId)) { |
| context.contentFormName = "EditProductContentExternal"; |
| } else if (productContentTypeId && productContentTypeId.indexOf("_IMAGE") > -1) { |
| context.contentFormName = "EditProductContentImage"; |
| } else { |
| //Assume it is a generic simple text content |
| textData = [:]; |
| if (contentId && content) { |
| textDr = content.getRelatedOne("DataResource", false); |
| if (textDr) { |
| text = textDr.getRelatedOne("ElectronicText", false); |
| if (text) { |
| textData.text = text.textData; |
| textData.textDataResourceId = text.dataResourceId; |
| } |
| } |
| } |
| context.contentFormName = "EditProductContentSimpleText"; |
| context.textData = textData; |
| } |
| if (productContentTypeId) { |
| productContentType = delegator.findOne("ProductContentType", [productContentTypeId : productContentTypeId], false); |
| if (productContentType && "DIGITAL_DOWNLOAD".equals(productContentType.parentTypeId)) { |
| context.contentFormName = "EditProductContentDownload"; |
| } |
| } |
| if (("PAGE_TITLE".equals(productContentTypeId))||("META_KEYWORD".equals(productContentTypeId))||("META_DESCRIPTION".equals(productContentTypeId))) { |
| context.contentFormName = "EditProductContentSEO"; |
| } |
| |
| context.productContentData = productContentData; |
| context.content = content; |
| context.contentId = contentId; |