AXForum  
Вернуться   AXForum > Блоги > CRM, SharePoint и Черная Магия
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

Добро пожаловать в мой блог! Изначально он не задумывался как блог CRM разработчика, но жизнь сама внесла нужные коррективы. Тут я публикою все свои наблюдения относительно обозначенных в заголовке систем. Если Вы найдете в нем что-то интересное для Вас, как для заказчика, то буду рад сотрудничать с Вами! В моей компетенции 100% задач по MS CRM 3.0/4.0/2011:
  • Консалтинг
  • Проектирование
  • Разработка
  • Обучение


MVP 2010, 2011
Оценить эту запись

Подсветка URL в текстовых полях

Запись от Артем Enot Грунин размещена 19.04.2010 в 10:26
Обновил(-а) Артем Enot Грунин 26.04.2010 в 15:18
Теги dom, java script

Простые многострочные поля CRM невыгодно отличаются от аналогичного поля для объекта email. В них нет ни нормального форматирования (не критично) ни подсветки ссылок. Последнее, действительно, не очень удобно - обычно от веб системы ожидают умение отражать активные ссылки. Существуют, тем не менее, и способы обойти эти ограничения. Как правило это делается за счет интеграции в форму JS "визвиг" редакторов через IFrame или динамически подгружая их через DOM. Недавно на форуме была озвучена задача, которая была схожа с моей и так же не требовала развертывания тяжелой артиллерии: "просто сделать кликабельные ссылки!". Перебрав в голове несколько подходов я пришел к следующему:
Код:
// Может отличаться в различных развертываниях системы!!!
// Используйте средства разработчика, чтобы узнать ID элемента для вашей инсталляции!!!
var descSectionId = "{86EB037C-1F69-44b4-920E-7DE3B1641F8C}";

var descSection = crmForm.all[descSectionId];
var descFiled = crmForm.all.description;

descFiled.DataValue = "Please click on section header" +'\n' + "This is sample by Grunin Artem http://www.ics.perm.ru or use ftp://ftp.ics.perm.ru or mailto:agrunin@ics.perm.ru" + '\n' + "        space";

UrlPreview(descSection, descFiled);

function UrlPreview(oSection, oField)
{
    var UrlField = oField;
    var Section = oSection;
    var FormatedText;

    function init()
    {
        var descLabel = Section.lastChild.firstChild;
        descLabel.style.cursor = "hand";
        descLabel.onclick = switchViews;

        FormatedText = Section.insertRow(2);
        FormatedText.style.display = "none";

        var oPRE = FormatedText.insertCell(0);
        oPRE.colSpan = UrlField.parentElement.colSpan;
        oPRE.rowSpan = UrlField.parentElement.rowSpan;
        oPRE.vAlign = "top";
        oPRE.style.borderWidth = "1px";
        oPRE.id = "textValue";
    }

    function switchViews()
    {
        var oFieldStyle = UrlField.parentElement.style;
        if (oFieldStyle.display == "none")
        {    
            oFieldStyle.display = "block";
            FormatedText.style.display = "none";
        }
        else
        {
            FormatDesc();
            oFieldStyle.display = "none";
            FormatedText.style.display = "block";
        }
    }

    function FormatDesc()
    {
        var oTextData = UrlField.DataValue; 

        if (oTextData == null) return;

        var urlRegExp = /((?:http:|ftp:|mailto:)(?:[:\w~%{}./?=&@,#-]+))/gim;
        var repRegExp = "<a style='text-decoration:underline;color:blue;'href='$1'>$1</a>";
        oTextData = oTextData.replace(urlRegExp, repRegExp);

        FormatedText.all.textValue.innerHTML = "<pre>" + oTextData + "</pre>";
        var oPre = FormatedText.all.textValue.firstChild;
        oPre.style.fontFamily = "Tahoma, Verdana, Arial";
    }    

    init();
}
Данный код следует использовать на OnLoad. Функция UrlPreview принимает в качестве параметров ссылки на заголовок раздела, в который помещено многостраничное поле, и на само поле. Клик по заголовку раздела скрывает поле описания и отображает на его месте форматированный readonly аналог с кликабельными ссылками. На мой взгляд - вполне себе ничего решение, достаточно прозрачное для пользователей.

Нажмите на изображение для увеличения
Название: ap1.jpg
Просмотров: 820
Размер:	141.0 Кб
ID:	60

Нажмите на изображение для увеличения
Название: ap2.jpg
Просмотров: 848
Размер:	141.4 Кб
ID:	61
Размещено в CRM
Просмотров 21174 Комментарии 0
Всего комментариев 0

Комментарии

 


Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:49.