+ },
+
+ visibleFiles: function() {
+ return this.showHidden() ? this.files.models : this.files.visible();
+ },
+
+ selectedFiles: function() {
+ return _.filter(this.visibleFiles(), function(item) {
+ return item.get('checked');
+ });
+ },
+
+ selectAll: function() {
+ var checked = this.$selectAll[0].checked;
+
+ _.each(this.visibleFiles(), function(item) {
+ item.set('checked', checked);
+ })
+ },
+
+ updateSelectAll: function() {
+ this.$selectAll.prop('checked', this.selectedFiles().length == this.visibleFiles().length);