diff --git a/entity/Activity_entity/recordcontainers/db/onDBDelete.js b/entity/Activity_entity/recordcontainers/db/onDBDelete.js index 92347de26dd3d24f423e5b004237fdae89332c54..0ca888563415519b6b2287c7de07896d25d709f8 100644 --- a/entity/Activity_entity/recordcontainers/db/onDBDelete.js +++ b/entity/Activity_entity/recordcontainers/db/onDBDelete.js @@ -1,9 +1,12 @@ +import("Document_lib"); import("Workflow_lib"); import("Context_lib"); import("system.vars"); import("Sql_lib"); import("Attribute_lib"); +DocumentUtil.deleteAllUploadedImages("INFO_IMAGE_UPLOAD"); + newWhere("ACTIVITYLINK.ACTIVITY_ID", "$field.ACTIVITYID").deleteData(); new AttributeRelationQuery(vars.get("$field.ACTIVITYID"), null, ContextUtils.getCurrentContextId()) diff --git a/entity/BulkMail_entity/recordcontainers/db/onDBDelete.js b/entity/BulkMail_entity/recordcontainers/db/onDBDelete.js index 69fbfd853d241f4d4350edb4243837c849bbd16a..aaa02ff8073f59cb12e50e314b8e88b7a39f79cd 100644 --- a/entity/BulkMail_entity/recordcontainers/db/onDBDelete.js +++ b/entity/BulkMail_entity/recordcontainers/db/onDBDelete.js @@ -1,8 +1,12 @@ +import("Document_lib"); +import("Context_lib"); import("Workflow_lib"); import("system.vars"); import("Binary_lib"); import("Sql_lib"); +DocumentUtil.deleteAllUploadedImages("content_IMAGE_UPLOAD"); + newWhere("BULKMAILRECIPIENT.BULKMAIL_ID", "$local.uid").deleteData(); SingleBinaryUtils.remove("BULKMAIL", "DOCUMENT", vars.get("$local.uid")); diff --git a/entity/DocumentTemplate_entity/recordcontainers/db/onDBDelete.js b/entity/DocumentTemplate_entity/recordcontainers/db/onDBDelete.js index e59e3a882a1511e371559c50a02ae6869b5d3e21..e462cebdbd5ea7a1e9c4e762e6c837302c2b4503 100644 --- a/entity/DocumentTemplate_entity/recordcontainers/db/onDBDelete.js +++ b/entity/DocumentTemplate_entity/recordcontainers/db/onDBDelete.js @@ -5,12 +5,15 @@ import("system.vars"); import("system.db"); import("Attribute_lib"); -var binaryId = newSelect("ID", SqlUtils.getBinariesAlias()) +var binaryIds = newSelect("ID", SqlUtils.getBinariesAlias()) .from("ASYS_BINARIES") .where("ASYS_BINARIES.ROW_ID", "$field.DOCUMENTTEMPLATEID") - .cell(); -if (binaryId) - db.deleteBinary(binaryId, SqlUtils.getBinariesAlias()); + .arrayColumn(); + +binaryIds.forEach(function(pIds) +{ //delete the connected binData + db.deleteBinary(pIds, SqlUtils.getBinariesAlias()); +}); new AttributeRelationQuery(vars.get("$field.DOCUMENTTEMPLATEID"), null, ContextUtils.getCurrentContextId()) .deleteAllAttributes(); diff --git a/entity/KnowledgeManagement_entity/KnowledgeManagement_entity.aod b/entity/KnowledgeManagement_entity/KnowledgeManagement_entity.aod index 4cc143f137158ab3bc3da5e2940ffca3b264e299..515e42af17febbd4d13609e2a22f09130c244ea4 100644 --- a/entity/KnowledgeManagement_entity/KnowledgeManagement_entity.aod +++ b/entity/KnowledgeManagement_entity/KnowledgeManagement_entity.aod @@ -102,32 +102,32 @@ <refreshParent v="true" /> <state>EDITABLE</state> <onValidation>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/tagsbyknowledgeid/onValidation.js</onValidation> + <dependency> + <name>dependency</name> + <entityName>KnowledgeManagementTags_entity</entityName> + <fieldName>ByKnowledgeManagementId</fieldName> + </dependency> <children> <entityParameter> <name>KnowledgeManagementId_param</name> <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/tagsbyknowledgeid/children/knowledgemanagementid_param/valueProcess.js</valueProcess> </entityParameter> </children> - <dependency> - <name>dependency</name> - <entityName>KnowledgeManagementTags_entity</entityName> - <fieldName>ByKnowledgeManagementId</fieldName> - </dependency> </entityConsumer> <entityConsumer> <name>DiscussionsByKnowledgeId</name> <refreshParent v="true" /> + <dependency> + <name>dependency</name> + <entityName>KnowledgeDiscussion_entity</entityName> + <fieldName>ByKnowledgeId</fieldName> + </dependency> <children> <entityParameter> <name>KnowledgeId_param</name> <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/discussionsbyknowledgeid/children/knowledgeid_param/valueProcess.js</valueProcess> </entityParameter> </children> - <dependency> - <name>dependency</name> - <entityName>KnowledgeDiscussion_entity</entityName> - <fieldName>ByKnowledgeId</fieldName> - </dependency> </entityConsumer> <entityProvider> <name>Provider</name> @@ -151,37 +151,42 @@ </entityConsumer> <entityConsumer> <name>KeywordKnowledgeType</name> + <dependency> + <name>dependency</name> + <entityName>KeywordEntry_entity</entityName> + <fieldName>SpecificContainerKeywords</fieldName> + </dependency> <children> <entityParameter> <name>ContainerName_param</name> <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/keywordknowledgetype/children/containername_param/valueProcess.js</valueProcess> </entityParameter> </children> + </entityConsumer> + <entityConsumer> + <name>KeywordPublish</name> <dependency> <name>dependency</name> <entityName>KeywordEntry_entity</entityName> <fieldName>SpecificContainerKeywords</fieldName> </dependency> - </entityConsumer> - <entityConsumer> - <name>KeywordPublish</name> <children> <entityParameter> <name>ContainerName_param</name> <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/keywordpublish/children/containername_param/valueProcess.js</valueProcess> </entityParameter> </children> - <dependency> - <name>dependency</name> - <entityName>KeywordEntry_entity</entityName> - <fieldName>SpecificContainerKeywords</fieldName> - </dependency> </entityConsumer> <entityField> <name>indexTag</name> </entityField> <entityConsumer> <name>LinkedDocuments</name> + <dependency> + <name>dependency</name> + <entityName>Document_entity</entityName> + <fieldName>Documents</fieldName> + </dependency> <children> <entityParameter> <name>AssignmentTable_param</name> @@ -192,11 +197,6 @@ <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/linkeddocuments/children/assignmentrowid_param/valueProcess.js</valueProcess> </entityParameter> </children> - <dependency> - <name>dependency</name> - <entityName>Document_entity</entityName> - <fieldName>Documents</fieldName> - </dependency> </entityConsumer> <entityActionField> <name>openEntryAsMail</name> @@ -210,17 +210,17 @@ <entityConsumer> <name>LinksByKnowledgeId</name> <refreshParent v="true" /> + <dependency> + <name>dependency</name> + <entityName>KnowledgeLink_entity</entityName> + <fieldName>ByKnowledgeId</fieldName> + </dependency> <children> <entityParameter> <name>KnowledgeManagementId_param</name> <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/linksbyknowledgeid/children/knowledgemanagementid_param/valueProcess.js</valueProcess> </entityParameter> </children> - <dependency> - <name>dependency</name> - <entityName>KnowledgeLink_entity</entityName> - <fieldName>ByKnowledgeId</fieldName> - </dependency> </entityConsumer> <entityField> <name>LastChange</name> @@ -229,17 +229,17 @@ </entityField> <entityConsumer> <name>LogHistories</name> + <dependency> + <name>dependency</name> + <entityName>LogHistory_entity</entityName> + <fieldName>LogHistoryProvider</fieldName> + </dependency> <children> <entityParameter> <name>tablenames_param</name> <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess> </entityParameter> </children> - <dependency> - <name>dependency</name> - <entityName>LogHistory_entity</entityName> - <fieldName>LogHistoryProvider</fieldName> - </dependency> </entityConsumer> <entityActionField> <name>exportHTML_action</name> @@ -281,6 +281,11 @@ <name>KnowledgeRoles</name> <stateProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/knowledgeroles/stateProcess.js</stateProcess> <onValidation>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/knowledgeroles/onValidation.js</onValidation> + <dependency> + <name>dependency</name> + <entityName>KnowledgeRole_entity</entityName> + <fieldName>KnowledgeRole</fieldName> + </dependency> <children> <entityParameter> <name>KnowledgeManagement_param</name> @@ -292,14 +297,14 @@ <expose v="true" /> </entityParameter> </children> - <dependency> - <name>dependency</name> - <entityName>KnowledgeRole_entity</entityName> - <fieldName>KnowledgeRole</fieldName> - </dependency> </entityConsumer> <entityConsumer> <name>Tasks</name> + <dependency> + <name>dependency</name> + <entityName>Task_entity</entityName> + <fieldName>Tasks</fieldName> + </dependency> <children> <entityParameter> <name>ObjectId_param</name> @@ -314,11 +319,6 @@ <valueProcess>%aditoprj%/entity/KnowledgeManagement_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js</valueProcess> </entityParameter> </children> - <dependency> - <name>dependency</name> - <entityName>Task_entity</entityName> - <fieldName>Tasks</fieldName> - </dependency> </entityConsumer> <entityField> <name>RESPONSIBLE_CONTACT_ID</name> @@ -353,6 +353,7 @@ <orderClauseProcess>%aditoprj%/entity/KnowledgeManagement_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess> <onDBInsert>%aditoprj%/entity/KnowledgeManagement_entity/recordcontainers/db/onDBInsert.js</onDBInsert> <onDBUpdate>%aditoprj%/entity/KnowledgeManagement_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate> + <onDBDelete>%aditoprj%/entity/KnowledgeManagement_entity/recordcontainers/db/onDBDelete.js</onDBDelete> <alias>Data_alias</alias> <recordFieldMappings> <dbRecordFieldMapping> diff --git a/entity/KnowledgeManagement_entity/recordcontainers/db/onDBDelete.js b/entity/KnowledgeManagement_entity/recordcontainers/db/onDBDelete.js new file mode 100644 index 0000000000000000000000000000000000000000..2a22a7d643f73469bf2c7b64e3a770c378cb0bae --- /dev/null +++ b/entity/KnowledgeManagement_entity/recordcontainers/db/onDBDelete.js @@ -0,0 +1,3 @@ +import("Document_lib"); + +DocumentUtil.deleteAllUploadedImages("CONTENT_IMAGE_UPLOAD"); \ No newline at end of file diff --git a/process/Document_lib/process.js b/process/Document_lib/process.js index ee264f730e597f0c4b8c305e11ad71a32d49e0f4..bf9a2ba925aded0949cd372c045c5c343e44673f 100644 --- a/process/Document_lib/process.js +++ b/process/Document_lib/process.js @@ -1,3 +1,4 @@ +import("Context_lib"); import("system.util"); import("system.translate"); import("system.result"); @@ -34,7 +35,9 @@ DocumentUtil.downloadSelectedDocuments = function(pAssignmentName) { // check if multiplie Files are selected. // files get packed into a zip archive before downloading if(binaryContents.length > 1) { - var fileNames = rows.map(function(value) { return value["NAME"]; }); + var fileNames = rows.map(function(value) { + return value["NAME"]; + }); neon.downloadToZip(translate.text("Files") + ".zip", binaryContents, fileNames); } else if(pAssignmentName == "ERRORLOG") @@ -101,6 +104,23 @@ DocumentUtil.deleteCurrentDocument = function() { } } +/** + * Utility function to delete all Uploaded Images of the current Context and uid. + * + * @param {String} pAssignmentName the name of the field of the HTML component + "_IMAGE_UPLOAD" + */ +DocumentUtil.deleteAllUploadedImages = function(pAssignmentName) { + // If the bin data is saved by the html-component, the tablename is the name of the entity! + var binMetadata = db.getBinaryMetadata(ContextUtils.getEntity(ContextUtils.getCurrentContextId()), pAssignmentName, vars.get("$sys.uid"), false, SqlUtils.getBinariesAlias()); + + + binMetadata.forEach(function(pMeta) + { //delete the connected binData + db.deleteBinary(pMeta.id, SqlUtils.getBinariesAlias()); + }); + +} + /** * Utility function to retrieve the filename from an uploadcomponent value. * The value of an uploadcomponent contains filename + filedata separated by