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 * @private
* */ * */
add(model, fragment) { add(model, fragment) {
const { config, reuseView } = this;
var frag = fragment || null; var frag = fragment || null;
var itemView = this.itemView; var itemView = this.itemView;
var typeField = model.get(this.itemType); var typeField = model.get(this.itemType);
let view;
if (this.itemsView && this.itemsView[typeField]) { if (this.itemsView && this.itemsView[typeField]) {
itemView = this.itemsView[typeField]; itemView = this.itemsView[typeField];
} }
var view = new itemView(
{ if (model.view && reuseView) {
model, view = model.view;
config: this.config } else {
}, view = new itemView({ model, config }, config);
this.config view.render();
); }
var rendered = view.render().el;
var rendered = view.el;
if (frag) frag.appendChild(rendered); if (frag) frag.appendChild(rendered);
else this.$el.append(rendered); else this.$el.append(rendered);

1
src/trait_manager/view/TraitSelectView.js

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

2
src/trait_manager/view/TraitView.js

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

1
src/trait_manager/view/TraitsView.js

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

Loading…
Cancel
Save