| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- define([
- 'lodash',
- 'jquery',
- '../core_module',
- ],
- function (_, $, coreModule) {
- 'use strict';
- coreModule.default.directive('configModal', function($modal, $q, $timeout) {
- return {
- restrict: 'A',
- link: function(scope, elem, attrs) {
- var partial = attrs.configModal;
- var id = '#' + partial.replace('.html', '').replace(/[\/|\.|:]/g, '-') + '-' + scope.$id;
- elem.bind('click',function() {
- if ($(id).length) {
- elem.attr('data-target', id).attr('data-toggle', 'modal');
- scope.$apply(function() { scope.$broadcast('modal-opened'); });
- return;
- }
- var panelModal = $modal({
- template: partial,
- persist: false,
- show: false,
- scope: scope.$new(),
- keyboard: false
- });
- $q.when(panelModal).then(function(modalEl) {
- elem.attr('data-target', id).attr('data-toggle', 'modal');
- $timeout(function () {
- if (!modalEl.data('modal').isShown) {
- modalEl.modal('show');
- }
- }, 50);
- });
- scope.$apply();
- });
- }
- };
- });
- });
|