Hi, 

I have tow connected objects, and I want to display them in nested lists (foreach row in Object1, display the connected objects from Object2). Something like that:

  • Object1
    • Object2
    • Object2
  • Object1
    • Object2

How can I do it?

Thanks

Like 0

Like

1 comments

Dear Smadar,

 

For Classic UI, you can use a marketplace solution: https://marketplace.creatio.com/app/tree-view-creatio

 

For Freedom UI, you will need to create your own component. You can find more information about that on Creatio Academy: https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platfor…

 

I hope this helps.

Have a great day!

Show all comments

Dear colleagues,

 

In Classic UI I can solve this by code, but in Freedom is also possible?, somebody know in which schema I need to do this and the related code?

 

Thanks & Regards

Like 1

Like

15 comments
Best reply

Note, when adding these back in, you'll need to make sure that the "items" and "primaryColumnName" values match the values from your list. For Section Lists. The "Items" and "PDS_Id" values need to be updated to match your List's property values - those can likely stay as-is for section lists, but for new lists added, you'll need to update those values. See for more: https://customerfx.com/article/adding-row-action-menu-items-to-a-creati…

and the same in a Detail (Freedom page)?

Hello Julio,

See this article here: https://customerfx.com/article/adding-row-action-menu-items-to-a-creati…

You can override the menu (usually to add other menu items to it). When you do so you override the "Open", "Copy", "Delete" options and need to add them back in. You could override the menu and then just only add back in the "Open" option. It would look like this (the article will provide more details)

viewConfigDiff: /**SCHEMA_VIEW_CONFIG_DIFF*/[
    {
        "operation": "merge",
        "name": "DataTable",
        "values": {
            //...,
            "rowToolbarItems": [{
                type: 'crt.MenuItem',
                caption: 'DataGrid.RowToolbar.Open',
                icon: 'edit-row-action',
                disabled: "$Items.PrimaryModelMode | crt.IsEqual : 'create'",
                clicked: {
                    request: 'crt.UpdateRecordRequest',
                    params: {
                        "itemsAttributeName": "Items",
                        "recordId": "$Items.PDS_Id"
                    }
                }
            }]
        }
        //...
    },
    //...
]/**SCHEMA_VIEW_CONFIG_DIFF*/

Essentially you're replacing the existing menu with one that only has the Open menu option. This works for any list (section or a list on a page)

Ryan

Ryan Farley,

Thanks Ryan, I promise I looked first, before to publish, in your articles, but didn't found this one. Thanks a lot

 

Regards

Julio

Ryan Farley,

Dear Ryan, I didn't found the crt.DataGrid element in the viewConfigDiff in the code of the listpage, I found it on a FormPage, but I need it also in a the ListPage

solved no need to search crt.DataGrid, jus add it on viewConfigDiff

Julio.Falcon_Nodos,

Yes correct. For the list page, the List (crt.DataGrid) exists in the parent page, you just need to merge in the changes.

Ryan

No worries - there's so much new info now with Freedom UI stuff, it's hard to know what to even search for!

Julio.Falcon_Nodos writes:

Ryan Farley,

Thanks Ryan, I promise I looked first, before to publish, in your articles, but didn't found this one. Thanks a lot

Regards

Julio

This could really do with being configurable using no-code tools, as it's quite cumbersome to apply to every list users will see but is often important - being able to copy records which should have to be created in specific ways is often an issue for business data.

Ryan Farley,

 

Hello again Ryan

 

How can I remove the delete option on a Freedom UI page , I see that when I add a detail only a FormPage is created, but there is no ListPage (like in Classic UI). So is it possible to solve this in a Freedom UI detail?

 

Julio.Falcon_Nodos,

Hi Julio, basically, any time you override the rowToolbarItems it replaces what is there with that you provide. Meaning, all the existing out of the box ones are gone. If you want no items there, you can just add and empty array:

rowToolbarItems: []

However, this has the annoying side effect of leaving an empty menu that pops up when the row actions button is clicked. I'm not sure if there's a property to remove the row actions button completely, so I usually just hide it with CSS.

