From c6d9bfafbc22ce222a645eee278cf0f12620b7b3 Mon Sep 17 00:00:00 2001 From: Rob H Date: Fri, 17 Jan 2014 13:48:28 +0800 Subject: [PATCH] Create shared services module for backend angularjs, rename modules --- .../admin/bulk_order_management.js.coffee | 6 ++-- .../admin/bulk_product_update.js.coffee | 34 ++++++------------- .../admin/shared_services.js.coffee | 14 ++++++++ .../spree/admin/products/bulk_edit.html.haml | 2 +- config/ng-test.conf.js | 1 + .../unit/bulk_order_management_spec.js.coffee | 8 ++--- .../unit/bulk_product_update_spec.js.coffee | 6 ++-- 7 files changed, 36 insertions(+), 35 deletions(-) create mode 100644 app/assets/javascripts/admin/shared_services.js.coffee diff --git a/app/assets/javascripts/admin/bulk_order_management.js.coffee b/app/assets/javascripts/admin/bulk_order_management.js.coffee index dac70d9caa..f83bcff985 100644 --- a/app/assets/javascripts/admin/bulk_order_management.js.coffee +++ b/app/assets/javascripts/admin/bulk_order_management.js.coffee @@ -1,12 +1,12 @@ -ordersApp = angular.module("bulk_order_management", ["bulk_product_update"]) +orderManagementModule = angular.module("ofn.bulk_order_management", ["ofn.shared_services"]) -ordersApp.config [ +orderManagementModule.config [ "$httpProvider" (provider) -> provider.defaults.headers.common["X-CSRF-Token"] = $("meta[name=csrf-token]").attr("content") ] -ordersApp.controller "AdminBulkOrdersCtrl", [ +orderManagementModule.controller "AdminOrderMgmtCtrl", [ "$scope", "$http", "dataFetcher" ($scope, $http, dataFetcher) -> $scope.updateStatusMessage = diff --git a/app/assets/javascripts/admin/bulk_product_update.js.coffee b/app/assets/javascripts/admin/bulk_product_update.js.coffee index bbecf79b07..320293f364 100644 --- a/app/assets/javascripts/admin/bulk_product_update.js.coffee +++ b/app/assets/javascripts/admin/bulk_product_update.js.coffee @@ -1,13 +1,13 @@ -productsApp = angular.module("bulk_product_update", []) +productEditModule = angular.module("ofn.bulk_product_edit", ["ofn.shared_services"]) -productsApp.config [ +productEditModule.config [ "$httpProvider" (provider) -> provider.defaults.headers.common["X-CSRF-Token"] = $("meta[name=csrf-token]").attr("content") ] -productsApp.directive "ofnDecimal", -> +productEditModule.directive "ofnDecimal", -> require: "ngModel" link: (scope, element, attrs, ngModel) -> numRegExp = /^\d+(\.\d+)?$/ @@ -20,7 +20,7 @@ productsApp.directive "ofnDecimal", -> viewValue -productsApp.directive "ofnTrackProduct", -> +productEditModule.directive "ofnTrackProduct", -> require: "ngModel" link: (scope, element, attrs, ngModel) -> property_name = attrs.ofnTrackProduct @@ -31,7 +31,7 @@ productsApp.directive "ofnTrackProduct", -> viewValue -productsApp.directive "ofnTrackVariant", -> +productEditModule.directive "ofnTrackVariant", -> require: "ngModel" link: (scope, element, attrs, ngModel) -> property_name = attrs.ofnTrackVariant @@ -45,7 +45,7 @@ productsApp.directive "ofnTrackVariant", -> viewValue -productsApp.directive "ofnToggleVariants", -> +productEditModule.directive "ofnToggleVariants", -> link: (scope, element, attrs) -> if scope.displayProperties[scope.product.id].showVariants element.removeClass "icon-chevron-right" @@ -66,7 +66,7 @@ productsApp.directive "ofnToggleVariants", -> -productsApp.directive "ofnToggleColumn", -> +productEditModule.directive "ofnToggleColumn", -> link: (scope, element, attrs) -> element.addClass "unselected" unless scope.column.visible element.click "click", -> @@ -78,7 +78,7 @@ productsApp.directive "ofnToggleColumn", -> scope.column.visible = true element.removeClass "unselected" -productsApp.directive "datetimepicker", [ +productEditModule.directive "datetimepicker", [ "$parse" ($parse) -> return ( @@ -96,7 +96,7 @@ productsApp.directive "datetimepicker", [ ] -productsApp.controller "AdminBulkProductsCtrl", [ +productEditModule.controller "AdminProductEditCtrl", [ "$scope", "$timeout", "$http", "dataFetcher" ($scope, $timeout, $http, dataFetcher) -> $scope.updateStatusMessage = @@ -441,21 +441,7 @@ productsApp.controller "AdminBulkProductsCtrl", [ Object.keys($scope.dirtyProducts).length ] - -productsApp.factory "dataFetcher", [ - "$http", "$q" - ($http, $q) -> - return (dataLocation) -> - deferred = $q.defer() - $http.get(dataLocation).success((data) -> - deferred.resolve data - ).error -> - deferred.reject() - - deferred.promise -] - -productsApp.filter "rangeArray", -> +productEditModule.filter "rangeArray", -> return (input,start,end) -> input.push(i) for i in [start..end] input diff --git a/app/assets/javascripts/admin/shared_services.js.coffee b/app/assets/javascripts/admin/shared_services.js.coffee new file mode 100644 index 0000000000..0f48f72b40 --- /dev/null +++ b/app/assets/javascripts/admin/shared_services.js.coffee @@ -0,0 +1,14 @@ +sharedServicesModule = angular.module("ofn.shared_services", []) + +sharedServicesModule.factory "dataFetcher", [ + "$http", "$q" + ($http, $q) -> + return (dataLocation) -> + deferred = $q.defer() + $http.get(dataLocation).success((data) -> + deferred.resolve data + ).error -> + deferred.reject() + + deferred.promise +] \ No newline at end of file diff --git a/app/views/spree/admin/products/bulk_edit.html.haml b/app/views/spree/admin/products/bulk_edit.html.haml index e5a4d4a3b7..970bc47961 100644 --- a/app/views/spree/admin/products/bulk_edit.html.haml +++ b/app/views/spree/admin/products/bulk_edit.html.haml @@ -13,7 +13,7 @@ -%div{ 'ng-app' => 'bulk_product_update', 'ng-controller' => 'AdminBulkProductsCtrl', 'ng-init' => "initialise('#{@spree_api_key}');loading=true;" } +%div{ 'ng-app' => 'ofn.bulk_product_edit', 'ng-controller' => 'AdminProductEditCtrl', 'ng-init' => "initialise('#{@spree_api_key}');loading=true;" } %div{ 'ng-show' => '!spree_api_key_ok' } {{ api_error_msg }} %div.option_tab_titles{ :class => "sixteen columns alpha" } diff --git a/config/ng-test.conf.js b/config/ng-test.conf.js index 2a73b979a3..51de26632c 100644 --- a/config/ng-test.conf.js +++ b/config/ng-test.conf.js @@ -9,6 +9,7 @@ module.exports = function(config) { 'app/assets/javascripts/shared/angular.js', 'app/assets/javascripts/shared/angular-*.js', + 'app/assets/javascripts/admin/shared_services.js.coffee', 'app/assets/javascripts/admin/order_cycle.js.erb.coffee', 'app/assets/javascripts/admin/bulk_order_management.js.coffee', 'app/assets/javascripts/admin/bulk_product_update.js.coffee', diff --git a/spec/javascripts/unit/bulk_order_management_spec.js.coffee b/spec/javascripts/unit/bulk_order_management_spec.js.coffee index f0e62fa620..ecbc69a725 100644 --- a/spec/javascripts/unit/bulk_order_management_spec.js.coffee +++ b/spec/javascripts/unit/bulk_order_management_spec.js.coffee @@ -1,14 +1,14 @@ -describe "AdminBulkOrdersCtrl", -> - ctrl = scope = timeout = httpBackend = null +describe "AdminOrderMgmtCtrl", -> + ctrl = scope = httpBackend = null beforeEach -> - module "bulk_order_management" + module "ofn.bulk_order_management" beforeEach inject(($controller, $rootScope, $httpBackend) -> scope = $rootScope.$new() ctrl = $controller httpBackend = $httpBackend - ctrl "AdminBulkOrdersCtrl", {$scope: scope, $timeout: timeout} + ctrl "AdminOrderMgmtCtrl", {$scope: scope} ) describe "loading data upon initialisation", -> diff --git a/spec/javascripts/unit/bulk_product_update_spec.js.coffee b/spec/javascripts/unit/bulk_product_update_spec.js.coffee index f95f531bdd..2f5857e7f3 100644 --- a/spec/javascripts/unit/bulk_product_update_spec.js.coffee +++ b/spec/javascripts/unit/bulk_product_update_spec.js.coffee @@ -258,18 +258,18 @@ describe "Maintaining a live record of dirty products and properties", -> -describe "AdminBulkProductsCtrl", -> +describe "AdminProductEditCtrl", -> ctrl = scope = timeout = httpBackend = null beforeEach -> - module "bulk_product_update" + module "ofn.bulk_product_edit" beforeEach inject(($controller, $timeout, $rootScope, $httpBackend) -> scope = $rootScope.$new() ctrl = $controller timeout = $timeout httpBackend = $httpBackend - ctrl "AdminBulkProductsCtrl", {$scope: scope, $timeout: timeout} + ctrl "AdminProductEditCtrl", {$scope: scope, $timeout: timeout} ) describe "loading data upon initialisation", ->