Переопределить стандартные кнопки в облачной консоли Salesforce Service

Можно ли переопределить стандартную кнопку «Создать новый» и ссылку «Подробности» в представлении списка облачной консоли службы?

Я хочу показывать свои пользовательские страницы VF при нажатии этих кнопок/ссылок (если да, то как?)

Кроме того, будут полезны любые примеры из набора инструментов Service Cloud API.

Заранее спасибо.


person Sourabh    schedule 05.06.2013    source источник


Ответы (1)


Лучше всего было бы создать отдельный набор кнопок, так как он меньше перенаправляет...

Если вы действительно хотите переопределить стандартные, я думаю, вам придется использовать обычные переопределения (на всех кнопках), но с контентом, основанным на Javascript, вы будете решать, что должно произойти.

http://www.salesforce.com/us/developer/docs/api_console/index.htm — Консольный JS API будет удобен.

Создайте страницу Visualforce, которая использует standardController="Your_Object__c". В содержание включить ссылку на 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>

За исключением того, что вы будете перенаправлять либо на свои специальные страницы, либо на стандартные «новые» и «редактировать». Чтобы принудительно перейти в исходный режим редактирования, вы можете добавить параметр nooverride=1 в URL-адрес (который также упоминается в документации URLFOR).

Обычная «новая учетная запись» (приводит к переопределению, если указано): /001/e

Принудительно перейти на вашу страницу: /apex/NewAccount

Принудительно перейти на стандартную страницу: /001/e?nooverride=1

Итак, теперь у вас есть идея, как определить, находитесь ли вы в консоли или нет, и куда идти. Единственный оставшийся вопрос: «какое окно должно перенаправляться». Поскольку консоль построена на фреймах, вы можете получить разные результаты при использовании окна javascript, местоположения, родительских и т. д. объектов. Это общие сведения о том, как работать с фреймами в JS, поэтому я не буду это описывать. Но я включу ссылку на srcUp(), предоставляемая отделом продаж, которую вы, возможно, захотите использовать повторно.

Честно говоря, я думаю, что это определено только в контексте консоли, так что, может быть, вы могли бы отказаться от всего isInConsole в пользу typeof srcUp != 'undefined'?

Удачи :)

person eyescream    schedule 05.06.2013