понедельник, 28 апреля 2014 г.

Показать поле "Создан" на форме элемента

Некоторые поля, например 'Id' или 'Создано' ('Created') невозможно отображать изначально на формах. В SharePoint Designer они в списке столбцов не отображаются. Заказчик просит изобразить на форме примерно следующее:


Для этого необходимо создать новую форму и добавить в нужное Вам место следующий серверный элемент SharePoint:


В итоге у нас получится примерно следующее:
Не очень красиво, необходимо сменить формат даты. Что бы было еще и на нашем языке.
Для этого мы с Вами попробует библиотеку momentjs.com

Для этого ее надо скачать и подключить к странице. Что бы мы могли отобразить время на нашем языке - качать необходимо moment-with-langs.min.js
Теперь получаем дату в старом формате, меняем и вставляем обратно в страницу.
Что бы пользователь не видел сам процесс обработки - прячем контейнер со старой датой:

<tr>
    <td colspan="2">
        <h1>
            Заявка создана:
            <span id="DateCreationLabel" style="color:navy;display:none">
                <SharePoint:ListItemProperty Property="Created" ID="CreatedDateField" runat="server" />
            </span>
        </h1>
    </td>
</tr>

Над html выше - выполняем JS ниже:

var date = $('#DateCreationLabel').text();
    if (moment(date).isValid()) {
        moment.lang('ru');
        date = moment(date).format('LL');
        $('#DateCreationLabel').text(date);
    }
    $('#DateCreationLabel').show();
После выполнения кода видим следующее:
Вполне приемлемо.