1: export function modalDialog($parse: ng.IParseService): ng.IDirective {
2: var Modal_Effects = [
3: { effect : "fade", eclass: "md-effect-1" },
4: { effect : "slideright", eclass: "md-effect-2" },
5: { effect : "slidebottom", eclass: "md-effect-3" },
6: { effect : "newspaper", eclass: "md-effect-4" },
7: { effect : "fall", eclass: "md-effect-5" },
8: { effect : "slidefall", eclass: "md-effect-6" },
9: { effect : "stickyup", eclass: "md-effect-7" },
10: { effect : "3dfilp", eclass: "md-effect-8" },
11: { effect : "3dsign", eclass: "md-effect-9" },
12: { effect : "superscaled", eclass: "md-effect-10" },
13: { effect : "3dslit", eclass: "md-effect-11" },
14: ];
15: return {
16: restrict:'E',
17: replace : true,
18: transclude : true,
19: scope : { show : "=", closefn : "&", title: "=",
20: okBtn: "=", closeBtn: "=", displayClose: "="
21: },
22: template : "<div class='md-modal' ng-class='effectcls' id='modal-1'>"
23: + "<div class='md-content'>"
24: + "<div class='modal-header'>"
25: + "<button class='md-close close' data-ng-click='dismiss()' type='button'>×</button>"
26: + "<h4 class='modal-title'>{{title}}</h4>"
27: + "</div>"
28: + "<div class='modal-body' ng-transclude></div>"
29: + "<div class='modal-footer'>"
30: + "<button type='button' class='btn btn-default' data-ng-show='displayClose' data-ng-click='dismiss()'>{{ closeBtn }}</button>"
31: + "<button type='button' class='btn btn-primary' data-ng-click='ok()'>{{ okBtn }}</button>"
32: + "</div>"
33: +"</div>"
34: +"</div>"
35: ,
36: link: (scope: any, element:JQuery, attributes : any, controllers: any) => {
37: console.log("int directive happen");
38: var overlay = document.querySelector( '.md-overlay' );
39: var modal = angular.element(element);
40:
41: var effect = attributes.modaleffect || "fade";
42: var effectclass = Enumerable.From(Modal_Effects).Where(x => x.effect == effect)
43: .Select(x => x.eclass).First();
44: scope.effectcls = effectclass;
45:
46:
47: scope.$watch("show", function(newvalue){
48: if(newvalue)
49: modal.addClass('md-show');
50: else{
51: if(modal.hasClass('md-show'))
52: {
53: modal.removeClass('md-show');
54: }
55: }
56: });
57: var fn = $parse(scope.closefn);
58: scope.dismiss = function(){
59: if(fn && typeof fn == 'function'){
60: fn( { param : { status : Modal.Modal_Response.Dismiss} });
61: console.log("entered");
62: }
63: }
64: scope.ok = function(){
65: if(fn && typeof fn == 'function'){
66: fn( { param : { status : Modal.Modal_Response.Ok} });
67: console.log("entered");
68: }
69: }
70:
71:
72: }
73: }
74: }