Hi,

 

I would like to add a hyperlink (titled "Details" below) in edit page of a record. When clicking the hyperlink it should redirect to another page in a new tab.

Right now clicking "Details" the page opens in new tab. My issue is that along with the required page, a new tab opens at https://{sitename}/0/Nui/ViewModule.aspx as well. Thus 2 new tabs are opened when I click on the link now.

Below is what I have (Today's agenda is not a detail; it's a control group):

Below is my code:

methods:{

onDashboardDetailsButtonClick:function(){

                let url = ;

                window.open(url, '_blank');

            }

},

diff: /**SCHEMA_DIFF*/[

            {

                "operation": "insert",

                "name": "DashboardDetails",

                "values": {

                    "layout": {

                        "colSpan": 7,

                        "rowSpan": 1,

                        "column": 7,

                        "row": 2,

                    },

                    "itemType":Terrasoft.ViewItemType.HYPERLINK,

                    "enabled": true,

                    "caption":"Details",

                    "click": {"bindTo": "onDashboardDetailsButtonClick"},

                },

                "propertyName": "items",

                "index": 2

            }

]

Can you please tell me what I'm doing wrong and how to resolve this?

Like 0

Like

4 comments
Best reply

Hello Nirupama,

 

Terrasoft.ViewItemType.HYPERLINK item type also has an addtional property "href" and if it's not filled in by default it's automatically filled in with the base application url (https://somesite.creatio.com). You can also see it when hovering the mouse to the link or copy the link adddress from this element. As a result when you click on the item your custom URL is opened and additionally the default URL of the website.

 

If it's possible you should try setting your custom URL to the "href" property like:

getCustomURL: function() {
				return "https://www.wikipedia.org/";
			}
...
{
                "operation": "insert",
                "name": "DashboardDetails",
                "values": {
                    "layout": {
                        "colSpan": 7,
                        "rowSpan": 1,
                        "column": 7,
                        "row": 2,
                    },
                    "itemType":Terrasoft.ViewItemType.HYPERLINK,
                    "enabled": true,
                    "caption":"Details",
					"href": {"bindTo": "getCustomURL"}
                },
                "propertyName": "items",
 
                "index": 2
            },

 

Hello Nirupama,

 

Terrasoft.ViewItemType.HYPERLINK item type also has an addtional property "href" and if it's not filled in by default it's automatically filled in with the base application url (https://somesite.creatio.com). You can also see it when hovering the mouse to the link or copy the link adddress from this element. As a result when you click on the item your custom URL is opened and additionally the default URL of the website.

 

If it's possible you should try setting your custom URL to the "href" property like:

getCustomURL: function() {
				return "https://www.wikipedia.org/";
			}
...
{
                "operation": "insert",
                "name": "DashboardDetails",
                "values": {
                    "layout": {
                        "colSpan": 7,
                        "rowSpan": 1,
                        "column": 7,
                        "row": 2,
                    },
                    "itemType":Terrasoft.ViewItemType.HYPERLINK,
                    "enabled": true,
                    "caption":"Details",
					"href": {"bindTo": "getCustomURL"}
                },
                "propertyName": "items",
 
                "index": 2
            },

 

Thanks, Oscar! That works!

 

As a follow up, is there a way to make the integer value in the above screenshot a hyperlink, so that instead of providing a separate link like "Details", they can on the value and that redirects them to the details page?

Nirupama Mohan Latha,

 

As for the integer field - I am not sure, but you can try converting it into a string column and add the logic as was described here.

Thank you!

Show all comments

Hi everyone,

I was trying to remove edit and delete access rights from feed messages. I tried this by modifying the object permission for this object "SocialMessages". However after some investigation I reached to the point that feed is not dependent on object permissions but is something that can be modified in client-modules (front-end). I would like to know if there is a way how to remove/disable the edit and delete button.

Thanks in advance :)

Like 0

Like

5 comments
Best reply

Luis Kateshi,

 

they can be overriden it depends on the approach it's done. For example try creating a module in configurations with the UsrSocialFeedUtilities name and the following code:

define("UsrSocialFeedUtilities", ["terrasoft", "SocialFeedUtilities"], function(Terrasoft) {
    Ext.override(Terrasoft.SocialFeedUtilities, {
        getPostCommentEditVisible: function() {
                    return false;
                },
        getPostCommentDeleteVisible: function() {
            return false;
        }
    });
    return {}; 
});

and then create a repalcing view model for the SocialFeed module with the following code (where we add the created UsrSocialFeedUtilities module as a dependency):

define("SocialFeed", ["UsrSocialFeedUtilities"],
	function() {
		return {
			properties: {},
			mixins: {},
			messages: {},
			attributes: {},
			methods: {},
			diff: []
		};
 });

refresh the page in the UI and check what happens. I am sure the edit and delete buttons will be hidden.

Hi Luis,

 

Indeed this can be done by overriding the logic of the getPostCommentEditVisible and getPostCommentDeleteVisible methods from the SocialFeedUtilities module. So you need to override these methods.

Hi Oleg,

Thanks for your reply. I already tried to do this but as I see it is not possible to create a replacing client-module for "SocialFeedUtilities". And the methods u mentioned (getPostCommentEditVisible and getPostCommentDeleteVisible) seem to be private and I don't think they can be overriden. 

 

/**

         * ########## ######### ###### ############## #########/###########.

         * @private

         */

        getPostCommentEditVisible: function() {

            return this.getPostCommentEditDeleteVisible();

        },

Luis Kateshi,

 

they can be overriden it depends on the approach it's done. For example try creating a module in configurations with the UsrSocialFeedUtilities name and the following code:

define("UsrSocialFeedUtilities", ["terrasoft", "SocialFeedUtilities"], function(Terrasoft) {
    Ext.override(Terrasoft.SocialFeedUtilities, {
        getPostCommentEditVisible: function() {
                    return false;
                },
        getPostCommentDeleteVisible: function() {
            return false;
        }
    });
    return {}; 
});

and then create a repalcing view model for the SocialFeed module with the following code (where we add the created UsrSocialFeedUtilities module as a dependency):

define("SocialFeed", ["UsrSocialFeedUtilities"],
	function() {
		return {
			properties: {},
			mixins: {},
			messages: {},
			attributes: {},
			methods: {},
			diff: []
		};
 });

refresh the page in the UI and check what happens. I am sure the edit and delete buttons will be hidden.

Thank you Oleg, it worked, I appreciate your help :)

