Friday, August 24, 2012

FormEntityContextRule Example



 CustomActions:

        <CustomActions>
          <CustomAction Id="Mscrm.SubGrid.new_test.AddExistingAssocCustom" Location="Mscrm.SubGrid.new_test.AddExistingStandard" Sequence="30" >
            <CommandUIDefinition>
              <Button Id="Mscrm.SubGrid.new_test.AddExistingStandard" Command="Mscrm.AddExistingRecordFromSubGridStandardCustom" Sequence="30" LabelText="CustomAddExistingStd" Alt="$Resources(EntityDisplayName):Ribbon.SubGrid.AddExisting" Image16by16="/_imgs/ribbon/AddExistingStandard_16.png" Image32by32="/_imgs/ribbon/AddExistingStandard_32.png" TemplateAlias="o1" ToolTipTitle="$Resources(EntityDisplayName):Mscrm_SubGrid_EntityLogicalName_MainTab_Management_AddExistingStandard_ToolTipTitle" ToolTipDescription="$Resources(EntityDisplayName):Mscrm_SubGrid_EntityLogicalName_MainTab_Management_AddExistingStandard_ToolTipDescription" />
            </CommandUIDefinition>
          </CustomAction>

          <CustomAction Id="Mscrm.SubGrid.new_test.AddNewStandardCustom" Location="Mscrm.SubGrid.new_test.AddNewStandard" Sequence="20" >
            <CommandUIDefinition>
              <Button Id="Mscrm.SubGrid.new_test.AddNewStandard" Command="Mscrm.AddNewRecordFromSubGridStandardCustom" Sequence="20" LabelText="CustomAddNewStd" Alt="$Resources(EntityDisplayName):Ribbon.SubGrid.AddNew" Image16by16="/_imgs/ribbon/NewRecord_16.png" Image32by32="/_imgs/ribbon/newrecord32.png" TemplateAlias="o1" ToolTipTitle="$Resources(EntityDisplayName):Mscrm_SubGrid_EntityLogicalName_MainTab_Management_AddNewStandard_ToolTipTitle" ToolTipDescription="$Resources(EntityDisplayName):Mscrm_SubGrid_EntityLogicalName_MainTab_Management_AddNewStandard_ToolTipDescription" />
            </CommandUIDefinition>
          </CustomAction>
        </CustomActions>



CommandDefinitions:

        <CommandDefinitions>
          <CommandDefinition Id="Mscrm.AddExistingRecordFromSubGridStandardCustom">
            <EnableRules>
              <EnableRule Id="Mscrm.AppendToPrimary" />
              <EnableRule Id="Mscrm.EntityFormIsEnabled" />
            </EnableRules>
            <DisplayRules>
              <DisplayRule Id="Mscrm.AddExisting" />
              <DisplayRule Id="Mscrm.ShowForOneToManyGrids" />
              <DisplayRule Id="Mscrm.AppendToPrimary" />
              <DisplayRule Id="Mscrm.AppendSelected" />
              <DisplayRule Id="Mscrm.CanWriteSelected" />
              <DisplayRule Id="Mscrm.CustomShow" />
            </DisplayRules>
            <Actions>
              <JavaScriptFunction FunctionName="Mscrm.GridRibbonActions.addExistingFromSubGridStandard" Library="/_static/_common/scripts/RibbonActions.js">
                <CrmParameter Value="SelectedEntityTypeCode" />
                <CrmParameter Value="SelectedControl" />
              </JavaScriptFunction>
            </Actions>
          </CommandDefinition>
          <CommandDefinition Id="Mscrm.AddNewRecordFromSubGridStandardCustom">
            <EnableRules>
              <EnableRule Id="Mscrm.AppendToPrimary" />
              <EnableRule Id="Mscrm.EntityFormIsEnabled" />
            </EnableRules>
            <DisplayRules>
              <DisplayRule Id="Mscrm.ShowForOneToManyGrids" />
              <DisplayRule Id="Mscrm.AppendToPrimary" />
              <DisplayRule Id="Mscrm.CreateSelectedEntityPermission" />
              <DisplayRule Id="Mscrm.AppendSelected" />
              <DisplayRule Id="Mscrm.HideAddNewForChildEntities" />
              <DisplayRule Id="Mscrm.CustomShow" />
            </DisplayRules>
            <Actions>
              <JavaScriptFunction FunctionName="Mscrm.GridRibbonActions.addNewFromSubGridStandard" Library="/_static/_common/scripts/RibbonActions.js">
                <CrmParameter Value="SelectedEntityTypeCode" />
                <CrmParameter Value="PrimaryEntityTypeCode" />
                <CrmParameter Value="FirstPrimaryItemId" />
                <CrmParameter Value="PrimaryControl" />
              </JavaScriptFunction>
            </Actions>
          </CommandDefinition>
        </CommandDefinitions>


RuleDefinition:
        <RuleDefinitions>
          <TabDisplayRules />
          <DisplayRules>
            <DisplayRule Id="Mscrm.CustomShow" >
              <FormEntityContextRule EntityName="account" InvertResult="true" />
            </DisplayRule>
          </DisplayRules>
          <EnableRules />
        </RuleDefinitions>

open link url inside a div/iframe

<html>
<head>
<script type="text/javascript">

function  showPage (which) {
    document.getElementById('xrmforms').innerHTML = '<' + 'iframe id="crmpage" src="' + which + '"width="100%" height="600px;" scrolling="auto"></iframe>';

}

</script>

</head>
<body>
<a href="http://www.google.com" onclick="showPage(this.href);return false;">Click here</a>


<div id="xforms">
</div>

</body>
</html>








Replace certain character JavaScript

To replace certain characters in javascript:

In this example, i'm replacing '&' with '&amp;' in the entire string.


function formatTexts(linkText) {
    var patt1 = /&/g;
    var patt1replStr = "&amp;";

    var matchPatt = linkText.match(patt1);

    var pattformat = /&amp;/g;
    var matchformatted = "";
    if (matchPatt != null && matchPatt.length > 0) {
        while (matchformatted.length < matchPatt.length) {
            linkText = linkText.replace(linkText.match(patt1)[0], patt1replStr);
            matchformatted = linkText.match(pattformat);
        }
    }
    return linkText;
}

HtmlEncoding in Javascript


Often when executing fetchxml in javascript or when creating tables throught javascript, you would face the error because the values are not htmlencoded.


function htmlEncode(value) {
    return $('<div/>').text(value).html();
}
function htmlDecode(value) {
    return $('<div/>').html(value).text();
}


This encodes the default characters that have to be encoded.
For more details:
http://support.microsoft.com/kb/316063

Hide CrmNavBar and CrmRibbon through javascript

//This toggles ribbon visibility, but doesnt move the form area up
window.top.document.getElementById("minimizeribbon").fireEvent("onclick");


// Hide the Ribbon toolbar and move the form Content area to the top of the window.
window.top.document.getElementById("crmTopBar").style.display = "none";
window.top.document.getElementById("crmContentPanel").style.top = "0px"; //

//default values for showing ribbon and moving content area below ribbon

window.top.document.getElementById("crmTopBar").style.display = "";
window.top.document.getElementById("crmContentPanel").style.top = "135px"; //



// Hide Left Hand Nav bar / pane
document.getElementById("crmNavBar").parentElement.style.display = "none";
document.getElementById("tdAreas").parentElement.parentElement.parentElement.parentElement.colSpan = 2;



// Hide the Breadcrumb and Record Set Toolbar
document.getElementById("recordSetToolBar").parentElement.style.display = "none";

// Hide the Form Footer Bar
document.getElementById("crmFormFooter").parentElement.style.display = "none";