util_srv.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import coreModule from 'app/core/core_module';
  2. import appEvents from 'app/core/app_events';
  3. export class UtilSrv {
  4. modalScope: any;
  5. /** @ngInject */
  6. constructor(private $rootScope, private $modal) {}
  7. init() {
  8. appEvents.on('show-modal', this.showModal.bind(this), this.$rootScope);
  9. appEvents.on('hide-modal', this.hideModal.bind(this), this.$rootScope);
  10. }
  11. hideModal() {
  12. if (this.modalScope && this.modalScope.dismiss) {
  13. this.modalScope.dismiss();
  14. }
  15. }
  16. showModal(options) {
  17. if (this.modalScope && this.modalScope.dismiss) {
  18. this.modalScope.dismiss();
  19. }
  20. this.modalScope = options.scope;
  21. if (options.model) {
  22. this.modalScope = this.$rootScope.$new();
  23. this.modalScope.model = options.model;
  24. } else if (!this.modalScope) {
  25. this.modalScope = this.$rootScope.$new();
  26. }
  27. var modal = this.$modal({
  28. modalClass: options.modalClass,
  29. template: options.src,
  30. templateHtml: options.templateHtml,
  31. persist: false,
  32. show: false,
  33. scope: this.modalScope,
  34. keyboard: false,
  35. backdrop: options.backdrop,
  36. });
  37. Promise.resolve(modal).then(function(modalEl) {
  38. modalEl.modal('show');
  39. });
  40. }
  41. }
  42. coreModule.service('utilSrv', UtilSrv);