Skip to content
Snippets Groups Projects
Commit f611c629 authored by Sebastian Listl's avatar Sebastian Listl :speech_balloon:
Browse files

1080447 bugfix for add bulkmail recipients action

parent 8052a320
No related merge requests found
Showing
with 93 additions and 76 deletions
......@@ -8,10 +8,6 @@
<entityProvider>
<name>#PROVIDER</name>
</entityProvider>
<entityField>
<name>UID</name>
<state>EDITABLE</state>
</entityField>
<entityField>
<name>recipientCountMessage</name>
<state>EDITABLE</state>
......@@ -39,10 +35,10 @@
<expose v="true" />
</entityParameter>
<entityField>
<name>recipientContactIds</name>
<name>validContactIds</name>
<description>the filtered contactIds (contactIds that are not already in the bulkmail and don't have a commrestriction)</description>
<state>EDITABLE</state>
<valueProcess>%aditoprj%/entity/BulkMailAddRecipients_entity/entityfields/recipientcontactids/valueProcess.js</valueProcess>
<valueProcess>%aditoprj%/entity/BulkMailAddRecipients_entity/entityfields/validcontactids/valueProcess.js</valueProcess>
</entityField>
<entityActionField>
<name>addRecipients</name>
......@@ -52,30 +48,25 @@
<state>DISABLED</state>
<stateProcess>%aditoprj%/entity/BulkMailAddRecipients_entity/entityfields/addrecipients/stateProcess.js</stateProcess>
</entityActionField>
<entityField>
<name>recipientCount</name>
<documentation>%aditoprj%/entity/BulkMailAddRecipients_entity/entityfields/recipientcount/documentation.adoc</documentation>
<state>EDITABLE</state>
<valueProcess>%aditoprj%/entity/BulkMailAddRecipients_entity/entityfields/recipientcount/valueProcess.js</valueProcess>
</entityField>
<entityParameter>
<name>ObjectType_param</name>
<expose v="true" />
</entityParameter>
<entityField>
<name>currentRecipients</name>
<documentation>%aditoprj%/entity/BulkMailAddRecipients_entity/entityfields/currentrecipients/documentation.adoc</documentation>
<name>currentRecipientCount</name>
<documentation>%aditoprj%/entity/BulkMailAddRecipients_entity/entityfields/currentrecipientcount/documentation.adoc</documentation>
<title>Current Recipients</title>
<valueProcess>%aditoprj%/entity/BulkMailAddRecipients_entity/entityfields/currentrecipients/valueProcess.js</valueProcess>
<valueProcess>%aditoprj%/entity/BulkMailAddRecipients_entity/entityfields/currentrecipientcount/valueProcess.js</valueProcess>
</entityField>
<entityField>
<name>notAddedRecipients</name>
<name>notAddedCount</name>
<valueProcess>%aditoprj%/entity/BulkMailAddRecipients_entity/entityfields/notaddedcount/valueProcess.js</valueProcess>
</entityField>
<entityField>
<name>futureRecipients</name>
<documentation>%aditoprj%/entity/BulkMailAddRecipients_entity/entityfields/futurerecipients/documentation.adoc</documentation>
<name>futureRecipientCount</name>
<documentation>%aditoprj%/entity/BulkMailAddRecipients_entity/entityfields/futurerecipientcount/documentation.adoc</documentation>
<title>Recipients after adding</title>
<valueProcess>%aditoprj%/entity/BulkMailAddRecipients_entity/entityfields/futurerecipients/valueProcess.js</valueProcess>
<valueProcess>%aditoprj%/entity/BulkMailAddRecipients_entity/entityfields/futurerecipientcount/valueProcess.js</valueProcess>
</entityField>
<entityProvider>
<name>#PROVIDER_AGGREGATES</name>
......@@ -85,6 +76,10 @@
<name>ContactFilter_param</name>
<expose v="true" />
</entityParameter>
<entityField>
<name>proposedContactIds</name>
<valueProcess>%aditoprj%/entity/BulkMailAddRecipients_entity/entityfields/proposedcontactids/valueProcess.js</valueProcess>
</entityField>
</entityFields>
<recordContainers>
<datalessRecordContainer>
......
import("Bulkmail_lib");
import("system.vars");
var contactIds = JSON.parse(vars.getString("$field.recipientContactIds"));
var contactIds = JSON.parse(vars.getString("$field.validContactIds"));
var bulkMailId = vars.get("$field.BULKMAIL_ID");
BulkMailUtils.addRecipients(bulkMailId, contactIds);
......
import("Util_lib");
import("system.neon");
import("system.result");
import("system.vars");
var count = vars.getString("$field.recipientCount");
if (count == "0" || !count || vars.get("$sys.validationerrors"))
var validContactIds = Utils.parseJSON(vars.get("$field.validContactIds"));
if (Utils.isNullOrEmpty(validContactIds) || vars.get("$sys.validationerrors"))
result.string(neon.COMPONENTSTATE_DISABLED);
else
result.string(neon.COMPONENTSTATE_EDITABLE);
\ No newline at end of file
import("system.result");
import("system.vars");
import("Sql_lib");
var currentCount = new SqlBuilder()
.selectCount()
.from("BULKMAILRECIPIENT")
.whereIfSet("BULKMAILRECIPIENT.BULKMAIL_ID", vars.get("$field.BULKMAIL_ID"))
.cell(true) || "0";
result.string(currentCount);
\ No newline at end of file
import("system.logging");
import("system.result");
import("system.vars");
import("Sql_lib");
var currentCount = newSelect("count(BULKMAILRECIPIENT.CONTACT_ID)")
.from("BULKMAILRECIPIENT")
.where("BULKMAILRECIPIENT.BULKMAIL_ID", vars.get("$field.BULKMAIL_ID"))
.cell()
if(currentCount)
result.string(currentCount)
else
result.string("0")
import("Util_lib");
import("system.vars");
import("system.result");
var currentCount = Number(vars.get("$field.currentRecipientCount"));
var validIds = Utils.parseJSON(vars.get("$field.validContactIds")) || [];
result.string(currentCount + validIds.length);
\ No newline at end of file
import("system.vars");
import("system.result");
import("system.eMath")
var res = eMath.addInt(vars.get("$field.recipientCount"), vars.get("$field.currentRecipients"));
if(res)
result.string(res);
else
result.string(0);
\ No newline at end of file
import("system.result");
import("Util_lib");
import("system.vars");
var proposedIds = Utils.parseJSON(vars.get("$field.proposedContactIds")) || [];
var validIds = Utils.parseJSON(vars.get("$field.validContactIds")) || [];
result.string(proposedIds.length - validIds.length);
\ No newline at end of file
import("Util_lib");
import("system.eMath");
import("FilterViewAction_lib");
import("system.result");
import("Bulkmail_lib");
import("Sql_lib");
import("system.vars");
import("system.neon");
var bulkMailId = vars.get("$field.BULKMAIL_ID");
if (bulkMailId)
{
var contactIds = Utils.parseJSON(vars.get("$param.ContactIds_param"));
var contactFilter = vars.get("$param.ContactFilter_param");
var context = vars.getString("$param.ObjectType_param");
contactIds = FilterViewActionUtils.getUidsBySelectionOrFilter(context, contactIds, contactFilter);
var recipients = BulkMailUtils.filterNewRecipients(bulkMailId, contactIds);
neon.setFieldValue("$field.notAddedRecipients", eMath.subInt(parseInt(contactIds.length), parseInt(recipients.length)));
result.string(JSON.stringify(recipients));
}
else
result.string(null);
\ No newline at end of file
import("Util_lib");
import("FilterViewAction_lib");
import("system.result");
import("system.vars");
var bulkMailId = vars.get("$field.BULKMAIL_ID");
var proposedRecipients = [];
if (bulkMailId)
{
var contactIds = Utils.parseJSON(vars.get("$param.ContactIds_param"));
var contactFilter = vars.get("$param.ContactFilter_param");
var context = vars.getString("$param.ObjectType_param");
proposedRecipients = FilterViewActionUtils.getUidsBySelectionOrFilter(context, contactIds, contactFilter);
}
result.string(JSON.stringify(proposedRecipients));
\ No newline at end of file
This field contains the count of the participants that can be added as string.
A value of null or empty string "" means that the count could not be determined (for example because no bulkmail was chosen).
A value of "0" means that the count could be determined but none of the participants can be added (for example because all selected participants are already in the bulkmail).
For example, a value of "12" means that 12 of the given participants can be added.
This information is needed for disabling the action to proceed and to provide a message for the user.
\ No newline at end of file
import("system.translate");
import("system.result");
import("system.vars");
var res = "";
if (vars.get("$field.recipientContactIds"))
{
res = JSON.parse(vars.getString("$field.recipientContactIds")).length;
}
result.string(res);
\ No newline at end of file
import("Util_lib");
import("system.translate");
import("system.result");
import("system.vars");
var count = vars.get("$field.recipientCount")
var res = "";
var resNotAdded = "\n\
";
if (count && !vars.get("$sys.validationerrors"))
var validIdCount = (Utils.parseJSON(vars.get("$field.validContactIds")) || []).length;
var message = "";
if (!vars.get("$sys.validationerrors"))
{
if (count == "0")
res = translate.text("No new recipients found that can be added to the bulk mail.");
if (validIdCount == 0)
{
message = translate.text("No new recipients found that can be added to the bulk mail.");
}
else
{
res = translate.withArguments("%0 new recipients will be added to the bulk mail.", [count]);
var notAdded = vars.get("$field.notAddedRecipients")
message = translate.withArguments("%0 new recipients will be added to the bulk mail.", [validIdCount]);
var notAdded = vars.get("$field.notAddedCount")
if (notAdded > 0)
resNotAdded += translate.withArguments("%0 of the chosen records are already recipients or don't have an e-mail set", [notAdded]);
{
message += "\n" + translate.withArguments("%0 of the chosen records are already recipients or don't have an e-mail set", [notAdded]);
}
}
}
result.string(res + resNotAdded);
\ No newline at end of file
result.string(message);
\ No newline at end of file
import("Util_lib");
import("system.result");
import("Bulkmail_lib");
import("system.vars");
var bulkMailId = vars.get("$field.BULKMAIL_ID");
var validRecipients = [];
if (bulkMailId)
{
var proposedRecipients = Utils.parseJSON(vars.get("$field.proposedContactIds"));
validRecipients = BulkMailUtils.filterNewRecipients(bulkMailId, proposedRecipients);
}
result.string(JSON.stringify(validRecipients));
\ No newline at end of file
......@@ -18,11 +18,11 @@
<fields>
<entityFieldLink>
<name>1b9e38a5-e921-48f7-ba04-71b758fa9ed3</name>
<entityField>currentRecipients</entityField>
<entityField>currentRecipientCount</entityField>
</entityFieldLink>
<entityFieldLink>
<name>4578042c-9210-4dc4-870f-298a390aebd8</name>
<entityField>futureRecipients</entityField>
<entityField>futureRecipientCount</entityField>
</entityFieldLink>
</fields>
</scoreCardViewTemplate>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment