diff options
Diffstat (limited to 'module/web/static/js/views/selectionView.js')
| -rw-r--r-- | module/web/static/js/views/selectionView.js | 49 | 
1 files changed, 49 insertions, 0 deletions
| diff --git a/module/web/static/js/views/selectionView.js b/module/web/static/js/views/selectionView.js new file mode 100644 index 000000000..5cb22b776 --- /dev/null +++ b/module/web/static/js/views/selectionView.js @@ -0,0 +1,49 @@ +define(['jquery', 'backbone', 'underscore', 'app'], +    function($, Backbone, _, App) { + +        // Renders context actions for selection packages and files +        return Backbone.View.extend({ +            el: '#selection-area', +            template: _.compile($("#template-select").html()), + +            // available packages +            tree: null, +            // selected files +            files: null, +            // needed to know when slide down +            current: 0, + +            initialize: function(tree) { +                this.tree = tree; +                this.files = tree.get('files'); + +                App.vent.on('dashboard:show', _.bind(this.set_files, this)); +                App.vent.on('package:selection', _.bind(this.render, this)); +                App.vent.on('file:selection', _.bind(this.render, this)); +            }, + +            render: function() { +                var files = 0; +                if (this.files) +                    files = this.files.where({selected: true}).length; + +                var packs = this.tree.get('packages').where({selected: true}).length; + +                if (files + packs > 0) +                    this.$el.html(this.template({files: files, packs: packs})); + +                if (files + packs > 0 && this.current === 0) +                    this.$el.slideOut(); +                else if (files + packs === 0 && this.current > 0) +                    this.$el.slideIn(); + +                this.current = files + packs; + +            }, + +            set_files: function(files) { +                this.files = files; +                this.render(); +            } +        }); +    });
\ No newline at end of file | 
