Hi,

I've created a remote angular module for Freedom UI, following the tutorial: https://academy.creatio.com/docs/developer/front_end_development_freedo…

I added my component to Freedom UI library. Thus, I'm able to drag'n'drop my component to page area.

The problem is that my component have some configuration params (a string and an integer), that I can't fill using the no-code designer. I have to do it manually, from source code.

I would like to add such configuration options to component to make it possible to configure a component instance in no-code way.

For example, when I create button I can change its label or action performed on click event. I would like to achieve something similar with my component.

I use Creatio 8.0.7

I will be really grateful for your answers :)

Eryk

 

Like 3

Like

6 comments

Could anyone help me? :)

Hi,

Can you please give more detail on these configuration params you are talking about? Some screenshots would be nice.

Dmytro Vovchenko,



Yes, sure :)

Some elements, like an input, have many configuration options:

 

And my component not:

 

So, I'd like to add similar configuration options to my custom component to reduce amount of coding while using custom angular components.

 

Hi,

Unfortunately for now the system does not support such no-code option.

However, already informed our developers about this option and they will work on this feature in future versions.

Thank you for helping us improve the system.

Hi, has anything changed since last time? :)

Hello,



After reviewing all the information, we inform you that at the moment the system still does not support this kind of no-code option. However, this particular request has been passed on to the responsible team for consideration and implementation in future releases. Task number: PR-29433.

Show all comments

Hello Community, 

 

Is there a way to copy the record on click of a button in the Form Page such that it will open the record with copied values and is open to edit values?

When I tried to copy a record using Modal class it directly creates a new record in the DB. I don't want to create a new record in DB with copied values but to open a new record with copied value.

 

Thanks in Advance

Like 0

Like

3 comments

Hello,

By clicking a button you can start a business-process in which you have the element "Open edit page". In this element, you can also set default values from all the columns you need. 

Hello, 

 

Thankyou for your reply,

I tried doing this but I could not find my custom Form page in the Open edit page field. 

Actually I wanted to perform the same operation that we do on click of "Copy" of a record from a list page in the form page on click of button. 

On click of a button, Copy all the fields in the current form page and open a new record with  copied fields, But the record should not get saved in DB until user saves the record. 

 

Any Suggestions is really helpful. 

 

Thanks

Gargeyi

 

 

Hello,

In that case, you can add a button with the action "Open new record".

With it, you can choose your objects and set the column values from the main record.

this button will open a new page without actually saving the record.

Show all comments

Hello Community, 

 

I have a requirement to save and close the page on click of Yes in the confirmation pop up message in Freedom UI 

 

When I tried to do it after choosing Yes, using Handler chain, it doesn't accept await. 

and so I tried it without using await. 

 

Now, it closes the page without saving the page and so it shows unsaved changes popup message. 

The code written is attached below

Any suggestions is really helpful.

Thanks

Gargeyi

File attachments
Like 0

Like

4 comments

Try using await on the calls to handlerChain.process/

For example: 

