Sha256: c572cf233ebda256723af152f1374c5eb3f6fa5d79fa9f10e14e75a3f69bc575

Contents?: true

Size: 1.7 KB

Versions: 11

Compression:

Stored size: 1.7 KB

Contents

// ComboBox that gets options from the server (used in both grids and panels)
Ext.define('Ext.netzke.ComboBox', {
  extend        : 'Ext.form.field.ComboBox',
  alias         : 'widget.netzkeremotecombo',
  valueField    : 'value',
  displayField  : 'text',
  triggerAction : 'all',
  forceSelection: true,

  initComponent : function(){
    var parent = this.netzkeParent || this.findParentBy(function(c) { return c.isNetzke; }),
      modelName = parent.id + "_" + this.name;

    if (this.blankLine == undefined) this.blankLine = "---";

    if (!Netzke.isModelDefined(modelName)) {
      Ext.define(Netzke.modelName(modelName), {
        extend: 'Ext.data.Model',
        fields: ['value', 'text']
      });
    };

    var store = new Ext.data.Store({
      model: Netzke.modelName(modelName),
      proxy: {
        type: 'direct',
        directFn: Netzke.providers[parent.id].getComboboxOptions,
        extraParams: {configs: parent.buildParentClientConfigs()},
        reader: {
          type: 'array',
          rootProperty: 'data'
        }
      }
    });

    store.on('beforeload', function(self, op) {
      op.setParams(Ext.apply(op.getParams(), {attr: this.name}));
    }, this);

    // insert a selectable "blank line" which allows to remove the associated record
    if (this.blankLine) {
      store.on('load', function(self, params) {
        // append a selectable "empty line" which will allow remove the association
        self.add(Ext.create(Netzke.modelName(modelName), {value: -1, text: this.blankLine}));
      }, this);
    }

    // If inline data was passed (TODO: is this actually working?)
    if (this.store) store.loadData({data: this.store});

    this.store = store;

    this.callParent();
  }
});

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
netzke-basepack-0.12.9 javascripts/netzkeremotecombo.js
netzke-basepack-0.12.8 javascripts/netzkeremotecombo.js
netzke-basepack-0.12.7 javascripts/netzkeremotecombo.js
netzke-basepack-0.12.6 javascripts/netzkeremotecombo.js
netzke-basepack-0.12.5 javascripts/netzkeremotecombo.js
netzke-basepack-0.12.4 javascripts/netzkeremotecombo.js
netzke-basepack-0.12.3 javascripts/netzkeremotecombo.js
netzke-basepack-0.12.2 javascripts/netzkeremotecombo.js
netzke-basepack-0.12.1 javascripts/netzkeremotecombo.js
netzke-basepack-0.12.0 javascripts/netzkeremotecombo.js
netzke-basepack-0.12.0.rc1 javascripts/netzkeremotecombo.js