In this screen the left list is the Permission, It acts like tabs but on list widget, when I click the reports or the User Management the data from the timesheet will return to false, since it a default data. Is there a way so that the data in timesheet even if I click the other tabs will remain.
Hi @Romeo Sandrino ,
I didn't yet check oml will check it in sometime and let you know. But it's quite simple to achieve. Use cleint variable(in reactive) or session variable(In traditional) to hold permission id and on the basis of permission id fetch data from timesheet.
Using this your selected data will remain same if you are navigating from one tab to another.
Regards,
Arun
Hey Romeo,
I have observed your code. The problem is on PermissionOnClick and filtering logic. To fix it you need to follow the below steps :
1)Change the data type of "PermissionFilter" as text and remove the default value and create onInitialize event and in onInitialize you have to assign the below
PermissionFilter ="#"+Entities.Permission.Timesheet+"#"
2)In PermissionOnClick modify the assign like the below way
PermissionFilter = PermissionFilter + "#"+PermissionRow+"#
3)In GetSubPermissionsByPermission aggregate remove the 2nd filter and add the below filter
If(PermissionFilter = "",True,Index(PermissionFilter,"#"+SubPermission.Permission+"#")<>-1)
This might help you.
Thanks & Regards,
Sudip Pal
Hi I am trying the solution you provide and just asking one question, where and what's the usage of OnInitialize? Where should I link that client action?
You can get the onInitialize here.
The purpose is to initialize the PermissionFilter.It is similar to default value.
Hi @Romeo Sandrino ,You can achieve your requirements by following the suggestion given by Arun.But I would like to suggest one more thing, you should spend some time on your issue and please try to find an existing post on the forum that is related to your issue, Instead of posting every time.I have noticed you are posting your day-to-day task issues very frequently.Comunity members will provide ready-to-use OML and solutions, but it will not help you to improve.The only way to learn new things is to spend more time thinking about your issues/solutions. Try to fix it by yourself.If you follow this you will surely notice an improvement in your skill and thinking capability.Best Regards,Anubhav
I am actually reading a lot but since its a new system for me I am having a hard time dealing with some of the logical tools, thanks for the input and will try to improve!
This is the exact reason why I do not look at the provided OML and return a fixed OML back. It will not help the OP to learn as simply copy/past code is not a learning experience. I will guide them, tell them what a possible solution would be (in detail in needed) but they really need to build this themselves.
I would solve this by creating a structure that can hold the entire data model and create a variable of this structure. Then create blocks that show a portion of the data. When something is changed in the selection an event is returned so that you can then update the main variable. This allows you to keep track of the current state and show this state in the corresponding blocks.
Example structure:
{ "TopicName": "", "TopicItems": [ { "Name": "", "ItemAccessRights": [ { "Name": "", "AccessRights": [ { "Name": "", "IsEnabled": false } ] } ] } ]}
This structure is able to hold all data that you showed in the screen and how I expect it to work. From the "tabs" to the data in the left panel to the data in the right panel.
You then need to create several web blocks:
Block 1 / Tabs:Input: TopicNameEvent: OnSelect with the clicked upon TopicName as output
Block 2 / Left panelInput: TopicItems of the TopicName recordEvent: OnSelect with the clicked TopicItemName as output
Block 3 / Righ panel TitelInput: ItemAccessRights of the TopicItem recordsEvent: none
Block 4 / Right panel Access Rights Input: AccessRights of the ItemAccessRight recordEvent: OnChange with the both name and value of the clicked AccessRight
Now you need to create an event handler on Block 4 that is able to change the correct values in the main variable based on the output of the block 4 OnChange event. More support parameters could be needed to make this more manageable but that is something you need to investigate yourself.
This should allow you to build a screen that keeps track of all changes in the UX without resetting the values when you change a tab of left panel item.
Hope this helps,
Vincent