Ryan

Ryan Farley,

Thanks Ryan, I'm already solved, but I want to maintain "Open", "Copy" and just remove "Delete", how can I did it?

solved... adding in "rowToolbarItems", this piece of code

"rowToolbarItems": [
  // Edit
  {
	type: 'crt.MenuItem',
	caption: 'DataGrid.RowToolbar.Open',
	icon: 'edit-row-action',
	disabled: "$Items.PrimaryModelMode | crt.IsEqual : 'create'",
	clicked: {
		request: 'crt.UpdateRecordRequest',
		params: {
			"itemsAttributeName": "Items",
			"recordId": "$Items.PDS_Id"
		}
	},
  },
  // Copy
  {
	  type: 'crt.MenuItem',
	  caption: 'DataGrid.RowToolbar.Copy',
	  icon: 'copy-row-action',
	  disabled: "$Items.PrimaryModelMode | crt.IsEqual : 'create'",
	  clicked: {
		  request: 'crt.CopyRecordRequest',
		  params: {
			  "itemsAttributeName": "Items",
			  "recordId": "$Items.PDS_Id",
		  },
	  },
  }                      
],

Note, when adding these back in, you'll need to make sure that the "items" and "primaryColumnName" values match the values from your list. For Section Lists. The "Items" and "PDS_Id" values need to be updated to match your List's property values - those can likely stay as-is for section lists, but for new lists added, you'll need to update those values. See for more: https://customerfx.com/article/adding-row-action-menu-items-to-a-creati…

Ryan Farley,

Is there any other way to hide the 3 dots for row action menu to even spawn

Pranshu Basak,

Sadly, removing all menu items does not remove the 3 dots button (in current versions, at least - hopefully that changes). For now I typically just hide it with some CSS.

Ryan

Show all comments

Dear mates,

Our system display a compilation error warning. If we click on the button, the tooltip displayed is empty.

We had compilation errors in the past, but the issues are resolve.

I tryed to delete records in the Compilation History Lookup but the system refused to delete them.

How can i remove the Warning ?

Thank you,

Nicolas

Like 1

Like

3 comments
Best reply

Hello,

 

Please note that this issue is connected to the 8.1.2 release and in order to fix it you need to create a case directly for our Support team (support@creatio.com) so we could work with the site in question.

Same here in our cloud dev environment with this new 8.1.2 functionality

You are right, we do not have the problem on our production environment, only on the dev env.

Hello,

 

Please note that this issue is connected to the 8.1.2 release and in order to fix it you need to create a case directly for our Support team (support@creatio.com) so we could work with the site in question.

Show all comments

Hi Everyone,



I want to exclude all the contacts that are in a particular folder from the main folder so that those contacts are visible only in that folder and not on the main list page. How can I do it?

 

Thanks in Advance.

Like 0

Like

1 comments

Hello,

 

Unfortunately, it is not possible to perform this task in a basic way. You can only filter the data you need in folders, but there is no way to completely move all records from the main contact list page to one folder so that they are only available in one folder and not on the main list page.

 

We've registered this idea in our R&D team backlog for consideration and implementation in future application releases. Thank you for helping us to improve our product.

Show all comments

Hi

 

I want to show the global search only for the admin users. Is there a way to acheive this ?

Like 0

Like

1 comments

Hello,

 

To achieve this task you can try the following approach:

 

1) Create a system operation in the "Operation permissions" section with the code like "GlobalSearchInputVisible" and grant access rights to system administrators only:

2) Activate the system feature with "AllowCreateAngularSchema" code (it's not available by default in the features list (available via /0/Shell/#Section/AppFeature_ListPage), you need to create a record in the list and enable it for your user).

 

3) After enabling the featue at step 2 a new option will appear in configurations that allows creating replacements for angular schemas:

Select this option and select "MainShell" as a parent schema for the created module.

 

4) Specify the following code in the schema from step 3:

