diff --git a/app/assets/javascripts/darkswarm/controllers/group_page_controller.js.coffee b/app/assets/javascripts/darkswarm/controllers/group_page_controller.js.coffee index b30d409b97..4e16b4d062 100644 --- a/app/assets/javascripts/darkswarm/controllers/group_page_controller.js.coffee +++ b/app/assets/javascripts/darkswarm/controllers/group_page_controller.js.coffee @@ -1,14 +1,20 @@ -Darkswarm.controller "GroupPageCtrl", ($scope, group_enterprises, Enterprises, MapConfiguration, OfnMap) -> +Darkswarm.controller "GroupPageCtrl", ($scope, group_enterprises, Enterprises, MapConfiguration, OfnMap, visibleFilter) -> $scope.Enterprises = Enterprises - group_enterprises_ids = group_enterprises.map (enterprise) => - enterprise.id - is_in_group = (enterprise) -> - group_enterprises_ids.indexOf(enterprise.id) != -1 + all_enterprises_by_id = Enterprises.enterprises_by_id - $scope.group_producers = Enterprises.producers.filter is_in_group - $scope.group_hubs = Enterprises.hubs.filter is_in_group + dereferenced_enterprises = group_enterprises.map (enterprise) => + all_enterprises_by_id[enterprise.id] + + visible_enterprises = visibleFilter dereferenced_enterprises + + # TODO: this is duplicate code with app/assets/javascripts/darkswarm/services/enterprises.js.coffee + # It would be better to load only the needed enterprises (group + related shops). + $scope.group_producers = visible_enterprises.filter (enterprise) -> + enterprise.category in ["producer_hub", "producer_shop", "producer"] + $scope.group_hubs = visible_enterprises.filter (enterprise) -> + enterprise.category in ["hub", "hub_profile", "producer_hub", "producer_shop"] $scope.map = angular.copy MapConfiguration.options - $scope.mapMarkers = OfnMap.enterprise_markers group_enterprises + $scope.mapMarkers = OfnMap.enterprise_markers visible_enterprises