воскресенье, 19 декабря 2010 г.

На что ещё способен MOSS2007…

 

Последнее небольшое приложение использует по-максимуму всё то, что можно сделать не открывая VisualStudio =)

Приложение – опрос для экспертов. Стандартный в целом опрос, с одной только особенностью – в процессе него подсчитываются баллы и записываются в отдельный список. Для этого потребовалось с помощью Power Item Event Receiver добавить powershell-код в события ItemUpdating/ItemAdding. “Малой кровью”, а именно рабочими процессами – никак, т.к. на элементы опроса рабочие процессы попросту не навешиваются – недоработка.

DispForm того списка, куда пишутся результаты, максимально облегчена – с помощью style.display="none"; скрыто всё лишнее – меню добавления/удаления, кнопки, информация о создании – всё.

Часть данных хранится в другом списке, отображается в настоящей DispForm с помощью связки через переменную в адресной строке:

image
Создаем новый элемент в связанном списке

image
С помощью переменной в строке URL делаем привязку. Главное, чтобы пользователь её не поменял =)

В целом страница-анкета (так DispForm называется теперь на языке заказчика) выглядит вполне компактно:

image

Заметил интересную особенность: если в ссылке на страницу, где следует выполнить какое-то действие <a href …> присутствует “onclick="javascript:this.href = unescapeProperly(escape(this.href)); GoToLink(this); return false;" target="_self" то после окончания действия (нажатия ОК или Отмена) нас вернет на исходную страницу. Удобно, но загвоздка в одном - если у исходной страницы в URL присутствует Source – то идет возврат на него.

Помог вот этот топик форума: http://www.gotdotnet.ru/forums/5/119622/

“В SharePoint есть уже встроенный javascript, для организации передачи Source. Так что надо просто его использовать. Для этого оформляйте ссылку так:

<a href="url" onclick="javascript:GoToLink(this); return false;" target="_self">Link title</a>

Только чтобы это заработало необходимо, чтобы на странице было описание javascript функции GetSource, которая почему-то не описана в файлах javascript'ов SharePoint. Так что Вам придется на страницу добавить еще и вот такой кусок:

<SCRIPT type="text/javascript">
          function GetSource(defaultSource)
          {
          return escapeProperly(STSPageUrlValidation(window.location.href));
          }
</SCRIPT>”

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

Отправить комментарий