From 41c360bef2c130f7ec155ce767eb04836576a26a Mon Sep 17 00:00:00 2001 From: tomy2105 Date: Tue, 5 Sep 2017 15:07:39 +0200 Subject: [PATCH 1/4] deletionView and onSubmitSuccess/onSubmitError onSubmitSuccess/onSubmitError added to deletion view --- .../ng-admin/Crud/delete/DeleteController.js | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/javascripts/ng-admin/Crud/delete/DeleteController.js b/src/javascripts/ng-admin/Crud/delete/DeleteController.js index 312986f01..34701a19a 100644 --- a/src/javascripts/ng-admin/Crud/delete/DeleteController.js +++ b/src/javascripts/ng-admin/Crud/delete/DeleteController.js @@ -1,8 +1,9 @@ export default class DeleteController { - constructor($scope, $window, $state, $q, $translate, WriteQueries, Configuration, progression, notification, params, view, entry, HttpErrorService) { + constructor($scope, $window, $state, $injector, $q, $translate, WriteQueries, Configuration, progression, notification, params, view, entry, HttpErrorService) { this.$scope = $scope; this.$window = $window; this.$state = $state; + this.$injector = $injector; this.$translate = $translate; this.WriteQueries = WriteQueries; this.config = Configuration(); @@ -30,7 +31,7 @@ export default class DeleteController { deleteOne($event) { return new Promise((resolve, reject) => { const entityName = this.entity.name(); - const { $translate, notification, progression } = this; + const { $translate, notification, progression, entry, view } = this; progression.start(); this.previousStateParametersDeferred.promise @@ -49,21 +50,35 @@ export default class DeleteController { entity: entityName, ...this.$state.params, }; + } return this.WriteQueries.deleteOne(this.view, this.entityId) - .then(() => { + .then(() => view.onSubmitSuccess() && this.$injector.invoke( + view.onSubmitSuccess(), + view, + { $event, entity: this.entity, entry, controller: this, form: this.form, progression, notification } + )) + .then(customHandlerReturnValue => { + if (customHandlerReturnValue === false) return new Promise(innerResolve => innerResolve()); + $translate('DELETE_SUCCESS') + .then(text => notification.log(text, { addnCls: 'humane-flatty-success' })) + .then(() => progression.done()); if(toState){ return this.$state.go(toState, toParams); } return this.back(); }) - .then(() => $translate('DELETE_SUCCESS')) - .then(text => notification.log(text, { addnCls: 'humane-flatty-success' })) .then(() => { resolve(); }) .catch(error => { + const customHandlerReturnValue = view.onSubmitError() && this.$injector.invoke( + view.onSubmitError(), + view, + { $event, error, entity: this.entity, entry, controller: this, form: this.form, progression, notification } + ); + if (customHandlerReturnValue === false) return; progression.done(); this.HttpErrorService.handleError($event, toState, toParams, fromState, fromParams, error); reject(); @@ -89,4 +104,4 @@ export default class DeleteController { } } -DeleteController.$inject = ['$scope', '$window', '$state', '$q', '$translate', 'WriteQueries', 'NgAdminConfiguration', 'progression', 'notification', 'params', 'view', 'entry', 'HttpErrorService']; +DeleteController.$inject = ['$scope', '$window', '$state', '$injector', '$q', '$translate', 'WriteQueries', 'NgAdminConfiguration', 'progression', 'notification', 'params', 'view', 'entry', 'HttpErrorService']; From b40b8da41d0d7ec964ae3ea351ec4b096051bf08 Mon Sep 17 00:00:00 2001 From: tomy2105 Date: Wed, 6 Sep 2017 12:31:36 +0200 Subject: [PATCH 2/4] Trying to fix test case --- .../test/unit/Crud/delete/DeleteControllerSpec.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/javascripts/test/unit/Crud/delete/DeleteControllerSpec.js b/src/javascripts/test/unit/Crud/delete/DeleteControllerSpec.js index 60832d36f..7b2c24e77 100644 --- a/src/javascripts/test/unit/Crud/delete/DeleteControllerSpec.js +++ b/src/javascripts/test/unit/Crud/delete/DeleteControllerSpec.js @@ -5,11 +5,12 @@ describe('DeleteController', function () { Entity = require('admin-config/lib/Entity/Entity'), humane = require('humane-js'); - var $scope, $window, $q; - beforeEach(inject(function ($controller, $rootScope, _$window_, _$q_) { + var $scope, $window, $q, $injector; + beforeEach(inject(function ($controller, $rootScope, _$window_, _$q_, _$injector_) { $scope = $rootScope.$new(); $window = _$window_; $q = _$q_; + $injector = _$injector_; })); describe('deleteOne', function() { @@ -56,7 +57,7 @@ describe('DeleteController', function () { getEntity: () => entity }; - let deleteController = new DeleteController($scope, $window, $state, $q, $translate, writeQueries, Configuration, progression, notification, { + let deleteController = new DeleteController($scope, $window, $state, $injector, $q, $translate, writeQueries, Configuration, progression, notification, { id: deletedId, entity: 'post' }, view, entry, HttpErrorService); @@ -83,7 +84,7 @@ describe('DeleteController', function () { getEntity: () => entity }; - let deleteController = new DeleteController($scope, $window, $state, $q, $translate, writeQueries, Configuration, progression, notification, { + let deleteController = new DeleteController($scope, $window, $state, $injector, $q, $translate, writeQueries, Configuration, progression, notification, { id: deletedId, entity: 'post' }, view, entry, HttpErrorService); @@ -114,7 +115,7 @@ describe('DeleteController', function () { }; let $window = { history: { back: jasmine.createSpy('$window.history.back') } }; - let deleteController = new DeleteController($scope, $window, $state, $q, $translate, writeQueries, Configuration, progression, notification, { + let deleteController = new DeleteController($scope, $window, $state, $injector, $q, $translate, writeQueries, Configuration, progression, notification, { id: commentId, entity: 'comment' }, view, entry, HttpErrorService); @@ -147,7 +148,7 @@ describe('DeleteController', function () { getEntity: () => entity }; - let deleteController = new DeleteController($scope, $window, $state, $q, $translate, writeQueries, Configuration, progression, notification, { + let deleteController = new DeleteController($scope, $window, $state, $injector, $q, $translate, writeQueries, Configuration, progression, notification, { id: deletedId, entity: 'post' }, view, entry, HttpErrorService); From ff0dd32f6ddfe6817d68d9188cebbca7989c8fdb Mon Sep 17 00:00:00 2001 From: tomy2105 Date: Wed, 6 Sep 2017 12:43:24 +0200 Subject: [PATCH 3/4] Revert "Trying to fix test case" This reverts commit b40b8da41d0d7ec964ae3ea351ec4b096051bf08. --- .../test/unit/Crud/delete/DeleteControllerSpec.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/javascripts/test/unit/Crud/delete/DeleteControllerSpec.js b/src/javascripts/test/unit/Crud/delete/DeleteControllerSpec.js index 7b2c24e77..60832d36f 100644 --- a/src/javascripts/test/unit/Crud/delete/DeleteControllerSpec.js +++ b/src/javascripts/test/unit/Crud/delete/DeleteControllerSpec.js @@ -5,12 +5,11 @@ describe('DeleteController', function () { Entity = require('admin-config/lib/Entity/Entity'), humane = require('humane-js'); - var $scope, $window, $q, $injector; - beforeEach(inject(function ($controller, $rootScope, _$window_, _$q_, _$injector_) { + var $scope, $window, $q; + beforeEach(inject(function ($controller, $rootScope, _$window_, _$q_) { $scope = $rootScope.$new(); $window = _$window_; $q = _$q_; - $injector = _$injector_; })); describe('deleteOne', function() { @@ -57,7 +56,7 @@ describe('DeleteController', function () { getEntity: () => entity }; - let deleteController = new DeleteController($scope, $window, $state, $injector, $q, $translate, writeQueries, Configuration, progression, notification, { + let deleteController = new DeleteController($scope, $window, $state, $q, $translate, writeQueries, Configuration, progression, notification, { id: deletedId, entity: 'post' }, view, entry, HttpErrorService); @@ -84,7 +83,7 @@ describe('DeleteController', function () { getEntity: () => entity }; - let deleteController = new DeleteController($scope, $window, $state, $injector, $q, $translate, writeQueries, Configuration, progression, notification, { + let deleteController = new DeleteController($scope, $window, $state, $q, $translate, writeQueries, Configuration, progression, notification, { id: deletedId, entity: 'post' }, view, entry, HttpErrorService); @@ -115,7 +114,7 @@ describe('DeleteController', function () { }; let $window = { history: { back: jasmine.createSpy('$window.history.back') } }; - let deleteController = new DeleteController($scope, $window, $state, $injector, $q, $translate, writeQueries, Configuration, progression, notification, { + let deleteController = new DeleteController($scope, $window, $state, $q, $translate, writeQueries, Configuration, progression, notification, { id: commentId, entity: 'comment' }, view, entry, HttpErrorService); @@ -148,7 +147,7 @@ describe('DeleteController', function () { getEntity: () => entity }; - let deleteController = new DeleteController($scope, $window, $state, $injector, $q, $translate, writeQueries, Configuration, progression, notification, { + let deleteController = new DeleteController($scope, $window, $state, $q, $translate, writeQueries, Configuration, progression, notification, { id: deletedId, entity: 'post' }, view, entry, HttpErrorService); From ab01ab0e912cd7169c028b3ead174eaf216b52bb Mon Sep 17 00:00:00 2001 From: tomy2105 Date: Fri, 8 Sep 2017 15:07:47 +0200 Subject: [PATCH 4/4] Fixing delete controller test case --- .../unit/Crud/delete/DeleteControllerSpec.js | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/javascripts/test/unit/Crud/delete/DeleteControllerSpec.js b/src/javascripts/test/unit/Crud/delete/DeleteControllerSpec.js index 60832d36f..a3ff0bfe2 100644 --- a/src/javascripts/test/unit/Crud/delete/DeleteControllerSpec.js +++ b/src/javascripts/test/unit/Crud/delete/DeleteControllerSpec.js @@ -5,11 +5,12 @@ describe('DeleteController', function () { Entity = require('admin-config/lib/Entity/Entity'), humane = require('humane-js'); - var $scope, $window, $q; - beforeEach(inject(function ($controller, $rootScope, _$window_, _$q_) { + var $scope, $window, $q, $injector; + beforeEach(inject(function ($controller, $rootScope, _$window_, _$q_, _$injector_) { $scope = $rootScope.$new(); $window = _$window_; $q = _$q_; + $injector = _$injector_; })); describe('deleteOne', function() { @@ -53,10 +54,12 @@ describe('DeleteController', function () { title: () => 'Deleting a post', description: () => 'Remove a post', actions: () => [], - getEntity: () => entity + getEntity: () => entity, + onSubmitError: () => () => true, + onSubmitSuccess: () => () => true, }; - let deleteController = new DeleteController($scope, $window, $state, $q, $translate, writeQueries, Configuration, progression, notification, { + let deleteController = new DeleteController($scope, $window, $state, $injector, $q, $translate, writeQueries, Configuration, progression, notification, { id: deletedId, entity: 'post' }, view, entry, HttpErrorService); @@ -80,10 +83,12 @@ describe('DeleteController', function () { title: () => 'Deleting a post', description: () => 'Remove a post', actions: () => [], - getEntity: () => entity + getEntity: () => entity, + onSubmitError: () => () => true, + onSubmitSuccess: () => () => true, }; - let deleteController = new DeleteController($scope, $window, $state, $q, $translate, writeQueries, Configuration, progression, notification, { + let deleteController = new DeleteController($scope, $window, $state, $injector, $q, $translate, writeQueries, Configuration, progression, notification, { id: deletedId, entity: 'post' }, view, entry, HttpErrorService); @@ -110,11 +115,13 @@ describe('DeleteController', function () { title: () => 'Deleting a comment', description: () => 'Remove a comment', actions: () => [], - getEntity: () => new Entity('comment') + getEntity: () => new Entity('comment'), + onSubmitError: () => () => true, + onSubmitSuccess: () => () => true, }; let $window = { history: { back: jasmine.createSpy('$window.history.back') } }; - let deleteController = new DeleteController($scope, $window, $state, $q, $translate, writeQueries, Configuration, progression, notification, { + let deleteController = new DeleteController($scope, $window, $state, $injector, $q, $translate, writeQueries, Configuration, progression, notification, { id: commentId, entity: 'comment' }, view, entry, HttpErrorService); @@ -144,10 +151,12 @@ describe('DeleteController', function () { title: () => 'Deleting a post', description: () => 'Remove a post', actions: () => [], - getEntity: () => entity + getEntity: () => entity, + onSubmitError: () => () => true, + onSubmitSuccess: () => () => true, }; - let deleteController = new DeleteController($scope, $window, $state, $q, $translate, writeQueries, Configuration, progression, notification, { + let deleteController = new DeleteController($scope, $window, $state, $injector, $q, $translate, writeQueries, Configuration, progression, notification, { id: deletedId, entity: 'post' }, view, entry, HttpErrorService);