From ebaf353e4af5e53ca40b9a9da19b9df8343daad1 Mon Sep 17 00:00:00 2001 From: Per Ploug Krogslund Date: Fri, 9 Aug 2013 15:24:38 +0200 Subject: [PATCH] Content picker full api and test coverage --- .../contentpicker/contentpicker.controller.js | 26 ++++-- .../contentpicker/contentpicker.html | 2 +- .../content-picker-controller.spec.js | 91 +++++++++++++++++++ 3 files changed, 111 insertions(+), 8 deletions(-) create mode 100644 src/Umbraco.Web.UI.Client/test/unit/app/propertyeditors/content-picker-controller.spec.js diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js index d1a3104a02..bd3333d153 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.controller.js @@ -6,7 +6,7 @@ angular.module('umbraco') function($scope, dialogService, entityResource){ $scope.ids = $scope.model.value.split(','); $scope.renderModel = []; - + entityResource.getByIds($scope.ids).then(function(data){ $(data).each(function(i, item){ $scope.renderModel.push({name: item.name, id: item.id, icon: item.icon}); @@ -17,14 +17,26 @@ angular.module('umbraco') var d = dialogService.contentPicker({scope: $scope, callback: populate}); }; - function populate(data){ - $(data.selection).each(function(i, item){ + $scope.remove =function(index){ + $scope.renderModel.splice(index, 1); + $scope.ids.splice(index, 1); + $scope.model.value = $scope.ids.join(); + }; + + $scope.add =function(item){ + + if($scope.ids.indexOf(item.id) < 0){ $scope.renderModel.push({name: item.name, id: item.id, icon: item.icon}) $scope.ids.push(item.id); - }); - //set the model value to a comma-sep string - //TOOD: consider if we should save more managed model? - $scope.model.value = $scope.ids.join(); + $scope.model.value = $scope.ids.join(); + } + }; + + + function populate(data){ + $(data.selection).each(function(i, item){ + $scope.add(item); + }); } }); \ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.html b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.html index 9cc3a8451a..f054849051 100644 --- a/src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/propertyeditors/contentpicker/contentpicker.html @@ -1,7 +1,7 @@