Hi,

I have a minipage that has lookup (contact) and whenever I try to add a new non-existing it suggests it as "New ContactName" which is nice, but when I click that, it opens the contact minipage and closes the original minipage and doesn't re-open the original minipage after I closed the contact minipage upon saving.

Do you have any idea of a better approach than making a custom modal?

Like 0

Like

3 comments
Best reply

Hi,

I ended up making a Modal [BaseModalBoxPage] to create my own minipage.

I found this code segment in LookupQuickAddMixin and I want to know where can I change the value of UseSilentCreation?
 

/**
		 * Checks that entity has mini page add mode allowed.
		 * @private
		 * @param {String} entitySchemaName Name of the entity.
		 * @param {Array} [additionalDefaultValues] Additional default values.
		 * @return {Boolean} True, if feature UseSilentCreation is turned off, and entity has add mini page.
		 */
		_needOpenMiniPage: function(entitySchemaName, additionalDefaultValues) {
			const entityStructure = this.getEntityStructure(entitySchemaName);
			if (!entityStructure) {
				return false;
			}
			const notUseSilentCreation = !Terrasoft.Features.getIsEnabled("UseSilentCreation");
			const editPages = entityStructure.pages;
			const typeLookupItem = additionalDefaultValues?.find((item) => item.attributeName === "TypeLookup");
			let page;
			if (typeLookupItem) {
				page = editPages.find((page) => page.UId === typeLookupItem.value);
			}
			page = page || Terrasoft.first(editPages);
			const hasAddMiniPage = page?.hasAddMiniPage;
			return notUseSilentCreation && Boolean(hasAddMiniPage);
		},
 
		/**
		 * Open page or mini page for new entity record.
		 * @protected
		 * @param {Object} newEntityConfig Entity config.
		 * @param {Object} newEntityConfig.entitySchema Entity schema.
		 * @param {String} newEntityConfig.entitySchemaName Entity schema name.
		 * @param {String} newEntityConfig.columnName Column name.
		 * @param {String} newEntityConfig.displayColumnValue Display column value.
		 * @param {String} newEntityConfig.valuePairsFromFilters Default values that were sent from filters.
		 * @param {Array} newEntityConfig.additionalDefaultValues Additional default values.
		 * @param {Object} viewModel View model context.
		 */
		openPageForNewEntity: function(newEntityConfig, viewModel) {
			var cardConfig = this._getNewEntityPageConfig(newEntityConfig);
			this._subscribeNewEntityCardModuleResponse(newEntityConfig.attributeName ?? newEntityConfig.columnName, cardConfig, viewModel);
			if (this._needOpenMiniPage(cardConfig.entitySchemaName, newEntityConfig.additionalDefaultValues)) {
				this.openAddMiniPage.call(this, cardConfig);
			} else {
				this._networkUtils.openCardInChain(cardConfig);
			}
			this.set && !newEntityConfig.attributeName && this.set(newEntityConfig.columnName, null);
		},

Hello,

 

It seems that this was already customized since OOB does not allow adding new records to the lookup inside the mini page.

 

As for the UseSilentCreation - it's a system feature with the UseSilentCreation code according to the code in the very same LookupQuickAddMixin

Go to 

 

/0/Nui/ViewModule.aspx#Section/AppFeature_ListPage - for old UI

/0/Shell/#Section/AppFeature_ListPage - Freedom UI

 

find the UseSilentCreation feature (if the record is not present there - create it and enable it for all employees role) and relogin to the app.

Hi,

I ended up making a Modal [BaseModalBoxPage] to create my own minipage.

Show all comments

Is it possible to bind knowledge base articles to packages, or in some other way move them between environments in an effective way? The client wants to be able to set up articles in their Pre environment and transfer them into Prod when ready, but the documentation doesn't provide information on the possibility of this.

 

It also might not be ideal to bind this data in a non-dev environment, since you will then have packages that must be created from non-dev environments to accomplish this, so perhaps there is another recommended way of moving such data between environments?

 

We are currently on 8.1.3, planning on upgrading to 8.2.1 soon, and are using exclusively Freedom UI sections.

Like 2

Like

2 comments

Hi Harvey

I recommend using an integration tool like Make.com to automate transferring KB articles from Pre to Prod. Configure Make.com to fetch articles from Pre instance then insert them into Prod. This avoids dependency on packages and works seamlessly across versions.

Thank you
Mohamed
 

Mohamed Ouederni,


Interesting, do you use this in other use cases ?

Damien

Show all comments

Hello, 

 

