Hi,

I just started working with the freedom UI and having a bad time trying to make the top areas scroll up.

I couldn't find an OOB setting that sets it and tried adding "position": "static" to the source code, but it did not help.

Can you help?

Thanks,

Chani

 

Like 1

Like

5 comments

Hello Chani,



There is no such OOB functionality.



However, 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. 

 

Bogdan,

What about coding? 

Chani Karel,

 

Unfortunately we don't have any examples of such logic of static position of element to share. We need to wait until this functionality is implemented out-of-the-box so it could be used in the system.

Oleg Drobina,

Hi, Any updates on this?

Thanks

You can add CSS to a Freedom UI page. See this article: https://customerfx.com/article/adding-custom-css-style-sheets-in-bpmonl…

Then you can try adding the styles to the page elements in the added CSS.

Ryan

Show all comments

Hi Community,

I want to make certain fields required based on condition that detail has a record in Freedom UI.

 

Thanks

Rakshith

Like 1

Like

1 comments

Hello,

Here is an example of how to change the Required

viewModelConfig: /**SCHEMA_VIEW_MODEL_CONFIG*/{
            "attributes": {
                "UsrCustomText": {
                    "validators": {
                        "required": {
                            "type": "crt.Required"
                        }
                    }
                },
....
 
{
                request: "crt.HandleViewModelAttributeChangeRequest",
                handler: async (request, next) => {
                    if (request.attributeName === 'LookupAttribute_nj0qj8x') {
                        const accountAddressModel = await sdk.Model.create("AccountAddress");
                        const filters = new sdk.FilterGroup();
                        await filters.addSchemaColumnFilterWithParameter(sdk.ComparisonType.Equal, "Account", request.$context.Id.__zone_symbol__value);
 
                        const address = await accountAddressModel.load({
                            attributes: ["Id"],
                            parameters: [{
                                type: sdk.ModelParameterType.Filter,
                                value: filters
                            }]
                        });
                        if (address.length > 0) {
                            request.$context.enableAttributeValidator('UsrCustomText', 'required');
                        } else {
                            request.$context.disableAttributeValidator('UsrCustomText', 'required');
                        }
                    }
                    return next?.handle(request);
                }
            }

However, this code is currently not working, the fix to it will be added in a version 8.0.10

Show all comments

Hello Everyone,



I Have uploaded the wrong Data in a custom object based on Freedom UI. Is there a way to delete multiple records in Freedom UI? Also, if not, how do I create a custom Button in Freedom UI and Link it with BP so I can overcome this issue?

 

Like 1

Like

2 comments

There used to be a great Marketplace app that was an SQL console. I would use that to delete data from an object. I have also created a lookup with the custom objects and deleted data from there. If you have a lot of rows it is a long process. You can also open a ticket with support with the SQL query to delete and they may run it for you.

You can also add SQL query to your Custom package and execute it

Show all comments

Hello Community,

 

I have a field in a form page, I wanted the field to be filled with the Master record number when copying a record.

 

For example: 

Master record numb 1, and now I am copying the record from the menu items from the list form page. 

All the values are copied and a new record page should be opened with Master record Number (1) in the field. 

 

how can I achieve it? 

I could not see any attribute presenting the parent record number in the copied record. 

Any suggestions is really helpful

Thanks in Advance

Like 0

Like

1 comments

Hello,



We've found one possible way of achieving the desired result. Here are the steps:

1) Create a business process with the following schema:



 

The idea here is to pass AccountId as a parameter, read existing account that we are copying (and the value in the autonumbered column particularly) then create a new account record with the default name that is specified in the "Add data" element ([#Read existing account.First item of resulting collection.Name#] + " Copy") and finally open this copied record for editing.

2) In the page designer add a new button that will trigger our business process from step 1 as follows:

Here we pass current record Id as a process parameter for the process to be executed properly.

Additionally this approach will perfectly work in case the user that triggers this process uses new shell (has the "true" value in the system setting with "UseNewShell" code). We've tested it on our side and it copied the record without modifying an autogenerated column, so you can also try this on your side.

Show all comments

Hello community,



I have a use case where I need to hide the menu buttons in the "LeftPanelTopMenuModule" for all users except for System Administrators in FreedomUI.

I tried using these community posts, but I am unable to hide the buttons for other users.

https://community.creatio.com/questions/hide-run-process-button-side-panel-roles-1

and https://community.creatio.com/questions/hide-run-process-button-side-panel-roles-replacing-client-module







Could you please help me with this issue.



Thanks in advance 

Goparna Nasina

Like 0

Like

1 comments

Hello,

 

There is no ready instruction for this case in Freedom UI unforutnately and according to the code there is no property to override and it's not obvious how to add it:

I will ask our R&D team to make it possible to control the visibility of this panel based on the user role. Thank you for reporting this question to us and helping us in making the app better!

Show all comments

Hello Community, 

I had to write a code in the custom Handler to perform many validations based on the field values before saving a page. 

Currently the handler contains almost 2000 lines of code, also it also contains duplicate lines of code in two different places.

I wanted to avoid it and need to split the code into multiple functions. 

Is it possible to do it in Freedom UI?

Thanks

Gargeyi

Like 0

Like

6 comments

Hello Gargeyi,

 

In Freedom UI the best option would be - to move your large handlers logic to separate schemas and call them when required.

 

Here is an example how it may be done:

 

1) Create a custom Module, where executive code would be stored (It would be better if you use the same package. At least, make sure that the package with handlers is within dependant ones of the package with requesting schema)

 

2) Fill our new module with the required logic

 

 

3) Add our new module to the main Schema resources

 

4) Use Global functions

 

Example result:

 

