From 2fb8f9f8a3b98eb6977c5d714edbe62cc5c1d253 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Thu, 4 Jun 2015 11:35:30 +1000 Subject: [PATCH 1/8] Redirect /products to / GitHub issue #571 --- config/routes.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/routes.rb b/config/routes.rb index 5fd29f6271..836c7df0f7 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,6 +1,8 @@ Openfoodnetwork::Application.routes.draw do root :to => 'home#index' + # Redirects from old URLs avoid server errors and helps search engines + get "/products", to: redirect("/") get "/#/login", to: "home#index", as: :spree_login get "/login", to: redirect("/#/login") From d61073f08d9dc27731c58167bbaf66729c7fe9c1 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Fri, 12 Jun 2015 10:47:31 +1000 Subject: [PATCH 2/8] redirect /enterprises to / --- config/routes.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/config/routes.rb b/config/routes.rb index 836c7df0f7..f4cfc3d565 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -2,6 +2,7 @@ Openfoodnetwork::Application.routes.draw do root :to => 'home#index' # Redirects from old URLs avoid server errors and helps search engines + get "/enterprises", to: redirect("/") get "/products", to: redirect("/") get "/#/login", to: "home#index", as: :spree_login From f2bc98e8123b212cb912824e5e861eb078bde77b Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Wed, 10 Jun 2015 15:28:53 +1000 Subject: [PATCH 3/8] E2E: select all permissions --- .../enterprise_relationships_controller.js.coffee | 11 +++++++++++ .../admin/enterprise_relationships/_form.html.haml | 3 +++ 2 files changed, 14 insertions(+) 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 88524fb330..1b90e18a34 100644 --- a/app/assets/javascripts/admin/controllers/enterprise_relationships_controller.js.coffee +++ b/app/assets/javascripts/admin/controllers/enterprise_relationships_controller.js.coffee @@ -9,3 +9,14 @@ angular.module("ofn.admin").controller "AdminEnterpriseRelationshipsCtrl", ($sco $scope.delete = (enterprise_relationship) -> if confirm("Are you sure?") $scope.EnterpriseRelationships.delete enterprise_relationship + + $scope.allPermissionsChecked = -> + for i in EnterpriseRelationships.all_permissions + if !$scope.permissions[i] + return false + return true + + $scope.checkAllPermissions = -> + newValue = !$scope.allPermissionsChecked() + EnterpriseRelationships.all_permissions.forEach (p) -> + $scope.permissions[p] = newValue diff --git a/app/views/admin/enterprise_relationships/_form.html.haml b/app/views/admin/enterprise_relationships/_form.html.haml index 9d031a57c5..95bd668953 100644 --- a/app/views/admin/enterprise_relationships/_form.html.haml +++ b/app/views/admin/enterprise_relationships/_form.html.haml @@ -7,6 +7,9 @@ %td %select{name: "enterprise_relationship_child_id", "ng-model" => "child_id", "ng-options" => "e.id as e.name for e in Enterprises.all_enterprises"} %td + %label + %input{type: "checkbox", ng: {checked: "allPermissionsChecked()", click: "checkAllPermissions()"}} + Everything %div{"ng-repeat" => "permission in EnterpriseRelationships.all_permissions"} %label %input{type: "checkbox", "ng-model" => "permissions[permission]"} From 61effc03c157af4d4ef8e6345dad28fac1374bc9 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Fri, 12 Jun 2015 14:59:32 +1000 Subject: [PATCH 4/8] add "Enterprise Relationships" tab for non-admins --- app/views/admin/shared/_enterprises_sub_menu.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/shared/_enterprises_sub_menu.html.haml b/app/views/admin/shared/_enterprises_sub_menu.html.haml index 31366091ef..3088b7e73e 100644 --- a/app/views/admin/shared/_enterprises_sub_menu.html.haml +++ b/app/views/admin/shared/_enterprises_sub_menu.html.haml @@ -1,4 +1,4 @@ = content_for :sub_menu do %ul#sub_nav.inline-menu{"data-hook" => "admin_enterprise_sub_tabs"} = tab :enterprises, url: main_app.admin_enterprises_path - = tab :relationships, url: main_app.admin_enterprise_relationships_path, match_path: '/enterprise_relationships' + = tab :enterprise_relationships, url: main_app.admin_enterprise_relationships_path From d717c38f6d3622ecce953baa354705e33a400d23 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Fri, 12 Jun 2015 17:02:40 +1000 Subject: [PATCH 5/8] Filter relationships by permission --- .../enterprise_relationships_controller.js.coffee | 12 ++++++++++++ .../admin/filters/keywords_filter.js.coffee | 7 +++++++ .../services/enterprise_relationships.js.coffee | 8 ++++---- .../_enterprise_relationship.html.haml | 4 ++-- .../enterprise_relationships/_search_input.html.haml | 5 +++++ .../admin/enterprise_relationships/index.html.haml | 2 +- 6 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 app/assets/javascripts/admin/filters/keywords_filter.js.coffee create mode 100644 app/views/admin/enterprise_relationships/_search_input.html.haml 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 1b90e18a34..47083d443a 100644 --- a/app/assets/javascripts/admin/controllers/enterprise_relationships_controller.js.coffee +++ b/app/assets/javascripts/admin/controllers/enterprise_relationships_controller.js.coffee @@ -10,6 +10,18 @@ angular.module("ofn.admin").controller "AdminEnterpriseRelationshipsCtrl", ($sco if confirm("Are you sure?") $scope.EnterpriseRelationships.delete enterprise_relationship + $scope.toggleKeyword = (string, key) -> + string = '' unless string + words = string.split ' ' + words = words.filter (s) -> + s + index = words.indexOf key + if index > -1 + words.splice index, 1 + else + words.push key + words.join ' ' + $scope.allPermissionsChecked = -> for i in EnterpriseRelationships.all_permissions if !$scope.permissions[i] diff --git a/app/assets/javascripts/admin/filters/keywords_filter.js.coffee b/app/assets/javascripts/admin/filters/keywords_filter.js.coffee new file mode 100644 index 0000000000..7d207518f0 --- /dev/null +++ b/app/assets/javascripts/admin/filters/keywords_filter.js.coffee @@ -0,0 +1,7 @@ +angular.module("ofn.admin").filter "keywords", ($filter) -> + return (array, query) -> + return array unless query + keywords = query.split ' ' + keywords.forEach (key) -> + array = $filter('filter')(array, key) + array diff --git a/app/assets/javascripts/admin/services/enterprise_relationships.js.coffee b/app/assets/javascripts/admin/services/enterprise_relationships.js.coffee index e6dcbf15df..8c7d798138 100644 --- a/app/assets/javascripts/admin/services/enterprise_relationships.js.coffee +++ b/app/assets/javascripts/admin/services/enterprise_relationships.js.coffee @@ -26,7 +26,7 @@ angular.module("ofn.admin").factory 'EnterpriseRelationships', ($http, enterpris permission_presentation: (permission) -> switch permission - when "add_to_order_cycle" then "to add to order cycle" - when "manage_products" then "to manage products" - when "edit_profile" then "to edit profile" - when "create_variant_overrides" then "to override variant details" + when "add_to_order_cycle" then "add to order cycle" + when "manage_products" then "manage products" + when "edit_profile" then "edit profile" + when "create_variant_overrides" then "override variant details" diff --git a/app/views/admin/enterprise_relationships/_enterprise_relationship.html.haml b/app/views/admin/enterprise_relationships/_enterprise_relationship.html.haml index 45e79b1877..996bc487d8 100644 --- a/app/views/admin/enterprise_relationships/_enterprise_relationship.html.haml +++ b/app/views/admin/enterprise_relationships/_enterprise_relationship.html.haml @@ -1,10 +1,10 @@ -%tr{"ng-repeat" => "enterprise_relationship in EnterpriseRelationships.enterprise_relationships | filter:query"} +%tr{"ng-repeat" => "enterprise_relationship in EnterpriseRelationships.enterprise_relationships | keywords:query"} %td {{ enterprise_relationship.parent_name }} %td permits %td {{ enterprise_relationship.child_name }} %td %ul %li{"ng-repeat" => "permission in enterprise_relationship.permissions"} - {{ EnterpriseRelationships.permission_presentation(permission.name) }} + to {{ EnterpriseRelationships.permission_presentation(permission.name) }} %td.actions %a.delete-enterprise-relationship.icon-trash.no-text{'ng-click' => 'delete(enterprise_relationship)'} diff --git a/app/views/admin/enterprise_relationships/_search_input.html.haml b/app/views/admin/enterprise_relationships/_search_input.html.haml new file mode 100644 index 0000000000..b8bcbc62c6 --- /dev/null +++ b/app/views/admin/enterprise_relationships/_search_input.html.haml @@ -0,0 +1,5 @@ +%input.search{"ng-model" => "query", "placeholder" => "Search"} + +%label{ng: {repeat: "permission in EnterpriseRelationships.all_permissions"}} + %input{type: "checkbox", ng: {click: "$parent.query = toggleKeyword($parent.query, permission)"}} + {{ EnterpriseRelationships.permission_presentation(permission) }} diff --git a/app/views/admin/enterprise_relationships/index.html.haml b/app/views/admin/enterprise_relationships/index.html.haml index 0807a37825..40fbdbc415 100644 --- a/app/views/admin/enterprise_relationships/index.html.haml +++ b/app/views/admin/enterprise_relationships/index.html.haml @@ -6,7 +6,7 @@ %div{"ng-app" => "ofn.admin", "ng-controller" => "AdminEnterpriseRelationshipsCtrl"} = render 'data' - %input.search{"ng-model" => "query", "placeholder" => "Search"} + = render 'search_input' %table#enterprise-relationships %tbody From de1971072ef93dc3aa42280f201a1f9d8b4201a1 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Fri, 12 Jun 2015 17:09:04 +1000 Subject: [PATCH 6/8] update relationship js spec --- .../services/enterprise_relationships_spec.js.coffee | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/javascripts/unit/admin/services/enterprise_relationships_spec.js.coffee b/spec/javascripts/unit/admin/services/enterprise_relationships_spec.js.coffee index 0d8e50fc5a..0d0a01215d 100644 --- a/spec/javascripts/unit/admin/services/enterprise_relationships_spec.js.coffee +++ b/spec/javascripts/unit/admin/services/enterprise_relationships_spec.js.coffee @@ -12,7 +12,7 @@ describe "enterprise relationships", -> EnterpriseRelationships = _EnterpriseRelationships_ it "presents permission names", -> - expect(EnterpriseRelationships.permission_presentation("add_to_order_cycle")).toEqual "to add to order cycle" - expect(EnterpriseRelationships.permission_presentation("manage_products")).toEqual "to manage products" - expect(EnterpriseRelationships.permission_presentation("edit_profile")).toEqual "to edit profile" - expect(EnterpriseRelationships.permission_presentation("create_variant_overrides")).toEqual "to override variant details" + expect(EnterpriseRelationships.permission_presentation("add_to_order_cycle")).toEqual "add to order cycle" + expect(EnterpriseRelationships.permission_presentation("manage_products")).toEqual "manage products" + expect(EnterpriseRelationships.permission_presentation("edit_profile")).toEqual "edit profile" + expect(EnterpriseRelationships.permission_presentation("create_variant_overrides")).toEqual "override variant details" From c6d01055d642f61ad315e547cc6cdf790d5248d7 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Fri, 12 Jun 2015 19:32:56 +1000 Subject: [PATCH 7/8] updating relationship spec --- app/views/admin/enterprise_relationships/_form.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/enterprise_relationships/_form.html.haml b/app/views/admin/enterprise_relationships/_form.html.haml index 95bd668953..433f9f4ca0 100644 --- a/app/views/admin/enterprise_relationships/_form.html.haml +++ b/app/views/admin/enterprise_relationships/_form.html.haml @@ -13,7 +13,7 @@ %div{"ng-repeat" => "permission in EnterpriseRelationships.all_permissions"} %label %input{type: "checkbox", "ng-model" => "permissions[permission]"} - {{ EnterpriseRelationships.permission_presentation(permission) }} + to {{ EnterpriseRelationships.permission_presentation(permission) }} %td.actions %input{type: "button", value: "Create", "ng-click" => "create()"} .errors {{ EnterpriseRelationships.create_errors }} From 80bf6e61ad37d9c12619b8dd72bfc4c76085f927 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Sat, 13 Jun 2015 11:59:52 +1000 Subject: [PATCH 8/8] redirect /t/products/:id to / --- config/routes.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/config/routes.rb b/config/routes.rb index 4d21025e5e..9855f96fe0 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -4,6 +4,7 @@ Openfoodnetwork::Application.routes.draw do # Redirects from old URLs avoid server errors and helps search engines get "/enterprises", to: redirect("/") get "/products", to: redirect("/") + get "/t/products/:id", to: redirect("/") get "/#/login", to: "home#index", as: :spree_login get "/login", to: redirect("/#/login")