I have the list on two different pages. On the first page, I want to open the edit page, but on the second page, I do not. On the second page, I have already removed the open option ("features": { "rows": { "selection": false, "toolbar": false .... 

 

 

However, when double-clicking on a row, the default page associated with the object is opened. Is there a way to block the double-click action or open a different page instead?

Like 0

Like

5 comments

Hello,

Unfortunately, this could not be achieved by basic methods. However, this can be done by deleting all the editing pages for the object.
 

In Freedom UI, Add-ons are used for page configuration. Where you can check if there are pages linked to the detail in the object's settings. Based on your screenshot, it seems there are no such settings for this object.

 

On the other hand, Classic UI sections use a different mechanism, where page configurations are stored in the database, specifically in the following tables:

  • SysModuleEdit, which is connected to the object through records in the SysModuleEntity table.
  • SysModuleEntity, in turn, refers to the object (SysSchema) via the SysEntitySchemaUId column.

For the OpportunityProductInterest object, you can check the page configurations using the following script (there are 2 pages for this object in the system):

 

SELECT * FROM "SysModuleEdit" WHERE "SysModuleEntityId" IN ( SELECT "Id" FROM "SysModuleEntity" WHERE "SysEntitySchemaUId" IN ( SELECT "UId" FROM "SysSchema" WHERE "Name" = 'ObjectName' ) );
 

Steps to resolve:

  1. Delete these records or set the SysModuleEntityId column to NULL.
     

    • This will ensure that the OpportunityProductInterest object will no longer have pages across the system.
    • As a result, records will not open after a double-click in the detail.
       

    Unfortunately, there is no built-in way in the system to restrict page opening from the detail only.

     

  2. Alternative approach:
     
    • Create a database view that duplicates the data from the main object but does not have page configurations.
    • Build the detail using this view instead of the main object.

      I will also create an idea for our development team to implement such possibility in futures version.
       

Thank you for reaching out. I hope this helps resolve the issue!

Might be a simpler route to try to see what the request is that fires when double-clicking a row. The list will definitely fire a request for that, but I don't know what it is. 

Pavlo Sokil,

How do I create a view?

Cristiano Carvalho writes:

How do I create a view?

See https://customerfx.com/article/using-database-views-in-creatio/

Ryan

Hello!
Try this to solve your case

{
   "operation": "merge",
   "name": "DataTable",
   "values": {
      "rowDoubleClick": {}
   }
},

Show all comments

Hello community,

When I create a replacement object for ListPageV2Template, the Freedom UI page that shows me the available template breaks.
Could you tell me the correct way to customize it?
What is the difference between ListPageV2Template and ListFreedomTemplate?
The second one is used by Account and Contact sections, but when I create a new custom section, Creatio uses ListPageV2Template page.

 

Like 0

Like

1 comments

Hello,
 

Replacing basic templates is not supported, as it can lead to unintended issues or incompatibilities. 

However, we understand that this is not ideal for your specific needs.
 

We want to assure you that we have created a request for our development team to implement this functionality in future versions of our application. We understand the importance of providing our clients with the best possible experience and will work hard to implement the changes you have suggested.
 

About the difference between templates

ListFreedomTemplate - its old template, we do not use it in the latest apps

ListPageV2Template - its a new template that are using now for creating apps

Show all comments

Hello Community, 

 

We have a client for whom we perform Excel imports of products into quotes. This import process includes a validation step where the system checks the PartNumber to verify if the product already exists. If it does, the corresponding ID is assigned to the product in the quote. If it does not exist, a new product is created with the appropriate classifications.

 

However, we discovered that when the PartNumber in the Excel file contains "00", Creatio is unable to process it correctly and instead associates a product with no PartNumber assigned.

 

 

Can you help us resolve this issue? Any suggestions would be appreciated!

Like 0

Like

1 comments

Hello,
 

I recommend that you make sure that the type of the PartNumber field in Creatio matches the format you are trying to insert, i.e. it should be a text field.
 

In addition, the system has a lookup “Excel import log”, we recommend that you search for your import logs, if there were errors with filling in the column, they will be displayed in this lookup.
 

If you cannot solve the problem yourself, we recommend contacting our support team for a more detailed check. (support@creatio.com)

Best regards,
Pavlo!

Show all comments

Hello

In Classic UI I've customized a section page (let me call it "Production Page") with 3 details that must be shown and filtered depending on the record selected in the previous detail.

Let me call "detail 1", "detail 2" and "detail 3" the three details.

Only "detail 1" is visible opening the Production Page.

When the user selects an item from the "detail 1", then "detail 2" becomes visible and is filtered based on the Id of the "detail 1" selectet item.

When the user selects an item from the "detail 2", then "detail 3" becomes visible and is filtered based on the Id of the "detail 2" selectet item.

 

I've implementd it with custom javascript code in my classic ui "Production Page" and works very well.

 

My customer wants to migrate its classic section to Freedom UI, then I must do the same thing in a Freedom UI FormPage using list or datagrid components.

I've not found any documntation or guide on handling list item selection events.

How can I do it?

Is there a way to hide the "Open, Copy and Delete" bullet point shown at the left of the rows of a freedom UI list component?

 

Thanks

Regards

Like 0

Like

1 comments

You can filter a list based on the selected record of another list all using no code in Freedom UI. See this post: https://community.creatio.com/questions/filtering-records-freedom-ui-expanded-list

If you also want to have code that gets the change of the selected row in a list see here: https://community.creatio.com/questions/list-bind-selected-record-or-add-custom-handler-selectionchange

For removing the row toolbar menu with add,copy,delete, see here: https://customerfx.com/article/removing-the-row-toolbar-from-a-creatio-freedom-ui-list-component/

Ryan

Show all comments

Hi there! I am expiriencing an error after adding previously deleted filed from the form page. Is it possible to comment it in source code?

Like 0

Like

1 comments

Hello,

This error may appear when the column does not exist in the object. To resolve it, we recommend to either remove the attribute from the source code that references the column specified in the error (you can just comment them out) or add the required column to the object.

Show all comments

How do I change the sort order of the gallery component on a FreedomUI record page?

The current sort order seems to be created on date Newest first. I would like to be able to sort by a custom field on the page alphabetically (A-Z), if the gallery was using text, or numerically, if the field is a number field (smallest to largest).

Like 0

Like

1 comments

Hello!

The feature you're looking to implement is not achievable using a no-code approach but can be done with low-code customization. To create a custom ordering solution, you'll need to modify the page's code and configure the sorting settings as follows:
Locate the configuration:
1. Open the page's code and find the section with viewModelConfigDiff.
2. Add the sorting configuration:
3. Include the sorting attribute:
In the viewModelConfig  block, add this line to include the new config: "ItemsSorting": {},
Identify your Gallery component in the modelConfig block and add the following code
"sortingConfig": {
 "attributeName": "ItemsSorting",
 "default": [
   {
     "columnName": "Name",
     "direction": "asc" // Use "desc" for Z-A sorting
   }
 ]
}
4. Save your changes:
Once the code is updated, save the changes. The data should now be displayed in the correct order.

Show all comments

I have a list of logs, and I want to group them by the user's name. Is it possible to group data in a GridDetail?

Like 0

Like

7 comments

If this is a classic detail, this marketplace add-on will allow you to group the rows of any list: https://marketplace.creatio.com/app/tree-view-creatio

Ryan

Hi Ryan,

I intend to do something like that.

SELECT username
FROM logs
GROUP BY username

I’m not sure if it’s possible to list the grouped data.

Thanks

 

Cristiano Carvalho,

Yes, that is what that marketplace add-on allows you to do - the column you select (in your case the username) will group the rows by that column, so rows with that username will be grouped below it  and can be expanded. 

You can see an example of this out of the box on the classic project page, the structure tab (the project tasks) group this way as well (it is grouped by the ParentId column). You can analyze the "ProjectStructureDetailV2" schema to see how it is implemented. 

Ryan

Ryan Farley,

I am afraid, this addon allows to display parent-child tree, but not group by category. 

Hello, yes, that's true. 

Do you know of another option to group by name?

 

Thanks

 

Dear Cristiano,

Unfortunately, the option to group the list is not currently available.

 

As a workaround, you can add two separate lists to the page. In the first list, include users, and in the second, logs. Then, apply a filter to the logs based on the selection in the users' list.

This setup allows you to select one or more users in the first list, and the second list will automatically display logs related to the selected users.


You can also set up a pivot table in Classic UI dashboards, which allows grouping by a certain column, but pivot tables also have some restrictions. You can read more about it in this article.

Additionally, I created an idea for our R&D team.

Have a great day!

Cristiano Carvalho,

If you want to create read-only detail, you can create VIEW with ParentId field. Then you can use this add-on.

But editable detail is much more difficult

Another option is to create 2 details - Contacts and Logs. So, Logs detail is filtered by selected Contact

 

Kind regards,

Vladimir

Show all comments

Hello community!

 

I need an advice is there any solution (in Creatio itself or as third-party toolin Marketplace) for the following:

 

We have several regional marketing teams working in one instance. And while visibility of Contact records is bounded to regional contacts for each team, we have the one total amount of marketing contact licences for all teams. Can we split that total number of licences somehow between teams? It would help to balance the licences consumption, if one regional team will consume all licences allocated to it, other licences will remain available for other regional teams.

 

If there aren't any ready-made solutions, how can one achive that goal in the shortest way with help of custom development?  

Like 0

Like

2 comments

It seems nobody has any ideas.. maybe it is subject for Creatio R&D team?

Artem Evdokimenko,

It is impossible to make any customization in the marketing active contacts licenses mechanism. Any subject regarding the licenses should be directly discussed with the Creatio side.

Show all comments