await handlerChain.process ({...

Ryan

Hello Ryan, 

When I tried to add await with in the result block, it throws syntax error. 

Do we have any alternative way to do it. 

Thanks

Gargeyi

 

GargeyiGnanasekhar,

What specifically is the error you’re getting?

Ryan

Ryan Farley,

 

Attached the screenshot where the error occurs. 

I wanted to save and close the page after user click on Yes button from the confirmation box.

 

Thanks

 

Show all comments

Hi community,

 

what is the right way to start customizing the new version of the account entity in freedom UI?

I have tried creating a new app and using the account object, the new app shows me the new list but still uses the standard form defined in the "360 customer" app.

Like 0

Like

1 comments

Hello Stefano,



In order to access Freedom UI, you will need to go to System Settings,

Please follow the instructions in this Guide:

https://academy.creatio.com/docs/user/platform_basics/freedomUI/turn_on…

 

Show all comments

By default, lookups are sorted on Name.



I have a lookup on a freedom UI page that I instead want to sort (ascending) based on an integer field on the lookup called "Order".



I can see "LookupAttribute_xxxx_List_Sorting" attributes within the page when debugging, I'm assuming these can be used to order the lookups but I'm not sure what data the attribute expects.



Thanks for any assistance!

Like 1

Like

6 comments
Best reply

After a year or so I decided to have another look at this and have managed to get it working via code.
 

For example, adding this handler on the Accounts_FormPage should filter the "Type" by "Id" descending.


(In the code block change the ">" to ">", can't seem to fix this in the reply editor)

 

{
	request: "crt.HandleViewModelInitRequest",
	handler: async (request, next) => {
		let sortingConfigList = await request.$context.Type_List_Sorting;
		let firstSortingConfig = sortingConfigList[0];
		firstSortingConfig.columnName = "Id";
		firstSortingConfig.direction = "desc"; //desc or asc
		return next?.handle(request);
	}
}

 

 

 

 

So the page context attribute we need to change is attributecode_List_Sorting.
This is a list of "order configurations" (so you can order by multiple columns for example)
So we just need to get the first item in this list and change the columnName from Name to whatever other field we need to order on
And we can optionally change the direction property to "desc" to order descending (it is "asc" by default).

The logic of the combobox is developed in the way that when the page os loaded the metadata for the combobox is generated additionally and it ignores custom sorting and always adds default sorting. I will notify the product owner about your question in the community so that the possibility of custom sorting could be developed and added in Fredom UI out-of-the-box. Thank you for helping us in making the app better!

Oleg Drobina,

Hello, is it available for Freedom UI current version?

This is definitely something we'd be interested in being able to do too. It was possible in Classic UI.

Any info on whether this is now possible in Freedom UI?

After a year or so I decided to have another look at this and have managed to get it working via code.
 

For example, adding this handler on the Accounts_FormPage should filter the "Type" by "Id" descending.


(In the code block change the ">" to ">", can't seem to fix this in the reply editor)

 

{
	request: "crt.HandleViewModelInitRequest",
	handler: async (request, next) => {
		let sortingConfigList = await request.$context.Type_List_Sorting;
		let firstSortingConfig = sortingConfigList[0];
		firstSortingConfig.columnName = "Id";
		firstSortingConfig.direction = "desc"; //desc or asc
		return next?.handle(request);
	}
}

 

 

 

 

So the page context attribute we need to change is attributecode_List_Sorting.
This is a list of "order configurations" (so you can order by multiple columns for example)
So we just need to get the first item in this list and change the columnName from Name to whatever other field we need to order on
And we can optionally change the direction property to "desc" to order descending (it is "asc" by default).

John Kingsbury,

That's excellent news. Thanks for sharing. 

Ryan

Show all comments

Hello Community, 

I wanted to disable/Remove AddNew button from lookup option in a editable detail. 

I could not see any option to edit the settings for the column in the editable detail.

I have attached the screenshot of the lookup in the detail.

Is there any way to set property to disable the option to add New record from the detail column in client schema?

I am able to remove "Add New" if I choose the same object for a lookup field in the form page and by unchecking "Enable adding new values" option in the settings of field. But I am not able to do it for the field in the detail.

 

Any suggestions are really helpful

 

Thanks

Gargeyi

Like 0

Like

2 comments

Hello Gargeyi,

 

In 8.0.6 there is an "Enable adding new values" option in the FreedomUI designer for the dropdown element:

You can disable this option in case you don't need to add new records from the dropdown.

Thankyou for your response Oleg,

 

But I wanted to disable it in the editable detail (in-line). Here I am not able to see any settings for the columns of the detail from the Grid.

Attached the screenshot of the Detail Grid where the Order number is the lookup field referring an object.

 

Any suggestions is really helpful.

Show all comments

Dear,

 

We want to refresh a Freedom UI page from a business process.

This process is triggered when a field has been modified and will do some calculations.

After that, the page should be refreshed.

 

In Classic UI, there was an add-on in the Marketplace of it could be fixed with sending a message from a script task which was processed by a method in the javascript page.

 

Is this still an option in Freedom UI? Or is there another solution?

 

Kind regards,

Vincent

Like 0

Like

1 comments

Hello, 

You can see how to do this for a Freedom UI page here 

https://customerfx.com/article/receiving-server-side-messages-in-a-crea…

That article shows how to receive the message, the article links to another article that shows how to send the message from the process. As for refreshing the page once you get the message, see https://customerfx.com/article/refreshing-reloading-page-or-list-data-o…

Also, just to point out, this sort of thing won't be necessary in 8.0.7, which is due out soon. There will be a built in way where you can set an option in the object for it to auto refresh called "Enable live data update". Checking this will handle the sending of the message and refreshing any UI bound to the object automatically when the object is modified in processes etc.

Ryan

Show all comments

Hello, 

 

I am able to read a single record using Model class that helps me alot. 

For reading a collection I am using ESQ, but I wanted to use Model class which simplifies my work.

Is it possible to read a collection of records using Model class?

 

Like 0

Like

3 comments

Hello,



Could you please clarify what you mean by "Model class"? Also, could you kindly provide us with an example of how you read a record?



Thank you.

For Orkhan: The model class is the new method for working with data objects in Freedom UI pages, available in the DevKit SDK, replacing EntitySchemaQuery, InsertQuery, UpdateQuery, and DeleteQuery. An example of reading a record using the Model class is here https://customerfx.com/article/retrieving-a-record-via-the-model-class-…

 

However there are issues currently when reading a collection of records since the filters are not properly set. I have an open case with support on this topic (case #SR-01182879). When filters are used with the model load it sets the filters incorrectly and causes a server error. I have an article ready to publish on this topic as soon as the issue is resolved but I’ve not heard anything from support yet. 

The code to load a collection of records using the model class would look something like this (however, as I mentioned, the filter gets applied incorrectly and the query fails with a server error 500 due to the invalid filter)

const accountModel = await sdk.Model.create("Account");
 
const filters = new sdk.FilterGroup();
await filters.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "Type.Name", "Partner");
 
const partners = await accountModel.load({
    attributes: ["Id", "Name", "Type"],
    parameters: [{
        type: sdk.ModelParameterType.Filter,
        value: filters
    }]
});



Ryan

Also, I do have a workaround for the issue with querying a collection of records using the Model class. The issue that occurs is with how the filters are serialized to JSON for the request. However, if you shallow copy the filters first, then replace the filter.items, it will work. Here is a sample with this workaround (this does work successfully):

const accountModel = await sdk.Model.create("Account");
 
// create the filters
const filters = new sdk.FilterGroup();
await filters.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "Type.Name", "Partner");
 
// shallow copy the filters to a new object and replace the items
const newFilters = Object.assign({}, filters);
newFilters.items = filters.items;
 
const accounts = await accountModel.load({
    attributes: ["Id", "Name", "Type"],
    parameters: [{
        type: sdk.ModelParameterType.Filter,
        value: newFilters
    }]
});

Hopefully I'll hear back on why this only works with this workaround and this will no longer be necessary.

Ryan

Show all comments

Hello, 

 

I have a case to filter a lookup field based on the other lookup field value 

lets consider I have two lookup fields A and B and I have A1, A2 items in 'A' Lookup. 

I have B1, B2, B3, B4 in B lookup.

Now I wanted to filter B1 and B2 from lookup 'B' If i have chosen A1from A lookup.

and B3, B4 If I have chosen A2 from A lookup  

I tried using crt.LoadDataRequest in crt.HandleViewModelAttributeChangeRequest handler on change of A lookup. But it could not find the datasource of the lookup B on changing Lookup A, and it could not able to filter the lookup even in page load.

Any suggestions are really helpful.

 

Thanks

Gargeyi

 

 

Like 0

Like

2 comments

HI Team, 

 

How we can use iframe in the new Freedom UI? There is some code we can add?

Thanks, 

 

Like 1

Like

6 comments
Best reply

Federico Buffa ?, Damien Collot, 

It's possible to do that with the help of this article:

https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platfor…

In the 1.2.ii. "Declare the component class", you should insert your iframe HTML markup.

 

Also, keep in mind that not all sites can be inserted as iframes due to different security settings.

 

We have plans to implement a no-code component in future releases. Thank you for your feedback about this.

Hello Federico, 

 

Please let us know if you have tried to implement the functionality as described in our Academy?

If there were any errors or difficulties, please let us know which exactly?

https://academy.creatio.com/docs/developer/interface_elements/record_pa…

 

Best regards,

Anastasiia

Anastasiia Zhuravel,

Yes this seams to work only for the classic UI no for the Freedom. I need a solution for the new UI

Same, Client wanted something similar for an integration with an external application. Was looking forward to more advanced capabilities in Freedom UI

Hello,

 

It seems that IFRAMECONTROL view type is not supported in Freedom UI and also we don't have any example of this implementation internaly. I've asked our core R&D team to add this possibility in the out-of-the-box configuration and provide some examples in the Academy. Thank you for this idea and helping in making the app better!

Oleg Drobina,

Looks is something very needed for the clients :)

Federico Buffa ?, Damien Collot, 

It's possible to do that with the help of this article:

https://academy.creatio.com/docs/8.x/dev/development-on-creatio-platfor…

In the 1.2.ii. "Declare the component class", you should insert your iframe HTML markup.

 

Also, keep in mind that not all sites can be inserted as iframes due to different security settings.

 

We have plans to implement a no-code component in future releases. Thank you for your feedback about this.

Show all comments