0

I have a visualforce page inside my lightning Service console that displays related records of a case. On clicking on a record, I would like to open the detail in a new tab/subtab. For now, it opens in a separate window which is not in a lightning view. This is my vf page:

<apex:page showHeader="false" sidebar="false" standardController="Case" extensions="AssetRelatedListCtrl">
<apex:includeScript value="/support/console/40.0/integration.js"/>
<apex:form>
    <apex:pageBlock>
        <apex:selectList size="1" value="{!recordType}" style="width:130px;">
            <apex:selectOptions value="{!TypeOptions}"/>
            <apex:actionSupport id="recType" event="onchange" action="{!gatherRelatedAssets}" rerender="tablePanel"/>
        </apex:selectList>
        <apex:pageBlockTable value="{!relatedAssets}" var="asset" id="tablePanel">
            <apex:column headerValue="Id">
            <A HREF="#" onClick="openAssetSubtab('{!asset.Id}', '{!asset.Name}');return false">{!asset.Name}</A>
            </apex:column>
            <apex:column headerValue="Model" value="{!asset.Model__c}"/>
        </apex:pageBlockTable>
    </apex:pageBlock>
</apex:form>
<script type="text/javascript">
    var recordId = '{!caseId}';
    var assetId;
    var assetName;

    function openAssetSubtab(arg1, arg2) {
        assetId = arg1;
        assetName = arg2;
        if (sforce.console.isInConsole()) {
            sforce.console.getEnclosingPrimaryTabId(openSubtab);
        }else{
            OpenInNewTabWinBrowser('/'+assetId);
            //here, since im only using this page in the classic console and lightning console, I want to open the link in one or the other!
        }
    }

    function OpenInNewTabWinBrowser(url) {
        var win = window.open(url, '_blank');
        win.focus();
    }

    var openSubtab = function openSubtab(result) {
        var primaryTabId = result.id;
        sforce.console.openSubtab(primaryTabId , '/'+assetId, true, 
            assetName, null, openSuccess, 'salesforceSubtab');
    };

    var openSuccess = function openSuccess(result) {
        if (result.success == true) {
            console.log('subtab successfully opened');
        } else {
            console.log('subtab cannot be opened');
        }
    };
</script>

1

You can use sforce.one.navigateToSObject('{!asset.Id}') which will open a record in new lightning console tab.

  • 1
    hi, Any Idea how can I open a New Tab in Service console for a given apex page in Lightning just like openPrimaryTab(); – Kiba Jul 24 '17 at 9:44
0

The existing sforce.console methods would work too. You just need to change the version of your Integration.js file to 42.0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.