Display Information button based on lookup value

Dear Community,

 

We have a status lookup in a section edit page. If the value of the look up becomes "Queued" , the INFORMATION_BUTTON must appear. Any other status must make not make the button visible.

 

I have the following code to insert this INFORMATION_BUTTON in Diff array

    {
                "operation": "insert",
                "name": "QueuedInfoChat",
                "values": {
                    "layout": {
                        "colSpan": 7,
                        "rowSpan": 1,
                        "column": 2,
                        "row": 1,
                        "layoutName": "Header"
                    },
                    "itemType": Terrasoft.ViewItemType.INFORMATION_BUTTON,
                    "content": {
                        "bindTo": "Resources.Strings.QueuedStatusChat"
                    },
                    "visible": {
                        "bindTo": "QueuedToolTipChat"
                    }
                },
                "parentName": "Header",
                "propertyName": "items",
                "index": 8
            }

And the attribute

"QueuedToolTipChat": {
                "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                "dataValueType": Terrasoft.DataValueType.BOOLEAN,
                "value": true
            }

When I tried setting this attribute to false, the button is still visible. Please see image attached for reference

Any suggestion would help.

 

Thanks in Advance!

Like 0

Like

2 comments

Hello Shivani,

 

"visible" parameter doesn't work for the INFORMATION_BUTTON item type, but I found a workaround. This function was called in the onEntityInitializedFunction:

          	onEntityInitialized: function(){
				this.callParent(arguments);
              	this.checkCondition();
            },

and

checkCondition: function(){
			if (this.get("Name")=="123 2"){
				document.getElementById("ContactPageV2SimpleInfoButtonButton-imageEl").style.display = "none";
            } else {
			return;
            }
          },

where ContactPageV2SimpleInfoButtonButton-imageEl was received from the HTML of the page (this particular Id remains static on the contact page for all contact records):

As a result button successfully disappears in case the name of a contact is "123 2" so you can test the following code on your side.

 

Best regards,

Oscar

Oscar Dylan,

Thank you for your response Oscar. We were able to achieve this through another way as well. Adding the snippet for those who might need it.

The following code is added to Diff array where Resources.Images.QueueInfo - QueueInfo is an image added

{
                "operation": "insert",
                "name": "QueuedInfoChat",
                "values": {
                    "layout": {
                        "colSpan": 2,
                        "rowSpan": 1,
                        "column": 8,
                        "row": 1
                    },
                    "itemType": 5,
                    "hint": {
                        "bindTo": "Resources.Strings.QueuedStatusChat"
                    },
                    "tips": [],
                    "canExecute": {
                        "bindTo": "canBeDestroyed"
                    },
                    "imageConfig": {
                        "bindTo": "Resources.Images.QueueInfo"
                    },
                    "markerValue": "Update-button-QueuedInfoChat",
                    "tag": "Update-button-QueuedInfoChat",
                    "visible": {
                        "bindTo": "QueuedChatVisibility"
                    }
                },
                "parentName": "Header",
                "propertyName": "items",
                "index": 5
            }

The following is added to attributes

"QueuedChatVisibility": {
                "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                "dataValueType": Terrasoft.DataValueType.BOOLEAN,
                "value": false
            }

 

Last piece is the method that checks the status. This method is called in onEntityInitialized function

 

    checkChatStatus :function()
            {
                var chatStatus="";
                
                try 
                    {
                        chatStatus = this.get("UsrChatStatus").displayValue;
                    }
                 catch (e) {
                     this.console.log("Chat status not set");
                    
                }
            
                if(chatStatus!==undefined && chatStatus!=="")
                {
                    if(chatStatus==="Queued")
                    {
                        this.set("QueuedChatVisibility",true);
                        this.console.log("Setting tooltip chat true");
                        return true;
                    }
                }
                this.set("QueuedChatVisibility",false);
                this.console.log("setting chat to false");
                return true;
            }

 

Thanks again!

 

Show all comments