Creating resource on the fly when we want to delete model created by WS events
Change-Id: I2e5c0e0af2be6366d86437d140d4517990940cbb
diff --git a/src/index.ts b/src/index.ts
index b03f4b4..88c2250 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -28,6 +28,8 @@
import {IXosPageTitleService} from './app/core/services/page-title';
import {IXosConfigHelpersService} from './app/core/services/helpers/config.helpers';
import {StyleConfig} from './app/config/style.config';
+import {IXosResourceService} from './app/datasources/rest/model.rest';
+import {IXosModelHelpersService} from './app/core/services/helpers/model.helper';
export interface IXosState extends angular.ui.IState {
data: IXosCrudData;
@@ -63,9 +65,12 @@
$location: ng.ILocationService,
$state: ng.ui.IStateService,
ModelDefs: IModeldefsService,
+ ModelRest: IXosResourceService,
RuntimeStates: IRuntimeStatesService,
NavigationService: IXosNavigationService,
ConfigHelpers: IXosConfigHelpersService,
+ ModelHelpers: IXosModelHelpersService,
+ toastr: ng.toastr.IToastrService,
PageTitle: IXosPageTitleService
) => {
@@ -99,13 +104,27 @@
icon: 'remove',
color: 'red',
cb: (item) => {
+ let obj = angular.copy(item);
+ // check that item in an angular resource
+ if (!item.$delete) {
+ const endpoint = ModelHelpers.urlFromCoreModel(m.name);
+ const resource = ModelRest.getResource(endpoint);
+ // create a resource with that item
+ item = new resource(item);
+
+ }
console.log(item);
item.$delete()
- .then(res => {
- console.log(res);
+ .then((res) => {
+ if (res.status === 404) {
+ // TODO understand why it does not go directly in catch
+ throw new Error();
+ }
+ toastr.info(`${m.name} ${obj.name} succesfully deleted`);
})
- .catch(err => {
- console.error(err);
+ .catch(() => {
+ console.log(obj);
+ toastr.error(`Error while deleting ${obj.name}`);
});
}
}