8.7.2.3. Вариант 3. Автозаполнение данных формы из внешнего портала¶
Расширение Вариант 1. Отображение проигрывателя, встроенного во внешний портал. По нажатию на кнопку внешнего портала «Заполнить ИИН» поле формы «ИИН» автоматически заполняется.
Исходный код JavaScript и CSS формы аналогичны Вариант 1. Отображение проигрывателя, встроенного во внешний портал.
Исходный код JavaScript автозаполнения для варианта 3:
/**
* Created by user on 11.08.16.
*/
// вешаем лисенер на событие открытия формы
var fillInIIN = jQuery("<button>", {class: "portal_button"});
fillInIIN.html("Заполнить ИИН");
fillInIIN.click(function () {
if (portal.player == null) {
return;
}
var user = portal.player.model.getModelWithId("author").getValue();
if (user === null) {
return;
}
var personID = user.personID;
var IIN = ""; // some logic for getting IIN from server
var utf8 = unescape(encodeURIComponent(personID));
for (var i = 0; i < utf8.length; i++) {
IIN += utf8.charCodeAt(i) + "";
}
portal.player.model.getModelWithId("iin").setValue(IIN);
});
AS.FORMS.bus.on(AS.FORMS.EVENT_TYPE.formShow, function (event, model, view) {
// если проигрыватель открылся в режиме чтения то ничего не делаем
if (!view.editable) {
return;
}
jQuery("#portal_toolbar").append(fillInIIN);
});
AS.FORMS.bus.on(AS.FORMS.EVENT_TYPE.formDestroy, function (event, model, view) {
jQuery("#portal_toolbar").remove(fillInIIN);
});