diff --git a/app/assets/javascripts/darkswarm/filters/visible.js.coffee b/app/assets/javascripts/darkswarm/filters/visible.js.coffee new file mode 100644 index 0000000000..7430c2e553 --- /dev/null +++ b/app/assets/javascripts/darkswarm/filters/visible.js.coffee @@ -0,0 +1,4 @@ +Darkswarm.filter "visible", -> + (objects)-> + objects.filter (obj)-> + obj.visible diff --git a/app/assets/javascripts/darkswarm/services/hubs.js.coffee b/app/assets/javascripts/darkswarm/services/hubs.js.coffee index 92a5d45464..ac7dc3a0eb 100644 --- a/app/assets/javascripts/darkswarm/services/hubs.js.coffee +++ b/app/assets/javascripts/darkswarm/services/hubs.js.coffee @@ -1,10 +1,9 @@ -Darkswarm.factory 'Hubs', ($filter, Enterprises) -> +Darkswarm.factory 'Hubs', ($filter, Enterprises, visibleFilter) -> new class Hubs constructor: -> @hubs = @order Enterprises.enterprises.filter (hub)-> hub.is_distributor - @visible = @hubs.filter (hub)-> - hub.visible + @visible = visibleFilter @hubs order: (hubs)-> $filter('orderBy')(hubs, ['-active', '+orders_close_at']) diff --git a/app/assets/javascripts/darkswarm/services/producers.js.coffee b/app/assets/javascripts/darkswarm/services/producers.js.coffee index ac8354c101..65d8e42c5d 100644 --- a/app/assets/javascripts/darkswarm/services/producers.js.coffee +++ b/app/assets/javascripts/darkswarm/services/producers.js.coffee @@ -1,6 +1,7 @@ -Darkswarm.factory 'Producers', (Enterprises) -> +Darkswarm.factory 'Producers', (Enterprises, visibleFilter) -> new class Producers constructor: -> @producers = Enterprises.enterprises.filter (enterprise)-> enterprise.is_primary_producer + @visible = visibleFilter @producers diff --git a/app/views/producers/index.haml b/app/views/producers/index.haml index 46845f9474..83180568d8 100644 --- a/app/views/producers/index.haml +++ b/app/views/producers/index.haml @@ -23,7 +23,7 @@ .active_table %producer.active_table_node.row.animate-repeat{id: "{{producer.path}}", "scroll-after-load" => true, - "ng-repeat" => "producer in filteredProducers = (Producers.producers | filterProducers:query)", + "ng-repeat" => "producer in filteredProducers = (Producers.visible | filterProducers:query)", "ng-controller" => "ProducerNodeCtrl", "ng-class" => "{'closed' : !open(), 'open' : open(), 'inactive' : !producer.active}", id: "{{producer.hash}}"} diff --git a/spec/features/consumer/producers_spec.rb b/spec/features/consumer/producers_spec.rb index 7a7bf333a3..8e834aaeb3 100644 --- a/spec/features/consumer/producers_spec.rb +++ b/spec/features/consumer/producers_spec.rb @@ -7,6 +7,7 @@ feature %q{ }, js: true do include UIComponentHelper let!(:producer) { create(:supplier_enterprise) } + let!(:invisible_producer) { create(:supplier_enterprise, visible: false) } before do visit producers_path @@ -17,4 +18,8 @@ feature %q{ expand_active_table_node producer.name page.should have_content producer.supplied_taxons.join(', ') end + + it "doesn't show invisible producers" do + page.should_not have_content invisible_producer.name + end end