diff --git a/src/Umbraco.Web.UI.Client/src/common/resources/datatype.resource.js b/src/Umbraco.Web.UI.Client/src/common/resources/datatype.resource.js index 807042d0e7..7eb04082ee 100644 --- a/src/Umbraco.Web.UI.Client/src/common/resources/datatype.resource.js +++ b/src/Umbraco.Web.UI.Client/src/common/resources/datatype.resource.js @@ -53,10 +53,37 @@ function dataTypeResource($q, $http, umbDataFormatter, umbRequestHelper) { umbRequestHelper.getApiUrl( "dataTypeApiBaseUrl", "GetEmpty")), - 'Failed to retreive data for empty media item type ' + alias); - + 'Failed to retreive data for empty datatype ' + alias); + }, + /** + * @ngdoc method + * @name umbraco.resources.dataTypeResource#deleteById + * @methodOf umbraco.resources.dataTypeResource + * + * @description + * Deletes a content item with a given id + * + * ##usage + *
+ * dataTypeResource.deleteById(1234)
+ * .then(function() {
+ * alert('its gone!');
+ * });
+ *
+ *
+ * @param {Int} id id of content item to delete
+ * @returns {Promise} resourcePromise object.
+ *
+ */
+ deleteById: function(id) {
+ return umbRequestHelper.resourcePromise(
+ $http.delete(
+ umbRequestHelper.getApiUrl(
+ "dataTypeApiBaseUrl",
+ "DeleteById",
+ [{ id: id }])),
+ 'Failed to delete item ' + id);
},
-
/** saves or updates a data type object */
save: function (dataType, preValues, isNew) {
diff --git a/src/Umbraco.Web.UI.Client/src/views/datatype/datatype.delete.controller.js b/src/Umbraco.Web.UI.Client/src/views/datatype/datatype.delete.controller.js
new file mode 100644
index 0000000000..efd7e540d4
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/views/datatype/datatype.delete.controller.js
@@ -0,0 +1,33 @@
+/**
+ * @ngdoc controller
+ * @name Umbraco.Editors.ContentDeleteController
+ * @function
+ *
+ * @description
+ * The controller for deleting content
+ */
+function DataTypeDeleteController($scope, dataTypeResource, treeService, navigationService) {
+
+ $scope.performDelete = function() {
+
+ //mark it for deletion (used in the UI)
+ $scope.currentNode.loading = true;
+ dataTypeResource.deleteById($scope.currentNode.id).then(function () {
+ $scope.currentNode.loading = false;
+
+ //get the root node before we remove it
+ var rootNode = treeService.getTreeRoot($scope.currentNode);
+
+ //TODO: Need to sync tree, etc...
+ treeService.removeNode($scope.currentNode);
+ navigationService.hideMenu();
+ });
+
+ };
+
+ $scope.cancel = function() {
+ navigationService.hideDialog();
+ };
+}
+
+angular.module("umbraco").controller("Umbraco.Editors.DataType.DeleteController", DataTypeDeleteController);
diff --git a/src/Umbraco.Web.UI.Client/src/views/datatype/delete.html b/src/Umbraco.Web.UI.Client/src/views/datatype/delete.html
new file mode 100644
index 0000000000..cddc1b34ad
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/views/datatype/delete.html
@@ -0,0 +1,12 @@
++ Are you sure you want to delete {{currentNode.name}} ? +
+ +