From 0d743a2515c0c9c26c0d85dac94a7b1a00413360 Mon Sep 17 00:00:00 2001 From: jtesser Date: Wed, 17 May 2017 18:55:09 -0400 Subject: [PATCH 1/2] #11620 --- .../transform/field/LegacyFieldTransformer.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/dotCMS/src/main/java/com/dotcms/contenttype/transform/field/LegacyFieldTransformer.java b/dotCMS/src/main/java/com/dotcms/contenttype/transform/field/LegacyFieldTransformer.java index ec06dc79fa6a..ca9e0ee1061e 100644 --- a/dotCMS/src/main/java/com/dotcms/contenttype/transform/field/LegacyFieldTransformer.java +++ b/dotCMS/src/main/java/com/dotcms/contenttype/transform/field/LegacyFieldTransformer.java @@ -71,7 +71,7 @@ private static com.dotmarketing.portlets.structure.model.Field transformToOld(Fi com.dotmarketing.portlets.structure.model.Field old = new com.dotmarketing.portlets.structure.model.Field(); old.setDefaultValue(field.defaultValue()); - old.setFieldContentlet(field.dbColumn()); + old.setFieldContentlet(LegacyFieldTransformer.buildLegacyFieldContent(field)); old.setFieldName(field.name()); old.setFieldRelationType(field.relationType()); old.setFieldType(field.typeName()); @@ -97,6 +97,14 @@ private static com.dotmarketing.portlets.structure.model.Field transformToOld(Fi } + private static String buildLegacyFieldContent(Field field){ + String fieldContent = field.dbColumn(); + if(field.typeName().endsWith("BinaryField")){ + fieldContent = "binary" + field.sortOrder(); + } + return fieldContent; + } + private static Field transformToNew(com.dotmarketing.portlets.structure.model.Field oldField) { final String fieldType = oldField.getFieldType(); From d68d6684cdc47fa094f769a3c8415e68e111f0d7 Mon Sep 17 00:00:00 2001 From: jtesser Date: Thu, 18 May 2017 09:37:28 -0400 Subject: [PATCH 2/2] #11613 --- .../java/com/dotcms/rest/ContentResource.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/dotCMS/src/main/java/com/dotcms/rest/ContentResource.java b/dotCMS/src/main/java/com/dotcms/rest/ContentResource.java index ec7b328c2277..5c776c7a2875 100644 --- a/dotCMS/src/main/java/com/dotcms/rest/ContentResource.java +++ b/dotCMS/src/main/java/com/dotcms/rest/ContentResource.java @@ -660,6 +660,9 @@ private Response multipartPUTandPOST(HttpServletRequest request, HttpServletResp Map map = new HashMap(); List usedBinaryFields = new ArrayList(); + String binaryFieldsInput = null; + List binaryFields = new ArrayList<>(); + for(BodyPart part : multipart.getBodyParts()) { ContentDisposition cd=part.getContentDisposition(); String name=cd!=null && cd.getParameters().containsKey("name") ? cd.getParameters().get("name") : ""; @@ -667,6 +670,18 @@ private Response multipartPUTandPOST(HttpServletRequest request, HttpServletResp if(part.getMediaType().equals(MediaType.APPLICATION_JSON_TYPE) || name.equals("json")) { try { processJSON(contentlet,part.getEntityAs(InputStream.class)); + try { + binaryFieldsInput = webResource.processJSON(part.getEntityAs(InputStream.class)).get("binary_fields").toString(); + }catch (NullPointerException npe){} + if(UtilMethods.isSet(binaryFieldsInput)) { + if(!binaryFieldsInput.contains(",")){ + binaryFields.add(binaryFieldsInput); + }else { + for (String binaryFieldSplit : binaryFieldsInput.split(",")) { + binaryFields.add(binaryFieldSplit.trim()); + } + } + } } catch (JSONException e) { Logger.error( this.getClass(), "Error processing JSON for Stream", e ); @@ -736,7 +751,12 @@ else if(part.getContentDisposition()!=null) { String fieldName = ff.getFieldContentlet(); if (fieldName.startsWith("binary") && !usedBinaryFields.contains(fieldName)) { - contentlet.setBinary(ff.getVelocityVarName(), tmp); + String fieldVarName = ff.getVelocityVarName(); + if(binaryFields.size()>0){ + fieldVarName = binaryFields.get(0); + binaryFields.remove(0); + } + contentlet.setBinary(fieldVarName, tmp); usedBinaryFields.add(fieldName); break; }