覆盖salesforce服务云控制台中的标准按钮

时间:2013-06-05 01:37:19

标签: salesforce force.com salesforce-service-cloud

是否可以覆盖服务云控制台列表视图中的标准“创建新”按钮和“详细信息”链接?

我想点击这些按钮/链接显示我的自定义VF页面。(如果是的话怎么样?)

此外,服务云API工具包的任何示例都会有所帮助。

提前致谢。

1 个答案:

答案 0 :(得分:2)

最好是创建单独的按钮组,因为它的重定向较少......

如果你想真正覆盖标准的那些,我认为你必须使用普通覆盖(在所有按钮上),但是基于Javascript的内容你将决定应该发生什么。

http://www.salesforce.com/us/developer/docs/api_console/index.htm - 控制台JS API将非常方便。

制作一个使用standardController="Your_Object__c"的visualforce页面。在内容中包含对Console API的引用和类似于isInConsole()的示例的代码:

<apex:includeScript value="/support/console/27.0/integration.js"/>
<script type="text/javascript">
    function testIsInConsole() {
        if (sforce.console.isInConsole()) {
              alert("in console");
           } else {
              alert("not in console");
        }
    }
</script>

除非您将重定向到特殊页面或标准“新”和“编辑”。要强制进入原始编辑模式,您可以在URL中添加nooverride=1参数(在URLFOR函数的文档中也会提到)。

正常的“新帐户”(如果指定则会导致覆盖):/001/e

强制转到您的页面:/apex/NewAccount

强制转到标准页面:/001/e?nooverride=1

所以现在你已经知道如何检测你是否在控制台中以及在哪里。唯一剩下的问题是“哪个窗口应该重定向”。由于Console是基于框架构建的,因此使用javascript窗口,位置,父对象等对象可能会得到不同的结果。这是如何在JS中使用框架的一般知识,所以我不打算写出来。但是我会在salesforce提供的srcUp()函数中添加一个您可能想要重用的链接。

我认为它仅在控制台上下文中定义为诚实,所以也许你可以放弃整个isInConsole而转而支持typeof srcUp != 'undefined'

祝你好运:)