понедельник, 11 марта 2013 г.

Wait/loading диалоги в SharePoint

Пара недокументированных стандартных диалогов. Сделаны по тому же принципу, что я описывал для Confirmation-диалогов, но уже входят в состав SharePoint - что приятно :) Возможно, пригодятся.

Буду краток:


Этот диалог выводится следующим куском JS:

var dialog = SP.UI.ModalDialog.showWaitScreenWithNoClose("test", "test message", 190, 350)
// делаем что-нибудь асинхронное и долгое
// по завершении, вызываем
dialog.close(SP.UI.DialogResult.OK);

Можно использовать для каких-нибудь долгих асинхронных операций.

Если вы хотите дать пользователю возможность отменить вашу операцию (что желательно), используйте другой метод:

var dialog = SP.UI.ModalDialog.showWaitScreenSize("test", "test message", function (dialogResult) { alert(dialogResult); }, 150, 350);

Вы автоматически получите кнопку "Отмена" и при ее нажатии, сработает callback (dialogResult будет равен 0, т.е. SP.UI.DialogResult.cancel).


К слову, в клиентской объектной модели и SP.UI в SharePoint 2013 добавилось очень много всего недокументированного (те же callback'и чего стоят, или SP.Taxonomy). Надеюсь, задокументируют позже - все-таки лазать в сгенерированных Script#-ом исходных кодах SharePoint JavaScript API, где все локальные переменные заобфусцированы - то еще удовольствие :(

6 комментариев:

  1. Данные окна вроде в 2010 были уже.
    Мы их даже использовали в проектах.

    ОтветитьУдалить
  2. Серьезно? :( Вот же блин, с sharepoint'ом всегда так: новая фишка, круто, а потом выясняется что она там уже с 2003 года лежит :)

    ОтветитьУдалить
  3. Да, пробоянил ты в этот раз.

    ОтветитьУдалить
  4. Все равно спасибо за пост)

    ОтветитьУдалить
  5. Этот комментарий был удален автором.

    ОтветитьУдалить

Внимание! Реклама и прочий спам будут беспощадно удаляться.