Browse Source

Reuse traits view

refactor-traits
Artur Arseniev 7 years ago
parent
commit
f4732fa178
  1. 20
      src/domain_abstract/view/DomainViews.js
  2. 1
      src/trait_manager/view/TraitSelectView.js
  3. 2
      src/trait_manager/view/TraitView.js
  4. 1
      src/trait_manager/view/TraitsView.js

20
src/domain_abstract/view/DomainViews.js

@ -29,20 +29,24 @@ export default Backbone.View.extend({
* @private
* */
add(model, fragment) {
const { config, reuseView } = this;
var frag = fragment || null;
var itemView = this.itemView;
var typeField = model.get(this.itemType);
let view;
if (this.itemsView && this.itemsView[typeField]) {
itemView = this.itemsView[typeField];
}
var view = new itemView(
{
model,
config: this.config
},
this.config
);
var rendered = view.render().el;
if (model.view && reuseView) {
view = model.view;
} else {
view = new itemView({ model, config }, config);
view.render();
}
var rendered = view.el;
if (frag) frag.appendChild(rendered);
else this.$el.append(rendered);

1
src/trait_manager/view/TraitSelectView.js

@ -51,7 +51,6 @@ export default TraitView.extend({
});
input += '</select>';
this.input = input;
this.$input = $(input);
let val = model.getTargetValue() || model.get('value');
!isUndefined(val) && this.$input.val(val);

2
src/trait_manager/view/TraitView.js

@ -162,7 +162,7 @@ export default Backbone.View.extend({
getInputElem() {
const { input, $input } = this;
return input || ($input && $input.get(0));
return input || ($input && $input.get(0)) || this.getElInput();
},
getModelValue() {

1
src/trait_manager/view/TraitsView.js

@ -8,6 +8,7 @@ import TraitButtonView from './TraitButtonView';
export default DomainViews.extend({
itemView: TraitView,
reuseView: 1,
itemsView: {
text: TraitView,

Loading…
Cancel
Save