X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/3bf45c83c84f9e7a1c5f2dafd64d812c987037e5..6d29b81537b9a6b32bd5415d0c4ff3323faa51a0:/project/static/js/views/panel_container.js?ds=sidebyside diff --git a/project/static/js/views/panel_container.js b/project/static/js/views/panel_container.js index 66683dd2..c8735744 100644 --- a/project/static/js/views/panel_container.js +++ b/project/static/js/views/panel_container.js @@ -1,12 +1,14 @@ -/*globals Class render_template panels*/ +/*globals View render_template panels*/ -var PanelContainerView = Class.extend({ +var PanelContainerView = View.extend({ element: null, + model: null, template: 'panel-container-view-template', contentView: null, - init: function(element, template) { + init: function(element, model, template) { this.element = $(element); + this.model = model; this.template = template || this.template; this.element.html(render_template(this.template, {panels: panels})); @@ -17,12 +19,17 @@ var PanelContainerView = Class.extend({ var view = panels[$('select', this.element.get(0)).val()]; var klass = view.klass; console.log(view, klass); - this.contentView = new klass($('.content-view', this.element.get(0))); + if (this.contentView) { + this.contentView.dispose(); + this.contentView = null; + } + this.contentView = new klass($('.content-view', this.element.get(0)), this.model); console.log(this.contentView); }, dispose: function() { $('select', this.element.get(0)).unbind('change.panel-container-view'); + this._super(); } });