As you may see on Contacts_FormPage we had "Raw Data for Global Handler" that was transformed into "Resulting Data for Global Handler" using a global method in a separate schema. This method may be called several times instead of duplicating the code.

 

This approach should let you optimise your methods.

 

Best Regards,

Dan

 

Hello denis, 

 

Thankyou for your suggestion, I will try using it. 

Hello Denis, 

This works well, But I am not able to use Model class in the new module. 

I have added the dependencies as well. 

Is there any possibility to use the model class to read/Write/update the fields in the new module ?

 

Thanks

Gargeyi.G

I've been able to use the sdk classes, such as model, from modules without issue. Can you share some of the code for how you're using it? Also, which version are you on? I did experience some somewhat related issues with using referenced modules in 8.0.6 but were resolved in 8.0.8.

Ryan

Ryan Farley,

I am using version 8.0.8, Attaching the sample code I tried using sdk classes . When I am trying to load RoadSegment, It throws me an error saying "RoadSegment.load is not a function".

 

Suggest me if I am doing anything wrong here .

Hello , 

 

Is there a way I can use Modal classes to read data from new module?

Thanks

Show all comments

Hello Community, 

 

I have an editable detail with a field type as lookup, user can update the lookup. 

when user selects lookup value from the dropdown and click on save all button for the editable detail, a business process(the business process is designed to run the process for each item) gets triggered to calculate other fields in the record. 

when I do this for a single record I am able to see the changes with no issues, 

But when I update multiple records, I could not see the latest updates for all the records except for the one record. But when I do a refresh page, I am able to see the updated values.

I have  checked the option "Enable Live Data" for the detail object as well. 

Any suggestions are really helpful

 

Thanks

Gargeyi

 

Like 0

Like

1 comments

Hello,



I believe your business task could be achieved by using ''Refresh active page' process element for Creatio.

Show all comments

Hi Community,

I tried to delete a record in the list page with menu option based on below Code. But I got the  Error shown in the image

{
                            "type": 'crt.MenuItem',
                            "caption": 'DataGrid.RowToolbar.Delete',
                            "icon": 'delete-row-action',
                            "clicked": {
                                "request": 'crt.DeleteRecordRequest',
                                "params": {
                                    "itemsAttributeName": "Items",
                                    "recordId": "$Items.PDS_Id",
                                },
                                "useRelativeContext": true
                            }
                        },

Like 0

Like

3 comments

Hello,

Not sure what you are trying to accomplish.

Are you trying to create your own delete button based on the menu item? Then you can try doing it with a "Run Process" option or use the base menu item for the record.

Or are you receiving this error while using the base "Delete" option? In that case, make sure that you don't have connected records for this object (for example detail) because currently there is a problem with the base logic and it won't allow you to delete records with connected objects until version 8.1.

This error is still present in the 8.2 version. Do we have a fix for this? I am trying to call the crt.DeleteRecordRequest when a button is clicked!

 

 

Geeviniy Vazavan and Rakshith Dheer Reddy,

 

Why don't you try using the crt.DeleteRecordReques to achieve your task? Here:

 

{
                "request": "crt.DeleteRecordRequest",
                "handler": async (request, next) => {
                    var recordId = request.recordId;

                    //your logic here
                    await next?.handle(request);
                }
            }

 

This handler should be added to your list page schema handlers. Why this is not an option? What exactly is needed in the overriden action in the list that cannot be achieved with the delete handler override that will not return any errors?

Show all comments

Hi Community,

I tried to override the List page menu in Freedom UI. it successfully worked for edit and copy options. But it won't work for the delete option.

 

"rowToolbarItems": [

                        {

                            "type": 'crt.MenuItem',

                            "caption": 'DataGrid.RowToolbar.Open',

                            "icon": 'edit-row-action',

                            "clicked": {

                                "request": 'crt.UpdateRecordRequest',

                                "params": {

                                    "itemsAttributeName": "Items",

                                    "recordId": "$Items.PDS_Id",

                                },

                                "useRelativeContext": true

                            }

                        },

                        {

                            "type": 'crt.MenuItem',

                            "caption": 'DataGrid.RowToolbar.Copy',

                            "icon": 'copy-row-action',

                            "clicked": {

                                "request": 'cfx.CustomCopyRecordRequest',

                                "params": {

                                    "itemsAttributeName": "Items",

                                    "recordId": "$Items.PDS_Id",

                                },

                                //"useRelativeContext": true

                            }

                        },

                        {

                            "type": 'crt.MenuItem',

                            "caption": 'DataGrid.RowToolbar.Delete',

                            "icon": 'delete-row-action',

                            "clicked": {

                                "request": 'crt.RemoveRecordRequest',

                                "params": {

                                    "itemsAttributeName": "Items",

                                    "recordId": "$Items.PDS_Id",

                                },

                                "useRelativeContext": true

                            }

                        },

Like 0

Like

1 comments

Hi Rakshith,

 

Indeed the delete handler cannot be overwritten, tested in the latest 8.0.8 build. I will create a task for our R&D team to make it possible to customize the logic of this handler. Meanwhile if possible use a business process that is triggered upon record's deletion (it should be marked as a non-background process (start signal of a business process)).

 

Thank you for reporing this issue to us and making the app better!

Show all comments

Hi Community,

I want to override the copy functionality shown in the image. Is it possible to do that in Freedom UI? If possible How can I do that ?

Like 0

Like

2 comments

Are you referring to the list row menu? If so, there is an article covering that topic here: https://academy.creatio.com/docs/developer/front_end_development_freedo…

Ryan

As for the copy item specifically, I believe that request is called "crt.CopyDataRequest". If you handle that request on the list page, you can do what you need and then not call the next handler to avoid the out of the box handling of the copy request.

Ryan

Show all comments