renderRow: function()

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;
        },