From 5f4e4ebeb025e26b2e48e17452c4eb71b3784d2b Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Thu, 15 May 2014 14:49:39 +1000 Subject: [PATCH] Admin can list enterprise relationships --- ...erprise_relationships_controller.js.coffee | 4 +-- .../enterprise_relationships.js.coffee | 4 +++ .../enterprise_relationships_controller.rb | 2 +- .../enterprise_relationships/index.html.haml | 10 ++++-- .../admin/enterprise_relationships_spec.rb | 32 +++++++++++++++++++ 5 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 app/assets/javascripts/admin/services/enterprise_relationships.js.coffee create mode 100644 spec/features/admin/enterprise_relationships_spec.rb diff --git a/app/assets/javascripts/admin/controllers/enterprise_relationships_controller.js.coffee b/app/assets/javascripts/admin/controllers/enterprise_relationships_controller.js.coffee index 39a4ad38c4..cd86cf20d6 100644 --- a/app/assets/javascripts/admin/controllers/enterprise_relationships_controller.js.coffee +++ b/app/assets/javascripts/admin/controllers/enterprise_relationships_controller.js.coffee @@ -1,2 +1,2 @@ -Admin.controller "AdminEnterpriseRelationshipsCtrl", ($scope) -> - $scope.hello = "Hello, angular." +Admin.controller "AdminEnterpriseRelationshipsCtrl", ($scope, EnterpriseRelationships) -> + $scope.EnterpriseRelationships = EnterpriseRelationships diff --git a/app/assets/javascripts/admin/services/enterprise_relationships.js.coffee b/app/assets/javascripts/admin/services/enterprise_relationships.js.coffee new file mode 100644 index 0000000000..0201a9793e --- /dev/null +++ b/app/assets/javascripts/admin/services/enterprise_relationships.js.coffee @@ -0,0 +1,4 @@ +Admin.factory 'EnterpriseRelationships', (enterprise_relationships) -> + new class EnterpriseRelationships + constructor: -> + @enterprise_relationships = enterprise_relationships diff --git a/app/controllers/admin/enterprise_relationships_controller.rb b/app/controllers/admin/enterprise_relationships_controller.rb index 7959b9d9b5..d8dcfdde9d 100644 --- a/app/controllers/admin/enterprise_relationships_controller.rb +++ b/app/controllers/admin/enterprise_relationships_controller.rb @@ -1,7 +1,7 @@ module Admin class EnterpriseRelationshipsController < ResourceController def index - + @enterprise_relationships = EnterpriseRelationship.by_name end end end diff --git a/app/views/admin/enterprise_relationships/index.html.haml b/app/views/admin/enterprise_relationships/index.html.haml index aff1fa2e6f..897593b22d 100644 --- a/app/views/admin/enterprise_relationships/index.html.haml +++ b/app/views/admin/enterprise_relationships/index.html.haml @@ -4,12 +4,16 @@ = render 'admin/shared/enterprises_sub_menu' %div{"ng-app" => "ofn.admin", "ng-controller" => "AdminEnterpriseRelationshipsCtrl"} + :javascript + angular.module('ofn.admin').value('enterprise_relationships', #{render partial: "admin/json/enterprise_relationships", object: @enterprise_relationships}) + -#%pre {{ EnterpriseRelationships.enterprise_relationships | json }} + %table#enterprise-relationships %thead %tr %th Parent %th Child %tbody - %tr - %td {{ hello }} - %td {{ hello }} + %tr{"ng-repeat" => "enterprise_relationship in EnterpriseRelationships.enterprise_relationships"} + %td {{ enterprise_relationship.parent_name }} + %td {{ enterprise_relationship.child_name }} diff --git a/spec/features/admin/enterprise_relationships_spec.rb b/spec/features/admin/enterprise_relationships_spec.rb new file mode 100644 index 0000000000..ca0a065e5f --- /dev/null +++ b/spec/features/admin/enterprise_relationships_spec.rb @@ -0,0 +1,32 @@ +require 'spec_helper' + +feature %q{ + As an Administrator + I want to manage relationships between enterprises +}, js: true do + include AuthenticationWorkflow + include WebHelper + + before { login_to_admin_section } + + scenario "listing relationships" do + # Given some enterprises with relationships + e1, e2, e3, e4 = create(:enterprise), create(:enterprise), create(:enterprise), create(:enterprise) + create(:enterprise_relationship, parent: e1, child: e2) + create(:enterprise_relationship, parent: e3, child: e4) + + # When I go to the relationships page + click_link 'Enterprises' + click_link 'Relationships' + + # Then I should see the relationships + within('table#enterprise-relationships') do + page.should have_table_row [e1.name, e2.name] + page.should have_table_row [e3.name, e4.name] + end + end + + + scenario "creating a relationship" + scenario "deleting a relationship" +end