diff --git a/entity/Leadimport_entity/Leadimport_entity.aod b/entity/Leadimport_entity/Leadimport_entity.aod index d9ae5a1b44f82ade0e29f3192550ae345eabf463..74bce464c53c67f55ac1d64ca2edd1bcc84d3874 100644 --- a/entity/Leadimport_entity/Leadimport_entity.aod +++ b/entity/Leadimport_entity/Leadimport_entity.aod @@ -279,10 +279,6 @@ <onActionProcess>%aditoprj%/entity/Leadimport_entity/entityfields/uploadnewfile/onActionProcess.js</onActionProcess> <iconId>VAADIN:UPLOAD_ALT</iconId> </entityActionField> - <entityParameter> - <name>LeadimportNewFile_param</name> - <expose v="true" /> - </entityParameter> <entityField> <name>information</name> <title>Warning</title> diff --git a/entity/Leadimport_entity/entityfields/bindata/valueProcess.js b/entity/Leadimport_entity/entityfields/bindata/valueProcess.js index 0deacd7374127a76c96831258de85ada86a45c5e..b26be7ad4df799fc7479293b26d3c25c628b6efe 100644 --- a/entity/Leadimport_entity/entityfields/bindata/valueProcess.js +++ b/entity/Leadimport_entity/entityfields/bindata/valueProcess.js @@ -5,17 +5,15 @@ import("system.vars"); import("system.db"); import("Document_lib"); -if (vars.get("$sys.recordstate") && vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW && vars.get("$sys.recordstate") != neon.OPERATINGSTATE_EDIT) +if (vars.get("$sys.recordstate") && vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null) { var binMetadatas = db.getBinaryMetadata("LEADIMPORT", "IMPORTFILE", vars.get("$field.LEADIMPORTID"), false, SqlUtils.getBinariesAlias(), ""); if (binMetadatas.length > 0) { - // preset with data from db. This is mostly to allow just editing the other fields without uploading a file (because this field is mandatory) - var resultValue = binMetadatas[0].filename; - resultValue += ";" + db.getBinaryContent(binMetadatas[0].id, SqlUtils.getBinariesAlias()); - resultValue += ";" + binMetadatas[0].mimetype; - - result.string(resultValue); + // preset the field. This is to allow just editing the other fields without uploading a file (because this field is mandatory) + // if the user did not upload a file "FILE NOT CHANGED" will be still in the field in onDBUpdate and nothing has to be done there + // --> this is a marking that the field didn't change + result.string("FILE NOT CHANGED"); } else { result.string("FILE MISSING"); } diff --git a/entity/Leadimport_entity/entityfields/uploadnewfile/onActionProcess.js b/entity/Leadimport_entity/entityfields/uploadnewfile/onActionProcess.js index 61c8adfb82ce1028f9484a4f1b715dd8a491e42b..e62547450131766e5bbb2a24282d84a1e4c6ad74 100644 --- a/entity/Leadimport_entity/entityfields/uploadnewfile/onActionProcess.js +++ b/entity/Leadimport_entity/entityfields/uploadnewfile/onActionProcess.js @@ -1,7 +1,4 @@ import("system.neon"); import("system.vars"); -var prompts = new Array(); -prompts["LeadimportNewFile_param"] = true; - -neon.openContext("Leadimport", "LeadimportDocEdit_view", [vars.getString("$field.LEADIMPORTID")], neon.OPERATINGSTATE_EDIT, prompts); \ No newline at end of file +neon.openContext("Leadimport", "LeadimportDocEdit_view", [vars.getString("$field.LEADIMPORTID")], neon.OPERATINGSTATE_EDIT, []); \ No newline at end of file diff --git a/entity/Leadimport_entity/recordcontainers/db/onDBInsert.js b/entity/Leadimport_entity/recordcontainers/db/onDBInsert.js index 5d54b3a0c52da043c0c5b4e44c32184ad2794aa0..c64451acb8eb094e4fbbac23fdc4b2265c65b13f 100644 --- a/entity/Leadimport_entity/recordcontainers/db/onDBInsert.js +++ b/entity/Leadimport_entity/recordcontainers/db/onDBInsert.js @@ -23,5 +23,4 @@ if(bindata != '' && filename != '') var documentId = SingleBinaryUtils.insertMainDocument("LEADIMPORT", "IMPORTFILE", assignmentRowId, bindata, filename, "", SqlUtils.getBinariesAlias()); LeadImportUtils.loadImportFile(documentId, fieldSep, fieldLimit, recordSep, assignmentRowId); } -} - +} \ No newline at end of file diff --git a/entity/Leadimport_entity/recordcontainers/db/onDBUpdate.js b/entity/Leadimport_entity/recordcontainers/db/onDBUpdate.js index 6eb7c12952c9d6ed461f03bc0345f52c34dd42b5..07d9801b3fda42f8bf2cf55245b8e466cfe2463a 100644 --- a/entity/Leadimport_entity/recordcontainers/db/onDBUpdate.js +++ b/entity/Leadimport_entity/recordcontainers/db/onDBUpdate.js @@ -6,28 +6,32 @@ import("Binary_lib"); import("Leadimport_lib"); import("system.db"); import("system.vars"); +import("system.util"); import("Document_lib"); -var assignmentRowId = vars.get("$field.LEADIMPORTID"); -var bindata = DocumentUtil.getBindataFromUpload(vars.get("$field.bindata")); -var filename = DocumentUtil.getFilenameFromUpload(vars.get("$field.bindata")); - -var fieldSep = LeadImportUtils.getFieldSeparator(vars.get("$field.FIELDSEPARATOR")); -var fieldLimit = LeadImportUtils.getFieldLimit(vars.get("$field.FIELDDELIMITERS")); -var recordSep = LeadImportUtils.getRecordSeparator(vars.get("$field.SENTENCESEPARATOR")); - -if(bindata != '' && filename != '') +// "FILE NOT CHANGED" is set in the value process of the field to indicate that the user didn't upload a new file +if (vars.get("$field.bindata") != "FILE NOT CHANGED") { - var mimeType = DocumentUtil.getMimeTypeFromUpload(vars.get("$field.bindata")); + var assignmentRowId = vars.get("$field.LEADIMPORTID"); + var bindata = DocumentUtil.getBindataFromUpload(vars.get("$field.bindata")); + var filename = DocumentUtil.getFilenameFromUpload(vars.get("$field.bindata")); + + var fieldSep = LeadImportUtils.getFieldSeparator(vars.get("$field.FIELDSEPARATOR")); + var fieldLimit = LeadImportUtils.getFieldLimit(vars.get("$field.FIELDDELIMITERS")); + var recordSep = LeadImportUtils.getRecordSeparator(vars.get("$field.SENTENCESEPARATOR")); - if (mimeType == "application/vnd.ms-excel") + if(bindata != '' && filename != '') { - var binMetadata = db.getBinaryMetadata("LEADIMPORT", "IMPORTFILE", assignmentRowId, false, SqlUtils.getBinariesAlias(), "MAINDOCUMENT"); - if (binMetadata.length > 0) { - db.updateBinary(binMetadata[0].id, "", bindata, filename, "", "MAINDOCUMENT", SqlUtils.getBinariesAlias()); - LeadImportUtils.loadImportFile(binMetadata[0].id, fieldSep, fieldLimit, recordSep, assignmentRowId, true, vars.get("$param.LeadimportNewFile_param")); + var mimeType = DocumentUtil.getMimeTypeFromUpload(vars.get("$field.bindata")); + if (mimeType == "application/vnd.ms-excel") + { + var binMetadata = db.getBinaryMetadata("LEADIMPORT", "IMPORTFILE", assignmentRowId, false, SqlUtils.getBinariesAlias(), ""); + if (binMetadata.length > 0) { + db.updateBinary(binMetadata[0].id, "", bindata, filename, "", "MAINDOCUMENT", SqlUtils.getBinariesAlias()); + LeadImportUtils.loadImportFile(binMetadata[0].id, fieldSep, fieldLimit, recordSep, assignmentRowId, true, true); + } } } -} -neon.refreshAll(); \ No newline at end of file + neon.refreshAll(); +} diff --git a/process/Leadimport_lib/process.js b/process/Leadimport_lib/process.js index 5ab71fe83c8d233686f66a16d8932dbea69cc527..f5a26ce830c78020f83d6f49043620bcf76fbfc0 100644 --- a/process/Leadimport_lib/process.js +++ b/process/Leadimport_lib/process.js @@ -101,7 +101,7 @@ LeadImportUtils.loadImportFile = function(pBinId, pFieldSep, pFieldLimit, pRecor var data = db.getBinaryContent(pBinId, SqlUtils.getBinariesAlias()); data = util.decodeBase64String(data, "UTF-8"); var table = text.parseCSV(data.replace(/(^\s+)|(\s+$)/g,""), pRecordSep, pFieldSep, pFieldLimit.charAt(0)); - if (pNewFile != "true") + if (pNewFile) { if (pUpdate) { db.deleteData("IMPORTFIELD", newWhere("IMPORTFIELD.LEADIMPORT_ID", pLeadImportId).build()); @@ -112,7 +112,7 @@ LeadImportUtils.loadImportFile = function(pBinId, pFieldSep, pFieldLimit, pRecor insertVals = [util.getNewUUID(), table[0][i], pLeadImportId, vars.getString("$sys.date"), vars.getString("$sys.user"), i.toString()]; toInsert.push([insertTable, insertCols, insertTypes, insertVals]); } - db.inserts(toInsert); + db.inserts(toInsert); } db.deleteData("LEADTEMP", newWhere("LEADTEMP.ROW_ID", pLeadImportId).build());//delete existing temp data