define("MainShell", /**SCHEMA_DEPS*/["@creatio-devkit/common", "css!CardSchemaViewModule", "css!MainShellCSS"]/**SCHEMA_DEPS*/, function/**SCHEMA_ARGS*/(devkit)/**SCHEMA_ARGS*/ {
    return {
        viewConfigDiff: /**SCHEMA_VIEW_CONFIG_DIFF*/[]/**SCHEMA_VIEW_CONFIG_DIFF*/,
        viewModelConfig: /**SCHEMA_VIEW_MODEL_CONFIG*/{}/**SCHEMA_VIEW_MODEL_CONFIG*/,
        modelConfig: /**SCHEMA_MODEL_CONFIG*/{}/**SCHEMA_MODEL_CONFIG*/,
        handlers: /**SCHEMA_HANDLERS*/[
			{
				request: 'crt.ContentDisplayedStateChangedRequest',
				handler: async (request, next) => {
					const rightService = new devkit.RightsService();
					const canUseGlobalSearch = await rightService.getCanExecuteOperation('GlobalSearchInputVisible');
					if (!canUseGlobalSearch) {
						var element = document.querySelectorAll('[data-item-marker="AppToolbarGlobalSearch"]');
						element[0].remove();
					}
					return next?.handle(request);
				}
			}
		]/**SCHEMA_HANDLERS*/,
        converters: /**SCHEMA_CONVERTERS*/{}/**SCHEMA_CONVERTERS*/,
        validators: /**SCHEMA_VALIDATORS*/{}/**SCHEMA_VALIDATORS*/
    };
});

The idea here is simple: check if the user has access to system operation and if not - take the element that contains data-item-marker="AppToolbarGlobalSearch" selector and remove it from DOM.

5) Save the schema and refresh the page.

 

As a result the Global Search input will be hidden for regular users, but will be available for system administrators.

Show all comments

Hi Everyone,

I'm looking to filter a lookup value based on "StartDate" and "EndDate" column field which is present in the lookup object . I attempted to achieve this through the following handler code, where I compare the current date with the End Date. However, it didn't work. Does anyone know of a better approach to filter the lookup value?

Below is my handler code:

{

    request: "crt.LoadDataRequest",

    handler: async (request, next) => {

        // filter the contact lookup for the account

                     

        if (request.dataSourceName !== "LookupAttribute_jw8dbjp_List_DS") {

            return await next?.handle(request);

        }

        // Add filter for UsrEndDate not less than the current date

        const currentDate = new Date();

        const filter = new sdk.FilterGroup(sdk.ComparisonType.And);

        filter.addItem(sdk.Filter.createColumnFilterWithParameter(

            "UsrEndDate",

            sdk.ComparisonType.GreaterThanOrEqual,

            currentDate

        ));

        request.parameters.push({

            type: "filter",

            value: filter

        });

        return await next?.handle(request);

    }

}

Like 0

Like

1 comments

Hello,

Take a look at this discussion, in there you can find an example of how to configure and add a needed filter.

In order to get the exact filter you need, use the test list method described there.

Show all comments

Hi team,



I created a multi select lookup page for a detail in freedomUI using "crt.OpenLookupPageRequest" functionality. I wanted to either remove already selected records in the popup window or show them as checked if they are added into the detail. 

Source for multiselect page : https://customerfx.com/article/invoking-a-multi-select-lookup-dialog-on-a-creatio-freedom-ui-page/

Can anyone help me with this issue?



Expected functionality:





Thanks in advance

Goparna Nasina

Like 1

Like

1 comments

Hello!

You can use the filtersConfig parameter to filter records, as mentioned in the article.

Or you can use the option selectionState to predefine selected rows, which will be pre-selected when the lookup page is opened.

 

Example of selected records:

{
	type: "crt.OpenLookupPageRequest",
	...
	selectionState: {
		type: 'specific',
		selected: [
			'00000000-0000-0000-0000-000000000000',
			'11111111-1111-1111-1111-111111111111',
		]
	}
}

 

An example of pre-filtering records:

