MZZ.Framework 0.3.x: Документация
Разделы

3.9 JIP и AJAX

JIP - это быстрый доступ к действиям над объектом.

Все действия, на которые есть права у текущего пользователя, собраны в виде элементов меню, которое отображается при нажатии на кнопку JIP рядом с объектом. При нажатии на такой элемент открывается JIP окно и благодаря технологии AJAX позволяет выполнить действие над объектом не покидая текущую страницу.

Реализация клиентской части JIP состоит из трех Javascript-файлов: prototype.js, effects.js, jip.js и одного CSS: jip.css. Два последних файла подгружается только при наличии на странице хотя бы одного JIP-меню. Подключение Javascript/CSS файлов, используемых только в JIP-окнах, может располагаться в шаблоне jip.tpl (см. {add}).

Кнопка JIP появляется только когда у текущего пользователя есть хотя бы одно разрешенное действие над объектом.

В качестве JavaScript Framework используется Prototype, существенно облегчающий разработку JavaScript сценариев. Кроме того, используется библиотека script.aculo.us.

JIP имеет каждый DataObject, наследованный от класса simple.

Действия, которые доступны в меню при наличии прав на них, имеют опцию jip со значением 1 в конфигурации действий:

[edit]
controller = "edit"
jip = "1"

Для отображения кнопки JIP необходимо в шаблоне вызвать метод simple::getJip():

{$news->getJip()}

При нажатии на один из элементов соответствующая страница открывается в JIP-окне.

Также в JIP-окне открываются любые ссылки, принадлежащие CSS-классу jipLink:

<a href="{url route="default" section="news" action="info"}" class="jipLink">Сис. информация</a>

Открываемые в JIP-окне страницы должны содержать как минимум его заголовок. Он определяется HTML-элементом <DIV>, который принадлежит к CSS-классу jipTitle:

<div class="jipTitle">Создать новость</div>

Форму можно отправить через Ajax добавив атрибут onsubmit="return mzzAjax.sendForm(this);":

<form action="/winner/add" method="post" onsubmit="return mzzAjax.sendForm(this);"><br />
Имя: <input size="60" name="name" type="text"><br />
<input type="submit"><br />
</form>
Закрыть JIP-окно можно вызовом Javascript-функции jipWindow.close():
<input type="reset" onclick="jipWindow.close();">
<a href="javascript: void(jipWindow.close());">закрыть</a>