12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- /** Component for showing detailed information about a dataset */
- define(
- function( require ) {
- var Backbone = require( "backbone" ),
- _ = require( "underscore" ),
- fui = require( "app/fui" ),
- DatasetInfoTpl = require( "plugins/text!app/templates/dataset-info.tpl" ),
- DatasetStatsView = require( "app/views/dataset-stats" ),
- DatasetStatsModel = require( "app/models/dataset-stats" );
- var DatasetInfo = Backbone.Marionette.ItemView.extend( {
- initialize: function() {
- _.bindAll( this, "onModelChanged", "onCountGraphs" );
- this.showStatistics( true );
- this.model.on( "change", this.onModelChanged );
- },
- template: _.template( DatasetInfoTpl ),
- ui: {
- stats: "#statistics",
- count: ".count-graphs"
- },
- el: "#info .with-dataset",
- events: {
- "click .count-graphs": "onCountGraphs"
- },
- templateHelpers: {
- },
- serializeData: function() {
- return this.model;
- },
- /** Alias for the model */
- dataset: function() {
- return this.model;
- },
- // event handlers
- onModelChanged: function() {
- if (!this.model.counting) {
- this.render();
- this.showStatistics( false );
- }
- },
- onCountGraphs: function( e ) {
- e.preventDefault();
- this.model.count();
- },
- showStatistics: function( keep ) {
- var self = this;
- this.model
- .statistics( keep )
- .done( function( data ) {
- var statsModel = new DatasetStatsModel( self.dataset(), data );
- new DatasetStatsView( {model: statsModel} ).render();
- } );
- }
- });
- return DatasetInfo;
- }
- );
|