Hi Oleg Drobina, can remove/disable the edit and delete button in feed message in a specific section like an opportunity only?

Show all comments

Hi Community,

 

I'm having troubles generating a request with the following XML body, using the "Call Web Service" integration tool.

<soapenv:Envelope xmlns:soap="" xmlns:cam="" xmlns:soapenv="">
	<soapenv:Header />
	<soapenv:Body>
		<cam:startProcessCampanhasaaaaa>
			<soap:request>
				<soap:agencia>1</soap:agencia>
				<soap:argumentarioVenda>A</soap:argumentarioVenda>
				<soap:nomeCampanha>A</soap:nomeCampanha>
				<soap:nomeEntidade>A</soap:nomeEntidade>
				<soap:notasAdicionais>A</soap:notasAdicionais>
				<soap:numeroEntidade>A</soap:numeroEntidade>
				<soap:requestId>A</soap:requestId>
				<soap:validadeTarefa>1</soap:validadeTarefa>
				<soap:gestorEntidade>A</soap:gestorEntidade>
			</soap:request>
		</cam:startProcessCampanhasaaaaa>
	</soapenv:Body>
</soapenv:Envelope>

Basically, when I tried to add the necessary parameters for the request, I've noticed that I can't add an object parameter without defining it as an array.

This setting is blocking me from following the structure of the request above. Because the "request" parameter is not an array. I also tried to import the wsdl, and it didn't work either.

 

Is there a way to bypass this? Should I create a script task instead?

 

Thank you in advance.

 

Best Regards,

Pedro Pinheiro

Like 1

Like

3 comments

Hello,

 

You can create this service manually.

Because this is an OOTB behavior with the value "is array".

Hi Kalymbet Anastasia,

 

Sorry, but I didn't understand your answer. The property "Is array" is true by default.

 

Do I need to create the soap request using a script task? 

 

Best Regards,

Pedro Pinheiro

Pedro Pinheiro,

 

Yes, you're right. When the request parameter is of type object the collection is considered a typed array and the checkbox is checked by default and not editable.



In this case, using a script task for the SOAP service would solve the case.



BR,

Bhoobalan Palanivelu.

Show all comments

Hi Community,



