Sha256: ea87ece3f274535132b631d20385a891de4fb442abb41cd4f8289751c1887aa6

Contents?: true

Size: 1.54 KB

Versions: 51

Compression:

Stored size: 1.54 KB

Contents

pageflow.ConfigurationEditorTabView = Backbone.Marionette.View.extend({
  className: 'configuration_editor',

  initialize: function() {
    this.groups = this.options.groups || pageflow.ConfigurationEditorTabView.groups;
  },

  input: function(propertyName, view, options) {
    this.view(view, _.extend({
      placeholderModel: this.options.placeholderModel,
      propertyName: propertyName,
      attributeTranslationKeyPrefixes: this.options.attributeTranslationKeyPrefixes
    }, options || {}));
  },

  view: function(view, options) {
    this.inputs = this.inputs || new Backbone.ChildViewContainer();
    this.inputs.add(new view(_.extend({
      model: this.model,
      parentTab: this.options.tab
    }, options || {})));
  },

  group: function(name, options) {
    this.groups.apply(name, this, options);
  },

  render: function() {
    this.inputs.each(function(input) {
      this.$el.append(input.render().el);
    }, this);

    return this;
  },

  onClose: function() {
    if (this.inputs) {
      this.inputs.call('close');
    }
  }
});

pageflow.ConfigurationEditorTabView.Groups = function() {
  var groups = {};

  this.define = function(name, fn) {
    if (typeof fn !== 'function') {
      throw 'Group has to be function.';
    }

    groups[name] = fn;
  };

  this.apply = function(name, context, options) {
    if (!(name in groups)) {
      throw 'Undefined group named "' + name + '".';
    }

    groups[name].call(context, options || {});
  };
};

pageflow.ConfigurationEditorTabView.groups = new pageflow.ConfigurationEditorTabView.Groups();

Version data entries

51 entries across 51 versions & 1 rubygems

Version Path
pageflow-14.1.1 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-14.1.0 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-14.0.0 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-14.0.0.rc2 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-14.0.0.rc1 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-14.0.0.beta3 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-14.0.0.beta2 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-14.0.0.beta1 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-13.6.0 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-13.5.0 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-13.4.0 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-13.3.0 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-13.2.0 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-12.6.0 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-13.1.0 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-12.5.0 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-12.4.1 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-13.0.0 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-13.0.0.rc1 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js
pageflow-12.4.0 app/assets/javascripts/pageflow/ui/views/configuration_editor_tab_view.js