В этом руководстве показано, как сделать две полезные вещи в SugarCRM 7.
Во-первых, как вызывать действия при обновлении строк в списке записей
SugarCRM, а во-вторых, как устанавливать информацию на основе данных строки. Приведенный здесь
пример существенно обновит цвета таблицы на основе
конкретного значения данных в каждой строке. Итак, скажем, у вас есть раскрывающийся список со значениями
Red, Green, Orange и Yellow, это обновит строки до указанного
цвета. Ключевым вызовом здесь является this.collection.on(‘data:sync:complete’), который, по сути, срабатывает, когда синхронизация данных sidecar(read backbone) завершена.

Этот код будет находиться в custom/modules/‹YOUR_MODULE›/clients/base/views/recordlist/recordlist.js.

({
this.collection.on(‘data:sync:complete’, function() {
 this.render_colors();
 }, this);
 },
 render_colors : function() {
 setTimeout(
 function() {
 $(“tr[name^=’’]”).each(function () { //loop over each row
 if ($(this).find(‘div[data-original-title=”Red”]’).length > 0) { //check value of TD
 $(this).find($(‘td’)).each(function () {
 $(this).css(“background-color”, “#FFBABA”);
 });
 } else if ($(this).find(‘div[data-original-title=”Green”]’).length > 0) {
 $(this).find($(‘td’)).each(function () {
 $(this).css(“background-color”, “#C3F8B5”);
 });
 } else if ($(this).find(‘div[data-original-title=”Orange”]’).length > 0) {
 $(this).find($(‘td’)).each(function () {
 $(this).css(“background-color”, “#FFCF8F”);
 });
 } else if ($(this).find(‘div[data-original-title=”Yellow”]’).length > 0) {
 $(this).find($(‘td’)).each(function () {
 $(this).css(“background-color”, “#FAFE8E”);
 });
 }
 });
 }, 1000);
 }
 })

Одна вещь, которую вы могли бы заметить, это setTimeout с задержкой в ​​1 секунду.
Это просто потому, что таблица не будет отображаться, как только синхронизация завершится,
поэтому было добавлено ожидание в секунду разрешить браузеру
отображать таблицу, прежде чем перебирать строки и устанавливать
соответствующие цвета. Честно говоря, я просто не смог найти никакой документации или
примеров кода, чтобы увидеть, срабатывает ли даже при повторном отображении таблицы,
но я обновлю его здесь, если найду лучшее решение.