diff --git a/src/scheduler/index.js b/src/scheduler/index.js
index 30b209f..e993f5a 100644
--- a/src/scheduler/index.js
+++ b/src/scheduler/index.js
@@ -48,7 +48,7 @@ module.exports = angular.module('accountant.scheduler', [
);
})
- .controller('SchedulerController', function($rootScope, $routeParams, Notification, ScheduledOperation, $log, $uibModal, $q) {
+ .controller('SchedulerController', function($rootScope, $routeParams, Notification, ScheduledOperation, $log, $modal) {
var vm = this;
// Operation store.
@@ -92,8 +92,30 @@ module.exports = angular.module('accountant.scheduler', [
Notification.error(
'Error while saving scheduled operation: ' + result.message
);
+ });
+ };
- return $q.reject(result);
+ /*
+ * Delete an operation and return a promise.
+ */
+ vm.confirmDelete = function(operation) {
+ var title = "Delete operation #" + operation.id;
+
+ $modal({
+ templateUrl: scheduleDeleteTmpl,
+ controller: function($scope, title, operation, $delete) {
+ $scope.title = title;
+ $scope.operation = operation;
+ $scope.$delete = function() {
+ $scope.$hide();
+ $delete($scope.operation);
+ };
+ },
+ locals: {
+ title: title,
+ operation: operation,
+ $delete: vm.delete
+ }
});
};
@@ -103,30 +125,17 @@ module.exports = angular.module('accountant.scheduler', [
vm.delete = function(operation) {
var id = operation.id;
- $uibModal.open({
- component: 'scheduleDeleteModalComponent',
- resolve: {
- operation: function() {
- return operation;
- }
- }
- }).result.then(function(operation) {
- return operation.$delete().then(function() {
- Notification.success('Operation #' + id + ' deleted.');
+ return operation.$delete().then(function() {
+ Notification.success('Scheduled operation #' + id + ' deleted.');
- vm.operations = vm.load();
+ vm.operations = vm.load();
- return operation;
- }, function(result) {
- Notification.error(
- 'An error occurred while trying to delete operation #' +
- id + ':
' + result
- );
-
- return $q.reject(result);
- });
- }, function() {
- return false;
+ return operation;
+ }, function(result) {
+ Notification.error(
+ 'An error occurred while trying to delete scheduled operation #' +
+ id + ':
' + result
+ );
});
};
@@ -135,17 +144,28 @@ module.exports = angular.module('accountant.scheduler', [
* @returns a promise.
*/
vm.modify = function(operation) {
- return $uibModal.open({
- component: 'scheduleModifyModalComponent',
- resolve: {
- operation: function() {
- return operation;
- }
+ // FIXME Alexis Lahouze 2017-06-15 i18n
+ var title = "Operation";
+
+ if (operation.id) {
+ title = title + " #" + operation.id;
+ }
+
+ $modal({
+ templateUrl: scheduleFormTmpl,
+ controller: function($scope, title, operation, $save) {
+ $scope.title = title;
+ $scope.operation = operation;
+ $scope.$save = function() {
+ $scope.$hide();
+ $save($scope.operation);
+ };
+ },
+ locals: {
+ title: title,
+ operation: operation,
+ $save: vm.save
}
- }).result.then(function(operation) {
- return vm.save(operation);
- }, function() {
- return false;
});
};
@@ -153,78 +173,4 @@ module.exports = angular.module('accountant.scheduler', [
vm.operations = vm.load();
})
- .component('scheduleModifyModalComponent', {
- templateUrl: scheduleFormTmpl,
- bindings: {
- resolve: '<',
- close: '&',
- dismiss: '&'
- },
- controller: function() {
- var vm = this;
-
- vm.$onInit = function() {
- vm.operation = vm.resolve.operation;
- };
-
- vm.ok = function() {
- vm.close({
- $value: vm.operation
- });
- };
-
- vm.cancel = function() {
- vm.dismiss({
- $value: 'cancel'
- });
- };
-
- vm.title = function() {
- // FIXME Alexis Lahouze 2017-06-15 i18n
- if (vm.operation.id) {
- return "Scheduled operation #" + vm.operation.id;
- } else {
- return "Scheduled operation";
- }
- };
- }
- })
-
- .component('scheduleDeleteModalComponent', {
- templateUrl: scheduleDeleteTmpl,
- bindings: {
- resolve: '<',
- close: '&',
- dismiss: '&'
- },
- controller: function() {
- var vm = this;
-
- vm.$onInit = function() {
- vm.operation = vm.resolve.operation;
- };
-
- vm.ok = function() {
- vm.close({
- $value: vm.operation
- });
- };
-
- vm.cancel = function() {
- vm.dismiss({
- $value: 'cancel'
- });
- };
-
- vm.title = function() {
- // FIXME Alexis Lahouze 2017-06-15 i18n
- if (vm.operation.id) {
- return "Scheduled operation #" + vm.operation.id;
- } else {
- return "Scheduled operation";
- }
- };
- }
- })
-
.name;
diff --git a/src/scheduler/schedule.delete.tmpl.html b/src/scheduler/schedule.delete.tmpl.html
index 545ce03..904ae6d 100644
--- a/src/scheduler/schedule.delete.tmpl.html
+++ b/src/scheduler/schedule.delete.tmpl.html
@@ -1,16 +1,25 @@
-