IBM BPM, как обрабатывать события нажатия клавиш в Coach Views

Я немного знаком с HTML, CSS и JavaScript и написал несколько небольших приложений с использованием Angular и Ionic.

Сейчас я работаю с IBM BPM Coach Views и пытаюсь создать простой Coach View с полем ввода (привязанным к строковой переменной) и кнопкой.

Я хотел бы, чтобы кнопка была отключена (на языке BPM: только для чтения), пока поле пусто, но когда пользователь начинает что-либо вводить в поле, кнопка должна стать активной. Я связал видимость кнопки с другой строковой переменной.

Я искал вокруг, и кажется, я не могу найти простых примеров управления видимостью на основе событий нажатия клавиш в BPM.

Все, что я видел, это примеры с компонентами Dojo и виджетами Dijit, и в настоящее время это немного выше моей головы. Я ожидаю, что должен быть какой-то (относительно) простой способ сделать это с помощью 20-40 строк JavaScript либо в разделе «Встроенный JavaScript», либо в одном (или нескольких) «Обработчиках событий» на вкладке «Поведение» в Coach View Designer в IBM BPM 8.5.6. (он открывается в окне браузера, потому что мой Coach View работает в Human Side Client Service).

У кого-нибудь есть такой простой пример.


person Per Beliing    schedule 09.05.2016    source источник


Ответы (1)


Я бы предложил вам следующий подход.

  1. Создайте один пользовательский вид тренера (скажем, CV1).
  2. В CV1 перетащите ibm bpm, предоставив входной текст CV (укажите имя идентификатора элемента управления как "inputText").
  3. В CV1 перетащите ibm bpm, предоставив кнопку CV (укажите имя идентификатора элемента управления как «кнопка»).
  4. Во встроенном JS или событии загрузки CV1 напишите следующий код.

    // get input text elment
    var inputText = dojo.query("data-viewid['inputText']",this.context.element);
    var button = dojo.query("data-viewid['button']",this.context.element);
    
    //make button as disabled by default
    
    button.setAttribute('disabled', true);
    
    
    //key press event on input text
    
    inputText.on("keydown", function(event) {
    //Write your custom logic on key press
    button.setAttribute('disabled', false);
    });
    
person Ruhul    schedule 01.08.2016