Добрый день. Только начинаю работу с bpm'online, есть задача сделать на нескольких контролах формы подгрузку данных из стороннего сервиса. Т.е. надо запустить ajax запрос, заблокировать и показать крутилку на контролах, а потом выставить значения.
Вот с крутилкой и блокировкой я что-то подвис. Как я понимаю прямого доступа к контролам нет.
Как правильно сделать подобный функционал, возможно где-то уже есть что-то подобное?
Нравится
А что вы имеете ввиду под контролами?
Попробуйте в вашем коде вызывать методы showBodyMask() и hideBodyMask() в соответствующих местах. Они как раз и показываются крутилку и блокируют карточку.
Спасибо за ответ. Задача прогрузить данные из сторонней системы в ридонли поля, например остаток денег на счету, дату, т.е. какие-то простые типы. Методы showBodyMask/hideBodyMask, как я понимаю, блокируют всю карточку и в принципе могут решить задачу, но если сторонняя система подвиснет, карточка будет вечно заблокирована, что нехорошо, есть ли возможность показать крутилку рядом с конкретными контролами или секцией?
Я не совсем понимаю зачем блокировать поля, если они у вас и так ридонли и юзер туда ничего писать не может? Если они не ридонли, то их можно забиндить на аттрибут и ваш код будет их блокировать (делать ридонли) на время пока выполняется запрос. Или я как-то неправильно понимаю вашу задачу?
Добрый день
Есть такая возможность. К примеру в поле ввода номера телефона в Cti панели, когда производится поиск
var phoneNumberEdit = Ext.getCmp("PhoneNumber");
var maskId = Terrasoft.Mask.show({
selector: phoneNumberEdit.selectors.wrapEl,
frameVisible: false,
caption: ""
});
this.callExternalService(function(response) {
Terrasoft.Mask.hide(maskId)
}.bind(this));
Артем Гура,
Дополнительный вопрос - если я хочу сделать контрол, не имеющий связи с полем, только для считывания и сохранения данных в сторонний сервис, это возможно ведь?
Я начал описывать так:
{
"operation": "insert",
"values": {
"layout": {
"colSpan": 12,
"rowSpan": 1,
"column": 0,
"row": 2,
"layoutName": "CategoriesControlGroupContainer"
},
"enabled": true,
"contentType": 0,
"caption" : "UnBindedField",
"className": "Terrasoft.MemoEdit"
},
"parentName": "CategoriesControlGroupContainer",
"propertyName": "items",
"index": 4
}но получаю ошибку "Невозможно найти колонку по конфигурации", метка прорисовывается, контрол нет. Явно делаю что-то не то))), но примера подобного найти не могу. Пробовал играться с className, разными itemType, и дочерними items, но не смог подобрать комбинацию, когда мне и Label и контрол покажутся без ошибок. Описания использования этого функционала нигде в итене не нашел, куда посмотреть, и как решить задачу?
Вопрос: а имя не давали этому контролу? Если дать имя, то генератор будет пытаться сделать bind на одноименный атрибут модели. Далее, если вы используете свой атрибут, то вам нужно прописать данный атрибут в схеме
Артем Гура,
Создал отдельную ветку
https://community.terrasoft.ru/questions/sozdanie-kontrola-bez-privazki… и решил сложным способом - через добавления контейнеров метки и контрола, и простым - через виртуальное поле, теперь с гридом пытаюсь сделать аналогичную манипуляцию )