in app/assets/javascripts/labels_select.js [246:325]
renderRow: function(label, instance) {
var linkEl,
listItemEl,
color,
colorEl,
indeterminate,
removesAll,
selectedClass,
spacing,
i,
marked,
dropdownValue;
selectedClass = [];
removesAll = label.id <= 0 || label.id == null;
if ($dropdown.hasClass('js-filter-bulk-update')) {
indeterminate = $dropdown.data('indeterminate') || [];
marked = $dropdown.data('marked') || [];
if (indeterminate.indexOf(label.id) !== -1) {
selectedClass.push('is-indeterminate');
}
if (marked.indexOf(label.id) !== -1) {
// Remove is-indeterminate class if the item will be marked as active
i = selectedClass.indexOf('is-indeterminate');
if (i !== -1) {
selectedClass.splice(i, 1);
}
selectedClass.push('is-active');
}
} else {
if (this.id(label)) {
dropdownValue = this.id(label)
.toString()
.replace(/'/g, "\\'");
if (
$form.find(
"input[type='hidden'][name='" +
this.fieldName +
"'][value='" +
dropdownValue +
"']",
).length
) {
selectedClass.push('is-active');
}
}
if (this.multiSelect && removesAll) {
selectedClass.push('dropdown-clear-active');
}
}
if (label.color) {
colorEl =
"<span class='dropdown-label-box' style='background: " + label.color + "'></span>";
} else {
colorEl = '';
}
linkEl = document.createElement('a');
linkEl.href = '#';
// We need to identify which items are actually labels
if (label.id) {
selectedClass.push('label-item');
linkEl.dataset.labelId = label.id;
}
linkEl.className = selectedClass.join(' ');
linkEl.innerHTML = `${colorEl} ${_.escape(label.title)}`;
listItemEl = document.createElement('li');
listItemEl.appendChild(linkEl);
return listItemEl;
},