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

Merge branch 'marketing_2002255_small_changes' into '2021.2.2'

Marketing 2002255 small changes

See merge request xrm/basic!1516
parents 531e6d76 97a28cb8
No related branches found
No related tags found
No related merge requests found
Showing
with 90 additions and 48 deletions
......@@ -17,7 +17,7 @@
<column name="CONTAINER" value="MosaicoColor"/>
<column name="SORTING" valueNumeric="1"/>
<column name="ISACTIVE" valueNumeric="1"/>
<column name="ISESSENTIAL" valueNumeric="1"/>
<column name="ISESSENTIAL" valueNumeric="0"/>
</insert>
<insert tableName="AB_KEYWORD_ENTRY">
<column name="AB_KEYWORD_ENTRYID" value="6f3b9635-679c-47b4-9fe3-0770aaca719c"/>
......@@ -27,7 +27,7 @@
<column name="CONTAINER" value="MosaicoColor"/>
<column name="SORTING" valueNumeric="2"/>
<column name="ISACTIVE" valueNumeric="1"/>
<column name="ISESSENTIAL" valueNumeric="1"/>
<column name="ISESSENTIAL" valueNumeric="0"/>
</insert>
<insert tableName="AB_KEYWORD_ENTRY">
<column name="AB_KEYWORD_ENTRYID" value="b9ce199e-a4e1-4b48-ba61-85ee6139b89c"/>
......@@ -37,7 +37,7 @@
<column name="CONTAINER" value="MosaicoColor"/>
<column name="SORTING" valueNumeric="3"/>
<column name="ISACTIVE" valueNumeric="1"/>
<column name="ISESSENTIAL" valueNumeric="1"/>
<column name="ISESSENTIAL" valueNumeric="0"/>
</insert>
<insert tableName="AB_KEYWORD_ENTRY">
<column name="AB_KEYWORD_ENTRYID" value="09f299f7-9faa-40c4-a53d-e7b5c33dca53"/>
......@@ -47,7 +47,17 @@
<column name="CONTAINER" value="MosaicoColor"/>
<column name="SORTING" valueNumeric="4"/>
<column name="ISACTIVE" valueNumeric="1"/>
<column name="ISESSENTIAL" valueNumeric="1"/>
<column name="ISESSENTIAL" valueNumeric="0"/>
</insert>
<insert tableName="AB_KEYWORD_ENTRY">
<column name="AB_KEYWORD_ENTRYID" value="692699de-d7ad-4500-b71e-153555a2ceac"/>
<column name="AB_KEYWORD_CATEGORY_ID" value="dc4cc24d-5df2-481f-a028-8d22ce6f6e64"/>
<column name="KEYID" value="FFFFFF"/>
<column name="TITLE" value="White"/>
<column name="CONTAINER" value="MosaicoColor"/>
<column name="SORTING" valueNumeric="5"/>
<column name="ISACTIVE" valueNumeric="1"/>
<column name="ISESSENTIAL" valueNumeric="0"/>
</insert>
</changeSet>
</databaseChangeLog>
......@@ -16,6 +16,12 @@ var res = {
"connectionField":"TASK_REQUESTOR_CONTACT_ID",
"setGroupBy":"NameFor360"
},
"Campaign": {
"subContext":"CampaignParticipant",
"childField":"CAMPAIGN_ID",
"parentField":"CAMPAIGNID",
"contactIdField":"CONTACT_ID"
},
"Advertising": {},
"BulkMail": {
"subContext":"BulkMailRecipient",
......
......@@ -6,7 +6,6 @@
<documentation>%aditoprj%/entity/BulkMail_entity/documentation.adoc</documentation>
<icon>VAADIN:AT</icon>
<grantUpdateProcess>%aditoprj%/entity/BulkMail_entity/grantUpdateProcess.js</grantUpdateProcess>
<grantDeleteProcess>%aditoprj%/entity/BulkMail_entity/grantDeleteProcess.js</grantDeleteProcess>
<contentTitleProcess>%aditoprj%/entity/BulkMail_entity/contentTitleProcess.js</contentTitleProcess>
<contentDescriptionProcess>%aditoprj%/entity/BulkMail_entity/contentDescriptionProcess.js</contentDescriptionProcess>
<afterUiInit>%aditoprj%/entity/BulkMail_entity/afterUiInit.js</afterUiInit>
......
......@@ -2,11 +2,19 @@ import("system.result");
import("system.vars");
import("system.neon");
import("DocumentTemplate_lib");
import("Util_lib");
// in edit mode
if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_VIEW && vars.get("$field.templateType") == DocumentTemplate.types.EML) // TODO: invisible for html as there are problems with images which are removed by the html-editor
if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_VIEW
&& ((vars.get("$field.templateType") == DocumentTemplate.types.EML)
|| (vars.get("$field.templateType") == DocumentTemplate.types.HTML && (!Utils.isNullOrEmptyString(vars.get("$field.DOCUMENTTEMPLATE_ID")) || !Utils.isNullOrEmptyString(vars.get("$field.MOSAICOTEMPLATE_ID"))))))
result.string(neon.COMPONENTSTATE_INVISIBLE);
else if (vars.get("$field.templateType") == DocumentTemplate.types.EML)
result.string(neon.COMPONENTSTATE_READONLY);
else if (vars.get("$field.templateType") == DocumentTemplate.types.EML
|| (vars.get("$field.templateType") == DocumentTemplate.types.HTML && (!Utils.isNullOrEmptyString(vars.get("$field.DOCUMENTTEMPLATE_ID")) || !Utils.isNullOrEmptyString(vars.get("$field.MOSAICOTEMPLATE_ID")))))
{
result.string(neon.COMPONENTSTATE_READONLY);
}
else
result.string(neon.COMPONENTSTATE_EDITABLE);
\ No newline at end of file
{
result.string(neon.COMPONENTSTATE_EDITABLE);
}
import("Util_lib");
import("system.result");
import("system.vars");
import("system.neon");
import("DocumentTemplate_lib");
if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_VIEW && vars.get("$field.templateType") == DocumentTemplate.types.EML) // TODO: invisible for html as there are problems with images which are removed by the html-editor
if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_VIEW && (vars.get("$field.templateType") == DocumentTemplate.types.EML
|| (vars.get("$field.templateType") == DocumentTemplate.types.HTML && (!Utils.isNullOrEmptyString(vars.get("$field.DOCUMENTTEMPLATE_ID")) || !Utils.isNullOrEmptyString(vars.get("$field.MOSAICOTEMPLATE_ID"))))))
result.string(neon.COMPONENTSTATE_READONLY);
else
result.string(neon.COMPONENTSTATE_INVISIBLE);
\ No newline at end of file
import("system.translate");
import("system.result");
result.string(translate.text("EML files can't be edited here. You can download, edit and reupload the template to change the content."))
\ No newline at end of file
result.string(translate.text("File can't be edited here. You can download, edit and reupload the template to change the content."))
\ No newline at end of file
import("Context_lib");
import("system.vars");
import("system.result");
import("Entity_lib");
var rowId = vars.get("$field.BULKMAILID");
var currentContext = ContextUtils.getCurrentContextId();
var canDelete = new HasLinkedObjectTester()
.andNoEntityRows("BulkMailRecipient_entity", "BulkMailRecipients", {BulkMailId_param : rowId}) //Recipients
.andNoEntityRows("Activity_entity", "LinkedObjects", {ObjectId_param : currentContext, RowId_param : rowId}) //Activities
.validate();
result.string(canDelete);
\ No newline at end of file
import("Bulkmail_lib");
import("Document_lib");
import("Context_lib");
import("Workflow_lib");
......@@ -9,6 +10,29 @@ DocumentUtil.deleteAllUploadedImages("content_IMAGE_UPLOAD");
newWhere("BULKMAILRECIPIENT.BULKMAIL_ID", "$local.uid").deleteData();
BulkMailUtils.deleteAllEmlFiles(vars.get("$local.uid"));
newWhere("ACTIVITYLINK.OBJECT_ROWID","$local.uid").and("ACTIVITYLINK.OBJECT_TYPE","BulkMail").deleteData();
newWhere("WEBLINK_CLICK.MAIL_LOG_ID"
,newSelect("MAIL_LOG.MAIL_LOGID")
.from("MAIL_LOG")
.join("MAIL_RUN","MAIL_LOG.MAIL_RUN_ID = MAIL_RUN.MAIL_RUNID")
.where("MAIL_RUN.OBJECT_TYPE","BulkMail")
.and("MAIL_RUN.OBJECT_ROWID","$local.uid")
,SqlBuilder.IN())
.deleteData(true,"WEBLINK_CLICK");
newWhere("MAIL_LOG.MAIL_RUN_ID",
newSelect("MAIL_RUN.MAIL_RUNID")
.from("MAIL_RUN")
.where("MAIL_RUN.OBJECT_TYPE","BulkMail")
.and("MAIL_RUN.OBJECT_ROWID","$local.uid")
,SqlBuilder.IN())
.deleteData(true,"MAIL_LOG");
newWhere("MAIL_RUN.OBJECT_TYPE","BulkMail").and("MAIL_RUN.OBJECT_ROWID","$local.uid").deleteData();
SingleBinaryUtils.remove("BULKMAIL", "DOCUMENT", vars.get("$local.uid"));
WorkflowSignalSender.deleted();
\ No newline at end of file
......@@ -5,7 +5,7 @@ import("system.neon");
var priority = parseInt(vars.get("$field.PRIORITY"));
if (vars.get("$sys.selectionsRecordsRecipe") && priority != 1)
if (vars.get("$sys.selectionsRecordsRecipe") && priority > 1)
{
result.string(neon.COMPONENTSTATE_EDITABLE);
......
......@@ -1333,6 +1333,7 @@
</entityConsumer>
<entityConsumer>
<name>ContactCommunicationSettings</name>
<refreshParent v="true" />
<dependency>
<name>dependency</name>
<entityName>CommunicationSettings_entity</entityName>
......
......@@ -3,10 +3,11 @@ import("Sql_lib");
import("system.result");
result.string(newWhere("CONTACT.PERSON_ID",
newSelect("SALESORDER.CONTACT_ID")
newSelect("CAMPAIGNPARTICIPANT.CONTACT_ID")
.from("CONTACT")
.join("SALESORDER",
newWhere("CONTACT.CONTACTID = SALESORDER.CONTACT_ID"))
.join("CAMPAIGNPARTICIPANT",
newWhere("CONTACT.CONTACTID = CAMPAIGNPARTICIPANT.CONTACT_ID"))
.join("CAMPAIGN", "CAMPAIGNPARTICIPANT.CAMPAIGN_ID = CAMPAIGN.CAMPAIGNID")
.whereIfSet(vars.get("$local.condition")),
SqlBuilder.IN())
.toString());
\ No newline at end of file
import("system.vars");
import("Keyword_lib");
import("system.result");
import("KeywordRegistry_basic");
result.string(KeywordUtils.getViewValue("LinkTags", vars.get("$field.TAG")));
\ No newline at end of file
result.string(KeywordUtils.getViewValue($KeywordRegistry.weblinkTags()), vars.get("$field.TAG"));
\ No newline at end of file
......@@ -9,7 +9,7 @@ if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW && vars.get("$loc
if (newSelect("URL").from("WEBLINK").where("WEBLINK.URL", vars.get("$local.value")).cell())
result.string(translate.text("URL must be unique"));
if (vars.get("$field.ISREDIRECT") == "1" && !/^(?:http(s)?:\/\/)[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/g.test(vars.get("$local.value")))
if (vars.get("$field.ISREDIRECT") == "1" && !/^(?:http(s)?:\/\/)[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#%[\]@!\$&'\(\)\*\+,;=.]+$/g.test(vars.get("$local.value")) && !/\/[\w\-\._~:/?#%[\]@!\$&'\(\)\*\+,;=.]+$/g.test(vars.get("$local.value")))
{
result.string(translate.text("Redirect needs a full URL with http/https"));
}
......
......@@ -563,8 +563,8 @@
<value>Eigenschaft \"%0\" kann nur einmal mit dem selben Wert ausgewählt werden.</value>
</entry>
<entry>
<key>EML files can't be edited here. You can download, edit and reupload the template to change the content.</key>
<value>Das Bearbeiten von EML-Dateien ist hier nicht möglich. Um den Inhalt zu ändern, können Sie die Vorlage herunterladen, bearbeiten und erneut hochladen.</value>
<key>File can't be edited here. You can download, edit and reupload the template to change the content.</key>
<value>Das Bearbeiten der-Datei ist hier nicht möglich. Um den Inhalt zu ändern, können Sie die Vorlage herunterladen, bearbeiten und erneut hochladen.</value>
</entry>
<entry>
<key>Date Clicked</key>
......
......@@ -11,6 +11,7 @@
<singleton v="true" />
<storeRoles>
<element>PROJECT_Marketing</element>
<element>INTERNAL_ADMINISTRATOR</element>
</storeRoles>
<icon>NEON:GROUP_APPOINTMENT</icon>
<categories>
......
......@@ -12,6 +12,7 @@
<singleton v="true" />
<storeRoles>
<element>PROJECT_Marketing</element>
<element>INTERNAL_ADMINISTRATOR</element>
</storeRoles>
<icon>VAADIN:GRID_BIG</icon>
<categories>
......
......@@ -12,6 +12,7 @@
<singleton v="true" />
<storeRoles>
<element>PROJECT_Marketing</element>
<element>INTERNAL_ADMINISTRATOR</element>
</storeRoles>
<icon>VAADIN:AT</icon>
<categories>
......
......@@ -11,6 +11,7 @@
<singleton v="true" />
<storeRoles>
<element>PROJECT_Marketing</element>
<element>INTERNAL_ADMINISTRATOR</element>
</storeRoles>
<icon>VAADIN:MONEY</icon>
<categories>
......
......@@ -14,6 +14,7 @@
<singleton v="true" />
<storeRoles>
<element>PROJECT_Marketing</element>
<element>INTERNAL_ADMINISTRATOR</element>
</storeRoles>
<icon>NEON:GROUP_APPOINTMENT</icon>
<categories>
......@@ -37,6 +38,7 @@
<singleton v="true" />
<storeRoles>
<element>PROJECT_Marketing</element>
<element>INTERNAL_ADMINISTRATOR</element>
</storeRoles>
<icon>NEON:GROUP_APPOINTMENT</icon>
<categories>
......
......@@ -105,7 +105,19 @@
<customStringProperty>
<name>bulkmail.baseReplacementURL</name>
<description>Base url for replacement of redirectlinks in bulkmails</description>
<property></property>
</customStringProperty>
<customStringProperty>
<name>bulkmail.fileStorage</name>
<description>Save Location for send Mails. When empty %aditodata% gets used.</description>
</customStringProperty>
<customStringProperty>
<name>bulkmail.user</name>
<description>Title of the useraccount that is used to send bulkmails</description>
<property>mailbridge</property>
</customStringProperty>
<customStringProperty>
<name>mosaico.url</name>
<description>Url of the Mosaico Email Editor</description>
</customStringProperty>
</customConfigProperties>
<customProperties>
......@@ -205,24 +217,10 @@
<description></description>
<property v="false" />
</customBooleanProperty>
<customStringProperty>
<name>bulkmail.fileStorage</name>
<description>Save Location for send Mails. Path is relative to Serverpath</description>
<property>/bulkMailFiles/</property>
</customStringProperty>
<customIntegerProperty>
<name>ews.syncsize</name>
<description>Defines how big a filter for synchronizing to Outlook may be</description>
<property v="7200" />
</customIntegerProperty>
<customStringProperty>
<name>bulkmail.user</name>
<description>Title of the useraccount that is used to send bulkmails</description>
<property>mailbridgeDev</property>
</customStringProperty>
<customStringProperty>
<name>mosaico.url</name>
<description>Url of the Mosaico Email Editor</description>
</customStringProperty>
</customProperties>
</preferences>
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