diff --git a/.liquibase/Data_alias/basic/2021.1.2/changelog.xml b/.liquibase/Data_alias/basic/2021.1.2/changelog.xml index f436574bf0c277174d26d35c7e416962f017c31d..1ecb2edcac6019f8aa5b3d1654ce267fbb908567 100644 --- a/.liquibase/Data_alias/basic/2021.1.2/changelog.xml +++ b/.liquibase/Data_alias/basic/2021.1.2/changelog.xml @@ -1,7 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> <include relativeToChangelogFile="true" file="MailBounce/changelog.xml"/> <include relativeToChangelogFile="true" file="ModularCommunication/changelog.xml"/> <include relativeToChangelogFile="true" file="Bulkmail/changelog.xml"/> diff --git a/.liquibase/Data_alias/basic/2021.1.3/Campaign/alter_CampaignStep.xml b/.liquibase/Data_alias/basic/2021.1.3/Campaign/alter_CampaignStep.xml new file mode 100644 index 0000000000000000000000000000000000000000..6a49a0df0103cab830c0e08068c8847b172e91cc --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.1.3/Campaign/alter_CampaignStep.xml @@ -0,0 +1,7 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="m.groppe" id="5d94c446-88c7-4fb0-81c8-27f50ac89204"> + <dropNotNullConstraint tableName="CAMPAIGNSTEP" columnName="MAXPARTICIPANTS" columnDataType="INTEGER"/> + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2021.1.3/Campaign/changelog.xml b/.liquibase/Data_alias/basic/2021.1.3/Campaign/changelog.xml new file mode 100644 index 0000000000000000000000000000000000000000..f141dea2abfcdbf68200fa6ba3f40a70b6736564 --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.1.3/Campaign/changelog.xml @@ -0,0 +1,6 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <include relativeToChangelogFile="true" file="alter_CampaignStep.xml"/> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2021.1.3/changelog.xml b/.liquibase/Data_alias/basic/2021.1.3/changelog.xml index 985b989b2d949422c14a75d7752a4ab74bdeeda6..873ee73a18365693f428621f488b2483430f5dd7 100644 --- a/.liquibase/Data_alias/basic/2021.1.3/changelog.xml +++ b/.liquibase/Data_alias/basic/2021.1.3/changelog.xml @@ -7,4 +7,5 @@ <include relativeToChangelogFile="true" file="Visitplan/changelog.xml"/> <include relativeToChangelogFile="true" file="alter_dataTypesToDateTime.xml"/> <include relativeToChangelogFile="true" file="Grouptask/changelog.xml"/> + <include relativeToChangelogFile="true" file="Campaign/changelog.xml"/> </databaseChangeLog> \ No newline at end of file diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod index ddd2d828f2905c5456daed5f9346d002fe9a5517..4a8333875ded20750c9c5235a67d3f9ebf956a08 100644 --- a/aliasDefinition/Data_alias/Data_alias.aod +++ b/aliasDefinition/Data_alias/Data_alias.aod @@ -8910,7 +8910,7 @@ <description></description> <auditSyncConfig> <name>auditSyncConfig</name> - <auditMode v="0" /> + <auditMode v="1" /> <syncActive v="false" /> <syncComplete v="true" /> <syncDirection v="1" /> @@ -8942,8 +8942,15 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>Description</title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> </entityFieldDb> <entityFieldDb> <name>EMPLOYEE_CONTACT_ID</name> @@ -9033,8 +9040,15 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>Name</title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> </entityFieldDb> <entityFieldDb> <name>STATUS</name> @@ -9047,8 +9061,20 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>Status</title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + <customStringProperty> + <name>keyword</name> + <global v="false" /> + <property>CampaignManagementStates</property> + </customStringProperty> + </customProperties> </entityFieldDb> <entityFieldDb> <name>CURRENCY</name> @@ -9161,7 +9187,7 @@ <description></description> <auditSyncConfig> <name>auditSyncConfig</name> - <auditMode v="0" /> + <auditMode v="1" /> <syncActive v="false" /> <syncComplete v="true" /> <syncDirection v="1" /> @@ -9181,6 +9207,17 @@ <documentation></documentation> <title></title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + </customBooleanProperty> + <customStringProperty> + <name>tableRef</name> + <global v="false" /> + <property>CAMPAIGN</property> + </customStringProperty> + </customProperties> <dependencies> <entityDependency> <name>490118eb-5bac-4398-b80c-19e1dd2a1935</name> @@ -9242,8 +9279,15 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>Name</title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> </entityFieldDb> <entityFieldDb> <name>DESCRIPTION</name> @@ -9256,8 +9300,15 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>Description</title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> </entityFieldDb> <entityFieldDb> <name>DATE_START</name> @@ -9270,8 +9321,15 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>Begin</title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> </entityFieldDb> <entityFieldDb> <name>EMPLOYEE_CONTACT_ID</name> @@ -9347,8 +9405,15 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>Participants</title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> </entityFieldDb> <entityFieldDb> <name>DATE_END</name> @@ -9361,8 +9426,15 @@ <isUnique v="false" /> <index v="false" /> <documentation></documentation> - <title></title> + <title>End</title> <description></description> + <customProperties> + <customBooleanProperty> + <name>log</name> + <global v="false" /> + <property v="true" /> + </customBooleanProperty> + </customProperties> </entityFieldDb> <entityFieldDb> <name>PREDECESSORSTEP_ID</name> diff --git a/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod b/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod index e5ae1e8b20b8b85c004294d617ff9b6b374738a7..d636f153290453865383ccd8b3bbba015d8ae3c1 100644 --- a/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod +++ b/entity/BulkMailRecipient_entity/BulkMailRecipient_entity.aod @@ -110,7 +110,7 @@ <children> <entityActionField> <name>removeWithCommRestriction</name> - <title>Remove recipients with communication rejection</title> + <title>Remove recipients with advertising appeal</title> <onActionProcess>%aditoprj%/entity/BulkMailRecipient_entity/entityfields/recipientactions/children/removewithcommrestriction/onActionProcess.js</onActionProcess> <isObjectAction v="false" /> <iconId>VAADIN:BAN</iconId> diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaignstep_id/onValidation.js b/entity/CampaignAddParticipants_entity/entityfields/campaignstep_id/onValidation.js index 9767998d73621627977f7032ebf94d92f3ac544e..578861f66eecbc88f37c98a43f593ff49d0ea89f 100644 --- a/entity/CampaignAddParticipants_entity/entityfields/campaignstep_id/onValidation.js +++ b/entity/CampaignAddParticipants_entity/entityfields/campaignstep_id/onValidation.js @@ -12,10 +12,18 @@ var isUpdate = Utils.toBoolean(vars.get("$param.isUpdate_param")); if (vars.get("$field.CAMPAIGN_ID")){ var currentCount = parseInt(CampaignUtils.getParticipantCountForStep(vars.get("$field.CAMPAIGNSTEP_ID"),vars.get("$field.CAMPAIGN_ID"))); - if ( (validCount+currentCount) > maxCount) + if ( (validCount+currentCount) > maxCount && maxCount != 0) result.string(translate.text("Not enough room in campaignstep")); - if (validCount == 0 && isUpdate){ + if (validCount == 0 && isUpdate) + { result.string(translate.text("All of the chosen records are already in the campaignstep")); } + + var endDate = CampaignUtils.getEndDateForStep(vars.get("$field.CAMPAIGNSTEP_ID")); + if (endDate < vars.get("$sys.date")) + { + result.string(translate.text("Campaignstep has already ended")); + } + } \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/CampaignParticipant_entity.aod b/entity/CampaignParticipant_entity/CampaignParticipant_entity.aod index a886027212db89216b6f4be30daaa9d6004b6ee6..3e9c54236492f7f5ed48597477c420151b7f73b5 100644 --- a/entity/CampaignParticipant_entity/CampaignParticipant_entity.aod +++ b/entity/CampaignParticipant_entity/CampaignParticipant_entity.aod @@ -82,6 +82,7 @@ <element>PROCESS</element> <element>PROCESS_SETVALUE</element> </onValueChangeTypes> + <onValidation>%aditoprj%/entity/CampaignParticipant_entity/entityfields/campaignstep_id/onValidation.js</onValidation> </entityField> <entityConsumer> <name>CampaignsConsumer</name> @@ -192,6 +193,7 @@ <entityField> <name>campaignStepCurrentParticipantCount</name> <title>Current participants</title> + <valueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/campaignstepcurrentparticipantcount/valueProcess.js</valueProcess> <displayValueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/campaignstepcurrentparticipantcount/displayValueProcess.js</displayValueProcess> </entityField> <entityField> diff --git a/entity/CampaignParticipant_entity/entityfields/campaignstep_id/onValidation.js b/entity/CampaignParticipant_entity/entityfields/campaignstep_id/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..8b5ccc8e85add1d2f78f2a12009b33665cec89fa --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/campaignstep_id/onValidation.js @@ -0,0 +1,27 @@ +import("Campaign_lib"); +import("system.translate"); +import("system.result"); +import("system.vars"); +import("Sql_lib"); + +var currentCount = Number(vars.get("$field.campaignStepCurrentParticipantCount")); +var maxCount = Number(vars.get("$field.campaignStepMaxParticipantCount")); +var selectedCampaignStep = vars.get("local.value"); + +var currentCampaignStep = newSelect("CAMPAIGNPARTICIPANT.CAMPAIGNSTEP_ID") +.from("CAMPAIGNPARTICIPANT") +.where("CAMPAIGNPARTICIPANT.CONTACT_ID","$field.CONTACT_ID") +.and("CAMPAIGNPARTICIPANT.CAMPAIGN_ID","$field.CAMPAIGN_ID") +.cell(); + +if (currentCampaignStep == selectedCampaignStep) + currentCount--; + +if (currentCount >= maxCount && maxCount != 0) + result.string(translate.text("Not enough room in campaignstep")); + +var endDate = CampaignUtils.getEndDateForStep(selectedCampaignStep); +if (endDate < vars.get("$sys.date")) +{ + result.string(translate.text("Campaignstep has already ended")); +} \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaignstepcurrentparticipantcount/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/campaignstepcurrentparticipantcount/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..ac08f7599eb528b626545f80f9e92bfaff923ff2 --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/campaignstepcurrentparticipantcount/valueProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + +result.string(CampaignUtils.getParticipantCountForStep(vars.get("$field.CAMPAIGNSTEP_ID"), vars.get("$field.CAMPAIGN_ID"))); \ No newline at end of file diff --git a/entity/CampaignPlanning_entity/CampaignPlanning_entity.aod b/entity/CampaignPlanning_entity/CampaignPlanning_entity.aod index f57caf923755ee9f23d9dfe735b109cc4ff6366d..b283987f668e733c3f9fe6c9e3be12566b966889 100644 --- a/entity/CampaignPlanning_entity/CampaignPlanning_entity.aod +++ b/entity/CampaignPlanning_entity/CampaignPlanning_entity.aod @@ -8,6 +8,7 @@ <element>Campaign_entity</element> <element>CampaignStep_entity</element> </siblings> + <initFilterProcess>%aditoprj%/entity/CampaignPlanning_entity/initFilterProcess.js</initFilterProcess> <iconId>NEON:GROUP_APPOINTMENT</iconId> <usePermissions v="false" /> <recordContainer>jditoRecordContainer</recordContainer> @@ -63,6 +64,11 @@ <iconId>NEON:GROUP_APPOINTMENT</iconId> <tooltipProcess>%aditoprj%/entity/CampaignPlanning_entity/entityfields/newganttentries/children/createnewcampaignstep_action/tooltipProcess.js</tooltipProcess> </entityActionField> + <entityActionField> + <name>testfilter</name> + <title>testfilter</title> + <onActionProcess>%aditoprj%/entity/CampaignPlanning_entity/entityfields/newganttentries/children/testfilter/onActionProcess.js</onActionProcess> + </entityActionField> </children> </entityActionGroup> <entityField> @@ -99,6 +105,9 @@ <name>#PROVIDER_AGGREGATES</name> <useAggregates v="true" /> </entityProvider> + <entityField> + <name>test</name> + </entityField> </entityFields> <recordContainers> <jDitoRecordContainer> @@ -143,6 +152,9 @@ <name>CAMPAIGN_STATUS.value</name> <isFilterable v="true" /> </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>test.value</name> + </jDitoRecordFieldMapping> </recordFieldMappings> </jDitoRecordContainer> </recordContainers> diff --git a/entity/CampaignPlanning_entity/entityfields/newganttentries/children/testfilter/onActionProcess.js b/entity/CampaignPlanning_entity/entityfields/newganttentries/children/testfilter/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..0179cd4c1c9cb1b5f50e0fbf86883aa758a85bbd --- /dev/null +++ b/entity/CampaignPlanning_entity/entityfields/newganttentries/children/testfilter/onActionProcess.js @@ -0,0 +1,3 @@ +import("system.vars"); +import("system.logging"); +logging.log(JSON.stringify(vars.get("$sys.filter"))); \ No newline at end of file diff --git a/entity/CampaignPlanning_entity/initFilterProcess.js b/entity/CampaignPlanning_entity/initFilterProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..7e2f9702cf230d3282a97c186e33a49db5923303 --- /dev/null +++ b/entity/CampaignPlanning_entity/initFilterProcess.js @@ -0,0 +1,22 @@ +import("system.translate"); +import("system.neon"); +import("system.vars"); +import("system.result"); + + +if(vars.get("$sys.presentationmode") === neon.CONTEXT_PRESENTATIONMODE_FILTER) +{ + var filter = JSON.stringify({ + type: "group", + operator: "AND", + childs: [{ + type: "row", + name: "DATE_START", + operator: "TIMEFRAME_EQUAL", + contenttype: "DATE", + key: "REL=ADJUSTED;UNIT=YEAR", + value: translate.text("This year") + }] + }); + result.string(filter); +} \ No newline at end of file diff --git a/entity/CampaignPlanning_entity/recordcontainers/jditorecordcontainer/contentProcess.js b/entity/CampaignPlanning_entity/recordcontainers/jditorecordcontainer/contentProcess.js index 53985b5cc50a47402b9df28330a3f2623c768f39..fbed65e393038e9bede001e59197d91225f6af42 100644 --- a/entity/CampaignPlanning_entity/recordcontainers/jditorecordcontainer/contentProcess.js +++ b/entity/CampaignPlanning_entity/recordcontainers/jditorecordcontainer/contentProcess.js @@ -6,6 +6,7 @@ import("system.result"); import("system.vars"); import("Sql_lib"); import("Campaign_lib"); +import("system.neon"); var stepCondition = JditoFilterUtils.getSqlCondition(vars.get("local.filter").filter, "CAMPAIGNSTEP", null, { "CAMPAIGN_STATUS" : "CAMPAIGN.STATUS", @@ -51,11 +52,11 @@ if(!vars.get("$local.idvalues")) { let startDate = CampaignUtils.getCampaignStartDate(campaignId); let endDate = CampaignUtils.getCampaignEndDate(campaignId); - campaignRows[campaignId] = [campaignId, campaignName, null, null, startDate, endDate, campaignId, TARGET_CONTEXT_ROOT_ELEMENT, campaignStatus]; + campaignRows[campaignId] = [campaignId, campaignName, null, null, startDate, endDate, campaignId, TARGET_CONTEXT_ROOT_ELEMENT, campaignStatus, neon.BRAND_COLOR]; } stepIds[stepId] = true; - return [stepId, stepName, predecessorId || campaignId, desc, stepStartDate, stepEndDate, campaignId, TARGET_CONTEXT_ELEMENT, campaignStatus]; + return [stepId, stepName, predecessorId || campaignId, desc, stepStartDate, stepEndDate, campaignId, TARGET_CONTEXT_ELEMENT, campaignStatus, neon.USER_COLOR_1]; }); //replace all predecessor ids that are not in the tree with the campaign id diff --git a/entity/CampaignStep_entity/CampaignStep_entity.aod b/entity/CampaignStep_entity/CampaignStep_entity.aod index 3e6431a73b8603709e2058f5edf0921f2bd4b35e..95dc636ca79da9c1b89e11d4f57a6239f3046284 100644 --- a/entity/CampaignStep_entity/CampaignStep_entity.aod +++ b/entity/CampaignStep_entity/CampaignStep_entity.aod @@ -149,7 +149,6 @@ <name>MAXPARTICIPANTS</name> <title>Max participants</title> <contentType>NUMBER</contentType> - <mandatory v="true" /> <onValidation>%aditoprj%/entity/CampaignStep_entity/entityfields/maxparticipants/onValidation.js</onValidation> </entityField> <entityConsumer> diff --git a/entity/CampaignStep_entity/recordcontainers/db/onDBDelete.js b/entity/CampaignStep_entity/recordcontainers/db/onDBDelete.js index c851ee9b66d5efaa3ee2e62cdfff1beb6e4402e2..ff4aac1c232e73a8fe360771286c3cc937e83973 100644 --- a/entity/CampaignStep_entity/recordcontainers/db/onDBDelete.js +++ b/entity/CampaignStep_entity/recordcontainers/db/onDBDelete.js @@ -8,6 +8,7 @@ newSelect("CAMPAIGNSTEP.CAMPAIGNSTEPID") .from("CAMPAIGNSTEP") .where("CAMPAIGNSTEP.CAMPAIGN_ID",vars.get("$field.CAMPAIGN_ID")) .and("CAMPAIGNSTEP.SORTING",vars.get("$field.SORTING"),SqlBuilder.GREATER_OR_EQUAL()) +.and("CAMPAIGNSTEP.CAMPAIGNSTEPID","$field.CAMPAIGNSTEPID",SqlBuilder.NOT_EQUAL()) .orderBy("CAMPAIGNSTEP.SORTING asc") .arrayColumn() .forEach(function(pCampaignStepId) @@ -16,6 +17,6 @@ newSelect("CAMPAIGNSTEP.CAMPAIGNSTEPID") }); newWhere("CAMPAIGNSTEP.PREDECESSORSTEP_ID",vars.get("$field.CAMPAIGNSTEPID")) -.updateFields({"CAMPAIGNSTEP.PREDECESSORSTEP_ID":null}); +.updateFields({"PREDECESSORSTEP_ID":null}); WorkflowSignalSender.deleted(); \ No newline at end of file diff --git a/entity/Campaign_entity/Campaign_entity.aod b/entity/Campaign_entity/Campaign_entity.aod index 9d93c7d23d90afe6e57227857ea04fe64cb86b9e..6754197563ae4550c183bf64ab114835d86b1c75 100644 --- a/entity/Campaign_entity/Campaign_entity.aod +++ b/entity/Campaign_entity/Campaign_entity.aod @@ -613,6 +613,20 @@ <stateProcess>%aditoprj%/entity/Campaign_entity/entityfields/copyparticipants/stateProcess.js</stateProcess> <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/copyparticipants/valueProcess.js</valueProcess> </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/Campaign_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> <entityParameter> <name>OnlyActive_param</name> <expose v="true" /> diff --git a/entity/Campaign_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js b/entity/Campaign_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..4e4ee5a48fe63d6e39e565bed437233b15e52b91 --- /dev/null +++ b/entity/Campaign_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js @@ -0,0 +1,10 @@ +import("system.vars"); +import("system.result"); +import("Context_lib"); + +var res = []; +res.push({id: vars.get("$field.CAMPAIGNID"), tableNames: ["CAMPAIGNSTEP"]}); +res.push({id: vars.get("$field.CAMPAIGNID"), tableNames: ["CAMPAIGN"]}); + +res = JSON.stringify(res);//currently only strings can be passed as param +result.object(res); \ No newline at end of file diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod index c264c38136ff20bf92b32cd0e3136e572d33fbc7..cbddf7d6d2aec500ca25b82f6e9ec27c814c7f29 100644 --- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod +++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod @@ -9517,6 +9517,9 @@ <entry> <key>Open Turnover</key> </entry> + <entry> + <key>Campaignstep has already ended</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> <sqlModels> diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod index d6a269f2609d2fe323f115932a5b719c6a9d5b1b..b5ef0f8efa7fcb8417f59c5a7cab5fcf3e4eb5ad 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -18,6 +18,10 @@ <key>Ace Archive</key> <value>Ace Archiv</value> </entry> + <entry> + <key>This year</key> + <value>Dieses Jahr</value> + </entry> <entry> <key>Event End</key> <value>Veranstaltungs Ende</value> @@ -54,6 +58,10 @@ <key>decrease priority</key> <value>Priorität verringern</value> </entry> + <entry> + <key>Campaignstep has already ended</key> + <value>Zeitraum der Kampagnenstufe ist bereits vorbei</value> + </entry> <entry> <key>Click rate (in \%)</key> <value>Klickrate in Prozent</value> @@ -120,7 +128,7 @@ </entry> <entry> <key>Move down</key> - <value>Nach unten verschieben</value> + <value>Nach unten verschieben</value> </entry> <entry> <key>Value is too big, the maximum is %0</key> @@ -691,8 +699,8 @@ <value>Weitere Versionen</value> </entry> <entry> - <key>Remove recipients with communication rejection</key> - <value>Empfänger mit Werbeablehnung entfernen</value> + <key>Remove recipients with advertising appeal</key> + <value>Empfänger mit Werbewiderspruch entfernen</value> </entry> <entry> <key>Company group</key> diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod index 1f456fce27cf983b0e2726505ff368a703ee0c70..a757ce01763c1a53a7a17f56f827d03c9fc4f900 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -9632,6 +9632,9 @@ <entry> <key>Open Turnover</key> </entry> + <entry> + <key>Campaignstep has already ended</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/neonView/CampaignMain_view/CampaignMain_view.aod b/neonView/CampaignMain_view/CampaignMain_view.aod index 812508aa6ea4d0e13af4d1ee20398863fa870c88..92569fb8314d5657f076055c0627d1f9b1b340a3 100644 --- a/neonView/CampaignMain_view/CampaignMain_view.aod +++ b/neonView/CampaignMain_view/CampaignMain_view.aod @@ -46,6 +46,11 @@ <entityField>Activities</entityField> <view>ActivityFilter_view</view> </neonViewReference> + <neonViewReference> + <name>73099aeb-2159-48e4-95e0-d046bf303c35</name> + <entityField>Tasks</entityField> + <view>TaskFilter_view</view> + </neonViewReference> <neonViewReference> <name>3b87a113-aa39-4d20-8902-ad2a9f6aba5f</name> <entityField>Documents</entityField> @@ -56,5 +61,10 @@ <entityField>AttributeTree</entityField> <view>AttributeRelationTree_view</view> </neonViewReference> + <neonViewReference> + <name>2221b2e7-a689-48ab-a933-782749d05255</name> + <entityField>LogHistories</entityField> + <view>LogHistoryFilter_view</view> + </neonViewReference> </children> </neonView> diff --git a/neonView/CampaignPlanning_view/CampaignPlanning_view.aod b/neonView/CampaignPlanning_view/CampaignPlanning_view.aod index 48b886b92c0f8ab819e76bb8757cbc3012d98bb4..c67676c9e8cd79f474646bb37fba81212ac9e72e 100644 --- a/neonView/CampaignPlanning_view/CampaignPlanning_view.aod +++ b/neonView/CampaignPlanning_view/CampaignPlanning_view.aod @@ -12,17 +12,19 @@ <children> <ganttViewTemplate> <name>AllCampaignsOverviewGantt</name> - <groupByRootElements v="true" /> + <groupByRootElements v="false" /> + <hideArrows v="true" /> <uidField>UID</uidField> <titleField>NAME</titleField> <descriptionField>STEP_DESCRIPTION</descriptionField> <beginDateField>DATE_START</beginDateField> <endDateField>DATE_END</endDateField> <predecessorIdField>PREDECESSOR_STEP_ID</predecessorIdField> + <stepColorField>test</stepColorField> <entityField>#ENTITY</entityField> <favoriteActionGroup2>NewGanttEntries</favoriteActionGroup2> <isDeletable v="true" /> - <isEditable v="true" /> + <isEditable v="false" /> <columns> <neonTableColumn> <name>788b50db-d87e-4c6e-ab3c-d28b32a2f729</name> diff --git a/process/Campaign_lib/process.js b/process/Campaign_lib/process.js index aa9f551d99de8e64b391f5cc685801ffc932b480..73c7e894f26bfb822e0a692228ee61865e91d167 100644 --- a/process/Campaign_lib/process.js +++ b/process/Campaign_lib/process.js @@ -107,6 +107,20 @@ CampaignUtils.getParticipantCount = function(pCampaignId) .cell(true, 0); } +/** + * The end date value for the given campaignstep.<br> + * + * @return <p> + * The end date for the campaignstep + */ +CampaignUtils.getEndDateForStep = function(pCampaignStepId) +{ + return newSelect("DATE_END") + .from("CAMPAIGNSTEP") + .whereIfSet("CAMPAIGNSTEP.CAMPAIGNSTEPID", pCampaignStepId) + .cell(true); +} + /** * The max participants value for the given campaignstep.<br> * @@ -293,10 +307,9 @@ CampaignUtils.getDefaultCampaignStep = function(pCampaignId) */ CampaignUtils.getCampaignStartDate = function(pCampaignId) { - return newSelect("DATE_START") + return newSelect("min(DATE_START)") .from("CAMPAIGNSTEP") .whereIfSet("CAMPAIGNSTEP.CAMPAIGN_ID", pCampaignId) - .orderBy("SORTING ASC") .cell(true); } @@ -311,10 +324,9 @@ CampaignUtils.getCampaignStartDate = function(pCampaignId) */ CampaignUtils.getCampaignEndDate = function(pCampaignId) { - return newSelect("DATE_END") + return newSelect("max(DATE_END)") .from("CAMPAIGNSTEP") .whereIfSet("CAMPAIGNSTEP.CAMPAIGN_ID", pCampaignId) - .orderBy("SORTING DESC") .cell(true); }