diff --git a/src/js/views/files.js b/src/js/views/files.js index 9447f45ad..a350a9fea 100644 --- a/src/js/views/files.js +++ b/src/js/views/files.js @@ -248,15 +248,18 @@ export var FileListView = Backbone.View.extend({ ""; self.$tbody.html(msg); } - _.each(this.model.models, function (file) { - if (file.isVisible(filter)) { - var disabled = currentFileId === file.get('id') ? true: false; - file.set('disabled', disabled); - var e = new FileListItemView({model:file, listview:self}).render().el; - self.$tbody.prepend(e); - } + let visibleFiles = this.model.models.filter(file => file.isVisible(filter)); + _.each(visibleFiles, function (file) { + var disabled = currentFileId === file.get('id') ? true: false; + file.set('disabled', disabled); + var e = new FileListItemView({model:file, listview:self}).render().el; + self.$tbody.prepend(e); }); var owners = this.model.pluck("owner"); + if (filter.group) { + let ownerIds = this.model.models.filter(f => f.get('group').id == filter.group).map(f => f.get('owner').id); + owners = owners.filter(o => ownerIds.includes(o.id)); + } var ownersByName = {}; owners.forEach(function(o){ let name = o.firstName + " " + o.lastName; @@ -274,12 +277,20 @@ export var FileListView = Backbone.View.extend({ var ownersHtml = "
  • -- Show All --
  • "; ownersHtml += "
  • "; _.each(ownersNames, function(name) { - ownersHtml += "
  • " + _.escape(name) + "
  • "; + ownersHtml += `
  • + + + ${_.escape(name)} +
  • `; }); $("#owner-menu").html(ownersHtml); // render groups chooser var groups = this.model.pluck("group"); + if (filter.owner) { + let groupIds = this.model.models.filter(f => f.get('owner').id == filter.owner).map(f => f.get('group').id); + groups = groups.filter(g => groupIds.includes(g.id)); + } var groupsByName = {}; groups.forEach(function (g) { groupsByName[g.name] = g.id; @@ -287,7 +298,11 @@ export var FileListView = Backbone.View.extend({ var groupNames = Object.keys(groupsByName); groupNames.sort(); var groupsHtml = "
  • -- Show All --
  • "; - groupsHtml += groupNames.map(function (name) { return "
  • " + _.escape(name) + "
  • "}).join('\n'); + groupsHtml += groupNames.map(name => `
  • + + + ${_.escape(name)} +
  • `).join('\n'); $("#group-menu").html(groupsHtml); return this; }