{
	type: "crt.OpenLookupPageRequest",
	...
	filtersConfig: {
		filterAttributes: [
			{
				name: 'MyFilter',
				loadOnChange: false
			}
		],
		attributesConfig: {
			MyFilter: {
				value: {
					"items": {
						"29e16d42-36f1-4e04-9029-4321cbb2494d": {
							"filterType": 1,
							"comparisonType": 11,
							"isEnabled": true,
							"trimDateTimeParameterToDate": false,
							"leftExpression": {
								"expressionType": 0,
								"columnPath": "Name"
							},
							"isAggregative": false,
							"dataValueType": 1,
							"rightExpression": {
								"expressionType": 2,
								"parameter": {
									"dataValueType": 1,
									"value": "Super"
								}
							}
						}
					},
					"logicalOperation": 0,
					"isEnabled": true,
					"filterType": 6,
					"rootSchemaName": "Contact"
				}
			}
		}
	}
}

 

Show all comments

Hello

For mobile application I need to set Field in Account Page AS readonlny Permanently

 

I have found 2 solutions witch works in When Freedom UI checbox is unchecked

 

one of them: https://community.creatio.com/questions/how-make-fields-read-only-mobil…

the other is  addBusinessRule of type : Terrasoft.RuleTypes.Activation

 

but they don't work when Freedom UI checbox is checked :(

 

any solutions for setting fields Readonly for FREEDOM UI checked ?

Like 0

Like

5 comments
Best reply

Hello Tomasz,

 

The code you've used is using Ext.JS and is not working in Freedom UI.

 

In the latest application versions the business rules setup on the object level will also be applied to the page in the mobile app. Tested in 8.1.1 and the "Make elements read-only" rule is working properly:

The object should be published after adding such a rule and relogin performed in the app.

Hello Tomasz!

 

For Freedom UI, you may use readOnly property of the "Input" component, or the "Read-only input" component, according to this article: https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platform/mobile-development/customization/freedom-ui/customize-page/references/common-components#title-15089-5

 

Best regards,

Natalia

 

Hello Tomasz,

 

The code you've used is using Ext.JS and is not working in Freedom UI.

 

In the latest application versions the business rules setup on the object level will also be applied to the page in the mobile app. Tested in 8.1.1 and the "Make elements read-only" rule is working properly:

The object should be published after adding such a rule and relogin performed in the app.

thanks Oleg! it works for FREEDOM UI checked !

I have noticted that if filed vale is empty ( or null) control dissapears

any solution how make it still visibale even if its empty ???

Tomasz Sobkowicz,

 

This has something to do with the rules setup. Please double-check all the rules that are set for your control.

there are no other rules

Show all comments

Hello, 

Are the instructions below still apply to add a edit page to a lookup or is there an easy way to do this on Freedom UI version 8.1.1?

 

Adding lookup with edit page | Community Creatio

 

Thanks,

Jose

Like 1

Like

1 comments
Best reply

It is still the same since the Lookups area is still classic UI.

Also, BTW I have the instructions with Postgresql instructions here, if interested/needed: https://customerfx.com/article/creating-an-edit-page-for-a-lookup-in-cr…

It is still the same since the Lookups area is still classic UI.

Also, BTW I have the instructions with Postgresql instructions here, if interested/needed: https://customerfx.com/article/creating-an-edit-page-for-a-lookup-in-cr…

Show all comments

Is it possible to specify an extra column or 2 to be used for searching against when typing text into a combobox in Freedom UI? The use case is that users can select an Account in the ComboBox lookup, but should be able to search in that dropdown combobox using either the account's Name, or its Account Number.

 

I know it's possible to do this by opening up the modal lookup window when that's configured, but to save some clicks ideally it would be possible to just type/paste into the combobox to achieve this behaviour.

Like 1

Like

1 comments

Hello Harvey,

 

It's not possible for now, but we've registered it in our R&D team backlog for consideration and implementation in future application releases.

 

Thank you for helping us to improve our product. 

Show all comments