19.08.2009, 15:05 | #1 |
Участник
|
Мелкомягкий CRM: Убираем кнопки с панели инструментов связанных объектов
Источник: http://mmcrm.ru/?p=605
============== Передвигаясь по связанным объектам (на форме основного объекта) Вы могли заметить такие интересные кнопочки, вроде «Создать объект бла-бла-бла» или «Добавить существующие объект бла-бла-бла». Иногда они не нужны или что еще хуже, то их удаление это требование политики безопасности компании. И как всегда, стандартными средствами настройки их не удалить! Но это еще полбеды. Проблема в том, что в момент загрузки формы этих связанных объектов нет на форме! Они подгружаются в iFrame динамически при щелчке на соответствующей ссылке (расположено на левой навигационной панели формы). Таким образом воспользоваться простым способом скрытия объектов (как мы обычно скрываем поля на форме) нам не удастся, т.к. мы тупо не можем к ним обратиться! Какой выход? Выход простой (точнее сложный, но это уже совсем другая история ) – переопределить событие щелчка по ссылке на навигационной панели и таким образом отследить момент срабатывания js-функции CRM, отвечающую за подгрузку представления связанного объекта. После чего обратиться к уже появившемся кнопкам и скрыть их! В первую очередь на онлоад формы добавьте следующий скрипт: function HideViewButtons(Iframe, buttonTitles) { if (Iframe != null ) { Iframe.onreadystatechange = function HideTitledButtons() { if (Iframe.readyState == 'complete') { var iFrame = frames[window.event.srcElement.id]; var liElements = iFrame.document.getElementsByTagName('li'); for (var j = 0; j < buttonTitles.length; j++) { for (var i = 0; i < liElements.length; i++) { if (liElements[i].getAttribute('title') == buttonTitles[j]) { liElements[i].style.display = 'none'; liElements[i].style.visibility = 'hidden'; break; } } } } } }} function HideAssociatedViewButtons(type, loadAreaId, buttonTitles) { if (type== 1 || type== 3) { var navElement = document.getElementById('nav' + loadAreaId); } else { var navElement = document.getElementById('nav_' + loadAreaId); } if (navElement != null) { navElement.onclick = function LoadAreaOverride() { if (type == 1) { loadArea('area' + loadAreaId); HideViewButtons(document.getElementById('area' + loadAreaId + 'Frame'), buttonTitles); } else if (type == 2) { loadArea(loadAreaId); HideViewButtons(document.getElementById(loadAreaId + 'Frame'), buttonTitles); } else { loadArea('area' + loadAreaId, '\x26roleOrd\x3d1'); HideViewButtons(document.getElementById('area' + loadAreaId + 'Frame'), buttonTitles); } } }}Дальше необходимо вызвать функцию HideAssociatedViewButtons (тоже из онлоада) и передать ей три параметра (в порядке следования):
Я добавил на форму Бизнес-партнеров две дополнительные связи: кастомная связь N:1 с объектом Контракт и кастомная связь N:N с объектом Конкурент! Теперь скроем эти две записи, плюс две стандартные с объектами Контакт (N:1) и Маркетинговый список (N:N). Для начала получим нужные нам названия областей и кнопок: Затем скроем их, вызвав функцию HideAssociatedViewButtons с нужными параметрами: ideAssociatedViewButtons(1,'Contacts', ['Добавить к этой записи новый объект Контакт', 'Добавить к этой записи существующий объект Контакт']);HideAssociatedViewButtons(1,'ListsInSFA', ['Добавить в маркетинговый список']);HideAssociatedViewButtons(2,'new_account_contract', ['Добавить к этой записи новый объект Контракт', 'Добавить к этой записи существующий объект Контракт']);HideAssociatedViewButtons(3,'new_account_incident', ['Добавить к этой записи существующий объект Обращение']); Результат Источник: http://mmcrm.ru/?p=605
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|
19.08.2009, 20:34 | #2 |
Moderator
|
Свежие переводы пришли
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
|
За это сообщение автора поблагодарили: IgorF (1), a33ik (1). |
19.08.2009, 23:27 | #3 |
Консультант-джедай
|
И как оно сюда попало... мистика...
__________________
Крокодил, крокожу и буду крокодить. Человек человеку - волк , а зомби зомби - зомби. Экстремал и буду экстремать! Блога Последний раз редактировалось slivka_83; 19.08.2009 в 23:29. |
|
|
|