invoiceModule.directive('modelMappingConfiguration', ['$log', '$document', '$uibModal', function ($log, $document, $uibModal) { 'use strict'; return { restrict: 'E', templateUrl: '/app/vat/output-invoice/model-mapping-configuration/model-mapping-configuration.html' + '?_=' + Math.random(), scope: { isOpen: '=', parentElement: "@" }, link: function (scope, element) { $log.debug('modelMappingConfiguration.ctor()...'); scope.$watch('isOpen', function (newVal, oldVal) { if (newVal) { scope.eventService.open(); } }); var parentElement = scope.parentElement ? $document[0].querySelector(scope.parentElement) : element[0]; scope.eventService = { open: function () { var modalInstance = $uibModal.open({ ariaLabelledBy: 'modal-title', ariaDescribedBy: 'modal-body', backdrop: 'static', templateUrl: 'view-mapping-template.html', controller: 'modelMappingConfigurationController', windowClass: 'model-mapping-popup center-popup', appendTo: angular.element(parentElement), scope: scope }); }, addOrEdit: function (refreshFunc, model) { var modalInstance = $uibModal.open({ ariaLabelledBy: 'modal-title', ariaDescribedBy: 'modal-body', backdrop: 'static', templateUrl: 'add-edit-mapping-template.html', controller: 'modelMappingAddEditController', windowClass: 'add-mapping-popup center-popup', appendTo: angular.element(parentElement), scope: scope, resolve: { refreshFunc: function () { return refreshFunc; }, model: function () { return model; } } }); } }; } }; }]);