четверг, 28 июня 2012 г.

Как скрывать Ribbon в SharePoint

Казалось бы, делов-то семечки: #s4-ribbonrow { display: none; }, и вуаля. Согласен, можно и так. Но есть нюансы!

Во-первых, способов скрывать Ribbon – далеко не один. А в SharePoint, если есть несколько способов что-то сделать, скорее всего чем-то эти способы отличаются. И в одних ситуациях можно применять, в других нет.

Во-вторых, если скрывать через css как было обозначено выше, перестают работать статусы (SP.UI.Status) и оповещения (SP.UI.Notify). В общем, не всё так просто!

среда, 27 июня 2012 г.

Site Pages vs Application Pages

Еще буквально полгода назад я почти не задумываясь создавал Application Pages под каждый чих и был этим вполне счастлив. А что, пользоваться ими просто и привычно: это суть обычные ASP.Net страницы с обычным CodeBehind, и любой ASP.Net-чик чувствует себя с ними как дома.

Однако сейчас, я почти все формы, и даже странички настроек, создаю на основе Site Pages. И этому есть очень серьезные причины.

Чтобы понять, как я к такому пришел, нужно понять, чем Site Pages отличаются от Application Pages.

вторник, 26 июня 2012 г.

SharePoint и XSLT: область ссылок «быстрого доступа»

Возвращаюсь к серии статей про SharePoint и XSLT.

Все вы помните ссылку «Добавить новый элемент» внизу представлений списков SharePoint:

image

В связи с наличием этой ссылки возникает два естественных вопроса:
  1. Как поменять текст этой ссылки? (например вместо “Добавить новый элемент”, я хочу текст “Добавить товар” или “Добавить продукт” и т.д.)
  2. Как добавить еще пару ссылок рядом со ссылкой для создания нового элемента?
В последнее время я очень часто и текст ссылки меняю, и другие ссылки добавляю к ней. Такие представления начинают смотреться гораздо приятнее и дружественнее пользователю.

Например, некий список с заявками может иметь вот такие ссылки быстрого доступа:

image

, где ссылка Configure application route открывает редактор маршрута заявки (т.е. можно определить, кто и в каком порядке должен одобрять эту заявку).

В этой статье я расскажу, как реализовать такие изменения. Рассмотрим два способа:
  1. no-code — для частных решений, быстрых правок и кастомизаций Office365
  2. программно – что может потребоваться для создания коробочных решений

понедельник, 25 июня 2012 г.

«Вы уверены?» Confirmation-диалоги в SharePoint

Конечно, чаще всего обычного JavaScript’ового confirm’а вполне достаточно. Однако, иногда хочется показать более красивый диалог, предложить другие варианты выбора, добавить иллюстрацию или параграфы в текст... Многие для такой задачи используют jQuery UI, jQuery плагины или сторонние JS-библиотеки, но мне кажется, этого делать не стоит: в SharePoint’е уже есть диалоги, они прекрасно вписываются в общий дизайн и предоставляют массу настроек. Мне кажется, нет ни одной причины, чтобы их не использовать.

image

Ниже я представлю код класса Dialog, который позволяет легко отображать подобные диалоги, и выполнять какие-нибудь действия в случае, если пользовать нажал «Да». Пользоваться классом предельно просто:

My.Dialog.confirm(
'Вы уверены?',
'Вы уверены, что хотите отменить процесс подписи?',
function () {
alert(
'Пользователь нажал "Да"!');
});

При этом не потребуется создавать отдельную aspx-страницу: SharePoint’овские модальные диалоги имеют режим, в котором они создаются полностью динамически.


воскресенье, 24 июня 2012 г.

Про Twitter и Google+

Далеко не всё, что я делаю, попадает в блог.

Есть некоторые статьи на английском, есть OpenSource-проекты на Codeplex, есть ответы на вопросы на SharePoint StackExchange (и нередко эти ответы по размеру — как небольшая статья), есть какие-то мелкие заметки, недостойные блога. Есть просто интересные исследования, подсказки и ссылки на ресурсы...

Например, в блоге не публиковалась информация о моей статье в MSDN Magazine, которая вышла в мартовском номере и доступна для прочтения онлайн. Статья называется Adding HTML5 Drag and Drop to SharePoint Lists, и повествует о том, как с помощью XsltListViewWebPart и небольшого количества JavaScript-кода можно интегрировать HTML5 drag-n-drop в списки SharePoint. В частности, в статье объясняется, как реализовать назначение задачи на разных исполнителей путем перетаскивания имен исполнителей в поле «Assigned To»:

clip1

Другой пример — пост с «разоблачением» назначения хитрого свойства BaseViewID, которое присутствует у любого объекта SPView, но про которое практически ничего нет в интернете. Этот пост был опубликован в виде ответа на SharePoint StackExchange.

В общем, мне кажется, если вам нравятся посты в этом блоге, скорее всего вам понравится и всё остальное.

Поэтому, рекомендую подписаться на мой Twitter и/или Google+, если еще не подписаны. Кстати, я не любитель повторяться, поэтому чаще всего Twitter и Google+ содержат разный материал.

В Twitter’е постятся ссылки на интересные статьи, небольшие подсказки (tip’ы) про SharePoint, ссылки на наиболее полезные из моих ответов на SharePoint StackExchange, ссылки на мои англоязычные статьи, информация по OpenSource-проектам и др. В Twitter’е почти не бывает сообщений на русском. Подписывайтесь: @amarkeev.

В Google+ постятся некоторые дискуссионные вопросы/материалы/ссылки, ссылки на русскоязычные и англоязычные мои творения, и некоторые другие вещи. Подписывайтесь: gplus.to/omlin

пятница, 15 июня 2012 г.

JavaScript ToolTip’ы для SharePoint

У вас есть некоторая страница, и вам нужно показать всплывающую при наведении на некий элемент. Как вы это сделаете?
Мне кажется, абсолютное большинство - пойдет в Google и напишет что-нибудь типа “jQuery tooltip”.
Когда я лично сталкиваюсь с такими задачами, я всегда первым делом стараюсь вспомнить, где я видел всплывающие подсказки в SharePoint? И на ум сразу же приходит Ribbon!
image
Причем, подсказки на Ribbon могут выглядеть даже еще красивее:
image
Возникает естественный вопрос: почему бы не использовать такие же всплывающие подсказки в своих собственных решениях? Это знакомый пользователям интерфейс, который отлично сочетается с общим дизайном портала. Да и вообще, эти подсказки действительно красивые.
Мне удалось это сделать, и получить вот такие всплывающие подсказки на моих собственных страницах:
image
Ниже я расскажу, как этого можно добиться.