Sha256: 1ef1b169e130384eadd9e5195c315e5e9f8c91a27ec1ce75a3a9b438c4733f7f

Contents?: true

Size: 1.46 KB

Versions: 4

Compression:

Stored size: 1.46 KB

Contents

// EntitySelector extension for qualified entities

/*jslint vars: true, unparam: true, white: true */
/*global jQuery, IQVOC */

(function($) {
  "use strict";

  var QualifiedEntitySelector = function(args) {
    var res = IQVOC.EntitySelector.apply(this, arguments);
    if(this.qualified()) {
      this.container.on("change", "input.qualified", this.onQualify);
    }
    return res;
  };

  QualifiedEntitySelector.prototype = new IQVOC.EntitySelector();

  QualifiedEntitySelector.prototype.qualified = function() { // TODO: document (NB: doubles as i18n)
    return this.el.data("qualified") || false;
  };

  QualifiedEntitySelector.prototype.onQualify = function(ev) {
    var el = $(this),
      entity = el.closest("li"),
      widget = el.closest(".entity_select").data("widget"),
      id = entity.data("id"),
      value = id + ":" + el.val();
    widget.remove(id);
    widget.add(value);
  };

  QualifiedEntitySelector.prototype.createEntity = function(entity) {
    var node = IQVOC.EntitySelector.prototype.createEntity.apply(this, arguments),
      qualified = this.qualified();
    if(qualified) {
      var el = $(node);
      $('<input class="qualified" />').attr("placeholder", qualified).
          val(entity[qualified]).insertAfter(el.children(":first"));
    }
    return node;
  };

  $(function() {
    // init entity selection (edit mode)
    $("input.entity_select").each(function(i, node) {
      new QualifiedEntitySelector(node);
    });
  });

}(jQuery));

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
iqvoc-4.14.5 app/assets/javascripts/iqvoc/entityselect_qualified.js
iqvoc-4.14.4 app/assets/javascripts/iqvoc/entityselect_qualified.js
iqvoc-4.13.2 app/assets/javascripts/iqvoc/entityselect_qualified.js
iqvoc-4.13.0 app/assets/javascripts/iqvoc/entityselect_qualified.js