From 52d5feb9186180da9604071a79b6d27a5391c86b Mon Sep 17 00:00:00 2001 From: "m.escher" <m.escher@adito.de> Date: Tue, 4 Dec 2018 08:43:58 +0100 Subject: [PATCH] RecordContainer fix: Document_entity --- entity/Document_entity/Document_entity.aod | 21 ++++++++++++++ .../recordcontainers/jdito/contentProcess.js | 29 +++++++++++++++++++ .../recordcontainers/jdito/onDelete.js | 2 ++ .../recordcontainers/jdito/onInsert.js | 17 +++++++++++ .../recordcontainers/jdito/onUpdate.js | 22 ++++++++++++++ 5 files changed, 91 insertions(+) create mode 100644 entity/Document_entity/recordcontainers/jdito/contentProcess.js create mode 100644 entity/Document_entity/recordcontainers/jdito/onDelete.js create mode 100644 entity/Document_entity/recordcontainers/jdito/onInsert.js create mode 100644 entity/Document_entity/recordcontainers/jdito/onUpdate.js diff --git a/entity/Document_entity/Document_entity.aod b/entity/Document_entity/Document_entity.aod index 822c4ed01b..bad20a19fa 100644 --- a/entity/Document_entity/Document_entity.aod +++ b/entity/Document_entity/Document_entity.aod @@ -20,6 +20,7 @@ <onInsert>%aditoprj%/entity/Document_entity/onInsert.js</onInsert> <onUpdate>%aditoprj%/entity/Document_entity/onUpdate.js</onUpdate> <onDelete>%aditoprj%/entity/Document_entity/onDelete.js</onDelete> + <recordContainer>jdito</recordContainer> <entityFields> <entityIncomingField> <name>#INCOMING</name> @@ -134,4 +135,24 @@ <fieldName>KEYWORD</fieldName> </entityField> </entityFields> + <recordContainers> + <jDitoRecordContainer> + <name>jdito</name> + <jDitoRecordAlias>_____SYSTEMALIAS</jDitoRecordAlias> + <contentProcess>%aditoprj%/entity/Document_entity/recordcontainers/jdito/contentProcess.js</contentProcess> + <onInsert>%aditoprj%/entity/Document_entity/recordcontainers/jdito/onInsert.js</onInsert> + <onUpdate>%aditoprj%/entity/Document_entity/recordcontainers/jdito/onUpdate.js</onUpdate> + <onDelete>%aditoprj%/entity/Document_entity/recordcontainers/jdito/onDelete.js</onDelete> + <recordFields> + <element>ID.value</element> + <element>NAME.value</element> + <element>SIZE.value</element> + <element>DATE_EDIT.value</element> + <element>PREVIEW_IMAGE.value</element> + <element>TYPE.value</element> + <element>DESCRIPTION.value</element> + <element>KEYWORD.value</element> + </recordFields> + </jDitoRecordContainer> + </recordContainers> </entity> diff --git a/entity/Document_entity/recordcontainers/jdito/contentProcess.js b/entity/Document_entity/recordcontainers/jdito/contentProcess.js new file mode 100644 index 0000000000..c676dbd27c --- /dev/null +++ b/entity/Document_entity/recordcontainers/jdito/contentProcess.js @@ -0,0 +1,29 @@ +import("system.vars"); +import("system.result"); +import("system.db"); + +// Check if assignment parameters are present +if(vars.exists("$param.AssignmentTable_param") && + vars.exists("$param.AssignmentName_param") && + vars.exists("$param.AssignmentRowId_param")) { + var assignmentTable = vars.get("$param.AssignmentTable_param"); + var assignmentName = vars.get("$param.AssignmentName_param"); + var assignmentRowId = vars.get("$param.AssignmentRowId_param"); + var alias = db.getCurrentAlias(); + var documents = []; + + // Check if multiple Documents are selected + if(vars.exists("$local.idvalues") && vars.get("$local.idvalues") != '') + metadata = db.getBinaryMetadataForIds(vars.get("$local.idvalues"), true, alias) + else + metadata = db.getBinaryMetadata(assignmentTable, assignmentName, assignmentRowId, false, alias); + + // Iterate through found binary data and populate result array + for( var i = 0; i < metadata.length; i++) { + documents.push( [metadata[i].id, metadata[i].filename, metadata[i].size, + metadata[i].edit, metadata[i].preview, metadata[i].mimetype, + metadata[i].description, metadata[i].keyword]); + } + + result.object(documents); +} diff --git a/entity/Document_entity/recordcontainers/jdito/onDelete.js b/entity/Document_entity/recordcontainers/jdito/onDelete.js new file mode 100644 index 0000000000..74fe702632 --- /dev/null +++ b/entity/Document_entity/recordcontainers/jdito/onDelete.js @@ -0,0 +1,2 @@ +import("Document_lib"); +DocumentUtil.deleteCurrentDocument(); diff --git a/entity/Document_entity/recordcontainers/jdito/onInsert.js b/entity/Document_entity/recordcontainers/jdito/onInsert.js new file mode 100644 index 0000000000..6ca4ff7fcd --- /dev/null +++ b/entity/Document_entity/recordcontainers/jdito/onInsert.js @@ -0,0 +1,17 @@ +import("system.db"); +import("system.vars"); +import("Document_lib"); + +var assignmentTable = vars.get("$param.AssignmentTable_param"); +var assignmentName = vars.get("$param.AssignmentName_param"); +var assignmentRowId = vars.get("$param.AssignmentRowId_param"); +var bindata = DocumentUtil.getBindataFromUpload(vars.get("$field.BINDATA_UPLOAD")); +var filename = vars.get("$field.NAME"); +var description = vars.get("$field.DESCRIPTION"); +var alias = db.getCurrentAlias(); +var keyword = vars.get("$field.KEYWORD"); + +if(bindata != '' && filename != ''){ + db.insertBinary(assignmentTable, assignmentName, assignmentRowId, "", + bindata, filename, description, keyword, alias); +} diff --git a/entity/Document_entity/recordcontainers/jdito/onUpdate.js b/entity/Document_entity/recordcontainers/jdito/onUpdate.js new file mode 100644 index 0000000000..9a1c27e56d --- /dev/null +++ b/entity/Document_entity/recordcontainers/jdito/onUpdate.js @@ -0,0 +1,22 @@ +import("system.vars"); +import("system.db"); +import("Document_lib"); + +var id = vars.get("$field.ID"); +var parentId = ""; +var fileName = vars.get("$field.NAME"); +var description = vars.get("$field.DESCRIPTION"); +var keyword = vars.get("$field.KEYWORD"); +var alias = db.getCurrentAlias(); + +var bindata = DocumentUtil.getBindataFromUpload(vars.get("$field.BINDATA_UPLOAD")); + +if (bindata == ''){ + bindata = vars.get("$field.BINDATA_UPLOAD") +} + +// Check if bindata is present and execute the corresponding update method +if(bindata != '') + db.updateBinary(id, parentId, bindata, fileName, description, keyword, alias); +else + db.updateBinaryMetadata(id, parentId, fileName, description, keyword, alias); \ No newline at end of file -- GitLab