| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- import coreModule from 'app/core/core_module';
- import appEvents from 'app/core/app_events';
- export class UtilSrv {
- modalScope: any;
- /** @ngInject */
- constructor(private $rootScope, private $modal) {}
- init() {
- appEvents.on('show-modal', this.showModal.bind(this), this.$rootScope);
- appEvents.on('hide-modal', this.hideModal.bind(this), this.$rootScope);
- appEvents.on('confirm-modal', this.showConfirmModal.bind(this), this.$rootScope);
- }
- hideModal() {
- if (this.modalScope && this.modalScope.dismiss) {
- this.modalScope.dismiss();
- }
- }
- showModal(options) {
- if (this.modalScope && this.modalScope.dismiss) {
- this.modalScope.dismiss();
- }
- this.modalScope = options.scope;
- if (options.model) {
- this.modalScope = this.$rootScope.$new();
- this.modalScope.model = options.model;
- } else if (!this.modalScope) {
- this.modalScope = this.$rootScope.$new();
- }
- const modal = this.$modal({
- modalClass: options.modalClass,
- template: options.src,
- templateHtml: options.templateHtml,
- persist: false,
- show: false,
- scope: this.modalScope,
- keyboard: false,
- backdrop: options.backdrop,
- });
- Promise.resolve(modal).then(modalEl => {
- modalEl.modal('show');
- });
- }
- showConfirmModal(payload) {
- const scope = this.$rootScope.$new();
- scope.onConfirm = () => {
- payload.onConfirm();
- scope.dismiss();
- };
- scope.updateConfirmText = value => {
- scope.confirmTextValid = payload.confirmText.toLowerCase() === value.toLowerCase();
- };
- scope.title = payload.title;
- scope.text = payload.text;
- scope.text2 = payload.text2;
- scope.confirmText = payload.confirmText;
- scope.onConfirm = payload.onConfirm;
- scope.onAltAction = payload.onAltAction;
- scope.altActionText = payload.altActionText;
- scope.icon = payload.icon || 'fa-check';
- scope.yesText = payload.yesText || 'Yes';
- scope.noText = payload.noText || 'Cancel';
- scope.confirmTextValid = scope.confirmText ? false : true;
- appEvents.emit('show-modal', {
- src: 'public/app/partials/confirm_modal.html',
- scope: scope,
- modalClass: 'confirm-modal',
- });
- }
- }
- coreModule.service('utilSrv', UtilSrv);
|