Добрый день. Только начинаю работу с 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… и решил сложным способом - через добавления контейнеров метки и контрола, и простым - через виртуальное поле, теперь с гридом пытаюсь сделать аналогичную манипуляцию )