I'm hoping to add conditional formatting to a lookup field on an edit page (UsrColour).



UsrColour lookup = Id (Guid), Name (String), Hex (String).

 

Ideally, I'd like the colour to change based on the lookup value and for the colour to come from the Hex field in the Colour lookup. Alternatively, hard coding the colours into the page code would be an acceptable alternative.



I can format the field using the article below but not conditionally:

Adding Custom CSS Style Sheets in Creatio (formerly bpm’online) | Customer FX

 

Any assistance would be greatly appreciated.

Like 0

Like

2 comments
Best reply

hi Cristopher Montgomery,



This thread helps to add the custom CSS on condition based.

Please check this Custom CSS for a field/label based on Condition .



BR,

Bhoobalan Palanivelu.

hi Cristopher Montgomery,



This thread helps to add the custom CSS on condition based.

Please check this Custom CSS for a field/label based on Condition .



BR,

Bhoobalan Palanivelu.

Exactly what I need. Much appreciated.

Show all comments

Hi,

 

I need to filter contact list that is displayed when logging a call activity through Section Actions Dashboard. Below is the code I have added for the same:

1. Replaced CallMessagePublisherPage

 define("CallMessagePublisherPage", ["ConfigurationConstants"],
	function(ConfigurationConstants) {
		return {
			entitySchemaName: "Activity",
			mixins: {},
			attributes: {
				"Contact": {
					"lookupListConfig": {
						"columns": ["Account"],
						"filters": [
							function() {
									var config = this.getListenerRecordData();
									var additionalInfo = config.additionalInfo;
									var account=additionalInfo.account.value;
									var filterGroup = Ext.create("Terrasoft.FilterGroup");
									if(account){
									filterGroup.add("ContactFilter",
										Terrasoft.createColumnFilterWithParameter(
											Terrasoft.ComparisonType.EQUAL,
											"Account",
											account,
											Terrasoft.DataValueType.LOOKUP)
											);
									}
									return filterGroup;
							}
							]
					}
				}
			},
			methods: {
						setDefaultCallDirection: function() {
							var query = this.Ext.create("Terrasoft.EntitySchemaQuery", {
								rootSchemaName: "CallDirection"
							});
							query.addColumn("Name");
							var recordId = ConfigurationConstants.Activity.ActivityCallDirection.Outgoing;
							query.getEntity(recordId, function(result) {
								this.setDefaultCallDirectionQueryHandler(result);
							}, this);
						}
					},
			diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/
		};
	}
);

 

2. Replaced SectionActionsDashboard

  define("SectionActionsDashboard", ["SectionActionsDashboardResources"], function(resources) {
    return {
        methods: {
				onGetRecordInfoForPublisher: function() {
					var info = this.callParent(arguments);
					info.additionalInfo.account = this.getAccountEntityParameterValue(info.relationSchemaName);
					return info;
				},
				getAccountEntityParameterValue:function(relationSchemaName){
					switch(relationSchemaName){
						case "Lead":
							return this.getMasterEntityParameterValue("QualifiedAccount");
						case "Contact":
						case "Opportunity":
						case "Order":
							return this.getMasterEntityParameterValue("Account");
						case "Account":
							return {"value":this.getMasterEntityParameterValue("Id")};
						default:
							return {};
					}
 
				}
		}
    };
});

With above code, I get the below result in Account section when I open the window to select contact.

Above is the expected result. But when typing in the name on the lookup field instead of opening the selection window all contacts that match the text are displayed(not filtered by Account)

Any idea how to apply the same filter when pulling the list by typing in the lookup field?

 

Like 0

Like

3 comments
Best reply

Hi,

 

Please also add the following method to the CallMessagePublisherPage:

getLookupQuery: function(filterValue, columnName) {
					var esq = this.callParent(arguments);
					var filterGroup = this.getLookupQueryFilters(columnName);
					esq.filters.addItem(filterGroup);
					return esq;
				},

and refresh the page after that. This should result in the needed filtration in the list view of the lookup.

Hi,

 

Please also add the following method to the CallMessagePublisherPage:

getLookupQuery: function(filterValue, columnName) {
					var esq = this.callParent(arguments);
					var filterGroup = this.getLookupQueryFilters(columnName);
					esq.filters.addItem(filterGroup);
					return esq;
				},

and refresh the page after that. This should result in the needed filtration in the list view of the lookup.

