I am trying to hide / show a button from CRM 2011 Ribbon based on a condition defined in JavaScript . The JavaScript function returns true/false . Therefore, I do not want to change the XML to Hide/Show button.
I tried to do this as shown below, but with no luck. Can anyone suggest me the right approach.
Thanks at Advance
<RibbonDiffXml> <CustomActions> <CustomAction Id="Email.Form.email.MainTab.Send.CustomAction" Location="Mscrm.Form.email.Send" Sequence="2"> <CommandUIDefinition> <Button Id="Mscrm.Form.email.Send" Command="Mscrm.Form.email.Send_Custom" Sequence="1" Alt="$Resources:Ribbon.Form.email.MainTab.Actions.Send" LabelText="$Resources:Ribbon.Form.email.MainTab.Actions.Send" Image16by16="/_imgs/SFA/SendAsEmail_16.png" Image32by32="/_imgs/SFA/SendAsEmail_32.png" TemplateAlias="o1" ToolTipTitle="$Resources:Mscrm_Form_email_MainTab_Actions_Send_ToolTipTitle" ToolTipDescription="$Resources:Mscrm_Form_email_MainTab_Actions_Send_ToolTipDescription" /> </CommandUIDefinition> </CustomAction> </CustomActions> <Templates> <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates> </Templates> <CommandDefinitions> <CommandDefinition Id="Mscrm.Form.email.Send_Custom"> <EnableRules/> <DisplayRules> <DisplayRule Id="Mscrm.CanWritePrimary" /> <DisplayRule Id="Mscrm.Form.email.InDraftOrFailedState" /> <DisplayRule Id="Mscrm.Form.email.Send.DisplayRule" /> </DisplayRules> <Actions> <JavaScriptFunction FunctionName="HideSendEmailButton" Library="$webresource:sandbox_email.js" /> </Actions> </CommandDefinition> </CommandDefinitions> <RuleDefinitions> <TabDisplayRules /> <DisplayRules> <DisplayRule Id="Mscrm.Form.email.Send.DisplayRule"> <ValueRule Field="new_type" Value="false" InvertResult="false" /> </DisplayRule> </DisplayRules> <EnableRules /> </RuleDefinitions> <LocLabels /> </RibbonDiffXml>
Javascript
function HideSendEmailButton() { // Query for full name of the current user var userId = Xrm.Page.context.getUserId(); if(userId == '---some Id---') { return true; } else { return false; } }
source share