X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/7f3f79476a57d10991566c511d40e20154c01064..78644811ca0c6042212788dc67add42bc41fb74c:/platforma/static/js/views/panel_container.js diff --git a/platforma/static/js/views/panel_container.js b/platforma/static/js/views/panel_container.js new file mode 100644 index 00000000..6dbddd98 --- /dev/null +++ b/platforma/static/js/views/panel_container.js @@ -0,0 +1,48 @@ +/*globals View render_template panels*/ + +var PanelContainerView = View.extend({ + _className: 'PanelContainerView', + element: null, + model: null, + template: 'panel-container-view-template', + contentView: null, + + init: function(element, model, template) { + this._super(element, model, template); + + $('.panel-main-toolbar select', this.element.get(0)).bind('change.panel-container-view', this.selectChanged.bind(this)); + $('.panel-main-toolbar .refresh', this.element.get(0)) + .bind('click.panel-container-view', this.refreshButtonClicked.bind(this)) + .attr('disabled', 'disabled'); + }, + + selectChanged: function(event) { + var value = $('select', this.element.get(0)).val(); + var klass = panels[value]; + + if (this.contentView) { + this.contentView.dispose(); + this.contentView = null; + } + + if( value != 'empty') { + this.contentView = new klass($('.content-view', + this.element.get(0)), this.model.contentModels[value], this); + $('.panel-main-toolbar .refresh', this.element.get(0)).attr('disabled', null); + } + }, + + refreshButtonClicked: function(event) { + if (this.contentView) { + console.log('refreshButtonClicked'); + this.contentView.reload(); + } + }, + + dispose: function() { + $('.panel-main-toolbar .refresh', this.element.get(0)).unbind('click.panel-container-view'); + $('.panel-main-toolbar select', this.element.get(0)).unbind('change.panel-container-view'); + this._super(); + } +}); +