That works, thank you!

Hello everyone. Thanks for the article, it was very helpful. Perhaps you can tell me how to filter the list of emails address via Account? That is displayed when registering email sending activity via the Section Actions toolbar? Thanks!

Show all comments

Hi Team!

 

Can you help us on how to add static folders to:

1. custom section?

2. Creatio OOTB section, where the static folders functionality is not available by default (for example, Contracts)?



I've tried inserting folder of Static type into %Section%Folder, but it works only for the sections where static folder already available in UI. 



Thanks in advance!

Like 0

Like

3 comments

Hello,

 

1. Please be informed that static folders functionality is not available in the custom section. We have created a corresponding query for our R&D team.

 

2. In the basic system version only the following section can have static folders:

employees

process library

process journal

lookups

system settings

As for the Contacts section, static folders are available with the "Marketing" product only.

Is this going to be added at some point? It seems dumb not to have it everywhere. 

Hello!

 

Unfortunately, this functionality is still not available. Our team is working on it, but we can not provide an ETA for it. 

Show all comments

I'm having an issue where no previously created activities are appearing in the mobile application when toggling to Offline Mode.

Can anyone provide insight on where to look for a fix?

Like 1

Like

1 comments

Hello,

I added a new mailbox to our our Creatio on-prem instance and want to download emails from customized folders.  I've selected this option but no folders are displaying. What could be causing this?

Thank you!

Like 1

Like

2 comments

Hi Francine Braese,



Do those folders have access to be shown at CRM end?

Also, did you try to check the inbox for the mail synchronization confirmation?



BR,

BHoobalan Palanivelu.

Hello,
 

Most likely, the mailbox synchronization is unsuccessful, you can open the browser console on the Network tab, then open the mailbox settings, in "Network" you should see the GetMailboxFolders request that reads existing mailboxes from the mail server.
 

Check if this request completes successfully, if there are any problems, you will see the reason why the mailbox is not displayed in the "response" tab of the request.
 

You can also make sure that the synchronization is correct on the mailbox diagnostics page.
 

If the problem persists, please contact our support team at support@creatio.com.
 

Best regards,
Pavlo!

Show all comments

Hi All,

 

I have created two types of contracts (Loyalty and General) and the default "Subordinate contract" detail is only showing in one page(General). So when creating a Subordinate contract by clicking on the (+) icon, I can see both options.

Is there a way to hide the Loyalty option from there?

Like 0

Like

4 comments
Best reply

Hi Champi,

I believe in this conversation you will find an answer to your task.

Hello Champi,



Your business task could be achieved only by development. 



Please refer to this post.

Hi Bogdan,

 

Thank you for the reply.

In the post you shared, the solution is given to remove the (+) icon logically. But what I need to achieve is to have the (+) icon and only remove one option from there.

For an example, If the user clicks the + icon of the detail on "General Contract" page, it should only show the "General" option. Same goes with the Loyalty page.

Will you be able to help me with this please??

Hi Champi,

I believe in this conversation you will find an answer to your task.

Hi Dmytro Vovchenko,​​​​​​​

 

Thank you so much for your assistance. That solution works like a charm yes

Show all comments

Hi community,

To show conversion rate in dashboard we use sales pipeline. Is there a way to show conversion rate without sales pipeline. For example "To show conversion rate in leads between qualification to closed won". Is there a way to implement it. Also suggest best chart to do this.

Thanks in advance.

 

Regards,

Manideep Korni

Like 1

Like

2 comments

Hello Korni,

 

As I understand your need - you want the same info that the pipeline contains, but to be displayed in a different way. In the pipeline, the general data is just being calculated in a specific way. What you can do is create a new dashboard with the same calculation mechanism. The sales pipeline is just a classical view of this kind of chart with pre-calculations done in the background.

 

Please check the article below to see the details of how the formula should be built:

https://academy.creatio.com/docs/user/sales_tools/long_sales/sales_pipe…

 

Best Regards,

Dan

Hi Manideep, 



I always like to show the conversion rate as a metric. It's not possible with OOTB tools, but you can use the marketplace app below. 

 

Here you can simply do the calculation of conversion rate (however that might be in your case), then display it. 



https://marketplace.creatio.com/app/calculated-metrics-creatio&nbsp;



Note: Currently this will only work on classic UI pages without development.

Show all comments