This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git commit 969d1afd1648d8af7671ed43e0c54d71b916ef35 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Mon Jul 31 17:37:20 2017 +0200 ajout du type de resource (choix ou screenshot) --- .../migration/h2/V3_0_0_5__add_type_in_resource.sql | 4 ++++ .../postgresql/V3_0_0_5__add_type_in_resource.sql | 4 ++++ pollen-persistence/src/main/xmi/pollen.properties | 2 +- pollen-persistence/src/main/xmi/pollen.zargo | Bin 26297 -> 26867 bytes .../pollen/rest/api/beans/Resource64Bean.java | 12 ++++++++++++ .../org/chorem/pollen/rest/api/v1/ApiUtils.java | 10 ++++++++++ .../pollen/services/bean/ResourceFileBean.java | 13 +++++++++++++ .../pollen/services/bean/ResourceMetaBean.java | 13 +++++++++++++ .../services/service/PollenResourceService.java | 2 ++ .../resources/i18n/pollen-services_en_GB.properties | 1 + .../resources/i18n/pollen-services_fr_FR.properties | 1 + pollen-ui-riot-js/src/main/web/js/Poll.js | 2 +- pollen-ui-riot-js/src/main/web/js/PollForm.js | 4 ++-- .../src/main/web/js/ResourceService.js | 4 ++-- .../src/main/web/tag/popup/FeedbackModal.tag.html | 3 ++- 15 files changed, 68 insertions(+), 7 deletions(-) diff --git a/pollen-persistence/src/main/resources/db/migration/h2/V3_0_0_5__add_type_in_resource.sql b/pollen-persistence/src/main/resources/db/migration/h2/V3_0_0_5__add_type_in_resource.sql new file mode 100644 index 00000000..6a82f99f --- /dev/null +++ b/pollen-persistence/src/main/resources/db/migration/h2/V3_0_0_5__add_type_in_resource.sql @@ -0,0 +1,4 @@ +-- add type in pollenresource +alter table pollenresource add resourcetype longvarchar; +update pollenresource set resourcetype = 'CHOICE'; +update pollenresource set resourcetype = 'SCREENSHOT' where name = 'screenShot.jpeg' ; \ No newline at end of file diff --git a/pollen-persistence/src/main/resources/db/migration/postgresql/V3_0_0_5__add_type_in_resource.sql b/pollen-persistence/src/main/resources/db/migration/postgresql/V3_0_0_5__add_type_in_resource.sql new file mode 100644 index 00000000..d7307ee5 --- /dev/null +++ b/pollen-persistence/src/main/resources/db/migration/postgresql/V3_0_0_5__add_type_in_resource.sql @@ -0,0 +1,4 @@ +-- add type in pollenresource +alter table pollenresource add resourcetype text; +update pollenresource set resourcetype = 'CHOICE'; +update pollenresource set resourcetype = 'SCREENSHOT' where name = 'screenShot.jpeg' ; \ No newline at end of file diff --git a/pollen-persistence/src/main/xmi/pollen.properties b/pollen-persistence/src/main/xmi/pollen.properties index 4ee00b40..d6ac9ccd 100644 --- a/pollen-persistence/src/main/xmi/pollen.properties +++ b/pollen-persistence/src/main/xmi/pollen.properties @@ -18,7 +18,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # #L% ###m -model.tagvalue.version=3.0.0.4 +model.tagvalue.version=3.0.0.5 #model.tagValue.notGenerateToString=true #model.tagValue.constantPrefix=PROPERTY_ #model.tagValue.useEnumerationName=true diff --git a/pollen-persistence/src/main/xmi/pollen.zargo b/pollen-persistence/src/main/xmi/pollen.zargo index a9447c7e..ef9c933a 100644 Binary files a/pollen-persistence/src/main/xmi/pollen.zargo and b/pollen-persistence/src/main/xmi/pollen.zargo differ diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/beans/Resource64Bean.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/beans/Resource64Bean.java index ec236f98..d818e8d3 100644 --- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/beans/Resource64Bean.java +++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/beans/Resource64Bean.java @@ -1,5 +1,7 @@ package org.chorem.pollen.rest.api.beans; +import org.chorem.pollen.persistence.entity.ResourceType; + /** * @author Sylvain Bavencoff - bavencoff@codelutin.com */ @@ -11,6 +13,8 @@ public class Resource64Bean { protected String contentType; + protected ResourceType resourceType; + public String getData() { return data; } @@ -34,4 +38,12 @@ public class Resource64Bean { public void setContentType(String contentType) { this.contentType = contentType; } + + public ResourceType getResourceType() { + return resourceType; + } + + public void setResourceType(ResourceType resourceType) { + this.resourceType = resourceType; + } } diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/ApiUtils.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/ApiUtils.java index 0c8cd409..cebdb51c 100644 --- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/ApiUtils.java +++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/ApiUtils.java @@ -1,7 +1,9 @@ package org.chorem.pollen.rest.api.v1; import com.google.common.base.Charsets; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.io.IOUtils; +import org.chorem.pollen.persistence.entity.ResourceType; import org.chorem.pollen.rest.api.beans.Resource64Bean; import org.chorem.pollen.services.PollenTechnicalException; import org.chorem.pollen.services.bean.ResourceFileBean; @@ -16,6 +18,7 @@ import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; import java.util.Base64; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -65,6 +68,12 @@ public class ApiUtils { resourceBean.setContentType(contentType); resourceBean.setSize(uploadFile.length()); + List<InputPart> resourceTypeInputs = multipartFormDataInput + .getFormDataMap() + .get("resourceType"); + if (CollectionUtils.isNotEmpty(resourceTypeInputs)) { + resourceBean.setResourceType(ResourceType.valueOf(resourceTypeInputs.get(0).getBodyAsString())); + } return resourceBean; } catch (IOException e) { @@ -89,6 +98,7 @@ public class ApiUtils { resourceBean.setContentType(resource64Bean.getContentType()); resourceBean.setSize(uploadFile.length()); + resourceBean.setResourceType(resource64Bean.getResourceType()); return resourceBean; diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/ResourceFileBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/ResourceFileBean.java index bd01f2c5..526d9fa2 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/ResourceFileBean.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/ResourceFileBean.java @@ -24,6 +24,7 @@ package org.chorem.pollen.services.bean; import org.apache.commons.io.IOUtils; import org.chorem.pollen.persistence.entity.PollenResource; import org.chorem.pollen.persistence.entity.PollenResourceImpl; +import org.chorem.pollen.persistence.entity.ResourceType; import javax.sql.rowset.serial.SerialBlob; import java.io.File; @@ -50,6 +51,8 @@ public class ResourceFileBean extends PollenBean<PollenResource> { protected String contentType; + protected ResourceType resourceType; + public ResourceFileBean() { super(PollenResource.class); } @@ -61,6 +64,7 @@ public class ResourceFileBean extends PollenBean<PollenResource> { setName(entity.getName()); setSize(entity.getSize()); setContentType(entity.getContentType()); + setResourceType(entity.getResourceType()); } @Override @@ -78,6 +82,7 @@ public class ResourceFileBean extends PollenBean<PollenResource> { entity.setName(getName()); entity.setSize(getSize()); entity.setContentType(getContentType()); + entity.setResourceType(getResourceType()); return entity; } @@ -125,4 +130,12 @@ public class ResourceFileBean extends PollenBean<PollenResource> { return new SerialBlob(IOUtils.toByteArray(stream)); } + + public ResourceType getResourceType() { + return resourceType; + } + + public void setResourceType(ResourceType resourceType) { + this.resourceType = resourceType; + } } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/ResourceMetaBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/ResourceMetaBean.java index 08d5d8a3..b4e67f9c 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/ResourceMetaBean.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/ResourceMetaBean.java @@ -23,6 +23,7 @@ package org.chorem.pollen.services.bean; import org.chorem.pollen.persistence.entity.PollenResource; import org.chorem.pollen.persistence.entity.PollenResourceImpl; +import org.chorem.pollen.persistence.entity.ResourceType; /** * Created on 11/07/14. @@ -37,6 +38,8 @@ public class ResourceMetaBean extends PollenBean<PollenResource> { protected String contentType; + protected ResourceType resourceType; + protected ResourceMetaBean() { super(PollenResource.class); } @@ -48,6 +51,7 @@ public class ResourceMetaBean extends PollenBean<PollenResource> { setName(entity.getName()); setSize(entity.getSize()); setContentType(entity.getContentType()); + setResourceType(entity.getResourceType()); } @Override @@ -59,6 +63,7 @@ public class ResourceMetaBean extends PollenBean<PollenResource> { entity.setName(getName()); entity.setSize(getSize()); entity.setContentType(getContentType()); + entity.setResourceType(getResourceType()); return entity; } @@ -86,4 +91,12 @@ public class ResourceMetaBean extends PollenBean<PollenResource> { public void setContentType(String contentType) { this.contentType = contentType; } + + public ResourceType getResourceType() { + return resourceType; + } + + public void setResourceType(ResourceType resourceType) { + this.resourceType = resourceType; + } } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenResourceService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenResourceService.java index b3098624..78e676af 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenResourceService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenResourceService.java @@ -170,6 +170,7 @@ public class PollenResourceService extends PollenServiceSupport implements Polle toSave.setName(resource.getName()); toSave.setContentType(resource.getContentType()); toSave.setSize(resource.getSize()); + toSave.setResourceType(resource.getResourceType()); try { toSave.setResourceContent(resource.getResourceBlob()); } catch (IOException | SQLException e) { @@ -216,6 +217,7 @@ public class PollenResourceService extends PollenServiceSupport implements Polle errorMap.addError("size", message); } + checkNotNull(errorMap, PollenResource.PROPERTY_RESOURCE_TYPE, resource.getResourceType(), l(getLocale(),"pollen.error.resource.resourceTypeRequired")); return errorMap; } } diff --git a/pollen-services/src/main/resources/i18n/pollen-services_en_GB.properties b/pollen-services/src/main/resources/i18n/pollen-services_en_GB.properties index 77428b70..3878bd2e 100644 --- a/pollen-services/src/main/resources/i18n/pollen-services_en_GB.properties +++ b/pollen-services/src/main/resources/i18n/pollen-services_en_GB.properties @@ -89,6 +89,7 @@ pollen.error.report.level.mandatory=Report level can not be empty pollen.error.resource.empty=No resource sent pollen.error.resource.maxSize=File "%s" of %4.2f %s can't be over %4.2f %s. pollen.error.resource.notExist=Image don't exist +pollen.error.resource.resourceTypeRequired=Resource type is required pollen.error.user.bannedSelf=You can't banned yourself pollen.error.user.mailEmpty=The email address can not be empty pollen.error.user.mailExist=The email address already exists diff --git a/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties b/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties index f8305bf5..cba4a21c 100644 --- a/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties +++ b/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties @@ -88,6 +88,7 @@ pollen.error.report.level.mandatory=Le type de signalement est obligatoire pollen.error.resource.empty=Aucune resource envoyé pollen.error.resource.maxSize=Le fichier « %s » de %4.2f %s ne doit pas dépasser %4.2f %s. pollen.error.resource.notExist=L'image n'existe pas sur le serveur +pollen.error.resource.resourceTypeRequired=Le type de resource est obligatoire pollen.error.user.bannedSelf=Vous ne pouvez pas vous bannir vous-même pollen.error.user.mailEmpty=L'adresse de courriel ne peut pas être vide pollen.error.user.mailExist=L'adresse de courriel existe déjà diff --git a/pollen-ui-riot-js/src/main/web/js/Poll.js b/pollen-ui-riot-js/src/main/web/js/Poll.js index 25685df7..ba4ba3a8 100644 --- a/pollen-ui-riot-js/src/main/web/js/Poll.js +++ b/pollen-ui-riot-js/src/main/web/js/Poll.js @@ -108,7 +108,7 @@ class Poll { if (this.id) { let promise; if (choice.choiceType === "RESOURCE" && choice.choiceValue.type) { - promise = resourceService.create(choice.choiceValue).then((result) => { + promise = resourceService.create(choice.choiceValue, "CHOICE").then((result) => { choice.choiceValue = result.id; return Promise.resolve(choice); }); diff --git a/pollen-ui-riot-js/src/main/web/js/PollForm.js b/pollen-ui-riot-js/src/main/web/js/PollForm.js index 15c5ca98..8eabde2d 100644 --- a/pollen-ui-riot-js/src/main/web/js/PollForm.js +++ b/pollen-ui-riot-js/src/main/web/js/PollForm.js @@ -150,7 +150,7 @@ class PollForm { let fileUploadPromises = []; this.choices.forEach((choice) => { if (choice.choiceType === "RESOURCE" && choice.choiceValue.name) { - let promise = resourceService.create(choice.choiceValue).then((result) => { + let promise = resourceService.create(choice.choiceValue, "CHOICE").then((result) => { choice.choiceValue = result.id; return result.id; }); @@ -178,7 +178,7 @@ class PollForm { let choicesPromises = this.choices.map(choice=> { let promise; if (choice.choiceType === "RESOURCE" && choice.choiceValue.type) { - promise = resourceService.create(choice.choiceValue) + promise = resourceService.create(choice.choiceValue, "CHOICE") .then((result) => { choice.choiceValue = result.id; return Promise.resolve(choice); diff --git a/pollen-ui-riot-js/src/main/web/js/ResourceService.js b/pollen-ui-riot-js/src/main/web/js/ResourceService.js index 8799faf4..d6e0d38e 100644 --- a/pollen-ui-riot-js/src/main/web/js/ResourceService.js +++ b/pollen-ui-riot-js/src/main/web/js/ResourceService.js @@ -32,9 +32,9 @@ class ResourceService extends FetchService { return url; } - create(resource) { + create(resource, resourceType) { let url = this._getUrlPrefix(); - return this.form(url, {resource: resource}, true); + return this.form(url, {resource: resource, resourceType: resourceType}, true); } create64(resource64) { diff --git a/pollen-ui-riot-js/src/main/web/tag/popup/FeedbackModal.tag.html b/pollen-ui-riot-js/src/main/web/tag/popup/FeedbackModal.tag.html index 370ea216..a61b5685 100644 --- a/pollen-ui-riot-js/src/main/web/tag/popup/FeedbackModal.tag.html +++ b/pollen-ui-riot-js/src/main/web/tag/popup/FeedbackModal.tag.html @@ -115,7 +115,8 @@ require("./Modal.tag.html"); let resource64 = { data: data, name: "screenShot.jpeg", - contentType: type + contentType: type, + resourceType: "SCREENSHOT" }; return resourceService.create64(resource64); }); -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.