Запретить перетаскивание событий в представлении календаря SharePoint

В представлении календаря SharePoint можно очень легко и незаметно для себя изменить дату события, просто перетащив запись в другое место календаря. При этом, интерфейс SharePoint не скажет тебе ничего о сделанных изменениях, потому легко может оказаться, что, к примеру, дата запланированной встречи неожиданно изменилась. Что делать?

Чтобы этого избежать, очень напрашивается установка запрета на Drag and drop для страницы, где отображается представление календаря. Есть очень простое и быстрое решение запрета Drag and drop для календаря SharePoint - с помощью небольшого кода Javascript, который будет блокировать перетаскивание.

Я оказался далеко не первым, кому это понадобилось, потому уже были красивые решения. Везде 10й "Шарик" снимается с поддержки и информации по нему все труднее найти, потому этот кусок кода добавлю здесь.

Для его применения, как  и обычно, нужно добавить на страницу представления веб-часть "Редактор содержимого" (Content editor web part) и добавить в нее следующий код:

<script type='text/javascript'>
  ExecuteOrDelayUntilScriptLoaded(function(){
    var calendarCreate = SP.UI.ApplicationPages.CalendarContainerFactory.create;
        SP.UI.ApplicationPages.CalendarContainerFactory.create = function(elem, cctx, viewType, date, startupData) {
            if(cctx.dataSources && cctx.dataSources instanceof Array && cctx.dataSources.length > 0){
                for(var i = 0; i < cctx.dataSources.length; i++){
                    cctx.dataSources[i].disableDrag = true;
                }
            }
            calendarCreate(elem, cctx, viewType, date, startupData);
        }
  }, 'SP.UI.ApplicationPages.Calendar.js');
</script>  


Комментариев нет »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment






MarkiMarta.ru. Записки отца-программиста" с 2009 г.
Категория информационной продукции 18+
Яндекс.Метрика